vtkSlicerFiducialListWidget.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00020
00021
00022 #ifndef __vtkSlicerFiducialListWidget_h
00023 #define __vtkSlicerFiducialListWidget_h
00024
00025 #include "vtkSlicerWidget.h"
00026
00027 #include "vtkMRMLViewNode.h"
00028
00029 class vtkMRMLFiducialListNode;
00030 class vtkMRMLFiducial;
00031 class vtkPolyData;
00032 class vtkCellArray;
00033 class vtkActor;
00034 class vtkCamera;
00035 class vtkFollower;
00036 class vtkImplicitBoolean;
00037 class vtkTransform;
00038 class vtkSlicerViewerWidget;
00039 class vtkSlicerViewerInteractorStyle;
00040 class vtkSlicerSeedWidgetClass;
00041 class VTK_SLICER_BASE_GUI_EXPORT vtkSlicerFiducialListWidget : public vtkSlicerWidget
00042 {
00043 public:
00044 static vtkSlicerFiducialListWidget* New();
00045 vtkTypeRevisionMacro(vtkSlicerFiducialListWidget,vtkSlicerWidget);
00046 void PrintSelf(ostream& os, vtkIndent indent);
00047
00050 virtual void ProcessWidgetEvents ( vtkObject *caller, unsigned long event, void *callData );
00051
00054 virtual void ProcessMRMLEvents ( vtkObject *caller, unsigned long event, void *callData );
00055
00059
00062 virtual void RemoveMRMLObservers ( );
00063
00067 void UpdateFromMRML();
00068
00072 void RequestRender();
00073
00076 void Render();
00077
00080 vtkSetMacro (RenderPending, int);
00081 vtkGetMacro (RenderPending, int);
00082
00084 vtkGetObjectMacro(ViewerWidget, vtkSlicerViewerWidget);
00085 virtual void SetViewerWidget(vtkSlicerViewerWidget *viewerWidget);
00086
00089 vtkGetObjectMacro(InteractorStyle, vtkSlicerViewerInteractorStyle);
00090 virtual void SetInteractorStyle(vtkSlicerViewerInteractorStyle *interactorStyle);
00091
00092
00094 std::map<std::string, vtkSlicerSeedWidgetClass *> SeedWidgets;
00095
00099 vtkSlicerSeedWidgetClass *GetSeedWidget(const char * nodeID, int createFlag = 1);
00100
00102 void AddSeedWidgetByID(const char *nodeID);
00103
00106 void AddSeedWidget(vtkMRMLFiducialListNode *fiducialListNode);
00107
00110 void AddSeed(vtkMRMLFiducialListNode *fiducialListNode, const char *pointID);
00113 void RemoveSeed(vtkMRMLFiducialListNode *fiducialListNode, const char *pointID);
00116 void RemoveSeedWidget(vtkMRMLFiducialListNode *fiducialListNode);
00119 void RemoveSeedWidgets();
00122 void Update3DWidgetsFromMRML();
00123
00126 vtkGetObjectMacro(ViewNode, vtkMRMLViewNode);
00127 void SetAndObserveViewNode (vtkMRMLViewNode *snode)
00128 {
00129 vtkSetAndObserveMRMLNodeMacro( this->ViewNode, snode );
00130 };
00135 void ModifyAllWidgetLock(int lockFlag);
00136
00137 protected:
00138 vtkSlicerFiducialListWidget();
00139 virtual ~vtkSlicerFiducialListWidget();
00140
00143 virtual void CreateWidget();
00144
00147 void UpdateViewNode();
00148
00151 void UpdateSeed(vtkMRMLFiducialListNode *flist, const char *fidID);
00152
00155
00156
00159 vtkCamera *GetActiveCamera();
00162 void UpdateFiducialsCamera();
00163
00167 void UpdateSeedWidgetInteractors();
00168
00172 void RemoveFiducialObservers();
00173
00176 void RemoveFiducialObserversForList(vtkMRMLFiducialListNode *flist);
00177
00180 void AddObserversToFiducialList(vtkMRMLFiducialListNode *flist);
00181
00185 void UpdateFiducialsFromMRML();
00186
00189 void UpdateFiducialListFromMRML(vtkMRMLFiducialListNode *flist);
00190
00193 void SetSeedWidgetMaterialProperties(vtkMRMLFiducialListNode *flist);
00194
00197 int ProcessingMRMLEvent;
00198
00201 int RenderPending;
00202
00205 vtkSlicerViewerWidget *ViewerWidget;
00206
00209 vtkSlicerViewerInteractorStyle *InteractorStyle;
00210
00213 int Updating3DWidget;
00214
00215
00219 void Update3DWidgetLock(vtkMRMLFiducialListNode *fiducialListNode);
00220
00224 void Update3DWidgetVisibility(vtkMRMLFiducialListNode *fiducialListNode);
00225
00229 void Update3DWidgetSelected(vtkMRMLFiducialListNode *fiducialListNode);
00230
00231
00235 void Update3DWidgetGlyphType(vtkMRMLFiducialListNode *fiducialListNode);
00236
00240 void Update3DWidgetText(vtkMRMLFiducialListNode *fiducialListNode);
00241
00242
00246 void Update3DWidgetPositions(vtkMRMLFiducialListNode *fiducialListNode);
00247
00251 void Update3DWidgetColour(vtkMRMLFiducialListNode *fiducialListNode);
00252
00255 void Update3DWidgetScale(vtkMRMLFiducialListNode *fiducialListNode);
00256
00257
00260 void Update3DWidgetDisplayProperties(vtkMRMLFiducialListNode *fiducialListNode);
00261
00264 void Update3DWidget(vtkMRMLFiducialListNode *fiducialListNode);
00265
00266
00270 void Swap(vtkMRMLFiducialListNode *flist, int first, int second);
00271
00275 void UpdateInteractionModeAtStartInteraction();
00279 void UpdateInteractionModeAtEndInteraction();
00280
00281
00284 vtkMRMLViewNode *ViewNode;
00285 private:
00286
00287 vtkSlicerFiducialListWidget(const vtkSlicerFiducialListWidget&);
00288 void operator=(const vtkSlicerFiducialListWidget&);
00289 };
00290
00291 #endif