OCC Main Page | FoundationClasses | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals

FoundationClasses
TKMath
Bnd


Bnd_Box Class Reference

Describes a bounding box in 3D space.
A bounding box is parallel to the axes of the coordinates
system. If it is finite, it is defined by the three intervals:
- [ Xmin,Xmax ],
- [ Ymin,Ymax ],
- [ Zmin,Zmax ].
A bounding box may be infinite (i.e. open) in one or more
directions. It is said to be:
- OpenXmin if it is infinite on the negative side of the "X Direction";
- OpenXmax if it is infinite on the positive side of the "X Direction";
- OpenYmin if it is infinite on the negative side of the "Y Direction";
- OpenYmax if it is infinite on the positive side of the "Y Direction";
- OpenZmin if it is infinite on the negative side of the "Z Direction";
- OpenZmax if it is infinite on the positive side of the "Z Direction";
- WholeSpace if it is infinite in all six directions. In this
case, any point of the space is inside the box;
- Void if it is empty. In this case, there is no point included in the box.
A bounding box is defined by:
- six bounds (Xmin, Xmax, Ymin, Ymax, Zmin and
Zmax) which limit the bounding box if it is finite,
- eight flags (OpenXmin, OpenXmax, OpenYmin,
OpenYmax, OpenZmin, OpenZmax,
WholeSpace and Void) which describe the
bounding box if it is infinite or empty, and
- a gap, which is included on both sides in any direction
when consulting the finite bounds of the box.
.

#include <Bnd_Box.hxx>


Public Member Functions

void * operator new (size_t, void *anAddress)
void * operator new (size_t size)
void operator delete (void *anAddress)
Standard_EXPORT Bnd_Box ()
 Creates an empty Box.
The constructed box is qualified Void. Its gap is null.
.
Standard_EXPORT void SetWhole ()
 Sets this bounding box so that it covers the whole of 3D space.
It is infinitely long in all directions.
.
Standard_EXPORT void SetVoid ()
 Sets this bounding box so that it is empty. All points are outside a void box.
.
Standard_EXPORT void Set (const gp_Pnt &P)
 Sets this bounding box so that it bounds
- the point P. This involves first setting this bounding box
to be void and then adding the point P.
.
Standard_EXPORT void Set (const gp_Pnt &P, const gp_Dir &D)
 Sets this bounding box so that it bounds
the half-line defined by point P and direction D, i.e. all
points M defined by M=P+u*D, where u is greater than
or equal to 0, are inside the bounding volume. This
involves first setting this box to be void and then adding the half-line.
.
Standard_EXPORT void Update (const Standard_Real aXmin, const Standard_Real aYmin, const Standard_Real aZmin, const Standard_Real aXmax, const Standard_Real aYmax, const Standard_Real aZmax)
 Enlarges this bounding box, if required, so that it
contains at least:
- interval [ aXmin,aXmax ] in the "X Direction",
- interval [ aYmin,aYmax ] in the "Y Direction",
- interval [ aZmin,aZmax ] in the "Z Direction";
.
Standard_EXPORT void Update (const Standard_Real X, const Standard_Real Y, const Standard_Real Z)
 Adds a point of coordinates (X,Y,Z) to this bounding box.
.
Standard_EXPORT Standard_Real GetGap () const
 Returns the gap of this bounding box.
.
Standard_EXPORT void SetGap (const Standard_Real Tol)
 Set the gap of this bounding box to abs(Tol).
.
Standard_EXPORT void Enlarge (const Standard_Real Tol)
 Enlarges the box with a tolerance value.
(minvalues-Abs(<tol>) and maxvalues+Abs(<tol>))
This means that the minimum values of its X, Y and Z
intervals of definition, when they are finite, are reduced by
the absolute value of Tol, while the maximum values are
increased by the same amount.
.
Standard_EXPORT void Get (Standard_Real &aXmin, Standard_Real &aYmin, Standard_Real &aZmin, Standard_Real &aXmax, Standard_Real &aYmax, Standard_Real &aZmax) const
 Returns the bounds of this bounding box. The gap is included.
If this bounding box is infinite (i.e. "open"), returned values
may be equal to +/- Precision::Infinite().
if IsVoid()
.
Standard_EXPORT void OpenXmin ()
 The Box will be infinitely long in the Xmin
direction.
.
Standard_EXPORT void OpenXmax ()
 The Box will be infinitely long in the Xmax
direction.
.
Standard_EXPORT void OpenYmin ()
 The Box will be infinitely long in the Ymin
direction.
.
Standard_EXPORT void OpenYmax ()
 The Box will be infinitely long in the Ymax
direction.
.
Standard_EXPORT void OpenZmin ()
 The Box will be infinitely long in the Zmin
direction.
.
Standard_EXPORT void OpenZmax ()
 The Box will be infinitely long in the Zmax
direction.
.
Standard_EXPORT Standard_Boolean IsOpenXmin () const
 Returns true if this bounding box is open in the Xmin direction.
.
Standard_EXPORT Standard_Boolean IsOpenXmax () const
 Returns true if this bounding box is open in the Xmax direction.
