SurgSim::Devices::RecordPose Class Reference

An input device filter that record the input pose along with the relative time. More...

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

Inheritance diagram for SurgSim::Devices::RecordPose:

## Public Member Functions

| RecordPose (const std::string &name)
| Constructor. More...
| ~RecordPose ()
| Desctructor. More...
void | setFileName (const std::string &fileName)
const std::string & | getFileName () const
void | initializeInput (const std::string &device, const DataStructures::DataGroup &inputData) override
| Set the initial input data group. More...
| SURGSIM_CLASSNAME (SurgSim::Devices::RecordPose)
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 | 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 | filterInput (const std::string &device, const DataStructures::DataGroup &dataToFilter, DataStructures::DataGroup *result) override
| Filter the input data. More...

## Private Attributes

Framework::Timer | m_timer
| Timer to keep the recording real-time. More...
double | m_cumulativeTime
| Cumulative time elapsed since the timer started (on creation of the instance, in ctor) More...
std::string | m_fileName
| Filename where the poses will be recorded. More...
std::ofstream | m_outputFile
| Output stream to the file 'm_fileName', the entire content is replaced at each run. 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 | 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

An input device filter that record the input pose along with the relative time.

All entries in the DataGroup are passed through. For convenience, it is also an OutputProducerInterface that does no filtering of the ouput data.

## Constructor & Destructor Documentation

## RecordPose()

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

explicit

Constructor.

Parameters

  name | Name of this device filter.

## ~RecordPose()

SurgSim::Devices::RecordPose::~RecordPose | ( |  | ) |

Desctructor.

## Member Function Documentation

## filterInput()

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

override private 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.

## getFileName()

const std::string & SurgSim::Devices::RecordPose::getFileName | ( |  | ) | const

Returns
  The filename where the pose/time are recorded (default is empty string)

## initializeInput()

void SurgSim::Devices::RecordPose::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.

Reimplemented from SurgSim::Devices::DeviceFilter.

## setFileName()

void SurgSim::Devices::RecordPose::setFileName | ( | const std::string & | fileName | ) |

Parameters

  fileName | The filename to record the pose/time to (default is empty string)

## SURGSIM_CLASSNAME()

SurgSim::Devices::RecordPose::SURGSIM_CLASSNAME | ( | SurgSim::Devices::RecordPose |  | ) |

## Member Data Documentation

## m_cumulativeTime

double SurgSim::Devices::RecordPose::m_cumulativeTime

private

Cumulative time elapsed since the timer started (on creation of the instance, in ctor)

## m_fileName

std::string SurgSim::Devices::RecordPose::m_fileName

private

Filename where the poses will be recorded.

## m_outputFile

std::ofstream SurgSim::Devices::RecordPose::m_outputFile

private

Output stream to the file 'm_fileName', the entire content is replaced at each run.

## m_timer

Framework::Timer SurgSim::Devices::RecordPose::m_timer

private

Timer to keep the recording real-time.

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

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