天天看点

VTK笔记-交互器-vtkInteractorObserver类vtkInteractorObserver参考资料

vtkInteractorObserver

  vtkInteractorObserver 用于观察vtkRenderWindowInteractior调用的事件处理类的抽象超类;

  vtkInteractorObserver是一个抽象的超类,用于观察vtkRenderWindowInteractior调用事件,派生出各种交互器子类。这些子类通常是3D小部件之类的东西;与场景中的角色交互的对象,或以交互方式探测场景以获取信息的对象。

  vtkInteractorObserver定义方法SetInteractior(),并启用和禁用vtkInteractorObserver对事件的处理。使用方法EnabledOn()或SetEnabled(1)打开Interactior观察器,使用方法EnabledOff()或SetEnabled(0)关闭Interactior。默认初始值为0。

  为了支持对象的交互操作,vtkInteractorObserver 类和其子类调用事件StartInteractionEvent、InteractionEvent和EndInteractionEvent。当vtkInteractorObserver进入需要快速响应的状态(鼠标移动等)时,将调用这些事件。这些事件可用于设置所需的更新帧速率(StartInteractionEvent)、对数据进行操作或更新管道(InteractionEvent),并将所需的帧速率设置回正常值(EndInteractionEvent)。另外两个事件EnableEvent和DisableEvent在启用或禁用interactior观察器时被调用。

  vtkInteractorObserver 派生出六个不同的子类处理不同场景;分别有vtk3DWidget、vtkAbstractWidget、vtkInteractorEventRecorder、vtkInteractorStyle、vtkOrientationMarkerWidget 和vtkXYPlotWidget;

VTK笔记-交互器-vtkInteractorObserver类vtkInteractorObserver参考资料

接口

控制开启

  用于响应交互的开关状态;

virtual void SetEnabled(int) {}
int GetEnabled() { return this->Enabled; }
void EnabledOn() { this->SetEnabled(1); }
void EnabledOff() { this->SetEnabled(0); }
void On() { this->SetEnabled(1); }
void Off() { this->SetEnabled(0); }
           

设置交互器

virtual void SetInteractor(vtkRenderWindowInteractor* iren);
vtkGetObjectMacro(Interactor, vtkRenderWindowInteractor);
           

参考资料

1.VTK修炼之道73:交互部件_Widget应用综述

继续阅读