VTK
vtkSmoothPolyDataFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkSmoothPolyDataFilter.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
93 #ifndef vtkSmoothPolyDataFilter_h
94 #define vtkSmoothPolyDataFilter_h
95 
96 #include "vtkFiltersCoreModule.h" // For export macro
97 #include "vtkPolyDataAlgorithm.h"
98 
99 class vtkSmoothPoints;
100 
101 class VTKFILTERSCORE_EXPORT vtkSmoothPolyDataFilter : public vtkPolyDataAlgorithm
102 {
103 public:
105  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
106 
114  static vtkSmoothPolyDataFilter *New();
115 
117 
121  vtkSetClampMacro(Convergence,double,0.0,1.0);
122  vtkGetMacro(Convergence,double);
124 
126 
129  vtkSetClampMacro(NumberOfIterations,int,0,VTK_INT_MAX);
130  vtkGetMacro(NumberOfIterations,int);
132 
134 
141  vtkSetMacro(RelaxationFactor,double);
142  vtkGetMacro(RelaxationFactor,double);
144 
146 
149  vtkSetMacro(FeatureEdgeSmoothing,int);
150  vtkGetMacro(FeatureEdgeSmoothing,int);
151  vtkBooleanMacro(FeatureEdgeSmoothing,int);
153 
155 
158  vtkSetClampMacro(FeatureAngle,double,0.0,180.0);
159  vtkGetMacro(FeatureAngle,double);
161 
163 
167  vtkSetClampMacro(EdgeAngle,double,0.0,180.0);
168  vtkGetMacro(EdgeAngle,double);
170 
172 
175  vtkSetMacro(BoundarySmoothing,int);
176  vtkGetMacro(BoundarySmoothing,int);
177  vtkBooleanMacro(BoundarySmoothing,int);
179 
181 
184  vtkSetMacro(GenerateErrorScalars,int);
185  vtkGetMacro(GenerateErrorScalars,int);
186  vtkBooleanMacro(GenerateErrorScalars,int);
188 
190 
193  vtkSetMacro(GenerateErrorVectors,int);
194  vtkGetMacro(GenerateErrorVectors,int);
195  vtkBooleanMacro(GenerateErrorVectors,int);
197 
199 
204  void SetSourceData(vtkPolyData *source);
205  vtkPolyData *GetSource();
207 
209 
214  vtkSetMacro(OutputPointsPrecision,int);
215  vtkGetMacro(OutputPointsPrecision,int);
217 
218 protected:
220  ~vtkSmoothPolyDataFilter() VTK_OVERRIDE {}
221 
223  int FillInputPortInformation(int port, vtkInformation *info) VTK_OVERRIDE;
224 
225  double Convergence;
229  double FeatureAngle;
230  double EdgeAngle;
235 
236  vtkSmoothPoints *SmoothPoints;
237 private:
238  vtkSmoothPolyDataFilter(const vtkSmoothPolyDataFilter&) VTK_DELETE_FUNCTION;
239  void operator=(const vtkSmoothPolyDataFilter&) VTK_DELETE_FUNCTION;
240 };
241 
242 #endif
Store vtkAlgorithm input/output information.
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
#define VTK_INT_MAX
Definition: vtkType.h:157
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:79
static vtkPolyDataAlgorithm * New()
Superclass for algorithms that produce only polydata as output.
a simple class to control print indentation
Definition: vtkIndent.h:33
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
boost::graph_traits< vtkGraph *>::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
Store zero or more vtkInformation instances.
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
adjust point positions using Laplacian smoothing