Definition of a sphere. More...
#include <bodies.h>

Public Member Functions | |
| BodyPtr | cloneAt (const Eigen::Isometry3d &pose, double padding, double scale) const override |
| Get a clone of this body, but one that is located at the pose pose and has possibly different passing and scaling: padding and scaling. This function is useful to implement thread safety, when bodies need to be moved around. More... | |
| void | computeBoundingBox (AABB &bbox) const override |
| Compute the axis-aligned bounding box for the body, in its current pose. Scaling and padding are accounted for. More... | |
| void | computeBoundingBox (OBB &bbox) const override |
| Compute the oriented bounding box for the body, in its current pose. Scaling and padding are accounted for. More... | |
| void | computeBoundingCylinder (BoundingCylinder &cylinder) const override |
| Compute the bounding cylinder for the body, in its current pose. Scaling and padding are accounted for. More... | |
| void | computeBoundingSphere (BoundingSphere &sphere) const override |
| Compute the bounding radius for the body, in its current pose. Scaling and padding are accounted for. More... | |
| double | computeVolume () const override |
| Compute the volume of the body. This method includes changes induced by scaling and padding. More... | |
| bool | containsPoint (const Eigen::Vector3d &p, bool verbose=false) const override |
| Check if a point is inside the body. Surface points are included. More... | |
| std::vector< double > | getDimensions () const override |
| Get the radius of the sphere. More... | |
| std::vector< double > | getScaledDimensions () const override |
| Get the dimensions associated to this body (scaled and padded) More... | |
| bool | intersectsRay (const Eigen::Vector3d &origin, const Eigen::Vector3d &dir, EigenSTL::vector_Vector3d *intersections=nullptr, unsigned int count=0) const override |
| Check if a ray intersects the body, and find the set of intersections, in order, along the ray. A maximum number of intersections can be specified as well. If that number is 0, all intersections are returned. Passing dir as a unit vector will result in faster computation. More... | |
| bool | samplePointInside (random_numbers::RandomNumberGenerator &rng, unsigned int max_attempts, Eigen::Vector3d &result) const override |
| Sample a point that is included in the body using a given random number generator. More... | |
| Sphere () | |
| Sphere (const BoundingSphere &sphere) | |
| Sphere (const shapes::Shape *shape) | |
| void | updateInternalData () override |
| This function is called every time a change to the body is made, so that intermediate values stored for efficiency reasons are kept up to date. More... | |
| ~Sphere () override=default | |
Public Member Functions inherited from bodies::Body | |
| Body () | |
| BodyPtr | cloneAt (const Eigen::Isometry3d &pose) const |
| Get a clone of this body, but one that is located at the pose pose. More... | |
| bool | containsPoint (double x, double y, double z, bool verbose=false) const |
| Check if a point is inside the body. More... | |
| double | getPadding () const |
| Retrieve the current padding. More... | |
| const Eigen::Isometry3d & | getPose () const |
| Retrieve the pose of the body. More... | |
| double | getScale () const |
| Retrieve the current scale. More... | |
| shapes::ShapeType | getType () const |
| Get the type of shape this body represents. More... | |
| void | setDimensions (const shapes::Shape *shape) |
| Set the dimensions of the body (from corresponding shape) More... | |
| void | setDimensionsDirty (const shapes::Shape *shape) |
| Set the dimensions of the body (from corresponding shape). More... | |
| void | setPadding (double padd) |
| If constant padding should be added to the body, this method sets the padding. Default is 0.0. More... | |
| void | setPaddingDirty (double padd) |
| If the dimension of the body should be padded, this method sets the pading. More... | |
| void | setPose (const Eigen::Isometry3d &pose) |
| Set the pose of the body. Default is identity. More... | |
| void | setPoseDirty (const Eigen::Isometry3d &pose) |
| Set the pose of the body. More... | |
| void | setScale (double scale) |
| If the dimension of the body should be scaled, this method sets the scale. Default is 1.0. More... | |
| void | setScaleDirty (double scale) |
| If the dimension of the body should be scaled, this method sets the scale. More... | |
| virtual | ~Body ()=default |
Protected Member Functions | |
| void | useDimensions (const shapes::Shape *shape) override |
| Depending on the shape, this function copies the relevant data to the body. More... | |
Protected Attributes | |
| Eigen::Vector3d | center_ |
| double | radius2_ |
| double | radius_ |
| double | radiusU_ |
Protected Attributes inherited from bodies::Body | |
| double | padding_ |
| The scale that was set for this body. More... | |
| Eigen::Isometry3d | pose_ |
| The location of the body (position and orientation) More... | |
| double | scale_ |
| The scale that was set for this body. More... | |
| shapes::ShapeType | type_ |
| The type of shape this body was constructed from. More... | |
|
inline |
|
explicit |
Definition at line 308 of file bodies.cpp.
|
overridedefault |
|
overridevirtual |
Get a clone of this body, but one that is located at the pose pose and has possibly different passing and scaling: padding and scaling. This function is useful to implement thread safety, when bodies need to be moved around.
Implements bodies::Body.
Definition at line 175 of file bodies.cpp.
|
overridevirtual |
Compute the axis-aligned bounding box for the body, in its current pose. Scaling and padding are accounted for.
Implements bodies::Body.
Definition at line 204 of file bodies.cpp.
|
overridevirtual |
Compute the oriented bounding box for the body, in its current pose. Scaling and padding are accounted for.
Implements bodies::Body.
Definition at line 215 of file bodies.cpp.
|
overridevirtual |
Compute the bounding cylinder for the body, in its current pose. Scaling and padding are accounted for.
Implements bodies::Body.
Definition at line 197 of file bodies.cpp.
|
overridevirtual |
Compute the bounding radius for the body, in its current pose. Scaling and padding are accounted for.
Implements bodies::Body.
Definition at line 191 of file bodies.cpp.
|
overridevirtual |
Compute the volume of the body. This method includes changes induced by scaling and padding.
Implements bodies::Body.
Definition at line 186 of file bodies.cpp.
|
overridevirtual |
Check if a point is inside the body. Surface points are included.
Implements bodies::Body.
Definition at line 145 of file bodies.cpp.
|
overridevirtual |
|
overridevirtual |
Get the dimensions associated to this body (scaled and padded)
Implements bodies::Body.
Definition at line 160 of file bodies.cpp.
|
overridevirtual |
Check if a ray intersects the body, and find the set of intersections, in order, along the ray. A maximum number of intersections can be specified as well. If that number is 0, all intersections are returned. Passing dir as a unit vector will result in faster computation.
Implements bodies::Body.
Definition at line 247 of file bodies.cpp.
|
overridevirtual |
Sample a point that is included in the body using a given random number generator.
Sometimes multiple attempts need to be generated. The function terminates with failure (returns false) after max_attempts attempts. If the call is successful (returns true) the point is written to result
Reimplemented from bodies::Body.
Definition at line 224 of file bodies.cpp.
|
overridevirtual |
This function is called every time a change to the body is made, so that intermediate values stored for efficiency reasons are kept up to date.
Implements bodies::Body.
Definition at line 165 of file bodies.cpp.
|
overrideprotectedvirtual |
Depending on the shape, this function copies the relevant data to the body.
Implements bodies::Body.
Definition at line 150 of file bodies.cpp.
|
protected |