|
The Representation class defines the base class for all physics objects. More...
#include <SurgSim/Physics/Representation.h>
Public Member Functions | |
| Representation (const std::string &name) | |
| Constructor. More... | |
| virtual | ~Representation () |
| Destructor. More... | |
| virtual void | resetState () |
| Reset the representation to its initial/default state. 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 | beforeUpdate (double dt) |
| Preprocessing done before the update call This needs to be called from the outside usually from a Computation. More... | |
| virtual void | update (double dt) |
| Update the representation state to the current time step. More... | |
| virtual void | afterUpdate (double dt) |
| Postprocessing done after the update call This needs to be called from the outside usually from a Computation. More... | |
| virtual std::shared_ptr< Localization > | createLocalization (const SurgSim::DataStructures::Location &location) |
| Computes a localized coordinate w.r.t this representation, given a Location object. 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 |
| virtual void | setCollisionRepresentation (std::shared_ptr< SurgSim::Collision::Representation > representation) |
| 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... | |
| 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 | |
| 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 | |
| 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 | |
| Representation (const Representation &) | |
| NO copy constructor. More... | |
| Representation & | operator= (const Representation &) |
| NO assignment operator. More... | |
Private Attributes | |
| const SurgSim::Math::Vector3d | m_gravity |
| Gravity vector. More... | |
| size_t | m_numDof |
| Number of degrees of freedom for this representation. More... | |
| bool | m_isGravityEnabled |
| Gravity enabled flag. More... | |
| bool | m_isDrivingSceneElementPose |
| Is this representation driving the sceneElement pose. More... | |
| std::shared_ptr< SurgSim::Framework::Logger > | m_logger |
| Logger for this class. More... | |
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 () |
The Representation class defines the base class for all physics objects.
|
explicit |
Constructor.
| name | The representation's name |
|
virtual |
Destructor.
Reimplemented from SurgSim::Framework::Representation.
|
private |
NO copy constructor.
|
virtual |
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 in SurgSim::Physics::DeformableRepresentation, SurgSim::Physics::RigidRepresentationBase, and SurgSim::Physics::RigidRepresentation.
|
virtual |
Update the Representation's current position and velocity using a time interval, dt, and change in velocity, deltaVelocity.
This function typically is called in the physics pipeline (PhysicsManager::doUpdate) after solving the equations that enforce constraints when collisions occur. Specifically it is called in the PushResults::doUpdate step.
| dt | The time step |
| deltaVelocity | The block of a vector containing the correction to be applied to the velocity |
Reimplemented in SurgSim::Physics::DeformableRepresentation, and SurgSim::Physics::RigidRepresentation.
|
virtual |
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 in SurgSim::Physics::RigidRepresentationBase, SurgSim::Physics::FemRepresentation, SurgSim::Physics::MassSpringRepresentation, and SurgSim::Physics::RigidRepresentation.
|
virtual |
Computes a localized coordinate w.r.t this representation, given a Location object.
| location | A location in 3d space. |
Reimplemented in SurgSim::Physics::MassSpringRepresentation, SurgSim::Physics::Fem1DRepresentation, SurgSim::Physics::Fem3DRepresentation, SurgSim::Physics::Fem2DRepresentation, and SurgSim::Physics::RigidRepresentationBase.
|
protected |
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.
| pose | New pose for the SceneElement |
| std::shared_ptr< SurgSim::Collision::Representation > SurgSim::Physics::Representation::getCollisionRepresentation | ( | ) | const |
| std::shared_ptr< ConstraintImplementation > SurgSim::Physics::Representation::getConstraintImplementation | ( | SurgSim::Physics::ConstraintType | type | ) |
Get a constraint implementation of the given type for this representation.
| type | The type of constraint. |
|
protected |
Get the gravity used by this Representation.
| size_t SurgSim::Physics::Representation::getNumDof | ( | ) | const |
Query the object number of degrees of freedom.
| bool SurgSim::Physics::Representation::isDrivingSceneElementPose | ( | ) |
Query if this Representation is controlling the pose of the SceneElement that it is part of.
| bool SurgSim::Physics::Representation::isGravityEnabled | ( | ) | const |
Get the gravity enable flag.
|
private |
NO assignment operator.
|
virtual |
Reset the representation to its initial/default state.
Reimplemented in SurgSim::Physics::DeformableRepresentation, and SurgSim::Physics::RigidRepresentationBase.
|
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.
| representation | The appropriate collision representation for this object. |
Reimplemented in SurgSim::Physics::DeformableRepresentation, and SurgSim::Physics::RigidRepresentationBase.
| void SurgSim::Physics::Representation::setIsDrivingSceneElementPose | ( | bool | isDrivingSceneElementPose | ) |
Set whether this Representation is controlling the pose of the SceneElement that it is part of.
| isDrivingSceneElementPose | true if this Representation is driving the pose of the SceneElement |
| void SurgSim::Physics::Representation::setIsGravityEnabled | ( | bool | isGravityEnabled | ) |
Set the gravity enable flag.
| isGravityEnabled | True if gravity enabled, false if not. |
|
protected |
Set the number of degrees of freedom.
| numDof | The number of degrees of freedom |
|
virtual |
Update the representation state to the current time step.
| dt | The time step (in seconds) |
Reimplemented in SurgSim::Physics::DeformableRepresentation, SurgSim::Physics::FemRepresentation, SurgSim::Physics::RigidRepresentation, and SurgSim::Physics::FixedRepresentation.
|
protected |
This entity's collision representation, these are usually very specific to the physics representation.
|
private |
Gravity vector.
|
private |
Is this representation driving the sceneElement pose.
|
private |
Gravity enabled flag.
|
private |
Logger for this class.
|
private |
Number of degrees of freedom for this representation.
1.8.13