Dear Andreas,

I managed to patch the current CamiTK 5.0.2version  to build with VTK9 (vtk9-compatibility.patch in attachment).

The build then stopped with the following error:
/build/camitk-5.0.2/imaging/components/dicom/DicomComponent.cpp:40:10: fatal error: vtkGDCMImageReader.h: No such file or directory

When this plugin is disabled in d/r (see below), the compilation ends with no error, (which is good news!) but all tests failed with the following error: /build/camitk-5.0.2/camitk-build/bin/camitk-testcomponents: error while loading shared libraries: libjawt.so: cannot open shared object file: No such file or directory

This error seems to be linked with a Java installation problem (maybe temporary?)

Let me know what will be the best course of action from this.
Best regards,
Emmanuel

PS: this is the d/r diff to disable the dicom component,
--- a/debian/rules
+++ b/debian/rules
@@ -42,6 +42,7 @@ CMAKE_EXTRA_FLAGS = \
        -DCEP_IMAGING:BOOL=TRUE \
        -DCEP_MODELING:BOOL=TRUE \
        -DCEP_TUTORIALS:BOOL=TRUE \
+       -DCOMPONENT_DICOM:BOOL=FALSE \
        \
        -DAPIDOC_SDK:BOOL=TRUE
--- a/modeling/actions/mml/GenerateModel.cpp
+++ b/modeling/actions/mml/GenerateModel.cpp
@@ -127 +127 @@ void GenerateModel::saveSOFAFile(QString baseFilename) {
-    ofstream scnFile(SOFAFileName.toUtf8());
+    std::ofstream scnFile(SOFAFileName.toUtf8());
@@ -188 +188 @@ void GenerateModel::saveMMLFiles(QString baseFilename) {
-        ofstream lmlofs(lmlFilename.toStdString().c_str());
+        std::ofstream lmlofs(lmlFilename.toStdString().c_str());
@@ -235 +235 @@ void GenerateModel::saveMMLFiles(QString baseFilename) {
-    ofstream mmlofs(mmlFilename.toStdString().c_str());
+    std::ofstream mmlofs(mmlFilename.toStdString().c_str());
@@ -268 +268 @@ void GenerateModel::saveMMLFiles(QString baseFilename) {
-        ofstream pmlofs(completePmlFilename.toStdString().c_str(), std::ios_base::trunc);
+        std::ofstream pmlofs(completePmlFilename.toStdString().c_str(), std::ios_base::trunc);
--- a/modeling/components/mmlcomponent/MMLComponent.cpp
+++ b/modeling/components/mmlcomponent/MMLComponent.cpp
@@ -80 +80 @@ MMLComponent::MMLComponent(const QString& fileName) : Component(fileName, QFileI
-            ofstream ofs(exportedMml.toStdString().c_str());
+            std::ofstream ofs(exportedMml.toStdString().c_str());
--- a/sdk/actions/image/multipicking/PickedPixelMap.cpp
+++ b/sdk/actions/image/multipicking/PickedPixelMap.cpp
@@ -165 +165 @@ void PickedPixelMap::savePixelList(QString fileName) {
-    ofstream myFile;
+    std::ofstream myFile;
deleted file mode 100644
Binary files a/sdk/actions/image/volumerendering/resources/Thumbs.db and /dev/null differ
--- a/sdk/actions/mesh/meshprocessing/MergeMeshs.cpp
+++ b/sdk/actions/mesh/meshprocessing/MergeMeshs.cpp
@@ -338 +338 @@ void MergeMeshs::printKToFile() {
-    ofstream mshFile(fileNeigh.toUtf8());
+    std::ofstream mshFile(fileNeigh.toUtf8());
--- a/sdk/actions/mesh/meshprocessing/MeshClipping.cpp
+++ b/sdk/actions/mesh/meshprocessing/MeshClipping.cpp
@@ -93,0 +94 @@ QWidget* MeshClipping::getWidget() {
+#if VTK_MAJOR_VERSION < 9          
@@ -95 +96,3 @@ QWidget* MeshClipping::getWidget() {
-
+#else
+            vtkRenderWindowInteractor* iren = default3DViewer->getRendererWidget()->renderWindow()->GetInteractor();
+#endif
--- a/sdk/applications/imp/main.cpp
+++ b/sdk/applications/imp/main.cpp
@@ -107 +107 @@ int main(int argc, char* argv[]) {
-
+                
--- a/sdk/components/msh/MshExtension.cpp
+++ b/sdk/components/msh/MshExtension.cpp
@@ -72 +72 @@ bool MshExtension::save(Component* component) const {
-    ofstream mshFile(meshComp->getFileName().toStdString().c_str());
+    std::ofstream mshFile(meshComp->getFileName().toStdString().c_str());
--- a/sdk/components/obj/ObjExtension.cpp
+++ b/sdk/components/obj/ObjExtension.cpp
@@ -90 +90 @@ bool ObjExtension::save(camitk::Component* component) const {
-    ofstream objFile(fileName.toUtf8());
+    std::ofstream objFile(fileName.toUtf8());
--- a/sdk/components/off/OffExtension.cpp
+++ b/sdk/components/off/OffExtension.cpp
@@ -77 +77 @@ bool OffExtension::save(Component* component) const {
-    ofstream offFile(offFilename.toUtf8());
+    std::ofstream offFile(offFilename.toUtf8());
--- a/sdk/components/vrml/VRMLComponentExtension.cpp
+++ b/sdk/components/vrml/VRMLComponentExtension.cpp
@@ -80,0 +81 @@ bool VRMLComponentExtension::save(Component* component) const {
+#if VTK_MAJOR_VERSION < 9
@@ -81,0 +83,3 @@ bool VRMLComponentExtension::save(Component* component) const {
+#else
+                exporter->SetInput(default3DViewer->getRendererWidget()->renderWindow());
+#endif
deleted file mode 100644
--- a/sdk/libraries/core/viewer/InteractiveViewer.cpp
+++ b/sdk/libraries/core/viewer/InteractiveViewer.cpp
@@ -151,0 +152 @@ void InteractiveViewer::init() {
+#if VTK_MAJOR_VERSION < 9
@@ -152,0 +154,3 @@ void InteractiveViewer::init() {
+#else
+    connector->Connect(rendererWidget->interactor(), vtkCommand::EndPickEvent, this, SLOT(picked()));
+#endif
@@ -2056,0 +2061 @@ void InteractiveViewer::picked() {
+#if VTK_MAJOR_VERSION < 9
@@ -2057,0 +2063,3 @@ void InteractiveViewer::picked() {
+#else
+    vtkSmartPointer<vtkAbstractPropPicker> picker = vtkAbstractPropPicker::SafeDownCast(this->rendererWidget->interactor()->GetPicker());
+#endif
@@ -2152,0 +2161 @@ void InteractiveViewer::picked() {
+#if VTK_MAJOR_VERSION < 9
@@ -2153,0 +2163,3 @@ void InteractiveViewer::picked() {
+#else
+            vtkSmartPointer<vtkCellPicker> cellPicker = vtkCellPicker::SafeDownCast(this->rendererWidget->interactor()->GetPicker());
+#endif
@@ -2176,0 +2189 @@ void InteractiveViewer::picked() {
+#if VTK_MAJOR_VERSION < 9
@@ -2177,0 +2191,3 @@ void InteractiveViewer::picked() {
+#else
+            vtkSmartPointer<vtkRenderedAreaPicker> areaPicker = vtkRenderedAreaPicker::SafeDownCast(this->rendererWidget->interactor()->GetPicker());
+#endif
@@ -2198,0 +2215 @@ void InteractiveViewer::picked() {
+#if VTK_MAJOR_VERSION < 9
@@ -2199,0 +2217,3 @@ void InteractiveViewer::picked() {
+#else
+            vtkSmartPointer<vtkRenderedAreaPicker> areaPicker = vtkRenderedAreaPicker::SafeDownCast(this->rendererWidget->interactor()->GetPicker());
+#endif
--- a/sdk/libraries/core/viewer/RendererWidget.cpp
+++ b/sdk/libraries/core/viewer/RendererWidget.cpp
@@ -31 +31 @@
-// // -- QT stuff
+// -- QT stuff
@@ -39,0 +40 @@
+
@@ -110 +111 @@
-// Extra classes are required for VTK8
+// Extra classes are required for VTK8 and up
@@ -119,3 +119,0 @@ static void initialize() {
-    // needed to ensure appropriate OpenGL context is created for VTK rendering.
-    //QSurfaceFormat::setDefaultFormat(QVTKOpenGLWidget::defaultFormat());
-
@@ -127,0 +126 @@ static void initialize() {
+
@@ -140,0 +140,20 @@ Q_COREAPP_STARTUP_FUNCTION(initialize)
+
+#elif VTK_MAJOR_VERSION == 9
+#include <vtkOpenGLRenderWindow.h>
+#include <QSurfaceFormat>
+
+// On some OpenGL drivers (e.g. Mesa 13), the OpenGL context has to be requested before hand
+static void initialize() {
+    CAMITK_TRACE_ALT("Initializing OpenGL Context...");
+
+    // recommended: disable multisampling for older version of OpenGL ES
+    // see for instance how mitk (thank guys!) solved the problem in BaseApplication::getQApplication()
+    // from Modules/AppUtil/src/mitkBaseApplication.cpp
+    vtkOpenGLRenderWindow::SetGlobalMaximumNumberOfMultiSamples(0);
+
+    auto defaultFormat = QVTKOpenGLStereoWidget::defaultFormat();
+    defaultFormat.setSamples(0);
+    QSurfaceFormat::setDefaultFormat(defaultFormat);
+
+#ifdef Q_OS_OSX
+    QCoreApplication::setAttribute(Qt::AA_DontCreateNativeWidgetSiblings);
@@ -142,0 +162,11 @@ Q_COREAPP_STARTUP_FUNCTION(initialize)
+    QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts);
+}
+
+Q_COREAPP_STARTUP_FUNCTION(initialize)
+
+
+
+#endif
+
+
+
@@ -154,0 +185,3 @@ RendererWidget::RendererWidget(QWidget * parent, ControlMode mode) : QVTKOpenGLW
+#elif VTK_MAJOR_VERSION == 9
+RendererWidget::RendererWidget(QWidget * parent, ControlMode mode) : QVTKOpenGLStereoWidget(parent) {
+
@@ -207 +240 @@ RendererWidget::RendererWidget(QWidget * parent, ControlMode mode) : QVTKOpenGLW
-    CAMITK_TRACE("---------------------------------------------------------------------\n")
+    CAMITK_TRACE("-----------------------------------\n")
@@ -243 +276 @@ RendererWidget::RendererWidget(QWidget * parent, ControlMode mode) : QVTKOpenGLW
-#elif VTK_MAJOR_VERSION == 8
+#elif VTK_MAJOR_VERSION >= 8
@@ -255,0 +289,3 @@ RendererWidget::RendererWidget(QWidget * parent, ControlMode mode) : QVTKOpenGLW
+    //-- renderer
+    renderer = vtkSmartPointer<vtkRenderer>::New();
+
@@ -256,0 +293,3 @@ RendererWidget::RendererWidget(QWidget * parent, ControlMode mode) : QVTKOpenGLW
+#if VTK_MAJOR_VERSION >= 9
+    vtkSmartPointer<vtkRenderWindow> renderWindow = QVTKOpenGLStereoWidget::renderWindow();
+#else
@@ -257,0 +297 @@ RendererWidget::RendererWidget(QWidget * parent, ControlMode mode) : QVTKOpenGLW
+#endif
@@ -259,3 +299 @@ RendererWidget::RendererWidget(QWidget * parent, ControlMode mode) : QVTKOpenGLW
-    //-- renderer
-    renderer = vtkSmartPointer<vtkRenderer>::New();
-#if VTK_MAJOR_VERSION == 8
+#if VTK_MAJOR_VERSION >= 8
@@ -268,0 +307,3 @@ RendererWidget::RendererWidget(QWidget * parent, ControlMode mode) : QVTKOpenGLW
+
+    renderWindow->SetMultiSamples(0); // no MSAA as it is incompatible with depth peeling
+    renderWindow->SetAlphaBitPlanes(1); // Necessary for depth peeling
@@ -273,3 +314,3 @@ RendererWidget::RendererWidget(QWidget * parent, ControlMode mode) : QVTKOpenGLW
-    interactor = vtkSmartPointer<QVTKInteractor>::New();
-    interactor->SetRenderWindow(renderWindow);
-    renderWindow->SetInteractor(interactor);
+    renderWindowInteractor = vtkSmartPointer<QVTKInteractor>::New();
+    renderWindowInteractor->SetRenderWindow(renderWindow);
+    renderWindow->SetInteractor(renderWindowInteractor);
@@ -287 +328 @@ RendererWidget::RendererWidget(QWidget * parent, ControlMode mode) : QVTKOpenGLW
-    interactor->Initialize();
+    renderWindowInteractor->Initialize();
@@ -454 +495 @@ RendererWidget::RendererWidget(QWidget * parent, ControlMode mode) : QVTKOpenGLW
-    logoWidget->SetInteractor(interactor);
+    logoWidget->SetInteractor(renderWindowInteractor);
@@ -472 +513 @@ RendererWidget::RendererWidget(QWidget * parent, ControlMode mode) : QVTKOpenGLW
-    colorBarWidget->SetInteractor(interactor);
+    colorBarWidget->SetInteractor(renderWindowInteractor);
@@ -583,0 +625,6 @@ void RendererWidget::screenshot(QString filename) {
+#if VTK_MAJOR_VERSION >= 9
+        vtkSmartPointer<vtkRenderWindow> currentRenderWindow = QVTKOpenGLStereoWidget::renderWindow();
+#else
+        vtkSmartPointer<vtkRenderWindow> currentRenderWindow = GetRenderWindow();
+#endif
+
@@ -593 +640 @@ void RendererWidget::screenshot(QString filename) {
-        exporter->SetInput(GetRenderWindow());
+        exporter->SetInput(currentRenderWindow);
@@ -606 +653 @@ void RendererWidget::screenshot(QString filename) {
-            imageFilter->SetInput(GetRenderWindow());
+            imageFilter->SetInput(currentRenderWindow);
@@ -621 +668 @@ void RendererWidget::screenshot(QString filename) {
-                gl2psExporter->SetInput(GetRenderWindow());
+                gl2psExporter->SetInput(currentRenderWindow);
@@ -631 +678,2 @@ void RendererWidget::refresh() {
-    // QVTKOpenGLWidget now relies on VTK applications calling `Render` on the window when data or rendering has changed.
+    // QVTKOpenGLWidget and QVTKOpenGLNativeWidget relies on VTK applications 
+    // calling `Render` on the window when data or rendering has changed.
@@ -632,0 +681,2 @@ void RendererWidget::refresh() {
+#elif VTK_MAJOR_VERSION == 9
+    renderWindow()->Render();
@@ -638 +687,0 @@ void RendererWidget::refresh() {
-
@@ -649 +698 @@ void RendererWidget::getBackgroundColor(double& r, double& g, double& b) {
-//--------------------- getGradientBackground --------------
+//--------------------- getGradientBackground ---------------------
@@ -654 +703 @@ bool RendererWidget::getGradientBackground() {
-//--------------------- setGradientBackground --------------
+//--------------------- setGradientBackground ---------------------
@@ -669 +718 @@ void RendererWidget::setGradientBackground(bool gb) {
-//--------------------- toogle3DRedBlue --------------
+//--------------------- toogle3DRedBlue ---------------------
@@ -671,0 +721,5 @@ void RendererWidget::toogle3DRedBlue() {
+#if VTK_MAJOR_VERSION >= 9
+        vtkSmartPointer<vtkRenderWindow> renderWindow = QVTKOpenGLStereoWidget::renderWindow();
+#else
+        vtkSmartPointer<vtkRenderWindow> renderWindow = GetRenderWindow();
+#endif
@@ -675,4 +729,4 @@ void RendererWidget::toogle3DRedBlue() {
-        GetRenderWindow()->StereoCapableWindowOn();
-        GetRenderWindow()->SetStereoTypeToRedBlue();
-        GetRenderWindow()->StereoRenderOn(); //On();
-        GetRenderWindow()->StereoUpdate();
+        renderWindow->StereoCapableWindowOn();
+        renderWindow->SetStereoTypeToRedBlue();
+        renderWindow->StereoRenderOn(); //On();
+        renderWindow->StereoUpdate();
@@ -681,2 +735,2 @@ void RendererWidget::toogle3DRedBlue() {
-        GetRenderWindow()->StereoRenderOff(); //On();
-        GetRenderWindow()->StereoUpdate();
+        renderWindow->StereoRenderOff(); //On();
+        renderWindow->StereoUpdate();
@@ -686 +740 @@ void RendererWidget::toogle3DRedBlue() {
-//--------------------- toggleLogo --------------
+//--------------------- toggleLogo ---------------------
@@ -691,0 +746 @@ void RendererWidget::toggleLogo(bool c) {
+//--------------------- setAreaPicking ---------------------
@@ -696 +751 @@ void RendererWidget::setAreaPicking(bool areaPicking) {
-// --------------------- getControlMode ----------------------------
+// --------------------- getControlMode ---------------------
@@ -701 +756 @@ RendererWidget::ControlMode RendererWidget::getControlMode() const {
-// --------------------- setControlMode ----------------------------
+// --------------------- setControlMode ---------------------
@@ -724 +779 @@ void RendererWidget::setControlMode(ControlMode mode) {
-        interactor->SetInteractorStyle(controlInteractorStyle);
+        renderWindowInteractor->SetInteractorStyle(controlInteractorStyle);
@@ -729,0 +785 @@ void RendererWidget::setControlMode(ControlMode mode) {
+// --------------------- startPicking ---------------------
@@ -731 +787 @@ void RendererWidget::startPicking() {
-    interactor->SetInteractorStyle(pickInteractorStyle);
+    renderWindowInteractor->SetInteractorStyle(pickInteractorStyle);
@@ -734,0 +791 @@ void RendererWidget::startPicking() {
+// --------------------- endPicking ---------------------
@@ -736 +793 @@ void RendererWidget::endPicking() {
-    interactor->SetInteractorStyle(controlInteractorStyle);
+    renderWindowInteractor->SetInteractorStyle(controlInteractorStyle);
@@ -740 +797 @@ void RendererWidget::endPicking() {
-// --------------------- pick -----------------------------------
+// --------------------- pick ---------------------
@@ -751 +808 @@ void RendererWidget::pick() {
-// --------------------- pickActor -----------------------------------
+// --------------------- pickActor ---------------------
@@ -754 +811,9 @@ void RendererWidget::pickActor(int, int) {
-    vtkSmartPointer<vtkPicker> picker = vtkPicker::SafeDownCast(GetInteractor()->GetPicker());
+#if VTK_MAJOR_VERSION >= 9    
+    vtkSmartPointer<QVTKInteractor> currentInteractor = interactor();
+    // get the current renderer for picking
+    renderer = interactor()->FindPokedRenderer(currentInteractor->GetEventPosition()[0], currentInteractor->GetEventPosition()[1]);
+#else
+    vtkSmartPointer<QVTKInteractor> currentInteractor = GetInteractor();
+    // get the current renderer for picking
+    renderer = GetInteractor()->FindPokedRenderer(currentInteractor->GetEventPosition()[0], currentInteractor->GetEventPosition()[1]);
+#endif
@@ -755,0 +821 @@ void RendererWidget::pickActor(int, int) {
+    vtkSmartPointer<vtkPicker> picker = vtkPicker::SafeDownCast(currentInteractor->GetPicker());
@@ -760,3 +825,0 @@ void RendererWidget::pickActor(int, int) {
-    // get the current renderer for picking
-    renderer = GetInteractor()->FindPokedRenderer(GetInteractor()->GetEventPosition()[0], GetInteractor()->GetEventPosition()[1]);
-
@@ -764,2 +827,2 @@ void RendererWidget::pickActor(int, int) {
-    int picked = picker->Pick(GetInteractor()->GetEventPosition()[0],
-                              GetInteractor()->GetEventPosition()[1],
+    int picked = picker->Pick(currentInteractor->GetEventPosition()[0],
+                              currentInteractor->GetEventPosition()[1],
@@ -767 +830 @@ void RendererWidget::pickActor(int, int) {
-                              GetInteractor()->GetRenderWindow()->GetRenderers()->GetFirstRenderer());
+                              currentInteractor->GetRenderWindow()->GetRenderers()->GetFirstRenderer());
@@ -778 +841 @@ void RendererWidget::pickActor(int, int) {
-// ----------------------- setBackfaceCulling -----------------------------
+// ----------------------- setBackfaceCulling ----------------------
@@ -800 +863 @@ bool RendererWidget::getBackfaceCulling() const {
-// --------------- setCameraOrientation ------------------------------------------------
+// --------------------- setCameraOrientation ---------------------
@@ -805 +868 @@ void RendererWidget::setCameraOrientation(RendererWidget::CameraOrientation a) {
-// --------------- getCameraOrientation ------------------------------------------------
+// --------------------- getCameraOrientation ---------------------
@@ -814 +877 @@ void RendererWidget::setLightFollowCamera(bool lightFollow) {
-    interactor->LightFollowCameraOff(); // legacy
+    renderWindowInteractor->LightFollowCameraOff(); // legacy
@@ -933 +996 @@ bool RendererWidget::getColorScale() const {
-//------------------------- setColorScaleMinMax ----------------------------
+//------------------------- setColorScaleMinMax ---------------------
@@ -942 +1005 @@ void RendererWidget::setColorScaleMinMax(double min, double max) {
-//------------------------- setColorScaleTitle ----------------------------
+//------------------------- setColorScaleTitle ---------------------
@@ -982,3 +1045,2 @@ void RendererWidget::addProp(vtkSmartPointer<vtkProp> prop, bool refresh) {
-        if (refresh)
-            // update axes size
-        {
+        // update axes size
+        if (refresh) {
@@ -1001,3 +1063,2 @@ void RendererWidget::removeProp(vtkSmartPointer<vtkProp> prop, bool refresh) {
-        if (refresh)
-            // update axes size
-        {
+        // update axes size
+        if (refresh) {
@@ -1009 +1070 @@ void RendererWidget::removeProp(vtkSmartPointer<vtkProp> prop, bool refresh) {
-// --------------------- actorTransform --------------------------------
+// --------------------- actorTransform -------------------------
@@ -1112 +1173 @@ void RendererWidget::rotateCamera(double angle, int axe) {
-// --------------------- keyPressEvent --------------------------------
+// --------------------- keyPressEvent -------------------------
@@ -1120 +1181,2 @@ void RendererWidget::keyPressEvent(QKeyEvent* event) {
-//--------------------- mousePressEvent ----------------------------------
+
+//--------------------- mousePressEvent ---------------------------
@@ -1122,2 +1184,2 @@ void RendererWidget::mousePressEvent(QMouseEvent* event) {
-    if ((QApplication::keyboardModifiers() == Qt::ControlModifier) &&
-            (event->button() == Qt::LeftButton)) {
+    
+    if (QApplication::keyboardModifiers() == Qt::ControlModifier && event->button() == Qt::LeftButton) {
@@ -1126 +1187,0 @@ void RendererWidget::mousePressEvent(QMouseEvent* event) {
-
@@ -1140,0 +1202,3 @@ void RendererWidget::mousePressEvent(QMouseEvent* event) {
+
+#elif VTK_MAJOR_VERSION == 9
+        QVTKOpenGLStereoWidget::mousePressEvent(event);
@@ -1144,0 +1209 @@ void RendererWidget::mousePressEvent(QMouseEvent* event) {
+
@@ -1147 +1212 @@ void RendererWidget::mousePressEvent(QMouseEvent* event) {
-//--------------------- mouseReleaseEvent ----------------------------------
+//--------------------- mouseReleaseEvent ---------------------------
@@ -1148,0 +1214 @@ void RendererWidget::mouseReleaseEvent(QMouseEvent* event) {
+
@@ -1156,0 +1223,4 @@ void RendererWidget::mouseReleaseEvent(QMouseEvent* event) {
+
+#elif VTK_MAJOR_VERSION == 9
+    QVTKOpenGLStereoWidget::mouseReleaseEvent(event);
+
@@ -1163 +1233 @@ void RendererWidget::mouseReleaseEvent(QMouseEvent* event) {
-// --------------------- mouseMoveEvent ----------------------------------
+// --------------------- mouseMoveEvent ---------------------------
@@ -1164,0 +1235 @@ void RendererWidget::mouseMoveEvent(QMouseEvent* event) {
+  
@@ -1180,0 +1252,3 @@ void RendererWidget::mouseMoveEvent(QMouseEvent* event) {
+#elif VTK_MAJOR_VERSION == 9    
+    QVTKOpenGLStereoWidget::mouseMoveEvent(event);
+
@@ -1184 +1257,0 @@ void RendererWidget::mouseMoveEvent(QMouseEvent* event) {
-}
@@ -1185,0 +1259 @@ void RendererWidget::mouseMoveEvent(QMouseEvent* event) {
+}
@@ -1272,0 +1347,3 @@ void RendererWidget::getMouse3DCoordinates(double& x, double& y, double& z) {
+#if VTK_MAJOR_VERSION >= 9    
+    renderer = interactor()->FindPokedRenderer(cursor_pos.x(), cursor_pos.y());
+#else
@@ -1273,0 +1351 @@ void RendererWidget::getMouse3DCoordinates(double& x, double& y, double& z) {
+#endif
@@ -1286,0 +1365,6 @@ void RendererWidget::setPicker(vtkSmartPointer<vtkAbstractPropPicker> woodyWood)
+#if VTK_MAJOR_VERSION >= 9    
+    if (interactor()) {
+        // I know, it is really Woody Wood Pecker, but you know, with a french accent...
+        interactor()->SetPicker(woodyWood);
+    }
+#else
@@ -1290,0 +1375 @@ void RendererWidget::setPicker(vtkSmartPointer<vtkAbstractPropPicker> woodyWood)
+#endif  
--- a/sdk/libraries/core/viewer/RendererWidget.h
+++ b/sdk/libraries/core/viewer/RendererWidget.h
@@ -57,0 +58,3 @@
+#elif VTK_MAJOR_VERSION == 9
+#include <QVTKOpenGLStereoWidget.h>
+
@@ -111,0 +115,3 @@ class CAMITK_API RendererWidget : public QVTKOpenGLWidget {
+#elif VTK_MAJOR_VERSION == 9
+class CAMITK_API RendererWidget : public QVTKOpenGLStereoWidget {
+
@@ -287 +292,0 @@ public :
-
@@ -378 +383 @@ protected :
-    vtkSmartPointer<QVTKInteractor> interactor;
+    vtkSmartPointer<QVTKInteractor> renderWindowInteractor;
@@ -383,3 +387,0 @@ protected :
-    ///// current interaction mode
-    //InteractionMode interactionMode;
-
--- a/tutorials/actions/vtkwidget/BoxWidget.cpp
+++ b/tutorials/actions/vtkwidget/BoxWidget.cpp
@@ -82,0 +83 @@ QWidget* BoxWidget::getWidget() {
+#if VTK_MAJOR_VERSION < 9
@@ -83,0 +85,3 @@ QWidget* BoxWidget::getWidget() {
+#else
+            vtkRenderWindowInteractor* iren = default3DViewer->getRendererWidget()->renderWindow()->GetInteractor();
+#endif
--- a/tutorials/actions/vtkwidget/ContourWidget.cpp
+++ b/tutorials/actions/vtkwidget/ContourWidget.cpp
@@ -220,0 +221 @@ void ContourWidget::initContour() {
+#if VTK_MAJOR_VERSION < 9
@@ -221,0 +223,3 @@ void ContourWidget::initContour() {
+#else
+            interactor = dynamic_cast<InteractiveSliceViewer*>(Application::getViewer("Coronal Viewer"))->getRendererWidget()->renderWindow()->GetInteractor();
+#endif
@@ -225,0 +230 @@ void ContourWidget::initContour() {
+#if VTK_MAJOR_VERSION < 9
@@ -226,0 +232,3 @@ void ContourWidget::initContour() {
+#else
+                interactor = dynamic_cast<InteractiveSliceViewer*>(Application::getViewer("Sagittal Viewer"))->getRendererWidget()->renderWindow()->GetInteractor();
+#endif
@@ -229,0 +238 @@ void ContourWidget::initContour() {
+#if VTK_MAJOR_VERSION < 9
@@ -230,0 +240,3 @@ void ContourWidget::initContour() {
+#else
+                interactor = dynamic_cast<InteractiveSliceViewer*>(Application::getViewer("Axial Viewer"))->getRendererWidget()->renderWindow()->GetInteractor();
+#endif

Reply via email to