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:

## Public Types

typedef SurgSim::DataStructures::OctreeNode< SurgSim::DataStructures::EmptyData > | NodeType
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. 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...
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< NodeType > | getOctree ()
| 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. More...
virtual | ~Shape ()
| Destructor. 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...
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

## Private Member Functions

bool | isValid (std::shared_ptr< NodeType > node) const

## Private Attributes

std::shared_ptr< NodeType > | m_rootNode
| Root node of the octree datastructure. More...

## Additional Inherited Members

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

## Detailed Description

Octree Shape A defined by an octree data structure.

## Member Typedef Documentation

## NodeType

typedef SurgSim::DataStructures::OctreeNode<SurgSim::DataStructures::EmptyData> SurgSim::Math::OctreeShape::NodeType

## Constructor & Destructor Documentation

## OctreeShape() [1/2]

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

Constructor.

## OctreeShape() [2/2]

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

  T | octree node data structure to build Octree Shape from

Parameters

  node | octree node data structure to build Octree Shape from

## ~OctreeShape()

SurgSim::Math::OctreeShape::~OctreeShape | ( |  | ) |

virtual

Destructor.

## Member Function Documentation

## getBoundingBox()

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

override virtual

Returns
  the bounding box for the shape

Reimplemented from SurgSim::Math::Shape.

## getCenter()

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

override virtual

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

override 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

Implements SurgSim::Math::Shape.

## getType()

int SurgSim::Math::OctreeShape::getType | ( |  | ) | const

override virtual

Returns
  the type of shape

Implements SurgSim::Math::Shape.

## getVolume()

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

override virtual

Get the volume of the shape.

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

Implements SurgSim::Math::Shape.

## isValid() [1/2]

bool SurgSim::Math::OctreeShape::isValid | ( |  | ) | const

override virtual

Returns
  True if the bounding box is bigger than or equal to 0; Otherwise, false.

Implements SurgSim::Math::Shape.

## isValid() [2/2]

bool SurgSim::Math::OctreeShape::isValid | ( | std::shared_ptr< NodeType > | node | ) | const

private

Parameters

  node | the OctreeNode to check

Returns
  True if the bounding box is bigger than or equal to 0; Otherwise, false.

## loadOctree()

void SurgSim::Math::OctreeShape::loadOctree | ( | const std::string & | filePath | ) |

## setOctree()

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

Set the root node.

Parameters

  node | the octree root node of this shape

## SURGSIM_CLASSNAME()

SurgSim::Math::OctreeShape::SURGSIM_CLASSNAME | ( | SurgSim::Math::OctreeShape |  | ) |

## Member Data Documentation

## m_rootNode

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:

- SurgSim/Math/OctreeShape.h
- SurgSim/Math/OctreeShape-inl.h
- SurgSim/Math/OctreeShape.cpp