11 #ifndef vtkHyperTreeGridGeometry3DImpl_h
12 #define vtkHyperTreeGridGeometry3DImpl_h
18 VTK_ABI_NAMESPACE_BEGIN
29 const std::string& originalCellIdArrayName,
bool fillMaterial);
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,
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;
162 VTK_ABI_NAMESPACE_END
vtkHyperTreeGridGeometry3DImpl(bool mergePoints, vtkHyperTreeGrid *input, vtkPoints *outPoints, vtkCellArray *outCells, vtkDataSetAttributes *inCellDataAttributes, vtkDataSetAttributes *outCellDataAttributes, bool passThroughCellIds, const std::string &originalCellIdArrayName, bool fillMaterial)
Interface for all vtkHyperTreeGridGeometry internal classes.
~vtkHyperTreeGridGeometry3DImpl() override
A dataset containing a grid of vtkHyperTree instances arranged as a rectilinear grid.
void RecursivelyProcessTree(vtkHyperTreeGridNonOrientedVonNeumannSuperCursor *cursor, unsigned char coarseCellFacesToBeTreated=0)
Recursively browse the input HTG in order to generate the output surface.
vtkHyperTreeGridGeometry internal classes for 3D vtkHyperTreeGrid
void GenerateGeometry() override
Generate the external surface of the input vtkHyperTreeGrid.
represent and manipulate attribute data in a dataset
object to represent cell connectivity
dynamic, self-adjusting array of bits
Objects for traversal a HyperTreeGrid.
represent and manipulate 3D points