![]() |
ImFusion SDK 4.3
|
Interfaces and base classes for building a visualization viewport. More...
Interfaces and base classes for building a visualization viewport.
The architecture of the visualization framework is designed in a hierarchical fashion and with a clear separation between the OpenGL rendering layer (classes with Gl
prefix) and the GUI layer (classes inside the GUI
namespace):
The top-most entity is represented by the DisplayBase interface providing a viewport into which one or multiple View objects can render. The views can be arranged inside the viewport using a tiling layouting approach with the DisplayLayout class. For instance, a typical radiology workstation setup for volumetric data would show 3 MPR views (axial, sagittal, coronal) as well as a 3D volumetric view in a 2x2 grid. The DisplayBase is also the one to receive InputEvents from the platform GUI toolkit and will distribute them to the entities inside (e.g. views).
A View represents an individual sub viewport that can show Data (e.g. a specific anatomical plane) inside a display. It always wraps a corresponding GlView which implements the actual rendering using OpenGL. Furthermore, it can host any number of ViewOverlays and ViewObjects. A view also implements an advanced InputEvent handling and dispatching mechanism to process the events received from the parent display and forward them to overlays, objects, and view event handlers in a useful fashion.
A ViewObject represents a scene entity that resides in world space and is rendered inside a View. They wrap a GlObject and combine them with input event handling capabilities. For some use cases it can be beneficial to extract the event handling functionality into a dedicated reusable class. To this end, use the TypedViewObject specialization and the ViewObject::EventHandler alias.
A ViewOverlay represents a scene entity that resides in viewport space and is rendered on top of a View. They wrap a GlOverlay and combine them with input event handling capabilities.
Classes | |
class | DisplayBase |
Common base class interface of GUI::Display and DisplayWidget enabling other parts of the framework to access the most basic functionality in a general fashion. More... | |
class | Display |
Basic version of a display surface hosting a set of Views, rendering them, and distributing input events to them. More... | |
class | DisplayLayoutConfig |
The DisplayLayoutConfig serves as static "snapshot" of the view configuration of a DisplayLayout. More... | |
class | DisplayLayout |
Tiling-based layouting class for arranging Views inside a Display in a non-overlapping fashion. More... | |
class | View |
Base interface for a rendering view (e.g. More... | |
class | ViewObject |
Wraps a GlObject pairing it with an optional EventHandler in order to attach it to a View. More... | |
class | TypedViewObject< ObjectType, EventHandlerType > |
Specialization of a ViewObject where the concrete types of the underlying GlObject and EventHandler are defined by the template parameters. More... | |
class | ViewOverlay |
Wraps a GlOverlay in order to display it at specific positions inside a View and handle input events. More... | |
Typedefs | |
using | DisplayLayoutConfig = GUI::DisplayLayoutConfig |
using | DisplayLayout = GUI::DisplayLayout |