# 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:

- Bnd_Box.hxx
- Bnd_Box.lxx