IMP logo

IMP::algebra::BoundingBoxD< D > Class Template Reference


Detailed Description

template<unsigned int D>
class IMP::algebra::BoundingBoxD< D >

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.

Note:
This class is a geometric primitive.
Inheritance diagram for IMP::algebra::BoundingBoxD< D >:

Inheritance graph
[legend]

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.

Member Function Documentation

template<unsigned int D>
const BoundingBoxD<D>& IMP::algebra::BoundingBoxD< D >::operator+= ( double  o  ) 

Grow the bounding box by o on all sizes.


Friends And Related Function Documentation

template<unsigned int D>
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.


The documentation for this class was generated from the following files:

Generated on Mon Mar 8 23:08:47 2010 for IMP by doxygen 1.5.8