.
Standard_EXPORT Standard_Boolean IsOpenYmin () const
 Returns true if this bounding box is open in the Ymix direction.
.
Standard_EXPORT Standard_Boolean IsOpenYmax () const
 Returns true if this bounding box is open in the Ymax direction.
.
Standard_EXPORT Standard_Boolean IsOpenZmin () const
 Returns true if this bounding box is open in the Zmin direction.
.
Standard_EXPORT Standard_Boolean IsOpenZmax () const
 Returns true if this bounding box is open in the Zmax direction.
.
Standard_EXPORT Standard_Boolean IsWhole () const
 Returns true if this bounding box is infinite in all 6 directions (WholeSpace flag).
.
Standard_EXPORT Standard_Boolean IsVoid () const
 Returns true if this bounding box is empty (Void flag).
.
Standard_EXPORT Standard_Boolean IsXThin (const Standard_Real tol) const
 true if xmax-xmin < tol.

Standard_EXPORT Standard_Boolean IsYThin (const Standard_Real tol) const
 true if ymax-ymin < tol.

Standard_EXPORT Standard_Boolean IsZThin (const Standard_Real tol) const
 true if zmax-zmin < tol.

Standard_EXPORT Standard_Boolean IsThin (const Standard_Real tol) const
 Returns true if IsXThin, IsYThin and IsZThin are all true,
i.e. if the box is thin in all three dimensions.
.
Standard_EXPORT Bnd_Box Transformed (const gp_Trsf &T) const
 Returns a bounding box which is the result of applying the
transformation T to this bounding box.
Warning
Applying a geometric transformation (for example, a
rotation) to a bounding box generally increases its
dimensions. This is not optimal for algorithms which use it.
.
Standard_EXPORT void Add (const Bnd_Box &Other)
 Adds the box <other> to <me>.
.
Standard_EXPORT void Add (const gp_Pnt &P)
 Adds a Pnt to the box.
.
Standard_EXPORT void Add (const gp_Pnt &P, const gp_Dir &D)
 Extends <me> from the Pnt

in the direction <d>.
.

Standard_EXPORT void Add (const gp_Dir &D)
 Extends the Box in the given Direction, i.e. adds
an half-line. The box may become infinite in
1,2 or 3 directions.
.
Standard_EXPORT Standard_Boolean IsOut (const gp_Pnt &P) const
 Returns True if the Pnt is out the box.
.
Standard_EXPORT Standard_Boolean IsOut (const gp_Lin &L) const
 Returns False if the line intersects the box.
.
Standard_EXPORT Standard_Boolean IsOut (const gp_Pln &P) const
 Returns False if the plane intersects the box.
.
Standard_EXPORT Standard_Boolean IsOut (const Bnd_Box &Other) const
 Returns False if the <box> intersects or is inside <me>.
.
Standard_EXPORT Standard_Boolean IsOut (const Bnd_Box &Other, const gp_Trsf &T) const
 Returns False if the transformed <box> intersects
or is inside <me>.
.
Standard_EXPORT Standard_Boolean IsOut (const gp_Trsf &T1, const Bnd_Box &Other, const gp_Trsf &T2) const
 Returns False if the transformed <box> intersects
or is inside the transformed box <me>.
.
Standard_EXPORT Standard_Boolean IsOut (const gp_Pnt &P1, const gp_Pnt &P2, const gp_Dir &D) const
 Returns False if the flat band lying between two parallel
lines represented by their reference points <p1>, <p2> and
direction <d> intersects the box.
.
Standard_EXPORT Standard_Real Distance (const Bnd_Box &Other) const
 Computes the minimum distance between two boxes.
.
Standard_EXPORT void Dump () const
Standard_Real SquareExtent () const
 Computes the squared diagonal of me.
.

Private Attributes

Standard_Real Xmin
Standard_Real Xmax
Standard_Real Ymin
Standard_Real Ymax
Standard_Real Zmin
Standard_Real Zmax
Standard_Real Gap
Standard_Integer Flags


Constructor & Destructor Documentation

Standard_EXPORT Bnd_Box::Bnd_Box (   ) 
 


Member Function Documentation

Standard_EXPORT void Bnd_Box::Add (  const gp_Dir &  D  ) 
 

Standard_EXPORT void Bnd_Box::Add (  const gp_Pnt &  P,
const gp_Dir &  D
) 
 

Standard_EXPORT void Bnd_Box::Add (  const gp_Pnt &  P  ) 
 

Standard_EXPORT void Bnd_Box::Add (  const Bnd_Box &  Other  ) 
 

Standard_EXPORT Standard_Real Bnd_Box::Distance (  const Bnd_Box &  Other  )  const
 

Standard_EXPORT void Bnd_Box::Dump (   )  const
 

Standard_EXPORT void Bnd_Box::Enlarge (  const Standard_Real  Tol  ) 
 

Standard_EXPORT void Bnd_Box::Get (  Standard_Real &  aXmin,
Standard_Real &  aYmin,
Standard_Real &  aZmin,
Standard_Real &  aXmax,
Standard_Real &  aYmax,
Standard_Real &  aZmax
)  const
 

