opensurgsim
Public Member Functions | Protected Member Functions | 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 <BoxShape.h>

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

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.
 
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.
 
virtual const Math::Aabbd & getBoundingBox () const
 
- 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
 

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

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 FactoryTypegetFactory ()
 
- 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,sizeZthe box sizes in all 3 directions (in m)

Member Function Documentation

§ getCenter()

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.

§ getSecondMomentOfVolume()

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.

§ 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
overridevirtual
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
iThe 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
overridevirtual

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
overridevirtual
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
sizeXthe size in the X direction (in m)

§ setSizeY()

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

Set size in Y direction.

Parameters
sizeYthe size in the Y direction (in m)

§ setSizeZ()

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

Set size in Z direction.

Parameters
sizeZthe size in the Z direction (in m)

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