![]() |
ImFusion SDK 4.3
|
#include <ImFusion/Stream/FakeTrackingStream.h>
Small tool class to create a tracking stream out of nowhere. More...
Small tool class to create a tracking stream out of nowhere.
Classes | |
struct | ConstantDevice |
struct | Device |
struct | OscillatingDevice |
struct | SweepDevice |
Public Member Functions | |
FakeTrackingStream (const std::string &name="Fake Tracking Stream") | |
bool | openImpl () override |
Open Stream. | |
bool | closeImpl () override |
Close stream. | |
bool | startImpl () override |
Start stream. | |
bool | stopImpl () override |
Stop stream. | |
std::string | uuid () override |
Unique identifier for stream. | |
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. | |
void | addDevice (std::unique_ptr< FakeTrackingStream::Device > device) |
Adds a device to the stream, takes ownership. | |
bool | removeDevice (const std::string &id) |
Remove a device from the stream. | |
std::map< std::string, std::unique_ptr< Device > > | devicesCopy () |
Returns a copy of all the devices in the stream. | |
void | configureDevice (const std::string &id, const Properties *p) |
Update device properties. | |
void | configurationDevice (const std::string &id, Properties *p) const |
Query device properties. | |
![]() | |
TrackingStream (const std::string &name="Tracking Stream") | |
virtual std::vector< TrackingInstrument > | devices () const |
Returns a copy of all tracking instruments (active and inactive) with their last status. | |
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. | |
![]() | |
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 . | |
![]() | |
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. | |
![]() | |
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 |
Protected Member Functions | |
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;. | |
![]() | |
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. | |
![]() | |
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) |
![]() | |
void | swapWith (Data &other) |
Swaps the data and emits a matrix and name changed signal for both. | |
Additional Inherited Members | |
![]() | |
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 } |
![]() | |
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... | |
![]() | |
static std::string | stateToString (State state) |
![]() | |
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. | |
![]() | |
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. | |
![]() | |
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. | |
![]() | |
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. | |
![]() | |
Signal | signalParametersChanged |
Emitted whenever one of the registered Parameters' or SubPropertys' signalValueChanged signal was emitted. | |
![]() | |
std::unique_ptr< ThreadSafeInstrumentsBase > | m_instruments |
Container for TrackingInstruments of this tracking stream. | |
![]() | |
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. | |
![]() | |
std::vector< Param > | m_params |
List of all registered Parameter and SubProperty instances. | |
|
overridevirtual |
Close stream.
Implements Stream.
|
overridevirtual |
Start stream.
Implements Stream.
|
overridevirtual |
Stop stream.
Implements Stream.
|
overridevirtual |
Unique identifier for stream.
Implements Stream.
|
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.
std::map< std::string, std::unique_ptr< Device > > devicesCopy | ( | ) |
Returns a copy of all the devices in the 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.