Go to the documentation of this file.
35 #ifndef meshOctreeCube_H
36 #define meshOctreeCube_H
163 const label elementsRowI = -1,
164 const label edgesRowI = -1,
175 inline bool isLeaf()
const;
A class holding information about octree data generated by a single thread.
label containedEdges() const
void refineCube(const triSurf &, const boundBox &, meshOctreeSlot *slotPtr=NULL)
subdivide the octree cube
void findCoordinatesOfMissingCubes(LongList< meshOctreeCubeCoordinates > &coordinates) const
find coordinates of cubes which are located on other processors
friend Ostream & operator<<(Ostream &, const meshOctreeCube &)
label cubeLabel() const
position of the cube in the list of leaves
bool hasContainedElements() const
return true if the box contains some triangles
meshOctreeCube * subCube(const label) const
return a pointer to a child cubes at given position
label containedElementsLabel_
label of the row which contains elements contained in the cube
void leavesInSphere(const boundBox &rootBox, const point &, const scalar, DynList< label > &) const
find leaves within a sphere
const meshOctreeCubeCoordinates & coordinates() const
return coordinates in the octree
void countChildCubes(label &nCubes) const
count number of originating from this cube
bool hasContainedEdges() const
returns true if the box contains some edges
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
label cubeLabel_
position of the cube in the list of leaves
meshOctreeCube ** subCubesPtr_
pointer to the first child element
FixedList< meshOctreeCube *, 8 > subCubes() const
return the pointers to the sons
bool isLeaf() const
check if the cube is a leaf
void findContainedEdges(const triSurf &, const boundBox &)
find edges contained in the cube
void operator=(const meshOctreeCube &)
assignment
void refineMissingCube(const triSurf &, const boundBox &, const label scI, meshOctreeSlot *slotPtr=NULL)
void leavesInBox(const boundBox &rootBox, const boundBox &searchingBox, DynList< const meshOctreeCube *, 256 > &) const
leaves contained in the given box
const meshOctreeSlot * slotPtr() const
return the pointer to the slot containing the cube
static const label hOrient_[24][8]
void markLeavesInSphere(const boundBox &rootBox, const point &, const scalar, labelList &, bool &) const
mark leaves within a sphere
bool purgeProcessorCubes(const short procNo)
delete boxes which are not local to the given processor
label containedEdgesLabel_
labels of contained surface edges
meshOctreeCube()
Default constructor.
static const label hOrder_[24][8]
meshOctreeSlot * activeSlotPtr_
pointer the slot containing this cube
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
This class is an implementation of a graph with variable column width. The imoplementation is memory ...
A class for triangulated surface used in the meshing process. It is derived from points and facets wi...
A 1D vector of objects of type <T> with a fixed size <Size>.
short procNo() const
return processor number
A bounding box defined in terms of the points at its extremities.
void refineCube2D(const triSurf &, const boundBox &, meshOctreeSlot *slotPtr=NULL)
refine cube in two directions, it is used for generating quadtrees
label containedElements() const
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
void findLeaves(LongList< meshOctreeCube * > &leaves) const
find leaves for a given cube
bool hasContainedTriangles(const triSurf &, const boundBox &, const VRWGraph &containedElements) const
check if this box has some contained triangles