瀏覽代碼

Merge branch 'add-vtk-6-support'

* add-vtk-6-support:
  Fix VTK 6 support
  ENH: Support VTK6 in CTK
  Allow FindDCMTK.cmake to be re-used directly adding missing module.
  COMP: Pass CMAKE_BUILD_TYPE to all projects
Julien Finet 11 年之前
父節點
當前提交
8bf6dd1e3b

+ 32 - 7
Libs/Visualization/VTK/Core/CMakeLists.txt

@@ -74,16 +74,41 @@ if(CTK_LIB_Scripting/Python/Core AND CTK_LIB_Scripting/Python/Core_PYTHONQT_USE_
 endif()
 
 # Set VTK_LIBRARIES variable
-set(VTK_LIBRARIES
-  vtkCommon
-  vtkFiltering
-  vtkRendering
-  vtkHybrid
-  )
+if(${VTK_VERSION_MAJOR} GREATER 5)
+  set(VTK_LIBRARIES
+    vtkCommonCore
+    vtkCommonDataModel
+    vtkCommonSystem
+    vtkIOImage
+    vtkInteractionStyle
+    vtkRenderingAnnotation
+    vtkRenderingCore
+    vtkRenderingFreeTypeOpenGL
+    vtkRenderingOpenGL
+    vtkTestingRendering
+    )
+  if (UNIX AND NOT APPLE)
+    find_package(FontConfig QUIET)
+    if (FONTCONFIG_FOUND)
+      list(APPEND VTK_LIBRARIES
+        vtkRenderingFreeTypeFontConfig
+        )
+    endif()
+  endif()
+else()
+  set(VTK_LIBRARIES
+    vtkCommon
+    vtkFiltering
+    vtkRendering
+    vtkHybrid
+    )
+endif()
 
 if(CTK_LIB_Scripting/Python/Core AND CTK_LIB_Scripting/Python/Core_PYTHONQT_USE_VTK)
   list(APPEND VTK_LIBRARIES ${PYTHON_LIBRARY} ${PYTHONQT_LIBRARIES})
-  if(${VTK_VERSION_MAJOR}.${VTK_VERSION_MINOR} VERSION_GREATER 5.6)
+  if(${VTK_VERSION_MAJOR} GREATER 5)
+    list(APPEND VTK_LIBRARIES vtkWrappingPythonCore)
+  elseif(${VTK_VERSION_MAJOR}.${VTK_VERSION_MINOR} VERSION_GREATER 5.6)
     list(APPEND VTK_LIBRARIES vtkPythonCore)
   else()
     list(APPEND VTK_LIBRARIES vtkCommonPythonD)

+ 13 - 1
Libs/Visualization/VTK/Core/Testing/Cpp/vtkLightBoxRendererManagerTest1.cpp

@@ -62,8 +62,12 @@ int vtkLightBoxRendererManagerTest1(int argc, char* argv[])
 
   // Read image
   imageReader->SetFileName(imageFilename);
+#if (VTK_MAJOR_VERSION <= 5)
   imageReader->Update();
-  vtkSmartPointer<vtkImageData> image = imageReader->GetOutput();
+  vtkImageData* image = imageReader->GetOutput();
+#else
+  vtkAlgorithmOutput* imagePort = imageReader->GetOutputPort();
+#endif
 
   //----------------------------------------------------------------------------
   // Renderer, RenderWindow and Interactor
@@ -168,10 +172,18 @@ int vtkLightBoxRendererManagerTest1(int argc, char* argv[])
     return EXIT_FAILURE;
     }
 
+#if (VTK_MAJOR_VERSION <= 5)
   lightBoxRendererManager->SetImageData(image);
+#else
+  lightBoxRendererManager->SetImageDataConnection(imagePort);
+#endif
   if (mtime != lightBoxRendererManager->GetMTime())
     {
+#if (VTK_MAJOR_VERSION <= 5)
     std::cerr << "line " << __LINE__ << " - Problem with SetImageData()" << std::endl;
+#else
+    std::cerr << "line " << __LINE__ << " - Problem with SetImageDataConnection()" << std::endl;
+#endif
     return EXIT_FAILURE;
     }
   

