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 传递
转载于:https://www.cnblogs.com/ankier/archive/2012/10/20/2732132.html
Atamai 手术导航软件开发包相关推荐
- 芯片-模组-开发板-软件开发包SDK(Software Development Kit)的关系(软件开发人员必须了解的硬件知识)
使用的芯片相同,但不同模组的Flash大小.天线的材质.模组尺寸是不同的.是的,芯片到模组的演变经历了"定制化.专用化"的过程.模组最终会嵌入到电视.电冰箱.空调等不同的产品中去, ...
- 车载信息服务软件开发包使用指南(20)
车载信息服务软件开发包使用指南(20) 4.9 传感器 4.9.1 配置和获取传感器数据 4.9.2 使用传感器api启动自检并获取自检结果 4.9.3 控制传感器功能 4.9 传感器 配置和获取传感 ...
- 高通导航器软件开发包使用指南(13)
高通导航器软件开发包使用指南(13) 8.27 rc_param 8.28输入_内部参数 8.29校准光学流量_校准偏航 8.30用户输入句柄参数 8.27 rc_param max_angle_mo ...
- 公文档案ocr识别软件开发包
公文档案ocr识别软件开发包 转载▼ 公文OCR识别开发包软件简介 公文OCR识别开发包软件V12.0是一种光学字符识别(OCR)软件开发包(OCR SDK):OCR SDK12.0为软件开 ...
- 车载信息服务软件开发包使用指南(1)
车载信息服务软件开发包使用指南(1) 文章目录 车载信息服务软件开发包使用指南(1) 一.介绍 1.目标 2.范围 二.构建基于TelSDK的应用程序 2.1.可以访问[ChipCode](https ...
- 车载信息服务软件开发包使用指南(19)
车载信息服务软件开发包使用指南(19) 4.8 热 4.8.1 获得热区和冷却装置 4.8.2 获取热自动关闭模式的更新 4.8.3 获取/设置自动关闭模式 4.8 热 获取热区和冷却设备 获取热自动 ...
- 高通导航器软件开发包使用指南(17)
高通导航器软件开发包使用指南(17) 11 附加的功能 11.1 螺旋桨障碍检测 11.1.1 螺旋桨起转期间 11.1.2 飞行中 11.2 低电压警告和迫降 11.3 GPS 模式下的 Geote ...
- ACR1251U-M1蓝牙NFC读卡器软件开发包包含Java/.NET/C++/Delphi代码案例
ACR1251U-M1蓝牙NFC读卡器支持ISO 14443 A类和B类卡.MF系列卡.FeliCa卡.全部四种NFC标签,以及其它具有NFC功能的设备.另外它支持现场固件升级,还提供一个SAM(安全 ...
- EPIC公司免费放出虚幻unreal3 游戏软件开发包 Unreal 3 Development Kit(UDK)2009
虚幻引擎3可谓近年来最流行的游戏引擎,基于它开发的大作无数,除<虚幻竞技场3>外,还包括<战争机器>.<彩虹六号维加斯>.<镜之边缘>.<荣誉勋章 ...
最新文章
- Membership角色与权限管理
- Maven编译jar出现:无法确定 T 的类型参数的异常的原因和处理方案
- CentOS iso镜像文件做本地源
- html重绘text,使用DrawText重绘C++
- 一篇文章带你吃透 hashmap(面试指南升级版)
- jQuery EasyUI使用教程之创建展开行详细编辑表单的CRUD应用
- 华为电脑笔记本_华为笔记本电脑屏幕质量竟如此糟糕!
- linux 命令 —— pwd
- Android富文本编辑器
- 二层交换机与路由器的区别
- Python 小练习_battleship
- 【DVE命令报错,yum本地源配置】error while loading shared libraries:libtermcap.so.2
- NDK Caused by: java.lang.UnsatisfiedLinkError:
- Java实现打印功能
- 佟丽娅现身活动火力全开 黑色裹身裙时髦大气,未修图也美的惊艳
- 中文文本关键词抽取的三种方法(TF-IDF、TextRank、word2vec)
- ESP8266进阶篇
- 全链路压测需要如何开展?
- FMDB-FMDatabaseQueue
- 深度学习 之一 【神经网络介绍】
热门文章
- mvc创建连接mysql_五、 创建连接串连接本地数据库(ASP.NET MVC5 系列)
- linux vim命令_提升生产力的20大Linux Vim命令
- AngularJS JetBrains WebStorm简介
- proguard 反编译_Android Studio项目结构,编译器,ProGuard
- Android Studio 编译失败 Could not read entry ':app:processDebugManifest' from cache taskArtifacts.bin
- 扒一扒AI的那些事儿
- 开课吧:分享C++代码的整洁之道!
- Nest.js 管道
- python之判断一个值是不是可以被调用
- Spring定时器corn表达式详解