ImFusion SDK 4.3
SweepPlaybackAlgorithm Class Reference

#include <ImFusion/LiveUS/SweepPlaybackAlgorithm.h>

An algorithm to playback an UltrasoundSweep as separate ImageStream and TrackingStream. More...

+ Inheritance diagram for SweepPlaybackAlgorithm:

Detailed Description

An algorithm to playback an UltrasoundSweep as separate ImageStream and TrackingStream.

This algorithm enables replaying a recorded UltrasoundSweep as if it were live. In principle, the playback streams could be recorded again into a new UltrasoundSweep identical to the original.

Various configuration options allow modifying the playback behavior:

  • Adjust the speed factor to slow down or speed up the replay.
  • Play back only the selected tracking (considering its relative tracking) or all available tracking sequences (ignoring any relative tracking).
  • Apply the sweep calibration matrix to the tracking stream or ignore it.
  • Use time-interpolated tracking synchronized with the image data (same timestamps and update rate) or replay the original tracking data with its own timestamps and potentially different update rate.

Usage Example:

// Use any sweep
SweepPlaybackAlgorithm playbackAlg(&us);
playbackAlg.p_delayStart = true; // Manually start the streams later
playbackAlg.p_playbackAllTrackings = true; // Stream all trackings, not just the selected one
playbackAlg.compute();
auto streams = playbackAlg.takeOutput();
auto imageStream = streams.extractFirst<ImageStream>();
auto trackingStream = streams.extractFirst<PlaybackTrackingStream>();
imageStream->start(); // This will also start the tracking stream because they are linked.
// Use the streams (e.g., to record them again for testing)
// ...
Container for any number of Data instances such as image or meshes.
Definition DataList.h:30
Specialization of Stream for streams producing 2D or 3D images.
Definition ImageStream.h:21
Creates simulated live tracking by playing back the data of a TrackingSequence class.
Definition PlaybackTrackingStream.h:29
PlaybackStream * imageStream()
Returns the image stream (modality: ULTRASOUND).
PlaybackTrackingStream * trackingStream()
Returns the tracking stream.
Algorithm for recording an ImageStream with modality ULTRASOUND and zero, one, or multiple TrackingSt...
Definition SweepRecorderAlgorithm.h:29
Set of 2D ultrasound images constituting a 3D (freehand) ultrasound sweep, so a clip of 2D ultrasound...
Definition UltrasoundSweep.h:31

Public Member Functions

 SweepPlaybackAlgorithm (UltrasoundSweep *sweep)
 Constructor for creating the algorithm.
 
void compute () override
 Execute the algorithm.
 
OwningDataList takeOutput () override
 Returns an OwningDataList containing separate playback streams for images and trackings.
 
PlaybackStreamimageStream ()
 Returns the image stream (modality: ULTRASOUND).
 
PlaybackTrackingStreamtrackingStream ()
 Returns the tracking stream.
 
void setSpeed (double factor)
 Sets the playback speed multiplier.
 
void jumpToFocus ()
 Moves playback to the focus frame of the UltrasoundSweep.
 
void setPlaybackAllTrackings (bool enable)
 Enables playback of all tracking sequences from the input UltrasoundSweep.
 
void clearStreams ()
 Resets the streams to nullptr (deleting them if the output has not been taken yet).
 
- Public Member Functions inherited from Algorithm
 Algorithm ()
 Default constructor will registers a single "compute" action that calls compute() and returns status().
 
virtual void setProgress (Progress *progress)
 Sets a Progress interface the algorithm can use to notify observers about its computing progress.
 
Progressprogress () const
 Returns the progress interface if set.
 
virtual int status () const
 Indicates the status of the last call to compute().
 
virtual bool survivesDataDeletion (const Data *) const
 Indicates whether the algorithm can handle (partial) deletion of the specified data, by default this checks whether the data is in the input list.
 
const FactoryInfofactoryInfo () const
 Returns the record describing how this Algorithm was instantiated by the AlgorithmFactory.
 
void setFactoryInfo (const FactoryInfo &value)
 Sets the record describing how this Algorithm was instantiated by the AlgorithmFactory.
 
Status runAction (const std::string &id)
 Run the action with name id if it exists.
 
const std::vector< Action > & actions ()
 Get a mapping from Action id to Action as registered in this algorithm.
 
- Public Member Functions inherited from Configurable
virtual void configure (const Properties *p)
 Configure this object instance by de-serializing the given Properties.
 
virtual void configuration (Properties *p) const
 Serialize the current object configuration into the given Properties object.
 
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
 
