SurgSim::Physics::RigidRepresentationBase Class Referenceabstract

The RigidRepresentationBase class defines the base class for all rigid motion based representations (fixed, rigid body, rigid body + vtc,...) More...

`#include <SurgSim/Physics/RigidRepresentationBase.h>`

Inheritance diagram for SurgSim::Physics::RigidRepresentationBase:

## Public Member Functions

| RigidRepresentationBase (const std::string &name)
| Constructor. More...
virtual | ~RigidRepresentationBase ()
| Destructor. More...
void | setInitialState (const RigidState &state)
| Set the initial state of the rigid representation. More...
void | resetState () override
| Reset the representation to its initial/default state. More...
const RigidState & | getInitialState () const
| Get the initial state of the rigid representation. More...
const RigidState & | getCurrentState () const
| Get the current state of the rigid representation. More...
const RigidState & | getPreviousState () const
| Get the previous state of the rigid representation. More...
std::shared_ptr< Localization > | createLocalization (const SurgSim::DataStructures::Location &location) override
| Computes a localized coordinate w.r.t this representation, given a Location object. More...
void | setDensity (double rho)
| Set the mass density of the rigid representation. More...
double | getDensity () const
| Get the mass density of the rigid representation. More...
double | getMass () const
| Get the mass of the rigid body. More...
const SurgSim::Math::Vector3d & | getMassCenter () const
| Get the mass center of the rigid body. More...
const SurgSim::Math::Matrix33d & | getLocalInertia () const
| Get the local inertia 3x3 matrix of the rigid body. More...
void | setLinearDamping (double linearDamping)
| Set the linear damping parameter. More...
double | getLinearDamping () const
| Get the linear damping parameter. More...
void | setAngularDamping (double angularDamping)
| Set the angular damping parameter. More...
double | getAngularDamping () const
| Get the angular damping parameter. More...
void | setShape (const std::shared_ptr< SurgSim::Math::Shape > shape)
| Set the shape to use internally for physical parameters computation. More...
const std::shared_ptr< SurgSim::Math::Shape > | getShape () const
| Get the shape used internally for physical parameters computation. More...
void | setCollisionRepresentation (std::shared_ptr< SurgSim::Collision::Representation > representation) override
| Set the collision representation for this physics representation, when the collision object is involved in a collision, the collision should be resolved inside the dynamics calculation. More...
void | beforeUpdate (double dt) override
| Preprocessing done before the update call This needs to be called from the outside usually from a Computation. More...
void | afterUpdate (double dt) override
| Postprocessing done after the update call This needs to be called from the outside usually from a Computation. More...
Public Member Functions inherited from SurgSim::Physics::Representation
| Representation (const std::string &name)
| Constructor. More...
virtual | ~Representation ()
| Destructor. More...
size_t | getNumDof () const
| Query the object number of degrees of freedom. More...
void | setIsGravityEnabled (bool isGravityEnabled)
| Set the gravity enable flag. More...
bool | isGravityEnabled () const
| Get the gravity enable flag. More...
void | setIsDrivingSceneElementPose (bool isDrivingSceneElementPose)
| Set whether this Representation is controlling the pose of the SceneElement that it is part of. More...
bool | isDrivingSceneElementPose ()
| Query if this Representation is controlling the pose of the SceneElement that it is part of. More...
virtual void | update (double dt)
| Update the representation state to the current time step. More...
virtual void | applyCorrection (double dt, const Eigen::VectorBlock< SurgSim::Math::Vector > &deltaVelocity)
| Update the Representation's current position and velocity using a time interval, dt, and change in velocity, deltaVelocity. More...
std::shared_ptr< SurgSim::Collision::Representation > | getCollisionRepresentation () const
std::shared_ptr< ConstraintImplementation > | getConstraintImplementation (SurgSim::Physics::ConstraintType type)
| Get a constraint implementation of the given type for this representation. More...
Public Member Functions inherited from SurgSim::Framework::Representation
| Representation (const std::string &name)
| Constructor. More...
virtual void | setLocalPose (const SurgSim::Math::RigidTransform3d &pose)
| Set the pose of the representation with respect to the Scene Element. More...
virtual SurgSim::Math::RigidTransform3d | getLocalPose () const
| Get the pose of the representation with respect to the Scene Element. More...
virtual SurgSim::Math::RigidTransform3d | getPose () const
| Get the pose of the representation in world coordinates. More...
Public Member Functions inherited from SurgSim::Framework::Component
| Component (const std::string &name)
| Constructor. More...
virtual | ~Component ()
| Destructor. More...
std::string | getName () const
| Gets component name. More...
std::string | getFullName () const
| Gets a string containing the name of the Component and (if it has one) its SceneElement. More...
void | setName (const std::string &name)
| Sets the name of component. More...
boost::uuids::uuid | getUuid () const
| Gets the id of the component. More...
bool | isInitialized () const
bool | initialize (const std::weak_ptr< Runtime > &runtime)
| Initialize this component, this needs to be called before wakeUp() can be called. More...
bool | isAwake () const
bool | wakeUp ()
| Wakeup this component, this will be called when the component is inserted into the ComponentManager that is responsible for handling this component. More...
void | retire ()
| Retire this component, this will be called when the component is removed from the ComponentManager that is responsible for handling this component. More...
void | setScene (std::weak_ptr< Scene > scene)
| Sets the scene. More...
std::shared_ptr< Scene > | getScene ()
| Gets the scene. More...
void | setSceneElement (std::weak_ptr< SceneElement > sceneElement)
| Sets the scene element. More...
std::shared_ptr< SceneElement > | getSceneElement ()
| Gets the scene element. More...
std::shared_ptr< const SceneElement > | getSceneElement () const
| Gets the scene element, constant version. More...
std::shared_ptr< Runtime > | getRuntime () const
| Get the runtime which contains this component. More...
virtual std::string | getClassName () const
| The class name for this class, this being the base class it should return SurgSim::Framework::Component but this would make missing implemenentations of this hard to catch, therefore this calls SURGSIM_FAILURE. More...
std::shared_ptr< Component > | getSharedPtr ()
| Gets a shared pointer to this component. More...
virtual void | doRetire ()
| Interface to be implemented by derived classes Has a default implementation, does nothing. More...
bool | isActive () const
virtual void | setLocalActive (bool val)
| Set the component's active state. More...
bool | isLocalActive () 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

