几个vtkPolyData-Objects的VTK-Animation

时间:2014-09-03 09:53:07

标签: c++ vtk

我想用VTK(C ++)制作动画。我只有一个vtkPolyData - 动画中每个帧的对象,存储为std::vector< vtkSmartPointer<vtkPolyData> >。我想要的是一个包含play()pause()continue()stop()等方法的课程。所以我试图根据http://www.vtk.org/Wiki/VTK/Examples/Cxx/Utilities/DataAnimationSubclass实现该类。 但我怎么能:

  • 启动动画:如何将第一帧传递到vtkProgrammableFilter
  • 继续动画:如何将下一帧传递到vtkProgrammableFilter

感谢您的帮助:)

1 个答案:

答案 0 :(得分: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