[vtk-developers] Started on VTK 4 compatibility removal

Moreland, Kenneth kmorel at sandia.gov
Mon May 16 15:43:05 EDT 2011


That code looks icky (that's a technical term).  Why not just make a
shallow copy of the data?  That's a pretty standard technique to detach
data from a pipeline without having to worry about messing up pipeline
state.

    vtkDataSet *o = vtkDataSet::New();
    o->ShallowCopy(some_filter->GetOutput());
    some_filter->Delete();

-Ken

   ****      Kenneth Moreland
    ***      Sandia National Laboratories
***********  
*** *** ***  email: kmorel at sandia.gov
**  ***  **  phone: (505) 844-8919
    ***      web:   http://www.cs.unm.edu/~kmorel




On 5/16/11 1:22 PM, "tom fogal" <tfogal at sci.utah.edu> wrote:

>Another one (sorry to bombard you).
>
>We've been using the idiom:
>
>   vtkDataSet* o = some_filter->GetOutput();
>   o->Register(NULL);
>   o->SetSource(NULL);
>   some_filter->Delete();
>
>to decouple the output of a pipeline from the pipeline itself, allowing
>us to clean up the pipeline whilst keeping the output around for a bit.
>  See:
>
> 
>http://visitusers.org/index.php?title=Memory_Management#How_to_manage_memo
>ry_for_a_VTK_object
>
>"SetSource" no longer exists in the update.  I've always wondered if
>there was a better way to accomplish the above goal anyway, the
>register/source-null trick seems a bit hackish.
>
>What should we replace such code with?
>
>-tom
>
>On 05/04/2011 02:23 PM, Berk Geveci wrote:
>> Hi folks,
>>
>> For those that are interested, I started working on removing the VTK 4
>> backwards compatibility layer as described here:
>>
>> http://www.vtk.org/Wiki/VTK/Remove_VTK_4_Compatibility
>>
>> I am going to regularly send updates to mailing list so that folks can
>> try out these changes and see if they break their own code. For now, I
>> am publishing a branch called remove-vtk-4-compatibility to
>> https://gitorious.org/~berkgeveci/kitware/berkgevecis-vtk. In the near
>> future, there will be a branch in the VTK stage as well.
>>
>> My changes so far:
>>
>> - I removed vtkProcessObject and all of its subclasses (including
>> vtkSource). A list of files I removed is at the bottom. If you have a
>> subclass of any of these, you have to change it to subclass from
>> vtkAlgorithm or one of its subclasses.
>>
>> - I removed vtkPLOT3DReader. This reader created one output per block
>> in the file. VTK no longer supports variable number of outputs. Such
>> readers/filters should be converted to produce multi-block datasets.
>> The replacement for this filter is vtkMultiBlockPLOT3DReader. In the
>> future, I will probably rename it to be vtkPLOT3DReader.
>>
>> - I changed vtkSpatialRepresentationFilter to produce a multi-block
>> dataset for the same reason as with vtkPLOT3DReader. I also had to
>> change the API as which output the filter produced was dependent on
>> the GetOutput() method which I had to remove. See the header file for
>> details.
>>
>> - I removed vtkPOPReader. This is a clean-up. This class never passed
>> development stage and the POP flavor it loaded was in-house to
>> Kitware.
>>
>> I am currently working on changes that are likely to have an impact on
>> some of the never code. I am removing the dependency of vtkDataObject
>> on the pipeline. This means that any code that did something like:
>>
>> output->SetWholeExtent(...);
>>
>> or
>>
>> output->GetWholeExtent(...);
>>
>> will break. More on this next time.
>>
>> Please feel free to ask questions.
>>
>> Best,
>> -berk
>>
>>
>> vtkProcessObject and subclasses removed:
>>   Filtering/vtkDataObjectSource.cxx Filtering/vtkDataObjectSource.h
>>   Filtering/vtkDataSetSource.cxx Filtering/vtkDataSetSource.h
>>   Filtering/vtkDataSetToDataSetFilter.cxx
>>   Filtering/vtkDataSetToDataSetFilter.h
>>   Filtering/vtkDataSetToImageFilter.cxx
>>   Filtering/vtkDataSetToImageFilter.h
>>   Filtering/vtkDataSetToPolyDataFilter.cxx
>>   Filtering/vtkDataSetToPolyDataFilter.h
>>   Filtering/vtkDataSetToStructuredGridFilter.cxx
>>   Filtering/vtkDataSetToStructuredGridFilter.h
>>   Filtering/vtkDataSetToStructuredPointsFilter.cxx
>>   Filtering/vtkDataSetToStructuredPointsFilter.h
>>   Filtering/vtkDataSetToUnstructuredGridFilter.cxx
>>   Filtering/vtkDataSetToUnstructuredGridFilter.h
>>   Filtering/vtkImageMultipleInputFilter.cxx
>>   Filtering/vtkImageMultipleInputFilter.h
>>   Filtering/vtkImageMultipleInputOutputFilter.cxx
>>   Filtering/vtkImageMultipleInputOutputFilter.h
>>   Filtering/vtkImageSource.cxx Filtering/vtkImageSource.h
>>   Filtering/vtkImageToImageFilter.cxx Filtering/vtkImageToImageFilter.h
>>   Filtering/vtkImageTwoInputFilter.cxx
>>   Filtering/vtkImageTwoInputFilter.h Filtering/vtkPointSetSource.cxx
>>   Filtering/vtkPointSetSource.h
>>   Filtering/vtkPointSetToPointSetFilter.cxx
>>   Filtering/vtkPointSetToPointSetFilter.h
>>   Filtering/vtkPolyDataSource.cxx Filtering/vtkPolyDataSource.h
>>   Filtering/vtkPolyDataToPolyDataFilter.cxx
>>   Filtering/vtkPolyDataToPolyDataFilter.h
>>   Filtering/vtkProcessObject.cxx Filtering/vtkProcessObject.h
>>   Filtering/vtkRectilinearGridSource.cxx
>>   Filtering/vtkRectilinearGridSource.h
>>   Filtering/vtkRectilinearGridToPolyDataFilter.cxx
>>   Filtering/vtkRectilinearGridToPolyDataFilter.h
>>   Filtering/vtkSource.cxx Filtering/vtkSource.h
>>   Filtering/vtkStructuredGridSource.cxx
>>   Filtering/vtkStructuredGridSource.h
>>   Filtering/vtkStructuredGridToPolyDataFilter.cxx
>>   Filtering/vtkStructuredGridToPolyDataFilter.h
>>   Filtering/vtkStructuredGridToStructuredGridFilter.cxx
>>   Filtering/vtkStructuredGridToStructuredGridFilter.h
>>   Filtering/vtkStructuredPointsSource.cxx
>>   Filtering/vtkStructuredPointsSource.h
>>   Filtering/vtkStructuredPointsToPolyDataFilter.cxx
>>   Filtering/vtkStructuredPointsToPolyDataFilter.h
>>   Filtering/vtkStructuredPointsToStructuredPointsFilter.cxx
>>   Filtering/vtkStructuredPointsToStructuredPointsFilter.h
>>   Filtering/vtkStructuredPointsToUnstructuredGridFilter.cxx
>>   Filtering//vtkStructuredPointsToUnstructuredGridFilter.h
>>   Filtering/vtkUnstructuredGridSource.cxx
>>   Filtering/vtkUnstructuredGridSource.h
>>   Filtering/vtkUnstructuredGridToPolyDataFilter.cxx
>>   Filtering/vtkUnstructuredGridToPolyDataFilter.h
>>   Filtering/vtkUnstructuredGridToUnstructuredGridFilter.h
>>   Filtering/vtkUnstructuredGridToUnstructuredGridFilter.cxx
>>   Imaging/vtkImageSpatialFilter.cxx Imaging/vtkImageSpatialFilter.h
>> _______________________________________________
>> 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
>>
>
>_______________________________________________
>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