Difference between revisions of "AHM2012-Slicer-Architecture"
From NAMIC Wiki
Line 32: | Line 32: | ||
** Mechanism to load python based DisplayableManager | ** Mechanism to load python based DisplayableManager | ||
** Achieved using [https://github.com/Slicer/Slicer/blob/master/Libs/MRML/DisplayableManager/vtkMRMLScriptedDisplayableManager.h vtkMRMLScriptedDisplayableManager] | ** Achieved using [https://github.com/Slicer/Slicer/blob/master/Libs/MRML/DisplayableManager/vtkMRMLScriptedDisplayableManager.h vtkMRMLScriptedDisplayableManager] | ||
+ | |||
+ | * '''List of DisplayableManager''' | ||
+ | ** [https://github.com/Slicer/Slicer/blob/master/Libs/MRML/DisplayableManager/vtkMRMLCameraDisplayableManager.h vtkMRMLCameraDisplayableManager] | ||
+ | ** [https://github.com/Slicer/Slicer/blob/master/Libs/MRML/DisplayableManager/vtkMRMLCrosshairDisplayableManager.h vtkMRMLCrosshairDisplayableManager] | ||
+ | ** [https://github.com/Slicer/Slicer/blob/master/Libs/MRML/DisplayableManager/vtkMRMLModelDisplayableManager.h vtkMRMLModelDisplayableManager] | ||
+ | ** [https://github.com/Slicer/Slicer/blob/master/Libs/MRML/DisplayableManager/vtkMRMLModelSliceDisplayableManager.h vtkMRMLModelSliceDisplayableManager] | ||
+ | ** [https://github.com/Slicer/Slicer/blob/master/Libs/MRML/DisplayableManager/vtkMRMLThreeDReformatDisplayableManager.h vtkMRMLThreeDReformatDisplayableManager] | ||
+ | ** [https://github.com/Slicer/Slicer/blob/master/Libs/MRML/DisplayableManager/vtkMRMLViewDisplayableManager.h vtkMRMLViewDisplayableManager] | ||
+ | ** [https://github.com/Slicer/Slicer/blob/master/Libs/MRML/DisplayableManager/vtkMRMLVolumeGlyphSliceDisplayableManager.h vtkMRMLVolumeGlyphSliceDisplayableManager] | ||
== Views and Layouts == | == Views and Layouts == |
Revision as of 08:05, 10 January 2012
Home < AHM2012-Slicer-ArchitectureModularization Object Specialization
- Slicer is build on top re-usable and tested libraries.
Displayable Managers
- Displayable manager: Specialized logic handling both RenderWindow <-> MRML and RenderWindow <-> Logic interactions.
- Motivation: Have a well-designed mechanism to ...
- ...represent MRML node within a Renderer/RenderWindow.
- ... handle mouse/keyboard interaction.
- ... synchronize widget across different views.
- Overview:
- Each time a viewer is instantiated, it asks a factory to provide him with a DisplayableManagerGroup.
- DisplayableManagerGroup contain a list of DisplayableManager
- Each DisplayableManager is associated with Renderer + InteractorStyle
- DisplayableManager
- Currently, there are two type of DisplayableManager: ThreeD and Slice DisplayableManager - Similar API.
- Both derive from vtkMRMLAbstractDisplayableManager.
- ThreeDDisplayableManager [1]: deals with MRMLViewNode / ThreeDInteractorStyle
- SliceDisplayableManager [2]: deals with MRMLSliceNode / SliceInteractorStyle
- DisplayableManager within Module
- Module can also register DisplayableManager. See qSlicerAnnotationsModule.cxx#L65
- DisplayableManager and Python
- Mechanism to load python based DisplayableManager
- Achieved using vtkMRMLScriptedDisplayableManager
- List of DisplayableManager