diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/files.cmake b/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/files.cmake
index 725a26d759..8d551b3b8e 100644
--- a/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/files.cmake
+++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/files.cmake
@@ -1,94 +1,98 @@
SET(SRC_CPP_FILES
QmitkODFDetailsWidget.cpp
QmitkODFRenderWidget.cpp
QmitkPartialVolumeAnalysisWidget.cpp
QmitkIVIMWidget.cpp
)
SET(INTERNAL_CPP_FILES
mitkPluginActivator.cpp
QmitkQBallReconstructionView.cpp
QmitkPreprocessingView.cpp
QmitkDiffusionDicomImportView.cpp
QmitkDiffusionQuantificationView.cpp
QmitkTensorReconstructionView.cpp
QmitkDiffusionImagingPublicPerspective.cpp
QmitkControlVisualizationPropertiesView.cpp
QmitkODFDetailsView.cpp
QmitkGibbsTrackingView.cpp
QmitkFiberBundleOperationsView.cpp
QmitkFiberBundleDeveloperView.cpp
QmitkPartialVolumeAnalysisView.cpp
QmitkIVIMView.cpp
+ QmitkScreenshotMaker.cpp
)
SET(UI_FILES
src/internal/QmitkQBallReconstructionViewControls.ui
src/internal/QmitkPreprocessingViewControls.ui
src/internal/QmitkDiffusionDicomImportViewControls.ui
src/internal/QmitkDiffusionQuantificationViewControls.ui
src/internal/QmitkTensorReconstructionViewControls.ui
src/internal/QmitkControlVisualizationPropertiesViewControls.ui
src/internal/QmitkODFDetailsViewControls.ui
src/internal/QmitkGibbsTrackingViewControls.ui
src/internal/QmitkFiberBundleOperationsViewControls.ui
src/internal/QmitkFiberBundleDeveloperViewControls.ui
src/internal/QmitkPartialVolumeAnalysisViewControls.ui
src/internal/QmitkIVIMViewControls.ui
+ src/internal/QmitkScreenshotMakerControls.ui
)
SET(MOC_H_FILES
src/internal/mitkPluginActivator.h
src/internal/QmitkQBallReconstructionView.h
src/internal/QmitkPreprocessingView.h
src/internal/QmitkDiffusionDicomImportView.h
src/internal/QmitkDiffusionImagingPublicPerspective.h
src/internal/QmitkDiffusionQuantificationView.h
src/internal/QmitkTensorReconstructionView.h
src/internal/QmitkControlVisualizationPropertiesView.h
src/internal/QmitkODFDetailsView.h
src/QmitkODFRenderWidget.h
src/QmitkODFDetailsWidget.h
src/internal/QmitkGibbsTrackingView.h
src/internal/QmitkFiberBundleOperationsView.h
src/internal/QmitkFiberBundleDeveloperView.h
src/internal/QmitkPartialVolumeAnalysisView.h
src/QmitkPartialVolumeAnalysisWidget.h
src/internal/QmitkIVIMView.h
+ src/internal/QmitkScreenshotMaker.h
)
SET(CACHED_RESOURCE_FILES
# list of resource files which can be used by the plug-in
# system without loading the plug-ins shared library,
# for example the icon used in the menu and tabs for the
# plug-in views in the workbench
plugin.xml
resources/preprocessing.png
resources/dwiimport.png
resources/quantification.png
resources/reconodf.png
resources/recontensor.png
resources/vizControls.png
resources/OdfDetails.png
resources/GibbsTracking.png
resources/FiberBundleOperations.png
resources/PartialVolumeAnalysis_24.png
resources/IVIM_48.png
+ resources/screenshot_maker.png
)
SET(QRC_FILES
# uncomment the following line if you want to use Qt resources
resources/QmitkDiffusionImaging.qrc
)
SET(CPP_FILES )
foreach(file ${SRC_CPP_FILES})
SET(CPP_FILES ${CPP_FILES} src/${file})
endforeach(file ${SRC_CPP_FILES})
foreach(file ${INTERNAL_CPP_FILES})
SET(CPP_FILES ${CPP_FILES} src/internal/${file})
endforeach(file ${INTERNAL_CPP_FILES})
diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/plugin.xml b/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/plugin.xml
index 45d0de0ebc..424de4d1b8 100644
--- a/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/plugin.xml
+++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/plugin.xml
@@ -1,96 +1,103 @@
+
+
+
+
diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/resources/screenshot_maker.png b/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/resources/screenshot_maker.png
new file mode 100644
index 0000000000..ee2840db6d
Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/resources/screenshot_maker.png differ
diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/src/internal/QmitkScreenshotMaker.cpp b/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/src/internal/QmitkScreenshotMaker.cpp
new file mode 100644
index 0000000000..89ede47d32
--- /dev/null
+++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/src/internal/QmitkScreenshotMaker.cpp
@@ -0,0 +1,401 @@
+/*=========================================================================
+
+ Program: Medical Imaging & Interaction Toolkit
+ Language: C++
+ Date: $Date$
+ Version: $Revision: 16947 $
+
+ Copyright (c) German Cancer Research Center, Division of Medical and
+ Biological Informatics. All rights reserved.
+ See MITKCopyright.txt or http://www.mitk.org/copyright.html for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the above copyright notices for more information.
+
+ =========================================================================*/
+
+
+#include "QmitkScreenshotMaker.h"
+//#include "QmitkMovieMakerControls.h"
+#include "QmitkStepperAdapter.h"
+#include "QmitkStdMultiWidget.h"
+#include "QmitkCommonFunctionality.h"
+
+#include "mitkVtkPropRenderer.h"
+#include "mitkGlobalInteraction.h"
+
+#include
+
+#include
+#include
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include "qapplication.h"
+
+#include "vtkImageWriter.h"
+#include "vtkJPEGWriter.h"
+#include "vtkPNGWriter.h"
+#include "vtkRenderLargeImage.h"
+#include "vtkRenderWindowInteractor.h"
+#include "vtkRenderer.h"
+#include "vtkTestUtilities.h"
+
+#include
+#include "vtkMitkRenderProp.h"
+
+#include
+#include
+#include "vtkRenderWindowInteractor.h"
+#include
+
+#include "mitkSliceNavigationController.h"
+#include "mitkPlanarFigure.h"
+
+QmitkScreenshotMaker::QmitkScreenshotMaker(QObject *parent, const char * /*name*/)
+
+:
+ QmitkFunctionality(), m_Controls(NULL),
+ m_SelectedNode(0),
+ m_BackgroundColor(QColor(0,0,0))
+{
+
+ parentWidget = parent;
+
+}
+
+QmitkScreenshotMaker::~QmitkScreenshotMaker()
+{
+}
+
+void QmitkScreenshotMaker::CreateConnections()
+{
+ if (m_Controls)
+ {
+ connect((QObject*) m_Controls->m_AllViews, SIGNAL(clicked()), (QObject*) this, SLOT(GenerateMultiplanar3DHighresScreenshot()));
+ connect((QObject*) m_Controls->m_View1, SIGNAL(clicked()), (QObject*) this, SLOT(View1()));
+ connect((QObject*) m_Controls->m_View2, SIGNAL(clicked()), (QObject*) this, SLOT(View2()));
+ connect((QObject*) m_Controls->m_View3, SIGNAL(clicked()), (QObject*) this, SLOT(View3()));
+ connect((QObject*) m_Controls->m_Shot, SIGNAL(clicked()), (QObject*) this, SLOT(GenerateMultiplanarScreenshots()));
+ connect((QObject*) m_Controls->m_BackgroundColor, SIGNAL(clicked()), (QObject*) this, SLOT(SelectBackgroundColor()));
+
+ connect((QObject*) m_Controls->btnScreenshot, SIGNAL(clicked()), this, SLOT(
+ GenerateScreenshot()));
+ connect((QObject*) m_Controls->m_HRScreenshot, SIGNAL(clicked()), this, SLOT(
+ Generate3DHighresScreenshot()));
+
+ // blocking of ui elements during movie generation
+ connect((QObject*) this, SIGNAL(StartBlockControls()), (QObject*) this, SLOT(BlockControls()));
+
+ connect((QObject*) this, SIGNAL(EndBlockControls()), (QObject*) this, SLOT(UnBlockControls()));
+
+ connect((QObject*) this, SIGNAL(EndBlockControlsMovieDeactive()), (QObject*) this, SLOT(
+ UnBlockControlsMovieDeactive()));
+
+
+ }
+}
+
+void QmitkScreenshotMaker::Activated()
+{
+ QmitkFunctionality::Activated();
+}
+
+void QmitkScreenshotMaker::Deactivated()
+{
+ QmitkFunctionality::Deactivated();
+}
+
+void QmitkScreenshotMaker::GenerateScreenshot()
+{
+ emit StartBlockControls();
+
+ QString fileName = QFileDialog::getSaveFileName(NULL, "Save screenshot to...", QDir::currentPath(), "JPEG file (*.jpg);;PNG file (*.png)");
+
+ vtkRenderer* renderer = mitk::GlobalInteraction::GetInstance()->GetFocus()->GetVtkRenderer();
+ if (renderer == NULL)
+ return;
+ this->TakeScreenshot(renderer, 1, fileName);
+
+ emit EndBlockControlsMovieDeactive();
+}
+
+void QmitkScreenshotMaker::GenerateMultiplanarScreenshots()
+{
+ QString fileName = QFileDialog::getExistingDirectory(NULL, "Save screenshots to...", QDir::currentPath());
+
+ emit StartBlockControls();
+
+ mitk::DataNode* n;
+ n = GetDataStorage()->GetNamedNode("widget1Plane");
+ if(n)
+ {
+ n->SetProperty( "color", mitk::ColorProperty::New( 1,1,1 ) );
+// n->SetProperty("helper object", mitk::BoolProperty::New(false));
+ }
+
+ n = GetDataStorage()->GetNamedNode("widget2Plane");
+ if(n)
+ {
+ n->SetProperty( "color", mitk::ColorProperty::New( 1,1,1 ) );
+// n->SetProperty("helper object", mitk::BoolProperty::New(false));
+ }
+
+ n = GetDataStorage()->GetNamedNode("widget3Plane");
+ if(n)
+ {
+ n->SetProperty( "color", mitk::ColorProperty::New( 1,1,1 ) );
+// n->SetProperty("helper object", mitk::BoolProperty::New(false));
+ }
+
+ // only works correctly for 3D RenderWindow
+ vtkRenderer* renderer = m_MultiWidget->mitkWidget1->GetRenderer()->GetVtkRenderer();
+ if (renderer != NULL)
+ this->TakeScreenshot(renderer, 1, fileName+"/widget_1.png");
+
+ renderer = m_MultiWidget->mitkWidget2->GetRenderer()->GetVtkRenderer();
+ if (renderer != NULL)
+ this->TakeScreenshot(renderer, 1, fileName+"/widget_2.png");
+
+ renderer = m_MultiWidget->mitkWidget3->GetRenderer()->GetVtkRenderer();
+ if (renderer != NULL)
+ this->TakeScreenshot(renderer, 1, fileName+"/widget_3.png");
+
+ n = GetDataStorage()->GetNamedNode("widget1Plane");
+ if(n)
+ {
+ n->SetProperty( "color", mitk::ColorProperty::New( 1,0,0 ) );
+// n->SetProperty("helper object", mitk::BoolProperty::New(false));
+ }
+
+ n = GetDataStorage()->GetNamedNode("widget2Plane");
+ if(n)
+ {
+ n->SetProperty( "color", mitk::ColorProperty::New( 0,1,0 ) );
+// n->SetProperty("helper object", mitk::BoolProperty::New(false));
+ }
+
+ n = GetDataStorage()->GetNamedNode("widget3Plane");
+ if(n)
+ {
+ n->SetProperty( "color", mitk::ColorProperty::New( 0,0,1 ) );
+// n->SetProperty("helper object", mitk::BoolProperty::New(false));
+ }
+
+ emit EndBlockControlsMovieDeactive();
+}
+
+void QmitkScreenshotMaker::Generate3DHighresScreenshot()
+{
+ QString fileName = QFileDialog::getSaveFileName(NULL, "Save screenshot to...", QDir::currentPath(), "JPEG file (*.jpg);;PNG file (*.png)");
+ GenerateHR3DAtlasScreenshots(fileName);
+}
+
+void QmitkScreenshotMaker::GenerateMultiplanar3DHighresScreenshot()
+{
+ QString fileName = QFileDialog::getExistingDirectory( NULL, "Save screenshots to...", QDir::currentPath());
+
+ GetCam()->Azimuth( -7.5 );
+ GetCam()->Roll(-4);
+ GenerateHR3DAtlasScreenshots(fileName+"/screen1.png");
+ GetCam()->Roll(4);
+
+ GetCam()->Azimuth( 90 );
+ GetCam()->Elevation( 4 );
+ GenerateHR3DAtlasScreenshots(fileName+"/screen2.png");
+
+ GetCam()->Elevation( 90 );
+ GetCam()->Roll( -2.5 );
+ GenerateHR3DAtlasScreenshots(fileName+"/screen3.png");
+
+}
+
+void QmitkScreenshotMaker::GenerateHR3DAtlasScreenshots(QString fileName)
+{
+ emit StartBlockControls();
+
+ // only works correctly for 3D RenderWindow
+ vtkRenderer* renderer = m_MultiWidget->mitkWidget4->GetRenderer()->GetVtkRenderer();
+ if (renderer == NULL)
+ return;
+ this->TakeScreenshot(renderer, this->m_Controls->m_MagFactor->text().toFloat(), fileName);
+
+ emit EndBlockControlsMovieDeactive();
+}
+
+vtkCamera* QmitkScreenshotMaker::GetCam()
+{
+ mitk::BaseRenderer* renderer = mitk::BaseRenderer::GetInstance(GetActiveStdMultiWidget()->mitkWidget4->GetRenderWindow());
+ vtkCamera* cam = 0;
+ const mitk::VtkPropRenderer *propRenderer = dynamic_cast( renderer );
+ if (propRenderer)
+ {
+ // get vtk renderer
+ vtkRenderer* vtkrenderer = propRenderer->GetVtkRenderer();
+ if (vtkrenderer)
+ {
+ // get vtk camera
+ vtkCamera* vtkcam = vtkrenderer->GetActiveCamera();
+ if (vtkcam)
+ {
+ // vtk smart pointer handling
+ cam = vtkcam;
+ cam->Register( NULL );
+ }
+ }
+ }
+ return cam;
+}
+
+void QmitkScreenshotMaker::View1()
+{
+// GetCam()->Azimuth( -7.5 );
+// GetCam()->Roll(-4);
+ mitk::RenderingManager::GetInstance()->RequestUpdateAll();
+}
+
+void QmitkScreenshotMaker::View2()
+{
+// GetCam()->Azimuth( -7.5 );
+// GetCam()->Roll(-4);
+ GetCam()->Azimuth( 90 );
+// GetCam()->Elevation( 4 );
+ mitk::RenderingManager::GetInstance()->RequestUpdateAll();
+}
+
+void QmitkScreenshotMaker::View3()
+{
+// GetCam()->Azimuth( -7.5 );
+// GetCam()->Roll(-4);
+ GetCam()->Azimuth( 90 );
+// GetCam()->Elevation( 4 );
+ GetCam()->Elevation( 90 );
+// GetCam()->Roll( -2.5 );
+ mitk::RenderingManager::GetInstance()->RequestUpdateAll();
+}
+
+void QmitkScreenshotMaker::OnSelectionChanged( std::vector nodes )
+{
+ if(nodes.size())
+ m_SelectedNode = nodes[0];
+}
+
+void QmitkScreenshotMaker::CreateQtPartControl(QWidget *parent)
+{
+ if (!m_Controls)
+ {
+ m_Controls = new Ui::QmitkScreenshotMakerControls;
+ m_Controls->setupUi(parent);
+
+ // Initialize "Selected Window" combo box
+ const mitk::RenderingManager::RenderWindowVector rwv =
+ mitk::RenderingManager::GetInstance()->GetAllRegisteredRenderWindows();
+
+ }
+
+ this->CreateConnections();
+
+}
+
+void QmitkScreenshotMaker::StdMultiWidgetAvailable(QmitkStdMultiWidget& stdMultiWidget)
+{
+ m_MultiWidget = &stdMultiWidget;
+ m_Parent->setEnabled(true);
+}
+
+void QmitkScreenshotMaker::StdMultiWidgetNotAvailable()
+{
+ m_MultiWidget = NULL;
+ m_Parent->setEnabled(false);
+}
+
+void QmitkScreenshotMaker::TakeScreenshot(vtkRenderer* renderer, unsigned int magnificationFactor, QString fileName)
+{
+ if ((renderer == NULL) ||(magnificationFactor < 1) || fileName.isEmpty())
+ return;
+
+ bool doubleBuffering( renderer->GetRenderWindow()->GetDoubleBuffer() );
+ renderer->GetRenderWindow()->DoubleBufferOff();
+
+ vtkImageWriter* fileWriter;
+
+ QFileInfo fi(fileName);
+ QString suffix = fi.suffix();
+ if (suffix.compare("png", Qt::CaseInsensitive) == 0)
+ {
+ fileWriter = vtkPNGWriter::New();
+ }
+ else // default is jpeg
+ {
+ vtkJPEGWriter* w = vtkJPEGWriter::New();
+ w->SetQuality(100);
+ w->ProgressiveOff();
+ fileWriter = w;
+ }
+ vtkRenderLargeImage* magnifier = vtkRenderLargeImage::New();
+ magnifier->SetInput(renderer);
+ magnifier->SetMagnification(magnificationFactor);
+ //magnifier->Update();
+ fileWriter->SetInput(magnifier->GetOutput());
+ fileWriter->SetFileName(fileName.toLatin1());
+
+ // vtkRenderLargeImage has problems with different layers, therefore we have to
+ // temporarily deactivate all other layers.
+ // we set the background to white, because it is nicer than black...
+ double oldBackground[3];
+ renderer->GetBackground(oldBackground);
+
+
+// QColor color = QColorDialog::getColor();
+ double bgcolor[] = {m_BackgroundColor.red()/255.0, m_BackgroundColor.green()/255.0, m_BackgroundColor.blue()/255.0};
+ renderer->SetBackground(bgcolor);
+
+ m_MultiWidget->DisableColoredRectangles();
+ m_MultiWidget->DisableDepartmentLogo();
+ m_MultiWidget->DisableGradientBackground();
+
+ m_MultiWidget->mitkWidget1->ActivateMenuWidget( false );
+ m_MultiWidget->mitkWidget2->ActivateMenuWidget( false );
+ m_MultiWidget->mitkWidget3->ActivateMenuWidget( false );
+ m_MultiWidget->mitkWidget4->ActivateMenuWidget( false );
+
+ fileWriter->Write();
+ fileWriter->Delete();
+
+ m_MultiWidget->mitkWidget1->ActivateMenuWidget( true );
+ m_MultiWidget->mitkWidget2->ActivateMenuWidget( true );
+ m_MultiWidget->mitkWidget3->ActivateMenuWidget( true );
+ m_MultiWidget->mitkWidget4->ActivateMenuWidget( true );
+
+ m_MultiWidget->EnableColoredRectangles();
+ m_MultiWidget->EnableDepartmentLogo();
+ m_MultiWidget->EnableGradientBackground();
+ renderer->SetBackground(oldBackground);
+
+ renderer->GetRenderWindow()->SetDoubleBuffer(doubleBuffering);
+}
+
+void QmitkScreenshotMaker::SelectBackgroundColor()
+{
+ m_BackgroundColor = QColorDialog::getColor();
+
+ m_Controls->m_BackgroundColor->setAutoFillBackground(true);
+
+
+ QString styleSheet = "background-color:rgb(";
+ styleSheet.append(QString::number(m_BackgroundColor.red()));
+ styleSheet.append(",");
+ styleSheet.append(QString::number(m_BackgroundColor.green()));
+ styleSheet.append(",");
+ styleSheet.append(QString::number(m_BackgroundColor.blue()));
+ styleSheet.append(")");
+ m_Controls->m_BackgroundColor->setStyleSheet(styleSheet);
+}
diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/src/internal/QmitkScreenshotMaker.h b/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/src/internal/QmitkScreenshotMaker.h
new file mode 100644
index 0000000000..3013d138ab
--- /dev/null
+++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/src/internal/QmitkScreenshotMaker.h
@@ -0,0 +1,133 @@
+/*=========================================================================
+
+ Program: Medical Imaging & Interaction Toolkit
+ Language: C++
+ Date: $Date$
+ Version: $Revision: 15436 $
+
+ Copyright (c) German Cancer Research Center, Division of Medical and
+ Biological Informatics. All rights reserved.
+ See MITKCopyright.txt or http://www.mitk.org/copyright.html for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the above copyright notices for more information.
+
+ =========================================================================*/
+
+#if !defined(QMITK_ScreenshotMaker_H__INCLUDED)
+#define QMITK_ScreenshotMaker_H__INCLUDED
+
+#include "QmitkFunctionality.h"
+#include "mitkCameraRotationController.h"
+#include "mitkStepper.h"
+#include "mitkMultiStepper.h"
+#include "mitkMovieGenerator.h"
+#include "itkCommand.h"
+
+#include "QVTKWidget.h"
+#include "vtkEventQtSlotConnect.h"
+#include "vtkRenderWindow.h"
+#include "mitkVtkPropRenderer.h"
+
+#include "ui_QmitkScreenshotMakerControls.h"
+//#include "../MovieMakerDll.h"
+
+//class QmitkStdMultiWidget;
+//class QmitkMovieMakerControls;
+class QmitkStepperAdapter;
+class vtkCamera;
+class QTimer;
+class QTime;
+
+/**
+ * \brief Functionality for creating movies (AVIs)
+ * \ingroup Functionalities
+ */
+class QmitkScreenshotMaker: public QmitkFunctionality
+{
+ Q_OBJECT
+
+public:
+ /** \brief Constructor. */
+ QmitkScreenshotMaker(QObject *parent=0, const char *name=0);
+
+ /** \brief Destructor. */
+ virtual ~QmitkScreenshotMaker();
+
+ /** \brief Method for creating the widget containing the application
+ * controls, like sliders, buttons etc.
+ */
+ void CreateQtPartControl(QWidget *parent);
+ // virtual QWidget * CreateControlWidget(QWidget *parent);
+
+ /** \brief Method for creating the connections of main and control widget.
+ */
+ virtual void CreateConnections();
+
+ /** \brief Method for creating an QAction object, i.e. button & menu entry.
+ * @param parent the parent QWidget
+ */
+ // virtual QAction * CreateAction(QActionGroup *parent);
+
+ virtual void Activated();
+
+ virtual void Deactivated();
+
+ ///
+ /// Called when a StdMultiWidget is available.
+ ///
+ virtual void StdMultiWidgetAvailable(QmitkStdMultiWidget& stdMultiWidget);
+ ///
+ /// Called when no StdMultiWidget is available.
+ ///
+ virtual void StdMultiWidgetNotAvailable();
+
+ signals:
+ void StartBlockControls();
+ void EndBlockControls();
+ void EndBlockControlsMovieDeactive();
+
+protected slots:
+
+ void GenerateScreenshot();
+ void GenerateMultiplanarScreenshots();
+ void Generate3DHighresScreenshot();
+ void GenerateMultiplanar3DHighresScreenshot();
+ void View1();
+ void View2();
+ void View3();
+ void SelectBackgroundColor();
+
+protected:
+
+ QObject *parentWidget;
+ QVTKWidget * widget;
+ QmitkStdMultiWidget* m_MultiWidget;
+ vtkEventQtSlotConnect * connections;
+ vtkRenderWindow * renderWindow;
+ mitk::VtkPropRenderer::Pointer m_PropRenderer;
+
+ Ui::QmitkScreenshotMakerControls* m_Controls;
+
+private:
+
+ void OnSelectionChanged( std::vector nodes );
+
+ vtkCamera* GetCam();
+ void GenerateHR3DAtlasScreenshots(QString fileName);
+ void GenerateMultiplanarScreenshots(QString fileName);
+
+ /*!
+ \brief taking a screenshot "from" the specified renderer
+ \param magnificationFactor specifying the quality of the screenshot (the magnification of the actual RenderWindow size)
+ \param fileName file location and name where the screenshot should be saved
+ */
+ void TakeScreenshot(vtkRenderer* renderer, unsigned int magnificationFactor, QString fileName);
+
+ QColor m_BackgroundColor;
+
+ mitk::DataNode* m_SelectedNode;
+};
+#endif // !defined(QMITK_ScreenshotMaker_H__INCLUDED)
+
diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/src/internal/QmitkScreenshotMakerControls.ui b/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/src/internal/QmitkScreenshotMakerControls.ui
new file mode 100644
index 0000000000..fa16a58d74
--- /dev/null
+++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/src/internal/QmitkScreenshotMakerControls.ui
@@ -0,0 +1,244 @@
+
+
+ QmitkScreenshotMakerControls
+
+
+
+ 0
+ 0
+ 503
+ 140
+
+
+
+ ScreenshotMaker
+
+
+
+ 0
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Raised
+
+
+
+ 0
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Raised
+
+
+
+ 0
+
+
-
+
+
+
+ 30
+ 0
+
+
+
+
+ 10
+ 16777215
+
+
+
+ 1
+
+
+
+ -
+
+
+
+ 30
+ 16777215
+
+
+
+ 2
+
+
+
+ -
+
+
+
+ 30
+ 16777215
+
+
+
+ 3
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Raised
+
+
+
+ 0
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+ Writes a screenshot of the selected window.
+
+
+ Normal Screenshot
+
+
+
+ -
+
+
+ Multiplanar Shot
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Raised
+
+
+
+ 0
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+ Writes a screenshot of the selected window.
+
+
+ High-res 3D Screenshot
+
+
+
+ -
+
+
+ Multiplanar High-res
+
+
+
+ -
+
+
+ Zoom:
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+ 1
+
+
+ 5
+
+
+
+
+
+
+ -
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Raised
+
+
+
+ 0
+
+
-
+
+
+ Background Color:
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 31
+
+
+
+
+
+
+
+
+
+
diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/src/internal/mitkPluginActivator.cpp b/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/src/internal/mitkPluginActivator.cpp
index 1a528667c1..96a030db11 100644
--- a/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/src/internal/mitkPluginActivator.cpp
+++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimaging/src/internal/mitkPluginActivator.cpp
@@ -1,48 +1,50 @@
#include "mitkPluginActivator.h"
#include
#include "src/internal/QmitkDiffusionImagingPublicPerspective.h"
#include "src/internal/QmitkQBallReconstructionView.h"
#include "src/internal/QmitkPreprocessingView.h"
#include "src/internal/QmitkDiffusionDicomImportView.h"
#include "src/internal/QmitkDiffusionQuantificationView.h"
#include "src/internal/QmitkTensorReconstructionView.h"
#include "src/internal/QmitkControlVisualizationPropertiesView.h"
#include "src/internal/QmitkODFDetailsView.h"
#include "src/internal/QmitkGibbsTrackingView.h"
#include "src/internal/QmitkFiberBundleOperationsView.h"
#include "src/internal/QmitkFiberBundleDeveloperView.h"
#include "src/internal/QmitkPartialVolumeAnalysisView.h"
#include "src/internal/QmitkIVIMView.h"
+#include "src/internal/QmitkScreenshotMaker.h"
namespace mitk {
void PluginActivator::start(ctkPluginContext* context)
{
BERRY_REGISTER_EXTENSION_CLASS(QmitkDiffusionImagingPublicPerspective, context)
BERRY_REGISTER_EXTENSION_CLASS(QmitkQBallReconstructionView, context)
BERRY_REGISTER_EXTENSION_CLASS(QmitkPreprocessingView, context)
BERRY_REGISTER_EXTENSION_CLASS(QmitkDiffusionDicomImport, context)
BERRY_REGISTER_EXTENSION_CLASS(QmitkDiffusionQuantificationView, context)
BERRY_REGISTER_EXTENSION_CLASS(QmitkTensorReconstructionView, context)
BERRY_REGISTER_EXTENSION_CLASS(QmitkControlVisualizationPropertiesView, context)
BERRY_REGISTER_EXTENSION_CLASS(QmitkODFDetailsView, context)
BERRY_REGISTER_EXTENSION_CLASS(QmitkGibbsTrackingView, context)
BERRY_REGISTER_EXTENSION_CLASS(QmitkFiberBundleOperationsView, context)
BERRY_REGISTER_EXTENSION_CLASS(QmitkFiberBundleDeveloperView, context)
BERRY_REGISTER_EXTENSION_CLASS(QmitkPartialVolumeAnalysisView, context)
BERRY_REGISTER_EXTENSION_CLASS(QmitkIVIMView, context)
+ BERRY_REGISTER_EXTENSION_CLASS(QmitkScreenshotMaker, context)
}
void PluginActivator::stop(ctkPluginContext* context)
{
Q_UNUSED(context)
}
}
Q_EXPORT_PLUGIN2(org_mitk_gui_qt_diffusionimaging, mitk::PluginActivator)
diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/plugin.xml b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/plugin.xml
index d40c00f69d..cef878fe63 100644
--- a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/plugin.xml
+++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/plugin.xml
@@ -1,100 +1,67 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-