00001 /*========================================================================= 00002 00003 Program: Medical Imaging & Interaction Toolkit 00004 Language: C++ 00005 Date: $Date: 2009-05-28 17:19:30 +0200 (Do, 28 Mai 2009) $ 00006 Version: $Revision: 17495 $ 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 #ifndef _QMITKTOOLPAIRNAVIGATIONVIEW_H_INCLUDED 00019 #define _QMITKTOOLPAIRNAVIGATIONVIEW_H_INCLUDED 00020 00021 #include <QmitkFunctionality.h> 00022 00023 #include <string> 00024 00025 #include "ui_QmitkToolPairNavigationViewControls.h" 00026 #include <mitkNavigationDataObjectVisualizationFilter.h> 00027 #include <mitkCameraVisualization.h> 00028 #include <mitkTrackingDeviceSource.h> 00029 #include <mitkNavigationDataToMessageFilter.h> 00030 00031 00032 class QmitkNDIConfigurationWidget; 00033 class QmitkUpdateTimerWidget; 00034 class QmitkToolDistanceWidget; 00035 00046 class QmitkToolPairNavigationView : public QObject, public QmitkFunctionality 00047 { 00048 00049 // this is needed for all Qt objects that should have a MOC object (everything that derives from QObject) 00050 Q_OBJECT 00051 00052 public: 00053 00054 00055 static const std::string VIEW_ID; 00056 00057 QmitkToolPairNavigationView(); 00058 virtual ~QmitkToolPairNavigationView(); 00059 00060 virtual void CreateQtPartControl(QWidget *parent); 00061 00063 virtual void CreateConnections(); 00064 00066 virtual void Activated(); 00067 00068 virtual void Deactivated(); 00069 00070 virtual void StdMultiWidgetAvailable (QmitkStdMultiWidget &stdMultiWidget); 00071 virtual void StdMultiWidgetNotAvailable(); 00072 00073 protected slots: 00074 00075 void Disconnected(); 00076 void ToolsAdded(QStringList tools); 00077 void ToolsChanged(); 00078 00082 void SetNavigationUp(); 00083 00087 void StopNavigation(); 00088 00089 void StartNavigation(); 00090 00091 00092 00093 void RenderScene(); 00094 00095 protected: 00096 00097 typedef std::map<std::string, unsigned int> NameToIndexMap; 00098 typedef std::list<std::string> StringList; 00099 00103 void SetupIGTPipeline(); 00104 00108 void DestroyIGTPipeline(); 00109 00110 00111 00115 mitk::DataNode::Pointer CreateConeAsInstrumentVisualization(const char* label = ""); 00116 mitk::DataNode::Pointer CreateSphereAsInstrumentVisualization(const char* label = ""); 00117 00121 void RemoveVisualizationObjects( mitk::DataStorage* ds ); 00122 00126 QmitkStdMultiWidget* m_MultiWidget; 00127 00128 00132 QmitkToolDistanceWidget* m_DistanceWidget; 00133 00137 mitk::TrackingDeviceSource::Pointer m_Source; 00138 00142 mitk::NavigationDataObjectVisualizationFilter::Pointer m_Visualizer; 00143 00144 mitk::CameraVisualization::Pointer m_CameraVisualizer; 00145 00146 //GUI widget to connect to a NDI tracker 00147 QmitkNDIConfigurationWidget* m_NDIConfigWidget; 00148 00149 00153 void CreateBundleWidgets(QWidget* parent); 00154 00155 Ui::QmitkToolPairNavigationViewControls m_Controls; 00156 00157 int m_LastMapperIDWidget3; 00158 00159 }; 00160 00161 00162 00163 00164 #endif // _QMITKTOOLPAIRNAVIGATIONVIEW_H_INCLUDED 00165