VTK  9.4.20250509
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
17VTK_ABI_NAMESPACE_BEGIN
18class vtkDataSet;
20class vtkGenericCell;
21class vtkIdList;
24
25class VTKFILTERSPARALLEL_EXPORT vtkIntegrationStrategy : public vtkObject
26{
27public:
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
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
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
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
93 vtkIdType cellId, vtkIdType numPts, const vtkIdType* cellPtIds, double& sum,
94 double sumCenter[3], vtkIntegrateAttributesFieldList& cellFieldList,
95 vtkIntegrateAttributesFieldList& pointFieldList, int index) = 0;
96
98 vtkIdType cellId, vtkIdType numPts, const vtkIdType* cellPtIds, double& sum,
99 double sumCenter[3], vtkIntegrateAttributesFieldList& cellFieldList,
100 vtkIntegrateAttributesFieldList& pointFieldList, int index) = 0;
101
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
118 vtkIdType pt1Id, double k, vtkIntegrateAttributesFieldList& fieldlist, int fieldlist_index) = 0;
119
121 vtkIdType pt1Id, vtkIdType pt2Id, double k, vtkIntegrateAttributesFieldList& fieldlist,
122 int fieldlist_index) = 0;
123
125 vtkIdType pt1Id, vtkIdType pt2Id, vtkIdType pt3Id, double k,
126 vtkIntegrateAttributesFieldList& fieldlist, int fieldlist_index) = 0;
127
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
139protected:
141 ~vtkIntegrationStrategy() override = default;
142
143private:
145 void operator=(const vtkIntegrationStrategy&) = delete;
146};
147
148VTK_ABI_NAMESPACE_END
149#endif
represent and manipulate attribute data in a dataset
abstract class to specify dataset behavior
Definition vtkDataSet.h:165
provides thread-safe access to cells
list of point or cell ids
Definition vtkIdList.h:133
a simple class to control print indentation
Definition vtkIndent.h:108
Helper class for vtkIntegrateAttributes.
abstract class to define an integration strategy for vtkIntegrateAttributes
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 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.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
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.
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 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.
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 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 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 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.
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.
~vtkIntegrationStrategy() override=default
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.
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.
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.
vtkIntegrationStrategy()=default
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 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 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 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 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.
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.
virtual void Initialize(vtkDataSet *input)
Setup necessary precomputations Here does nothing, can be overriden if needed.
abstract base class for most VTK objects
Definition vtkObject.h:162
dataset represents arbitrary combinations of all possible cell types
int vtkIdType
Definition vtkType.h:332