diff --git a/Modules/Bundles/org.mitk.gui.qt.segmentation/files.cmake b/Modules/Bundles/org.mitk.gui.qt.segmentation/files.cmake
index 7d4c80c548..aa73a6dc4d 100644
--- a/Modules/Bundles/org.mitk.gui.qt.segmentation/files.cmake
+++ b/Modules/Bundles/org.mitk.gui.qt.segmentation/files.cmake
@@ -1,52 +1,57 @@
SET(SRC_CPP_FILES
QmitkSegmentationPreferencePage.cpp
)
SET(INTERNAL_CPP_FILES
mitkPluginActivator.cpp
QmitkSegmentationView.cpp
QmitkSegmentationPostProcessing.cpp
QmitkThresholdAction.cpp
QmitkCreatePolygonModelAction.cpp
QmitkStatisticsAction.cpp
QmitkAutocropAction.cpp
+ QmitkBooleanOperationsView.cpp
QmitkDeformableClippingPlaneView.cpp
)
SET(UI_FILES
src/internal/QmitkSegmentationControls.ui
+ src/internal/QmitkBooleanOperationsView.ui
src/internal/QmitkDeformableClippingPlaneViewControls.ui
)
SET(MOC_H_FILES
src/QmitkSegmentationPreferencePage.h
src/internal/mitkPluginActivator.h
src/internal/QmitkSegmentationView.h
src/internal/QmitkSegmentationPostProcessing.h
src/internal/QmitkThresholdAction.h
src/internal/QmitkCreatePolygonModelAction.h
src/internal/QmitkStatisticsAction.h
src/internal/QmitkAutocropAction.h
+ src/internal/QmitkBooleanOperationsView.h
src/internal/QmitkDeformableClippingPlaneView.h
)
SET(CACHED_RESOURCE_FILES
resources/segmentation.png
+ resources/boolean.png
resources/deformablePlane.png
plugin.xml
)
SET(QRC_FILES
resources/segmentation.qrc
+ resources/boolean.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.segmentation/plugin.xml b/Modules/Bundles/org.mitk.gui.qt.segmentation/plugin.xml
index c39189e193..2be45b9c15 100644
--- a/Modules/Bundles/org.mitk.gui.qt.segmentation/plugin.xml
+++ b/Modules/Bundles/org.mitk.gui.qt.segmentation/plugin.xml
@@ -1,42 +1,41 @@
-
-
-
-
+
+ name="Clipping Plane"
+ class="QmitkDeformableClippingPlaneView"
+ icon="resources/deformablePlane.png" />
diff --git a/Modules/Bundles/org.mitk.gui.qt.segmentation/resources/boolean.png b/Modules/Bundles/org.mitk.gui.qt.segmentation/resources/boolean.png
new file mode 100644
index 0000000000..6eeb2cdf8b
Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.segmentation/resources/boolean.png differ
diff --git a/Modules/Bundles/org.mitk.gui.qt.segmentation/resources/boolean.qrc b/Modules/Bundles/org.mitk.gui.qt.segmentation/resources/boolean.qrc
new file mode 100644
index 0000000000..6094c0644f
--- /dev/null
+++ b/Modules/Bundles/org.mitk.gui.qt.segmentation/resources/boolean.qrc
@@ -0,0 +1,7 @@
+
+
+ btnDifference.png
+ btnIntersection.png
+ btnUnion.png
+
+
diff --git a/Modules/Bundles/org.mitk.gui.qt.segmentation/resources/btnDifference.png b/Modules/Bundles/org.mitk.gui.qt.segmentation/resources/btnDifference.png
new file mode 100644
index 0000000000..918548c943
Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.segmentation/resources/btnDifference.png differ
diff --git a/Modules/Bundles/org.mitk.gui.qt.segmentation/resources/btnIntersection.png b/Modules/Bundles/org.mitk.gui.qt.segmentation/resources/btnIntersection.png
new file mode 100644
index 0000000000..93eb7af027
Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.segmentation/resources/btnIntersection.png differ
diff --git a/Modules/Bundles/org.mitk.gui.qt.segmentation/resources/btnUnion.png b/Modules/Bundles/org.mitk.gui.qt.segmentation/resources/btnUnion.png
new file mode 100644
index 0000000000..6ab4e6d79c
Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.segmentation/resources/btnUnion.png differ
diff --git a/Modules/Bundles/org.mitk.gui.qt.segmentation/src/internal/QmitkBooleanOperationsView.cpp b/Modules/Bundles/org.mitk.gui.qt.segmentation/src/internal/QmitkBooleanOperationsView.cpp
new file mode 100644
index 0000000000..517c031d5a
--- /dev/null
+++ b/Modules/Bundles/org.mitk.gui.qt.segmentation/src/internal/QmitkBooleanOperationsView.cpp
@@ -0,0 +1,99 @@
+/*=========================================================================
+
+Program: Medical Imaging & Interaction Toolkit
+Module: $RCSfile$
+Language: C++
+Date: $Date$
+Version: $Revision$
+
+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 "QmitkBooleanOperationsView.h"
+#include
+#include
+#include
+#include
+
+QmitkBooleanOperationsView::QmitkBooleanOperationsView()
+ : m_Parent(NULL)
+{
+}
+
+QmitkBooleanOperationsView::~QmitkBooleanOperationsView()
+{
+}
+
+void QmitkBooleanOperationsView::CreateQtPartControl(QWidget *parent)
+{
+ mitk::DataStorage::Pointer dataStorage = GetDefaultDataStorage();
+
+ mitk::NodePredicateAnd::Pointer segmentationPredicate = mitk::NodePredicateAnd::New(
+ mitk::NodePredicateProperty::New("binary", mitk::BoolProperty::New(true)),
+ mitk::NodePredicateNot::New(
+ mitk::NodePredicateProperty::New("helper object")));
+
+ m_Parent = parent;
+
+ m_Controls.setupUi(parent);
+
+ m_Controls.cmbSegmentationImage1->SetDataStorage(dataStorage);
+ m_Controls.cmbSegmentationImage1->SetPredicate(segmentationPredicate);
+
+ m_Controls.cmbSegmentationImage2->SetPredicate(segmentationPredicate);
+ m_Controls.cmbSegmentationImage2->SetDataStorage(dataStorage);
+
+ connect(m_Controls.cmbSegmentationImage1, SIGNAL(OnSelectionChanged(const mitk::DataNode *)), this, SLOT(OnSegmentationImage1Changed(const mitk::DataNode *)));
+ connect(m_Controls.cmbSegmentationImage2, SIGNAL(OnSelectionChanged(const mitk::DataNode *)), this, SLOT(OnSegmentationImage2Changed(const mitk::DataNode *)));
+ connect(m_Controls.btnDifference, SIGNAL(clicked()), this, SLOT(OnDifferenceButtonClicked()));
+ connect(m_Controls.btnUnion, SIGNAL(clicked()), this, SLOT(OnUnionButtonClicked()));
+ connect(m_Controls.btnIntersection, SIGNAL(clicked()), this, SLOT(OnIntersectionButtonClicked()));
+}
+
+void QmitkBooleanOperationsView::EnableButtons(bool enable)
+{
+ m_Controls.lblInputImagesWarning->setVisible(!enable);
+ m_Controls.btnDifference->setEnabled(enable);
+ m_Controls.btnUnion->setEnabled(enable);
+ m_Controls.btnIntersection->setEnabled(enable);
+}
+
+void QmitkBooleanOperationsView::DisableButtons(bool disable)
+{
+ EnableButtons(false);
+}
+
+void QmitkBooleanOperationsView::OnSegmentationImage1Changed(const mitk::DataNode *dataNode)
+{
+ if (dataNode != m_Controls.cmbSegmentationImage2->GetSelectedNode())
+ EnableButtons();
+ else
+ DisableButtons();
+}
+
+void QmitkBooleanOperationsView::OnSegmentationImage2Changed(const mitk::DataNode *dataNode)
+{
+ if (dataNode != m_Controls.cmbSegmentationImage1->GetSelectedNode())
+ EnableButtons();
+ else
+ DisableButtons();
+}
+
+void QmitkBooleanOperationsView::OnDifferenceButtonClicked()
+{
+}
+
+void QmitkBooleanOperationsView::OnUnionButtonClicked()
+{
+}
+
+void QmitkBooleanOperationsView::OnIntersectionButtonClicked()
+{
+}
diff --git a/Modules/Bundles/org.mitk.gui.qt.segmentation/src/internal/QmitkBooleanOperationsView.h b/Modules/Bundles/org.mitk.gui.qt.segmentation/src/internal/QmitkBooleanOperationsView.h
new file mode 100644
index 0000000000..e8147802f6
--- /dev/null
+++ b/Modules/Bundles/org.mitk.gui.qt.segmentation/src/internal/QmitkBooleanOperationsView.h
@@ -0,0 +1,51 @@
+/*=========================================================================
+
+Program: Medical Imaging & Interaction Toolkit
+Module: $RCSfile$
+Language: C++
+Date: $Date$
+Version: $Revision$
+
+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.
+
+=========================================================================*/
+
+#ifndef QMITKBOOLEANOPERATIONSVIEW_H
+#define QMITKBOOLEANOPERATIONSVIEW_H
+
+#include
+#include
+
+class QmitkBooleanOperationsView : public QmitkFunctionality
+{
+ Q_OBJECT
+
+public:
+ QmitkBooleanOperationsView();
+ ~QmitkBooleanOperationsView();
+
+protected:
+ void CreateQtPartControl(QWidget *parent);
+
+private slots:
+ void OnSegmentationImage1Changed(const mitk::DataNode *dataNode);
+ void OnSegmentationImage2Changed(const mitk::DataNode *dataNode);
+ void OnDifferenceButtonClicked();
+ void OnUnionButtonClicked();
+ void OnIntersectionButtonClicked();
+
+private:
+ void EnableButtons(bool enable = true);
+ void DisableButtons(bool disable = true);
+
+ QWidget *m_Parent;
+ Ui::QmitkBooleanOperationsView m_Controls;
+};
+
+#endif
diff --git a/Modules/Bundles/org.mitk.gui.qt.segmentation/src/internal/QmitkBooleanOperationsView.ui b/Modules/Bundles/org.mitk.gui.qt.segmentation/src/internal/QmitkBooleanOperationsView.ui
new file mode 100644
index 0000000000..2702257ae3
--- /dev/null
+++ b/Modules/Bundles/org.mitk.gui.qt.segmentation/src/internal/QmitkBooleanOperationsView.ui
@@ -0,0 +1,276 @@
+
+
+ QmitkBooleanOperationsView
+
+
+
+ 0
+ 0
+ 295
+ 374
+
+
+
+ -
+
+
+ Segmentation Images
+
+
+
-
+
+
+ true
+
+
+
+ 0
+ 0
+
+
+
+ QComboBox::AdjustToMinimumContentsLength
+
+
+
+ -
+
+
+ true
+
+
+
+ 0
+ 0
+
+
+
+ QComboBox::AdjustToMinimumContentsLength
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+ 200
+ 0
+ 0
+
+
+
+
+
+
+ 200
+ 0
+ 0
+
+
+
+
+
+
+ 200
+ 0
+ 0
+
+
+
+
+
+
+
+
+ 200
+ 0
+ 0
+
+
+
+
+
+
+ 200
+ 0
+ 0
+
+
+
+
+
+
+ 200
+ 0
+ 0
+
+
+
+
+
+
+
+
+ 84
+ 82
+ 78
+
+
+
+
+
+
+ 84
+ 82
+ 78
+
+
+
+
+
+
+ 84
+ 82
+ 78
+
+
+
+
+
+
+
+
+ 50
+ false
+
+
+
+ Please select two different segmentation images above.
+
+
+
+ -
+
+
-
+
+
+ false
+
+
+
+ 0
+ 0
+
+
+
+
+ 71
+ 0
+
+
+
+ Difference
+
+
+
+ :/boolean/btnDifference.png:/boolean/btnDifference.png
+
+
+ Qt::ToolButtonTextUnderIcon
+
+
+
+ -
+
+
+ false
+
+
+
+ 0
+ 0
+
+
+
+
+ 71
+ 0
+
+
+
+ Union
+
+
+
+ :/boolean/btnUnion.png:/boolean/btnUnion.png
+
+
+ Qt::ToolButtonTextUnderIcon
+
+
+
+ -
+
+
+ false
+
+
+
+ 0
+ 0
+
+
+
+
+ 71
+ 0
+
+
+
+ Intersection
+
+
+
+ :/boolean/btnIntersection.png:/boolean/btnIntersection.png
+
+
+ Qt::ToolButtonTextUnderIcon
+
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 271
+
+
+
+
+
+
+
+
+ QmitkDataStorageComboBox
+ QComboBox
+ QmitkDataStorageComboBox.h
+
+
+
+
+
+
+
diff --git a/Modules/Bundles/org.mitk.gui.qt.segmentation/src/internal/mitkPluginActivator.cpp b/Modules/Bundles/org.mitk.gui.qt.segmentation/src/internal/mitkPluginActivator.cpp
index 9613ce7ab7..7f05e95115 100644
--- a/Modules/Bundles/org.mitk.gui.qt.segmentation/src/internal/mitkPluginActivator.cpp
+++ b/Modules/Bundles/org.mitk.gui.qt.segmentation/src/internal/mitkPluginActivator.cpp
@@ -1,28 +1,30 @@
#include "mitkPluginActivator.h"
#include "QmitkSegmentationView.h"
+#include "QmitkBooleanOperationsView.h"
#include "QmitkThresholdAction.h"
#include "QmitkCreatePolygonModelAction.h"
#include "QmitkStatisticsAction.h"
#include "QmitkAutocropAction.h"
#include "QmitkSegmentationPreferencePage.h"
#include "QmitkDeformableClippingPlaneView.h"
using namespace mitk;
void PluginActivator::start(ctkPluginContext *context)
{
- BERRY_REGISTER_EXTENSION_CLASS(QmitkSegmentationView, context);
- BERRY_REGISTER_EXTENSION_CLASS(QmitkThresholdAction, context);
- BERRY_REGISTER_EXTENSION_CLASS(QmitkCreatePolygonModelAction, context);
- BERRY_REGISTER_EXTENSION_CLASS(QmitkStatisticsAction, context);
- BERRY_REGISTER_EXTENSION_CLASS(QmitkAutocropAction, context);
- BERRY_REGISTER_EXTENSION_CLASS(QmitkSegmentationPreferencePage, context);
+ BERRY_REGISTER_EXTENSION_CLASS(QmitkSegmentationView, context)
+ BERRY_REGISTER_EXTENSION_CLASS(QmitkBooleanOperationsView, context)
+ BERRY_REGISTER_EXTENSION_CLASS(QmitkThresholdAction, context)
+ BERRY_REGISTER_EXTENSION_CLASS(QmitkCreatePolygonModelAction, context)
+ BERRY_REGISTER_EXTENSION_CLASS(QmitkStatisticsAction, context)
+ BERRY_REGISTER_EXTENSION_CLASS(QmitkAutocropAction, context)
+ BERRY_REGISTER_EXTENSION_CLASS(QmitkSegmentationPreferencePage, context)
BERRY_REGISTER_EXTENSION_CLASS(QmitkDeformableClippingPlaneView, context)
}
void PluginActivator::stop(ctkPluginContext *)
{
}
Q_EXPORT_PLUGIN2(org_mitk_gui_qt_segmentation, mitk::PluginActivator)