【问题标题】:VTK-Animation of several vtkPolyData-Objects几个 vtkPolyData-Objects 的 VTK-Animation
【发布时间】:2014-09-03 09:53:07
【问题描述】:

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

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

感谢您的帮助:)

【问题讨论】:

    标签: c++ vtk


    【解决方案1】:

    vtkProgrammablerFilter 上的 SetExecuteMethod 是传递给回调的参数(在示例中,传递给 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

    【讨论】:

      猜你喜欢
      • 2017-12-15
      • 2021-05-03
      • 2022-07-11
      • 2023-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多