SurgSim::Math::BoxShape Class Reference

Box shape: box centered on (0 0 0), aligned with the axis with different sizes along X, Y and Z. More...

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

Inheritance diagram for SurgSim::Math::BoxShape:

## Public Member Functions

| BoxShape (double sizeX=0.0, double sizeY=0.0, double sizeZ=0.0)
| Constructor. More...
| SURGSIM_CLASSNAME (SurgSim::Math::BoxShape)
int | getType () const override
Vector3d | getSize () const
| Get size of the box. More...
double | getSizeX () const
| Get size in X direction. More...
double | getSizeY () const
| Get size in Y direction. More...
double | getSizeZ () const
| Get size in Z direction. More...
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...
Vector3d | getVertex (const int i) const
| Function that returns the local vertex location, given an index. More...
const std::array< Vector3d, 8 > & | getVertices () const
| Function that returns the local vertices' location. More...
bool | isValid () 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...
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 Member Functions

void | setSizeX (double sizeX)
| Set size in X direction. More...
void | setSizeY (double sizeY)
| Set size in Y direction. More...
void | setSizeZ (double sizeZ)
| Set size in Z direction. More...

## Private Member Functions

void | calculateVertices ()
| Function that calculates the box vertices. More...
void | updateAabb ()
| Update the local aabb for this box. More...

## Private Attributes

Vector3d | m_size
| The box sizes along the 3 axis respectively {X,Y,Z}. More...
std::array< Vector3d, 8 > | m_vertices
| The box vertices. More...

## Additional Inherited Members

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

Box shape: box centered on (0 0 0), aligned with the axis with different sizes along X, Y and Z.

## Constructor & Destructor Documentation

## BoxShape()

SurgSim::Math::BoxShape::BoxShape | ( | double | sizeX = `0.0`,
|  | double | sizeY = `0.0`,
|  | double | sizeZ = `0.0`
| ) |  |

explicit

Constructor.

Parameters

  sizeX,sizeY,sizeZ | the box sizes in all 3 directions (in m)

## Member Function Documentation

## calculateVertices()

void SurgSim::Math::BoxShape::calculateVertices | ( |  | ) |

private

Function that calculates the box vertices.

## getCenter()

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

override virtual

Get the volumetric center of the shape.

Returns
  The center of the shape

Implements SurgSim::Math::Shape.

## getSecondMomentOfVolume()

SurgSim::Math::Matrix33d SurgSim::Math::BoxShape::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.

## getSize()

Vector3d SurgSim::Math::BoxShape::getSize | ( |  | ) | const

Get size of the box.

Returns
  the size of the box (in m)

## getSizeX()

double SurgSim::Math::BoxShape::getSizeX | ( |  | ) | const

Get size in X direction.

Returns
  the size in the X direction (in m)

## getSizeY()

double SurgSim::Math::BoxShape::getSizeY | ( |  | ) | const

Get size in Y direction.

Returns
  the size in the Y direction (in m)

## getSizeZ()

double SurgSim::Math::BoxShape::getSizeZ | ( |  | ) | const

Get size in Z direction.

Returns
  the size in the Z direction (in m)

## getType()

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

override virtual

Returns
  the type of the shape

Implements SurgSim::Math::Shape.

## getVertex()

SurgSim::Math::Vector3d SurgSim::Math::BoxShape::getVertex | ( | const int | i | ) | const

Function that returns the local vertex location, given an index.

Parameters

  i | The vertex index.

Returns
  The local vertex position.

## getVertices()

const std::array< Vector3d, 8 > & SurgSim::Math::BoxShape::getVertices | ( |  | ) | const

Function that returns the local vertices' location.

Returns
  All eight vertices of the box

## getVolume()

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

override virtual

Get the volume of the shape.

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

Implements SurgSim::Math::Shape.

## isValid()

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

override virtual

Returns
  True if size along X, Y, Z are bigger than or equal to 0; Otherwise, false.

Implements SurgSim::Math::Shape.

## setSizeX()

void SurgSim::Math::BoxShape::setSizeX | ( | double | sizeX | ) |

protected

Set size in X direction.

Parameters

  sizeX | the size in the X direction (in m)

## setSizeY()

void SurgSim::Math::BoxShape::setSizeY | ( | double | sizeY | ) |

protected

Set size in Y direction.

Parameters

  sizeY | the size in the Y direction (in m)

## setSizeZ()

void SurgSim::Math::BoxShape::setSizeZ | ( | double | sizeZ | ) |

protected

Set size in Z direction.

Parameters

  sizeZ | the size in the Z direction (in m)

## SURGSIM_CLASSNAME()

SurgSim::Math::BoxShape::SURGSIM_CLASSNAME | ( | SurgSim::Math::BoxShape |  | ) |

## updateAabb()

void SurgSim::Math::BoxShape::updateAabb | ( |  | ) |

private

Update the local aabb for this box.

## Member Data Documentation

## m_size

Vector3d SurgSim::Math::BoxShape::m_size

private

The box sizes along the 3 axis respectively {X,Y,Z}.

## m_vertices

std::array<Vector3d, 8> SurgSim::Math::BoxShape::m_vertices

private

The box vertices.

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

- SurgSim/Math/BoxShape.h
- SurgSim/Math/BoxShape.cpp