VTK6 引入了许多不兼容的变。其中之一是删除vtkDataObject中所有有关管道的方法。下面列出来的就是其中的一些方法:
- ShouldIReleaseData()
- SetReleaseDataFlag()
- GetReleaseDataFlag()
- ReleaseDataFlagToOn()
- ReleaseDataFlagToOff()
所有上面的方法(排除ShouldIReleaseData)都被迁移到vtkDemandDrivenPipeline中,任何先前的代码都可以使用vtkDemandDrivenPipeline的方法来替换。ShouldIReleaseData是个方便的方法被管道执行过程使用,现在变成私有的内部方法。
vtkDataObject* dobj = anAlgorithm->GetOutput();
dobj->SetReleaseDataFlag();
替换成:
vtkDemandDrivenPipeline* executive =
vtkDemandDrivenPipeline::SafeDownCast(
anAlgorithm->GetExecutive());
if (executive)
{
executive->SetReleaseDataFlag(, ); // where 0 is the port index
}