A bounding box defined in terms of the points at its extremities. More...
Public Member Functions | |
boundBox () | |
Construct null, setting points to zero. More... | |
boundBox (const point &min, const point &max) | |
Construct from components. More... | |
boundBox (const UList< point > &, const bool doReduce=true) | |
Construct as the bounding box of the given points. More... | |
boundBox (const tmp< pointField > &, const bool doReduce=true) | |
Construct as the bounding box of the given temporary pointField. More... | |
boundBox (const UList< point > &, const labelUList &indices, const bool doReduce=true) | |
Construct bounding box as subset of the pointField. More... | |
template<unsigned Size> | |
boundBox (const UList< point > &, const FixedList< label, Size > &indices, const bool doReduce=true) | |
Construct bounding box as subset of the pointField. More... | |
boundBox (Istream &) | |
Construct from Istream. More... | |
const point & | min () const |
Minimum point defining the bounding box. More... | |
const point & | max () const |
Maximum point defining the bounding box. More... | |
point & | min () |
Minimum point defining the bounding box, non-const access. More... | |
point & | max () |
Maximum point defining the bounding box, non-const access. More... | |
point | midpoint () const |
The midpoint of the bounding box. More... | |
vector | span () const |
The bounding box span (from minimum to maximum) More... | |
scalar | mag () const |
The magnitude of the bounding box span. More... | |
scalar | volume () const |
The volume of the bound box. More... | |
scalar | minDim () const |
Smallest length/height/width dimension. More... | |
scalar | maxDim () const |
Largest length/height/width dimension. More... | |
scalar | avgDim () const |
Average length/height/width dimension. More... | |
tmp< pointField > | points () const |
Return corner points in an order corresponding to a 'hex' cell. More... | |
void | inflate (const scalar s) |
Inflate box by factor*mag(span) in all dimensions. More... | |
bool | overlaps (const boundBox &) const |
Overlaps/touches boundingBox? More... | |
bool | overlaps (const point &, const scalar radiusSqr) const |
Overlaps boundingSphere (centre + sqr(radius))? More... | |
bool | contains (const point &) const |
Contains point? (inside or on edge) More... | |
bool | contains (const boundBox &) const |
Fully contains other boundingBox? More... | |
bool | containsInside (const point &) const |
Contains point? (inside only) More... | |
bool | contains (const UList< point > &) const |
Contains all of the points? (inside or on edge) More... | |
bool | contains (const UList< point > &, const labelUList &indices) const |
Contains all of the points? (inside or on edge) More... | |
template<unsigned Size> | |
bool | contains (const UList< point > &, const FixedList< label, Size > &indices) const |
Contains all of the points? (inside or on edge) More... | |
bool | containsAny (const UList< point > &) const |
Contains any of the points? (inside or on edge) More... | |
bool | containsAny (const UList< point > &, const labelUList &indices) const |
Contains any of the points? (inside or on edge) More... | |
template<unsigned Size> | |
bool | containsAny (const UList< point > &, const FixedList< label, Size > &indices) const |
Contains any of the points? (inside or on edge) More... | |
point | nearest (const point &) const |
Return the nearest point on the boundBox to the supplied point. More... | |
Static Public Member Functions | |
static faceList | faces () |
Return faces with correct point order. More... | |
Static Public Attributes | |
static const scalar | great |
The great value used for greatBox and invertedBox. More... | |
static const boundBox | greatBox |
A very large boundBox: min/max == -/+ vGreat. More... | |
static const boundBox | invertedBox |
A very large inverted boundBox: min/max == +/- vGreat. More... | |
Friends | |
bool | operator== (const boundBox &, const boundBox &) |
bool | operator!= (const boundBox &, const boundBox &) |
Istream & | operator>> (Istream &, boundBox &) |
Ostream & | operator<< (Ostream &, const boundBox &) |
A bounding box defined in terms of the points at its extremities.
Definition at line 58 of file boundBox.H.
|
inline |
Construct null, setting points to zero.
Definition at line 32 of file boundBoxI.H.
Construct from components.
Definition at line 39 of file boundBoxI.H.
Construct as the bounding box of the given points.
Does parallel communication (doReduce = true)
Definition at line 88 of file boundBox.C.
References boundBox::points().
boundBox | ( | const tmp< pointField > & | points, |
const bool | doReduce = true |
||
) |
Construct as the bounding box of the given temporary pointField.
Does parallel communication (doReduce = true)
Definition at line 97 of file boundBox.C.
References boundBox::points().
boundBox | ( | const UList< point > & | points, |
const labelUList & | indices, | ||
const bool | doReduce = true |
||
) |
Construct bounding box as subset of the pointField.
The indices could be from cell/face etc. Does parallel communication (doReduce = true)
Definition at line 107 of file boundBox.C.
References UList< T >::empty(), Foam::max(), Foam::min(), UPstream::parRun(), boundBox::points(), and Foam::reduce().
boundBox | ( | const UList< point > & | points, |
const FixedList< label, Size > & | indices, | ||
const bool | doReduce = true |
||
) |
Construct bounding box as subset of the pointField.
The indices could be from edge/triFace etc. Does parallel communication (doReduce = true)
Definition at line 34 of file boundBoxTemplates.C.
References Foam::max(), Foam::min(), UPstream::parRun(), boundBox::points(), and Foam::reduce().
Construct from Istream.
Definition at line 46 of file boundBoxI.H.
References Foam::operator>>().
|
inline |
Minimum point defining the bounding box.
Definition at line 54 of file boundBoxI.H.
Referenced by cell::bb(), searchableSurfacesQueries::bounds(), PatchTools::calcBounds(), Foam::combine(), Foam::meshTools::constrainToMeshCentre(), boundBox::contains(), treeBoundBox::extend(), dynamicIndexedOctree< Type >::findNearest(), dynamicTreeDataPoint::findNearest(), meshSearch::findNearestBoundaryFace(), repatchMesh::getNearest(), triangleFuncs::intersectBb(), cellsToCells::maskCells(), projectVertex::operator point(), searchablePlate::overlaps(), primitiveMesh::pointInCellBB(), powerLawLopesdaCostaZone::powerLawLopesdaCostaZone(), indexedOctree< Foam::treeDataPoint >::print(), rotatedBoxToCell::rotatedBoxToCell(), rotatedBoxToFace::rotatedBoxToFace(), searchableDisk::searchableDisk(), searchableExtrudedCircle::searchableExtrudedCircle(), searchableSurfaceCollection::searchableSurfaceCollection(), treeBoundBox::subBbox(), indexedOctree< Foam::treeDataPoint >::write(), triSurface::writeStats(), and distributedTriSurfaceMesh::writeStats().
|
inline |
Maximum point defining the bounding box.
Definition at line 60 of file boundBoxI.H.
Referenced by cell::bb(), searchableSurfacesQueries::bounds(), PatchTools::calcBounds(), Foam::combine(), Foam::meshTools::constrainToMeshCentre(), boundBox::contains(), treeBoundBox::extend(), dynamicIndexedOctree< Type >::findNearest(), dynamicTreeDataPoint::findNearest(), meshSearch::findNearestBoundaryFace(), repatchMesh::getNearest(), triangleFuncs::intersectBb(), Kmesh::Kmesh(), cellsToCells::maskCells(), projectVertex::operator point(), orientedSurface::orientedSurface(), searchablePlate::overlaps(), primitiveMesh::pointInCellBB(), powerLawLopesdaCostaZone::powerLawLopesdaCostaZone(), searchableDisk::searchableDisk(), searchableExtrudedCircle::searchableExtrudedCircle(), searchableSurfaceCollection::searchableSurfaceCollection(), treeBoundBox::subBbox(), triSurface::writeStats(), and distributedTriSurfaceMesh::writeStats().
|
inline |
Minimum point defining the bounding box, non-const access.
Definition at line 66 of file boundBoxI.H.
|
inline |
Maximum point defining the bounding box, non-const access.
Definition at line 72 of file boundBoxI.H.
|
inline |
The midpoint of the bounding box.
Definition at line 78 of file boundBoxI.H.
Referenced by rotatedBoxToCell::rotatedBoxToCell(), rotatedBoxToFace::rotatedBoxToFace(), searchableBox::searchableBox(), and nearby::srcBox().
|
inline |
The bounding box span (from minimum to maximum)
Definition at line 84 of file boundBoxI.H.
Referenced by booleanSurface::booleanSurface(), mappedPatchBase::calcMapping(), treeBoundBox::extend(), indexedOctree< Foam::treeDataPoint >::findNear(), Kmesh::Kmesh(), projectVertex::operator point(), orientedSurface::orientedSurface(), and primitiveMesh::pointInCellBB().
|
inline |
The magnitude of the bounding box span.
Definition at line 90 of file boundBoxI.H.
References Foam::mag().
Referenced by searchableSurfaces::checkSizes(), patchProbes::findElements(), and streamlinesParticle::move().
|
inline |
The volume of the bound box.
Definition at line 96 of file boundBoxI.H.
References Foam::cmptProduct().
|
inline |
Smallest length/height/width dimension.
Definition at line 102 of file boundBoxI.H.
References Foam::cmptMin().
Referenced by motionSmootherAlgo::checkMesh().
|
inline |
Largest length/height/width dimension.
Definition at line 108 of file boundBoxI.H.
References Foam::cmptMax().
Referenced by nearby::srcBox().
|
inline |
Average length/height/width dimension.
Definition at line 114 of file boundBoxI.H.
References Foam::cmptAv().
Referenced by repatchMesh::getNearest().
Foam::tmp< Foam::pointField > points | ( | ) | const |
Return corner points in an order corresponding to a 'hex' cell.
Definition at line 149 of file boundBox.C.
References tmp< T >::ref().
Referenced by boundBox::boundBox(), rotatedBoxToCell::rotatedBoxToCell(), and rotatedBoxToFace::rotatedBoxToFace().
|
static |
Return faces with correct point order.
Definition at line 167 of file boundBox.C.
References forAll, and List< T >::setSize().
void inflate | ( | const scalar | s | ) |
Inflate box by factor*mag(span) in all dimensions.
Definition at line 210 of file boundBox.C.
References Foam::mag(), VectorSpace< Form, Cmpt, Ncmpts >::one, and s().
Referenced by surfaceFeatures::nearestFeatEdge(), surfaceFeatures::nearestSurfEdge(), patchToPatch::srcBox(), and patchToPatch::tgtBox().
|
inline |
Overlaps/touches boundingBox?
Definition at line 120 of file boundBoxI.H.
References Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().
Referenced by tetOverlapVolume::cellCellOverlapMinDecomp(), tetOverlapVolume::cellCellOverlapVolumeMinDecomp(), searchableBox::overlaps(), searchableSphere::overlaps(), and indexedOctree< Type >::overlaps().
|
inline |
Overlaps boundingSphere (centre + sqr(radius))?
Definition at line 131 of file boundBoxI.H.
References Foam::mag(), and VectorSpace< Form, Cmpt, Ncmpts >::nComponents.
|
inline |
Contains point? (inside or on edge)
Definition at line 170 of file boundBoxI.H.
References Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().
Referenced by primitiveMesh::pointInCellBB(), powerLawLopesdaCostaZone::powerLawLopesdaCostaZone(), and Foam::selectBox().
|
inline |
Fully contains other boundingBox?
Definition at line 182 of file boundBoxI.H.
References boundBox::max(), and boundBox::min().
|
inline |
Contains point? (inside only)
Definition at line 188 of file boundBoxI.H.
Contains all of the points? (inside or on edge)
Definition at line 219 of file boundBox.C.
References UList< T >::empty(), forAll, and points.
bool contains | ( | const UList< point > & | points, |
const labelUList & | indices | ||
) | const |
Contains all of the points? (inside or on edge)
Definition at line 238 of file boundBox.C.
References UList< T >::empty(), forAll, and points.
Contains all of the points? (inside or on edge)
Definition at line 78 of file boundBoxTemplates.C.
References UList< T >::empty(), forAll, and points.
Contains any of the points? (inside or on edge)
Definition at line 261 of file boundBox.C.
References UList< T >::empty(), forAll, and points.
Referenced by treeDataFace::overlaps(), treeDataPrimitivePatch< PatchType >::overlaps(), and triSurfaceTools::triangulate().
bool containsAny | ( | const UList< point > & | points, |
const labelUList & | indices | ||
) | const |
Contains any of the points? (inside or on edge)
Definition at line 280 of file boundBox.C.
References UList< T >::empty(), forAll, and points.
Contains any of the points? (inside or on edge)
Definition at line 103 of file boundBoxTemplates.C.
References UList< T >::empty(), forAll, and points.
Foam::point nearest | ( | const point & | pt | ) | const |
Return the nearest point on the boundBox to the supplied point.
If point is inside the boundBox then the point is returned unchanged.
Definition at line 303 of file boundBox.C.
References Foam::max(), Foam::min(), Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().
|
static |
The great value used for greatBox and invertedBox.
Definition at line 76 of file boundBox.H.
|
static |
A very large boundBox: min/max == -/+ vGreat.
Definition at line 79 of file boundBox.H.
|
static |
A very large inverted boundBox: min/max == +/- vGreat.
Definition at line 82 of file boundBox.H.
Referenced by cell::bb(), PatchTools::calcBounds(), and triSurface::writeStats().