vtkSlicerFiducialListWidget.h

Go to the documentation of this file.
00001 /*=auto=========================================================================
00002 
00003   Portions (c) Copyright 2006 Brigham and Women's Hospital (BWH) All Rights Reserved.
00004 
00005   See Doc/copyright/copyright.txt
00006   or http://www.slicer.org/copyright/copyright.txt for details.
00007 
00008   Program:   3D Slicer
00009   Module:    $RCSfile: vtkSlicerFiducialListWidget.h,v $
00010   Date:      $Date: 2010-05-27 12:38:07 -0400 (Thu, 27 May 2010) $
00011   Version:   $Revision: 13520 $
00012 
00013 =========================================================================auto=*/
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 //BTX
00094   std::map<std::string, vtkSlicerSeedWidgetClass *> SeedWidgets;
00095 //ETX
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   //void RemoveFiducialProps();
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

Generated on 6 Apr 2011 for Slicer3 by  doxygen 1.6.1