Difference between revisions of "VTK6 Migration Guide"

From mitk.org
Jump to navigation Jump to search
(username removed)
 
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
= VTK6 Migration Plan =
+
<!-- ## page was renamed from internal/VTK6 -->
 +
= VTK6 Migration Guide =
 
http://www.vtk.org/Wiki/VTK/VTK_6_Migration_Guide
 
http://www.vtk.org/Wiki/VTK/VTK_6_Migration_Guide
 +
 
http://vtk.org/Wiki/VTK/VTK_6_Migration/Overview
 
http://vtk.org/Wiki/VTK/VTK_6_Migration/Overview
  
== Deprecated Macros ==
+
== [[FloatingPointType]] ==
 +
vtkFloatingPointType has to be replaced with double
 +
 
 +
<pre><nowiki>
 +
-    vtkFloatingPointType point[3];
 +
+    double point[3];
 +
</nowiki></pre>
 +
 
 +
 
 +
== versionMacros ==
 +
When vtk version macros (like VTK_MAJOR_VERSION) are used, the following header has to be included:
 +
 
 +
<pre><nowiki>
 +
+#include <vtkVersionMacros.h>
 +
</nowiki></pre>
 +
 
  
 
== Pipeline changes ==
 
== Pipeline changes ==
 +
http://www.vtk.org/Wiki/VTK/VTK_6_Migration/Replacement_of_SetInput
 +
=== Example 1 ===
 +
 +
<pre><nowiki>
 +
anotherFilter->SetInput(aFilter->GetOutput());
 +
</nowiki></pre>
 +
 +
should become
 +
 +
<pre><nowiki>
 +
anotherFilter->SetInputConnection(aFilter->GetOutputPort());
 +
</nowiki></pre>
 +
 +
 +
=== Example 2 ===
 +
 +
<pre><nowiki>
 +
vtkDataObject* output = aFilter->GetOutput();
 +
anotherFilter->SetInput(output);
 +
</nowiki></pre>
 +
 +
should become
 +
 +
<pre><nowiki>
 +
anotherFilter->SetInputConnection(aFilter->GetOutputPort());
 +
</nowiki></pre>
 +
 +
=== Example 3 ===
 +
 +
<pre><nowiki>
 +
vtkPolyData *pd = vtkPolyData::New();
 +
aFilter->SetInput(pd);
 +
</nowiki></pre>
 +
 +
should become
 +
 +
<pre><nowiki>
 +
vtkPolyData *pd = vtkPolyData::New();
 +
aFilter->SetInputData(pd);
 +
</nowiki></pre>
 +
 +
=== Update on vtkData ===
 +
Since vtkData Objects no longer have a source, the update method is not existing anymore. Instead, call the update method of the source directly.
 +
 +
== [[CxxRevisionMacro]] ==
 +
Deprecated Macro. Just remove it.
 +
 +
<pre><nowiki>
 +
-vtkCxxRevisionMacro(vtkPVAxesActor, "$Revision$");
 +
</nowiki></pre>
 +
 +
 +
== vtkTypeRevisionMacro ==
 +
Renamed macro
 +
 +
<pre><nowiki>
 +
-  vtkTypeRevisionMacro(vtkPVAxesActor,vtkProp3D);
 +
+  vtkTypeMacro(vtkPVAxesActor,vtkProp3D);
 +
</nowiki></pre>
 +
 +
 +
== allocateScalars ==
 +
=== Example 1 ===
 +
Replace
 +
 +
<pre><nowiki>
 +
int vtkMyAlg::RequestInformation(vtkInformation*, vtkInformationVector**,
 +
      vtkInformationVector* outInfoVec)
 +
{
 +
  vtkImageData* output = this->GetOutput();
 +
  output->GetScalarType();
 +
  output->GetNumberOfScalarComponents();
 +
</nowiki></pre>
 +
 +
with
 +
 +
<pre><nowiki>
 +
int vtkMyAlg::RequestInformation(vtkInformation*, vtkInformationVector**,
 +
      vtkInformationVector* outInfoVec)
 +
{
 +
    vtkInformation* outInfo = outInfoVec->GetInformationObject(0);
 +
    vtkImageData::GetScalarType(outInfo);
 +
    vtkImageData::GetNumberOfScalarComponents(outInfo);
 +
</nowiki></pre>
 +
 +
=== Example 2 ===
 +
 +
<pre><nowiki>
 +
int vtkMyAlg::RequestData(vtkInformation*, vtkInformationVector**,
 +
      vtkInformationVector* outInfoVec)
 +
{
 +
vtkImageData* output = vtkImageData::GetData(outInfoVec);
 +
// Allocate output scalars here
 +
output->GetScalarType();
 +
output->GetNumberOfScalarComponents();
 +
</nowiki></pre>
 +
 +
This code does not need to be changed.

Revision as of 17:57, 6 December 2013

VTK6 Migration Guide

http://www.vtk.org/Wiki/VTK/VTK_6_Migration_Guide

http://vtk.org/Wiki/VTK/VTK_6_Migration/Overview

FloatingPointType

vtkFloatingPointType has to be replaced with double

-    vtkFloatingPointType point[3];
+    double point[3];


versionMacros

When vtk version macros (like VTK_MAJOR_VERSION) are used, the following header has to be included:

+#include <vtkVersionMacros.h>


Pipeline changes

http://www.vtk.org/Wiki/VTK/VTK_6_Migration/Replacement_of_SetInput

Example 1

anotherFilter->SetInput(aFilter->GetOutput());

should become

anotherFilter->SetInputConnection(aFilter->GetOutputPort());


Example 2

vtkDataObject* output = aFilter->GetOutput();
anotherFilter->SetInput(output);

should become

anotherFilter->SetInputConnection(aFilter->GetOutputPort());

Example 3

vtkPolyData *pd = vtkPolyData::New();
aFilter->SetInput(pd);

should become

vtkPolyData *pd = vtkPolyData::New();
aFilter->SetInputData(pd);

Update on vtkData

Since vtkData Objects no longer have a source, the update method is not existing anymore. Instead, call the update method of the source directly.

CxxRevisionMacro

Deprecated Macro. Just remove it.

-vtkCxxRevisionMacro(vtkPVAxesActor, "$Revision$");


vtkTypeRevisionMacro

Renamed macro

-  vtkTypeRevisionMacro(vtkPVAxesActor,vtkProp3D);
+  vtkTypeMacro(vtkPVAxesActor,vtkProp3D);


allocateScalars

Example 1

Replace

int vtkMyAlg::RequestInformation(vtkInformation*, vtkInformationVector**, 
       vtkInformationVector* outInfoVec)
{
   vtkImageData* output = this->GetOutput();
   output->GetScalarType();
   output->GetNumberOfScalarComponents();

with

int vtkMyAlg::RequestInformation(vtkInformation*, vtkInformationVector**, 
       vtkInformationVector* outInfoVec)
{
    vtkInformation* outInfo = outInfoVec->GetInformationObject(0);
    vtkImageData::GetScalarType(outInfo);
    vtkImageData::GetNumberOfScalarComponents(outInfo);

Example 2

int vtkMyAlg::RequestData(vtkInformation*, vtkInformationVector**, 
       vtkInformationVector* outInfoVec)
{
vtkImageData* output = vtkImageData::GetData(outInfoVec);
// Allocate output scalars here
output->GetScalarType();
output->GetNumberOfScalarComponents();

This code does not need to be changed.