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
00034
00035 vtkGetObjectMacro(GUI, vtkChangeTrackerGUI);
00036 virtual void SetGUI(vtkChangeTrackerGUI*);
00037
00038
00039
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
00051
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
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