opensurgsim
Public Types | Public Member Functions | Protected Attributes | List of all members
SurgSim::Math::Shape Class Referenceabstract

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

#include <Shape.h>

Inheritance diagram for SurgSim::Math::Shape:
SurgSim::Framework::Accessible SurgSim::Framework::FactoryBase< Shape > SurgSim::Math::BoxShape SurgSim::Math::CapsuleShape SurgSim::Math::CompoundShape SurgSim::Math::CylinderShape SurgSim::Math::DoubleSidedPlaneShape SurgSim::Math::OctreeShape SurgSim::Math::PlaneShape SurgSim::Math::SphereShape SurgSim::Math::VerticesShape

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.
 
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< ShapegetTransformed (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
 
- Public Member Functions inherited from SurgSim::Framework::Accessible
 Accessible ()
 Default Constructor.
 
 ~Accessible ()
 Destructor.
 
template<class 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 Public Member Functions inherited from SurgSim::Framework::FactoryBase< Shape >
static FactoryTypegetFactory ()
 

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 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

§ getSecondMomentOfVolume()

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

§ 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
poseThe 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

§ getVolume()

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

§ isTransformable()

bool SurgSim::Math::Shape::isTransformable ( ) const
virtual
Returns
true if the the shape can be transformed

Reimplemented in SurgSim::Math::CompoundShape, and SurgSim::Math::VerticesShape.

§ isValid()

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

§ setPose()

void SurgSim::Math::Shape::setPose ( const RigidTransform3d pose)
virtual

Set the pose on a transformable shape.

Parameters
poseThe pose to transform the shape by.

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

§ updateShapePartial()

void SurgSim::Math::Shape::updateShapePartial ( )
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.


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