VTK  9.7.1
vtkSmoothPolyDataFilter.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
86 #ifndef vtkSmoothPolyDataFilter_h
87 #define vtkSmoothPolyDataFilter_h
88 
89 #include "vtkFiltersCoreModule.h" // For export macro
90 #include "vtkPolyDataAlgorithm.h"
91 #include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
92 #include <memory> // For std::unique_ptr<>
93 
94 VTK_ABI_NAMESPACE_BEGIN
95 class vtkSmoothPoints;
96 
97 class VTKFILTERSCORE_EXPORT VTK_MARSHALAUTO vtkSmoothPolyDataFilter : public vtkPolyDataAlgorithm
98 {
99 public:
107  static vtkSmoothPolyDataFilter* New();
108 
110 
115  void PrintSelf(ostream& os, vtkIndent indent) override;
117 
119 
123  vtkSetClampMacro(Convergence, double, 0.0, 1.0);
124  vtkGetMacro(Convergence, double);
126 
128 
131  vtkSetClampMacro(NumberOfIterations, int, 0, VTK_INT_MAX);
132  vtkGetMacro(NumberOfIterations, int);
134 
136 
143  vtkSetMacro(RelaxationFactor, double);
144  vtkGetMacro(RelaxationFactor, double);
146 
148 
151  vtkSetMacro(FeatureEdgeSmoothing, vtkTypeBool);
152  vtkGetMacro(FeatureEdgeSmoothing, vtkTypeBool);
153  vtkBooleanMacro(FeatureEdgeSmoothing, vtkTypeBool);
155 
157 
160  vtkSetClampMacro(FeatureAngle, double, 0.0, 180.0);
161  vtkGetMacro(FeatureAngle, double);
163 
165 
169  vtkSetClampMacro(EdgeAngle, double, 0.0, 180.0);
170  vtkGetMacro(EdgeAngle, double);
172 
174 
177  vtkSetMacro(BoundarySmoothing, vtkTypeBool);
178  vtkGetMacro(BoundarySmoothing, vtkTypeBool);
179  vtkBooleanMacro(BoundarySmoothing, vtkTypeBool);
181 
183 
186  vtkSetMacro(GenerateErrorScalars, vtkTypeBool);
187  vtkGetMacro(GenerateErrorScalars, vtkTypeBool);
188  vtkBooleanMacro(GenerateErrorScalars, vtkTypeBool);
190 
192 
195  vtkSetMacro(GenerateErrorVectors, vtkTypeBool);
196  vtkGetMacro(GenerateErrorVectors, vtkTypeBool);
197  vtkBooleanMacro(GenerateErrorVectors, vtkTypeBool);
199 
201 
206  void SetSourceData(vtkPolyData* source);
207  vtkPolyData* GetSource();
209 
211 
216  vtkSetMacro(OutputPointsPrecision, int);
217  vtkGetMacro(OutputPointsPrecision, int);
219 
220 protected:
222  ~vtkSmoothPolyDataFilter() override;
223 
225  int FillInputPortInformation(int port, vtkInformation* info) override;
226 
227  double Convergence;
231  double FeatureAngle;
232  double EdgeAngle;
237 
238  std::unique_ptr<vtkSmoothPoints> SmoothPoints;
239 
240 private:
242  void operator=(const vtkSmoothPolyDataFilter&) = delete;
243 };
244 
245 VTK_ABI_NAMESPACE_END
246 #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:192
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:71
static vtkPolyDataAlgorithm * New()
int vtkTypeBool
Definition: vtkABI.h:64
Superclass for algorithms that produce only polydata as output.
a simple class to control print indentation
Definition: vtkIndent.h:28
std::unique_ptr< vtkSmoothPoints > SmoothPoints
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.
#define VTK_MARSHALAUTO
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