+/*# ---------------------------------------------------------------------
+#
+# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
+# pour la Sant�)
+# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
+# Previous Authors : Laurent Guigues, Jean-Pierre Roux
+# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
+#
+# This software is governed by the CeCILL-B license under French law and
+# abiding by the rules of distribution of free software. You can use,
+# modify and/ or redistribute the software under the terms of the CeCILL-B
+# license as circulated by CEA, CNRS and INRIA at the following URL
+# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+# or in the file LICENSE.txt.
+#
+# As a counterpart to the access to the source code and rights to copy,
+# modify and redistribute granted by the license, users are provided only
+# with a limited warranty and the software's author, the holder of the
+# economic rights, and the successive licensors have only limited
+# liability.
+#
+# The fact that you are presently reading this means that you have had
+# knowledge of the CeCILL-B license and that you accept its terms.
+# ------------------------------------------------------------------------ */
+
#ifndef __HISTOGRAMSDIALOG__
#define __HISTOGRAMSDIALOG__
//#include <vector>
#include <vtkPiecewiseFunction.h>
#include <vtkColorTransferFunction.h>
- #include <vtkVolumeRayCastMapper.h>
+#if (VTK_MAJOR_VERSION <= 7)
+ #include <vtkVolumeRayCastMapper.h>
+#else
+ #include <vtkFixedPointVolumeRayCastMapper.h>
+#endif
#include <vtkVolume.h>
- #include "../wxMPRWidget.h"
-#include "HistogramDialogComboBoxItem.h"
-
-#include <wx/bmpcbox.h>
+ //#include "../wxMPRWidget.h"
-
-#define FILENAME "/Data/colorsfunction.txt"
+#include "HistogramDialogComboBoxItem.h"
+#include <wx/checkbox.h>
+#include <wx/statbmp.h>
class HistogramDialog:public wxDialog
{
/*
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);
+ HistogramDialog(wxWindow *parent,wxString title,bool extracontrols=false);
+ ~HistogramDialog();
/*
Methods
*/
bool getRefreshed();
void setCTF(vtkColorTransferFunction* cf);
void setTF(vtkPiecewiseFunction* tf);
+#if (VTK_MAJOR_VERSION <= 7)
void setVolumeMapper(vtkVolumeRayCastMapper* volMapper);
+#else
+ void setVolumeMapper(vtkFixedPointVolumeRayCastMapper* volMapper);
+#endif
void setVolume(vtkVolume* vol);
- void setMPR3Dview(wxVtkMPR3DView *wxvtkmpr3Dview1);
- void setClipping3DView(wxVtkClipping3DView *wxvtkclipping3Dview1);
+ //void setMPR3Dview(wxVtkMPR3DView *wxvtkmpr3Dview1);
+ //void setClipping3DView(wxVtkClipping3DView *wxvtkclipping3Dview1);
//--------------------
// plotter Information
void OnSaveData(wxCommandEvent& event);
void OnLoadData(wxCommandEvent& event);
void OnRefreshBtn(wxCommandEvent& event);
- void OnEditBitmapCombo(wxCommandEvent& event);
+
/**
** Initialize the histogram
std::vector<double>& blue);
void SetFunctions(vtkPiecewiseFunction* _opac, vtkColorTransferFunction* _color);
- void OnBitmapComboItemSelected(wxCommandEvent& event);
+ /**
+ ** 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
/**
**
**/
- double _maxgreyvalue;
/*
ok Button
*/
- //wxButton *okBtn;
+ //wxButton *okBtn;
wxBitmapButton *okBtn;
/*
cancel Button
*/
- //wxButton *cancelBtn;
- wxBitmapButton *cancelBtn;
+ //wxButton *cancelBtn;
+ wxBitmapButton *cancelBtn;
/*
save Button
*/
- wxButton *saveDataBtn;
+ wxButton *saveDataBtn;
/*
Load Button
*/
- wxButton *loadDataBtn;
+ wxButton *loadDataBtn;
/*
Refresh Button
*/
- wxButton *refreshBtn;
-
- wxSizer* _bitmapsizer;
+ wxButton *refreshBtn;
+ wxPanel *_panextracontrols;
// the user had pressed refresh
bool refreshed;
vtkColorTransferFunction *_ctfun;
vtkPiecewiseFunction *_tfun;
+#if (VTK_MAJOR_VERSION <= 7)
vtkVolumeRayCastMapper *volumeMapper;
+#else
+ vtkFixedPointVolumeRayCastMapper *volumeMapper;
+#endif
vtkVolume *newvol;
//things to refresh
- wxVtkMPR3DView *wxvtkmpr3Dview;
- wxVtkClipping3DView *wxvtkclipping3Dview;
-
- wxBitmapComboBox* _bitmapcombo;
- std::vector<HistogramDialogComboBoxItem*> _bitmapsitems;
- wxSizer* getControls();
- wxSizer* getBitmapCombo();
- wxBitmapComboBox* getBitmapComboElements();
- void OnLoadComboBoxData(std::vector<HistogramDialogComboBoxItem*>& itembitmaps, std::string filename,std::vector<double>& greyvect, std::vector<int>& redvect, std::vector<int>& greenvect, std::vector<int>& bluevect);
- std::vector<wxBitmap*> GetBitmapsList(std::vector<double> greyvect, std::vector<int> redvect, std::vector<int> greenvect, std::vector<int> bluevect);
+ //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();
+ 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