vtkSlicerROIViewerWidget.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: vtkSlicerROIViewerWidget.h,v $
00010   Date:      $Date: 2010-02-15 16:34:06 -0500 (Mon, 15 Feb 2010) $
00011   Version:   $Revision: 12141 $
00012 
00013 =========================================================================auto=*/
00014 
00020 //
00021 
00022 #ifndef __vtkSlicerROIViewerWidget_h
00023 #define __vtkSlicerROIViewerWidget_h
00024 
00025 #include "vtkSlicerWidget.h"
00026 #include "vtkKWRenderWidget.h"
00027 
00028 #include "vtkSlicerBoxWidget2.h"
00029 #include "vtkSlicerBoxRepresentation.h"
00030 #include "vtkSlicerViewerWidget.h"
00031 
00032 class vtkMRMLROINode;
00033 class vtkKWRenderWidget;
00034 class vtkTransform;
00035 class vtkCollection;
00036 class vtkBoxWidgetCallback;
00037 
00038 class VTK_SLICER_BASE_GUI_EXPORT vtkSlicerROIViewerWidget : public vtkSlicerWidget
00039 {
00040 public:
00041   static vtkSlicerROIViewerWidget* New();
00042   vtkTypeRevisionMacro(vtkSlicerROIViewerWidget,vtkSlicerWidget);
00043   void PrintSelf(ostream& os, vtkIndent indent);
00044 
00047   //virtual void ProcessWidgetEvents ( vtkObject *caller, unsigned long event, void *callData );
00048 
00051   virtual void AddMRMLObservers();
00052   
00055   virtual void RemoveMRMLObservers ( );
00056 
00059   virtual void ProcessMRMLEvents ( vtkObject *caller, unsigned long event, void *callData );
00060   
00061   
00064   void SetMainViewerWidget(vtkSlicerViewerWidget *viewer)
00065     {
00066     this->MainViewerWidget = viewer;
00067     };
00068 
00069   vtkGetObjectMacro(MainViewerWidget, vtkSlicerViewerWidget);
00070   
00073   void UpdateFromMRML();
00074 
00077   void UpdateROIFromMRML(vtkMRMLROINode *roi);
00078 
00081   void UpdateROITransform(vtkMRMLROINode *roi);
00082 
00086   void RequestRender();
00087 
00090   void Render();
00091 
00092 
00095   vtkSlicerBoxWidget2 *GetBoxWidgetByID (const char *id);
00096 
00099 
00100   vtkBoxWidgetCallback *GetBoxWidgetCallbackByID (const char *id);
00101 
00104   void RemoveBoxWidgets();
00105 
00108   void RemoveBoxWidget(const char *pointID);
00109   
00112   void RemoveBoxWidget(vtkSlicerBoxWidget2* boxWidget);
00113   
00114   void SetProcessingWidgetEvent(int flag)
00115   {
00116     this->ProcessingWidgetEvent = flag;
00117   };
00118 
00119 protected:
00120   vtkSlicerROIViewerWidget();
00121   virtual ~vtkSlicerROIViewerWidget();
00122 
00125   virtual void CreateWidget();
00126 
00129   void AddMRMLROIObservers(vtkMRMLROINode *roi);
00130 
00133   void RemoveMRMLROIObservers();
00134 
00137   void RemoveMRMLROINodeObservers(vtkMRMLROINode *roi);
00138   
00139   
00143   void RemoveROIObservers();
00144 
00148   void UpdateROIsFromMRML();
00149 
00150   
00151   //BTX
00152   std::map<std::string, vtkSlicerBoxWidget2*> DisplayedBoxWidgets; 
00153   std::map<std::string, vtkBoxWidgetCallback*> DisplayedBoxWidgetCallbacks; 
00154   //ETX
00155   
00158   int ProcessingMRMLEvent;
00159   int ProcessingWidgetEvent;
00160   
00161 
00164   vtkSlicerViewerWidget *MainViewerWidget;
00165  
00166     
00167 private:
00168   
00169   vtkSlicerROIViewerWidget(const vtkSlicerROIViewerWidget&); 
00170   void operator=(const vtkSlicerROIViewerWidget&); 
00171 };
00172 
00173 #endif

Generated on 6 Apr 2011 for Slicer3 by  doxygen 1.6.1