+ 1 - 0
Libs/Visualization/VTK/Core/ctkVTKPythonQtWrapperFactory.cpp

@@ -5,6 +5,7 @@
 /// VTK includes
 #include <vtkPythonUtil.h>
 #include <vtkObject.h>
+#include <vtkVersion.h>
 
 //-----------------------------------------------------------------------------
 ctkVTKPythonQtWrapperFactory::ctkVTKPythonQtWrapperFactory():Superclass()

+ 69 - 18
Libs/Visualization/VTK/Core/vtkLightBoxRendererManager.cpp

@@ -21,6 +21,7 @@
 #include "vtkLightBoxRendererManager.h"
 
 // VTK includes
+#include <vtkAlgorithmOutput.h>
 #include <vtkCamera.h>
 #include <vtkCellArray.h>
 #include <vtkConfigure.h>
@@ -38,6 +39,7 @@
 #include <vtkRenderWindowInteractor.h>
 #include <vtkSmartPointer.h>
 #include <vtkTextProperty.h>
+#include <vtkVersion.h>
 #include <vtkWeakPointer.h>
 
 // STD includes
@@ -45,7 +47,6 @@
 #include <cassert>
 
 //----------------------------------------------------------------------------
-vtkCxxRevisionMacro(vtkLightBoxRendererManager, "$Revision:$");
 vtkStandardNewMacro(vtkLightBoxRendererManager);
 
 namespace
@@ -75,6 +76,7 @@ public:
   vtkSmartPointer<vtkRenderer>                Renderer;
   vtkSmartPointer<vtkImageMapper>             ImageMapper;
   vtkSmartPointer<vtkActor2D>                 HighlightedBoxActor;
+  vtkSmartPointer<vtkActor2D>                 ImageActor;
 };
 }
 
@@ -99,7 +101,11 @@ RenderWindowItem::RenderWindowItem(const double rendererBackgroundColor[3],
 //-----------------------------------------------------------------------------
 RenderWindowItem::~RenderWindowItem()
 {
+#if (VTK_MAJOR_VERSION <= 5)
   this->ImageMapper->SetInput(0);
+#else
+  this->ImageMapper->SetInputConnection(0);
+#endif
 }
 
 //-----------------------------------------------------------------------------
@@ -122,12 +128,12 @@ void RenderWindowItem::SetupImageMapperActor(double colorWindow, double colorLev
   this->ImageMapper->SetColorLevel(colorLevel);
 
   // .. and its corresponding 2D actor
-  vtkNew<vtkActor2D> actor2D;
-  actor2D->SetMapper(this->ImageMapper);
-  actor2D->GetProperty()->SetDisplayLocationToBackground();
+  this->ImageActor = vtkSmartPointer<vtkActor2D>::New();
+  this->ImageActor->SetMapper(this->ImageMapper);
+  this->ImageActor->GetProperty()->SetDisplayLocationToBackground();
 
   // .. and add it to the renderer
-  this->Renderer->AddActor2D(actor2D.GetPointer());
+  //this->Renderer->AddActor2D(this->ImageActor.GetPointer());
 }
 
 //---------------------------------------------------------------------------
@@ -207,7 +213,7 @@ void RenderWindowItem::SetupHighlightedBoxActor(const double highlightedBoxColor
   this->HighlightedBoxActor->GetProperty()->SetLineWidth(1.0f);
   this->HighlightedBoxActor->SetVisibility(visible);
 
-  this->Renderer->AddActor2D(this->HighlightedBoxActor);
+  //this->Renderer->AddActor2D(this->HighlightedBoxActor);
 }
 
 //-----------------------------------------------------------------------------
@@ -231,6 +237,7 @@ public:
 
   /// Update render window ImageMapper Z slice according to \a layoutType
   void updateRenderWindowItemsZIndex(int layoutType);
+  void SetItemInput(RenderWindowItem* item);
 
   vtkSmartPointer<vtkRenderWindow>              RenderWindow;
   int                                           RenderWindowRowCount;
@@ -242,7 +249,11 @@ public:
   vtkSmartPointer<vtkCornerAnnotation>          CornerAnnotation;
   std::string                                   CornerAnnotationText;
 
+#if (VTK_MAJOR_VERSION <= 5)
   vtkWeakPointer<vtkImageData>                  ImageData;
+#else
+  vtkWeakPointer<vtkAlgorithmOutput>            ImageDataConnection;
+#endif
   double                                        ColorWindow;
   double                                        ColorLevel;
   double                                        RendererBackgroundColor[3];
@@ -385,6 +396,29 @@ void vtkLightBoxRendererManager::vtkInternal::updateRenderWindowItemsZIndex(int
     }
 }
 
