Difference between revisions of "AHM2012-Slicer-Architecture"

From NAMIC Wiki
Jump to: navigation, search
Line 43: Line 43:
  
 
== Views and Layouts ==
 
== Views and Layouts ==
 +
 +
* '''Existing layouts'''
 +
** conventionalView
 +
** fourUpView
 +
** oneUp3DView
 +
** oneUpRedView
 +
** oneUpYellowView
 +
** oneUpGreenView
 +
** tabbed3DView
 +
** tabbedSliceView
 +
** dual3DView
 +
** triple3DView
 +
** conventionalWidescreenView
 +
** threeOverThreeView
 +
** fourOverFourView
 +
** compareView
 +
 +
* Management of '''Layout''' and their associated '''View''' have been revisited.
 +
* Layout are new described using a simple XML description. See [https://github.com/Slicer/Slicer/blob/master/Libs/MRML/Logic/vtkMRMLLayoutLogic.cxx vtkMRMLLayoutLogic]
 +
 +
<pre>
 +
const char* triple3DEndoscopyView =
 +
  "<layout type=\"vertical\" split=\"true\" >"
 +
  " <item>"
 +
  "  <view class=\"vtkMRMLViewNode\">"
 +
  "  <property name=\"viewlabel\" action=\"default\">1</property>"
 +
  "  </view>"
 +
  " </item>"
 +
  " <item>"
 +
  "  <layout type=\"horizontal\">"
 +
  "  <item>"
 +
  "    <view class=\"vtkMRMLViewNode\" type=\"secondary\">"
 +
  "    <property name=\"viewlabel\" action=\"default\">2</property>"
 +
  "    </view>"
 +
  "  </item>"
 +
  "  <item>"
 +
  "    <view class=\"vtkMRMLViewNode\" type=\"endoscopy\">"
 +
  "    <property name=\"viewlabel\" action=\"default\">3</property>"
 +
  "    </view>"
 +
  "  </item>"
 +
  "  </layout>"
 +
  " </item>"
 +
  "</layout>";
 +
</pre>

Revision as of 08:36, 10 January 2012

Home < AHM2012-Slicer-Architecture

Modularization 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

Views and Layouts

  • Existing layouts
    • conventionalView
    • fourUpView
    • oneUp3DView
    • oneUpRedView
    • oneUpYellowView
    • oneUpGreenView
    • tabbed3DView
    • tabbedSliceView
    • dual3DView
    • triple3DView
    • conventionalWidescreenView
    • threeOverThreeView
    • fourOverFourView
    • compareView
  • Management of Layout and their associated View have been revisited.
  • Layout are new described using a simple XML description. See vtkMRMLLayoutLogic
const char* triple3DEndoscopyView =
  "<layout type=\"vertical\" split=\"true\" >"
  " <item>"
  "  <view class=\"vtkMRMLViewNode\">"
  "   <property name=\"viewlabel\" action=\"default\">1</property>"
  "  </view>"
  " </item>"
  " <item>"
  "  <layout type=\"horizontal\">"
  "   <item>"
  "    <view class=\"vtkMRMLViewNode\" type=\"secondary\">"
  "     <property name=\"viewlabel\" action=\"default\">2</property>"
  "    </view>"
  "   </item>"
  "   <item>"
  "    <view class=\"vtkMRMLViewNode\" type=\"endoscopy\">"
  "     <property name=\"viewlabel\" action=\"default\">3</property>"
  "    </view>"
  "   </item>"
  "  </layout>"
  " </item>"
  "</layout>";