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-Objects 애니메이션 -

    애니메이션을 시작
  • : 어떻게 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); 

.... 

는 MyMetaData의 포인터를 기대하는 MyCallback를 업데이트하는 것을 잊지, 대신 원래 예제의 경우와 같이 vtkProgrammableFilter하지 마십시오.