103 #ifndef vtkCellGridEvaluator_h
104 #define vtkCellGridEvaluator_h
110 #include "vtkTypeUInt32Array.h"
111 #include "vtkTypeUInt64Array.h"
114 #include <unordered_map>
117 VTK_ABI_NAMESPACE_BEGIN
162 return static_cast<vtkIdType>(this->InputPoints.size());
177 vtkGetObjectMacro(ClassifierCellTypes, vtkTypeUInt32Array);
180 vtkGetObjectMacro(ClassifierCellOffsets, vtkTypeUInt64Array);
183 vtkGetObjectMacro(ClassifierPointIDs, vtkTypeUInt64Array);
186 vtkGetObjectMacro(ClassifierCellIndices, vtkTypeUInt64Array);
189 vtkGetObjectMacro(ClassifierPointParameters,
vtkDataArray);
205 void InterpolateCellParameters(vtkTypeUInt32Array* cellTypes, vtkTypeUInt64Array* cellOffsets,
206 vtkTypeUInt64Array* cellIndices,
vtkDataArray* pointParameters);
212 bool Initialize()
override;
214 void StartPass()
override;
216 bool IsAnotherPassRequired()
override;
218 bool Finalize()
override;
226 AllocationsByCellType& GetAllocationsForCellType(
vtkStringToken cellType);
237 vtkSetObjectMacro(ClassifierCellTypes, vtkTypeUInt32Array);
240 vtkSetObjectMacro(ClassifierCellOffsets, vtkTypeUInt64Array);
243 vtkSetObjectMacro(ClassifierPointIDs, vtkTypeUInt64Array);
246 vtkSetObjectMacro(ClassifierCellIndices, vtkTypeUInt64Array);
249 vtkSetObjectMacro(ClassifierPointParameters,
vtkDataArray);
254 void AllocateClassificationOutput();
255 void AllocatePositionOutput();
256 void AllocateInterpolationOutput();
261 vtkTypeUInt32Array* ClassifierCellTypes{
nullptr };
262 vtkTypeUInt64Array* ClassifierCellOffsets{
nullptr };
263 vtkTypeUInt64Array* ClassifierPointIDs{
nullptr };
264 vtkTypeUInt64Array* ClassifierCellIndices{
nullptr };
275 std::unordered_map<vtkStringToken, AllocationsByCellType>
Allocations;
282 VTK_ABI_NAMESPACE_END
283 #endif // vtkCellGridEvaluator_h
std::array< double, 3 > ParametricCoords
vtkIdType GetNumberOfOutputPoints() const
Return the number of classified points for this cell type.
Perform an operation on cells in a vtkCellMetadata instance.
concrete class for storing a set of points
The result of classifying a single probe point: the index of the input point, the cell that contains ...
Hold per-type input point assignment and an offset for output arrays.
Visualization data composed of cells of arbitrary type.
a simple class to control print indentation
A function defined over the physical domain of a vtkCellGrid.
Evaluate a field (vtkCellAttribute) at some points inside cells.
abstract superclass for arrays of numeric data
std::unordered_map< vtkStringToken, AllocationsByCellType > Allocations
Internal state used during classification to compute the size of the output arrays.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
Represent a string by its integer hash.
std::vector< ClassifiedPoint > InputPoints
Flat list of classified probe points, populated by ClassifyPoints.
quickly locate points in 3-space
vtkNew< vtkStaticPointLocator > Locator
Phases
Indicate which phases of the query to perform.
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...