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 传递

转载于:https://www.cnblogs.com/ankier/archive/2012/10/20/2732132.html

Atamai 手术导航软件开发包相关推荐

  1. 芯片-模组-开发板-软件开发包SDK(Software Development Kit)的关系(软件开发人员必须了解的硬件知识)

    使用的芯片相同,但不同模组的Flash大小.天线的材质.模组尺寸是不同的.是的,芯片到模组的演变经历了"定制化.专用化"的过程.模组最终会嵌入到电视.电冰箱.空调等不同的产品中去, ...

  2. 车载信息服务软件开发包使用指南(20)

    车载信息服务软件开发包使用指南(20) 4.9 传感器 4.9.1 配置和获取传感器数据 4.9.2 使用传感器api启动自检并获取自检结果 4.9.3 控制传感器功能 4.9 传感器 配置和获取传感 ...

  3. 高通导航器软件开发包使用指南(13)

    高通导航器软件开发包使用指南(13) 8.27 rc_param 8.28输入_内部参数 8.29校准光学流量_校准偏航 8.30用户输入句柄参数 8.27 rc_param max_angle_mo ...

  4. 公文档案ocr识别软件开发包

    公文档案ocr识别软件开发包 转载▼     公文OCR识别开发包软件简介  公文OCR识别开发包软件V12.0是一种光学字符识别(OCR)软件开发包(OCR SDK):OCR SDK12.0为软件开 ...

  5. 车载信息服务软件开发包使用指南(1)

    车载信息服务软件开发包使用指南(1) 文章目录 车载信息服务软件开发包使用指南(1) 一.介绍 1.目标 2.范围 二.构建基于TelSDK的应用程序 2.1.可以访问[ChipCode](https ...

  6. 车载信息服务软件开发包使用指南(19)

    车载信息服务软件开发包使用指南(19) 4.8 热 4.8.1 获得热区和冷却装置 4.8.2 获取热自动关闭模式的更新 4.8.3 获取/设置自动关闭模式 4.8 热 获取热区和冷却设备 获取热自动 ...

  7. 高通导航器软件开发包使用指南(17)

    高通导航器软件开发包使用指南(17) 11 附加的功能 11.1 螺旋桨障碍检测 11.1.1 螺旋桨起转期间 11.1.2 飞行中 11.2 低电压警告和迫降 11.3 GPS 模式下的 Geote ...

  8. ACR1251U-M1蓝牙NFC读卡器软件开发包包含Java/.NET/C++/Delphi代码案例

    ACR1251U-M1蓝牙NFC读卡器支持ISO 14443 A类和B类卡.MF系列卡.FeliCa卡.全部四种NFC标签,以及其它具有NFC功能的设备.另外它支持现场固件升级,还提供一个SAM(安全 ...

  9. EPIC公司免费放出虚幻unreal3 游戏软件开发包 Unreal 3 Development Kit(UDK)2009

    虚幻引擎3可谓近年来最流行的游戏引擎,基于它开发的大作无数,除<虚幻竞技场3>外,还包括<战争机器>.<彩虹六号维加斯>.<镜之边缘>.<荣誉勋章 ...

最新文章

  1. Membership角色与权限管理
  2. Maven编译jar出现:无法确定 T 的类型参数的异常的原因和处理方案
  3. CentOS iso镜像文件做本地源
  4. html重绘text,使用DrawText重绘C++
  5. 一篇文章带你吃透 hashmap(面试指南升级版)
  6. jQuery EasyUI使用教程之创建展开行详细编辑表单的CRUD应用
  7. 华为电脑笔记本_华为笔记本电脑屏幕质量竟如此糟糕!
  8. linux 命令 —— pwd
  9. Android富文本编辑器
  10. 二层交换机与路由器的区别
  11. Python 小练习_battleship
  12. 【DVE命令报错,yum本地源配置】error while loading shared libraries:libtermcap.so.2
  13. NDK Caused by: java.lang.UnsatisfiedLinkError:
  14. Java实现打印功能
  15. 佟丽娅现身活动火力全开 黑色裹身裙时髦大气,未修图也美的惊艳
  16. 中文文本关键词抽取的三种方法(TF-IDF、TextRank、word2vec)
  17. ESP8266进阶篇
  18. 全链路压测需要如何开展?
  19. FMDB-FMDatabaseQueue
  20. 深度学习 之一 【神经网络介绍】

热门文章

  1. mvc创建连接mysql_五、 创建连接串连接本地数据库(ASP.NET MVC5 系列)
  2. linux vim命令_提升生产力的20大Linux Vim命令
  3. AngularJS JetBrains WebStorm简介
  4. proguard 反编译_Android Studio项目结构,编译器,ProGuard
  5. Android Studio 编译失败 Could not read entry ':app:processDebugManifest' from cache taskArtifacts.bin
  6. 扒一扒AI的那些事儿
  7. 开课吧:分享C++代码的整洁之道!
  8. Nest.js 管道
  9. python之判断一个值是不是可以被调用
  10. Spring定时器corn表达式详解