00001 /*========================================================================= 00002 00003 Program: Medical Imaging & Interaction Toolkit 00004 Language: C++ 00005 Date: $Date: 2009-05-06 10:44:43 +0200 (Mi, 06 Mai 2009) $ 00006 Version: $Revision: 17109 $ 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(QmitkIGTExampleView_H__INCLUDED) 00019 #define QmitkIGTExampleView_H__INCLUDED 00020 00021 #include "QmitkFunctionality.h" 00022 #include "mitkTestingConfig.h" 00023 00024 #include "mitkTrackingDeviceSource.h" 00025 #include "mitkNavigationDataDisplacementFilter.h" 00026 #include "mitkTrackingDevice.h" 00027 #include "mitkNavigationDataRecorder.h" 00028 #include "mitkNavigationDataPlayer.h" 00029 #include "mitkNavigationDataToPointSetFilter.h" 00030 #include "mitkNavigationDataToMessageFilter.h" 00031 #include "QmitkPlotWidget.h" 00032 00033 #include "ui_QmitkIGTExampleViewControls.h" 00034 #include "../IgtexampleDll.h" 00035 00036 class QmitkStdMultiWidget; 00037 class QmitkIGTExampleViewControls; 00038 class QTextEdit; 00047 class QmitkIGTExampleView : public QObject, public QmitkFunctionality 00048 { 00049 Q_OBJECT 00050 00051 public: 00055 QmitkIGTExampleView(QObject *parent=0, const char *name=0); 00056 00060 virtual ~QmitkIGTExampleView(); 00061 00065 virtual void CreateQtPartControl(QWidget *parent); 00066 00067 virtual void StdMultiWidgetAvailable (QmitkStdMultiWidget &stdMultiWidget); 00068 virtual void StdMultiWidgetNotAvailable(); 00069 00073 virtual void CreateConnections(); 00074 00075 virtual void AddToFunctionalityOptionsList(mitk::PropertyList* p); 00076 00080 //Port virtual QAction * CreateAction(QActionGroup *parent); 00081 00085 virtual void Activated(); 00086 00090 virtual void Deactivated(); 00091 00092 #ifdef BUILD_TESTING 00093 00096 virtual int TestYourself(); 00097 #endif 00098 00099 protected slots: 00100 00108 void OnTestTracking(); 00109 00125 void OnTestNavigation(); 00126 00134 void OnMeasure(); 00135 00141 void OnMeasureContinuously(); 00142 00146 void OnStop(); 00147 00159 void OnParametersChanged(); 00160 00168 void OnRecordingToggle(bool toggled); 00169 00177 void OnPlayingToggle(bool toggled); 00178 00184 void OnRecording(); 00185 00192 void OnPlaying(); 00193 00203 void OnShowErrorPlot(); 00204 00214 void OnErrorValueChanged(mitk::NavigationData::CovarianceMatrixType v, unsigned int index); 00215 00223 void OnLoadTool(); 00224 00230 void OnTrackingDeviceTextChanged( const QString & ); 00231 00232 protected: 00233 00234 mitk::TrackingDevice::Pointer ConfigureTrackingDevice(); 00235 00236 QmitkStdMultiWidget * m_MultiWidget; 00237 Ui::QmitkIGTExampleControls * m_Controls; 00238 00239 mitk::TrackingDeviceSource::Pointer m_Source; 00240 mitk::NavigationDataDisplacementFilter::Pointer m_Displacer; 00241 mitk::NavigationDataToNavigationDataFilter::Pointer m_EndOfPipeline; // Pointer to last filter in the pipeline 00242 mitk::NavigationDataRecorder::Pointer m_Recorder; 00243 mitk::NavigationDataPlayer::Pointer m_Player; 00244 mitk::NavigationDataToPointSetFilter::Pointer m_PointSetFilter; 00245 mitk::NavigationDataToMessageFilter::Pointer m_MessageFilter; 00246 mitk::PointSet::Pointer m_PointSet; 00247 00248 QmitkPlotWidget::DataVector m_XValues; 00249 QmitkPlotWidget::DataVector m_YValues; 00250 QTextEdit* out; 00251 00252 QTimer* m_Timer; 00253 QTimer* m_RecordingTimer; 00254 QTimer* m_PlayingTimer; 00255 00256 QStringList m_ToolList; 00257 00258 }; 00259 #endif // !defined(QmitkIGTExampleView_H__INCLUDED)