Configurableoperator= (const Configurable &)
 
Configurableoperator= (Configurable &&) noexcept
 

Static Public Member Functions

static bool createCompatible (const DataList &data, Algorithm **a=nullptr)
 
- Static Public Member Functions inherited from Algorithm
static bool createCompatible (const DataList &data, Algorithm **a=nullptr)
 Factory function to check algorithm compatibility with input data and optionally instantiate it.
 

Public Attributes

Parameter< bool > p_synchronizedMode = {"Synchronized Mode", true, this}
 If enabled, each emitted image will have a synchronized tracking sample with the same timestamp.
 
Parameter< bool > p_ignoreCalibration = {"Ignore Calibration", false, this}
 If enabled, the calibration matrix will be ignored during playback and replaced with an identity matrix.
 
Parameter< bool > p_delayStart = {"Delay Start", false, this}
 If enabled, playback streams will not start automatically when calling compute().
 
Parameter< bool > p_playbackAllTrackings = {"Playback All Trackings", false, this}
 If enabled, all tracking targets will be played back, ignoring relative tracking.
 
- Public Attributes inherited from Algorithm
Signal signalOutputChanged
 Signal should be emitted by Algorithms when their output/result has changed.
 
Signal signalParametersChanged
 Signal should be emitted by Algorithms when their parameter configuration has changed.
 
- Public Attributes inherited from Configurable
Signal signalParametersChanged
 Emitted whenever one of the registered Parameters' or SubPropertys' signalValueChanged signal was emitted.
 

Additional Inherited Members

- Public Types inherited from Algorithm
enum  Status {
  Unknown = -1 , Success = 0 , Error = 1 , InvalidInput ,
  IncompleteInput , OutOfMemoryHost , OutOfMemoryGPU , UnsupportedGPU ,
  UnknownAction , AbortedByUser , User = 1000
}
 Status codes. More...
 
- Protected Member Functions inherited from Algorithm
void loadDefaults ()
 
void registerAction (const std::string &id, const std::string &guiName, const std::function< Algorithm::Status(void)> &action)
 Register an action to be run via runAction.
 
template<typename D>
void registerAction (const std::string &id, const std::string &guiName, Algorithm::Status(D::*action)(void))
 Template version of runAction that can be used with a pointer to a member function.
 
void registerAction (const Action &action)
 Register an action.
 
- Protected Attributes inherited from Algorithm
std::string m_name
 Algorithm name.
 
Progressm_progress = nullptr
 Non-owing pointer to a progress interface. May be a nullptr.
 
FactoryInfo m_factoryInfo = {}
 Record describing how this algorithm was instantiated by the AlgorithmFactory.
 
int m_status = Status::Unknown
 Algorithm status after last call to compute()
 
std::vector< Actionm_actions
 Map of key given by the id of the action, of the available actions of this algorithm.
 
- Protected Attributes inherited from Configurable
std::vector< Paramm_params
 List of all registered Parameter and SubProperty instances.
 

Constructor & Destructor Documentation

◆ SweepPlaybackAlgorithm()

Constructor for creating the algorithm.

Exceptions
std::invalid_argumentif sweep is nullptr

Member Function Documentation

◆ compute()

void compute ( )
overridevirtual

Execute the algorithm.

Implements Algorithm.

◆ takeOutput()

OwningDataList takeOutput ( )
overridevirtual

Returns an OwningDataList containing separate playback streams for images and trackings.

Reimplemented from Algorithm.

◆ setSpeed()

void setSpeed ( double factor)

Sets the playback speed multiplier.

A value of 1 keeps the original playback speed, values > 1 increase and values < 1 decrease the update rates, respectively. Can be modified while playback is running.

◆ jumpToFocus()

void jumpToFocus ( )

Moves playback to the focus frame of the UltrasoundSweep.

Can be modified while playback is running.

Member Data Documentation

◆ p_synchronizedMode

Parameter<bool> p_synchronizedMode = {"Synchronized Mode", true, this}

If enabled, each emitted image will have a synchronized tracking sample with the same timestamp.

Otherwise, original tracking poses and matrices will be played back.

◆ p_playbackAllTrackings

Parameter<bool> p_playbackAllTrackings = {"Playback All Trackings", false, this}

If enabled, all tracking targets will be played back, ignoring relative tracking.

Otherwise, only the selected tracking sequence is played back, potentially relative to other tracking sequence.


The documentation for this class was generated from the following file:
Search Tab / S to search, Esc to close