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=========================================================================*/
27
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
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:
152};
153
154#endif
represent and manipulate attribute data in a dataset
abstract class to specify dataset behavior
Definition vtkDataSet.h:57
Superclass for all pipeline executives in VTK.
list of point or cell ids
Definition vtkIdList.h:31
a simple class to control print indentation
Definition vtkIndent.h:34
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