An axis-aligned bounding box.
The BoundingBoxD class provides a unified representation for bounding boxes in IMP. Geometric objects should have an associated namespace method like get_bounding_box() which returns the bounding boxes of objects.
Examples: nup84 cg, range restriction, nup84 rb, rigid body and excluded volume restraint, filter close pairs, rigid collisions, analyze convergence, initialize chains
Public Member Functions | |
| BoundingBoxD () | |
| Create an empty bounding box. | |
| BoundingBoxD (unsigned int d) | |
| Create an empty bounding box. | |
| BoundingBoxD (const VectorD< D > &v) | |
| Creating a bounding box containing one point. | |
| BoundingBoxD (const std::vector< VectorD< D > > &points) | |
| Creating a bounding box from a set of points. | |
| BoundingBoxD (const VectorD< D > &lb, const VectorD< D > &ub) | |
| Make from the lower and upper corners. | |
| bool | get_contains (const BoundingBoxD &bb) const |
| True if the input bounding box is contained within this bounding box. | |
| bool | get_contains (const VectorD< D > &o) const |
| const VectorD< D > & | get_corner (unsigned int i) const |
| For 0 return lower corner and 1 upper corner. | |
| unsigned int | get_dimension () const |
| template<class O > | |
| const BoundingBoxD< D > | operator+ (const O &o) const |
| const BoundingBoxD< D > & | operator+= (const BoundingBoxD< D > &o) |
| merge two bounding boxes | |
| const BoundingBoxD< D > & | operator+= (double o) |
| const BoundingBoxD< D > & | operator+= (const VectorD< D > &o) |
| merge two bounding boxes | |
Related Functions | |
| (Note that these are not member functions.) | |
| algebra::BoundingBoxD< 3 > | get_bounding_box (const Hierarchy &h) |
| Get a bounding box for the Hierarchy. | |
| const BoundingBoxD<D>& IMP::algebra::BoundingBoxD< D >::operator+= | ( | double | o | ) |
Grow the bounding box by o on all sizes.
| algebra::BoundingBoxD< 3 > get_bounding_box | ( | const Hierarchy & | h | ) | [related] |
Get a bounding box for the Hierarchy.
This bounding box is that of the highest (in the CS sense of a tree growing down from the root) cut through the tree where each node in the cut has x,y,z, and r. That is, if the root has x,y,z,r then it is the bounding box of that sphere. If only the leaves have radii, it is the bounding box of the leaves. If no such cut exists, the behavior is undefined.