Difference between revisions of "Documentation/Nightly/Developers/Tutorials/MigrationGuide/VTK5-to-VTK6"

From Slicer Wiki
Jump to: navigation, search
 
Line 1: Line 1:
 
<noinclude>__TOC__</noinclude>
 
<noinclude>__TOC__</noinclude>
==Migration guide: Transition from VTK5 to VTK6==
+
==Transition from VTK5 to VTK6==
  
 
This section documents required change to make Slicer code work with VTK6.
 
This section documents required change to make Slicer code work with VTK6.

Latest revision as of 22:44, 30 August 2018

Home < Documentation < Nightly < Developers < Tutorials < MigrationGuide < VTK5-to-VTK6

Transition from VTK5 to VTK6

This section documents required change to make Slicer code work with VTK6.


Use SetInputPolyDataConnection and GetPolyDataConnection

Starting with Slicer r24801, support for VTK5 API was removed and VTK6 API should be used.

Error message similar to:

error: ‘class vtkMRMLModelDisplayNode’ has no member named ‘SetInputPolyData’
 resultDisplay->SetInputPolyData(resultModel->GetPolyData());
                ^

Solution:

Replace occurrences of SetInputPolyData/GetPolyData with SetInputPolyDataConnection/GetPolyDataConnection.

Use AllocateScalars

Starting with Slicer r24801, support for VTK5 API was removed and VTK6 API should be used.

Error message similar to:

  error: no matching function for call to ‘vtkImageData::SetNumberOfScalarComponents(int)’
    mp_phi->SetNumberOfScalarComponents(1);
                                         ^

Solution:

Replace lines like:

 imageData->SetScalarTypeToUnsignedShort();		
 imageData->SetNumberOfScalarComponents(1); // image holds one value intensities		
 imageData->AllocateScalars(); // allocate storage for image data

with:

 imageData->AllocateScalars(VTK_UNSIGNED_SHORT, 1); // allocate storage for image data