VTK  9.1.0
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=========================================================================*/
28#ifndef vtkIntegrateAttributes_h
29#define vtkIntegrateAttributes_h
30
31#include "vtkFiltersParallelModule.h" // For export macro
33
34class vtkDataSet;
35class vtkIdList;
36class vtkInformation;
40
41class VTKFILTERSPARALLEL_EXPORT vtkIntegrateAttributes : public vtkUnstructuredGridAlgorithm
42{
43public:
46 void PrintSelf(ostream& os, vtkIndent indent) override;
47
49
54 vtkGetObjectMacro(Controller, vtkMultiProcessController);
56
58
62 vtkSetMacro(DivideAllCellDataByVolume, bool);
63 vtkGetMacro(DivideAllCellDataByVolume, bool);
65
66protected:
69
71
72 int RequestData(vtkInformation* request, vtkInformationVector** inputVector,
73 vtkInformationVector* outputVector) override;
74
75 // Create a default executive.
77
79
82
83 // The length, area or volume of the data set. Computed by Execute;
84 double Sum;
85 // ToCompute the location of the output point.
86 double SumCenter[3];
87
89
91 vtkDataSet* input, vtkUnstructuredGrid* output, vtkIdType cellId, vtkIdList* cellPtIds);
93 vtkDataSet* input, vtkUnstructuredGrid* output, vtkIdType cellId, vtkIdList* cellPtIds);
95 vtkDataSet* input, vtkUnstructuredGrid* output, vtkIdType cellId, vtkIdList* cellPtIds);
97 vtkIdType pt1Id, vtkIdType pt2Id, vtkIdType pt3Id);
99 vtkIdType pt1Id, vtkIdType pt2Id, vtkIdType pt3Id, vtkIdType pt4Id);
101 vtkDataSet* input, vtkUnstructuredGrid* output, vtkIdType cellId, vtkIdList* cellPtIds);
103 vtkDataSet* input, vtkUnstructuredGrid* output, vtkIdType cellId, vtkIdList* cellPtIds);
105 vtkDataSet* input, vtkUnstructuredGrid* output, vtkIdType cellId, vtkIdList* cellPtIds);
107 vtkDataSet* input, vtkUnstructuredGrid* output, vtkIdType cellId, vtkIdList* cellPtIds);
109 vtkDataSet* input, vtkUnstructuredGrid* output, vtkIdType cellId, vtkIdList* cellPtIds);
114 void ReceivePiece(vtkUnstructuredGrid* mergeTo, int fromId);
115
116 // This function assumes the data is in the format of the output of this filter with one
117 // point/cell having the value computed as its only tuple. It divides each value by sum,
118 // skipping the last data array if requested (so the volume doesn't get divided by itself
119 // and set to 1).
121 vtkDataSetAttributes* data, bool skipLastArray, double sum);
122
123private:
125 void operator=(const vtkIntegrateAttributes&) = delete;
126
127 class vtkFieldList;
128 vtkFieldList* CellFieldList;
129 vtkFieldList* PointFieldList;
130 int FieldListIndex;
131
132 void AllocateAttributes(vtkFieldList& fieldList, vtkDataSetAttributes* outda);
133 void ExecuteBlock(vtkDataSet* input, vtkUnstructuredGrid* output, int fieldset_index,
134 vtkFieldList& pdList, vtkFieldList& cdList);
135
136 void IntegrateData1(vtkDataSetAttributes* inda, vtkDataSetAttributes* outda, vtkIdType pt1Id,
137 double k, vtkFieldList& fieldlist, int fieldlist_index);
138 void IntegrateData2(vtkDataSetAttributes* inda, vtkDataSetAttributes* outda, vtkIdType pt1Id,
139 vtkIdType pt2Id, double k, vtkFieldList& fieldlist, int fieldlist_index);
140 void IntegrateData3(vtkDataSetAttributes* inda, vtkDataSetAttributes* outda, vtkIdType pt1Id,
141 vtkIdType pt2Id, vtkIdType pt3Id, double k, vtkFieldList& fieldlist, int fieldlist_index);
142 void IntegrateData4(vtkDataSetAttributes* inda, vtkDataSetAttributes* outda, vtkIdType pt1Id,
143 vtkIdType pt2Id, vtkIdType pt3Id, vtkIdType pt4Id, double k, vtkFieldList& fieldlist,
144 int fieldlist_index);
145
146public:
148 {
149 IntegrateAttrInfo = 2000,
150 IntegrateAttrData
151 };
152};
153
154#endif
represent and manipulate attribute data in a dataset
abstract class to specify dataset behavior
Definition: vtkDataSet.h:166
Superclass for all pipeline executives in VTK.
Definition: vtkExecutive.h:76
list of point or cell ids
Definition: vtkIdList.h:140
a simple class to control print indentation
Definition: vtkIndent.h:113
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Integrates lines, surfaces and volume.
~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.
Superclass for algorithms that produce only unstructured grid as output.
dataset represents arbitrary combinations of all possible cell types
@ data
Definition: vtkX3D.h:321
int vtkIdType
Definition: vtkType.h:332