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(QmitkIGTRecorderView_H__INCLUDED) 00019 #define QmitkIGTRecorderView_H__INCLUDED 00020 00021 #include "QmitkFunctionality.h" 00022 #include "mitkTestingConfig.h" 00023 00024 #include "mitkTrackingDeviceSource.h" 00025 #include "mitkTrackingDevice.h" 00026 #include "mitkNavigationDataRecorder.h" 00027 #include "mitkNavigationDataPlayer.h" 00028 #include "mitkNavigationDataToPointSetFilter.h" 00029 #include "mitkNavigationDataToMessageFilter.h" 00030 #include "mitkNavigationDataObjectVisualizationFilter.h" 00031 00032 #include "ui_QmitkIGTRecorderViewControls.h" 00033 #include "../IgtexampleDll.h" 00034 00035 class QmitkStdMultiWidget; 00036 class QmitkIGTRecorderViewControls; 00037 class QTextEdit; 00038 class QmitkNDIConfigurationWidget; 00047 class QmitkIGTRecorderView : public QObject, public QmitkFunctionality 00048 { 00049 Q_OBJECT 00050 00051 public: 00055 QmitkIGTRecorderView(QObject *parent=0, const char *name=0); 00056 00060 virtual ~QmitkIGTRecorderView(); 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 protected slots: 00076 00077 void OnStartRecording(); 00078 void OnStopRecording(); 00079 void OnPauseRecording(bool pause); 00080 void OnStartReplaying(); 00081 void OnStopReplaying(); 00082 void RecordFrame(); 00083 void OnConnect(); 00084 void OnDisconnect(); 00085 00086 protected: 00087 00088 mitk::TrackingDevice::Pointer ConfigureTrackingDevice(); 00089 void SetupIGTPipeline(mitk::TrackingDevice::Pointer tracker, QString fileName); 00090 mitk::DataNode::Pointer CreateInstrumentVisualization(const char* label); 00091 00092 QmitkStdMultiWidget * m_MultiWidget; 00093 Ui::QmitkIGTRecorderControls * m_Controls; 00094 00095 mitk::TrackingDeviceSource::Pointer m_Source; 00096 mitk::NavigationDataObjectVisualizationFilter::Pointer m_Visualizer; 00097 mitk::NavigationDataRecorder::Pointer m_Recorder; 00098 mitk::NavigationDataToPointSetFilter::Pointer m_PointSetFilter; 00099 mitk::NavigationDataToMessageFilter::Pointer m_MessageFilter; 00100 00101 //mitk::NavigationDataPlayer::Pointer m_Player; ///< plays a XML file 00102 00103 QTimer* m_Timer; 00104 QTimer* m_RecordingTimer; 00105 QTimer* m_PlayingTimer; 00106 QStringList m_ToolList; 00107 QmitkNDIConfigurationWidget* m_ConfigWidget; 00108 }; 00109 #endif // !defined(QmitkIGTRecorderView_H__INCLUDED)