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