VTK  9.7.1
vtkIntegrationStrategy.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
11 #ifndef vtkIntegrationStrategy_h
12 #define vtkIntegrationStrategy_h
13 
14 #include "vtkFiltersParallelModule.h" // For export macro
15 #include "vtkObject.h"
16 
17 VTK_ABI_NAMESPACE_BEGIN
18 class vtkDataSet;
20 class vtkGenericCell;
21 class vtkIdList;
24 
25 class VTKFILTERSPARALLEL_EXPORT vtkIntegrationStrategy : public vtkObject
26 {
27 public:
28  void PrintSelf(ostream& os, vtkIndent indent) override;
30 
32 
35  virtual void IntegratePolyLine(vtkDataSet* input, vtkUnstructuredGrid* output, vtkIdType cellId,
36  vtkIdType numPts, const vtkIdType* cellPtIds, double& sum, double sumCenter[3],
38  int index) = 0;
39 
40  virtual void IntegratePolygon(vtkDataSet* input, vtkUnstructuredGrid* output, vtkIdType cellId,
41  vtkIdType numPts, const vtkIdType* cellPtIds, double& sum, double sumCenter[3],
43  int index) = 0;
44 
45  virtual void IntegrateTriangleStrip(vtkDataSet* input, vtkUnstructuredGrid* output,
46  vtkIdType cellId, vtkIdType numPts, const vtkIdType* cellPtIds, double& sum,
47  double sumCenter[3], vtkIntegrateAttributesFieldList& cellFieldList,
48  vtkIntegrateAttributesFieldList& pointFieldList, int index) = 0;
49 
50  virtual void IntegrateTriangle(vtkDataSet* input, vtkUnstructuredGrid* output, vtkIdType cellId,
51  vtkIdType pt1Id, vtkIdType pt2Id, vtkIdType pt3Id, double& sum, double sumCenter[3],
53  int index) = 0;
54 
55  virtual void IntegrateQuad(vtkDataSet* input, vtkUnstructuredGrid* output, vtkIdType cellId,
56  vtkIdType pt1Id, vtkIdType pt2Id, vtkIdType pt3Id, vtkIdType pt4Id, double& sum,
57  double sumCenter[3], vtkIntegrateAttributesFieldList& cellFieldList,
58  vtkIntegrateAttributesFieldList& pointFieldList, int index) = 0;
59 
60  virtual void IntegrateTetrahedron(vtkDataSet* input, vtkUnstructuredGrid* output,
61  vtkIdType cellId, vtkIdType pt1Id, vtkIdType pt2Id, vtkIdType pt3Id, vtkIdType pt4Id,
62  double& sum, double sumCenter[3], vtkIntegrateAttributesFieldList& cellFieldList,
63  vtkIntegrateAttributesFieldList& pointFieldList, int index) = 0;
64 
65  virtual void IntegratePixel(vtkDataSet* input, vtkUnstructuredGrid* output, vtkIdType cellId,
66  vtkIdType numPts, const vtkIdType* cellPtIds, double& sum, double sumCenter[3],
68  int index) = 0;
69 
70  virtual void IntegrateVoxel(vtkDataSet* input, vtkUnstructuredGrid* output, vtkIdType cellId,
71  vtkIdType numPts, const vtkIdType* cellPtIds, double& sum, double sumCenter[3],
73  int index) = 0;
74 
75  virtual void IntegrateHexahedron(vtkDataSet* input, vtkUnstructuredGrid* output,
76  vtkGenericCell* cell, vtkIdType cellId, vtkIdType numPts, const vtkIdType* cellPtIds,
77  vtkIdList* cellPtIdsList, double& sum, double sumCenter[3],
79  int index) = 0;
80 
81  virtual void IntegrateWedge(vtkDataSet* input, vtkUnstructuredGrid* output, vtkGenericCell* cell,
82  vtkIdType cellId, vtkIdType numPts, const vtkIdType* cellPtIds, vtkIdList* cellPtIdsList,
83  double& sum, double sumCenter[3], vtkIntegrateAttributesFieldList& cellFieldList,
84  vtkIntegrateAttributesFieldList& pointFieldList, int index) = 0;
85 
86  virtual void IntegratePyramid(vtkDataSet* input, vtkUnstructuredGrid* output,
87  vtkGenericCell* cell, vtkIdType cellId, vtkIdType numPts, const vtkIdType* cellPtIds,
88  vtkIdList* cellPtIdsList, double& sum, double sumCenter[3],
90  int index) = 0;
91 
92  virtual void IntegrateGeneral1DCell(vtkDataSet* input, vtkUnstructuredGrid* output,
93  vtkIdType cellId, vtkIdType numPts, const vtkIdType* cellPtIds, double& sum,
94  double sumCenter[3], vtkIntegrateAttributesFieldList& cellFieldList,
95  vtkIntegrateAttributesFieldList& pointFieldList, int index) = 0;
96 
97  virtual void IntegrateGeneral2DCell(vtkDataSet* input, vtkUnstructuredGrid* output,
98  vtkIdType cellId, vtkIdType numPts, const vtkIdType* cellPtIds, double& sum,
99  double sumCenter[3], vtkIntegrateAttributesFieldList& cellFieldList,
100  vtkIntegrateAttributesFieldList& pointFieldList, int index) = 0;
101 
102  virtual void IntegrateGeneral3DCell(vtkDataSet* input, vtkUnstructuredGrid* output,
103  vtkIdType cellId, vtkIdType numPts, const vtkIdType* cellPtIds, double& sum,
104  double sumCenter[3], vtkIntegrateAttributesFieldList& cellFieldList,
105  vtkIntegrateAttributesFieldList& pointFieldList, int index) = 0;
106 
107  virtual void IntegrateDefault(vtkDataSet* input, vtkUnstructuredGrid* output,
108  vtkGenericCell* cell, vtkIdType cellId, vtkIdType numPts, vtkIdList* cellPtIds, double& sum,
109  double sumCenter[3], vtkIntegrateAttributesFieldList& cellFieldList,
110  vtkIntegrateAttributesFieldList& pointFieldList, int index) = 0;
112 
114 
117  virtual void IntegrateData1(vtkDataSetAttributes* inda, vtkDataSetAttributes* outda,
118  vtkIdType pt1Id, double k, vtkIntegrateAttributesFieldList& fieldlist, int fieldlist_index) = 0;
119 
120  virtual void IntegrateData2(vtkDataSetAttributes* inda, vtkDataSetAttributes* outda,
121  vtkIdType pt1Id, vtkIdType pt2Id, double k, vtkIntegrateAttributesFieldList& fieldlist,
122  int fieldlist_index) = 0;
123 
124  virtual void IntegrateData3(vtkDataSetAttributes* inda, vtkDataSetAttributes* outda,
125  vtkIdType pt1Id, vtkIdType pt2Id, vtkIdType pt3Id, double k,
126  vtkIntegrateAttributesFieldList& fieldlist, int fieldlist_index) = 0;
127 
128  virtual void IntegrateData4(vtkDataSetAttributes* inda, vtkDataSetAttributes* outda,
129  vtkIdType pt1Id, vtkIdType pt2Id, vtkIdType pt3Id, vtkIdType pt4Id, double k,
130  vtkIntegrateAttributesFieldList& fieldlist, int fieldlist_index) = 0;
132 
137  virtual void Initialize(vtkDataSet* input);
138 
139 protected:
140  vtkIntegrationStrategy() = default;
141  ~vtkIntegrationStrategy() override = default;
142 
143 private:
145  void operator=(const vtkIntegrationStrategy&) = delete;
146 };
147 
148 VTK_ABI_NAMESPACE_END
149 #endif
abstract base class for most VTK objects
Definition: vtkObject.h:52
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
abstract class to specify dataset behavior
Definition: vtkDataSet.h:56
int vtkIdType
Definition: vtkType.h:363
abstract class to define an integration strategy for vtkIntegrateAttributes
provides thread-safe access to cells
Helper class for vtkIntegrateAttributes.
a simple class to control print indentation
Definition: vtkIndent.h:28
list of point or cell ids
Definition: vtkIdList.h:25
dataset represents arbitrary combinations of all possible cell types
represent and manipulate attribute data in a dataset