+
+// --------------------------------------------------------------------------
+void vtkLightBoxRendererManager::vtkInternal
+::SetItemInput(RenderWindowItem* item)
+{
+#if (VTK_MAJOR_VERSION <= 5)
+  item->ImageMapper->SetInput(this->ImageData);
+#else
+  item->ImageMapper->SetInputConnection(this->ImageDataConnection);
+  bool hasViewProp = item->Renderer->HasViewProp(item->ImageActor);
+  if (!this->ImageDataConnection && hasViewProp)
+    {
+    item->Renderer->RemoveViewProp(item->ImageActor);
+    item->Renderer->RemoveViewProp(item->HighlightedBoxActor);
+    }
+  else if (this->ImageDataConnection && !hasViewProp)
+    {
+    item->Renderer->AddActor2D(item->ImageActor);
+    item->Renderer->AddActor2D(item->HighlightedBoxActor);
+    }
+#endif
+}
+
 //---------------------------------------------------------------------------
 // vtkLightBoxRendererManager methods
 
@@ -457,32 +491,45 @@ bool vtkLightBoxRendererManager::IsInitialized()
 }
 
 //----------------------------------------------------------------------------
+#if (VTK_MAJOR_VERSION <= 5)
 void vtkLightBoxRendererManager::SetImageData(vtkImageData* newImageData)
+#else
+void vtkLightBoxRendererManager::SetImageDataConnection(vtkAlgorithmOutput* newImageDataConnection)
+#endif
 {
   if (!this->IsInitialized())
     {
+#if (VTK_MAJOR_VERSION <= 5)
     vtkErrorMacro(<< "SetImageData failed - vtkLightBoxRendererManager is NOT initialized");
+#else
+    vtkErrorMacro(<< "SetImageDataConnection failed - vtkLightBoxRendererManager is NOT initialized");
+#endif
     return;
     }
+
+#if (VTK_MAJOR_VERSION <= 5)
+  this->Internal->ImageData = newImageData;
+#else
+  this->Internal->ImageDataConnection = newImageDataConnection;
+#endif
+
   vtkInternal::RenderWindowItemListIt it;
   for(it = this->Internal->RenderWindowItemList.begin();
       it != this->Internal->RenderWindowItemList.end();
       ++it)
     {
-#if VTK_MAJOR_VERSION <= 5
-    (*it)->ImageMapper->SetInput(newImageData);
-#else
-    (*it)->ImageMapper->SetInputData(newImageData);
-#endif
+    this->Internal->SetItemInput(*it);
     }
 
+#if (VTK_MAJOR_VERSION <= 5)
   if (newImageData)
+#else
+  if (newImageDataConnection)
+#endif
     {
     this->Internal->updateRenderWindowItemsZIndex(this->Internal->RenderWindowLayoutType);
     }
 
-  this->Internal->ImageData = newImageData;
-
   this->Modified();
 }
 
@@ -581,7 +628,11 @@ void vtkLightBoxRendererManager::SetRenderWindowLayoutType(int layoutType)
     return;
     }
 
+#if (VTK_MAJOR_VERSION <= 5)
   if (this->Internal->ImageData)
+#else
+  if (this->Internal->ImageDataConnection)
+#endif
     {
     this->Internal->updateRenderWindowItemsZIndex(layoutType);
     }
@@ -632,11 +683,7 @@ void vtkLightBoxRendererManager::SetRenderWindowLayout(int rowCount, int columnC
                                this->Internal->HighlightedBoxColor,
                                this->Internal->ColorWindow, this->Internal->ColorLevel);
       item->Renderer->SetLayer(this->Internal->RendererLayer);
