2015-11-03 5 views
1

Существует приложение для моделирования, которое выводит некоторые данные точек vtk каждый тайм-сигнал, и я хотел бы отображать эти данные на каждый временной промежуток, а также сохранять его интерактивным.VTK: обновлять точки данных в renderWindow при каждом симуляторе timestep

Я создал трубопровод, который принимает точки моделирования (points->SetInputData(data)) в качестве ввода и применяет к нему набор фильтров. Ради тестирования я создал простой таймер и добавил наблюдателя, реагирующего на события таймера:

renderWindowInteractor->AddObserver(vtkCommand::TimerEvent, cb); 
    int timerId = renderWindowInteractor->CreateRepeatingTimer(1000); 

Это работает точно так же, как я хочу. Осталось только добавить пользовательское событие. В принципе, я хочу вызвать какое-то событие в конце каждого временного времени моделирования и обновить модель в окне рендеринга. Я видел некоторые примеры VTK, но я до сих пор не понимаю, как это сделать для моего случая. Может ли кто-нибудь помочь?

ответ

0

Если вы подключаете контур визуализации с помощью SetInputConnection, подключенного к фильтру, все, что вам нужно сделать, это периодически вызывать Render() в окне рендеринга.

+0

что с помощью метода 'setinputdata' –

+0

Это может быть сделано для работы; в зависимости от того, какие именно обновления вам, возможно, потребуется вызвать 'poly-> Modified()' для каждого обновления, чтобы фильтры/mappers обновлялись. – mirni