All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Member Functions | Private Attributes | List of all members
SurgSim::Blocks::PoseInterpolator Class Reference

Perform linear interpolation on two poses. More...

#include <SurgSim/Blocks/PoseInterpolator.h>

Inheritance diagram for SurgSim::Blocks::PoseInterpolator:
Inheritance graph
[legend]
Collaboration diagram for SurgSim::Blocks::PoseInterpolator:
Collaboration graph
[legend]

Public Member Functions

 PoseInterpolator (const std::string &name)
 Constructor. More...
 
void setStartingPose (const SurgSim::Math::RigidTransform3d &transform)
 Set the starting pose. More...
 
void setEndingPose (const SurgSim::Math::RigidTransform3d &transform)
 Set the end pose. More...
 
void setTarget (std::shared_ptr< SurgSim::Framework::SceneElement > target)
 Set the target of the interpolation, this is where the interpolated transform will be applied to. More...
 
void setDuration (double t)
 Set the duration of the interpolation. More...
 
double getDuration () const
 Get the duration. More...
 
void setLoop (bool val)
 Sets the interpolation to looping, pingpong and loop cannot be used together. More...
 
bool isLoop () const
 
void setPingPong (bool val)
 Sets the interpolation to ping pong back and forth between the starting and ending poses. More...
 
bool isPingPong () const
 
virtual void update (double dt) override
 Overridden from Behavior. More...
 
- Public Member Functions inherited from SurgSim::Framework::Behavior
 Behavior (const std::string &name)
 
virtual ~Behavior ()
 
virtual int getTargetManagerType () const
 Specifies which manger will handle this behavior. 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...
 
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< ScenegetScene ()
 Gets the scene. More...
 
void setSceneElement (std::weak_ptr< SceneElement > sceneElement)
 Sets the scene element. More...
 
std::shared_ptr< SceneElementgetSceneElement ()
 Gets the scene element. More...
 
std::shared_ptr< const
SceneElement
getSceneElement () const
 Gets the scene element, constant version. More...
 
std::shared_ptr< RuntimegetRuntime () 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< ComponentgetSharedPtr ()
 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
 
- 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
 

Private Member Functions

virtual bool doWakeUp () override
 Overridden from Component. More...
 
virtual bool doInitialize () override
 Overridden from Component. More...
 

Private Attributes

SurgSim::DataStructures::OptionalValue
< SurgSim::Math::RigidTransform3d
m_optionalStartPose
 Optional value to take the from rigid transform. More...
 
SurgSim::Math::RigidTransform3d m_startingPose
 Target of the interpolation. More...
 
SurgSim::Math::RigidTransform3d m_endingPose
 Start of the interpolation. More...
 
std::shared_ptr
< SurgSim::Framework::SceneElement
m_target
 Target for the interpolated RigidTransform. More...
 
double m_duration
 Duration of the interpolation. More...
 
double m_currentTime
 How far through the interpolation we are. More...
 
bool m_pingpong
 Whether to pingpong. More...
 
bool m_loop
 Whether to loop. More...
 

Additional Inherited Members

- Public Types inherited from SurgSim::Framework::Component
typedef
SurgSim::Framework::ObjectFactory1
< SurgSim::Framework::Component,
std::string > 
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::Framework::Component
static FactoryTypegetFactory ()
 
- 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...
 

Detailed Description

Perform linear interpolation on two poses.

Constructor & Destructor Documentation

SurgSim::Blocks::PoseInterpolator::PoseInterpolator ( const std::string &  name)
explicit

Constructor.

Member Function Documentation

bool SurgSim::Blocks::PoseInterpolator::doInitialize ( )
overrideprivatevirtual

Overridden from Component.

Implements SurgSim::Framework::Component.

bool SurgSim::Blocks::PoseInterpolator::doWakeUp ( )
overrideprivatevirtual

Overridden from Component.

Implements SurgSim::Framework::Component.

double SurgSim::Blocks::PoseInterpolator::getDuration ( ) const

Get the duration.

Returns
The duration in seconds.
bool SurgSim::Blocks::PoseInterpolator::isLoop ( ) const
Returns
true If the interpolation is looping.
bool SurgSim::Blocks::PoseInterpolator::isPingPong ( ) const
Returns
true If the interpolation is doing ping pong.
void SurgSim::Blocks::PoseInterpolator::setDuration ( double  t)

Set the duration of the interpolation.

Parameters
tThe duration in seconds.
void SurgSim::Blocks::PoseInterpolator::setEndingPose ( const SurgSim::Math::RigidTransform3d transform)

Set the end pose.

Parameters
transformThe end pose.
void SurgSim::Blocks::PoseInterpolator::setLoop ( bool  val)

Sets the interpolation to looping, pingpong and loop cannot be used together.

Parameters
valIf true the interpolation will loop.
void SurgSim::Blocks::PoseInterpolator::setPingPong ( bool  val)

Sets the interpolation to ping pong back and forth between the starting and ending poses.

pingpong and loop cannot be used together.

Parameters
valIf true the interpolation will ping pong.
void SurgSim::Blocks::PoseInterpolator::setStartingPose ( const SurgSim::Math::RigidTransform3d transform)

Set the starting pose.

This is optional, if not set the target's pose will be used as the starting pose.

Parameters
transformThe starting pose.
void SurgSim::Blocks::PoseInterpolator::setTarget ( std::shared_ptr< SurgSim::Framework::SceneElement target)

Set the target of the interpolation, this is where the interpolated transform will be applied to.

If this value is not set, the Scene Element that contains this PoseInterpolator will be used. If no starting pose is set, the pose of this scene element will be used as the starting pose

Parameters
targetThe target that will use the interpolated pose.
void SurgSim::Blocks::PoseInterpolator::update ( double  dt)
overridevirtual

Overridden from Behavior.

Implements SurgSim::Framework::Behavior.

Member Data Documentation

double SurgSim::Blocks::PoseInterpolator::m_currentTime
private

How far through the interpolation we are.

double SurgSim::Blocks::PoseInterpolator::m_duration
private

Duration of the interpolation.

SurgSim::Math::RigidTransform3d SurgSim::Blocks::PoseInterpolator::m_endingPose
private

Start of the interpolation.

bool SurgSim::Blocks::PoseInterpolator::m_loop
private

Whether to loop.

SurgSim::DataStructures::OptionalValue<SurgSim::Math::RigidTransform3d> SurgSim::Blocks::PoseInterpolator::m_optionalStartPose
private

Optional value to take the from rigid transform.

bool SurgSim::Blocks::PoseInterpolator::m_pingpong
private

Whether to pingpong.

SurgSim::Math::RigidTransform3d SurgSim::Blocks::PoseInterpolator::m_startingPose
private

Target of the interpolation.

std::shared_ptr<SurgSim::Framework::SceneElement> SurgSim::Blocks::PoseInterpolator::m_target
private

Target for the interpolated RigidTransform.


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