zoukankan      html  css  js  c++  java
  • 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 传递

  • 相关阅读:
    PAT Basic 1077 互评成绩计算 (20 分)
    PAT Basic 1055 集体照 (25 分)
    PAT Basic 1059 C语言竞赛 (20 分)
    PAT Basic 1072 开学寄语 (20 分)
    PAT Basic 1049 数列的片段和 (20 分)
    蓝桥杯BASIC-13 数列排序
    蓝桥杯入门——3.序列求和
    蓝桥杯入门——2.圆的面积
    蓝桥杯入门——1.Fibonacci数列
    树的总结(遍历,BST,AVL原型,堆,练习题)
  • 原文地址:https://www.cnblogs.com/ankier/p/2732132.html
Copyright © 2011-2022 走看看