opensurgsim
Public Member Functions | List of all members
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 <BoolToScalar.h>

Inheritance diagram for SurgSim::Devices::BoolToScalar:
SurgSim::Devices::DeviceFilter SurgSim::Input::CommonDevice SurgSim::Input::InputConsumerInterface SurgSim::Input::OutputProducerInterface SurgSim::Input::DeviceInterface SurgSim::Framework::Accessible SurgSim::Framework::FactoryBase1< DeviceInterface, std::string >

Public Member Functions

 BoolToScalar (const std::string &name)
 Constructor.
 
 ~BoolToScalar ()
 Destructor.
 
 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.
 
std::string getName () const override
 Return a (hopefully unique) device name.
 
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.
 
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.
 
- Public Member Functions inherited from SurgSim::Input::DeviceInterface
virtual ~DeviceInterface ()
 Virtual destructor (empty).
 
- Public Member Functions inherited from SurgSim::Framework::Accessible
 Accessible ()
 Default Constructor.
 
 ~Accessible ()
 Destructor.
 
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...
 
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...
 
std::vector< std::string > getProperties ()
 
template<>
boost::any getValue (const std::string &name) const
 
- Public Member Functions inherited from SurgSim::Input::InputConsumerInterface
virtual ~InputConsumerInterface ()
 Virtual destructor (empty).
 
- Public Member Functions inherited from SurgSim::Input::OutputProducerInterface
virtual ~OutputProducerInterface ()
 Virtual destructor (empty).
 

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 FactoryTypegetFactory ()
 
- 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.
 
- Protected Member Functions inherited from SurgSim::Input::CommonDevice
virtual void pushInput ()
 Push application input to consumers.
 
virtual bool pullOutput ()
 Pull application output from a producer.
 
DataStructures::DataGroupgetInputData ()
 Getter for the input data DataGroup. More...
 
const DataStructures::DataGroupgetOutputData () const
 Getter for the output data DataGroup. More...
 
- Protected Attributes inherited from SurgSim::Devices::DeviceFilter
bool m_initialized
 true if initialized and not finalized.
 

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.

Member Function Documentation

§ filterInput()

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

Filter the input data.

Parameters
deviceThe name of the device pushing the input data.
dataToFilterThe data that will be filtered.
[in,out]resultA 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 
)
overridevirtual

Set the initial input data group.

Parameters
deviceThe 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).
inputDataThe 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
valwhether 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
valname 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
valname 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
valnew 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
valscale 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
valname of the target field

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