Open CASCADE Technology
7.0.0
|
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: More...
#include <Bnd_Box.hxx>
Public Member Functions | |
Bnd_Box () | |
Creates an empty Box. The constructed box is qualified Void. Its gap is null. More... | |
void | SetWhole () |
Sets this bounding box so that it covers the whole of 3D space. It is infinitely long in all directions. More... | |
void | SetVoid () |
Sets this bounding box so that it is empty. All points are outside a void box. More... | |
void | Set (const gp_Pnt &P) |
Sets this bounding box so that it bounds. More... | |
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. More... | |
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: More... | |
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. More... | |
Standard_Real | GetGap () const |
Returns the gap of this bounding box. More... | |
void | SetGap (const Standard_Real Tol) |
Set the gap of this bounding box to abs(Tol). More... | |
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. More... | |
void | Get (Standard_Real &theXmin, Standard_Real &theYmin, Standard_Real &theZmin, Standard_Real &theXmax, Standard_Real &theYmax, Standard_Real &theZmax) 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(). Standard_ConstructionError exception will be thrown if the box is void. if IsVoid() More... | |
gp_Pnt | CornerMin () const |
Returns the lower corner 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(). Standard_ConstructionError exception will be thrown if the box is void. if IsVoid() More... | |
gp_Pnt | CornerMax () const |
Returns the upper corner 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(). Standard_ConstructionError exception will be thrown if the box is void. if IsVoid() More... | |
void | OpenXmin () |
The Box will be infinitely long in the Xmin direction. More... | |
void | OpenXmax () |
The Box will be infinitely long in the Xmax direction. More... | |
void | OpenYmin () |
The Box will be infinitely long in the Ymin direction. More... | |
void | OpenYmax () |
The Box will be infinitely long in the Ymax direction. More... | |
void | OpenZmin () |
The Box will be infinitely long in the Zmin direction. More... | |
void | OpenZmax () |
The Box will be infinitely long in the Zmax direction. More... | |
Standard_Boolean | IsOpenXmin () const |
Returns true if this bounding box is open in the Xmin direction. More... | |
Standard_Boolean | IsOpenXmax () const |
Returns true if this bounding box is open in the Xmax direction. More... | |
Standard_Boolean | IsOpenYmin () const |
Returns true if this bounding box is open in the Ymix direction. More... | |
Standard_Boolean | IsOpenYmax () const |
Returns true if this bounding box is open in the Ymax direction. More... | |
Standard_Boolean | IsOpenZmin () const |
Returns true if this bounding box is open in the Zmin direction. More... | |
Standard_Boolean | IsOpenZmax () const |
Returns true if this bounding box is open in the Zmax direction. More... | |
Standard_Boolean | IsWhole () const |
Returns true if this bounding box is infinite in all 6 directions (WholeSpace flag). More... | |
Standard_Boolean | IsVoid () const |
Returns true if this bounding box is empty (Void flag). More... | |
Standard_Boolean | IsXThin (const Standard_Real tol) const |
true if xmax-xmin < tol. More... | |
Standard_Boolean | IsYThin (const Standard_Real tol) const |
true if ymax-ymin < tol. More... | |
Standard_Boolean | IsZThin (const Standard_Real tol) const |
true if zmax-zmin < tol. More... | |
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. More... | |
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. More... | |
void | Add (const Bnd_Box &Other) |
Adds the box <Other> to <me>. More... | |
void | Add (const gp_Pnt &P) |
Adds a Pnt to the box. More... | |
void | Add (const gp_Pnt &P, const gp_Dir &D) |
Extends <me> from the Pnt. More... | |
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. More... | |
Standard_Boolean | IsOut (const gp_Pnt &P) const |
Returns True if the Pnt is out the box. More... | |
Standard_Boolean | IsOut (const gp_Lin &L) const |
Returns False if the line intersects the box. More... | |
Standard_Boolean | IsOut (const gp_Pln &P) const |
Returns False if the plane intersects the box. More... | |
Standard_Boolean | IsOut (const Bnd_Box &Other) const |
Returns False if the <Box> intersects or is inside <me>. More... | |
Standard_Boolean | IsOut (const Bnd_Box &Other, const gp_Trsf &T) const |
Returns False if the transformed <Box> intersects or is inside <me>. More... | |
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>. More... | |
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. More... | |
Standard_Real | Distance (const Bnd_Box &Other) const |
Computes the minimum distance between two boxes. More... | |
void | Dump () const |
Standard_Real | SquareExtent () const |
Computes the squared diagonal of me. More... | |
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:
Bnd_Box::Bnd_Box | ( | ) |
Creates an empty Box. The constructed box is qualified Void. Its gap is null.
void Bnd_Box::Add | ( | const Bnd_Box & | Other | ) |
Adds the box <Other> to <me>.
void Bnd_Box::Add | ( | const gp_Pnt & | P | ) |
Adds a Pnt to the box.
Extends <me> from the Pnt.
in the direction <D>.
void Bnd_Box::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.
gp_Pnt Bnd_Box::CornerMax | ( | ) | const |
Returns the upper corner 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(). Standard_ConstructionError exception will be thrown if the box is void. if IsVoid()
gp_Pnt Bnd_Box::CornerMin | ( | ) | const |
Returns the lower corner 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(). Standard_ConstructionError exception will be thrown if the box is void. if IsVoid()
Standard_Real Bnd_Box::Distance | ( | const Bnd_Box & | Other | ) | const |
Computes the minimum distance between two boxes.
void Bnd_Box::Dump | ( | ) | const |
void Bnd_Box::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.
void Bnd_Box::Get | ( | Standard_Real & | theXmin, |
Standard_Real & | theYmin, | ||
Standard_Real & | theZmin, | ||
Standard_Real & | theXmax, | ||
Standard_Real & | theYmax, | ||
Standard_Real & | theZmax | ||
) | 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(). Standard_ConstructionError exception will be thrown if the box is void. if IsVoid()
Standard_Real Bnd_Box::GetGap | ( | ) | const |
Returns the gap of this bounding box.
Standard_Boolean Bnd_Box::IsOpenXmax | ( | ) | const |
Returns true if this bounding box is open in the Xmax direction.
Standard_Boolean Bnd_Box::IsOpenXmin | ( | ) | const |
Returns true if this bounding box is open in the Xmin direction.
Standard_Boolean Bnd_Box::IsOpenYmax | ( | ) | const |
Returns true if this bounding box is open in the Ymax direction.
Standard_Boolean Bnd_Box::IsOpenYmin | ( | ) | const |
Returns true if this bounding box is open in the Ymix direction.
Standard_Boolean Bnd_Box::IsOpenZmax | ( | ) | const |
Returns true if this bounding box is open in the Zmax direction.
Standard_Boolean Bnd_Box::IsOpenZmin | ( | ) | const |
Returns true if this bounding box is open in the Zmin direction.
Standard_Boolean Bnd_Box::IsOut | ( | const gp_Pnt & | P | ) | const |
Returns True if the Pnt is out the box.
Standard_Boolean Bnd_Box::IsOut | ( | const gp_Lin & | L | ) | const |
Returns False if the line intersects the box.
Standard_Boolean Bnd_Box::IsOut | ( | const gp_Pln & | P | ) | const |
Returns False if the plane intersects the box.
Standard_Boolean Bnd_Box::IsOut | ( | const Bnd_Box & | Other | ) | const |
Returns False if the <Box> intersects or is inside <me>.
Standard_Boolean Bnd_Box::IsOut | ( | const Bnd_Box & | Other, |
const gp_Trsf & | T | ||
) | const |
Returns False if the transformed <Box> intersects or is inside <me>.
Standard_Boolean Bnd_Box::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_Boolean Bnd_Box::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_Boolean Bnd_Box::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_Boolean Bnd_Box::IsVoid | ( | ) | const |
Returns true if this bounding box is empty (Void flag).
Standard_Boolean Bnd_Box::IsWhole | ( | ) | const |
Returns true if this bounding box is infinite in all 6 directions (WholeSpace flag).
Standard_Boolean Bnd_Box::IsXThin | ( | const Standard_Real | tol | ) | const |
true if xmax-xmin < tol.
Standard_Boolean Bnd_Box::IsYThin | ( | const Standard_Real | tol | ) | const |
true if ymax-ymin < tol.
Standard_Boolean Bnd_Box::IsZThin | ( | const Standard_Real | tol | ) | const |
true if zmax-zmin < tol.
void Bnd_Box::OpenXmax | ( | ) |
The Box will be infinitely long in the Xmax direction.
void Bnd_Box::OpenXmin | ( | ) |
The Box will be infinitely long in the Xmin direction.
void Bnd_Box::OpenYmax | ( | ) |
The Box will be infinitely long in the Ymax direction.
void Bnd_Box::OpenYmin | ( | ) |
The Box will be infinitely long in the Ymin direction.
void Bnd_Box::OpenZmax | ( | ) |
The Box will be infinitely long in the Zmax direction.
void Bnd_Box::OpenZmin | ( | ) |
The Box will be infinitely long in the Zmin direction.
void Bnd_Box::Set | ( | const gp_Pnt & | P | ) |
Sets this bounding box so that it bounds.
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.
void Bnd_Box::SetGap | ( | const Standard_Real | Tol | ) |
Set the gap of this bounding box to abs(Tol).
void Bnd_Box::SetVoid | ( | ) |
Sets this bounding box so that it is empty. All points are outside a void box.
void Bnd_Box::SetWhole | ( | ) |
Sets this bounding box so that it covers the whole of 3D space. It is infinitely long in all directions.
Standard_Real Bnd_Box::SquareExtent | ( | ) | const |
Computes the squared diagonal of me.
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.
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 | ||
) |
Enlarges this bounding box, if required, so that it contains at least:
void Bnd_Box::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.