VTK  9.7.1
vtkOrientPolyData.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
15 #ifndef vtkOrientPolyData_h
16 #define vtkOrientPolyData_h
17 
18 #include "vtkFiltersCoreModule.h" // For export macro
19 #include "vtkPolyDataAlgorithm.h"
20 #include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
21 
22 VTK_ABI_NAMESPACE_BEGIN
23 class vtkIdList;
24 
25 class VTKFILTERSCORE_EXPORT VTK_MARSHALAUTO vtkOrientPolyData : public vtkPolyDataAlgorithm
26 {
27 public:
28  static vtkOrientPolyData* New();
30  void PrintSelf(ostream& os, vtkIndent indent) override;
31 
33 
38  vtkSetMacro(Consistency, bool);
39  vtkGetMacro(Consistency, bool);
40  vtkBooleanMacro(Consistency, bool);
42 
44 
57  vtkSetMacro(AutoOrientNormals, bool);
58  vtkGetMacro(AutoOrientNormals, bool);
59  vtkBooleanMacro(AutoOrientNormals, bool);
61 
63 
70  vtkSetMacro(NonManifoldTraversal, bool);
71  vtkGetMacro(NonManifoldTraversal, bool);
72  vtkBooleanMacro(NonManifoldTraversal, bool);
74 
76 
84  vtkSetMacro(FlipNormals, bool);
85  vtkGetMacro(FlipNormals, bool);
86  vtkBooleanMacro(FlipNormals, bool);
88 
89 protected:
91  ~vtkOrientPolyData() override;
92 
94 
99 
100 private:
101  vtkOrientPolyData(const vtkOrientPolyData&) = delete;
102  void operator=(const vtkOrientPolyData&) = delete;
103 
104  void TraverseAndOrder(vtkPolyData* input, vtkPolyData* output, vtkIdList* wave, vtkIdList* wave2,
105  vtkIdList* cellPointIds, vtkIdList* cellIds, vtkIdList* neighborPointIds,
106  std::vector<char>& visited, vtkIdType& numFlips);
107 };
108 VTK_ABI_NAMESPACE_END
109 
110 #endif // vtkOrientPolyData_h
Store vtkAlgorithm input/output information.
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
int vtkIdType
Definition: vtkType.h:363
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:71
static vtkPolyDataAlgorithm * New()
Auto detect correct normal orientation and/or enforce consistent polygon ordering.
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
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.