VTK
9.4.20250311
|
Common interface for 1D and 2D vtkHyperTreeGridGeometry internal classes. More...
#include <vtkHyperTreeGridGeometrySmallDimensionsImpl.h>
Public Member Functions | |
vtkHyperTreeGridGeometrySmallDimensionsImpl (vtkHyperTreeGrid *input, vtkPoints *outPoints, vtkCellArray *outCells, vtkDataSetAttributes *inCellDataAttributes, vtkDataSetAttributes *outCellDataAttributes, bool passThroughCellIds, const std::string &originalCellIdArrayName, bool fillMaterial) | |
~vtkHyperTreeGridGeometrySmallDimensionsImpl () override=default | |
void | GenerateGeometry () override |
Generate the external surface of the input vtkHyperTreeGrid. | |
![]() | |
vtkHyperTreeGridGeometryImpl (vtkHyperTreeGrid *input, vtkPoints *outPoints, vtkCellArray *outCells, vtkDataSetAttributes *inCellDataAttributes, vtkDataSetAttributes *outCellDataAttributes, bool passThroughCellIds, const std::string &originalCellIdArrayName, bool fillMaterial) | |
virtual | ~vtkHyperTreeGridGeometryImpl ()=default |
virtual void | GenerateGeometry ()=0 |
Generate the external surface of the input vtkHyperTreeGrid. | |
Protected Member Functions | |
void | RecursivelyProcessTree (vtkHyperTreeGridNonOrientedGeometryCursor *cursor) |
Recursively browse the input HTG in order to generate the output surface. | |
void | ProcessLeafCellWithInterface (vtkHyperTreeGridNonOrientedGeometryCursor *cursor) |
Generate the surface for a leaf cell with a defined interface. | |
virtual void | ProcessLeafCellWithoutInterface (vtkHyperTreeGridNonOrientedGeometryCursor *cursor) |
Generate the surface for a leaf cell with no interface. | |
virtual void | ProcessLeafCellWithOneInterface (vtkHyperTreeGridNonOrientedGeometryCursor *cursor, double sign, const std::vector< double > &distancesToInterface)=0 |
Generate the surface for a leaf cell cut by one interface. | |
virtual void | ProcessLeafCellWithDoubleInterface (vtkHyperTreeGridNonOrientedGeometryCursor *cursor, const std::vector< double > &distancesToInterfaceA, const std::vector< double > &distancesToInterfaceB)=0 |
Generate the surface for a leaf cell cut by two interfaces. | |
virtual void | BuildCellPoints (vtkHyperTreeGridNonOrientedGeometryCursor *cursor)=0 |
Compute the point coordinates of the surface of the current cell, independently of the fact that the current cell has a defined interface or not. | |
![]() | |
void | CreateNewCellAndCopyData (const std::vector< vtkIdType > &outPointIds, vtkIdType cellId) |
Insert a new output cell from a list of point ids in the output polydata and copy the data from the input HTG cell at cellId to the newly created surface cell. | |
bool | IsMaskedOrGhost (vtkIdType globalNodeId) const |
Returns true if the input HTG cell is masked or ghosted. | |
bool | ProbeForCellInterface (vtkIdType cellId, bool invert=true) |
Determine if the input HTG at cellId contains an valid interface and if yes, determine its characteristics, stored in the variables below. | |
double | ComputeDistanceToInterfaceA (const double *xyz) const |
Compute the value of the distance from the given point to the interface plane of the currently considered HTG cell. | |
double | ComputeDistanceToInterfaceB (const double *xyz) const |
Compute the value of the distance from the given point to the interface plane of the currently considered HTG cell. | |
Protected Attributes | |
vtkNew< vtkPoints > | CellPoints |
Contains the point coordinates of the current cell surface, without considering eventual cuts made by interfaces. | |
![]() | |
vtkHyperTreeGrid * | Input = nullptr |
Input parameters retrieved from constructor. | |
vtkPoints * | OutPoints = nullptr |
vtkCellArray * | OutCells = nullptr |
vtkDataSetAttributes * | InCellDataAttributes = nullptr |
vtkDataSetAttributes * | OutCellDataAttributes = nullptr |
bool | FillMaterial = true |
vtkDataArray * | InIntercepts = nullptr |
Retrieved from input for quick access. | |
vtkDataArray * | InNormals = nullptr |
bool | HasInterface = false |
True if input HTG have an interface and if InIntercepts and InNormals are defined. | |
bool | HasInterfaceOnThisCell = false |
True if the current cell have a "valid" interface defined. | |
int | CellInterfaceType = 2 |
Categorize the current cell interface type. | |
Common interface for 1D and 2D vtkHyperTreeGridGeometry internal classes.
This class defines the common interface for or 1D and 2D vtkHyperTreeGridGeometry internal classes, because their overall logic is very close.
Definition at line 26 of file vtkHyperTreeGridGeometrySmallDimensionsImpl.h.
vtkHyperTreeGridGeometrySmallDimensionsImpl::vtkHyperTreeGridGeometrySmallDimensionsImpl | ( | vtkHyperTreeGrid * | input, |
vtkPoints * | outPoints, | ||
vtkCellArray * | outCells, | ||
vtkDataSetAttributes * | inCellDataAttributes, | ||
vtkDataSetAttributes * | outCellDataAttributes, | ||
bool | passThroughCellIds, | ||
const std::string & | originalCellIdArrayName, | ||
bool | fillMaterial | ||
) |
|
overridedefault |
|
overridevirtual |
Generate the external surface of the input vtkHyperTreeGrid.
Implements vtkHyperTreeGridGeometryImpl.
|
protected |
Recursively browse the input HTG in order to generate the output surface.
Tis method is called by GenerateGeometry.
XXX: We need to determine a common interface for all cursors in order to define RecursivelyProcessTree as virtual in upper classes.
|
protected |
Generate the surface for a leaf cell with a defined interface.
|
protectedvirtual |
Generate the surface for a leaf cell with no interface.
|
protectedpure virtual |
Generate the surface for a leaf cell cut by one interface.
Called by ProcessLeafCellWithInterface.
Implemented in vtkHyperTreeGridGeometry2DImpl, and vtkHyperTreeGridGeometry1DImpl.
|
protectedpure virtual |
Generate the surface for a leaf cell cut by two interfaces.
Called by ProcessLeafCellWithInterface.
Implemented in vtkHyperTreeGridGeometry1DImpl, and vtkHyperTreeGridGeometry2DImpl.
|
protectedpure virtual |
Compute the point coordinates of the surface of the current cell, independently of the fact that the current cell has a defined interface or not.
Used as a pre-process in ProcessLeafCellWithInterface.
XXX: can be used in ProcessLeafCellWithoutInterface ?
Implemented in vtkHyperTreeGridGeometry1DImpl, and vtkHyperTreeGridGeometry2DImpl.
Contains the point coordinates of the current cell surface, without considering eventual cuts made by interfaces.
XXX: cache variable for the "current" cell
Definition at line 92 of file vtkHyperTreeGridGeometrySmallDimensionsImpl.h.