1 RenderWindow中的多个交互

时间:2016-03-17 11:54:26

标签: vtk

我有3个渲染器显示在1个渲染窗口中,现在我想在前2个渲染器中选择一个点。到目前为止,下面的代码仅适用于src_renderer。我应该怎么做,以便每个渲染器都有自己的交互?

谢谢.. enter image description here

vtkSmartPointer<vtkRenderWindow> renderWindow =
vtkSmartPointer<vtkRenderWindow>::New();
renderWindow->SetSize(1024, 320);
renderWindow->AddRenderer(src_renderer);
renderWindow->AddRenderer(tar_renderer);
renderWindow->AddRenderer(res_renderer);

// An interactor
vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New();
renderWindowInteractor->SetRenderWindow ( renderWindow );

// Set the custom stype to use for interaction.
vtkSmartPointer<MouseInteractorStyle2> src_style = vtkSmartPointer<MouseInteractorStyle2>::New();
vtkSmartPointer<MouseInteractorStyle2> tar_style = vtkSmartPointer<MouseInteractorStyle2>::New();
src_style->SetDefaultRenderer(src_renderer);
tar_style->SetDefaultRenderer(tar_renderer);

renderWindowInteractor->SetInteractorStyle( src_style );

2 个答案:

答案 0 :(得分:0)

您可以通过方法RenderWindow为每个渲染器定义单独的视口,在SetViewport内显示多个渲染器。这样,您就可以与每个渲染器进行交互。看看this示例,我认为它可能会对您有所帮助。

答案 1 :(得分:0)

您可以将观察者添加到交互器对象以切换交互器样式。见here