ImFusion C++ SDK 4.4.0
Base Library

General infrastructure for the development of (medical) imaging algorithms and software. More...

Collaboration diagram for Base Library:

Detailed Description

General infrastructure for the development of (medical) imaging algorithms and software.

Framework concepts

The framework is built around several concepts which permeate the framework and help making it modular and extendable. These concepts include

  • An extendable data model for dealing with any kind of data
  • An extendable display and view model for visualizing data
  • An algorithm concept for implementing custom functionality
    • I/O algorithms for importing and exporting custom data formats
    • Algorithms for image processing, visualization and other tasks
  • A plugin concept for loading new functionality at runtime

Framework Architecture

The framework architecture is designed according to the model-view-controller pattern. The model is represented by the DataModel class which manages all image data and is described in detail in Data Model. The view is represented by the DisplayWidgetMulti class and is described in detail in Visualization and Views. Finally the controller is represented by the ApplicationController and the MainWindowBase classes which provide access to the GUI components and link the data with the view. In addition the view manages the so called algorithms which are one of the central concepts of the framework. They are used to perform the actual image processing as well as data I/O and can be dynamically loaded at run-time using a plugin concept (see Algorithms and Plugin Architecture). The framework consistently makes use of the GPU to enable high-performance computing. This GPU functionality is also available to users (see GpuSupport). To allow for saving the working state and for configuring objects without needing to know their implementation a generic property system is used (see Object Serialization).

Overview component diagram illustrating the central classes of the ImFusionLib and how they interact with each other.

Further Reading

Topics

 Animations
 Animating objects within the ImFusion SDK.
 DataComponent API
 Extends ImFusion::Data with custom information in a type-safe fashion.
 Data Model
 Storage and hierarchical organization of datasets.
 ImFusionGUI
 Generic Abstraction Layer for Visualization and User Input Events.
 OpenGL Image Processing
 Classes for high-level image processing using OpenGL.
 Images
 Data structures and interfaces for working with image data.
 Image Masks
 On-the-fly pixel masking of images.
 License System
 Interfaces and examples for interacting with the license system.
 OpenGL
 Using OpenGL within the ImFusion SDK.
 Poses
 Using Poses within the ImFusion SDK.
 Progress Reporting
 Reporting progress of long-standing tasks/algorithms.
 Visualization and Views
 Workspaces API
 Basic scripting and snapshot functionality.

Macros

#define IMFUSION_SDK_VERSION_MAJOR   4
 Major version of the ImFusion C++ SDK.
#define IMFUSION_SDK_VERSION_MINOR   4
 Minor version of the ImFusion C++ SDK.
#define IMFUSION_SDK_VERSION_PATCH   0
 Patch version of the ImFusion C++ SDK.
#define IMFUSION_SDK_VERSION_SUFFIX   ""
 Optional pre-release version suffix of the ImFusion C++ SDK, will be empty if no such suffix exists.
#define IMFUSION_SDK_VERSION_METADATA   "0-5c5f2ebf"
 Optional version metadata (such as the corresponding short git hash) of the ImFusion C++ SDK, will be empty if no such metadata exists.
#define IMFUSION_SDK_VERSION_SHORT_STRING   "4.4.0"
 C string of the C++ SDK version without suffix/metadata.
#define IMFUSION_SDK_VERSION_STRING   "4.4.0"
 C string of the full C++ SDK version including suffix/metadata if present.
#define IMFUSION_SDK_RELEASE_YEAR   2026
 Year in which this version of the ImFusion C++ SDK was built.
#define IMFUSION_SDK_RELEASE_MONTH   1
 Month in which this version of the ImFusion C++ SDK was built.
#define IMFUSION_SDK_RELEASE_DAY   30
 Day on which this version of the ImFusion C++ SDK was built.

Macro Definition Documentation

◆ IMFUSION_SDK_VERSION_SHORT_STRING

#define IMFUSION_SDK_VERSION_SHORT_STRING   "4.4.0"

#include <ImFusion/SdkVersionInfo.h>

C string of the C++ SDK version without suffix/metadata.

It has the form <major>.<minor>.<patch>

◆ IMFUSION_SDK_VERSION_STRING

#define IMFUSION_SDK_VERSION_STRING   "4.4.0"

#include <ImFusion/SdkVersionInfo.h>

C string of the full C++ SDK version including suffix/metadata if present.

It has the form <major>.<minor>.<patch>[-<suffix>][+<metadata>]

Search Tab / S to search, Esc to close