SurgSim::Devices::BoolToScalar Class Reference

Maps the on and off state of two boolean values to the increase and decrease of a scalar field, this for example enables the driving on a scalar value through two buttons on a device, no change occurs when both booleans are true at the same time. More...

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

Inheritance diagram for SurgSim::Devices::BoolToScalar:

## Public Member Functions

| BoolToScalar (const std::string &name)
| Constructor. More...
| ~BoolToScalar ()
| Destructor. More...
| SURGSIM_CLASSNAME (SurgSim::Devices::BoolToScalar)
void | initializeInput (const std::string &device, const DataStructures::DataGroup &inputData) override
| Set the initial input data group. More...
void | filterInput (const std::string &device, const DataStructures::DataGroup &dataToFilter, DataStructures::DataGroup *result) override
| Filter the input data. More...
void | setScale (double val)
| Sets the value that gets used, the actual value to be added is scale * dt per call to filterInput. More...
double | getScale () const
void | setRange (const std::pair< double, double > &val)
| Set the range of values that should be produced by this. More...
std::pair< double, double > | getRange () const
void | setClamping (bool val)
| Enables or disables clamping on the output value (default true) More...
bool | isClamping ()
void | setIncreaseField (const std::string &val)
| Set the field that is read to increase the scalar value, needs to be a bool. More...
std::string | getIncreaseField () const
void | setDecreaseField (const std::string &val)
| Set the field this is read to decrease the scalar value, needs to be a bool. More...
std::string | getDecreaseField () const
void | setScalar (double val)
| Set the value of the mapped field, can also be used to set a starting value for the field. More...
double | getScalar () const
void | setTargetField (const std::string &val)
| Set the name of the target field that carries the scalar value, will be created in the datagroup if it doesn't exist. More...
std::string | getTargetField () const
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 Attributes

bool | m_isClamping
double | m_value
double | m_scale
std::pair< double, double > | m_range
std::string | m_increaseField
std::string | m_decreaseField
std::string | m_targetField
Framework::Timer | m_timer
std::shared_ptr< DataStructures::DataGroupCopier > | m_copier

## 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 | filterOutput (const std::string &device, const DataStructures::DataGroup &dataToFilter, DataStructures::DataGroup *result)
| Filter the output 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

Maps the on and off state of two boolean values to the increase and decrease of a scalar field, this for example enables the driving on a scalar value through two buttons on a device, no change occurs when both booleans are true at the same time.

## Constructor & Destructor Documentation

## BoolToScalar()

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

explicit

Constructor.

## ~BoolToScalar()

SurgSim::Devices::BoolToScalar::~BoolToScalar | ( |  | ) |

Destructor.

## Member Function Documentation

## filterInput()

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

override virtual

Filter the input data.

Parameters

  | device | The name of the device pushing the input 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.

## getDecreaseField()

std::string SurgSim::Devices::BoolToScalar::getDecreaseField | ( |  | ) | const

Returns
  the name of the field used for decreasing the value

## getIncreaseField()

std::string SurgSim::Devices::BoolToScalar::getIncreaseField | ( |  | ) | const

Returns
  the name of the field used for increasing the value

## getRange()

std::pair< double, double > SurgSim::Devices::BoolToScalar::getRange | ( |  | ) | const

Returns
  the range of values used

## getScalar()

double SurgSim::Devices::BoolToScalar::getScalar | ( |  | ) | const

Returns
  the actual value of the mapped field

## getScale()

double SurgSim::Devices::BoolToScalar::getScale | ( |  | ) | const

Returns
  the scale for addition

## getTargetField()

std::string SurgSim::Devices::BoolToScalar::getTargetField | ( |  | ) | const

Returns
  the name of the target field for the scalar information

## initializeInput()

void SurgSim::Devices::BoolToScalar::initializeInput | ( | const std::string & | device,
|  | const DataStructures::DataGroup & | inputData
| ) |  |

override virtual

Set the initial input data group.

Parameters

  device | The name of the device that is producing the input. This should only be used to identify the device (e.g. if the consumer is listening to several devices at once).
  inputData | The application input state coming from the device.

Implements SurgSim::Input::InputConsumerInterface.

## isClamping()

bool SurgSim::Devices::BoolToScalar::isClamping | ( |  | ) |

Returns
  whether the output value is being clamped

## setClamping()

void SurgSim::Devices::BoolToScalar::setClamping | ( | bool | val | ) |

Enables or disables clamping on the output value (default true)

Parameters

  val | whether to enable or disable clamping

## setDecreaseField()

void SurgSim::Devices::BoolToScalar::setDecreaseField | ( | const std::string & | val | ) |

Set the field this is read to decrease the scalar value, needs to be a bool.

Parameters

  val | name of the field to be read for decrease

## setIncreaseField()

void SurgSim::Devices::BoolToScalar::setIncreaseField | ( | const std::string & | val | ) |

Set the field that is read to increase the scalar value, needs to be a bool.

Parameters

  val | name of the field to read for an increase

## setRange()

void SurgSim::Devices::BoolToScalar::setRange | ( | const std::pair< double, double > & | val | ) |

Set the range of values that should be produced by this.

Parameters

  val | (min and max for the range)

## setScalar()

void SurgSim::Devices::BoolToScalar::setScalar | ( | double | val | ) |

Set the value of the mapped field, can also be used to set a starting value for the field.

Parameters

  val | new Value to be used for the scalar field

## setScale()

void SurgSim::Devices::BoolToScalar::setScale | ( | double | val | ) |

Sets the value that gets used, the actual value to be added is scale * dt per call to filterInput.

Parameters

  val | scale to be used

## setTargetField()

void SurgSim::Devices::BoolToScalar::setTargetField | ( | const std::string & | val | ) |

Set the name of the target field that carries the scalar value, will be created in the datagroup if it doesn't exist.

Parameters

  val | name of the target field

## SURGSIM_CLASSNAME()

SurgSim::Devices::BoolToScalar::SURGSIM_CLASSNAME | ( | SurgSim::Devices::BoolToScalar |  | ) |

## Member Data Documentation

## m_copier

std::shared_ptr<DataStructures::DataGroupCopier> SurgSim::Devices::BoolToScalar::m_copier

private

## m_decreaseField

std::string SurgSim::Devices::BoolToScalar::m_decreaseField

private

## m_increaseField

std::string SurgSim::Devices::BoolToScalar::m_increaseField

private

## m_isClamping

bool SurgSim::Devices::BoolToScalar::m_isClamping

private

## m_range

std::pair<double, double> SurgSim::Devices::BoolToScalar::m_range

private

## m_scale

double SurgSim::Devices::BoolToScalar::m_scale

private

## m_targetField

std::string SurgSim::Devices::BoolToScalar::m_targetField

private

## m_timer

Framework::Timer SurgSim::Devices::BoolToScalar::m_timer

private

## m_value

double SurgSim::Devices::BoolToScalar::m_value

private

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

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