常用的VTK工具/控件(VTK Widget)

转自::https://blog.csdn.net/Jane_yuhui/article/details/52119633

交互部件

  VTK的交互除了提供各种交互样式,还提供了功能更为强大的,可以“看得见”的交互部件,即Widget。VTK的Widget类主要包括vtk3DWidget和vtkAbstractWidget两个父类,它们都派生自vtkInteractorObserver。其中vtk3DWidget主要在三维渲染场景中生成一个可以用于控制数据的可视化实体,比如点、曲线、平面、球体等;后者是VTK里实现“交互/表达实体(Interaction/Representation)”设计的所有Widget的基类。
  vtkAbstractWidget作为基类,只定义一些公共的API以及实现了“交互/表达实体”分离的设计机制,其中,把从vtkRenderWindowInteractor路由过来的信息交给vtkAbstractWidget的“交互”部分处理,而Widget的“表达实体”则对应一个vtkPro对象(或者是vtkWidgetRepresenttation的子类)。
  此外,vtkAbstractWidget类提供了访问vtkWidgetEventTranslator对象的函数,即GetEventTranslator(),该对象的作用可以将VTK事件映射为Widget事件(定义于vtkWidgetEvent.h文件中),通过vtkWidgetEventTranslator类,用户可以定制符合自己使用习惯的控制Widget的事件绑定。利用类vtkWidgetCallbackMapper将相应的Widget事件与各个受保护的静态操作函数关联起来。

vtkWidgetEventTranslator* eventTranslator =  widget->GetEventTranslator();
eventTranslator->SetTranslation(vtkCommand::RightButtonPressEvent, vtkWidgetEvent::Select);
eventTranslator->SetTranslation(vtkCommand::RightButtonReleaseEvent, vtkWidgetEvent::EndSelect);
  •  

创建Widget交互步骤

Widget的创建以及使用基本都是类似的,一般步骤如下。

  1. 实例化Widget
  2. 指定渲染窗口交互器。Widget可以通过它监听用户事件。
  3. 必要时使用观察者/命令模式创建回调函数。
  4. 创建合适的几何表达实体,并用SetRepresentation()函数把它与Widget关联起来,或者使用Widget默认的几何表达实体。
  5. 最后必须激活Widget,使其在渲染场景中显示。

 

Family of VTK Widgets

常用的VTK工具/控件(VTK Widget)_第1张图片

3D Slider widget

常用的VTK工具/控件(VTK Widget)_第2张图片

2D Slider widget

常用的VTK工具/控件(VTK Widget)_第3张图片

Box widget

常用的VTK工具/控件(VTK Widget)_第4张图片

Line widget

常用的VTK工具/控件(VTK Widget)_第5张图片

Implicit plane widget

常用的VTK工具/控件(VTK Widget)_第6张图片

Plane widget

常用的VTK工具/控件(VTK Widget)_第7张图片

Image plane widget

常用的VTK工具/控件(VTK Widget)_第8张图片

Point (or handle) widget

常用的VTK工具/控件(VTK Widget)_第9张图片

Sphere widget

Scalar bar widget

常用的VTK工具/控件(VTK Widget)_第10张图片

Spline widget

常用的VTK工具/控件(VTK Widget)_第11张图片

Checkerboard widget

常用的VTK工具/控件(VTK Widget)_第12张图片

Rectilinear wipe widget

常用的VTK工具/控件(VTK Widget)_第13张图片

Text widget

常用的VTK工具/控件(VTK Widget)_第14张图片

Camera widget

常用的VTK工具/控件(VTK Widget)_第15张图片

Playback widget

常用的VTK工具/控件(VTK Widget)_第16张图片

Distance widget

常用的VTK工具/控件(VTK Widget)_第17张图片

Angle widget

常用的VTK工具/控件(VTK Widget)_第18张图片

BiDimensional widget

Affine widget

常用的VTK工具/控件(VTK Widget)_第19张图片

Contour widget

Tracing contours on polygonal surfaces

常用的VTK工具/控件(VTK Widget)_第20张图片

Live wiring with the contour widget

常用的VTK工具/控件(VTK Widget)_第21张图片

Logo widget

常用的VTK工具/控件(VTK Widget)_第22张图片

Seed widget

常用的VTK工具/控件(VTK Widget)_第23张图片

Caption widget

Balloon widget

常用的VTK工具/控件(VTK Widget)_第24张图片

Tensor probe widget

Parallelopiped widget

常用的VTK工具/控件(VTK Widget)_第25张图片

Orientation marker widget

XYPlot widget

Compass widget

小前言

vtkInteractorStyleImage 预设了针对二维图像的交互功能:

Ctrl + 鼠标左键 - 图像的旋转

Shift + 鼠标左键 - 图像的平移

鼠标左键 长按 + 移动 - 图像窗宽和窗位的调节

R - 图像的窗宽和窗位的重置

鼠标滚轮 - 图像的缩放

等等

你可能感兴趣的:(VTK)