103#ifndef vtkCellGridEvaluator_h
104#define vtkCellGridEvaluator_h
110#include "vtkTypeUInt32Array.h"
111#include "vtkTypeUInt64Array.h"
114#include <unordered_map>
116VTK_ABI_NAMESPACE_BEGIN
157 vtkGetObjectMacro(ClassifierCellTypes, vtkTypeUInt32Array);
160 vtkGetObjectMacro(ClassifierCellOffsets, vtkTypeUInt64Array);
163 vtkGetObjectMacro(ClassifierPointIDs, vtkTypeUInt64Array);
166 vtkGetObjectMacro(ClassifierCellIndices, vtkTypeUInt64Array);
186 vtkTypeUInt64Array* cellIndices,
vtkDataArray* pointParameters);
217 vtkSetObjectMacro(ClassifierCellTypes, vtkTypeUInt32Array);
220 vtkSetObjectMacro(ClassifierCellOffsets, vtkTypeUInt64Array);
223 vtkSetObjectMacro(ClassifierPointIDs, vtkTypeUInt64Array);
226 vtkSetObjectMacro(ClassifierCellIndices, vtkTypeUInt64Array);
241 vtkTypeUInt32Array* ClassifierCellTypes{
nullptr };
242 vtkTypeUInt64Array* ClassifierCellOffsets{
nullptr };
243 vtkTypeUInt64Array* ClassifierPointIDs{
nullptr };
244 vtkTypeUInt64Array* ClassifierCellIndices{
nullptr };
255 std::unordered_map<vtkStringToken, AllocationsByCellType>
Allocations;
A function defined over the physical domain of a vtkCellGrid.
Evaluate a field (vtkCellAttribute) at some points inside cells.
bool Finalize() override
Invoked during evaluation after all cell-grid responders are run.
~vtkCellGridEvaluator() override
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void InterpolateCellParameters(vtkTypeUInt32Array *cellTypes, vtkTypeUInt64Array *cellOffsets, vtkTypeUInt64Array *cellIndices, vtkDataArray *pointParameters)
Configure the query to run only the interpolator.
void AllocateClassificationOutput()
std::unordered_map< vtkStringToken, AllocationsByCellType > Allocations
Internal state used during classification to compute the size of the output arrays.
vtkNew< vtkStaticPointLocator > Locator
void InterpolatePoints(vtkDataArray *points)
Configure the query to run the classifier followed by the interpolator.
static vtkCellGridEvaluator * New()
Phases
Indicate which phases of the query to perform.
void AllocatePositionOutput()
void StartPass() override
Invoked at the start of each pass.
vtkGetEnumMacro(PhasesToPerform, vtkCellGridEvaluator::Phases)
Return what work the query has been configured to do.
void AllocateInterpolationOutput()
bool IsAnotherPassRequired() override
Invoked at the end of each pass.
AllocationsByCellType & GetAllocationsForCellType(vtkStringToken cellType)
Return a reference to a cellType's allocated input points for responders to fill out.
bool Initialize() override
Invoked during evaluation before any cell-grid responders are run.
void ClassifyPoints(vtkDataArray *points)
Configure the query to run the classifier but not the interpolator.
Perform an operation on cells in a vtkCellMetadata instance.
Visualization data composed of cells of arbitrary type.
abstract superclass for arrays of numeric data
a simple class to control print indentation
Allocate and hold a VTK object.
concrete class for storing a set of points
quickly locate points in 3-space
Represent a string by its integer hash.
Hold per-type input point assignment and an offset for output arrays.
vtkIdType GetNumberOfOutputPoints() const
std::map< vtkIdType, std::set< vtkIdType > > InputPoints