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.
Public Member Functions | |
BoundingBoxD (const std::vector< VectorD< D > > &points) | |
Creating a bounding box from a set of points. | |
BoundingBoxD (const VectorD< D > &v) | |
Creating a bounding box containing one point. | |
BoundingBoxD (const VectorD< D > &lb, const VectorD< D > &ub) | |
Make from the lower and upper corners. | |
BoundingBoxD () | |
Create an empty bounding box. | |
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. | |
template<class O > | |
const BoundingBoxD< D > | operator+ (const O &o) |
const BoundingBoxD< D > & | operator+= (double o) |
const BoundingBoxD< D > & | operator+= (const VectorD< D > &o) |
merge two bounding boxes | |
const BoundingBoxD< D > & | operator+= (const BoundingBoxD< 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 growning 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 if 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.