vtkSlicerDiffusionEditorWidget.h

Go to the documentation of this file.
00001 // .NAME vtkSlicerDiffusionEditorWidget 
00002 // .SECTION Description
00003 // This class implements Slicer's main DiffusionEditor GUI.
00004 // Inherits most behavior from vtkSlicerWidget.
00005 #ifndef __vtkSlicerDiffusionEditorWidget_h
00006 #define __vtkSlicerDiffusionEditorWidget_h
00007 
00008 #include "vtkVolumes.h"
00009 #include "vtkSlicerWidget.h"
00010 #include "vtkSlicerApplication.h"
00011 
00012 class vtkSlicerDiffusionEditorLogic;
00013 class vtkMRMLDiffusionWeightedVolumeNode;
00014 class vtkSlicerMeasurementFrameWidget;
00015 class vtkSlicerDiffusionTestingWidget;
00016 class vtkSlicerGradientsWidget;
00017 //widgets
00018 class vtkKWFrame;
00019 class vtkKWPushButton;
00020 
00021 class VTK_VOLUMES_EXPORT vtkSlicerDiffusionEditorWidget : public vtkSlicerWidget
00022   {
00023   public:
00024 
00025     // Description:
00026     // Usual vtk class functions.
00027     static vtkSlicerDiffusionEditorWidget* New();
00028     vtkTypeRevisionMacro(vtkSlicerDiffusionEditorWidget,vtkSlicerWidget);
00029     void PrintSelf(ostream& os, vtkIndent indent);
00030 
00031     // Description:
00032     // Add/Remove observers on KWwidgets in the GUI.
00033     virtual void AddWidgetObservers();
00034     virtual void RemoveWidgetObservers();
00035 
00036     // Description:
00037     // Propagates events generated in GUI to logic / mrml.
00038     void ProcessWidgetEvents(vtkObject *caller, unsigned long event, void *callData );
00039 
00040     // Description:
00041     // Updates the widget if a new ActiveVolumeNode is loaded.
00042     void UpdateWidget(vtkMRMLVolumeNode *node);
00043 
00044     // Description:
00045     // Sets the Application to the current vtkSlicerApplication.
00046     vtkSetObjectMacro(Application, vtkSlicerApplication);
00047     //BTX
00048     using vtkKWObject::SetApplication;
00049     //ETX
00050 
00051     // Description:
00052     // Returns the logic of the DiffusionEditor.
00053     vtkGetObjectMacro(Logic, vtkSlicerDiffusionEditorLogic);
00054 
00055     vtkGetObjectMacro(TestingWidget, vtkSlicerDiffusionTestingWidget);
00056 
00057   protected:
00058     vtkSlicerDiffusionEditorWidget(void);
00059     virtual ~vtkSlicerDiffusionEditorWidget(void);
00060 
00061     // Description:
00062     // Creates the widget.
00063     virtual void CreateWidget();
00064 
00065     vtkSlicerApplication *Application;
00066     vtkSlicerDiffusionEditorLogic *Logic;
00067 
00068     //nodes
00069     vtkMRMLVolumeNode *ActiveVolumeNode;
00070 
00071     //widgets (GUI)
00072     vtkSlicerMeasurementFrameWidget *MeasurementFrameWidget;
00073     vtkSlicerGradientsWidget *GradientsWidget;
00074     vtkSlicerDiffusionTestingWidget *TestingWidget;
00075     vtkKWFrame *ButtonFrame;
00076     vtkKWPushButton *RestoreButton;
00077     vtkKWPushButton *UndoButton;
00078     vtkKWPushButton *RedoButton;
00079 
00080   private:
00081     vtkSlicerDiffusionEditorWidget (const vtkSlicerDiffusionEditorWidget&); // Not implemented.
00082     void operator = (const vtkSlicerDiffusionEditorWidget&); //Not implemented.
00083   };
00084 
00085 #endif 

Generated on 6 Apr 2011 for Slicer3 by  doxygen 1.6.1