Difference between revisions of "Documentation/Labs/VTK6"
From Slicer Wiki
Line 33: | Line 33: | ||
Replace occurrences of <tt>SetInputPolyData/GetPolyData</tt> with <tt>SetInputPolyDataConnection/GetPolyDataConnection</tt>. | Replace occurrences of <tt>SetInputPolyData/GetPolyData</tt> with <tt>SetInputPolyDataConnection/GetPolyDataConnection</tt>. | ||
+ | |||
+ | ===Use only AllocateScalars=== | ||
+ | |||
+ | <b>Error message similar to:</b> | ||
+ | |||
+ | error: no matching function for call to ‘vtkImageData::SetNumberOfScalarComponents(int)’ | ||
+ | mp_phi->SetNumberOfScalarComponents(1); | ||
+ | ^ | ||
+ | <b>Solution:</b> | ||
+ | |||
+ | 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 | ||
== Progress == | == Progress == |
Revision as of 05:27, 30 August 2017
Home < Documentation < Labs < VTK6This page will document experiments related to the upgrade of Slicer base to VTK6.
Contents
References
- http://www.kitware.com/source/home/post/116
- http://www.kitware.com/blog/home/post/509
- http://www.kitware.com/blog/home/post/508
Experiments
Build System
Migration Guide
This section documents required change to make Slicer code work with VTK6.
Use SetInputPolyDataConnection and GetPolyDataConnection
Start 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 only AllocateScalars
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
Progress
- VTK6 has been integrated into Slicer trunk. It is disabled by default. To enable it, pass the option
-DVTK_VERSION_MAJOR:STRING=6
- Using ccmake and setting the VTK_VERSION_MAJOR variable does not seem to work. The first "generation" in ccmake, causes a VTKv5 structure to be created which is not overwritten by subsequent runs with VTK_VERSION_MAJOR changed. I had to remove the VTKv5 directories from the build and run cmake as described above with -DVTK_VERSION_MAJOR:STRING=6. - Jim