vtkIGTLTrackingDataControllerWindow.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef __vtkIGTLTrackingDataControllerWindow_h
00016 #define __vtkIGTLTrackingDataControllerWindow_h
00017
00018
00019 #ifdef WIN32
00020 #include "Windows.h"
00021 #endif
00022
00023 #include "vtkOpenIGTLinkIFWin32Header.h"
00024
00025 #include "vtkSmartPointer.h"
00026
00027
00028
00029 #include "vtkSlicerViewerWidget.h"
00030 #include "vtkKWMultiColumnList.h"
00031 #include "vtkKWMultiColumnListWithScrollbars.h"
00032 #include "vtkKWPushButton.h"
00033 #include "vtkKWTopLevel.h"
00034 #include "vtkSmartPointer.h"
00035 #include "vtkMRMLIGTLConnectorNode.h"
00036 #include "vtkMRMLIGTLQueryNode.h"
00037
00038 class vtkOpenIGTLinkIFGUI;
00039
00040 class VTK_OPENIGTLINKIF_EXPORT vtkIGTLTrackingDataControllerWindow : public vtkKWTopLevel
00041 {
00042 public:
00043
00044 vtkGetObjectMacro(MRMLScene, vtkMRMLScene);
00045 vtkSetObjectMacro(MRMLScene, vtkMRMLScene);
00046
00047 vtkGetObjectMacro(Connector, vtkMRMLIGTLConnectorNode);
00048 vtkSetObjectMacro(Connector, vtkMRMLIGTLConnectorNode);
00049
00050 static vtkIGTLTrackingDataControllerWindow *New();
00051 vtkTypeRevisionMacro(vtkIGTLTrackingDataControllerWindow,vtkKWTopLevel);
00052 void PrintSelf(ostream& os, vtkIndent indent);
00053
00054 void SetInGUICallbackFlag (int flag) {
00055 this->InGUICallbackFlag = flag;
00056 }
00057 vtkGetMacro(InGUICallbackFlag, int);
00058 void SetInMRMLCallbackFlag (int flag) {
00059 this->InMRMLCallbackFlag = flag;
00060 }
00061 vtkGetMacro(InMRMLCallbackFlag, int);
00062
00063 void SetAndObserveMRMLScene ( vtkMRMLScene *mrml )
00064 {
00065 vtkMRMLScene *oldValue = this->MRMLScene;
00066 this->MRMLObserverManager->SetAndObserveObject ( vtkObjectPointer( &this->MRMLScene), (vtkObject*)mrml );
00067 if ( oldValue != this->MRMLScene )
00068 {
00069 this->InvokeEvent (vtkCommand::ModifiedEvent);
00070 }
00071 }
00072
00073 void SetAndObserveMRMLSceneEvents ( vtkMRMLScene *mrml, vtkIntArray *events )
00074 {
00075 vtkObject *oldValue = this->MRMLScene;
00076 this->MRMLObserverManager->SetAndObserveObjectEvents ( vtkObjectPointer( &this->MRMLScene), mrml, events );
00077 if ( oldValue != this->MRMLScene )
00078 {
00079 this->InvokeEvent (vtkCommand::ModifiedEvent);
00080 }
00081 }
00082
00083 void DisplayOnWindow();
00084 void SetOpenIGTLinkIFGUI(vtkOpenIGTLinkIFGUI* moduleGUI)
00085 {
00086 this->ModuleGUI = moduleGUI;
00087 }
00088
00089 protected:
00090
00091 vtkIGTLTrackingDataControllerWindow();
00092 ~vtkIGTLTrackingDataControllerWindow();
00093
00094 static void MRMLCallback(vtkObject *caller,
00095 unsigned long eid, void *clientData, void *callData );
00096
00097 static void GUICallback(vtkObject *caller,
00098 unsigned long eid, void *clientData, void *callData );
00099
00100
00101 virtual void CreateWidget();
00102 virtual void ProcessGUIEvents(vtkObject *caller, unsigned long event, void *callData);
00103 virtual void ProcessMRMLEvents(vtkObject *caller, unsigned long event, void *callData);
00104 virtual void AddGUIObservers();
00105 virtual void RemoveGUIObservers();
00106
00107 protected:
00108
00109
00110
00111
00112 vtkKWFrame* MainFrame;
00113 vtkSlicerViewerWidget* ViewerWidget;
00114
00115 vtkKWMultiColumnListWithScrollbars* RemoteDataList;
00116
00117 vtkKWPushButton* StartTrackingButton;
00118 vtkKWPushButton* StopTrackingButton;
00119 vtkKWPushButton* CloseButton;
00120
00121 vtkCallbackCommand *MRMLCallbackCommand;
00122 vtkCallbackCommand *GUICallbackCommand;
00123 vtkObserverManager *MRMLObserverManager;
00124 int InGUICallbackFlag;
00125 int InMRMLCallbackFlag;
00126 int IsObserverAddedFlag;
00127
00128
00129
00130
00131 bool MultipleMonitorsAvailable;
00132 int WindowPosition[2];
00133 int WindowSize[2];
00134
00135 vtkOpenIGTLinkIFGUI* ModuleGUI;
00136 vtkMRMLScene* MRMLScene;
00137
00138 vtkMRMLIGTLConnectorNode* Connector;
00139
00140 vtkMRMLIGTLQueryNode* TrackingDataQueryNode;
00141
00142 std::list<vtkMRMLIGTLQueryNode*> ImageQueryNodeList;
00143
00144
00145 private:
00146 vtkIGTLTrackingDataControllerWindow(const vtkIGTLTrackingDataControllerWindow&);
00147 void operator=(const vtkIGTLTrackingDataControllerWindow&);
00148
00149
00150 };
00151
00152 #endif