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