2014-09-03 1 views
0

Я хочу сделать анимацию с VTK (C++). Все у меня есть один vtkPolyData -Объекты для каждого кадра в анимации, хранятся как std::vector< vtkSmartPointer<vtkPolyData> >. Я хочу класс с такими методами, как play(), pause(), continue() и stop(). Поэтому я пытаюсь реализовать этот класс в соответствии с http://www.vtk.org/Wiki/VTK/Examples/Cxx/Utilities/DataAnimationSubclass. Но как я могу:VTK-анимация нескольких объектов vtkPolyData

  • начала анимации: как пройти первый кадр в vtkProgrammableFilter?
  • продолжение анимации: как передать следующий кадр в vtkProgrammableFilter?

Спасибо за помощь :)

ответ

0

SetExecuteMethod на vtkProgrammablerFilter аргумент, который получает передается функции обратного вызова (в данном примере, к AdjustPoints). Вы можете передать любую произвольную структуру данных.

class MyMetaData 
{ 
std::vector<vtkSmartPointer<vtkPolyData> > PolyDatas; 
vtkWeakPointer<vtkProgrammableFilter> Self 
}; 

.... 

// fill be an instance with defaults. 
MyMetaData instance; 
instance.Self = programmableFilter.GetPointer(); 
instance.PolyDatas = ... 

// Pass as argument. 
programmableFilter->SetExecuteMethod(MyCallback, &instance); 

.... 

Не забудьте обновить MyCallback ожидать указатель MyMetaData, а vtkProgrammableFilter как и в случае исходного примера.

 Смежные вопросы

  • Нет связанных вопросов^_^