All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
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:
Inheritance graph
[legend]
Collaboration diagram for SurgSim::Math::BoxShape:
Collaboration graph
[legend]

Public Member Functions

 BoxShape (double sizeX=0.0, double sizeY=0.0, double sizeZ=0.0)
 Constructor. More...
 
 SURGSIM_CLASSNAME (SurgSim::Math::BoxShape)
 
virtual int getType () 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...
 
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...
 
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...
 
virtual bool isValid () const override
 
- 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)
 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...
 

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
 
typedef
SurgSim::Framework::ObjectFactory
< SurgSim::Math::Shape
FactoryType
 
- 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
 
- Static Public Member Functions inherited from SurgSim::Math::Shape
static FactoryTypegetFactory ()
 

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

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

Constructor.

Parameters
sizeX,sizeY,sizeZthe box sizes in all 3 directions (in m)

Member Function Documentation

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

Function that calculates the box vertices.

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

Get the volumetric center of the shape.

Returns
The center of the shape

Implements SurgSim::Math::Shape.

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

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

Get size of the box.

Returns
the size of the box (in m)
double SurgSim::Math::BoxShape::getSizeX ( ) const

Get size in X direction.

Returns
the size in the X direction (in m)
double SurgSim::Math::BoxShape::getSizeY ( ) const

Get size in Y direction.

Returns
the size in the Y direction (in m)
double SurgSim::Math::BoxShape::getSizeZ ( ) const

Get size in Z direction.

Returns
the size in the Z direction (in m)
int SurgSim::Math::BoxShape::getType ( )
overridevirtual
Returns
the type of the shape

Implements SurgSim::Math::Shape.

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

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

Parameters
iThe vertex index.
Returns
The local vertex position.
const std::array< Vector3d, 8 > & SurgSim::Math::BoxShape::getVertices ( ) const

Function that returns the local vertices' location.

Returns
All eight vertices of the box
double SurgSim::Math::BoxShape::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::BoxShape::isValid ( ) const
overridevirtual
Returns
True if size along X, Y, Z are bigger than or equal to 0; Otherwise, false.

Implements SurgSim::Math::Shape.

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

Set size in X direction.

Parameters
sizeXthe size in the X direction (in m)
void SurgSim::Math::BoxShape::setSizeY ( double  sizeY)
protected

Set size in Y direction.

Parameters
sizeYthe size in the Y direction (in m)
void SurgSim::Math::BoxShape::setSizeZ ( double  sizeZ)
protected

Set size in Z direction.

Parameters
sizeZthe size in the Z direction (in m)
SurgSim::Math::BoxShape::SURGSIM_CLASSNAME ( SurgSim::Math::BoxShape  )

Member Data Documentation

Vector3d SurgSim::Math::BoxShape::m_size
private

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

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

The box vertices.


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