vtkProstateNavTargetingStep.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef __vtkProstateNavTargetingStep_h
00016 #define __vtkProstateNavTargetingStep_h
00017
00018 #include "vtkProstateNavStep.h"
00019
00020 class vtkKWEntry;
00021 class vtkKWEntrySet;
00022 class vtkKWEntryWithLabel;
00023 class vtkKWFrame;
00024 class vtkKWLabel;
00025 class vtkSlicerNodeSelectorWidget;
00026 class vtkKWMatrixWidgetWithLabel;
00027 class vtkKWMenuButton;
00028 class vtkKWMenuButtonWithLabel;
00029 class vtkKWMultiColumnList;
00030 class vtkKWMultiColumnListWithScrollbars;
00031 class vtkKWPushButton;
00032 class vtkKWText;
00033 class vtkImageData;
00034 class vtkMRMLScalarVolumeNode;
00035 class vtkMRMLSelectionNode;
00036 class vtkMRMLFiducialListNode;
00037 class vtkKWCheckButton;
00038
00039 class VTK_PROSTATENAV_EXPORT vtkProstateNavTargetingStep : public vtkProstateNavStep
00040 {
00041 public:
00042 static vtkProstateNavTargetingStep *New();
00043 vtkTypeRevisionMacro(vtkProstateNavTargetingStep,vtkProstateNavStep);
00044 void PrintSelf(ostream& os, vtkIndent indent);
00045
00046 virtual void ShowUserInterface();
00047 virtual void HideUserInterface();
00048 virtual void TearDownGUI();
00049 virtual void ProcessGUIEvents(vtkObject *caller, unsigned long event, void *callData);
00050 virtual void ProcessMRMLEvents(vtkObject *caller, unsigned long event, void *callData);
00051
00052 virtual void UpdateGUI();
00053
00054 void AddMRMLObservers();
00055 void RemoveMRMLObservers();
00056
00057 void OnMultiColumnListUpdate(int row, int col, char * str);
00058 void OnMultiColumnListSelection();
00059 void UpdateTargetListGUI();
00060
00061 void SetShowTargetOrientation(int show);
00062
00063 protected:
00064 vtkProstateNavTargetingStep();
00065 ~vtkProstateNavTargetingStep();
00066
00067
00068 void ShowTargetPlanningFrame();
00069 void ShowTargetListFrame();
00070 void ShowTargetControlFrame();
00071
00072 void EnableAddTargetsOnClickButton(bool enable);
00073
00074 unsigned int PopulateListWithTargetDetails(unsigned int targetDescIndex);
00075
00076 void AddGUIObservers();
00077 void RemoveGUIObservers();
00078
00079
00080
00081
00082 enum
00083 {
00084 TargetNumberColumn = 0,
00085 NeedleTypeColumn = 1,
00086 RASLocationColumn = 2,
00087 ReachableColumn = 3,
00088 RotationColumn = 4,
00089 NeedleAngleColumn = 5,
00090 DepthColumn = 6,
00091 NumberOfColumns = 7,
00092 };
00093
00094
00095
00096 bool ProcessingCallback;
00097
00098 vtkKWFrame *MainFrame;
00099
00100
00101 vtkKWFrame *TargetPlanningFrame;
00102 vtkKWPushButton* LoadTargetingVolumeButton;
00103 vtkSlicerNodeSelectorWidget* VolumeSelectorWidget;
00104 vtkKWFrame *LoadVolumeDialogFrame;
00105 vtkKWCheckButton *ShowWorkspaceButton;
00106 vtkKWCheckButton *ShowRobotButton;
00107 vtkKWCheckButton *AddTargetsOnClickButton;
00108 vtkKWMenuButtonWithLabel *NeedleTypeMenuList;
00109 vtkMRMLFiducialListNode *TargetPlanListNode;
00110
00111
00112 vtkKWFrame *TargetListFrame;
00113 vtkKWMultiColumnListWithScrollbars* TargetList;
00114 vtkKWPushButton *DeleteButton;
00115
00116
00117 vtkKWFrame *TargetControlFrame;
00118 vtkKWMatrixWidgetWithLabel* NeedlePositionMatrix;
00119 vtkKWMatrixWidgetWithLabel* NeedleOrientationMatrix;
00120 vtkKWPushButton *MoveButton;
00121 vtkKWPushButton *StopButton;
00122
00123 vtkKWText *Message;
00124
00125 int ShowTargetOrientation;
00126
00127 private:
00128 vtkProstateNavTargetingStep(const vtkProstateNavTargetingStep&);
00129 void operator=(const vtkProstateNavTargetingStep&);
00130 };
00131
00132 #endif