X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FThresholdImageView%2FThresholdImageViewPanel.cxx;h=c3e7bcf772573022a2c8152be00c513167522a25;hb=05c4abbebf824bbbbaaab135acf6c888662dff69;hp=4ad0d443b5905cf79e675603ef5782e573186fec;hpb=096822cf3513065cfa25e378679339a5ae4684cf;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/ThresholdImageViewPanel.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/ThresholdImageViewPanel.cxx index 4ad0d44..c3e7bcf 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/ThresholdImageViewPanel.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/ThresholdImageViewPanel.cxx @@ -1,4 +1,29 @@ - + /*# --------------------------------------------------------------------- +# +# 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. +# ------------------------------------------------------------------------ */ + + /** * \file @@ -13,47 +38,63 @@ /** ** Begin of the threshold panel **/ -ThresholdImageViewPanel::ThresholdImageViewPanel(wxWindow* parent) +ThresholdImageViewPanel::ThresholdImageViewPanel(wxWindow* parent, int min, int max, int type) : wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_SUNKEN) { _thresholdImageView = new ThresholdImageView(); - wxButton *thresholdGoBtn = new wxButton(this,wxID_ANY,_T("Show/Hide Color"), wxDefaultPosition, wxSize(200,30) ); +// wxButton *thresholdGoBtn = new wxButton(this,wxID_ANY,_T("Show/Hide Color"), wxDefaultPosition, wxSize(200,30) ); + + _thresholdGo = true; + _cb_ShowHide = new wxCheckBox(this, wxID_ANY, _T("Show/Hide layer") ); + _cb_ShowHide->SetValue(_thresholdGo); + _interpolationCheckBox = new wxCheckBox(this, -1, _T("Image interpolation") ); _interpolationCheckBox->SetValue(true); _opacity = new wxSlider(this, wxID_ANY, 6, 1, 10, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL|wxSL_LABELS, wxDefaultValidator); - _thresholdGo = false; - double range[2]; +// double range[2]; // interfMainPanel::getInstance()->getImageRange(range); - int min = (int)floor (range[0]); - int max = (int)ceil (range[1]); +// int min = (int)floor (range[0]); +// int max = (int)ceil (range[1]); + + if (type==0) + { + } + + if (type==1) + { + _mBarThreshold = new mBarRange(this,70,65); + _mBarThreshold-> SetMin(0); + _mBarThreshold-> SetStart(0); + _mBarThreshold-> SetOrientation( true ); + _mBarThreshold-> setActiveStateTo(true); + _mBarThreshold-> setVisibleLabels( true ); + _mBarThreshold-> setDeviceEndMargin(10); + _mBarThreshold-> setRepresentedValues( min , max ); + _mBarThreshold-> setDeviceBlitStart(10,10); + _mBarThreshold-> setIfWithActualDrawed( false ); + _mBarThreshold-> SetStart( min ); + _mBarThreshold-> SetEnd( max ); + } - _mBarThreshold = new mBarRange(this,70,65); - _mBarThreshold->SetMin(0); - _mBarThreshold->SetStart(0); - _mBarThreshold-> SetOrientation( true ); - _mBarThreshold-> setActiveStateTo(true); - _mBarThreshold-> setVisibleLabels( true ); - _mBarThreshold-> setDeviceEndMargin(10); - _mBarThreshold-> setRepresentedValues( min , max ); - _mBarThreshold-> setDeviceBlitStart(10,10); - _mBarThreshold-> setIfWithActualDrawed( false ); - _mBarThreshold-> SetStart( min ); - _mBarThreshold-> SetEnd( max ); - Connect( thresholdGoBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &ThresholdImageViewPanel::onThresholdGo ); + Connect( _cb_ShowHide->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED , (wxObjectEventFunction) &ThresholdImageViewPanel::onThresholdShow ); Connect( _interpolationCheckBox->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &ThresholdImageViewPanel::onThresholdInterpolation ); + Connect( _opacity->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction) &ThresholdImageViewPanel::onChangeOpacity ); wxFlexGridSizer * sizer = new wxFlexGridSizer(1); - sizer -> Add( new wxStaticText(this,-1,_T("Image Threshold")) , 1, wxGROW ); - sizer -> Add( _mBarThreshold, 1, wxGROW ); - sizer -> Add( new wxStaticText(this,-1,_T(" ")) , 1, wxGROW ); + if (type==1) + { + sizer -> Add( new wxStaticText(this,-1,_T("Image Threshold")) , 1, wxGROW ); + sizer -> Add( _mBarThreshold, 1, wxGROW ); + sizer -> Add( new wxStaticText(this,-1,_T(" ")) , 1, wxGROW ); + } sizer -> Add( new wxStaticText(this,-1,_T("Opacity Level")) , 1, wxGROW ); sizer -> Add( _opacity, 1, wxGROW ); sizer -> Add( new wxStaticText(this,-1,_T(" ")) , 1, wxGROW ); - sizer -> Add( thresholdGoBtn, 1, wxGROW ); + sizer -> Add( _cb_ShowHide, 1, wxGROW ); sizer -> Add( new wxStaticText(this,-1,_T(" ")) , 1, wxGROW ); sizer -> Add( _interpolationCheckBox, 1, wxGROW ); @@ -63,7 +104,8 @@ ThresholdImageViewPanel::ThresholdImageViewPanel(wxWindow* parent) } //---------------------------------------------------------------------------- -ThresholdImageViewPanel::~ThresholdImageViewPanel(){ +ThresholdImageViewPanel::~ThresholdImageViewPanel() +{ } @@ -79,25 +121,26 @@ void ThresholdImageViewPanel::onThresholdChange(wxCommandEvent& event) { if (_thresholdGo) { + _thresholdImageView->SetminMaxValue( _mBarThreshold->GetStart(), _mBarThreshold->GetEnd() ); _thresholdImageView->onThresholdChange(); - + _thresholdImageView->GetwxVtkBaseView()->Refresh(); //std::cout<< "Valor Min: " << minVal << " & Valor Max: " << maxVal << std::endl; } } //---------------------------------------------------------------------------- -void ThresholdImageViewPanel::onThresholdGo(wxCommandEvent& event) +void ThresholdImageViewPanel::onThresholdShow(wxCommandEvent& event) { - if (!_thresholdGo) + _thresholdGo = _cb_ShowHide->GetValue(); + if (_thresholdGo) { _thresholdImageView->onThreshold(); - _thresholdGo=true; } else { _thresholdImageView->onThresholdRemove( ); - _thresholdGo=false; } + _thresholdImageView->GetwxVtkBaseView()->Refresh(); } //---------------------------------------------------------------------------- @@ -110,17 +153,12 @@ void ThresholdImageViewPanel::onThresholdStop() } } -//---------------------------------------------------------------------------- -void ThresholdImageViewPanel::onThresholdInstantChange(double range[]) -{ - range[0] = _mBarThreshold->GetStart(); - range[1] = _mBarThreshold->GetEnd(); -} - //---------------------------------------------------------------------------- void ThresholdImageViewPanel::onThresholdInterpolation(wxCommandEvent& event) { _thresholdImageView->onThresholdInterpolation(_interpolationCheckBox->GetValue()); + _thresholdImageView->GetwxVtkBaseView()->Refresh(); + } //---------------------------------------------------------------------------- @@ -128,15 +166,25 @@ void ThresholdImageViewPanel::onChangeOpacity(wxScrollEvent& event) { int opacity = _opacity->GetValue(); _thresholdImageView->onThresholdChangeOpacity(opacity); + _thresholdImageView->GetwxVtkBaseView()->Refresh(); } +//---------------------------------------------------------------------------- +bool ThresholdImageViewPanel::IsVisible() +{ + return _thresholdGo; +} + BEGIN_EVENT_TABLE(ThresholdImageViewPanel, wxPanel) EVT_COMMAND(wxID_ANY, wxEVT_TSBAR_START, ThresholdImageViewPanel::onThresholdChange) EVT_COMMAND(wxID_ANY, wxEVT_TSBAR_END, ThresholdImageViewPanel::onThresholdChange) EVT_COMMAND(wxID_ANY, wxEVT_TSBAR_MOVED, ThresholdImageViewPanel::onThresholdChange) - EVT_SCROLL(ThresholdImageViewPanel::onChangeOpacity) + +//EED Borrame +// EVT_SCROLL(ThresholdImageViewPanel::onChangeOpacity) + END_EVENT_TABLE()