bool | doInitialize () override
| Interface to be implemented by derived classes. More...
bool | doWakeUp () override
| Interface to be implemented by derived classes. More...
template<class T >
std::shared_ptr< T > | createTypedLocalization (const SurgSim::DataStructures::Location &location)
| Creates typed localization. More...
Protected Member Functions inherited from SurgSim::Physics::Representation
void | setNumDof (size_t numDof)
| Set the number of degrees of freedom. More...
const SurgSim::Math::Vector3d & | getGravity () const
| Get the gravity used by this Representation. More...
void | driveSceneElementPose (const SurgSim::Math::RigidTransform3d &pose)
| This conditionally updates that pose for the scenelement to the given pose The update gets exectuded if the representation actually has sceneelement and isDrivingScenElement() is true. More...
Protected Member Functions inherited from SurgSim::Framework::Component
virtual std::shared_ptr< PoseComponent > | getPoseComponent ()
| Get the PoseComponent for this component. More...
virtual std::shared_ptr< const PoseComponent > | getPoseComponent () const
| Get the PoseComponent for this component, constant access. More...

## Protected Attributes

RigidState | m_initialState
| Initial rigid representation state (useful for reset) More...
RigidState | m_previousState
| Previous rigid representation state. More...
RigidState | m_currentState
| Current rigid representation state. More...
RigidState | m_finalState
| Last valid/final rigid representation state. More...
bool | m_parametersValid
| Validity of the parameters. More...
double | m_rho
| Density of the object (in Kg.m-3) More...
double | m_mass
| Total mass of the object (in Kg) More...
double | m_linearDamping
| Linear damping parameter (in N.s.m-1 or Kg.s-1) More...
double | m_angularDamping
| Angular damping parameter (in N.m.s.rad-1) More...
SurgSim::Math::Vector3d | m_massCenter
| Mass-center of the object. More...
SurgSim::Math::Matrix33d | m_localInertia
| Inertia matrix in local coordinates. More...
std::shared_ptr< SurgSim::Math::Shape > | m_shape
| Shape to be used for the mass/inertia calculation. More...
Protected Attributes inherited from SurgSim::Physics::Representation
std::shared_ptr< SurgSim::Collision::Representation > | m_collisionRepresentation
| This entity's collision representation, these are usually very specific to the physics representation. More...

## Private Member Functions

void | updateProperties ()
| Updates mass, mass center and inertia when density and/or shape used for mass inertia is updated. More...
virtual void | updateGlobalInertiaMatrices (const RigidState &state)=0

## Additional Inherited Members

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::FactoryBase1< Component, std::string >
typedef ObjectFactory1< Component, std::string > | FactoryType
Static Public Member Functions inherited from SurgSim::Framework::FactoryBase1< Component, std::string >
static FactoryType & | getFactory ()

## Detailed Description

The RigidRepresentationBase class defines the base class for all rigid motion based representations (fixed, rigid body, rigid body + vtc,...)

