|
virtual std::ostream & | to_vrml (std::ostream &out, const Ravelin::Pose3d &T) const =0 |
| Virtual function for outputting the bounding volume to VRML.
|
|
virtual bool | outside (const Point3d &point, double tol=NEAR_ZERO) const =0 |
| Determines whether a point is outside the bounding volume.
|
|
virtual bool | intersects (const LineSeg3 &seg, double &tmin, double tmax, Point3d &q) const =0 |
| Determines whether a line segment intersects the bounding volume.
|
|
virtual boost::shared_ptr
< const Ravelin::Pose3d > | get_relative_pose () const =0 |
| Gets the associated pose for this bounding volume.
|
|
virtual void | transform (const Ravelin::Transform3d &T, BV *result) const =0 |
| Virtual function for transforming the BV.
|
|
virtual BVPtr | calc_swept_BV (CollisionGeometryPtr g, const Ravelin::SVelocityd &v) const =0 |
| Virtual function that calculates a velocity-expanded BV. More...
|
|
BVPtr | get_this () |
|
boost::shared_ptr< const BV > | get_this () const |
|
bool | is_leaf () const |
|
template<class OutputIterator > |
OutputIterator | get_all_BVs (OutputIterator begin) const |
| Gets all BV nodes. More...
|
|
template<class OutputIterator > |
OutputIterator | get_all_leafs (OutputIterator begin) const |
| Gets all leaf nodes.
|
|
virtual double | calc_volume () const =0 |
| Gets the volume for this bounding volume.
|
|
virtual Point3d | get_lower_bounds () const =0 |
| Gets the lower bound on a AABB around the bounding volume when a transform of T is applied.
|
|
virtual Point3d | get_upper_bounds () const =0 |
| Gets the upper bound on a AABB around the bounding volume when a transform of T is applied.
|
|
template<class OutputIterator > |
OutputIterator | get_all_BVs (OutputIterator begin) const |
| Gets all BV nodes. More...
|
|
template<class OutputIterator > |
OutputIterator | get_all_leafs (OutputIterator begin) const |
| Gets all leaf nodes.
|
|
template<class OutputIterator > |
OutputIterator | intersect_BV_trees (BVPtr a, BVPtr b, const Ravelin::Transform3d &aTb, const Ravelin::Transform3d &bTa, OutputIterator output_begin) |
| Intersects two BV trees; returns list of all leaf-level intersecting BVs. More...
|
|
|
static bool | intersects (BVPtr a, BVPtr b) |
| Convenience method.
|
|
static bool | intersects (BVPtr a, BVPtr b, const Ravelin::Transform3d &T) |
| Convenience method.
|
|
static double | calc_distance (BVPtr a, BVPtr b, Point3d &cp1, Point3d &cp2) |
| Convenience method.
|
|
static double | calc_distance (BVPtr a, BVPtr b, const Ravelin::Transform3d &aTb, Point3d &cp1, Point3d &cp2) |
| Convenience method.
|
|
static bool | intersects (const BV *a, const BV *b) |
| Computes whether two abstract bounding volumes intersect.
|
|
static bool | intersects (const BV *a, const BV *b, const Ravelin::Transform3d &T) |
|
static double | calc_distance (const BV *a, const BV *b, Point3d &cp1, Point3d &cp2) |
| Computes the distance between two abstract bounding volumes and stores the closest points. More...
|
|
static double | calc_distance (const BV *a, const BV *b, const Ravelin::Transform3d &aTb, Point3d &cp1, Point3d &cp2) |
|
template<class OutputIterator > |
static OutputIterator | intersect_BV_trees (BVPtr a, BVPtr b, const Ravelin::Transform3d &aTb, const Ravelin::Transform3d &bTa, OutputIterator output_begin) |
| Intersects two BV trees; returns list of all leaf-level intersecting BVs. More...
|
|
An abstract bounding volume.
- Note
- the BV is generally constructed such that its frame is aligned with that of the underlying rigid body (or collision geometry). Therefore, the center of the BV is computed relative to the center-of-mass of the body (or the center of the geometry). The orientation of the BV will always be identical to the orientation of the rigid body (or collision geometry).