2014-09-03 26 views
0

我想用VTK(C++)製作一個動畫。我只有一個vtkPolyData - 動畫中每幀的對象,存儲爲std::vector< vtkSmartPointer<vtkPolyData> >。我想要的是一種方法,如play(),pause(),continue()stop()。所以我試圖根據http://www.vtk.org/Wiki/VTK/Examples/Cxx/Utilities/DataAnimationSubclass來實現這個類。 但我怎麼能:幾個vtkPolyData對象的VTK動畫

  • 啓動動畫:如何傳遞的第一幀到vtkProgrammableFilter
  • 繼續動畫:如何將下一幀傳遞到vtkProgrammableFilter

感謝您的幫助:)

回答

0

vtkProgrammablerFilterSetExecuteMethod是被傳遞給回調(在本例中,以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作爲最初的例子的情況下。