MITK平台自带分割模块,其中涉及很多交互问题,比如监听鼠标事件,对轮廓的渲染等。对于接触MITK的新手来说,弄懂这个模块就能学到MITK中非常非常重要的一部分内容:状态机和交互。
mitk::ToolManager
MITK自带很多分割小工具,比如我们在插件中看到的AddContourTool, SubtractContourTool等等mitk::SegTool2D,这些都继承自mitk::Tool。这些2D tool,当然还有没提到的3D tool都由mitk::ToolManager来管理。ToolManager确保一次只有一个tool可以接收到MITK的事件。选择各种tool的GUI是QmitkToolSelectionBox。
mitk::ToolManager 内能够存储一组待分割数据(reference data),和一组分割数据(working data)。 mitk::tool类型的对象可以由ToolManager的方法GetToolById(int id)获得,而且也可以获得相关的reference data and working data. 用户可以通过两个工具(QmitkToolReferanceDataSelectionBox和