33#ifndef DART_DYNAMICS_SHAPE_HPP_
34#define DART_DYNAMICS_SHAPE_HPP_
93 virtual const std::string&
getType()
const = 0;
107 template <
typename ShapeT>
207#include "dart/dynamics/detail/Shape.hpp"
#define DART_DEPRECATED(version)
Definition Deprecated.hpp:51
std::string type
Definition SdfParser.cpp:82
The Subject class is a base class for any object that wants to report when it gets destroyed.
Definition Subject.hpp:58
bool mIsBoundingBoxDirty
Whether bounding box needs update.
Definition Shape.hpp:182
ShapeType mType
Definition Shape.hpp:201
double mVolume
Volume enclosed by the geometry.
Definition Shape.hpp:185
virtual const std::string & getType() const =0
Returns a string representing the shape type.
ShapeType getShapeType() const
Definition Shape.cpp:109
math::BoundingBox mBoundingBox
The bounding box (in the local coordinate frame) of the shape.
Definition Shape.hpp:179
int getID() const
Definition Shape.cpp:103
virtual void notifyAlphaUpdated(double alpha)
Notify that the alpha of this shape has updated.
Definition Shape.cpp:160
bool mIsVolumeDirty
Whether volume needs update.
Definition Shape.hpp:188
bool checkDataVariance(DataVariance type) const
True iff this Shape has the specified type of DataVariance.
Definition Shape.cpp:139
ShapeType
Definition Shape.hpp:53
@ MESH
Definition Shape.hpp:62
@ LINE_SEGMENT
Definition Shape.hpp:64
@ CONE
Definition Shape.hpp:59
@ CYLINDER
Definition Shape.hpp:57
@ SPHERE
Definition Shape.hpp:54
@ MULTISPHERE
Definition Shape.hpp:61
@ ELLIPSOID
Definition Shape.hpp:56
@ HEIGHTMAP
Definition Shape.hpp:65
@ PLANE
Definition Shape.hpp:60
@ BOX
Definition Shape.hpp:55
@ SOFT_MESH
Definition Shape.hpp:63
@ CAPSULE
Definition Shape.hpp:58
@ UNSUPPORTED
Definition Shape.hpp:66
Shape()
Constructor.
Definition Shape.cpp:56
DataVariance
DataVariance can be used by renderers to determine whether it should expect data for this shape to ch...
Definition Shape.hpp:71
@ DYNAMIC_VERTICES
The coloring or textures of the shape might change.
Definition Shape.hpp:76
@ DYNAMIC_TRANSFORM
No data will ever change.
Definition Shape.hpp:73
@ STATIC
Definition Shape.hpp:72
@ DYNAMIC_PRIMITIVE
The relative transform of the Shape might change.
Definition Shape.hpp:74
@ DYNAMIC_ELEMENTS
Vertex positions of a mesh might change (this does not include adding or removing vertices) (this enu...
Definition Shape.hpp:77
@ DYNAMIC_COLOR
The primitive properties (such as x/y/z scaling) of the shape might change.
Definition Shape.hpp:75
@ DYNAMIC
The number of elements and/or arrangement of elements might change (this includes adding and removing...
Definition Shape.hpp:78
virtual void notifyAlphaUpdate(double alpha)
Notify that the alpha of this shape has updated.
Definition Shape.cpp:154
virtual void updateBoundingBox() const =0
Updates bounding box.
Eigen::Matrix3d computeInertiaFromDensity(double density) const
Definition Shape.cpp:82
Eigen::Matrix3d computeInertiaFromMass(double mass) const
Definition Shape.cpp:88
virtual void notifyColorUpdated(const Eigen::Vector4d &color)
Notify that the color (rgba) of this shape has updated.
Definition Shape.cpp:172
virtual void refreshData()
Instruct this shape to update its data.
Definition Shape.cpp:148
void removeDataVariance(unsigned int _variance)
Remove a type of variance from this shape.
Definition Shape.cpp:127
unsigned int mVariance
The DataVariance of this Shape.
Definition Shape.hpp:194
bool is() const
Get true if the types of this Shape and the template parameter (a shape class) are identical.
Definition Shape.hpp:42
const math::BoundingBox & getBoundingBox() const
Get the bounding box of the shape in its local coordinate frame.
Definition Shape.cpp:73
virtual void updateVolume() const =0
Updates volume.
void addDataVariance(unsigned int _variance)
Add a type of variance to this shape.
Definition Shape.cpp:121
virtual void notifyColorUpdate(const Eigen::Vector4d &color)
Notify that the color (rgba) of this shape has updated.
Definition Shape.cpp:166
double getVolume() const
Returns volume of this shape.
Definition Shape.cpp:94
void setDataVariance(unsigned int _variance)
Set the data variance of this shape.
Definition Shape.cpp:115
unsigned int getDataVariance() const
Get the data variance of this shape.
Definition Shape.cpp:133
int mID
Unique id.
Definition Shape.hpp:191
virtual ~Shape()
Destructor.
Definition Shape.cpp:67
virtual Eigen::Matrix3d computeInertia(double mass) const =0
Computes the inertia.
static int mCounter
Definition Shape.hpp:197
Definition Geometry.hpp:578
Definition MathTypes.hpp:47
Definition BulletCollisionDetector.cpp:63