dart
|
PyramidShape represents a polyhedron formed by connecting a rectangular base and a point (apex) where each base edge and apex form a triangle. More...
#include <PyramidShape.hpp>
Public Member Functions | |
PyramidShape (double baseWidth, double baseDepth, double height) | |
Constructor. More... | |
const std::string & | getType () const override |
Returns a string representing the shape type. More... | |
double | getBaseWidth () const |
Returns the lateral length (algon X-axis) of the base. | |
void | setBaseWidth (double width) |
Sets the lateral length (algon X-axis) of the base. | |
double | getBaseDepth () const |
Returns the longitudinal length (algon Y-axis) of the base. | |
void | setBaseDepth (double depth) |
Sets the longitudinal length (algon Y-axis) of the base. | |
double | getHeight () const |
Returns the perpendicular height from the base to the apex. | |
void | setHeight (double height) |
Returns the Perpendicular height from the base to the apex. | |
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 () |
Returns shape type string for this shape. | |
static double | computeVolume (double baseWidth, double baseDepth, double height) |
Computes the volume given properties. 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} |
PyramidShape represents a polyhedron formed by connecting a rectangular base and a point (apex) where each base edge and apex form a triangle.
The origin of the reference frame is at the center of a rectangular that intersect the pyramid and is parallel to the base. The line from the origin to the apex is aligned with the Z-axis while the lateral and the longitudinal lengths of the base are aligned with the X-axis and Y-axis, respectively.
dart::dynamics::PyramidShape::PyramidShape | ( | double | baseWidth, |
double | baseDepth, | ||
double | height | ||
) |
Constructor.
[in] | baseWidth | Lateral length (along X-axis) of the rectangular base. |
[in] | baseDepth | Longitudinal length (along Y-axis) of the rectangular base. |
[in] | height | Perpendicular height from the base to the apex. |
|
static |
Computes the volume given properties.
[in] | baseWidth | Lateral length (along X-axis) of the rectangular base. |
[in] | baseDepth | Longitudinal length (along Y-axis) of the rectangular base. |
[in] | height | Perpendicular height from the base to the apex. |
|
overridevirtual |