opensurgsim
Public Types | Public Member Functions | List of all members
SurgSim::Math::OctreeShape Class Reference

Octree Shape A defined by an octree data structure. More...

#include <OctreeShape.h>

Inheritance diagram for SurgSim::Math::OctreeShape:
SurgSim::Math::Shape SurgSim::Framework::Accessible SurgSim::Framework::FactoryBase< Shape >

Public Types

typedef SurgSim::DataStructures::OctreeNode< SurgSim::DataStructures::EmptyDataNodeType
 
- Public Types inherited from SurgSim::Math::Shape
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

 OctreeShape ()
 Constructor.
 
 SURGSIM_CLASSNAME (SurgSim::Math::OctreeShape)
 
template<class T >
 OctreeShape (const SurgSim::DataStructures::OctreeNode< T > &node)
 Construct an OctreeShape by copying data from an OctreeNode NOTE: The Data stored in the octree node will not be copied into the OctreeShape. More...
 
virtual ~OctreeShape ()
 Destructor.
 
int getType () const override
 
double getVolume () const override
 Get the volume of the shape. More...
 
Vector3d getCenter () const override
 Get the volumetric center of the shape. More...
 
Matrix33d getSecondMomentOfVolume () const override
 Get the second central moment of the volume, commonly used to calculate the moment of inertia matrix. More...
 
std::shared_ptr< NodeTypegetOctree ()
 Get the root node. More...
 
void setOctree (std::shared_ptr< SurgSim::Framework::Asset > node)
 Set the root node. More...
 
bool isValid () const override
 
void loadOctree (const std::string &filePath)
 
const Math::Aabbd & getBoundingBox () const override
 
- Public Member Functions inherited from SurgSim::Math::Shape
 Shape ()
 Constructor.
 
virtual ~Shape ()
 Destructor.
 
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.
 
- 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
 

Additional Inherited Members

- Static Public Member Functions inherited from SurgSim::Framework::FactoryBase< Shape >
static FactoryTypegetFactory ()
 
- Protected Attributes inherited from SurgSim::Math::Shape
Math::Aabbd m_aabb
 

Detailed Description

Octree Shape A defined by an octree data structure.

Constructor & Destructor Documentation

§ OctreeShape()

template<class T >
SurgSim::Math::OctreeShape::OctreeShape ( const SurgSim::DataStructures::OctreeNode< T > &  node)
explicit

Construct an OctreeShape by copying data from an OctreeNode NOTE: The Data stored in the octree node will not be copied into the OctreeShape.

Template Parameters
Toctree node data structure to build Octree Shape from
Parameters
nodeoctree node data structure to build Octree Shape from

Member Function Documentation

§ getBoundingBox()

const Math::Aabbd & SurgSim::Math::OctreeShape::getBoundingBox ( ) const
overridevirtual
Returns
the bounding box for the shape

Reimplemented from SurgSim::Math::Shape.

§ getCenter()

Vector3d SurgSim::Math::OctreeShape::getCenter ( ) const
overridevirtual

Get the volumetric center of the shape.

Returns
The center of the shape

Implements SurgSim::Math::Shape.

§ getOctree()

std::shared_ptr< OctreeShape::NodeType > SurgSim::Math::OctreeShape::getOctree ( )

Get the root node.

Returns
the octree root node of this shape

§ getSecondMomentOfVolume()

Matrix33d SurgSim::Math::OctreeShape::getSecondMomentOfVolume ( ) const
overridevirtual

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

Returns
The 3x3 symmetric second moment matrix

Implements SurgSim::Math::Shape.

§ getType()

int SurgSim::Math::OctreeShape::getType ( ) const
overridevirtual
Returns
the type of shape

Implements SurgSim::Math::Shape.

§ getVolume()

double SurgSim::Math::OctreeShape::getVolume ( ) const
overridevirtual

Get the volume of the shape.

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

Implements SurgSim::Math::Shape.

§ isValid()

bool SurgSim::Math::OctreeShape::isValid ( ) const
overridevirtual
Returns
True if the bounding box is bigger than or equal to 0; Otherwise, false.

Implements SurgSim::Math::Shape.

§ setOctree()

void SurgSim::Math::OctreeShape::setOctree ( std::shared_ptr< SurgSim::Framework::Asset node)

Set the root node.

Parameters
nodethe octree root node of this shape

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