Open CASCADE Technology 7.8.0
|
#include <Bnd_B3d.hxx>
Public Member Functions | |
Bnd_B3d () | |
Empty constructor. | |
Bnd_B3d (const gp_XYZ &theCenter, const gp_XYZ &theHSize) | |
Constructor. | |
Standard_Boolean | IsVoid () const |
Returns True if the box is void (non-initialized). | |
void | Clear () |
Reset the box data. | |
void | Add (const gp_XYZ &thePnt) |
Update the box by a point. | |
void | Add (const gp_Pnt &thePnt) |
Update the box by a point. | |
void | Add (const Bnd_B3d &theBox) |
Update the box by another box. | |
gp_XYZ | CornerMin () const |
Query the lower corner: (Center - HSize). You must make sure that the box is NOT VOID (see IsVoid()), otherwise the method returns irrelevant result. | |
gp_XYZ | CornerMax () const |
Query the upper corner: (Center + HSize). You must make sure that the box is NOT VOID (see IsVoid()), otherwise the method returns irrelevant result. | |
Standard_Real | SquareExtent () const |
Query the square diagonal. If the box is VOID (see method IsVoid()) then a very big real value is returned. | |
void | Enlarge (const Standard_Real theDiff) |
Extend the Box by the absolute value of theDiff. | |
Standard_Boolean | Limit (const Bnd_B3d &theOtherBox) |
Limit the Box by the internals of theOtherBox. Returns True if the limitation takes place, otherwise False indicating that the boxes do not intersect. | |
Bnd_B3d | Transformed (const gp_Trsf &theTrsf) const |
Transform the bounding box with the given transformation. The resulting box will be larger if theTrsf contains rotation. | |
Standard_Boolean | IsOut (const gp_XYZ &thePnt) const |
Check the given point for the inclusion in the Box. Returns True if the point is outside. | |
Standard_Boolean | IsOut (const gp_XYZ &theCenter, const Standard_Real theRadius, const Standard_Boolean isSphereHollow=Standard_False) const |
Check a sphere for the intersection with the current box. Returns True if there is no intersection between boxes. If the parameter 'IsSphereHollow' is True, then the intersection is not reported for a box that is completely inside the sphere (otherwise this method would report an intersection). | |
Standard_Boolean | IsOut (const Bnd_B3d &theOtherBox) const |
Check the given box for the intersection with the current box. Returns True if there is no intersection between boxes. | |
Standard_Boolean | IsOut (const Bnd_B3d &theOtherBox, const gp_Trsf &theTrsf) const |
Check the given box oriented by the given transformation for the intersection with the current box. Returns True if there is no intersection between boxes. | |
Standard_Boolean | IsOut (const gp_Ax1 &theLine, const Standard_Boolean isRay=Standard_False, const Standard_Real theOverthickness=0.0) const |
Check the given Line for the intersection with the current box. Returns True if there is no intersection. isRay==True means intersection check with the positive half-line theOverthickness is the addition to the size of the current box (may be negative). If positive, it can be treated as the thickness of the line 'theLine' or the radius of the cylinder along 'theLine'. | |
Standard_Boolean | IsOut (const gp_Ax3 &thePlane) const |
Check the given Plane for the intersection with the current box. Returns True if there is no intersection. | |
Standard_Boolean | IsIn (const Bnd_B3d &theBox) const |
Check that the box 'this' is inside the given box 'theBox'. Returns True if 'this' box is fully inside 'theBox'. | |
Standard_Boolean | IsIn (const Bnd_B3d &theBox, const gp_Trsf &theTrsf) const |
Check that the box 'this' is inside the given box 'theBox' transformed by 'theTrsf'. Returns True if 'this' box is fully inside the transformed 'theBox'. | |
void | SetCenter (const gp_XYZ &theCenter) |
Set the Center coordinates. | |
void | SetHSize (const gp_XYZ &theHSize) |
Set the HSize (half-diagonal) coordinates. All components of theHSize must be non-negative. | |
Protected Attributes | |
Standard_Real | myCenter [3] |
Standard_Real | myHSize [3] |
Bnd_B3d::Bnd_B3d | ( | ) |
Empty constructor.
void Bnd_B3d::Clear | ( | ) |
Reset the box data.
gp_XYZ Bnd_B3d::CornerMax | ( | ) | const |
Query the upper corner: (Center + HSize). You must make sure that the box is NOT VOID (see IsVoid()), otherwise the method returns irrelevant result.
gp_XYZ Bnd_B3d::CornerMin | ( | ) | const |
Query the lower corner: (Center - HSize). You must make sure that the box is NOT VOID (see IsVoid()), otherwise the method returns irrelevant result.
void Bnd_B3d::Enlarge | ( | const Standard_Real | theDiff | ) |
Extend the Box by the absolute value of theDiff.
Standard_Boolean Bnd_B3d::IsIn | ( | const Bnd_B3d & | theBox | ) | const |
Check that the box 'this' is inside the given box 'theBox'. Returns True if 'this' box is fully inside 'theBox'.
Standard_Boolean Bnd_B3d::IsIn | ( | const Bnd_B3d & | theBox, |
const gp_Trsf & | theTrsf | ||
) | const |
Check that the box 'this' is inside the given box 'theBox' transformed by 'theTrsf'. Returns True if 'this' box is fully inside the transformed 'theBox'.
Standard_Boolean Bnd_B3d::IsOut | ( | const Bnd_B3d & | theOtherBox | ) | const |
Check the given box for the intersection with the current box. Returns True if there is no intersection between boxes.
Standard_Boolean Bnd_B3d::IsOut | ( | const Bnd_B3d & | theOtherBox, |
const gp_Trsf & | theTrsf | ||
) | const |
Check the given box oriented by the given transformation for the intersection with the current box. Returns True if there is no intersection between boxes.
Standard_Boolean Bnd_B3d::IsOut | ( | const gp_Ax1 & | theLine, |
const Standard_Boolean | isRay = Standard_False , |
||
const Standard_Real | theOverthickness = 0.0 |
||
) | const |
Check the given Line for the intersection with the current box. Returns True if there is no intersection. isRay==True means intersection check with the positive half-line theOverthickness is the addition to the size of the current box (may be negative). If positive, it can be treated as the thickness of the line 'theLine' or the radius of the cylinder along 'theLine'.
Standard_Boolean Bnd_B3d::IsOut | ( | const gp_Ax3 & | thePlane | ) | const |
Check the given Plane for the intersection with the current box. Returns True if there is no intersection.
Standard_Boolean Bnd_B3d::IsOut | ( | const gp_XYZ & | theCenter, |
const Standard_Real | theRadius, | ||
const Standard_Boolean | isSphereHollow = Standard_False |
||
) | const |
Check a sphere for the intersection with the current box. Returns True if there is no intersection between boxes. If the parameter 'IsSphereHollow' is True, then the intersection is not reported for a box that is completely inside the sphere (otherwise this method would report an intersection).
Standard_Boolean Bnd_B3d::IsOut | ( | const gp_XYZ & | thePnt | ) | const |
Check the given point for the inclusion in the Box. Returns True if the point is outside.
Standard_Boolean Bnd_B3d::IsVoid | ( | ) | const |
Returns True if the box is void (non-initialized).
Standard_Boolean Bnd_B3d::Limit | ( | const Bnd_B3d & | theOtherBox | ) |
Limit the Box by the internals of theOtherBox. Returns True if the limitation takes place, otherwise False indicating that the boxes do not intersect.
Set the HSize (half-diagonal) coordinates. All components of theHSize must be non-negative.
Standard_Real Bnd_B3d::SquareExtent | ( | ) | const |
Query the square diagonal. If the box is VOID (see method IsVoid()) then a very big real value is returned.
Transform the bounding box with the given transformation. The resulting box will be larger if theTrsf contains rotation.
|
protected |
|
protected |