![]() |
ImFusion SDK 4.3
|
Storage and hierarchical organization of datasets. More...
Collaboration diagram for Data Model:Storage and hierarchical organization of datasets.
One of the central interfaces of the ImFusion SDK is Data. It serves as input and output of Algorithms and is therefore supposed to be used as base class for all entities representing a self-contained piece of information, such as images or meshes.
The DataModel class is intended to be used as a central storage container for your datasets. It takes ownership of all Data intances inside and enables you to organize them in a hierarchical fashion leveraging the DataGroup class. Therefore, it is also part of every ApplicationController.
The DataModel takes also care of managing DataLinks: They provides the functionality to keep specific aspects of Data (e.g. windowing information, world pose) in sync across multiple instances.
To facilitate visualizing and interacting with a DataModel in a Qt you should use the DataItemModel wrapper class that transforms it into a QAbstractItemModel to be used in any Qt view or directly in our off-the-shelf DataWidget.
When passing one ore multiple datasets around most interfaces of the ImFusion SDK use the DataList or OwningDataList class as container. They are convenience wrappers for a std::vector<Data*> or a std::vector<std::unique_ptr<Data>>, respectively. Technically, these classes are interchangeable with the correspoding std::vector types. However, they provide useful helper functions for searching or filtering of datasets and maintain the basic invariant that they do not contain any duplicate datasets or nullptrs.
Classes | |
| class | Mesh |
| Represents a triangle mesh. More... | |
| class | CompoundData |
| Interface for datasets that are formed by one or multiple other nested Data instances. More... | |
| class | Data |
| Virtual base class for representing data from which all concrete data class such as images need to derive. More... | |
| class | DataGroup |
| Data element that groups multiple Data instances together in a hierarchical fashion. More... | |
| class | DataLink |
| Interface for linking properties between multiple Data instances. More... | |
| class | DataList |
| Container for any number of Data instances such as image or meshes. More... | |
| class | DataModel |
| Container for datasets holding ownership and managing a hierarchical list of persistent data. More... | |
| class | DataModelAutoLinking |
| Utility class to automatically create DataLink instances between datasets in a DataModel. More... | |
| class | OwningDataList |
| Wrapper class to store a list of owned Data instances. More... | |
| class | PointCloud |
| Data structure for point clouds. More... | |
| class | TrackingSequence |
| Sequence of rigid tracking data with optional timestamps, quality values and flags. More... | |
| class | Tree |
| Data structure for trees. More... | |
| class | DataLogger |
| Support for logging data. More... | |
| class | SharedImageSet |
| Set of images independent of their storage location. More... | |
| class | DataDisplayModel |
| This class extends a DataItemModel with data visibility information from a DisplayWidgetMulti. More... | |
| class | DataFilterModel |
| The DataFilterModel class is a proxy model to filter a DataItemModel. More... | |
| class | DataGroupingModel |
| QAbstractProxyModel implementation that groups data in a source-model according to a specified GroupingOption. More... | |
| class | DataItemModel |
| Wrapper class to transform the DataModel into a QAbstractItemModel so that it can be used in Qt views. More... | |
| class | DataWidget |
| Graphical user interface for the DataModel/DataItemModel. More... | |
| class | Stream |
| Base class representing a stream of changing data in the DataModel. More... | |