![]() |
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>
Public Member Functions | |
RigidRepresentationBase (const std::string &name) | |
Constructor. More... | |
virtual | ~RigidRepresentationBase () |
Destructor. More... | |
void | setInitialState (const RigidRepresentationState &state) |
Set the initial state of the rigid representation. More... | |
void | resetState () |
Reset the rigid representation state to its initial state. More... | |
const RigidRepresentationState & | getInitialState () const |
Get the initial state of the rigid representation. More... | |
const RigidRepresentationState & | getCurrentState () const |
Get the current state of the rigid representation. More... | |
const RigidRepresentationState & | getPreviousState () const |
Get the previous state of the rigid representation. More... | |
std::shared_ptr< Localization > | createLocalization (const SurgSim::DataStructures::Location &location) |
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... | |
virtual 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... | |
virtual void | beforeUpdate (double dt) override |
Preprocessing done before the update call This needs to be called from the outside usually from a Computation. More... | |
virtual void | afterUpdate (double dt) override |
Postprocessing done after the update call This needs to be called from the outside usually from a Computation. More... | |
![]() | |
Representation (const std::string &name) | |
Constructor. More... | |
virtual | ~Representation () |
Destructor. More... | |
virtual RepresentationType | getType () const =0 |
Query the representation type. More... | |
virtual void | resetParameters () |
Reset the representation parameters to their initial/default values. 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 |
![]() | |
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... | |
![]() | |
Component (const std::string &name) | |
Constructor. More... | |
virtual | ~Component () |
Destructor. More... | |
std::string | getName () const |
Gets component name. 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 | 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... | |
bool | isActive () const |
virtual void | setLocalActive (bool val) |
Set the component's active state. More... | |
bool | isLocalActive () const |
![]() | |
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... | |
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 | |
virtual bool | doInitialize () override |
Interface to be implemented by derived classes. More... | |
virtual 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... | |
![]() | |
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... | |
![]() | |
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 | |
RigidRepresentationState | m_initialState |
Initial rigid representation state (useful for reset) More... | |
RigidRepresentationState | m_previousState |
Previous rigid representation state. More... | |
RigidRepresentationState | m_currentState |
Current rigid representation state. More... | |
RigidRepresentationState | 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... | |
![]() | |
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 RigidRepresentationState &state)=0 |
Additional Inherited Members | |
![]() | |
typedef SurgSim::Framework::ObjectFactory1< SurgSim::Framework::Component, std::string > | FactoryType |
![]() | |
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 FactoryType & | getFactory () |
The RigidRepresentationBase class defines the base class for all rigid motion based representations (fixed, rigid body, rigid body + vtc,...)
|
explicit |
Constructor.
name | The rigid representation's name |
|
virtual |
Destructor.
|
overridevirtual |
Postprocessing done after the update call This needs to be called from the outside usually from a Computation.
dt | The time step (in seconds) |
Reimplemented from SurgSim::Physics::Representation.
Reimplemented in SurgSim::Physics::RigidRepresentation.
|
overridevirtual |
Preprocessing done before the update call This needs to be called from the outside usually from a Computation.
dt | The time step (in seconds) |
Reimplemented from SurgSim::Physics::Representation.
Reimplemented in SurgSim::Physics::RigidRepresentation.
|
virtual |
Computes a localized coordinate w.r.t this representation, given a Location object.
location | A location in 3d space. |
Reimplemented from SurgSim::Physics::Representation.
|
protected |
Creates typed localization.
T | Type of localization to create. |
location | The location for the localization. |
|
overrideprotectedvirtual |
Interface to be implemented by derived classes.
Reimplemented from SurgSim::Framework::Representation.
Reimplemented in SurgSim::Physics::RigidRepresentation.
|
overrideprotectedvirtual |
Interface to be implemented by derived classes.
Reimplemented from SurgSim::Framework::Representation.
double SurgSim::Physics::RigidRepresentationBase::getAngularDamping | ( | ) | const |
Get the angular damping parameter.
const RigidRepresentationState & SurgSim::Physics::RigidRepresentationBase::getCurrentState | ( | ) | const |
Get the current state of the rigid representation.
double SurgSim::Physics::RigidRepresentationBase::getDensity | ( | ) | const |
Get the mass density of the rigid representation.
const RigidRepresentationState & SurgSim::Physics::RigidRepresentationBase::getInitialState | ( | ) | const |
Get the initial state of the rigid representation.
double SurgSim::Physics::RigidRepresentationBase::getLinearDamping | ( | ) | const |
Get the linear damping parameter.
const SurgSim::Math::Matrix33d & SurgSim::Physics::RigidRepresentationBase::getLocalInertia | ( | ) | const |
Get the local inertia 3x3 matrix of the rigid body.
double SurgSim::Physics::RigidRepresentationBase::getMass | ( | ) | const |
Get the mass of the rigid body.
const SurgSim::Math::Vector3d & SurgSim::Physics::RigidRepresentationBase::getMassCenter | ( | ) | const |
Get the mass center of the rigid body.
const RigidRepresentationState & SurgSim::Physics::RigidRepresentationBase::getPreviousState | ( | ) | const |
Get the previous state of the rigid representation.
const std::shared_ptr< SurgSim::Math::Shape > SurgSim::Physics::RigidRepresentationBase::getShape | ( | ) | const |
Get the shape used internally for physical parameters computation.
|
virtual |
Reset the rigid representation state to its initial state.
Reimplemented from SurgSim::Physics::Representation.
void SurgSim::Physics::RigidRepresentationBase::setAngularDamping | ( | double | angularDamping | ) |
Set the angular damping parameter.
angularDamping | The angular damping parameter (in N.m.s.rad-1) |
|
overridevirtual |
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.
representation | The collision representation to be used. |
Reimplemented from SurgSim::Physics::Representation.
void SurgSim::Physics::RigidRepresentationBase::setDensity | ( | double | rho | ) |
Set the mass density of the rigid representation.
rho | The density (in Kg.m-3) |
void SurgSim::Physics::RigidRepresentationBase::setInitialState | ( | const RigidRepresentationState & | state | ) |
Set the initial state of the rigid representation.
state | The initial state (pose + lin/ang velocities) This will also set the current/previous states to the initial state |
void SurgSim::Physics::RigidRepresentationBase::setLinearDamping | ( | double | linearDamping | ) |
Set the linear damping parameter.
linearDamping | The linear damping parameter (in N.s.m-1) |
void SurgSim::Physics::RigidRepresentationBase::setShape | ( | const std::shared_ptr< SurgSim::Math::Shape > | shape | ) |
Set the shape to use internally for physical parameters computation.
shape | The shape to use for the mass/inertia calculation |
|
privatepure virtual |
Implemented in SurgSim::Physics::RigidRepresentation, and SurgSim::Physics::FixedRepresentation.
|
private |
Updates mass, mass center and inertia when density and/or shape used for mass inertia is updated.
|
protected |
Angular damping parameter (in N.m.s.rad-1)
|
protected |
Current rigid representation state.
|
protected |
Last valid/final rigid representation state.
|
protected |
Initial rigid representation state (useful for reset)
|
protected |
Linear damping parameter (in N.s.m-1 or Kg.s-1)
|
protected |
Inertia matrix in local coordinates.
|
protected |
Total mass of the object (in Kg)
|
protected |
Mass-center of the object.
|
protected |
Validity of the parameters.
|
protected |
Previous rigid representation state.
|
protected |
Density of the object (in Kg.m-3)
|
protected |
Shape to be used for the mass/inertia calculation.