VTK
/Users/kitware/Dashboards/MyTests/VTK_BLD_Release_docs/Utilities/Doxygen/dox/Filters/Core/vtkSmoothPolyDataFilter.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkSmoothPolyDataFilter.h
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00098 #ifndef vtkSmoothPolyDataFilter_h
00099 #define vtkSmoothPolyDataFilter_h
00100 
00101 #include "vtkFiltersCoreModule.h" // For export macro
00102 #include "vtkPolyDataAlgorithm.h"
00103 
00104 class vtkSmoothPoints;
00105 
00106 class VTKFILTERSCORE_EXPORT vtkSmoothPolyDataFilter : public vtkPolyDataAlgorithm
00107 {
00108 public:
00109   vtkTypeMacro(vtkSmoothPolyDataFilter,vtkPolyDataAlgorithm);
00110   void PrintSelf(ostream& os, vtkIndent indent);
00111 
00117   static vtkSmoothPolyDataFilter *New();
00118 
00120 
00122   vtkSetClampMacro(Convergence,double,0.0,1.0);
00123   vtkGetMacro(Convergence,double);
00125 
00127 
00128   vtkSetClampMacro(NumberOfIterations,int,0,VTK_INT_MAX);
00129   vtkGetMacro(NumberOfIterations,int);
00131 
00133 
00138   vtkSetMacro(RelaxationFactor,double);
00139   vtkGetMacro(RelaxationFactor,double);
00141 
00143 
00144   vtkSetMacro(FeatureEdgeSmoothing,int);
00145   vtkGetMacro(FeatureEdgeSmoothing,int);
00146   vtkBooleanMacro(FeatureEdgeSmoothing,int);
00148 
00150 
00151   vtkSetClampMacro(FeatureAngle,double,0.0,180.0);
00152   vtkGetMacro(FeatureAngle,double);
00154 
00156 
00158   vtkSetClampMacro(EdgeAngle,double,0.0,180.0);
00159   vtkGetMacro(EdgeAngle,double);
00161 
00163 
00164   vtkSetMacro(BoundarySmoothing,int);
00165   vtkGetMacro(BoundarySmoothing,int);
00166   vtkBooleanMacro(BoundarySmoothing,int);
00168 
00170 
00171   vtkSetMacro(GenerateErrorScalars,int);
00172   vtkGetMacro(GenerateErrorScalars,int);
00173   vtkBooleanMacro(GenerateErrorScalars,int);
00175 
00177 
00178   vtkSetMacro(GenerateErrorVectors,int);
00179   vtkGetMacro(GenerateErrorVectors,int);
00180   vtkBooleanMacro(GenerateErrorVectors,int);
00182 
00184 
00187   void SetSourceData(vtkPolyData *source);
00188   vtkPolyData *GetSource();
00190 
00192 
00195   vtkSetMacro(OutputPointsPrecision,int);
00196   vtkGetMacro(OutputPointsPrecision,int);
00198 
00199 protected:
00200   vtkSmoothPolyDataFilter();
00201   ~vtkSmoothPolyDataFilter() {}
00202 
00203   virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00204   virtual int FillInputPortInformation(int port, vtkInformation *info);
00205 
00206   double Convergence;
00207   int NumberOfIterations;
00208   double RelaxationFactor;
00209   int FeatureEdgeSmoothing;
00210   double FeatureAngle;
00211   double EdgeAngle;
00212   int BoundarySmoothing;
00213   int GenerateErrorScalars;
00214   int GenerateErrorVectors;
00215   int OutputPointsPrecision;
00216 
00217   vtkSmoothPoints *SmoothPoints;
00218 private:
00219   vtkSmoothPolyDataFilter(const vtkSmoothPolyDataFilter&);  // Not implemented.
00220   void operator=(const vtkSmoothPolyDataFilter&);  // Not implemented.
00221 };
00222 
00223 #endif