SurgSim::Devices::ForceScale Class Reference

An output device filter that scales forces and/or torques. More...

`#include <SurgSim/Devices/DeviceFilters/ForceScale.h>`

Inheritance diagram for SurgSim::Devices::ForceScale:

## Public Member Functions

| ForceScale (const std::string &name)
| Constructor. More...
| SURGSIM_CLASSNAME (SurgSim::Devices::ForceScale)
void | setForceScale (double forceScale)
| Set the force scale factor so that each direction has the same scale. More...
void | setTorqueScale (double torqueScale)
| Set the torque scale factor so that each direction has the same scale. More...
Public Member Functions inherited from SurgSim::Devices::DeviceFilter
| DeviceFilter (const std::string &name)
| Constructor. More...
| SURGSIM_CLASSNAME (SurgSim::Devices::DeviceFilter)
bool | initialize () override
| Fully initialize the device. More...
bool | isInitialized () const override
void | initializeInput (const std::string &device, const DataStructures::DataGroup &inputData) override
| Set the initial input data group. More...
void | handleInput (const std::string &device, const DataStructures::DataGroup &inputData) override
| Notifies the consumer that the application input coming from the device has been updated. More...
bool | requestOutput (const std::string &device, DataStructures::DataGroup *outputData) override
| Asks the producer to provide output state to the device. More...
Public Member Functions inherited from SurgSim::Input::CommonDevice
| CommonDevice (const std::string &name)
| Constructor. More...
| CommonDevice (const std::string &name, const DataStructures::DataGroup &inputData)
| Constructor. More...
| CommonDevice (const std::string &name, DataStructures::DataGroup &&inputData)
| Constructor. More...
virtual | ~CommonDevice ()
| Destructor. More...
std::string | getName () const override
| Return a (hopefully unique) device name. More...
std::string | getClassName () const override
| The class name for this class. More...
void | setNameForCallback (const std::string &name)
| Set the name used for calling the input consumers and output producer. More...
std::string | getNameForCallback () const
| Get the name used for calling the input consumers and output producer. More...
bool | addInputConsumer (std::shared_ptr< InputConsumerInterface > inputConsumer) override
| Adds an input consumer that will be notified when the application input state is updated. More...
bool | removeInputConsumer (std::shared_ptr< InputConsumerInterface > inputConsumer) override
| Removes an input consumer previously added via addInputConsumer. More...
void | clearInputConsumers () override
| Removes all InputConsumers. More...
bool | setOutputProducer (std::shared_ptr< OutputProducerInterface > outputProducer) override
| Sets an output producer that will be asked for application output state when the device needs it. More...
bool | removeOutputProducer (std::shared_ptr< OutputProducerInterface > outputProducer) override
| Removes an output producer previously added via setOutputProducer. More...
bool | hasOutputProducer () override
| Query if this object has output producer. More...
void | clearOutputProducer () override
| Removes any OutputProducer. More...
Public Member Functions inherited from SurgSim::Input::DeviceInterface
virtual | ~DeviceInterface ()
| Virtual destructor (empty). More...
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
Public Member Functions inherited from SurgSim::Input::InputConsumerInterface
virtual | ~InputConsumerInterface ()
| Virtual destructor (empty). More...
Public Member Functions inherited from SurgSim::Input::OutputProducerInterface
virtual | ~OutputProducerInterface ()
| Virtual destructor (empty). More...

## Private Member Functions

void | filterOutput (const std::string &device, const DataStructures::DataGroup &dataToFilter, DataStructures::DataGroup *result) override
| Filter the output data. More...

## Private Attributes

boost::mutex | m_mutex
| The mutex that protects the scaling factors. More...
double | m_forceScale
| The scaling factor applied to each direction of the force. More...
double | m_torqueScale
| The scaling factor applied to each direction of the torque. 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< DeviceInterface, std::string >
typedef ObjectFactory1< DeviceInterface, std::string > | FactoryType
Static Public Member Functions inherited from SurgSim::Framework::FactoryBase1< DeviceInterface, std::string >
static FactoryType & | getFactory ()
Protected Member Functions inherited from SurgSim::Devices::DeviceFilter
virtual void | filterInput (const std::string &device, const DataStructures::DataGroup &dataToFilter, DataStructures::DataGroup *result)
| Filter the input data. More...
bool | finalize () override
| Finalize (de-initialize) the device. More...
Protected Member Functions inherited from SurgSim::Input::CommonDevice
virtual void | pushInput ()
| Push application input to consumers. More...
virtual bool | pullOutput ()
| Pull application output from a producer. More...
DataStructures::DataGroup & | getInputData ()
| Getter for the input data DataGroup. More...
const DataStructures::DataGroup & | getOutputData () const
| Getter for the output data DataGroup. More...
Protected Attributes inherited from SurgSim::Devices::DeviceFilter
bool | m_initialized
| true if initialized and not finalized. More...

## Detailed Description

An output device filter that scales forces and/or torques.

Any other entries in the DataGroup are passed through. For convenience, it is also an InputConsumerInterface that does no filtering of the input data. Thus it can be added as an input consumer to the raw device, and set as the output producer for the raw device, after which other device filters, input components, and output components only need access to the ForceScale instance, not the raw device.

## Constructor & Destructor Documentation

## ForceScale()

SurgSim::Devices::ForceScale::ForceScale | ( | const std::string & | name | ) |

explicit

Constructor.

Parameters

  name | Name of this device filter.

## Member Function Documentation

## filterOutput()

void SurgSim::Devices::ForceScale::filterOutput | ( | const std::string & | device,
|  | const DataStructures::DataGroup & | dataToFilter,
|  | DataStructures::DataGroup * | result
| ) |  |

override private virtual

Filter the output data.

Parameters

  | device | The name of the device pulling the output data.
  | dataToFilter | The data that will be filtered.
  [in,out] | result | A pointer to a DataGroup object that must be assignable to by the dataToFilter object. Will contain the filtered data.

Reimplemented from SurgSim::Devices::DeviceFilter.

## setForceScale()

void SurgSim::Devices::ForceScale::setForceScale | ( | double | forceScale | ) |

Set the force scale factor so that each direction has the same scale.

Parameters

  forceScale | The scalar scaling factor.

## setTorqueScale()

void SurgSim::Devices::ForceScale::setTorqueScale | ( | double | torqueScale | ) |

Set the torque scale factor so that each direction has the same scale.

Parameters

  torqueScale | The scalar scaling factor.

## SURGSIM_CLASSNAME()

SurgSim::Devices::ForceScale::SURGSIM_CLASSNAME | ( | SurgSim::Devices::ForceScale |  | ) |

## Member Data Documentation

## m_forceScale

double SurgSim::Devices::ForceScale::m_forceScale

private

The scaling factor applied to each direction of the force.

## m_mutex

boost::mutex SurgSim::Devices::ForceScale::m_mutex

private

The mutex that protects the scaling factors.

## m_torqueScale

double SurgSim::Devices::ForceScale::m_torqueScale

private

The scaling factor applied to each direction of the torque.

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

- SurgSim/Devices/DeviceFilters/ForceScale.h
- SurgSim/Devices/DeviceFilters/ForceScale.cpp