Loop e encadeamento de eventos vtkRenderWindowInteractor

O que estou tentando fazer em um aplicativo usando vtk para interagir e renderizar é ter duas partes diferentes: 1 - Um thread com Rendering e vtkRenderWindowInteractor para interação com o mouse. 2 - Um thread que chama algumas funções modificadoras dos dados definidos no Thread do VTK.

Pelo que obtive até agora em minha pesquisa, parece bastante complicado e o VTK não é seguro para threads. Agora eu me deparei com este post (http://vtk.1045678.n5.nabble.com/Multi-threaded-VTK-td4514620.html) na lista de correspondência do VTK que sugere o uso de sinais e slots de Qt. Uma primeira pergunta seria: essa ainda é a boa solução?

Uma segunda pergunta que ainda está ligada a isso e a um problema que eu já encontrei antes é que ostart()dovtkRenderWindowInteractor está bloqueando. E até agora, não importa o que eu tentei, todas as modificações feitas pelas funções de rotação, translação ou dimensionamento não serão feitas desde que o método start () seja chamado (porque eu insiro um loop de renderização). Minha pergunta seria: Se eu usar Qt Signals and Slots, isso me impedirá de resolver esse problema?

Aqui está o código básico que eu tenho até agora para renderizar e lançar o vtkRenderWindowInteractor:

std::string filename = BUNNY;
// Read all the data from the file
vtkSmartPointer<vtkXMLPolyDataReader> reader =vtkSmartPointer<vtkXMLPolyDataReader>::New();
reader->SetFileName(filename.c_str());
reader->Update();
inputPolyData = reader->GetOutput();

cout << "File Found and Loaded : " << filename << endl ;

vtkSmartPointer<vtkTransform> translation = vtkSmartPointer<vtkTransform>::New();
translation->Translate(0.3, -0.05, 0);
transformFilter = vtkSmartPointer<vtkTransformPolyDataFilter>::New();
//transformFilter->SetInputConnection(reader->GetOutputPort());
transformFilter->SetInputData(inputPolyData);
transformFilter->SetTransform(translation);
//transformFilter->Update();

vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();
mapper->SetInputConnection(transformFilter->GetOutputPort());

mainActor = vtkSmartPointer<vtkActor>::New();
mainActor->SetMapper(mapper);

ren->AddActor(mainActor);

vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
iren->SetRenderWindow(win);
vtkInteractorStyleMultiTouchCamera *style =
vtkInteractorStyleMultiTouchCamera::New();
iren->SetInteractorStyle(style);

//Start the event loop
iren->Initialize();
iren->Start();

//defineClipping();
win->PolygonSmoothingOn();
win->Render();
win->Start();

ctxView->Render();

Para que eu pudesse resumir, perguntando: o Qt me permitirá chamar funções de transformação enquanto o segmento de renderização e interação do vtk estiver em execução com o bloqueiostart()&nbsp;método devtkRenderWindowInteractor? Caso contrário, devo alterar meu código e pensar em diferentes possibilidades de interação com meus objetos no VTK?