Advertisement

VTK修炼第81课:VTK开发基础_vtkObject类深入研究

阅读量:

1.前言

相比与vtkObjectBase我们更多地接触的是vtkObject类。
由于vtkObjectBase类主要实现了引用计数这一功能因此其子类 vtkObject继承了这一特性。
此外与此同时在VTK中广泛采用的观察者/命令模式使得消息响应的处理更加便捷例如可以方便地处理鼠标消息键盘消息以及进度条消息等VTK的Widget组件大量采用了这一机制来进行消息响应的处理。

2.观察者/命令模式的工作流程

vtkObject通过实现vtkSubjectHelper对象来管理watchers(watchers)。该类内部维护一个watchers的链表结构(list),其中每个watcher由 vtkObserver类的对象构成(object)。每个watcher包含一个watch callback事件的指针(ptr)、一个消息标识符(id)以及表示事件处理优先级的一个变量(variable)。直观上讲:每当watcher接收到一条事件时(例如用户按下鼠标引发的事件),就会触发watch callback事件中预先设置好的回调函数(callback function)。

复制代码
>       1. unsigned long AddObserver(unsigned long event, vtkCommand* , float priority = 0.0f)

全部评论 (0)

还没有任何评论哟~