文章目录
最近在使用slicer,顺便把slicer VR和slice切片窗口创建及管理的流程总结了一下,这里给出相关类的关系图(请忽略组合&聚合关系)。
- slicer的核心是vtkMRMLScene,所有数据MRMLNode都由其管理。
- 每个图像窗口对应一个vtkMRMLAbstractViewNode,常用的是vtkMRMLSliceNode切面窗口,vtkMRMLViewNode VR窗口。
- 窗口由qMRMLLayoutManager管理(也可以不使用其管理,而手动创建node及其窗口)。
- vtkMRMLLayoutLogic 负责根据窗口layout xml配置创建vtkMRMLAbstractViewNode。
- qMRMLLayoutViewFactory观察Scene变化事件,为vtkMRMLAbstractViewNode创建对应的qMRMLWidget窗口。
- 每个图像Widget窗口通常包括 ControllerBar工具栏,vtkMRMLSliceLogic窗口控制类和ctkVTKAbstractView(内部QVTKOpenGLNativeWidget)图像显示类。