Standard_EXPORT Standard_Real Bnd_Box::GetGap (   )  const
 

Standard_EXPORT Standard_Boolean Bnd_Box::IsOpenXmax (   )  const
 

Standard_EXPORT Standard_Boolean Bnd_Box::IsOpenXmin (   )  const
 

Standard_EXPORT Standard_Boolean Bnd_Box::IsOpenYmax (   )  const
 

Standard_EXPORT Standard_Boolean Bnd_Box::IsOpenYmin (   )  const
 

Standard_EXPORT Standard_Boolean Bnd_Box::IsOpenZmax (   )  const
 

Standard_EXPORT Standard_Boolean Bnd_Box::IsOpenZmin (   )  const
 

Standard_EXPORT Standard_Boolean Bnd_Box::IsOut (  const gp_Pnt &  P1,
const gp_Pnt &  P2,
const gp_Dir &  D
)  const
 

Standard_EXPORT Standard_Boolean Bnd_Box::IsOut (  const gp_Trsf &  T1,
const Bnd_Box &  Other,
const gp_Trsf &  T2
)  const
 

Standard_EXPORT Standard_Boolean Bnd_Box::IsOut (  const Bnd_Box &  Other,
const gp_Trsf &  T
)  const
 

Standard_EXPORT Standard_Boolean Bnd_Box::IsOut (  const Bnd_Box &  Other  )  const
 

Standard_EXPORT Standard_Boolean Bnd_Box::IsOut (  const gp_Pln &  P  )  const
 

Standard_EXPORT Standard_Boolean Bnd_Box::IsOut (  const gp_Lin &  L  )  const
 

Standard_EXPORT Standard_Boolean Bnd_Box::IsOut (  const gp_Pnt &  P  )  const
 

Standard_EXPORT Standard_Boolean Bnd_Box::IsThin (  const Standard_Real  tol  )  const
 

Standard_EXPORT Standard_Boolean Bnd_Box::IsVoid (   )  const
 

Standard_EXPORT Standard_Boolean Bnd_Box::IsWhole (   )  const
 

Standard_EXPORT Standard_Boolean Bnd_Box::IsXThin (  const Standard_Real  tol  )  const
 

Standard_EXPORT Standard_Boolean Bnd_Box::IsYThin (  const Standard_Real  tol  )  const
 

Standard_EXPORT Standard_Boolean Bnd_Box::IsZThin (  const Standard_Real  tol  )  const
 

Standard_EXPORT void Bnd_Box::OpenXmax (   ) 
 

Standard_EXPORT void Bnd_Box::OpenXmin (   ) 
 

Standard_EXPORT void Bnd_Box::OpenYmax (   ) 
 

Standard_EXPORT void Bnd_Box::OpenYmin (   ) 
 

Standard_EXPORT void Bnd_Box::OpenZmax (   ) 
 

Standard_EXPORT void Bnd_Box::OpenZmin (   ) 
 

void Bnd_Box::operator delete (  void *  anAddress  )  [inline]
 

void* Bnd_Box::operator new (  size_t  size  )  [inline]
 

void* Bnd_Box::operator new (  size_t  ,
void *  anAddress
)  [inline]
 

Standard_EXPORT void Bnd_Box::Set (  const gp_Pnt &  P,
const gp_Dir &  D
) 
 

Standard_EXPORT void Bnd_Box::Set (  const gp_Pnt &  P  ) 
 

Standard_EXPORT void Bnd_Box::SetGap (  const Standard_Real  Tol  ) 
 

Standard_EXPORT void Bnd_Box::SetVoid (   ) 
 

Standard_EXPORT void Bnd_Box::SetWhole (   ) 
 

Standard_Real Bnd_Box::SquareExtent (   )  const [inline]
 

Standard_EXPORT Bnd_Box Bnd_Box::Transformed (  const gp_Trsf &  T  )  const
 

Standard_EXPORT void Bnd_Box::Update (  const Standard_Real  X,
const Standard_Real  Y,
const Standard_Real  Z
) 
 

Standard_EXPORT void Bnd_Box::Update (  const Standard_Real  aXmin,
const Standard_Real  aYmin,
const Standard_Real  aZmin,
const Standard_Real  aXmax,
const Standard_Real  aYmax,
const Standard_Real  aZmax
) 
 


Field Documentation

Standard_Integer Bnd_Box::Flags [private]
 

Standard_Real Bnd_Box::Gap [private]
 

Standard_Real Bnd_Box::Xmax [private]
 

Standard_Real Bnd_Box::Xmin [private]
 

Standard_Real Bnd_Box::Ymax [private]
 

Standard_Real Bnd_Box::Ymin [private]
 

Standard_Real Bnd_Box::Zmax [private]
 

Standard_Real Bnd_Box::Zmin [private]
 


The documentation for this class was generated from the following files:
Generated on Mon Aug 25 13:12:02 2008 for OpenCASCADE by  doxygen 1.4.1