00001 /*========================================================================= 00002 00003 Program: Medical Imaging & Interaction Toolkit 00004 Language: C++ 00005 Date: $Date: 2009-03-21 14:46:24 +0100 (Sat, 21 Mar 2009) $ 00006 Version: $Revision: 15412 $ 00007 00008 Copyright (c) German Cancer Research Center, Division of Medical and 00009 Biological Informatics. All rights reserved. 00010 See MITKCopyright.txt or https://www.mitk.org/copyright.html for details. 00011 00012 This software is distributed WITHOUT ANY WARRANTY; without even 00013 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00014 PURPOSE. See the above copyright notices for more information. 00015 00016 =========================================================================*/ 00017 00018 #if !defined(QMITK_MEASUREMENT_H__INCLUDED) 00019 #define QMITK_MEASUREMENT_H__INCLUDED 00020 00021 //#include "QmitkFunctionality.h" 00022 00023 #include <QmitkFunctionality.h> 00024 #include <QmitkStandardViews.h> 00025 #include <QmitkStdMultiWidgetEditor.h> 00026 00027 #include <mitkWeakPointer.h> 00028 #include <mitkPointSetInteractor.h> 00029 00030 #include "ui_QmitkSimpleMeasurementControls.h" 00031 00032 class QmitkStdMultiWidget; 00034 //class QmitkSimpleMeasurementControls; 00036 00044 class QmitkSimpleMeasurement : public QObject, public QmitkFunctionality 00045 { 00046 Q_OBJECT 00047 00048 00049 public: 00050 00051 virtual ~QmitkSimpleMeasurement(); 00052 virtual void Activated(); 00053 virtual void Deactivated(); 00054 virtual bool IsExclusiveFunctionality() const; 00058 virtual void OnSelectionChanged(std::vector<mitk::DataNode*> nodes); 00059 00060 virtual void NodeRemoved(const mitk::DataNode* node); 00061 00062 protected: 00063 // Pseudo Ctor 00064 void CreateQtPartControl(QWidget* parent); 00065 00066 protected slots: 00067 00068 void AddDistanceSimpleMeasurement(); 00069 00070 void AddAngleSimpleMeasurement(); 00071 00072 void AddPathSimpleMeasurement(); 00073 00074 protected: 00078 Ui::QmitkSimpleMeasurementControls * m_Controls; 00079 00080 /* 00081 * Interactor for performing the simplemeasurements. 00082 */ 00083 mitk::WeakPointer<mitk::PointSetInteractor> m_PointSetInteractor; 00084 00085 /* 00086 * Interactor for performing the simplemeasurements. 00087 */ 00088 mitk::WeakPointer<mitk::DataNode> m_SelectedPointSetNode; 00089 00090 /* 00091 * Node representing the PointSet last created. It is used to delete empty point sets. 00092 */ 00093 std::vector<mitk::DataNode*> m_CreatedPointSetNodes; 00094 }; 00095 00096 #endif // !defined(QMITK_MEASUREMENT_H__INCLUDED)