dart
|
CapsuleShape represents a three-dimensional geometric shape consisting of a cylinder with hemispherical ends. More...
#include <CapsuleShape.hpp>
Public Member Functions | |
CapsuleShape (double radius, double height) | |
Constructor. More... | |
const std::string & | getType () const override |
Returns a string representing the shape type. More... | |
double | getRadius () const |
Get the radius of the capsule. | |
void | setRadius (double radius) |
Set the radius of the capsule. | |
double | getHeight () const |
Get the height of the cylindrical part. | |
void | setHeight (double height) |
Set the height of the cylindrical part. | |
Eigen::Matrix3d | computeInertia (double mass) const override |
Computes the inertia. | |
![]() | |
Shape (ShapeType _type) | |
Constructor. More... | |
Shape () | |
Constructor. | |
virtual | ~Shape () |
Destructor. | |
template<typename ShapeT > | |
bool | is () const |
Get true if the types of this Shape and the template parameter (a shape class) are identical. More... | |
const math::BoundingBox & | getBoundingBox () const |
Get the bounding box of the shape in its local coordinate frame. More... | |
Eigen::Matrix3d | computeInertiaFromDensity (double density) const |
Eigen::Matrix3d | computeInertiaFromMass (double mass) const |
double | getVolume () const |
Returns volume of this shape. More... | |
std::size_t | getID () const |
ShapeType | getShapeType () const |
void | setDataVariance (unsigned int _variance) |
Set the data variance of this shape. More... | |
void | addDataVariance (unsigned int _variance) |
Add a type of variance to this shape. More... | |
void | removeDataVariance (unsigned int _variance) |
Remove a type of variance from this shape. More... | |
unsigned int | getDataVariance () const |
Get the data variance of this shape. | |
bool | checkDataVariance (DataVariance type) const |
True iff this Shape has the specified type of DataVariance. | |
virtual void | refreshData () |
Instruct this shape to update its data. | |
virtual void | notifyAlphaUpdate (double alpha) |
Notify that the alpha of this shape has updated. | |
virtual void | notifyAlphaUpdated (double alpha) |
Notify that the alpha of this shape has updated. | |
virtual void | notifyColorUpdate (const Eigen::Vector4d &color) |
Notify that the color (rgba) of this shape has updated. | |
virtual void | notifyColorUpdated (const Eigen::Vector4d &color) |
Notify that the color (rgba) of this shape has updated. | |
std::size_t | incrementVersion () override final |
Increment the version of this Shape and notify its subscribers. | |
![]() | |
virtual | ~Subject () |
Destructor will notify all Observers that it is destructing. | |
![]() | |
VersionCounter () | |
Default constructor. | |
virtual std::size_t | getVersion () const |
Get the version number of this object. | |
Static Public Member Functions | |
static const std::string & | getStaticType () |
Get shape type string for this shape. | |
static double | computeVolume (double radius, double height) |
Compute volume from given properties. More... | |
static Eigen::Matrix3d | computeInertia (double radius, double height, double mass) |
Compute moments of inertia of a capsule. More... | |
Protected Member Functions | |
void | updateBoundingBox () const override |
Updates bounding box. | |
void | updateVolume () const override |
Updates volume. | |
![]() | |
void | sendDestructionNotification () const |
Send a destruction notification to all Observers. More... | |
void | addObserver (Observer *_observer) const |
Add an Observer to the list of Observers. | |
void | removeObserver (Observer *_observer) const |
Remove an Observer from the list of Observers. | |
![]() | |
void | setVersionDependentObject (VersionCounter *dependent) |
Additional Inherited Members | |
![]() | |
enum | ShapeType { SPHERE, BOX, ELLIPSOID, CYLINDER, CAPSULE, CONE, PYRAMID, RECTANGULAR_PYRAMID, PLANE, MULTISPHERE, MESH, SOFT_MESH, LINE_SEGMENT, HEIGHTMAP, UNSUPPORTED } |
enum | DataVariance { STATIC = 0, DYNAMIC_TRANSFORM = 1 << 1, DYNAMIC_PRIMITIVE = 1 << 2, DYNAMIC_COLOR = 1 << 3, DYNAMIC_VERTICES = 1 << 4, DYNAMIC_ELEMENTS = 1 << 5, DYNAMIC = 0xFF } |
DataVariance can be used by renderers to determine whether it should expect data for this shape to change during each update. More... | |
using | VersionChangedSignal = common::Signal< void(Shape *shape, std::size_t version)> |
![]() | |
common::SlotRegister< VersionChangedSignal > | onVersionChanged |
Use this to subscribe to version change signals. | |
![]() | |
math::BoundingBox | mBoundingBox |
The bounding box (in the local coordinate frame) of the shape. | |
bool | mIsBoundingBoxDirty |
Whether bounding box needs update. | |
double | mVolume |
Volume enclosed by the geometry. | |
bool | mIsVolumeDirty |
Whether volume needs update. | |
const std::size_t | mID |
Unique id. | |
unsigned int | mVariance |
The DataVariance of this Shape. | |
ShapeType | mType |
![]() | |
std::set< Observer * > | mObservers |
List of current Observers. | |
![]() | |
std::size_t | mVersion |
![]() | |
static std::atomic_int | mCounter {PRIMITIVE_MAGIC_NUMBER} |
CapsuleShape represents a three-dimensional geometric shape consisting of a cylinder with hemispherical ends.
dart::dynamics::CapsuleShape::CapsuleShape | ( | double | radius, |
double | height | ||
) |
Constructor.
[in] | radius | Radius of the capsule. |
[in] | height | Height of the cylindrical part. |
|
static |
Compute moments of inertia of a capsule.
[in] | radius | Radius of the capsule. |
[in] | height | Height of the cylindrical part. |
[in] | mass | Mass of the capsule. |
|
static |
Compute volume from given properties.
[in] | radius | Radius of the capsule. |
[in] | height | Height of the cylindrical part. |
|
overridevirtual |