vtkCommand类一个事件类,任何一个vtkObject子类实例都可以定义事件,当触发事件时运行vtkCommand中Execute()定义的内容。类似c#、java中事件委托的使用。配合observer使用。它的子类主要有: vtkOldStyleCallbackCommand, vtkEventForwarderCommand, vtkCallbackCommand, and vtkTclCommand
vtk框架中预定义事件很多,比如:KeyPressEvent 点击事件,PickEvent 、StartPickEvent 等选择事件,RenderEvent 渲染事件,InteractionEvent 、EndInteractionEvent 交互类事件,PlaceWidgetEvent widget放置事件,比如用在平面、立体框等组件的事件。
LeftButtonDoubleClickEvent | |
MiddleButtonDoubleClickEvent | |
RightButtonDoubleClickEvent | |
MouseWheelLeftEvent | |
MouseWheelRightEvent |
鼠标点击事件等。例子在vtkobject中。
说明一些主要方法:
vtkBaseTypeMacro() 事件宏,便于追踪父子关系。
Execute()执行函数,最重要的函数,里面写事件触发后具体要执行的内容。
SetPassiveObserver() 设置事件为惰性被动事件,不改变系统状态。
UnRegister ()减少引用计数,继承自父类vtkobjectbase