Difference between revisions of "AHM2012-Slicer-Architecture"
From NAMIC Wiki
Line 12: | Line 12: | ||
** ... avoid to re-invent the wheel again and again. | ** ... avoid to re-invent the wheel again and again. | ||
− | * ''' | + | * '''Overview''': |
** Each time a viewer is instantiated, it asks a factory to provide him with a [https://github.com/Slicer/Slicer/blob/master/Libs/MRML/DisplayableManager/vtkMRMLDisplayableManagerGroup.h DisplayableManagerGroup]. | ** Each time a viewer is instantiated, it asks a factory to provide him with a [https://github.com/Slicer/Slicer/blob/master/Libs/MRML/DisplayableManager/vtkMRMLDisplayableManagerGroup.h DisplayableManagerGroup]. | ||
** DisplayableManagerGroup contain a list of [https://github.com/Slicer/Slicer/blob/master/Libs/MRML/DisplayableManager/vtkMRMLAbstractDisplayableManager.h DisplayableManager] | ** DisplayableManagerGroup contain a list of [https://github.com/Slicer/Slicer/blob/master/Libs/MRML/DisplayableManager/vtkMRMLAbstractDisplayableManager.h DisplayableManager] | ||
** Each DisplayableManager is associated with Renderer + InteractorStyle | ** Each DisplayableManager is associated with Renderer + InteractorStyle | ||
+ | |||
+ | * '''DisplayableManager''' | ||
+ | ** Currently, there are two type of DisplayableManager: '''ThreeD''' and '''Slice''' '''DisplayableManager''' - Similar API. | ||
+ | ** Both derive from [https://github.com/Slicer/Slicer/blob/master/Libs/MRML/DisplayableManager/vtkMRMLAbstractDisplayableManager.h vtkMRMLAbstractDisplayableManager]. | ||
+ | ** ThreeDDisplayableManager: deals with [https://github.com/Slicer/Slicer/blob/master/Libs/MRML/Core/vtkMRMLViewNode.h MRMLViewNode] / [https://github.com/Slicer/Slicer/blob/master/Libs/MRML/DisplayableManager/vtkThreeDViewInteractorStyle.h ThreeDInteractorStyle] | ||
+ | ** SliceDisplayableManager: deals with [https://github.com/Slicer/Slicer/blob/master/Libs/MRML/Core/vtkMRMLSliceNode.h MRMLSliceNode] / [https://github.com/Slicer/Slicer/blob/master/Libs/MRML/DisplayableManager/vtkSliceViewInteractorStyle.h SliceInteractorStyle] | ||
* '''Factories''': | * '''Factories''': | ||
** [https://github.com/Slicer/Slicer/blob/master/Libs/MRML/DisplayableManager/vtkMRMLThreeDViewDisplayableManagerFactory.h vtkMRMLThreeDViewDisplayableManagerFactory] | ** [https://github.com/Slicer/Slicer/blob/master/Libs/MRML/DisplayableManager/vtkMRMLThreeDViewDisplayableManagerFactory.h vtkMRMLThreeDViewDisplayableManagerFactory] | ||
** [https://github.com/Slicer/Slicer/blob/master/Libs/MRML/DisplayableManager/vtkMRMLSliceViewDisplayableManagerFactory.h vtkMRMLSliceViewDisplayableManagerFactory] | ** [https://github.com/Slicer/Slicer/blob/master/Libs/MRML/DisplayableManager/vtkMRMLSliceViewDisplayableManagerFactory.h vtkMRMLSliceViewDisplayableManagerFactory] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Views and Layouts == | == Views and Layouts == |
Revision as of 07:47, 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.
- ... avoid to re-invent the wheel again and again.
- 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: deals with MRMLViewNode / ThreeDInteractorStyle
- SliceDisplayableManager: deals with MRMLSliceNode / SliceInteractorStyle