VTK  9.7.1
vtkIntegrationLinearStrategy.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 vtkIntegrationLinearStrategy_h
16 #define vtkIntegrationLinearStrategy_h
17 
18 #include "vtkFiltersParallelModule.h" // For export macro
19 #include "vtkIntegrationStrategy.h"
20 
21 VTK_ABI_NAMESPACE_BEGIN
22 class vtkDataSet;
24 class vtkGenericCell;
27 
28 class VTKFILTERSPARALLEL_EXPORT vtkIntegrationLinearStrategy : public vtkIntegrationStrategy
29 {
30 public:
32  void PrintSelf(ostream& os, vtkIndent indent) override;
34 
36 
39  void IntegratePolyLine(vtkDataSet* input, vtkUnstructuredGrid* output, vtkIdType cellId,
40  vtkIdType numPts, const vtkIdType* cellPtIds, double& sum, double sumCenter[3],
42  int index) override;
43 
44  void IntegratePolygon(vtkDataSet* input, vtkUnstructuredGrid* output, vtkIdType cellId,
45  vtkIdType numPts, const vtkIdType* cellPtIds, double& sum, double sumCenter[3],
47  int index) override;
48 
50  vtkIdType numPts, const vtkIdType* cellPtIds, double& sum, double sumCenter[3],
52  int index) override;
53 
54  void IntegrateTriangle(vtkDataSet* input, vtkUnstructuredGrid* output, vtkIdType cellId,
55  vtkIdType pt1Id, vtkIdType pt2Id, vtkIdType pt3Id, double& sum, double sumCenter[3],
57  int index) override;
58 
59  void IntegrateQuad(vtkDataSet* input, vtkUnstructuredGrid* output, vtkIdType cellId,
60  vtkIdType pt1Id, vtkIdType pt2Id, vtkIdType pt3Id, vtkIdType pt4Id, double& sum,
61  double sumCenter[3], vtkIntegrateAttributesFieldList& cellFieldList,
62  vtkIntegrateAttributesFieldList& pointFieldList, int index) override;
63 
64  void IntegrateTetrahedron(vtkDataSet* input, vtkUnstructuredGrid* output, vtkIdType cellId,
65  vtkIdType pt1Id, vtkIdType pt2Id, vtkIdType pt3Id, vtkIdType pt4Id, double& sum,
66  double sumCenter[3], vtkIntegrateAttributesFieldList& cellFieldList,
67  vtkIntegrateAttributesFieldList& pointFieldList, int index) override;
68 
69  void IntegratePixel(vtkDataSet* input, vtkUnstructuredGrid* output, vtkIdType cellId,
70  vtkIdType numPts, const vtkIdType* cellPtIds, double& sum, double sumCenter[3],
72  int index) override;
73 
74  void IntegrateVoxel(vtkDataSet* input, vtkUnstructuredGrid* output, vtkIdType cellId,
75  vtkIdType numPts, const vtkIdType* cellPtIds, double& sum, double sumCenter[3],
77  int index) override;
78 
80  vtkIdType cellId, vtkIdType numPts, const vtkIdType* cellPtIds, vtkIdList* cellPtIdsList,
81  double& sum, double sumCenter[3], vtkIntegrateAttributesFieldList& cellFieldList,
82  vtkIntegrateAttributesFieldList& pointFieldList, int index) override;
83 
84  void IntegrateWedge(vtkDataSet* input, vtkUnstructuredGrid* output, vtkGenericCell* cell,
85  vtkIdType cellId, vtkIdType numPts, const vtkIdType* cellPtIds, vtkIdList* cellPtIdsList,
86  double& sum, double sumCenter[3], vtkIntegrateAttributesFieldList& cellFieldList,
87  vtkIntegrateAttributesFieldList& pointFieldList, int index) override;
88 
90  vtkIdType cellId, vtkIdType numPts, const vtkIdType* cellPtIds, vtkIdList* cellPtIdsList,
91  double& sum, double sumCenter[3], vtkIntegrateAttributesFieldList& cellFieldList,
92  vtkIntegrateAttributesFieldList& pointFieldList, int index) override;
93 
95  vtkIdType numPts, const vtkIdType* cellPtIds, double& sum, double sumCenter[3],
97  int index) override;
98 
100  vtkIdType numPts, const vtkIdType* cellPtIds, double& sum, double sumCenter[3],
102  int index) override;
103 
104  void IntegrateGeneral3DCell(vtkDataSet* input, vtkUnstructuredGrid* output, vtkIdType cellId,
105  vtkIdType numPts, const vtkIdType* cellPtIds, double& sum, double sumCenter[3],
107  int index) override;
108 
110  vtkIdType cellId, vtkIdType numPts, vtkIdList* cellPtIds, double& sum, double sumCenter[3],
112  int index) override;
114 
116 
120  double volume, vtkIntegrateAttributesFieldList& fieldlist, int fieldlist_index) override;
121 
123  vtkIdType pt2Id, double volume, vtkIntegrateAttributesFieldList& fieldlist,
124  int fieldlist_index) override;
125 
127  vtkIdType pt2Id, vtkIdType pt3Id, double volume, vtkIntegrateAttributesFieldList& fieldlist,
128  int fieldlist_index) override;
129 
131  vtkIdType pt2Id, vtkIdType pt3Id, vtkIdType pt4Id, double volume,
132  vtkIntegrateAttributesFieldList& fieldlist, int fieldlist_index) override;
134 
135 protected:
136  vtkIntegrationLinearStrategy() = default;
137  ~vtkIntegrationLinearStrategy() override = default;
138 
139 private:
141  void operator=(const vtkIntegrationLinearStrategy&) = delete;
142 };
143 
144 VTK_ABI_NAMESPACE_END
145 #endif
virtual void IntegrateDefault(vtkDataSet *input, vtkUnstructuredGrid *output, vtkGenericCell *cell, vtkIdType cellId, vtkIdType numPts, vtkIdList *cellPtIds, double &sum, double sumCenter[3], vtkIntegrateAttributesFieldList &cellFieldList, vtkIntegrateAttributesFieldList &pointFieldList, int index)=0
Function to integrate the specified cell type.
virtual void IntegrateTetrahedron(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdType pt1Id, vtkIdType pt2Id, vtkIdType pt3Id, vtkIdType pt4Id, double &sum, double sumCenter[3], vtkIntegrateAttributesFieldList &cellFieldList, vtkIntegrateAttributesFieldList &pointFieldList, int index)=0
Function to integrate the specified cell type.
virtual void IntegrateTriangleStrip(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdType numPts, const vtkIdType *cellPtIds, double &sum, double sumCenter[3], vtkIntegrateAttributesFieldList &cellFieldList, vtkIntegrateAttributesFieldList &pointFieldList, int index)=0
Function to integrate the specified cell type.
virtual void IntegratePixel(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdType numPts, const vtkIdType *cellPtIds, double &sum, double sumCenter[3], vtkIntegrateAttributesFieldList &cellFieldList, vtkIntegrateAttributesFieldList &pointFieldList, int index)=0
Function to integrate the specified cell type.
abstract class to specify dataset behavior
Definition: vtkDataSet.h:56
virtual void IntegrateTriangle(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdType pt1Id, vtkIdType pt2Id, vtkIdType pt3Id, double &sum, double sumCenter[3], vtkIntegrateAttributesFieldList &cellFieldList, vtkIntegrateAttributesFieldList &pointFieldList, int index)=0
Function to integrate the specified cell type.
virtual void IntegratePolygon(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdType numPts, const vtkIdType *cellPtIds, double &sum, double sumCenter[3], vtkIntegrateAttributesFieldList &cellFieldList, vtkIntegrateAttributesFieldList &pointFieldList, int index)=0
Function to integrate the specified cell type.
int vtkIdType
Definition: vtkType.h:363
virtual void IntegrateVoxel(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdType numPts, const vtkIdType *cellPtIds, double &sum, double sumCenter[3], vtkIntegrateAttributesFieldList &cellFieldList, vtkIntegrateAttributesFieldList &pointFieldList, int index)=0
Function to integrate the specified cell type.
abstract class to define an integration strategy for vtkIntegrateAttributes
provides thread-safe access to cells
virtual void IntegrateQuad(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdType pt1Id, vtkIdType pt2Id, vtkIdType pt3Id, vtkIdType pt4Id, double &sum, double sumCenter[3], vtkIntegrateAttributesFieldList &cellFieldList, vtkIntegrateAttributesFieldList &pointFieldList, int index)=0
Function to integrate the specified cell type.
virtual void IntegrateData1(vtkDataSetAttributes *inda, vtkDataSetAttributes *outda, vtkIdType pt1Id, double k, vtkIntegrateAttributesFieldList &fieldlist, int fieldlist_index)=0
Integrates on data arrays depending on the number of node of the shape.
virtual void IntegrateHexahedron(vtkDataSet *input, vtkUnstructuredGrid *output, vtkGenericCell *cell, vtkIdType cellId, vtkIdType numPts, const vtkIdType *cellPtIds, vtkIdList *cellPtIdsList, double &sum, double sumCenter[3], vtkIntegrateAttributesFieldList &cellFieldList, vtkIntegrateAttributesFieldList &pointFieldList, int index)=0
Function to integrate the specified cell type.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
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
virtual void IntegrateGeneral2DCell(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdType numPts, const vtkIdType *cellPtIds, double &sum, double sumCenter[3], vtkIntegrateAttributesFieldList &cellFieldList, vtkIntegrateAttributesFieldList &pointFieldList, int index)=0
Function to integrate the specified cell type.
virtual void IntegratePyramid(vtkDataSet *input, vtkUnstructuredGrid *output, vtkGenericCell *cell, vtkIdType cellId, vtkIdType numPts, const vtkIdType *cellPtIds, vtkIdList *cellPtIdsList, double &sum, double sumCenter[3], vtkIntegrateAttributesFieldList &cellFieldList, vtkIntegrateAttributesFieldList &pointFieldList, int index)=0
Function to integrate the specified cell type.
represent and manipulate attribute data in a dataset
virtual void IntegratePolyLine(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdType numPts, const vtkIdType *cellPtIds, double &sum, double sumCenter[3], vtkIntegrateAttributesFieldList &cellFieldList, vtkIntegrateAttributesFieldList &pointFieldList, int index)=0
Function to integrate the specified cell type.
virtual void IntegrateData4(vtkDataSetAttributes *inda, vtkDataSetAttributes *outda, vtkIdType pt1Id, vtkIdType pt2Id, vtkIdType pt3Id, vtkIdType pt4Id, double k, vtkIntegrateAttributesFieldList &fieldlist, int fieldlist_index)=0
Integrates on data arrays depending on the number of node of the shape.
virtual void IntegrateData2(vtkDataSetAttributes *inda, vtkDataSetAttributes *outda, vtkIdType pt1Id, vtkIdType pt2Id, double k, vtkIntegrateAttributesFieldList &fieldlist, int fieldlist_index)=0
Integrates on data arrays depending on the number of node of the shape.
virtual void IntegrateGeneral3DCell(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdType numPts, const vtkIdType *cellPtIds, double &sum, double sumCenter[3], vtkIntegrateAttributesFieldList &cellFieldList, vtkIntegrateAttributesFieldList &pointFieldList, int index)=0
Function to integrate the specified cell type.
Linear Integration Strategy.
virtual void IntegrateWedge(vtkDataSet *input, vtkUnstructuredGrid *output, vtkGenericCell *cell, vtkIdType cellId, vtkIdType numPts, const vtkIdType *cellPtIds, vtkIdList *cellPtIdsList, double &sum, double sumCenter[3], vtkIntegrateAttributesFieldList &cellFieldList, vtkIntegrateAttributesFieldList &pointFieldList, int index)=0
Function to integrate the specified cell type.
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
virtual void IntegrateData3(vtkDataSetAttributes *inda, vtkDataSetAttributes *outda, vtkIdType pt1Id, vtkIdType pt2Id, vtkIdType pt3Id, double k, vtkIntegrateAttributesFieldList &fieldlist, int fieldlist_index)=0
Integrates on data arrays depending on the number of node of the shape.
virtual void IntegrateGeneral1DCell(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdType numPts, const vtkIdType *cellPtIds, double &sum, double sumCenter[3], vtkIntegrateAttributesFieldList &cellFieldList, vtkIntegrateAttributesFieldList &pointFieldList, int index)=0
Function to integrate the specified cell type.