vtk <vtkRenderWindowInteractor>交互器

声明一个交互器

vtkSmartPointer<vtkRenderWindowInteractor>interactor = vtkSmartPointer<vtkRenderWindowInteractor>::New();

设置交互器的交互风格

interactor->SetInteractorStyle(); //设置交互的风格。

常用的两个交互风格

vtkInteractorStyleTrackballCamera**/vtkInteractorStyleImage**

interactor->Initialize(); //初始化

interactor->Start(); //开始交互

功能性:

interactor->GetEventPosition(); //获取事件发生时,displaywindow的坐标
添加观察者:------绑定一个监听事件(如果你不想重写style的话)

interactor->AddObserver(); //添加观察者,这个观察者是 vtkcommand的智能指针,他要带一个特定格式的功能函数

过程是:上一篇文章有介绍到

1)功能事件声明 void function1(vtkObject *caller,unsinged long id,void*,void *)

2)声明callbackcommand

3)为callbackcommand添加fucntion1

4)绑定callbackcommand到interactor()

获取触发的场景(interactor是在场景下进行的)

interactor->GetRenderWindow(); //用在那个渲染窗口上。这个得指定

其他操作:

1,从功能函数获取交互器指针。(这里safedowncast返回的不知智能指针,是原始指针)

vtkRenderWindowInteractor * interactor =vtkRenderWindowInteractor ::SafeDownCast (caller

2,

交互器重载的标准流程和格式

复制代码
class ImagePixelPickerStyle : public vtkInteractorStyleImage  //继承
{
public:
	static ImagePixelPickerStyle* New();   //必须有
	vtkTypeMacro(ImagePixelPickerStyle, vtkInteractorStyleImage);   //必须有

	// 设置需要拾取的图像数据
	void SetImageData(vtkImageData* data) {}

	// 重写左键点击事件
    virtual void OnLeftButtonDown() override {}

private:
	vtkImageData* ImageData = nullptr;    // 图像数据
	int ImageDims[3] = { 0, 0, 0 };         // 图像维度(宽、高、深度)
	int NumComponents = 0;                // 像素通道数(1=灰度,3=RGB)
};

vtkStandardNewMacro(ImagePixelPickerStyle);   //必须添加上
相关推荐
Dave.B2 天前
vtkPolyDataConnectivityFilter 实用指南
算法·vtk
Dave.B8 天前
【VTK核心类详解:vtkClipPolyData 多边形数据智能裁剪工具】
vtk
Dave.B14 天前
:vtkBooleanOperationPolyDataFilter 布尔运算全解析
算法·vtk
明洞日记24 天前
【VTK手册036】网格拓扑简化工具:vtkCleanPolyData 使用指南
c++·图像处理·ai·vtk·图形渲染
明洞日记1 个月前
【VTK手册034】 vtkGeometryFilter 深度解析:高性能几何提取与转换专家
c++·图像处理·算法·ai·vtk·图形渲染
BoBoZz191 个月前
BillboardTextActor3D 3D字体随镜头旋转
python·vtk·图形渲染·图形处理
BoBoZz191 个月前
Tutorial_Step6 vtkBoxWidget的交互与控制
python·vtk·图形渲染·图形处理
BoBoZz191 个月前
AnatomicalOrientation 3D人体模型及三个人体标准解剖学平面展示
python·vtk·图形渲染·图形处理
BoBoZz191 个月前
TextureCutQuadric 利用3D隐式函数(Quadrics)来生成2D纹理坐标
python·vtk·图形渲染·图形处理