-#if VTK_MAJOR_VERSION <= 5
-      item->ImageMapper->SetInput(this->Internal->ImageData);
-#else
-      item->ImageMapper->SetInputData(this->Internal->ImageData);
-#endif
+      this->Internal->SetItemInput(item);
       this->Internal->RenderWindowItemList.push_back(item);
       --extraItem;
       }
@@ -659,7 +706,11 @@ void vtkLightBoxRendererManager::SetRenderWindowLayout(int rowCount, int columnC
   this->Internal->setupRendering();
   this->Internal->SetupCornerAnnotation();
 
+#if (VTK_MAJOR_VERSION <= 5)
   if (this->Internal->ImageData)
+#else
+  if (this->Internal->ImageDataConnection)
+#endif
     {
     this->Internal->updateRenderWindowItemsZIndex(this->Internal->RenderWindowLayoutType);
     }

+ 7 - 1
Libs/Visualization/VTK/Core/vtkLightBoxRendererManager.h

@@ -22,6 +22,7 @@
 #define __vtkLightBoxRendererManager_h
 
 #include <vtkObject.h>
+#include <vtkVersion.h>
 
 #include "ctkVisualizationVTKCoreExport.h"
 
@@ -30,11 +31,12 @@ class vtkRenderer;
 class vtkImageData;
 class vtkCamera;
 class vtkCornerAnnotation;
+class vtkAlgorithmOutput;
 
 /// \ingroup Visualization_VTK_Core
 class CTK_VISUALIZATION_VTK_CORE_EXPORT vtkLightBoxRendererManager : public vtkObject
 {
-  vtkTypeRevisionMacro(vtkLightBoxRendererManager,vtkObject);
+  vtkTypeMacro(vtkLightBoxRendererManager,vtkObject);
   void PrintSelf(ostream& os, vtkIndent indent);
   static vtkLightBoxRendererManager *New();
 
@@ -51,7 +53,11 @@ class CTK_VISUALIZATION_VTK_CORE_EXPORT vtkLightBoxRendererManager : public vtkO
   vtkRenderWindow* GetRenderWindow();
 
   /// Set image data
+#if (VTK_MAJOR_VERSION <= 5)
   void SetImageData(vtkImageData* newImageData);
+#else
+  void SetImageDataConnection(vtkAlgorithmOutput* newImageDataConnection);
+#endif
 
   /// Get active camera
   /// Note that the same camera is used with all the renderWindowItem

+ 25 - 4
Libs/Visualization/VTK/Widgets/CMakeLists.txt

@@ -94,9 +94,24 @@ set(KIT_resources
 )
 
 # Set VTK_LIBRARIES variable
-set(VTK_LIBRARIES
-  QVTK
-  )
+if(${VTK_VERSION_MAJOR} GREATER 5)
+  set(VTK_LIBRARIES
+    vtkChartsCore
+    vtkCommonMath
+    vtkFiltersSources
+    vtkImagingGeneral
+    vtkImagingStatistics
+    vtkInteractionWidgets
+    vtkRenderingContext2D
+    vtkViewsContext2D
+    vtkWrappingPythonCore
+    vtkGUISupportQt
+    )
+else()
+  set(VTK_LIBRARIES
+    QVTK
+    )
+endif()
 
 if(CTK_LIB_Visualization/VTK/Widgets_USE_TRANSFER_FUNCTION_CHARTS)
   set(CTK_USE_CHARTS 1)
@@ -123,9 +138,15 @@ IF (${CTK_USE_CHARTS})
       Resources/UI/ctkVTKVolumePropertyWidget.ui
       Resources/UI/ctkVTKScalarsToColorsWidget.ui
       ${KIT_UI_FORMS})
-  set(VTK_LIBRARIES
+  if(${VTK_VERSION_MAJOR} GREATER 5)
+    set(VTK_LIBRARIES
+      vtkChartsCore
+      ${VTK_LIBRARIES})
+  else()
+    set(VTK_LIBRARIES
       vtkCharts
       ${VTK_LIBRARIES})
+  endif()
   add_definitions(-DCTK_USE_CHARTS)
 endif()
 

+ 7 - 1
Libs/Visualization/VTK/Widgets/Testing/Cpp/CMakeLists.txt

@@ -109,7 +109,13 @@ set(Tests_RESOURCES_SRCS)
 QT4_ADD_RESOURCES(Tests_RESOURCES_SRCS ${Tests_RESOURCES})
 
 add_executable(${KIT}CppTests ${Tests} ${TEST_MOC_CPP} ${TEST_UI_CPP} ${Tests_RESOURCES_SRCS})
-target_link_libraries(${KIT}CppTests ${LIBRARY_NAME} vtkCharts ${CTK_BASE_LIBRARIES})
+if(${VTK_VERSION_MAJOR} GREATER 5)
+  set(VTK_CHARTS_LIB vtkChartsCore)
+else()
+  set(VTK_CHARTS_LIB vtkCharts)
+endif()
+
+target_link_libraries(${KIT}CppTests ${LIBRARY_NAME} ${VTK_CHARTS_LIB} ${CTK_BASE_LIBRARIES})
 
 #
 # Add Tests

+ 13 - 0
Libs/Visualization/VTK/Widgets/Testing/Cpp/ctkVTKChartViewTest1.cpp

@@ -31,6 +31,7 @@
 #include <vtkNew.h>
 #include <vtkPlotBar.h>
 #include <vtkTable.h>
+#include <vtkVersion.h>
 
 // STD includes
 #include <iostream>
@@ -78,19 +79,31 @@ int ctkVTKChartViewTest1(int argc, char * argv [] )
 
   // Add multiple line plots, setting the colors etc
   vtkPlotBar* bar = vtkPlotBar::New();
+#if (VTK_MAJOR_VERSION <= 5)
   bar->SetInput(table.GetPointer(), 0, 1);
+#else
+  bar->SetInputData(table.GetPointer(), 0, 1);
+#endif
   bar->SetColor(0, 255, 0, 255);
   view.addPlot(bar);
   bar->Delete();
 
   bar = vtkPlotBar::New();
+#if (VTK_MAJOR_VERSION <= 5)
   bar->SetInput(table.GetPointer(), 0, 2);
+#else
+  bar->SetInputData(table.GetPointer(), 0, 2);
+#endif
   bar->SetColor(255, 0, 0, 255);
   view.addPlot(bar);
   bar->Delete();
 
   bar = vtkPlotBar::New();
+#if (VTK_MAJOR_VERSION <= 5)
   bar->SetInput(table.GetPointer(), 0, 3);
+#else
+  bar->SetInputData(table.GetPointer(), 0, 3);
+#endif
   bar->SetColor(0, 0, 255, 255);
   view.addPlot(bar);
   bar->Delete();

+ 29 - 0
Libs/Visualization/VTK/Widgets/Testing/Cpp/ctkVTKMagnifyViewTest2.cpp

@@ -38,6 +38,7 @@
 #include <vtkImageData.h>
 #include <vtkImageGaussianSmooth.h>
 #include <vtkSmartPointer.h>
+#include <vtkVersion.h>
 
 // STD includes
 #include <cstdlib>
@@ -243,14 +244,22 @@ int ctkVTKMagnifyViewTest2(int argc, char * argv [] )
   // Read image
   imageReader->SetFileName(imageFilename.toLatin1());
   imageReader->Update();
+#if (VTK_MAJOR_VERSION <= 5)
   vtkSmartPointer<vtkImageData> image = imageReader->GetOutput();
+#else
+  vtkSmartPointer<vtkAlgorithmOutput> imagePort = imageReader->GetOutputPort();
+#endif
 
   // Setup the slice views
   for (int i = 0; i < numSliceViews; i++)
     {
     allSliceViews[i]->setRenderEnabled(true);
     allSliceViews[i]->setMinimumSize(350,350);
+#if (VTK_MAJOR_VERSION <= 5)
     allSliceViews[i]->setImageData(image);
+#else
+    allSliceViews[i]->setImageDataConnection(imagePort);
+#endif
     allSliceViews[i]->setHighlightedBoxColor(Qt::yellow);
     allSliceViews[i]->scheduleRender();
     }
@@ -373,10 +382,18 @@ int ctkVTKMagnifyViewTest2(int argc, char * argv [] )
     }
 
   vtkImageGaussianSmooth * gaussian = vtkImageGaussianSmooth::New();
+#if (VTK_MAJOR_VERSION <= 5)
   gaussian->SetInput(image);
+#else
+  gaussian->SetInputConnection(imagePort);
+#endif
   gaussian->SetRadiusFactors(5,5);
   gaussian->Update();
+#if (VTK_MAJOR_VERSION <= 5)
   allSliceViews[0]->setImageData(gaussian->GetOutput());
+#else
+  allSliceViews[0]->setImageDataConnection(gaussian->GetOutputPort());
+#endif
   allSliceViews[0]->scheduleRender();
   if (!runBaselineTest(time, app, magnify, allSliceViews[0], true,
                        baselineDirectory, testType, "h",
@@ -396,10 +413,18 @@ int ctkVTKMagnifyViewTest2(int argc, char * argv [] )
     return EXIT_FAILURE;
     }
 
+#if (VTK_MAJOR_VERSION <= 5)
   gaussian->SetInput(image);
+#else
+  gaussian->SetInputConnection(imageReader->GetOutputPort());
+#endif
   gaussian->SetRadiusFactors(0,0);
   gaussian->Update();
+#if (VTK_MAJOR_VERSION <= 5)
   allSliceViews[0]->setImageData(gaussian->GetOutput());
+#else
+  allSliceViews[0]->setImageDataConnection(gaussian->GetOutputPort());
+#endif
   allSliceViews[0]->scheduleRender();
   if (!runBaselineTest(time, app, magnify, allSliceViews[0], true,
                        baselineDirectory, testType, "h",
@@ -411,7 +436,11 @@ int ctkVTKMagnifyViewTest2(int argc, char * argv [] )
   // Test changing the update interval
   magnify->setUpdateInterval(time * 2);
   magnify->setObserveRenderWindowEvents(true);
+#if (VTK_MAJOR_VERSION <= 5)
   allSliceViews[0]->setImageData(image);
+#else
+  allSliceViews[0]->setImageDataConnection(imagePort);
+#endif
   allSliceViews[0]->scheduleRender();
   QCursor::setPos(insideSlice0bottomRightCorner);
   // It should be waiting to update here

+ 15 - 2
Libs/Visualization/VTK/Widgets/Testing/Cpp/ctkVTKScalarsToColorsViewTest2.cpp

@@ -37,6 +37,7 @@
 #include <vtkPlotBar.h>
 #include <vtkSmartPointer.h>
 #include <vtkTable.h>
+#include <vtkVersion.h>
 
 // STD includes
 #include <iostream>
@@ -59,11 +60,15 @@ int ctkVTKScalarsToColorsViewTest2(int argc, char * argv [] )
   vtkSmartPointer<vtkImageData> image =
     vtkSmartPointer<vtkImageData>::New();
   image->SetDimensions(256, 256, 1);
-  image->SetScalarTypeToUnsignedChar();
-  image->SetNumberOfScalarComponents(1); // image holds one value intensities
   image->SetSpacing(20000., 30., 900000000.);
   image->SetOrigin(-251234568., 0.00001, 40.2);
+#if (VTK_MAJOR_VERSION <= 5)
+  image->SetScalarTypeToUnsignedChar();
+  image->SetNumberOfScalarComponents(1); // image holds one value intensities
   image->AllocateScalars(); // allocate storage for image data
+#else
+  image->AllocateScalars(VTK_UNSIGNED_CHAR, 1);
+#endif
   unsigned char * ptr = static_cast<unsigned char *>(image->GetScalarPointer());
   for (int i=0; i<256*256*1; ++i)
     {
@@ -73,7 +78,11 @@ int ctkVTKScalarsToColorsViewTest2(int argc, char * argv [] )
   // Histogram
   vtkSmartPointer<vtkImageAccumulate> histogram =
     vtkSmartPointer<vtkImageAccumulate>::New();
+#if (VTK_MAJOR_VERSION <= 5)
   histogram->SetInput(image);
+#else
+  histogram->SetInputData(image);
+#endif
   histogram->SetComponentExtent(0, 255, 0 , 0 , 0, 0);
   histogram->Update();
   vtkAbstractArray* bins =
@@ -98,7 +107,11 @@ int ctkVTKScalarsToColorsViewTest2(int argc, char * argv [] )
   //Histogram Plot
   vtkSmartPointer<vtkPlotBar> histogramPlot =
     vtkSmartPointer<vtkPlotBar>::New();
+#if (VTK_MAJOR_VERSION <= 5)
   histogramPlot->SetInput(table, 0, 1);
+#else
+  histogramPlot->SetInputData(table, 0, 1);
+#endif
   histogramPlot->SetColor(0.078, 0.008, 0);//not exactly black...just because.
   histogramPlot->GetPen()->SetLineType(vtkPen::NO_PEN);
 

+ 13 - 0
Libs/Visualization/VTK/Widgets/Testing/Cpp/ctkVTKScalarsToColorsViewTest4.cpp

@@ -29,6 +29,7 @@
 #include "vtkContextScene.h"
 #include <vtkRegressionTestImage.h>
 #include "vtkRenderWindowInteractor.h"
+#include <vtkVersion.h>
 
 //-----------------------------------------------------------------------------
 int ctkVTKScalarsToColorsViewTest4(int argc, char * argv [] )
@@ -68,15 +69,27 @@ int ctkVTKScalarsToColorsViewTest4(int argc, char * argv [] )
 
   // Add multiple line plots, setting the colors etc
   vtkPlot *line = chart->AddPlot(vtkChart::LINE);
+#if (VTK_MAJOR_VERSION <= 5)
   line->SetInput(table, 0, 1);
+#else
+  line->SetInputData(table, 0, 1);
+#endif
   line->SetColor(0, 255, 0, 255);
   line->SetWidth(1.0);
   line = chart->AddPlot(vtkChart::LINE);
+#if (VTK_MAJOR_VERSION <= 5)
   line->SetInput(table, 0, 2);
+#else
+  line->SetInputData(table, 0, 2);
+#endif
   line->SetColor(255, 0, 0, 255);
   line->SetWidth(5.0);
   line = chart->AddPlot(vtkChart::LINE);
+#if (VTK_MAJOR_VERSION <= 5)
   line->SetInput(table, 0, 3);
+#else
+  line->SetInputData(table, 0, 3);
+#endif
   line->SetColor(0, 0, 255, 255);
   line->SetWidth(4.0);
 

+ 5 - 0
Libs/Visualization/VTK/Widgets/Testing/Cpp/ctkVTKThumbnailViewTest1.cpp

@@ -34,6 +34,7 @@
 #include <vtkRenderer.h>
 #include <vtkRenderWindow.h>
 #include <vtkRenderWindowInteractor.h>
+#include <vtkVersion.h>
 
 // STD includes
 #include <cstdlib>
@@ -51,7 +52,11 @@ int ctkVTKThumbnailViewTest1(int argc, char * argv [] )
 
   vtkPolyDataMapper *mapper = vtkPolyDataMapper::New();
   vtkCubeSource *cube= vtkCubeSource::New();
+#if (VTK_MAJOR_VERSION <= 5)
   mapper->SetInput(cube->GetOutput());
+#else
+  mapper->SetInputConnection(cube->GetOutputPort());
+#endif
   cube->Delete();
   vtkActor *actor = vtkActor::New();
   actor->SetMapper(mapper);

+ 8 - 0
Libs/Visualization/VTK/Widgets/ctkVTKSliceView.cpp

@@ -125,11 +125,19 @@ void ctkVTKSliceView::resetCamera()
 }
 
 //----------------------------------------------------------------------------
+#if (VTK_MAJOR_VERSION <= 5)
 void ctkVTKSliceView::setImageData(vtkImageData* newImageData)
 {
   Q_D(ctkVTKSliceView);
   d->LightBoxRendererManager->SetImageData(newImageData);
 }
+#else
+void ctkVTKSliceView::setImageDataConnection(vtkAlgorithmOutput* newImageDataPort)
+{
+  Q_D(ctkVTKSliceView);
+  d->LightBoxRendererManager->SetImageDataConnection(newImageDataPort);
+}
+#endif
 
 //----------------------------------------------------------------------------
 vtkCornerAnnotation * ctkVTKSliceView::overlayCornerAnnotation()const

+ 6 - 0
Libs/Visualization/VTK/Widgets/ctkVTKSliceView.h

@@ -23,12 +23,14 @@
 
 // CTK includes
 #include "ctkVTKAbstractView.h"
+#include "vtkVersion.h"
 class vtkLightBoxRendererManager;
 class ctkVTKSliceViewPrivate;
 
 class vtkCamera;
 class vtkImageData;
 class vtkRenderer;
+class vtkAlgorithmOutput;
 
 /// \ingroup Visualization_VTK_Widgets
 /// Specific implementation for a 2D view that supports lightbox display.
@@ -99,7 +101,11 @@ public Q_SLOTS:
 
   /// Set image data
   /// \sa vtkLightBoxRendererManager::SetImageData
+#if (VTK_MAJOR_VERSION <= 5)
   void setImageData(vtkImageData* newImageData);
+#else
+  void setImageDataConnection(vtkAlgorithmOutput* newImageDataPort);
+#endif
 
   /// Set highlightedBox color
   /// \sa vtkLightBoxRendererManager::SetHighlightedBoxColor

+ 9 - 0
Libs/Visualization/VTK/Widgets/ctkVTKThumbnailView.cpp

@@ -37,6 +37,7 @@
 #include <vtkRenderWindowInteractor.h>
 #include <vtkRenderer.h>
 #include <vtkSmartPointer.h>
+#include <vtkVersion.h>
 #include <vtkWeakPointer.h>
 
 //--------------------------------------------------------------------------
@@ -99,7 +100,11 @@ void ctkVTKThumbnailViewPrivate::init()
 
   this->FOVBox = vtkOutlineSource::New();
   this->FOVBoxMapper = vtkPolyDataMapper::New();
+#if VTK_MAJOR_VERSION <= 5
   this->FOVBoxMapper->SetInput( this->FOVBox->GetOutput() );
+#else
+  this->FOVBoxMapper->SetInputConnection( this->FOVBox->GetOutputPort() );
+#endif
   this->FOVBoxActor = vtkFollower::New();
 
   this->FOVBoxMapper->Update();
@@ -215,7 +220,11 @@ void ctkVTKThumbnailViewPrivate::updateBounds()
       // ---new: create new actor, mapper, deep copy, add it.
       newMapper = vtkPolyDataMapper::New();
       newMapper->ShallowCopy (mainActor->GetMapper() );
+#if VTK_MAJOR_VERSION <= 5
       newMapper->SetInput ( vtkPolyData::SafeDownCast(mainActor->GetMapper()->GetInput()) );
+#else
+      newMapper->SetInputData ( vtkPolyData::SafeDownCast(mainActor->GetMapper()->GetInput()) );
+#endif
 
       newActor = vtkActor::New();
       newActor->ShallowCopy (mainActor );

+ 3 - 0
Libs/Visualization/VTK/Widgets/ctkVTKWidgetsUtils.cpp

@@ -30,6 +30,7 @@
 // VTK includes
 #include <QVTKWidget.h>
 #include <vtkImageData.h>
+#include <vtkVersion.h>
 
 //----------------------------------------------------------------------------
 QImage ctk::grabVTKWidget(QWidget* widget, QRect rectangle)
@@ -72,7 +73,9 @@ QImage ctk::vtkImageDataToQImage(vtkImageData* imageData)
     {
     return QImage();
     }
+#if VTK_MAJOR_VERSION <= 5
   imageData->Update();
+#endif
   /// \todo retrieve just the UpdateExtent
   int width = imageData->GetDimensions()[0];
   int height = imageData->GetDimensions()[1];