## Constructor & Destructor Documentation

## RigidRepresentationBase()

SurgSim::Physics::RigidRepresentationBase::RigidRepresentationBase | ( | const std::string & | name | ) |

explicit

Constructor.

Parameters

  name | The rigid representation's name

## ~RigidRepresentationBase()

SurgSim::Physics::RigidRepresentationBase::~RigidRepresentationBase | ( |  | ) |

virtual

Destructor.

## Member Function Documentation

## afterUpdate()

void SurgSim::Physics::RigidRepresentationBase::afterUpdate | ( | double | dt | ) |

override virtual

Postprocessing done after the update call This needs to be called from the outside usually from a Computation.

Parameters

  dt | The time step (in seconds)

Reimplemented from SurgSim::Physics::Representation.

## beforeUpdate()

void SurgSim::Physics::RigidRepresentationBase::beforeUpdate | ( | double | dt | ) |

override virtual

Preprocessing done before the update call This needs to be called from the outside usually from a Computation.

Parameters

  dt | The time step (in seconds)

Reimplemented from SurgSim::Physics::Representation.

## createLocalization()

std::shared_ptr< Localization > SurgSim::Physics::RigidRepresentationBase::createLocalization | ( | const SurgSim::DataStructures::Location & | location | ) |

override virtual

Computes a localized coordinate w.r.t this representation, given a Location object.

Parameters

  location | A location in 3d space.

Returns
  A localization object for the given location.

Reimplemented from SurgSim::Physics::Representation.

## createTypedLocalization()

template<class T >

std::shared_ptr< T > SurgSim::Physics::RigidRepresentationBase::createTypedLocalization | ( | const SurgSim::DataStructures::Location & | location | ) |

protected

Creates typed localization.

Template Parameters

  T | Type of localization to create.

Parameters

  location | The location for the localization.

Returns
  The new Localization;

## doInitialize()

bool SurgSim::Physics::RigidRepresentationBase::doInitialize | ( |  | ) |

override protected virtual

Interface to be implemented by derived classes.

Returns
  True if component is initialized successfully; otherwise, false.

Reimplemented from SurgSim::Framework::Representation.

## doWakeUp()

bool SurgSim::Physics::RigidRepresentationBase::doWakeUp | ( |  | ) |

override protected virtual

Interface to be implemented by derived classes.

Returns
  True if component is woken up successfully; otherwise, false.

Reimplemented from SurgSim::Framework::Representation.

## getAngularDamping()

double SurgSim::Physics::RigidRepresentationBase::getAngularDamping | ( |  | ) | const

Get the angular damping parameter.

Returns
  The angular damping parameter (in N.m.s.rad-1)

## getCurrentState()

const RigidState & SurgSim::Physics::RigidRepresentationBase::getCurrentState | ( |  | ) | const

Get the current state of the rigid representation.

Returns
  The current state (pose + lin/ang velocities)

## getDensity()

double SurgSim::Physics::RigidRepresentationBase::getDensity | ( |  | ) | const

Get the mass density of the rigid representation.

Returns
  The density if it has been provided, 0 otherwise (in Kg.m-3)

## getInitialState()

const RigidState & SurgSim::Physics::RigidRepresentationBase::getInitialState | ( |  | ) | const

Get the initial state of the rigid representation.

Returns
  The initial state (pose + lin/ang velocities)

## getLinearDamping()

double SurgSim::Physics::RigidRepresentationBase::getLinearDamping | ( |  | ) | const

Get the linear damping parameter.

Returns
  The linear damping parameter (in N.s.m-1)

## getLocalInertia()

const SurgSim::Math::Matrix33d & SurgSim::Physics::RigidRepresentationBase::getLocalInertia | ( |  | ) | const

Get the local inertia 3x3 matrix of the rigid body.

Returns
  The inertia 3x3 matrix of the object

## getMass()

double SurgSim::Physics::RigidRepresentationBase::getMass | ( |  | ) | const

Get the mass of the rigid body.

Returns
  The mass (in Kg)

## getMassCenter()

const SurgSim::Math::Vector3d & SurgSim::Physics::RigidRepresentationBase::getMassCenter | ( |  | ) | const

Get the mass center of the rigid body.

Returns
  The mass center (in local coordinate)

## getPreviousState()

const RigidState & SurgSim::Physics::RigidRepresentationBase::getPreviousState | ( |  | ) | const

Get the previous state of the rigid representation.

Returns
  The previous state (pose + lin/ang velocities)

## getShape()

const std::shared_ptr< SurgSim::Math::Shape > SurgSim::Physics::RigidRepresentationBase::getShape | ( |  | ) | const

Get the shape used internally for physical parameters computation.

