VTK  9.2.6
vtkIntegrateAttributes.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkIntegrateAttributes.h
5
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13
14=========================================================================*/
30
31#ifndef vtkIntegrateAttributes_h
32#define vtkIntegrateAttributes_h
33
34#include "vtkFiltersParallelModule.h" // For export macro
36
37class vtkDataSet;
38class vtkIdList;
39class vtkInformation;
43
44class VTKFILTERSPARALLEL_EXPORT vtkIntegrateAttributes : public vtkUnstructuredGridAlgorithm
45{
46public:
49 void PrintSelf(ostream& os, vtkIndent indent) override;
50
52
59
61
65 vtkSetMacro(DivideAllCellDataByVolume, bool);
66 vtkGetMacro(DivideAllCellDataByVolume, bool);
68
69protected:
72
74
75 int RequestData(vtkInformation* request, vtkInformationVector** inputVector,
76 vtkInformationVector* outputVector) override;
77
78 // Create a default executive.
80
82
85
86 // The length, area or volume of the data set. Computed by Execute;
87 double Sum;
88 // ToCompute the location of the output point.
89 double SumCenter[3];
90
92
94 vtkDataSet* input, vtkUnstructuredGrid* output, vtkIdType cellId, vtkIdList* cellPtIds);
96 vtkDataSet* input, vtkUnstructuredGrid* output, vtkIdType cellId, vtkIdList* cellPtIds);
98 vtkDataSet* input, vtkUnstructuredGrid* output, vtkIdType cellId, vtkIdList* cellPtIds);
100 vtkIdType pt1Id, vtkIdType pt2Id, vtkIdType pt3Id);
102 vtkIdType pt1Id, vtkIdType pt2Id, vtkIdType pt3Id, vtkIdType pt4Id);
104 vtkDataSet* input, vtkUnstructuredGrid* output, vtkIdType cellId, vtkIdList* cellPtIds);
106 vtkDataSet* input, vtkUnstructuredGrid* output, vtkIdType cellId, vtkIdList* cellPtIds);
108 vtkDataSet* input, vtkUnstructuredGrid* output, vtkIdType cellId, vtkIdList* cellPtIds);
110 vtkDataSet* input, vtkUnstructuredGrid* output, vtkIdType cellId, vtkIdList* cellPtIds);
112 vtkDataSet* input, vtkUnstructuredGrid* output, vtkIdType cellId, vtkIdList* cellPtIds);
117 void ReceivePiece(vtkUnstructuredGrid* mergeTo, int fromId);
118
119 // This function assumes the data is in the format of the output of this filter with one
120 // point/cell having the value computed as its only tuple. It divides each value by sum,
121 // skipping the last data array if requested (so the volume doesn't get divided by itself
122 // and set to 1).
124 vtkDataSetAttributes* data, bool skipLastArray, double sum);
125
126private:
128 void operator=(const vtkIntegrateAttributes&) = delete;
129
130 class vtkFieldList;
131 vtkFieldList* CellFieldList;
132 vtkFieldList* PointFieldList;
133 int FieldListIndex;
134
135 void AllocateAttributes(vtkFieldList& fieldList, vtkDataSetAttributes* outda);
136 void ExecuteBlock(vtkDataSet* input, vtkUnstructuredGrid* output, int fieldset_index,
137 vtkFieldList& pdList, vtkFieldList& cdList);
138
139 void IntegrateData1(vtkDataSetAttributes* inda, vtkDataSetAttributes* outda, vtkIdType pt1Id,
140 double k, vtkFieldList& fieldlist, int fieldlist_index);
141 void IntegrateData2(vtkDataSetAttributes* inda, vtkDataSetAttributes* outda, vtkIdType pt1Id,
142 vtkIdType pt2Id, double k, vtkFieldList& fieldlist, int fieldlist_index);
143 void IntegrateData3(vtkDataSetAttributes* inda, vtkDataSetAttributes* outda, vtkIdType pt1Id,
144 vtkIdType pt2Id, vtkIdType pt3Id, double k, vtkFieldList& fieldlist, int fieldlist_index);
145 void IntegrateData4(vtkDataSetAttributes* inda, vtkDataSetAttributes* outda, vtkIdType pt1Id,
146 vtkIdType pt2Id, vtkIdType pt3Id, vtkIdType pt4Id, double k, vtkFieldList& fieldlist,
147 int fieldlist_index);
148
149public:
155};
156
157#endif
represent and manipulate attribute data in a dataset
abstract class to specify dataset behavior
Definition vtkDataSet.h:63
Superclass for all pipeline executives in VTK.
list of point or cell ids
Definition vtkIdList.h:34
a simple class to control print indentation
Definition vtkIndent.h:40
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
~vtkIntegrateAttributes() override
void ZeroAttributes(vtkDataSetAttributes *outda)
void SendPiece(vtkUnstructuredGrid *src)
void ReceivePiece(vtkUnstructuredGrid *mergeTo, int fromId)
int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
This is called by the superclass.
void IntegrateVoxel(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdList *cellPtIds)
void IntegrateGeneral3DCell(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdList *cellPtIds)
void IntegratePixel(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdList *cellPtIds)
int PieceNodeMinToNode0(vtkUnstructuredGrid *data)
void IntegrateGeneral1DCell(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdList *cellPtIds)
void IntegrateTriangleStrip(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdList *cellPtIds)
vtkMultiProcessController * Controller
static void DivideDataArraysByConstant(vtkDataSetAttributes *data, bool skipLastArray, double sum)
void IntegratePolygon(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdList *cellPtIds)
void IntegrateTriangle(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdType pt1Id, vtkIdType pt2Id, vtkIdType pt3Id)
int FillInputPortInformation(int, vtkInformation *) override
Fill the input port information objects for this algorithm.
int CompareIntegrationDimension(vtkDataSet *output, int dim)
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void IntegrateGeneral2DCell(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdList *cellPtIds)
void IntegratePolyLine(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdList *cellPtIds)
static vtkIntegrateAttributes * New()
void SetController(vtkMultiProcessController *controller)
Get/Set the parallel controller to use.
vtkExecutive * CreateDefaultExecutive() override
Create a default executive.
void IntegrateSatelliteData(vtkDataSetAttributes *inda, vtkDataSetAttributes *outda)
void IntegrateTetrahedron(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdType pt1Id, vtkIdType pt2Id, vtkIdType pt3Id, vtkIdType pt4Id)
Multiprocessing communication superclass.
dataset represents arbitrary combinations of all possible cell types
int vtkIdType
Definition vtkType.h:332