vtkChangeTrackerStep.h

Go to the documentation of this file.
00001 #ifndef __vtkChangeTrackerStep_h
00002 #define __vtkChangeTrackerStep_h
00003 
00004 #include "vtkChangeTracker.h"
00005 #include "vtkKWWizardStep.h"
00006 
00007 class vtkKWFrameWithLabel; 
00008 class vtkChangeTrackerGUI;
00009 class vtkKWPushButton;
00010 class vtkVolumeTextureMapper3D;
00011 class vtkPiecewiseFunction;
00012 class vtkColorTransferFunction;
00013 class vtkVolumeProperty;
00014 class vtkVolume;
00015 class vtkMatrix4x4;      
00016 class vtkMRMLVolumeNode;
00017 class vtkImageData;  
00018 class vtkFixedPointVolumeRayCastMapper;
00019 
00020 #define CHANGETRACKER_MENU_BUTTON_WIDTH_SMALL 10
00021 #define CHANGETRACKER_MENU_BUTTON_WIDTH 15
00022 #define CHANGETRACKER_WIDGETS_LABEL_WIDTH 25
00023 #define CHANGETRACKER_WIDGETS_SLIDER_WIDTH 100
00024 #define CHANGETRACKER_WIDGETS_SLIDER_HEIGHT 25
00025 
00026 class VTK_CHANGETRACKER_EXPORT vtkChangeTrackerStep : public vtkKWWizardStep
00027 {
00028 public:
00029   static vtkChangeTrackerStep *New();
00030   vtkTypeRevisionMacro(vtkChangeTrackerStep,vtkKWWizardStep);
00031   void PrintSelf(ostream& os, vtkIndent indent);
00032 
00033   // Description: 
00034   // Get/Set GUI - 
00035   vtkGetObjectMacro(GUI, vtkChangeTrackerGUI);
00036   virtual void SetGUI(vtkChangeTrackerGUI*); 
00037 
00038   // Description:
00039   // Reimplement the superclass's method (see vtkKWWizardStep).
00040   virtual void HideUserInterface();
00041   virtual void Validate();
00042   virtual int CanGoToSelf();
00043 
00044   virtual void ShowUserInterface();
00045 
00046   void AddGUIObservers() { } 
00047 
00048   virtual void TransitionCallback() { };
00049 
00050   // Note : This should be called directly from workflow->BackButton but it is not currently possible 
00051   // -> That is why we use step  
00052   virtual void RemoveResults() {};
00053 
00054   virtual void UpdateMRML() { }
00055 
00056   virtual void UpdateGUI() { } 
00057   virtual void RemoveGUIObservers() { } 
00058 
00059   virtual void ProcessGUIEvents(vtkObject *vtkNotUsed(caller),
00060                                 unsigned long vtkNotUsed(event),
00061                                 void *vtkNotUsed(callData)) { }
00062 
00063   void SetNextStep(vtkChangeTrackerStep *init) { this->NextStep = init;}
00064 
00065   virtual void GridCallback();
00066   virtual void SliceCallback();
00067 
00068 
00069   vtkGetObjectMacro(Render_VolumeProperty, vtkVolumeProperty);
00070   vtkGetObjectMacro(Render_Mapper, vtkVolumeTextureMapper3D);
00071 
00072   void RenderHide();
00073   void RenderShow();
00074 
00075 protected:
00076   vtkChangeTrackerStep();
00077   ~vtkChangeTrackerStep();
00078 
00079   vtkChangeTrackerGUI *GUI;
00080   vtkKWFrameWithLabel               *Frame;
00081   vtkKWFrameWithLabel               *AdvancedFrame;
00082   vtkCallbackCommand *WizardGUICallbackCommand;
00083   // Needed so we can clean up mess when going backwards 
00084   vtkChangeTrackerStep *NextStep;
00085 
00086   void GridRemove();
00087   int  GridDefine();
00088   void CreateGridButton();
00089   vtkKWPushButton          *GridButton;
00090 
00091   void CreateResetButton(); 
00092   void CenterRYGSliceViews(double pointX, double pointY, double pointZ);
00093 
00094   vtkKWPushButton          *ResetButton;
00095 
00096   void CreateSliceButton(); 
00097   vtkKWPushButton          *SliceButton;
00098   
00099   vtkImageData             *Render_Image;
00100   vtkVolumeTextureMapper3D *Render_Mapper;
00101   vtkPiecewiseFunction     *Render_Filter;
00102   vtkColorTransferFunction *Render_ColorMapping;
00103   vtkVolumeProperty        *Render_VolumeProperty;
00104   vtkVolume                *Render_Volume;
00105   vtkMatrix4x4             *Render_OrientationMatrix; 
00106   vtkFixedPointVolumeRayCastMapper *Render_RayCast_Mapper;
00107 
00108   void SetRender_BandPassFilter(double min, double max, float colorMin[3], float colorMax[3]);
00109   void ChangeRender_BandPassFilter(double min, double max); 
00110   void SetRender_HighPassFilter(double min, float colorMin[3], float colorMax[3]);
00111   void SetRender_BandStopFilter(double min, double max, float colorMin[3], float colorMax[3]);
00112   void SetRender_PulsePassFilter(double p0, double p1, float color_p0[3], float color_p1[3]);
00113   void RenderRemove();
00114   void CreateRender(vtkMRMLVolumeNode *volumeNode, int RayCastFlag);
00115 
00116 private:
00117   vtkChangeTrackerStep(const vtkChangeTrackerStep&);
00118   void operator=(const vtkChangeTrackerStep&);
00119 };
00120 
00121 #endif

Generated on 6 Apr 2011 for Slicer3 by  doxygen 1.6.1