Returns
  The shape used for calculation, nullptr if none exist

## resetState()

void SurgSim::Physics::RigidRepresentationBase::resetState | ( |  | ) |

override virtual

Reset the representation to its initial/default state.

Reimplemented from SurgSim::Physics::Representation.

## setAngularDamping()

void SurgSim::Physics::RigidRepresentationBase::setAngularDamping | ( | double | angularDamping | ) |

Set the angular damping parameter.

Parameters

  angularDamping | The angular damping parameter (in N.m.s.rad-1)

## setCollisionRepresentation()

void SurgSim::Physics::RigidRepresentationBase::setCollisionRepresentation | ( | std::shared_ptr< SurgSim::Collision::Representation > | representation | ) |

override virtual

Set the collision representation for this physics representation, when the collision object is involved in a collision, the collision should be resolved inside the dynamics calculation.

Specializes to register this representation in the collision representation if the collision representation is a RigidCollisionRepresentation.

Parameters

  representation | The collision representation to be used.

Reimplemented from SurgSim::Physics::Representation.

## setDensity()

void SurgSim::Physics::RigidRepresentationBase::setDensity | ( | double | rho | ) |

Set the mass density of the rigid representation.

Parameters

  rho | The density (in Kg.m-3)

## setInitialState()

void SurgSim::Physics::RigidRepresentationBase::setInitialState | ( | const RigidState & | state | ) |

Set the initial state of the rigid representation.

Parameters

  state | The initial state (pose + lin/ang velocities) This will also set the current/previous states to the initial state

## setLinearDamping()

void SurgSim::Physics::RigidRepresentationBase::setLinearDamping | ( | double | linearDamping | ) |

Set the linear damping parameter.

Parameters

  linearDamping | The linear damping parameter (in N.s.m-1)

## setShape()

void SurgSim::Physics::RigidRepresentationBase::setShape | ( | const std::shared_ptr< SurgSim::Math::Shape > | shape | ) |

Set the shape to use internally for physical parameters computation.

Parameters

  shape | The shape to use for the mass/inertia calculation

Note
  Also add the shape to the shape list if it has not been added yet

## updateGlobalInertiaMatrices()

virtual void SurgSim::Physics::RigidRepresentationBase::updateGlobalInertiaMatrices | ( | const RigidState & | state | ) |

private pure virtual

Implemented in SurgSim::Physics::RigidRepresentation, and SurgSim::Physics::FixedRepresentation.

## updateProperties()

void SurgSim::Physics::RigidRepresentationBase::updateProperties | ( |  | ) |

private

Updates mass, mass center and inertia when density and/or shape used for mass inertia is updated.

## Member Data Documentation

## m_angularDamping

double SurgSim::Physics::RigidRepresentationBase::m_angularDamping

protected

Angular damping parameter (in N.m.s.rad-1)

## m_currentState

RigidState SurgSim::Physics::RigidRepresentationBase::m_currentState

protected

Current rigid representation state.

## m_finalState

RigidState SurgSim::Physics::RigidRepresentationBase::m_finalState

protected

Last valid/final rigid representation state.

## m_initialState

RigidState SurgSim::Physics::RigidRepresentationBase::m_initialState

protected

Initial rigid representation state (useful for reset)

## m_linearDamping

double SurgSim::Physics::RigidRepresentationBase::m_linearDamping

protected

Linear damping parameter (in N.s.m-1 or Kg.s-1)

## m_localInertia

SurgSim::Math::Matrix33d SurgSim::Physics::RigidRepresentationBase::m_localInertia

protected

Inertia matrix in local coordinates.

## m_mass

double SurgSim::Physics::RigidRepresentationBase::m_mass

protected

Total mass of the object (in Kg)

## m_massCenter

SurgSim::Math::Vector3d SurgSim::Physics::RigidRepresentationBase::m_massCenter

protected

Mass-center of the object.

## m_parametersValid

bool SurgSim::Physics::RigidRepresentationBase::m_parametersValid

protected

Validity of the parameters.

## m_previousState

RigidState SurgSim::Physics::RigidRepresentationBase::m_previousState

protected

Previous rigid representation state.

## m_rho

double SurgSim::Physics::RigidRepresentationBase::m_rho

protected

Density of the object (in Kg.m-3)

## m_shape

std::shared_ptr<SurgSim::Math::Shape> SurgSim::Physics::RigidRepresentationBase::m_shape

protected

Shape to be used for the mass/inertia calculation.

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

- SurgSim/Physics/RigidRepresentationBase.h
- SurgSim/Physics/RigidRepresentationBase-inl.h
- SurgSim/Physics/RigidRepresentationBase.cpp