![]() |
ImFusion SDK 4.3
|
#include <RoboticsPlugin/Include/ImFusion/Robotics/IO/KeyboardTrackingStream.h>
The class captures and forwards all the events coming from the keyboard (keys pressed, keys released, ..). and can be used to design tracking streams that are controller by the keyboards keys. More...
Inheritance diagram for KeyboardTrackingStream:The class captures and forwards all the events coming from the keyboard (keys pressed, keys released, ..). and can be used to design tracking streams that are controller by the keyboards keys.
Public Types | |
| using | KeyCombination = std::vector<int> |
| typedef std::string | DoF |
Public Types inherited from Stream | |
| enum class | ThreadingMode { BaseClassRunsWorkerThread , DerivedClassHandlesThreading } |
| This flag represents the two supported threading modes of a Stream. More... | |
| enum class | State { Closed , Opening , Open , Starting , Running , Pausing , Paused , Resuming , Stopping , Closing } |
Public Types inherited from Data | |
| enum | Kind { UNKNOWN = 0 , IMAGE = 1 , VOLUME = 2 , IMAGESET = 3 , VOLUMESET = 4 , IMAGESTREAM = 5 , VOLUMESTREAM = 6 , POINTSET = 7 , SURFACE = 8 , TRACKINGSTREAM = 9 , LIVETRACKINGSTREAM = TRACKINGSTREAM , TRACKINGDATA = 10 , TREE = 11 , TENSOR = 12 , POLYDATASTREAM = 13 , STEREOIMAGESET = 14 , STEREOIMAGESTREAM = 15 , VOLUMETRICMESH = 16 } |
| Kind of data. More... | |
| enum | Modality { NA = 0 , XRAY = 1 , CT = 2 , MRI = 3 , ULTRASOUND = 4 , VIDEO = 5 , NM = 6 , OCT = 7 , LABEL = 8 , DISTANCE = 9 } |
| Image modality of the data. More... | |
Public Member Functions | |
| KeyboardTrackingStream (const std::string &name="Keyboard Tracking Stream") | |
| std::string | uuid () override |
| Unique identifier for stream. | |
| std::vector< TrackingInstrument > | devices () const override |
| Returns a copy of all tracking instruments (active and inactive) with their last status. | |
| void | configure (const Properties *p) override |
| Configure this object instance by de-serializing the given Properties. | |
| void | configuration (Properties *p) const override |
| Serialize the current object configuration into the given Properties object. | |
Public Member Functions inherited from TrackingStream | |
| TrackingStream (const std::string &name="Tracking Stream") | |
| virtual std::vector< TrackingInstrument > | instruments () const |
| Returns a copy of all tracking instruments (active and inactive) with their last status. | |
| virtual std::vector< TrackingInstrument > | activeInstruments () const |
| Returns a copy of all active tracking instruments with their last status. | |
| virtual int | numInstruments (bool activeOnly=false) const |
| Returns the number of instruments (all or only active instruments). | |
| Kind | kind () const override |
| Returns the kind of stream. | |
| void | setMainInstrument (unsigned int index) |
| Sets the index of the main tracking target. | |
| virtual bool | supportsMainInstrumentSelection () const |
| Returns true if main instrument can be set from outside. | |
| void | setMainInstrumentById (const std::string &id) |
| Sets the main tracking target by the ID of the TrackingInstrument (TrackerID::m_id). | |
| unsigned int | mainInstrumentIndex () const |
| Returns the index of the main tracking target in the instruments array. | |
| std::string | mainInstrumentId () const |
| Returns the unique ID of the main instrument. | |
| std::string | mainInstrumentName () const |
| Returns the name of the main instrument. | |
| virtual bool | supportsInstrumentRenaming () const |
| Returns true if the name of an instrument can be set from outside. | |
| void | setInstrumentName (const std::string &id, const std::string &name) |
| Sets the name of the TrackingInstrument for the specified id. | |
| void | setInstrumentActive (const std::string &id, bool active) |
| Sets the tracking instrument with the given ID as either active or inactive. | |
| bool | isInstrumentActive (const std::string &id) const |
| Returns whether the instrument with the given ID is active. | |
| std::optional< TrackingInstrument > | queryInstrument (const std::string &id) const |
| Queries the instrument with the given ID from m_instruments. | |
| std::string | describe () const override |
| Provides a short description of the stream, including the number of instruments, latest stream state, and update rate information. | |
Public Member Functions inherited from Stream | |
| Stream (const std::string &name="") | |
Constructor with the name for this stream. | |
| virtual ThreadingMode | threadingMode () const |
| Configures threading mode of stream. | |
| virtual bool | supportsAsyncOperation () |
| Returns true if xxxAsync() methods support execution in a background thread. | |
| std::shared_future< bool > | openAsync () |
| Open stream in an asynchronous fashion (wait on the returned future before taking further actions). Returns whether the operation was successful. | |
| std::shared_future< bool > | closeAsync () |
| Close stream in an asynchronous fashion (wait on the returned future before taking further actions). Returns whether the operation was successful. | |
| std::shared_future< bool > | startAsync () |
| Start stream in an asynchronous fashion (wait on the returned future before taking further actions). Returns whether the operation was successful. | |
| std::shared_future< bool > | stopAsync () |
| Stop stream in an asynchronous fashion (wait on the returned future before taking further actions). Returns whether the operation was successful. | |
| std::shared_future< bool > | pauseAsync () |
| Pause stream in an asynchronous fashion (wait on the returned future before taking further actions). Returns whether the operation was successful. | |
| std::shared_future< bool > | resumeAsync () |
| Resume stream in an asynchronous fashion (wait on the returned future before taking further actions). Returns whether the operation was successful. | |
| bool | open () |
| Open stream and wait for the operation to complete. Returns whether the operation was successful. | |
| bool | close () |
| Close stream and wait for the operation to complete. Returns whether the operation was successful. | |
| bool | start () |
| Start stream and wait for the operation to complete. Returns whether the operation was successful. | |
| bool | stop () |
| Stop stream and wait for the operation to complete. Returns whether the operation was successful. | |
| bool | pause () |
| Pause stream and wait for the operation to complete. Returns whether the operation was successful. | |
| bool | resume () |
| Resume stream and wait for the operation to complete. Returns whether the operation was successful. | |
| virtual bool | supportsPausing () const |
| Override and return true if this stream implements the pausing and resume operations. | |
| bool | restart () |
| Stops, closes, opens and starts the stream. Returns whether the operation was successful. | |
| virtual bool | reset () |
| Reverts stream to first frame, if possible. Returns whether the operation was successful. | |
| virtual bool | isRunning () const |
| Return whether stream is currently running. | |
| State | currentState () const |
| bool | isStateOneOf (const std::vector< State > &states) const |
| Geometry::AlignedBox | bounds () const override |
| Per default a Stream has empty/invalid bounds. | |
| Pose::TransformationConvention | matrixConvention () const override |
| Matrices of streams by default map to the world coordinate system. | |
| virtual bool | createDefaultStreamController () |
| Indicates whether a StreamController should be created for the stream (by default returns true). | |
| double | updateRate () const |
Average update rate in Hz of the signalStreamData. | |
Public Member Functions inherited from Data | |
| Data (const std::string &name="") | |
| Data (const Data &other) | |
| Data & | operator= (const Data &other) |
| virtual | ~Data () |
| Mandatory virtual destructor. | |
| virtual Modality | modality () const |
| Return the modality of this data. | |
| const std::string & | name () const |
| Return the name of this data. | |
| void | setName (const std::string &name) |
| Sets the name of this data. | |
| virtual bool | isAnnotationType () const |
| Return whether this data type is visualized through an annotation (e.g. mesh) | |
| const DataComponentList & | components () const |
| Returns the list of DataComponents for this data. | |
| DataComponentList & | components () |
| virtual void | setMatrixFromWorld (const mat4 &m) |
| Set matrix mapping from the world coordinate system to the data coordinate system. | |
| virtual void | setMatrixToWorld (const mat4 &m) |
| Set matrix mapping from the data coordinate system to the world coordinate system. | |
| virtual mat4 | matrixFromWorld () const |
| Get matrix mapping from the world coordinate system to the data coordinate system. | |
| virtual mat4 | matrixToWorld () const |
| Get matrix mapping from the data coordinate system to the world coordinate system. | |
| virtual mat4 | matrix () const |
| Return the transformation matrix. | |
| virtual void | setMatrix (const mat4 &m) |
| Set the transformation matrix. | |
Public Member Functions inherited from Configurable | |
| virtual void | configureDefaults () |
| Retrieve the properties of this object, replaces values with their defaults and sets it again. | |
| void | registerParameter (ParameterBase *param) |
| Register the given Parameter or SubProperty, so that it will be configured during configure()/configuration(). | |
| void | unregisterParameter (const ParameterBase *param) |
| Remove the given Parameter or SubProperty from the list of registered parameters. | |
| Configurable (const Configurable &rhs) | |
| Configurable (Configurable &&rhs) noexcept | |
| Configurable & | operator= (const Configurable &) |
| Configurable & | operator= (Configurable &&) noexcept |
Public Member Functions inherited from SignalReceiver | |
| SignalReceiver ()=default | |
| Default constructor. | |
| SignalReceiver (const SignalReceiver &other) | |
| Copy constructor, does not copy any existing signal connections from other. | |
| SignalReceiver & | operator= (SignalReceiver rhs) |
| Assignment operator, disconnects all existing connections, does not copy any existing signal connections from rhs. | |
| virtual | ~SignalReceiver () |
| Virtual destructor disconnects from all connected signals. | |
Public Attributes | |
| Parameter< double > | p_translationalSpeed = {"translationalSpeed", 10, this} |
| Parameter< double > | p_rotationalSpeed = {"rotationalSpeed", 10, this} |
Public Attributes inherited from TrackingStream | |
| ProtectedSignal & | signalTrackingDevicesUpdated |
| Emitted when the list of instruments is updated. | |
| ProtectedSignal | signalInstrumentsUpdated |
| Emitted when the list of instruments is altered (instrument added, instrument removed, or list cleared). | |
| ProtectedSignal< const std::string & > | signalMainInstrumentChanged |
| Emitted when the main instrument has changed, with the new instrument ID. | |
Public Attributes inherited from Stream | |
| ProtectedSignal< StateChange > | signalStateChanged |
| Emitted after a state change has been completed with the old and new state. | |
| ProtectedSignal | signalEnded |
| Indicates that the stream reached the end of its data, e.g. when a video stream has played to the end. | |
| ProtectedSignal< std::shared_ptr< const StreamData > > | signalStreamData |
| Signal that is emitted by the stream when a new StreamData is available. | |
| DeprecatedSignal< ProtectedSignal< std::shared_ptr< const StreamData > >, const StreamData & > | signalNewData |
| Signal that is emitted by the stream when a new StreamData is available. | |
Public Attributes inherited from Data | |
| Signal< const Data * > | signalDeleted |
| Signal emitted when this instance is deleted. | |
| Signal< const Data * > | signalMatrixChanged |
| Signal emitted when the transformation of this Data has changed. | |
| Signal< std::string > | signalNameChanged |
| Signal emitted when the name changed. | |
Public Attributes inherited from Configurable | |
| Signal | signalParametersChanged |
Emitted whenever one of the registered Parameters' or SubPropertys' signalValueChanged signal was emitted. | |
Static Public Attributes | |
| static DoF | T_XPlus = "TranslationXPlus" |
| static DoF | T_XMinus = "TranslationXMinus" |
| static DoF | T_YPlus = "TranslationYPlus" |
| static DoF | T_YMinus = "TranslationYMinus" |
| static DoF | T_ZPlus = "TranslationZPlus" |
| static DoF | T_ZMinus = "TranslationZMinus" |
| static DoF | R_XPlus = "RotationXPlus" |
| static DoF | R_XMinus = "RotationXMinus" |
| static DoF | R_YPlus = "RotationYPlus" |
| static DoF | R_YMinus = "RotationYMinus" |
| static DoF | R_ZPlus = "RotationZPlus" |
| static DoF | R_ZMinus = "RotationZMinus" |
Protected Member Functions | |
| bool | openImpl () override |
| Open stream. | |
| bool | closeImpl () override |
| Close stream. | |
| bool | startImpl () override |
| Start stream. | |
| bool | stopImpl () override |
| Stop stream. | |
| std::optional< WorkContinuation > | doWork () override |
| Create one StreamData and publish it (this function will be called at the desired frame rate) If this is not desired, you can do the following: return std::nullopt;. | |
| virtual bool | isActive (const KeyCombination &keyCombination) const |
Protected Member Functions inherited from TrackingStream | |
| void | emitSignals (const InstrumentUpdate &update) |
| Convenience method to be called after any instrument modification. | |
| std::unique_ptr< TrackingStreamData > | createTrackingStreamData () |
| Creates the TrackingStreamData with a copy of all instruments and sets the timestamps. | |
Protected Member Functions inherited from Stream | |
| virtual bool | pauseImpl () |
| Pause stream (not required to be supported). | |
| virtual bool | resumeImpl () |
| Resume stream from pause (only required to be supported when pauseImpl() is supported). | |
| virtual bool | workerThreadRequiresOpenGl () const |
| Override and return true if worker thread should create a GL::Context. | |
| virtual bool | worksWhilePaused () const |
| Override if doWork() should be called also in the Paused state. | |
| void | changeState (State newState) |
| std::shared_future< bool > | attemptStateChange (std::function< bool()> work, State stateWorking, State stateSuccess, State stateError) |
Protected Member Functions inherited from Data | |
| void | swapWith (Data &other) |
| Swaps the data and emits a matrix and name changed signal for both. | |
Protected Member Functions inherited from SignalReceiver | |
| void | disconnectAll () |
| Disconnects all existing connections. | |
Protected Attributes | |
| std::unique_ptr< KeyboardEventsReceiver > | m_keyboardEventsReceiver |
| std::mutex | m_keyCombinationMtx |
| std::map< int, std::atomic< bool > > | m_keyMap |
| std::map< DoF, KeyCombination > | m_axisKeyCombinationMap |
| std::optional< Properties > | m_stashedProperties |
| std::vector< DoF > | m_dofVector |
| int | m_updateIntervalMs |
| vec3 | m_translation |
| vec3 | m_rotation |
| std::mutex | m_lastDataMtx |
| TrackingInstrument | m_lastData |
Protected Attributes inherited from TrackingStream | |
| std::unique_ptr< ThreadSafeInstrumentsBase > | m_instruments |
| Container for TrackingInstruments of this tracking stream. | |
Protected Attributes inherited from Data | |
| mat4 | m_matrix |
| Transformation matrix. | |
| std::recursive_mutex * | m_matrixMutex |
| Used to internally synchronize access to the matrix of data. | |
| DataComponentList | m_dataComponentList |
| The list of DataComponents for this data. | |
Protected Attributes inherited from Configurable | |
| std::vector< Param > | m_params |
| List of all registered Parameter and SubProperty instances. | |
Additional Inherited Members | |
Static Public Member Functions inherited from Stream | |
| static std::string | stateToString (State state) |
Static Public Member Functions inherited from Data | |
| static std::string | modalityString (Data::Modality m) |
| Return the name of an image modality. | |
| static Data::Modality | stringToModality (const std::string &s) |
| Returns the modality corresponding to a modality string or NA if nothing matches. | |
|
overridevirtual |
Unique identifier for stream.
Implements Stream.
|
overridevirtual |
Returns a copy of all tracking instruments (active and inactive) with their last status.
Method internally calls TrackingStream::instrumens if not overridden by a derived class.
Reimplemented from TrackingStream.
|
overridevirtual |
Configure this object instance by de-serializing the given Properties.
The default implementation will do so automatically for all registered Parameter and SubProperty instances.
Reimplemented from Configurable.
|
overridevirtual |
Serialize the current object configuration into the given Properties object.
The default implementation will do so automatically for all registered Parameter and SubProperty instances.
Reimplemented from Configurable.
|
overrideprotectedvirtual |
Open stream.
Returns whether the operation was successful. This method is responsible for allocating necessary resources, initializing device handles, and establishing connections to devices. Implementers should ensure that all one-time setup tasks are completed here.
Implements Stream.
|
overrideprotectedvirtual |
Close stream.
Returns whether the operation was successful. This method should be used to free any resources that were allocated during the openImpl() call and to disconnect from any devices. Implementers must ensure that all resources are properly released to avoid memory leaks.
Implements Stream.
|
overrideprotectedvirtual |
Start stream.
Returns whether the operation was successful. This method is intended to initiate the actual data readout process or to connect a callback function for data handling. Implementers should ensure that the stream is ready and producing data after this call.
Implements Stream.
|
overrideprotectedvirtual |
Stop stream.
Returns whether the operation was successful. This method should halt any ongoing data readouts or callbacks, effectively pausing the data flow to reduce CPU load. Implementers should ensure that the stream can be restarted after this call.
Implements Stream.
|
overrideprotectedvirtual |
Create one StreamData and publish it (this function will be called at the desired frame rate) If this is not desired, you can do the following: return std::nullopt;.
Implements Stream.