SurgSim::Math::Shape Class Referenceabstract

Generic rigid shape class defining a shape. More...

`#include <SurgSim/Math/Shape.h>`

Inheritance diagram for SurgSim::Math::Shape:

## Public Types

typedef ::SurgSim::Math::Vector3d | Vector3d
typedef ::SurgSim::Math::Matrix33d | Matrix33d
Public Types inherited from SurgSim::Framework::Accessible
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
Public Types inherited from SurgSim::Framework::FactoryBase< Shape >
typedef ObjectFactory< Shape > | FactoryType

## Public Member Functions

| Shape ()
| Constructor. More...
virtual | ~Shape ()
| Destructor. More...
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 std::string | getClassName () const
| Get class name. More...
virtual bool | isValid () const =0
| Check if the shape is valid. More...
virtual const Math::Aabbd & | getBoundingBox () const
Public Member Functions inherited from SurgSim::Framework::Accessible
| Accessible ()
| Default Constructor. More...
| ~Accessible ()
| Destructor. More...
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...
template<>
boost::any | getValue (const std::string &name) const

## Protected Attributes

Math::Aabbd | m_aabb

## Additional Inherited Members

Static Public Member Functions inherited from SurgSim::Framework::FactoryBase< Shape >
static FactoryType & | getFactory ()

## Detailed Description

Generic rigid shape class defining a shape.

Note
  This class gives the ability to analyze the shape and compute
  physical information (volume, mass, mass center, inertia)

## Member Typedef Documentation

## Matrix33d

typedef ::SurgSim::Math::Matrix33d SurgSim::Math::Shape::Matrix33d

## Vector3d

typedef ::SurgSim::Math::Vector3d SurgSim::Math::Shape::Vector3d

## Constructor & Destructor Documentation

## Shape()

SurgSim::Math::Shape::Shape | ( |  | ) |

Constructor.

## ~Shape()

SurgSim::Math::Shape::~Shape | ( |  | ) |

virtual

Destructor.

## Member Function Documentation

## getBoundingBox()

const Math::Aabbd & SurgSim::Math::Shape::getBoundingBox | ( |  | ) | const

virtual

Returns
  the bounding box for the shape

Reimplemented in SurgSim::Math::CompoundShape, SurgSim::Math::ParticlesShape, and SurgSim::Math::OctreeShape.

## getCenter()

virtual Vector3d SurgSim::Math::Shape::getCenter | ( |  | ) | const

pure virtual

Get the volumetric center of the shape.

Returns
  The center of the shape

Implemented in SurgSim::Math::CompoundShape, SurgSim::Math::MeshShape, SurgSim::Math::ParticlesShape, SurgSim::Math::BoxShape, SurgSim::Math::OctreeShape, SurgSim::Math::CapsuleShape, SurgSim::Math::CylinderShape, SurgSim::Math::SegmentMeshShape, SurgSim::Math::PlaneShape, SurgSim::Math::SphereShape, and SurgSim::Math::DoubleSidedPlaneShape.

## getClassName()

std::string SurgSim::Math::Shape::getClassName | ( |  | ) | const

virtual

Get class name.

## getSecondMomentOfVolume()

virtual Matrix33d SurgSim::Math::Shape::getSecondMomentOfVolume | ( |  | ) | const

pure virtual

Get the second central moment of the volume, commonly used to calculate the moment of inertia matrix.

Returns
  The 3x3 symmetric second moment 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::PlaneShape, SurgSim::Math::SegmentMeshShape, SurgSim::Math::SphereShape, and SurgSim::Math::DoubleSidedPlaneShape.

## getTransformed()

std::shared_ptr< Shape > SurgSim::Math::Shape::getTransformed | ( | const RigidTransform3d & | pose | ) | const

virtual

Get a copy of this shape with an applied rigid transform.

Parameters

  pose | The pose to transform the shape by

Returns
  the posed shape

Reimplemented in SurgSim::Math::CompoundShape, SurgSim::Math::MeshShape, SurgSim::Math::ParticlesShape, and SurgSim::Math::SegmentMeshShape.

## getType()

virtual int SurgSim::Math::Shape::getType | ( |  | ) | const

pure virtual

Returns
  the type of shape

Implemented in SurgSim::Math::CompoundShape, SurgSim::Math::ParticlesShape, SurgSim::Math::MeshShape, SurgSim::Math::SurfaceMeshShape, SurgSim::Math::OctreeShape, SurgSim::Math::SegmentMeshShape, SurgSim::Math::PlaneShape, SurgSim::Math::BoxShape, SurgSim::Math::CapsuleShape, SurgSim::Math::CylinderShape, SurgSim::Math::DoubleSidedPlaneShape, and SurgSim::Math::SphereShape.

## getVolume()

virtual double SurgSim::Math::Shape::getVolume | ( |  | ) | const

pure virtual

Get the volume of the shape.

Returns
  The volume of the shape (in m-3)

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.

## isTransformable()

bool SurgSim::Math::Shape::isTransformable | ( |  | ) | const

virtual

Returns
  true if the the shape can be transformed

Reimplemented in SurgSim::Math::CompoundShape, SurgSim::Math::MeshShape, SurgSim::Math::ParticlesShape, and SurgSim::Math::SegmentMeshShape.

## isValid()

virtual bool SurgSim::Math::Shape::isValid | ( |  | ) | const

pure virtual

Check if the shape is valid.

Returns
  True if shape is valid; Otherwise, false.

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.

## Member Data Documentation

## m_aabb

Math::Aabbd SurgSim::Math::Shape::m_aabb

protected

The documentation for this class was generated from the following files:

- SurgSim/Math/Shape.h
- SurgSim/Math/Shape.cpp