• Atamai 手术导航软件开发包


    Atamai是完全基于VTK及脚本语言Python,面向计算机辅助医疗特别是手术导航的应用系统的中间平台。Atamai的所处在医疗系统框架的位置如下:

    Atamai类层次结构如下:

    Atamai以事件为主线,以事件为驱动,EventHandler是所有类的根类。其三个核心类是:ActorFactory、RenderPane、PaneFrame,它们与VTK对应的关系如下:

    Atamai架构主要类介绍:

    (1 )EventHandler 解析
    主要功能,一是定义事件Event类及EventHandler类。定义EventHandler类的相关常量EventModifier /EventType;二定义EventHandler类的事件绑定BindEvent()方法 ,将事件eventDescriptor解析成Type-Modifier-Keysym与事件处理函数func做成键值对,记录在其self.__EventDict中;三是事件处理HandleEvent(),接受一个Event对象,解析成 Type-Modifier-Keysym,然后从 __EventDict中找到其对应的回调函数,并调用之。定义Event是利用了 Python 语言对象动态属性的概念。以Type-Modifier-Keysym 层次化记录事件,加速事件查找过程。

    (2 )ActorFactory解析
    ActorFactory代表VTK的Pipeline结构中从 vtkSource到vtkActor 整个过程,ActorFactory与vtkActor形成一对多关系,即一个ActorFactory中可以有多个vtkActor 与之对应。实现一个ActorFactory可显示在多个RenderPane 当中的做法为通过AddToRender()函数为每个RenderPane 创建一套新的actor副本(通过该方法_MakeActors来创建新的actors副本)。如果更新了ActorFactory的actor信息,通过设置ActorFactory的Modified()方法来通知其Render()方法,需要重新绘制。

    (3 )RenderPane 解析
    RenderPane 在Atamai 中处于核心地位,它与vtkRenderer 一一对应。它的主要功能是RenderPane 主要功能有:一是处理大部分事件,通过 BindModeToButton() ,HandeleEvent(),Do......()等函数;二是模拟 Cursor :ConnectCursor() ,HandeleEvent(),DosmartPick() 等函数;拾取处理:DosmartPick(), DoPickActor(), DoActorInteraction()等函数。

    (4 )PaneFrame 解析
    PaneFrame 是事件中枢,PaneFrame 与vtkRenderWindow 一一对应。同时包括了vtkRenderWindowInteractor。PaneFrame 的主要功能有:VTK事件获取:通过_BindInteractor() ,_On…...(),HandleEvent() 等函数;GUI 事件获取,与具体GUI 相关(wxWindow/tk)。它的功能是将从 vtk 和GUI 获取的事件翻译成为 Atamin 定义的Event 类,向当前 RenderPane 传递

  • 相关阅读:
    【BZOJ2599】[IOI2011]Race 树的点分治
    【BZOJ1787】[Ahoi2008]Meet 紧急集合 LCA
    【BZOJ1834】[ZJOI2010]network 网络扩容 最大流+最小费用流
    【BZOJ3012】[Usaco2012 Dec]First! Trie树+拓补排序
    【BZOJ2743】[HEOI2012]采花 离线+树状数组
    【BZOJ2946】[Poi2000]公共串 后缀数组+二分
    【BZOJ2157】旅游 树链剖分+线段树
    【BZOJ2661】[BeiJing wc2012]连连看 最大费用流
    【BZOJ1801】[Ahoi2009]chess 中国象棋 DP
    【BZOJ4236】JOIOJI STL
  • 原文地址:https://www.cnblogs.com/ankier/p/2732132.html
Copyright © 2020-2023  润新知