启用或禁用按键事件的平移,旋转和缩放

时间:2017-10-04 19:16:46

标签: c++ vtk

我正在尝试设置vtkInteractorStyle类 (vtkInteractorStyleTrackballCamera)处理事件以禁用平移,缩放或 回转。根据用户按下的键启用或禁用这些功能中的每一个。 我认为最常见的方法是生成一个事件处理程序 每个不同的键的功能,并在其内部设置一些标志 使用类似的函数将类vtkRenderWindowInteractor设置为false或true setPan(false)或setPan(true)等。

但是你可能知道vtkRenderWindowInteractor类中没有这样的函数或方法。

我的方法是否正确?有人有更好的主意吗?

1 个答案:

答案 0 :(得分:1)

确实没有这样的标志可以关闭它,如果不修改vtk的代码,我认为没有别的办法(参见vtkInteractorStyleTrackballCamera.cxx / vtkInteractorStyle.cxx)。我想要的方法是创建一个继承自vtkInteractorStyleTrackballCamera的新类,向它添加三个布尔标志(+ setters)并覆盖StartRotate,StartZoom和StartPan方法,例如:

void vtkMyNewStyle::StartZoom()
{
    if (zoomIsEnabled) // your flag set by setZoom(bool)
        Superclass::StartZoom();
}