|
Moby
|
A sphere-swept line (SSL) that optionally allows building an SSL tree. More...
#include <SSL.h>
Public Member Functions | |
| SSL () | |
| Initializes an empty SSL. | |
| SSL (const SSL &obb) | |
| SSL (const Point3d &p1, const Point3d &p2, double radius) | |
| Initializes a SSL from the given values. | |
| SSL (const SSL &s, const Ravelin::Vector3d &v) | |
| SSL & | operator= (const SSL &s) |
| Copies one SSL to another. | |
| virtual void | transform (const Ravelin::Transform3d &T, BV *result) const |
| Transforms the SSL using the given transform. | |
| virtual BVPtr | calc_swept_BV (CollisionGeometryPtr g, const Ravelin::SVelocityd &v) const |
| Calculates the velocity-expanded bounding volume. | |
| virtual bool | intersects (const LineSeg3 &seg, double &tmin, double tmax, Point3d &q) const |
| Determines whether a line segment intersects the bounding volume. | |
| virtual bool | outside (const Point3d &point, double tol=NEAR_ZERO) const |
| Determines whether a point is outside the bounding volume. | |
| boost::shared_ptr< SSL > | get_this () |
| boost::shared_ptr< const SSL > | get_this () const |
| virtual std::ostream & | to_vrml (std::ostream &out, const Ravelin::Pose3d &T) const |
| Outputs the SSL to VRML (not yet implemented) | |
| unsigned | calc_size () const |
| Calculates the size (number of elements in) a SSL tree. | |
|
virtual boost::shared_ptr < const Ravelin::Pose3d > | get_relative_pose () const |
| Gets the associated pose for this bounding volume. | |
| virtual Point3d | get_lower_bounds () const |
| Gets the lower bounds of the SSL. | |
| virtual Point3d | get_upper_bounds () const |
| Gets the upper bounds of the SSL. | |
| virtual double | calc_volume () const |
| Calculates (approximate?) volume of the SSL. | |
Public Member Functions inherited from Moby::BV | |
| 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. | |
| 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 Public Member Functions | |
| static double | calc_dist (const SSL &o, const Point3d &p) |
| Calculates the distance of the sphere-swept line from a point. | |
| static double | calc_dist (const SSL &a, const SSL &b, Point3d &cpa, Point3d &cpb) |
| Calculates the distance between two sphere-swept lines and also calculates closest points. | |
| static double | calc_dist (const SSL &a, const SSL &b, const Ravelin::Transform3d &aTb, Point3d &cpa, Point3d &cpb) |
| static bool | intersects (const SSL &a, const SSL &b) |
| Determines whether two SSLs intersect. | |
| static bool | intersects (const SSL &a, const SSL &b, const Ravelin::Transform3d &aTb) |
| static bool | intersects (const SSL &a, const LineSeg3 &seg, double &tmin, double tmax, Point3d &q) |
| Determines whether (and when) a line segment intersects with the SSL. | |
| static bool | outside (const SSL &a, const Point3d &point, double tol=NEAR_ZERO) |
| Determines whether a point is outside the SSL. | |
Static Public Member Functions inherited from Moby::BV | |
| 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... | |
Public Attributes | |
| Point3d | p1 |
| The first point of the line segment. | |
| Point3d | p2 |
| The second point of the line segment. | |
| double | radius |
| Radius of the spherical addition. | |
Public Attributes inherited from Moby::BV | |
| boost::shared_ptr< void > | userdata |
| Userdata for the BV. | |
| CollisionGeometryPtr | geom |
| The collision geometry associated with this bounding volume. | |
| std::list< BVPtr > | children |
| The children of this BV. | |
1.8.6