VTK  9.7.1
vtkPolyDataNormals.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
58 #ifndef vtkPolyDataNormals_h
59 #define vtkPolyDataNormals_h
60 
61 #include "vtkFiltersCoreModule.h" // For export macro
62 #include "vtkPolyDataAlgorithm.h"
63 #include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
64 
65 VTK_ABI_NAMESPACE_BEGIN
66 class vtkFloatArray;
67 class vtkIdList;
68 class vtkPolyData;
69 
70 class VTKFILTERSCORE_EXPORT VTK_MARSHALAUTO vtkPolyDataNormals : public vtkPolyDataAlgorithm
71 {
72 public:
74  void PrintSelf(ostream& os, vtkIndent indent) override;
75 
81  static vtkPolyDataNormals* New();
82 
84 
91  vtkSetClampMacro(FeatureAngle, double, 0.0, 180.0);
92  vtkGetMacro(FeatureAngle, double);
94 
96 
103  vtkSetMacro(Splitting, vtkTypeBool);
104  vtkGetMacro(Splitting, vtkTypeBool);
105  vtkBooleanMacro(Splitting, vtkTypeBool);
107 
109 
114  vtkSetMacro(Consistency, vtkTypeBool);
115  vtkGetMacro(Consistency, vtkTypeBool);
116  vtkBooleanMacro(Consistency, vtkTypeBool);
118 
120 
133  vtkSetMacro(AutoOrientNormals, vtkTypeBool);
134  vtkGetMacro(AutoOrientNormals, vtkTypeBool);
135  vtkBooleanMacro(AutoOrientNormals, vtkTypeBool);
137 
139 
144  vtkSetMacro(ComputePointNormals, vtkTypeBool);
145  vtkGetMacro(ComputePointNormals, vtkTypeBool);
146  vtkBooleanMacro(ComputePointNormals, vtkTypeBool);
148 
150 
155  vtkSetMacro(ComputeCellNormals, vtkTypeBool);
156  vtkGetMacro(ComputeCellNormals, vtkTypeBool);
157  vtkBooleanMacro(ComputeCellNormals, vtkTypeBool);
159 
161 
169  vtkSetMacro(FlipNormals, vtkTypeBool);
170  vtkGetMacro(FlipNormals, vtkTypeBool);
171  vtkBooleanMacro(FlipNormals, vtkTypeBool);
173 
175 
182  vtkSetMacro(NonManifoldTraversal, vtkTypeBool);
183  vtkGetMacro(NonManifoldTraversal, vtkTypeBool);
184  vtkBooleanMacro(NonManifoldTraversal, vtkTypeBool);
186 
188 
195  vtkSetClampMacro(OutputPointsPrecision, int, SINGLE_PRECISION, DEFAULT_PRECISION);
196  vtkGetMacro(OutputPointsPrecision, int);
198 
199  static vtkSmartPointer<vtkFloatArray> GetCellNormals(vtkPolyData* data);
200  static vtkSmartPointer<vtkFloatArray> GetPointNormals(
201  vtkPolyData* data, vtkFloatArray* cellNormals, double flipDirection = 1.0);
202 
203 protected:
205  ~vtkPolyDataNormals() override = default;
206 
207  // Usual data generation method
209 
210  double FeatureAngle;
219 
220 private:
221  vtkPolyDataNormals(const vtkPolyDataNormals&) = delete;
222  void operator=(const vtkPolyDataNormals&) = delete;
223 };
224 
225 VTK_ABI_NAMESPACE_END
226 #endif
Store vtkAlgorithm input/output information.
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
dynamic, self-adjusting array of float
Definition: vtkFloatArray.h:31
vtkTypeBool AutoOrientNormals
vtkTypeBool ComputePointNormals
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
list of point or cell ids
Definition: vtkIdList.h:25
#define vtkPolyDataNormals
compute normals for polygonal mesh
Store zero or more vtkInformation instances.
#define VTK_MARSHALAUTO
vtkTypeBool NonManifoldTraversal
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkTypeBool ComputeCellNormals