Go to the documentation of this file.
53 "inline const label& meshOctree::numberOfLeaves() const"
64 return *leaves_[leafI];
69 return leaves_[leafI]->procNo();
74 if(
leaves_[leafI]->hasContainedElements() )
88 if( !leaves_[leafI]->hasContainedElements() )
95 leaves_[leafI]->slotPtr()->containedTriangles_;
96 constRow elmts = containedTriangles[leaves_[leafI]->containedElements()];
98 triangles.
append(elmts[elI]);
117 if( !leaves_[leafI]->hasContainedEdges() )
124 leaves_[leafI]->slotPtr()->containedEdges_;
125 constRow elmts = containedEdges[leaves_[leafI]->containedEdges()];
163 return findNeighbourOverNode(leaves_[leafI]->
coordinates(), nodeI);
173 findNeighboursOverEdge(leaves_[leafI]->
coordinates(), eI, neighbourLeaves);
183 findNeighboursInDirection(leaves_[leafI]->
coordinates(), dir, neiLeaves);
192 findNeighboursForLeaf(leaves_[leafI]->
coordinates(), neighbourLeaves);
201 findAllLeafNeighbours(leaves_[leafI]->
coordinates(), neighbourLeaves);
FixedList< Vector< label >, 8 > octantVectors_
FixedList< meshOctreeCubeCoordinates, 26 > regularityPositions_
void findAllLeafNeighbours(const meshOctreeCubeCoordinates &, DynList< label > &neighbourLeaves) const
find neighbour leaves over nodes, edges and faces
const FixedList< meshOctreeCubeCoordinates, 26 > & regularityPositions() const
#define forAll(list, i)
Loop across all elements in list.
void containedTriangles(const label, DynList< label > &) const
void findNeighboursForLeaf(const meshOctreeCubeCoordinates &, DynList< label > &neighbourLeaves) const
find neighbour leaf cubes over all faces
bool isQuadtree() const
is octree a quadtree or an octree
const FixedList< FixedList< meshOctreeCubeCoordinates, 8 >, 8 > & positionsOfLeavesAtNodes() const
return positions to find the leaves at each cube node
const labelList & neiProcs() const
neighbour processors of the current one
FixedList< FixedList< meshOctreeCubeCoordinates, 8 >, 8 > vrtLeavesPos_
void findNeighboursInDirection(const meshOctreeCubeCoordinates &, const label dir, DynList< label > &neighbourLeaves) const
find neighbours over a leaf cube face in the given direction
label numberOfLeaves() const
return leaves of the octree
const typedef graphRow< const VRWGraph > constRow
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
const bool isQuadtree_
a flag whether is true if is it a quadtree
bool hasContainedEdges(const label) const
PtrList< coordinateSystem > coordinates(solidRegions.size())
void findNeighboursOverEdge(const meshOctreeCubeCoordinates &, const label eI, DynList< label > &neighbourLeaves) const
find neighbours over a cube's edge
LongList< meshOctreeCube * > leaves_
list of cubes which are leaves of the octree
void containedEdges(const label, DynList< label > &) const
label findNeighbourOverNode(const meshOctreeCubeCoordinates &, const label nodeI) const
find a neighbour over a cube's node
errorManipArg< error, int > exit(error &err, const int errNo=1)
const boundBox & rootBox() const
return rootBox
short leafAtProc(const label) const
const triSurf & surface_
Reference to surface to work on.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
A 1D vector of objects of type <T> with a fixed size <Size>.
A bounding box defined in terms of the points at its extremities.
bool hasContainedTriangles(const label) const
#define FatalErrorIn(functionName)
Report an error message using Foam::FatalError.
const FixedList< Vector< label >, 8 > & octantVectors() const
return octant vectors
const triSurf & surface() const
return a reference to the surface
const meshOctreeCubeBasic & returnLeaf(const label) const
void clear()
Clear the list, i.e. set next free to zero.
void append(const T &e)
Append an element at the end of the list.