VTK  9.3.20240328
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
167 #ifndef vtkPolyDataNormals_h
168 #define vtkPolyDataNormals_h
169 
170 #include "vtkFiltersCoreModule.h" // For export macro
171 #include "vtkPolyDataAlgorithm.h"
172 
173 VTK_ABI_NAMESPACE_BEGIN
174 class vtkFloatArray;
175 class vtkIdList;
176 class vtkPolyData;
177 
178 class VTKFILTERSCORE_EXPORT vtkPolyDataNormals : public vtkPolyDataAlgorithm
179 {
180 public:
182  void PrintSelf(ostream& os, vtkIndent indent) override;
183 
190 
192 
199  vtkSetClampMacro(FeatureAngle, double, 0.0, 180.0);
200  vtkGetMacro(FeatureAngle, double);
202 
204 
211  vtkSetMacro(Splitting, vtkTypeBool);
212  vtkGetMacro(Splitting, vtkTypeBool);
213  vtkBooleanMacro(Splitting, vtkTypeBool);
215 
217 
222  vtkSetMacro(Consistency, vtkTypeBool);
223  vtkGetMacro(Consistency, vtkTypeBool);
224  vtkBooleanMacro(Consistency, vtkTypeBool);
226 
228 
241  vtkSetMacro(AutoOrientNormals, vtkTypeBool);
242  vtkGetMacro(AutoOrientNormals, vtkTypeBool);
243  vtkBooleanMacro(AutoOrientNormals, vtkTypeBool);
245 
247 
252  vtkSetMacro(ComputePointNormals, vtkTypeBool);
253  vtkGetMacro(ComputePointNormals, vtkTypeBool);
254  vtkBooleanMacro(ComputePointNormals, vtkTypeBool);
256 
258 
263  vtkSetMacro(ComputeCellNormals, vtkTypeBool);
264  vtkGetMacro(ComputeCellNormals, vtkTypeBool);
265  vtkBooleanMacro(ComputeCellNormals, vtkTypeBool);
267 
269 
277  vtkSetMacro(FlipNormals, vtkTypeBool);
278  vtkGetMacro(FlipNormals, vtkTypeBool);
279  vtkBooleanMacro(FlipNormals, vtkTypeBool);
281 
283 
290  vtkSetMacro(NonManifoldTraversal, vtkTypeBool);
291  vtkGetMacro(NonManifoldTraversal, vtkTypeBool);
292  vtkBooleanMacro(NonManifoldTraversal, vtkTypeBool);
294 
296 
303  vtkSetClampMacro(OutputPointsPrecision, int, SINGLE_PRECISION, DEFAULT_PRECISION);
304  vtkGetMacro(OutputPointsPrecision, int);
306 
309  vtkPolyData* data, vtkFloatArray* cellNormals, double flipDirection = 1.0);
310 
311 protected:
313  ~vtkPolyDataNormals() override = default;
314 
315  // Usual data generation method
317 
318  double FeatureAngle;
327 
328 private:
329  vtkPolyDataNormals(const vtkPolyDataNormals&) = delete;
330  void operator=(const vtkPolyDataNormals&) = delete;
331 };
332 
333 VTK_ABI_NAMESPACE_END
334 #endif
dynamic, self-adjusting array of float
list of point or cell ids
Definition: vtkIdList.h:132
a simple class to control print indentation
Definition: vtkIndent.h:108
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Superclass for algorithms that produce only polydata as output.
compute normals for polygonal mesh
static vtkPolyDataNormals * New()
Construct with feature angle=30, splitting and consistency turned on, flipNormals turned off,...
~vtkPolyDataNormals() override=default
static vtkSmartPointer< vtkFloatArray > GetPointNormals(vtkPolyData *data, vtkFloatArray *cellNormals, double flipDirection=1.0)
static vtkSmartPointer< vtkFloatArray > GetCellNormals(vtkPolyData *data)
vtkTypeBool NonManifoldTraversal
vtkTypeBool ComputeCellNormals
vtkTypeBool ComputePointNormals
vtkTypeBool AutoOrientNormals
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:180
@ data
Definition: vtkX3D.h:315
int vtkTypeBool
Definition: vtkABI.h:64