]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/HistogramDialog.h
creaButtonContainer & creaPanelButtonContainer: Updates in doxygen documentation...
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / pPlotter / HistogramDialog.h
index a23cd3b2e528ec92db0ddab3627b1ca28fde85a9..13f7f3d5a0d47d964ac9e14b12ca3e622e3c29c9 100644 (file)
  #include <vtkColorTransferFunction.h>
  #include <vtkVolumeRayCastMapper.h>
  #include <vtkVolume.h>
- #include "../wxMPRWidget.h"
+ //#include "../wxMPRWidget.h"
+
+#include "HistogramDialogComboBoxItem.h"
+#include <wx/checkbox.h>
+#include <wx/statbmp.h>
 
 class HistogramDialog:public wxDialog
 {
@@ -33,7 +37,12 @@ public:
        /*
         Constructor
        */
-       HistogramDialog(wxWindow *parent,wxString title,vtkImageData* imageData,int type);
+       HistogramDialog(wxWindow *parent,wxString title,vtkImageData* imageData,bool extracontrols=false);
+       /*
+        Constructor
+       */
+       HistogramDialog(wxWindow *parent,wxString title,bool extracontrols=false);
+       ~HistogramDialog();
        /*
         Methods
        */
@@ -109,8 +118,8 @@ public:
        void setTF(vtkPiecewiseFunction* tf);
        void setVolumeMapper(vtkVolumeRayCastMapper* volMapper);
        void setVolume(vtkVolume* vol);
-       void setMPR3Dview(wxVtkMPR3DView *wxvtkmpr3Dview1);
-       void setClipping3DView(wxVtkClipping3DView *wxvtkclipping3Dview1);
+       //void setMPR3Dview(wxVtkMPR3DView *wxvtkmpr3Dview1);
+       //void setClipping3DView(wxVtkClipping3DView *wxvtkclipping3Dview1);
 
        //--------------------
        // plotter Information
@@ -125,20 +134,60 @@ public:
        void OnLoadData(wxCommandEvent& event);
        void OnRefreshBtn(wxCommandEvent& event);
        
+
+       /**
+       **      Initialize the histogram 
+       */
+       void initializeHistogram(vtkImageData* img);
+       /**
+       **      Returns two vectors, the grey level of the point and its value, the value is between [0,1]
+       **/
+       void GetValuesPointsFunction(std::vector<double>& greylevel,std::vector<double>& value);
+
+       /**
+       **      Returns two vectors, the grey level of the point and its value, the red, green
+       **      and blue value is between [0,1]
+       **/
+       void GetValuesColorPointsFunction(std::vector<double>& greylevel,
+                                                                       std::vector<double>& red,
+                                                                       std::vector<double>& green,
+                                                                       std::vector<double>& blue);
+       void SetFunctions(vtkPiecewiseFunction* _opac, vtkColorTransferFunction* _color);
+
+       /**
+       ** Set to true in the constructor
+       **/
+       void setInfoPanExtraControls(std::vector<HistogramDialogComboBoxItem*> comboitems);
+       
+
+       /**
+       *
+       */
+       void OnEditColorsCombo(wxCommandEvent& event);
+       void OnDeleteColor(wxCommandEvent& event);
+
+       std::vector<HistogramDialogComboBoxItem*> getComboBoxItems(){return _comboitems;}
+
+       void UpdateCurrentComboElement();
+       
 private:
        /*
        Histogram Widget
        */
        HistogramWidget*  histogramW;
-
+/**
+**     
+**/
        /*
         ok Button
        */
-       wxButton                *okBtn;
+       //wxButton              *okBtn;
+       wxBitmapButton          *okBtn;
        /*
         cancel Button
        */
-       wxButton                *cancelBtn;
+       //wxButton              *cancelBtn;
+       wxBitmapButton          *cancelBtn;
        /*
         save Button
        */
@@ -152,6 +201,7 @@ private:
        */
        wxButton                *refreshBtn;
 
+       wxPanel* _panextracontrols;
        
        
        // the user had pressed refresh
@@ -163,13 +213,32 @@ private:
        vtkVolume                                                       *newvol;
 
        //things to refresh
-       wxVtkMPR3DView                                          *wxvtkmpr3Dview;
-       wxVtkClipping3DView                                     *wxvtkclipping3Dview;
+       //wxVtkMPR3DView                                                *wxvtkmpr3Dview;
+       //wxVtkClipping3DView                                   *wxvtkclipping3Dview;
+
+       
+       wxSizer* getControls(bool extracontrols = false);
+
        
        
 //     DECLARE_CLASS(HistogramDialog);
        // any class wishing to process wxWindows events must use this macro
        //DECLARE_EVENT_TABLE()
+
+       void initializeHistogramDialog(bool extracontrols);
+
+        wxPanel* getPanExtraControls();
+
+        std::vector<wxBitmapButton*> bitmapbuttonsvect;
+        std::vector<HistogramDialogComboBoxItem*> _comboitems;
+
+        void setCurrentColorConfigurationIntoButton();
+        void AddNewBitmapButton();
+        wxSizer* getBitmapButtonDelete(wxBitmap bitmap);
+        std::vector<wxBitmapButton*> _deletebuttonsvector;
+
+        int _maxgreyvalue;
+        int _currentcolorselectedbitmap;
 };
 
 #endif