A vector of Body objects. More...
#include <bodies.h>
Public Member Functions | |
void | addBody (Body *body) |
Add a body. | |
void | addBody (const shapes::Shape *shape, const Eigen::Affine3d &pose, double padding=0.0) |
Add a body from a shape, a pose for the body and a padding. | |
BodyVector () | |
BodyVector (const std::vector< shapes::Shape * > &shapes, const EigenSTL::vector_Affine3d &poses, double padding=0.0) | |
Construct a body vector from a vector of shapes, a vector of poses and a padding. | |
void | clear () |
Clear all bodies from the vector. | |
bool | containsPoint (const Eigen::Vector3d &p, bool verbose=false) const |
Check if any of the bodies in the vector contains the input point. | |
bool | containsPoint (const Eigen::Vector3d &p, std::size_t &index, bool verbose=false) const |
Check if any of the bodies in the vector contains the input point, and report the index at which the first body that contains the point was found. | |
const Body * | getBody (unsigned int i) const |
Get the ith body in the vector. | |
std::size_t | getCount () const |
Get the number of bodies in this vector. | |
bool | intersectsRay (const Eigen::Vector3d &origin, const Eigen::Vector3d &dir, std::size_t &index, EigenSTL::vector_Vector3d *intersections=NULL, unsigned int count=0) const |
Check if any of the bodies intersects the ray defined by origin and dir. When the first intersection is found, this function terminates. The index of the body that does intersect the ray is set to index (unset if no intersections were found). Optionally, the intersection points are computed and set to intersections (only for the first body that is found to intersect the ray) | |
void | setPose (unsigned int i, const Eigen::Affine3d &pose) |
Set the pose of a particular body in the vector of bodies. | |
~BodyVector () | |
Private Attributes | |
std::vector< Body * > | bodies_ |
Definition at line 1041 of file bodies.cpp.
bodies::BodyVector::BodyVector | ( | const std::vector< shapes::Shape * > & | shapes, |
const EigenSTL::vector_Affine3d & | poses, | ||
double | padding = 0.0 |
||
) |
Construct a body vector from a vector of shapes, a vector of poses and a padding.
Definition at line 1045 of file bodies.cpp.
Definition at line 1054 of file bodies.cpp.
void bodies::BodyVector::addBody | ( | Body * | body | ) |
Add a body.
Definition at line 1066 of file bodies.cpp.
void bodies::BodyVector::addBody | ( | const shapes::Shape * | shape, |
const Eigen::Affine3d & | pose, | ||
double | padding = 0.0 |
||
) |
Add a body from a shape, a pose for the body and a padding.
Definition at line 1073 of file bodies.cpp.
void bodies::BodyVector::clear | ( | ) |
Clear all bodies from the vector.
Definition at line 1059 of file bodies.cpp.
bool bodies::BodyVector::containsPoint | ( | const Eigen::Vector3d & | p, |
bool | verbose = false |
||
) | const |
Check if any of the bodies in the vector contains the input point.
Definition at line 1119 of file bodies.cpp.
bool bodies::BodyVector::containsPoint | ( | const Eigen::Vector3d & | p, |
std::size_t & | index, | ||
bool | verbose = false |
||
) | const |
Check if any of the bodies in the vector contains the input point, and report the index at which the first body that contains the point was found.
Definition at line 1108 of file bodies.cpp.
const bodies::Body * bodies::BodyVector::getBody | ( | unsigned int | i | ) | const |
Get the ith body in the vector.
Definition at line 1097 of file bodies.cpp.
std::size_t bodies::BodyVector::getCount | ( | ) | const |
Get the number of bodies in this vector.
Definition at line 1081 of file bodies.cpp.
bool bodies::BodyVector::intersectsRay | ( | const Eigen::Vector3d & | origin, |
const Eigen::Vector3d & | dir, | ||
std::size_t & | index, | ||
EigenSTL::vector_Vector3d * | intersections = NULL , |
||
unsigned int | count = 0 |
||
) | const |
Check if any of the bodies intersects the ray defined by origin and dir. When the first intersection is found, this function terminates. The index of the body that does intersect the ray is set to index (unset if no intersections were found). Optionally, the intersection points are computed and set to intersections (only for the first body that is found to intersect the ray)
Definition at line 1125 of file bodies.cpp.
void bodies::BodyVector::setPose | ( | unsigned int | i, |
const Eigen::Affine3d & | pose | ||
) |
Set the pose of a particular body in the vector of bodies.
Definition at line 1086 of file bodies.cpp.
std::vector<Body*> bodies::BodyVector::bodies_ [private] |