opensurgsim
|
Generic rigid shape class defining a shape. More...
#include <Shape.h>
Public Types | |
typedef ::SurgSim::Math::Vector3d | Vector3d |
typedef ::SurgSim::Math::Matrix33d | Matrix33d |
![]() | |
typedef std::function< boost::any(void)> | GetterType |
typedef std::function< void(boost::any)> | SetterType |
typedef std::function< YAML::Node(void)> | EncoderType |
typedef std::function< void(const YAML::Node *)> | DecoderType |
![]() | |
typedef ObjectFactory< Shape > | FactoryType |
Public Member Functions | |
Shape () | |
Constructor. | |
virtual | ~Shape () |
Destructor. | |
virtual int | getType () const =0 |
virtual double | getVolume () const =0 |
Get the volume of the shape. More... | |
virtual Vector3d | getCenter () const =0 |
Get the volumetric center of the shape. More... | |
virtual Matrix33d | getSecondMomentOfVolume () const =0 |
Get the second central moment of the volume, commonly used to calculate the moment of inertia matrix. More... | |
virtual bool | isTransformable () const |
virtual std::shared_ptr< Shape > | getTransformed (const RigidTransform3d &pose) const |
Get a copy of this shape with an applied rigid transform. More... | |
virtual void | setPose (const RigidTransform3d &pose) |
Set the pose on a transformable shape. More... | |
virtual void | updateShape () |
Update the internals of a transformable shape. | |
virtual void | updateShapePartial () |
Update some of the internals of a transformable shape. More... | |
virtual std::string | getClassName () const |
Get class name. | |
virtual bool | isValid () const =0 |
Check if the shape is valid. More... | |
virtual const Math::Aabbd & | getBoundingBox () const |
![]() | |
Accessible () | |
Default Constructor. | |
~Accessible () | |
Destructor. | |
template<class T > | |
T | getValue (const std::string &name) const |
Retrieves the value with the name by executing the getter if it is found and tries to convert it to the given type. More... | |
boost::any | getValue (const std::string &name) const |
Retrieves the value with the name by executing the getter if it is found. More... | |
template<class T > | |
bool | getValue (const std::string &name, T *value) const |
Retrieves the value with the name by executing the getter if it is found, and converts it to the type of the output parameter. More... | |
void | setValue (const std::string &name, const boost::any &value) |
Sets a value of a property that has setter. More... | |
bool | isReadable (const std::string &name) const |
Check whether a property is readable. More... | |
bool | isWriteable (const std::string &name) const |
Check whether a property is writable. More... | |
void | setGetter (const std::string &name, GetterType func) |
Sets a getter for a given property. More... | |
void | setSetter (const std::string &name, SetterType func) |
Sets a setter for a given property. More... | |
void | setAccessors (const std::string &name, GetterType getter, SetterType setter) |
Sets the accessors getter and setter in one function. More... | |
void | removeAccessors (const std::string &name) |
Removes all the accessors (getter and setter) for a given property. More... | |
void | forwardProperty (const std::string &name, const Accessible &target, const std::string &targetProperty) |
Adds a property with the given name that uses the targets accessors, in effect forwarding the value to the target. More... | |
void | setSerializable (const std::string &name, EncoderType encoder, DecoderType decoder) |
Sets the functions used to convert data from and to a YAML::Node. More... | |
void | setDecoder (const std::string &name, DecoderType decoder) |
Sets the functions used to convert data from a YAML::Node. More... | |
YAML::Node | encode () const |
Encode this Accessible to a YAML::Node. More... | |
void | decode (const YAML::Node &node, const std::vector< std::string > &ignoredProperties=std::vector< std::string >()) |
Decode this Accessible from a YAML::Node, will throw an exception if the data type cannot be converted. More... | |
std::vector< std::string > | getProperties () |
template<> | |
boost::any | getValue (const std::string &name) const |
Protected Attributes | |
Math::Aabbd | m_aabb |
Additional Inherited Members | |
![]() | |
static FactoryType & | getFactory () |
Generic rigid shape class defining a shape.
|
virtual |
Reimplemented in SurgSim::Math::CompoundShape, SurgSim::Math::ParticlesShape, and SurgSim::Math::OctreeShape.
|
pure virtual |
Get the volumetric center of the shape.
Implemented in SurgSim::Math::CompoundShape, SurgSim::Math::MeshShape, SurgSim::Math::ParticlesShape, SurgSim::Math::BoxShape, SurgSim::Math::OctreeShape, SurgSim::Math::SegmentMeshShape, SurgSim::Math::CapsuleShape, SurgSim::Math::CylinderShape, SurgSim::Math::PlaneShape, SurgSim::Math::SphereShape, and SurgSim::Math::DoubleSidedPlaneShape.
|
pure virtual |
Get the second central moment of the volume, commonly used to calculate the moment of inertia matrix.
Implemented in SurgSim::Math::CompoundShape, SurgSim::Math::MeshShape, SurgSim::Math::ParticlesShape, SurgSim::Math::BoxShape, SurgSim::Math::CapsuleShape, SurgSim::Math::OctreeShape, SurgSim::Math::CylinderShape, SurgSim::Math::SegmentMeshShape, SurgSim::Math::PlaneShape, SurgSim::Math::SphereShape, and SurgSim::Math::DoubleSidedPlaneShape.
|
virtual |
Get a copy of this shape with an applied rigid transform.
pose | The pose to transform the shape by |
Reimplemented in SurgSim::Math::CompoundShape, SurgSim::Math::MeshShape, SurgSim::Math::ParticlesShape, and SurgSim::Math::SegmentMeshShape.
|
pure virtual |
Implemented in SurgSim::Math::CompoundShape, SurgSim::Math::ParticlesShape, SurgSim::Math::MeshShape, SurgSim::Math::SurfaceMeshShape, SurgSim::Math::SegmentMeshShape, SurgSim::Math::OctreeShape, SurgSim::Math::PlaneShape, SurgSim::Math::BoxShape, SurgSim::Math::CapsuleShape, SurgSim::Math::CylinderShape, SurgSim::Math::DoubleSidedPlaneShape, and SurgSim::Math::SphereShape.
|
pure virtual |
Get the volume of the shape.
Implemented in SurgSim::Math::CompoundShape, SurgSim::Math::MeshShape, SurgSim::Math::ParticlesShape, SurgSim::Math::BoxShape, SurgSim::Math::OctreeShape, SurgSim::Math::SegmentMeshShape, SurgSim::Math::CapsuleShape, SurgSim::Math::CylinderShape, SurgSim::Math::PlaneShape, SurgSim::Math::SphereShape, and SurgSim::Math::DoubleSidedPlaneShape.
|
virtual |
Reimplemented in SurgSim::Math::CompoundShape, and SurgSim::Math::VerticesShape.
|
pure virtual |
Check if the shape is valid.
Implemented in SurgSim::Math::CompoundShape, SurgSim::Math::MeshShape, SurgSim::Math::ParticlesShape, SurgSim::Math::BoxShape, SurgSim::Math::OctreeShape, SurgSim::Math::SurfaceMeshShape, SurgSim::Math::CapsuleShape, SurgSim::Math::PlaneShape, SurgSim::Math::CylinderShape, SurgSim::Math::DoubleSidedPlaneShape, SurgSim::Math::SegmentMeshShape, and SurgSim::Math::SphereShape.
|
virtual |
Set the pose on a transformable shape.
pose | The pose to transform the shape by. |
Reimplemented in SurgSim::Math::CompoundShape, SurgSim::Math::MeshShape, SurgSim::Math::ParticlesShape, and SurgSim::Math::SegmentMeshShape.
|
virtual |
Update some of the internals of a transformable shape.
Only called if the AABB has not changed much.
Reimplemented in SurgSim::Math::CompoundShape, SurgSim::Math::MeshShape, SurgSim::Math::ParticlesShape, and SurgSim::Math::SegmentMeshShape.