[vtk-developers] RELEASE_DATA doesn't?

David E DeMarle dave.demarle at kitware.com
Fri Apr 1 17:10:48 EDT 2011

Sorry for letting this email slip through Andy. And Jean I'm even more
sorry for letting your even older email slip through ->

This problem looks similar to one I was just looking at regarding the
extent translator where upfront extent translator changes are
overwritten at the first pipeline update.

It appears that if you call UpdateInformation on the pipeline before
making your change, your change will take effect from then on. For the
extent translator problem, besides working outside the pipeline as
above, you can do the same thing by making your change in the
algorithm's RequestInformation method.

David E DeMarle
Kitware, Inc.
R&D Engineer
28 Corporate Drive
Clifton Park, NY 12065-8662
Phone: 518-371-3971 x109

On Fri, Jan 14, 2011 at 1:54 PM, Wilson, Andrew T <atwilso at sandia.gov> wrote:
> Summary: the vtkDemandDrivenPipeline::RELEASE_DATA() key is always removed
> the first time a pipeline executes.
> I’m working on a pipeline that needs to use RELEASE_DATA almost everywhere.
>  If I use vtkDataObject::SetGlobalReleaseDataFlag() then ReleaseData() gets
> called.  If I use vtkAlgorithm::SetReleaseDataFlag then ReleaseData() never
> gets called.
> I’ve tracked this down to the following chain of events during pipeline
> execution:
>   - vtkDemandDrivenPipeline::ExecuteDataObject calls CheckDataObject to make
> sure the output object is there.
>   - CheckDataObject notices that there is no data object yet, creates one,
> and calls vtkExecutive::SetOutputData().
>   - SetOutputData puts in place the new output object and calls
> ResetPipelineInformation().
>   - vtkDemandDrivenPipeline::ResetPipelineInformation removes the
> The net result is that calls to SetReleaseDataFlag() before the pipeline is
> executed will have no effect.  This seems like a bug.  I have a couple of
> ideas regarding how to fix it but since this is at the heart of the pipeline
> I’d like input from pipeline hackers first.
> Idea #1: Don’t call ResetPipelineInformation() from SetOutputData().  If a
> filter wants to reset the pipeline keys make it do so itself.
> Idea #2: Only call ResetPipelineInformation() if SetOutputData() is
> replacing an existing object.
> Thoughts?
> -- Andy
> _______________________________________________
> Powered by www.kitware.com
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtk-developers

More information about the vtk-developers mailing list