11#ifndef vtkHyperTreeGridGeometry3DImpl_h
12#define vtkHyperTreeGridGeometry3DImpl_h
18VTK_ABI_NAMESPACE_BEGIN
29 const std::string& originalCellIdArrayName);
47 unsigned char coarseCellFacesToBeTreated = 0);
57 unsigned char coarseCellFacesToBeTreated,
vtkIdType cellId);
62 void GenerateOneCellFace(std::vector<HTG3DPoint>& cellPoints,
63 std::vector<std::pair<HTG3DPoint, HTG3DPoint>>& edgePoints,
unsigned int faceId,
64 vtkIdType cellId,
const double* cellOrigin,
const double* cellSize,
unsigned int zOffset,
65 unsigned int orientation,
66 std::map<
unsigned int, std::pair<HTG3DPoint*, unsigned int>>& internalFaceA,
67 std::map<
unsigned int, std::pair<HTG3DPoint*, unsigned int>>& internalFaceB);
78 void ComputeEdge(
const HTG3DPoint& firstPoint,
const HTG3DPoint& secondPoint,
79 std::vector<std::pair<HTG3DPoint, HTG3DPoint>>& edgePoints,
unsigned int edgeAxis,
81 std::map<
unsigned int, std::pair<HTG3DPoint*, unsigned int>>& internalFaceA,
82 std::map<
unsigned int, std::pair<HTG3DPoint*, unsigned int>>& internalFaceB,
83 unsigned int& currentEdgePointA,
unsigned int& currentEdgePointB);
91 bool ComputeEdgeInterface(
const HTG3DPoint& firstPoint,
const HTG3DPoint& secondPoint,
92 std::vector<std::pair<HTG3DPoint, HTG3DPoint>>& edgePoints,
unsigned int edgeAxis,
93 unsigned int edgeId, std::map<
unsigned int, std::pair<HTG3DPoint*, unsigned int>>& internalFace,
94 HTG3DPoint& pointInter,
unsigned int& edgePointId,
bool isInterfaceA);
102 void CompleteLinkage(std::map<
unsigned int, std::pair<HTG3DPoint*, unsigned int>>& internalFace,
103 unsigned int edgePointId1,
unsigned int edgePointId2);
110 void SetInterfaceFace(
unsigned int edgeId,
111 std::map<
unsigned int, std::pair<HTG3DPoint*, unsigned int>>& internalFace, HTG3DPoint* point);
116 bool IsInside(
const HTG3DPoint& point);
121 void SetXYZ(HTG3DPoint& point,
const double* coords);
126 void SetIntersectXYZ(HTG3DPoint& point,
const double* coords,
bool isInterfaceA);
134 vtkIdType InsertUniquePoint(HTG3DPoint& point);
142 bool GetHasInterface(
vtkIdType cellId)
const;
dynamic, self-adjusting array of bits
object to represent cell connectivity
represent and manipulate attribute data in a dataset
vtkHyperTreeGridGeometry internal classes for 3D vtkHyperTreeGrid
void GenerateGeometry() override
Generate the external surface of the input vtkHyperTreeGrid.
void RecursivelyProcessTree(vtkHyperTreeGridNonOrientedVonNeumannSuperCursor *cursor, unsigned char coarseCellFacesToBeTreated=0)
Recursively browse the input HTG in order to generate the output surface.
~vtkHyperTreeGridGeometry3DImpl() override
vtkHyperTreeGridGeometry3DImpl(bool mergePoints, vtkHyperTreeGrid *input, vtkPoints *outPoints, vtkCellArray *outCells, vtkDataSetAttributes *inCellDataAttributes, vtkDataSetAttributes *outCellDataAttributes, bool passThroughCellIds, const std::string &originalCellIdArrayName)
Interface for all vtkHyperTreeGridGeometry internal classes.
Objects for traversal a HyperTreeGrid.
A dataset containing a grid of vtkHyperTree instances arranged as a rectilinear grid.
represent and manipulate 3D points
Hold a reference to a vtkObjectBase instance.