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

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

#include <SurgSim/Math/OctreeShape.h>

Inheritance diagram for SurgSim::Math::OctreeShape:
SurgSim::Math::Shape SurgSim::Framework::Asset SurgSim::Framework::Accessible

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
 
typedef SurgSim::Framework::ObjectFactory< SurgSim::Math::ShapeFactoryType
 
- 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 Member Functions

 OctreeShape ()
 Constructor. More...
 
 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. More...
 
virtual int getType () override
 
virtual double getVolume () const override
 Get the volume of the shape. More...
 
virtual Vector3d getCenter () const override
 Get the volumetric center of the shape. More...
 
virtual 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< NodeTypegetRootNode ()
 Get the root node. More...
 
const std::shared_ptr< const NodeTypegetRootNode () const
 const version to get the root node More...
 
void setRootNode (std::shared_ptr< NodeType > node)
 Set the root node. More...
 
virtual bool isValid () const override
 
virtual bool doLoad (const std::string &filePath) override
 Derived classes will overwrite this method to do actual loading. More...
 
- Public Member Functions inherited from SurgSim::Math::Shape
virtual ~Shape ()
 
virtual std::string getClassName () const
 Get class name. More...
 
- Public Member Functions inherited from SurgSim::Framework::Accessible
 Accessible ()
 Default Constructor. More...
 
 ~Accessible ()
 Destructor. More...
 
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...
 
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
 
- Public Member Functions inherited from SurgSim::Framework::Asset
 Asset ()
 Constructor. More...
 
virtual ~Asset ()
 Destructor. More...
 
void load (const std::string &fileName, const SurgSim::Framework::ApplicationData &data)
 Load a file with given name using 'data' as look up path(s). More...
 
void load (const std::string &fileName)
 Overloaded function using SurgSim::Framework::Runtime::getApplicationData() as look up path(s). More...
 
std::string getFileName () const
 Return the name of file loaded by this class. More...
 

Private Attributes

std::shared_ptr< NodeTypem_rootNode
 Root node of the octree datastructure. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from SurgSim::Math::Shape
static FactoryTypegetFactory ()
 
- Protected Member Functions inherited from SurgSim::Framework::Asset
void serializeFileName (SurgSim::Framework::Accessible *accessible)
 Derived classes (which also inherit from SurgSim::Framework::Accessible) should call this function with 'this' pointer as the parameter in their constructors to register file name property for serialization. More...
 

Detailed Description

Octree Shape A defined by an octree data structure.

Member Typedef Documentation

Constructor & Destructor Documentation

SurgSim::Math::OctreeShape::OctreeShape ( )

Constructor.

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
SurgSim::Math::OctreeShape::~OctreeShape ( )
virtual

Destructor.

Member Function Documentation

bool SurgSim::Math::OctreeShape::doLoad ( const std::string filePath)
overridevirtual

Derived classes will overwrite this method to do actual loading.

Note
This method is not required to do any check on the validity or the existence of the file.
Parameters
filePathAbsolute path to the file.
Returns
True if loading is successful; Otherwise, false.

Implements SurgSim::Framework::Asset.

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

Get the volumetric center of the shape.

Returns
The center of the shape

Implements SurgSim::Math::Shape.

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

Get the root node.

Returns
the octree root node of this shape
const std::shared_ptr< const OctreeShape::NodeType > SurgSim::Math::OctreeShape::getRootNode ( ) const

const version to get the root node

Returns
A const reference of the shared pointer, which points to the octree root node of this shape.
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.

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

Implements SurgSim::Math::Shape.

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.

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.

void SurgSim::Math::OctreeShape::setRootNode ( std::shared_ptr< NodeType node)

Set the root node.

Parameters
nodethe octree root node of this shape
SurgSim::Math::OctreeShape::SURGSIM_CLASSNAME ( SurgSim::Math::OctreeShape  )

Member Data Documentation

std::shared_ptr<NodeType> SurgSim::Math::OctreeShape::m_rootNode
private

Root node of the octree datastructure.


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