VTK  9.3.1
vtkDataSetRegionSurfaceFilter.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-FileCopyrightText: Copyright (c) Kitware, Inc.
3 // SPDX-License-Identifier: BSD-3-Clause
18 #ifndef vtkDataSetRegionSurfaceFilter_h
19 #define vtkDataSetRegionSurfaceFilter_h
20 
21 #include "vtkFiltersGeometryModule.h" // For export macro
22 
24 
25 VTK_ABI_NAMESPACE_BEGIN
26 class vtkCharArray;
27 
28 class VTKFILTERSGEOMETRY_EXPORT vtkDataSetRegionSurfaceFilter : public vtkDataSetSurfaceFilter
29 {
30 public:
33  void PrintSelf(ostream& os, vtkIndent indent) override;
34 
36 
40  vtkSetStringMacro(RegionArrayName);
41  vtkGetStringMacro(RegionArrayName);
43 
44  int UnstructuredGridExecute(vtkDataSet* input, vtkPolyData* output) override;
45 
46  // make it clear we want all the recordOrigCellId signatures from our parent
48 
49  // override one of the signatures
50  void RecordOrigCellId(vtkIdType newIndex, vtkFastGeomQuad* quad) override;
51 
53 
57  vtkSetMacro(SingleSided, bool);
58  vtkGetMacro(SingleSided, bool);
60 
62 
66  vtkSetStringMacro(MaterialPropertiesName);
67  vtkGetStringMacro(MaterialPropertiesName);
69 
71 
75  vtkSetStringMacro(MaterialIDsName);
76  vtkGetStringMacro(MaterialIDsName);
78 
80 
84  vtkSetStringMacro(MaterialPIDsName);
85  vtkGetStringMacro(MaterialPIDsName);
87 
89 
93  vtkSetStringMacro(InterfaceIDsName);
94  vtkGetStringMacro(InterfaceIDsName);
96 
97 protected:
100 
101  int FillInputPortInformation(int port, vtkInformation* info) override;
102 
105 
106  virtual void InsertQuadInHash(
107  vtkIdType a, vtkIdType b, vtkIdType c, vtkIdType d, vtkIdType sourceId, vtkIdType faceId);
109  vtkIdType a, vtkIdType b, vtkIdType c, vtkIdType d, vtkIdType sourceId) override
110  {
111  this->InsertQuadInHash(a, b, c, d, sourceId, -1); // for -Woverloaded-virtual comp warning
112  }
113 
114  void InsertTriInHash(
115  vtkIdType a, vtkIdType b, vtkIdType c, vtkIdType sourceId, vtkIdType faceId) override;
116  virtual void InsertTriInHash(vtkIdType a, vtkIdType b, vtkIdType c, vtkIdType sourceId)
117  {
118  this->InsertTriInHash(a, b, c, sourceId, -1); // for -Woverloaded-virtual comp warning
119  }
120 
122 
123 private:
125  void operator=(const vtkDataSetRegionSurfaceFilter&) = delete;
126 
127  char* RegionArrayName;
128  vtkIntArray* RegionArray;
129  vtkIdTypeArray* OrigCellIds;
130  vtkCharArray* CellFaceIds;
131  bool SingleSided;
132  char* MaterialPropertiesName;
133  char* MaterialIDsName;
134  char* MaterialPIDsName;
135  char* InterfaceIDsName;
136 
137  class Internals;
138  Internals* Internal;
139 };
140 
141 VTK_ABI_NAMESPACE_END
142 #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:52
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:315
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:79
dynamic, self-adjusting array of char
Definition: vtkCharArray.h:40
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:34
vtkFastGeomQuad * GetNextVisibleQuadFromHash()
a simple class to control print indentation
Definition: vtkIndent.h:28
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.