Title: MRML
1Slicer 3 Architecture Diagram (2006-01-26)
Base
Execution Model Manager
(Managed by Base and communicats like other
Modules)
Auto-Generated GUIs from JSON Descriptions
Logic Links to ITK MRML VTK (except Rendering)
GUI Links to VTK Rendering KWWidgets
Logic Links to Base Logic
GUI Links to KWWidgets
Mediators
Mediators
Observe Modified Events
MRML
- Provides
- Frames for Widgets,
- Routing of User Events
Observe Modified Events on Application State
Edit Mrml Scene/Nodes
Formulates Command Line and possibly stages data
- Registers GUI Event Observers
Interactive Module
Describe Input options
Observe Modified Events
Logic Links to Base Logic ITK MRML VTK (except
Rendering)
GUI Links to VTK Rendering KWWidgets
Mediators
Edit Mrml Scene/Nodes
- External
- Processes (Grid/Pipeline)
- Speak MRML
- (link to libmrml
- or have data staged by slicer)
- Uses the JSON interface
MRML Aware Processes Can Edit Mrml
Scene/Nodes and Observe Modified Events
- Notes
- All classes in the Logic directory should be able
to run headless without OpenGL or window system
for scripting and testing - Base/Logic contains transient application state
(cursor location, focus, mrml scene connection) - Interactive Modules are ones which interact with
the VTK scene and/or User events - Interactive Modules interact with 3D scene by
creating objects in MRML scene (not by direct
manipulation of the Renderer) - Logic classes encapsulate and manage internal
vtk/itk pipelines - GUI classes are implemented as KWWidget
subclasses - Each Logic class defines a set of Get/Set methods
for internal state and Modified Events that GUI
classes can Observe