ImFusion SDK 4.3
Streams and StreamData

Fundamental classes for streaming data. More...

+ Collaboration diagram for Streams and StreamData:

Detailed Description

Fundamental classes for streaming data.

The Stream and StreamData classes form the core of the ImFusion streaming architecture.

The Stream class and its subclasses provide a framework for handling streaming data in various forms. This includes support for different data types. Most important are the ImageStream, TrackingStream, and the PolyDataStream classes, which are specialized for image data, tracking data, and point cloud and mesh data respectively. The Stream class inherits from Data, allowing it to be part of the data model and enabling configuration and visualization within the ImFusion framework.

The StreamData interface defines the structure of the data being streamed, allowing for flexible and extensible data handling. Similar to the Stream class, there are specialized implementations for different data types, such as ImageStreamData, TrackingStreamData, and PolyDataStreamData.

While the ImFusion Stream API already provides a comprehensive set of classes for streaming data, it is designed to be extensible. You can create custom Stream and StreamData classes to handle specific data types or formats as needed.

Besides live usage of Streams, the ImFusion Stream API also supports recording and playback of streams, see Recording.

Classes

class  ImageStream
 Specialization of Stream for streams producing 2D or 3D images. More...
 
class  ImageStreamData
 Image data streamed from a streaming device. More...
 
class  PolyDataStream
 Specialization of Stream for streams producing polygonal data, such as meshes or point clouds. More...
 
class  PolyDataStreamData
 Polygonal data (point clouds or meshes) streamed from a streaming device. More...
 
class  Stream
 Base class representing a stream of changing data in the DataModel. More...
 
class  StreamData
 Base class for all data streamed from a streaming device. More...
 
class  ThreadSafeInstrumentsBase
 Non-templated and fully abstract base class for ThreadSafeInstruments. More...
 
struct  UnusedSpecial
 Placeholder struct for the extra container. More...
 
class  ThreadSafeInstruments< Special >
 Specialized class of ThreadSafeInstrumentsBase with the option to manage additional metadata, which is held in a struct/class Special next to the TrackingInstrument. More...
 
class  TrackingStream
 Specialization of Stream for streams producing tracking data for spatial localization. More...
 
class  TrackingStreamData
 Tracking data streamed from a streaming device for spatial localization of tools, images, etc. More...
 

Typedefs

using InstrumentUpdate = Flags<InstrumentModification>
 Flags type for instrument updates.
 

Enumerations

enum class  InstrumentModification { None = 0 , TrackingStateChanged = 1 << 0 , MainInstrumentChanged = 1 << 1 , TrackingListChanged = 1 << 2 }
 Bit flags indicating the type of instrument list modification. More...
 

Enumeration Type Documentation

◆ InstrumentModification

enum class InstrumentModification
strong

#include <ImFusion/Stream/ThreadSafeInstruments.h>

Bit flags indicating the type of instrument list modification.

Enumerator
None 

Nothing changed.

TrackingStateChanged 

Tracking was updated (new timestamp with updated matrices and qualities).

MainInstrumentChanged 

New main instrument selected.

TrackingListChanged 

List of tracking instruments was modified (new instrument, removed instrument, etc.).

Search Tab / S to search, Esc to close