VTK  9.2.6
vtkDataSetRegionSurfaceFilter.h
Go to the documentation of this file.
1 //=========================================================================
2 // Copyright (c) Kitware, Inc.
3 // All rights reserved.
4 // See LICENSE.txt for details.
5 //
6 // This software is distributed WITHOUT ANY WARRANTY; without even
7 // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
8 // PURPOSE. See the above copyright notice for more information.
9 //=========================================================================
24 #ifndef vtkDataSetRegionSurfaceFilter_h
25 #define vtkDataSetRegionSurfaceFilter_h
26 
27 #include "vtkFiltersGeometryModule.h" // For export macro
28 
30 
31 class vtkCharArray;
32 
33 class VTKFILTERSGEOMETRY_EXPORT vtkDataSetRegionSurfaceFilter : public vtkDataSetSurfaceFilter
34 {
35 public:
38  void PrintSelf(ostream& os, vtkIndent indent) override;
39 
41 
45  vtkSetStringMacro(RegionArrayName);
46  vtkGetStringMacro(RegionArrayName);
48 
49  int UnstructuredGridExecute(vtkDataSet* input, vtkPolyData* output) override;
50 
51  // make it clear we want all the recordOrigCellId signatures from our parent
53 
54  // override one of the signatures
55  void RecordOrigCellId(vtkIdType newIndex, vtkFastGeomQuad* quad) override;
56 
58 
62  vtkSetMacro(SingleSided, bool);
63  vtkGetMacro(SingleSided, bool);
65 
67 
71  vtkSetStringMacro(MaterialPropertiesName);
72  vtkGetStringMacro(MaterialPropertiesName);
74 
76 
80  vtkSetStringMacro(MaterialIDsName);
81  vtkGetStringMacro(MaterialIDsName);
83 
85 
89  vtkSetStringMacro(MaterialPIDsName);
90  vtkGetStringMacro(MaterialPIDsName);
92 
94 
98  vtkSetStringMacro(InterfaceIDsName);
99  vtkGetStringMacro(InterfaceIDsName);
101 
102 protected:
104  ~vtkDataSetRegionSurfaceFilter() override;
105 
106  int FillInputPortInformation(int port, vtkInformation* info) override;
107 
110 
111  virtual void InsertQuadInHash(
112  vtkIdType a, vtkIdType b, vtkIdType c, vtkIdType d, vtkIdType sourceId, vtkIdType faceId);
114  vtkIdType a, vtkIdType b, vtkIdType c, vtkIdType d, vtkIdType sourceId) override
115  {
116  this->InsertQuadInHash(a, b, c, d, sourceId, -1); // for -Woverloaded-virtual comp warning
117  }
118 
119  void InsertTriInHash(
120  vtkIdType a, vtkIdType b, vtkIdType c, vtkIdType sourceId, vtkIdType faceId) override;
121  virtual void InsertTriInHash(vtkIdType a, vtkIdType b, vtkIdType c, vtkIdType sourceId)
122  {
123  this->InsertTriInHash(a, b, c, sourceId, -1); // for -Woverloaded-virtual comp warning
124  }
125 
127 
128 private:
130  void operator=(const vtkDataSetRegionSurfaceFilter&) = delete;
131 
132  char* RegionArrayName;
133  vtkIntArray* RegionArray;
134  vtkIdTypeArray* OrigCellIds;
135  vtkCharArray* CellFaceIds;
136  bool SingleSided;
137  char* MaterialPropertiesName;
138  char* MaterialIDsName;
139  char* MaterialPIDsName;
140  char* InterfaceIDsName;
141 
142  class Internals;
143  Internals* Internal;
144 };
145 
146 #endif
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
Store vtkAlgorithm input/output information.
abstract class to specify dataset behavior
Definition: vtkDataSet.h:62
virtual void InsertTriInHash(vtkIdType a, vtkIdType b, vtkIdType c, vtkIdType sourceId, vtkIdType faceId=-1)
virtual void InsertQuadInHash(vtkIdType a, vtkIdType b, vtkIdType c, vtkIdType d, vtkIdType sourceId)
virtual void InsertTriInHash(vtkIdType a, vtkIdType b, vtkIdType c, vtkIdType sourceId)
dynamic, self-adjusting array of vtkIdType
int vtkIdType
Definition: vtkType.h:332
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:90
dynamic, self-adjusting array of char
Definition: vtkCharArray.h:51
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:45
vtkFastGeomQuad * GetNextVisibleQuadFromHash()
a simple class to control print indentation
Definition: vtkIndent.h:39
void PrintSelf(ostream &os, vtkIndent indent) override
Statndard methods for object instantiation, type information, and printing.
Extract surface of materials.
static vtkDataSetSurfaceFilter * New()
Statndard methods for object instantiation, type information, and printing.
void InsertQuadInHash(vtkIdType a, vtkIdType b, vtkIdType c, vtkIdType d, vtkIdType sourceId) override
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
Store zero or more vtkInformation instances.
Extracts outer surface (as vtkPolyData) of any dataset.
void RecordOrigCellId(vtkIdType newIndex, vtkIdType origId)
virtual int UnstructuredGridExecute(vtkDataSet *input, vtkPolyData *output)
Execute the filter on input and store the result in output.