09

VTK6 引入了许多不兼容的变。其中之一是删除vtkDataObject中所有有关管道的方法。下面列出来的就是其中的一些方法:

  • ShouldIReleaseData()
  • SetReleaseDataFlag()
  • GetReleaseDataFlag()
  • ReleaseDataFlagToOn()
  • ReleaseDataFlagToOff()

所有上面的方法(排除ShouldIReleaseData)都被迁移到vtkDemandDrivenPipeline中,任何先前的代码都可以使用vtkDemandDrivenPipeline的方法来替换。ShouldIReleaseData是个方便的方法被管道执行过程使用,现在变成私有的内部方法。

vtkDataObject* dobj = anAlgorithm->GetOutput();
dobj->SetReleaseDataFlag(1);

替换成:

vtkDemandDrivenPipeline* executive =
        vtkDemandDrivenPipeline::SafeDownCast(
             anAlgorithm->GetExecutive());
if (executive)
  {
  executive->SetReleaseDataFlag(0, 1); // where 0 is the port index
  }
原文地址:https://www.cnblogs.com/ankier/p/3168746.html