X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=bbtk%2Fsrc%2FbbmaracasvisuTransferFunctionView.cxx;h=ca7fa29fa7413104d3910684d0a77424bf1fe457;hb=3283472f764535492122c3b2ade020a749c1bd2a;hp=4a251079c787e37a1d2ba3772a0198dc429d93df;hpb=e7d3c47803d3341d27c134738499e92a1fef426c;p=creaMaracasVisu.git diff --git a/bbtk/src/bbmaracasvisuTransferFunctionView.cxx b/bbtk/src/bbmaracasvisuTransferFunctionView.cxx index 4a25107..ca7fa29 100644 --- a/bbtk/src/bbmaracasvisuTransferFunctionView.cxx +++ b/bbtk/src/bbmaracasvisuTransferFunctionView.cxx @@ -1,3 +1,28 @@ +/*# --------------------------------------------------------------------- +# +# 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. +# ------------------------------------------------------------------------ */ + #include "bbmaracasvisuTransferFunctionView.h" #include "bbcreaMaracasVisuPackage.h" namespace bbcreaMaracasVisu @@ -9,38 +34,31 @@ BBTK_BLACK_BOX_IMPLEMENTATION(TransferFunctionView,bbtk::WxBlackBox); //----------------------------------------------------- void TransferFunctionView::Process() { + if(bbGetInputIn()!=NULL) + { - - - - - if(bbGetInputIn()!=NULL){ - - if(_currentimg != bbGetInputIn()){ +// if(_currentimg != bbGetInputIn()) +// { _currentimg = bbGetInputIn(); //mwxwidget->initializeHistogram(_currentimg); mwxwidget->setImageData(_currentimg); //mwxwidget->Refresh(); - } +// } - onColorChange(); - - /*bbSetOutputGreyLevel(greylevel); +// onColorChange(); + /* + bbSetOutputGreyLevel(greylevel); bbSetOutputValue(value); bbSetOutputGreyLevelColors(greylevelcolors); bbSetOutputRed(red); bbSetOutputGreen(green); - bbSetOutputBlue(blue);*/ - - - - - } - - + bbSetOutputBlue(blue); + */ + } // if In } -void TransferFunctionView::onColorChange(){ +void TransferFunctionView::onColorChange() +{ std::vector greylevel; std::vector value; @@ -55,67 +73,82 @@ void TransferFunctionView::onColorChange(){ _tfun->RemoveAllPoints(); - for(int i = 0; i < greylevel.size();i++){ + unsigned int i; + for(i = 0; i < greylevel.size();i++){ _tfun->AddPoint(greylevel[i], value[i]); - std::cout<<"TransferFunctionView::Process()transfer function "<RemoveAllPoints(); - for(int i = 0; i < greylevelcolors.size();i++){ + _ctfun->SetScaleToLinear (); + _ctfun->ClampingOff(); + _ctfun->AllowDuplicateScalarsOn(); + double w=mwxwidget->GetWindowLevel(); + double c=mwxwidget->GetColorLevel(); + + if (greylevelcolors.size()>1) + { + double min = greylevelcolors[0]; + double max = greylevelcolors[greylevelcolors.size()-1]; + double dif = max-min; + if (dif==0) dif=0.0001; + double nc; + unsigned int i; + i=0; _ctfun->AddRGBPoint(greylevelcolors[i], red[i],green[i], blue[i]); - std::cout<<"TransferFunctionView::Process()transfer color function "<AddRGBPoint(greylevelcolors[i], red[i],green[i], blue[i]); + _ctfun->AddRGBPoint( nc , red[i],green[i], blue[i]); +// std::cout<<"EED TransferFunctionView::Process()transfer color function <<"<AddRGBPoint( greylevelcolors[i] , red[i],green[i], blue[i]); } - bbSignalOutputModification(); _tfun->Update(); bbSetOutputOpacityFunction(_tfun); - bbSetOutputColorFunction(_ctfun); -} - -void TransferFunctionView::onSliderChange(){ - - - + bbSetOutputColorFunction(_ctfun ); + bbSetOutputActive( mwxwidget->GetActive() ); bbSignalOutputModification(); - bbSetOutputWindowLevel(mwxwidget->GetWindowLevel()); - bbSetOutputColorLevel(mwxwidget->GetColorLevel()); +} +void TransferFunctionView::onSliderChange() +{ + onColorChange(); + bbSignalOutputModification(); +// bbSetOutputWindowLevel(mwxwidget->GetWindowLevel()); +// bbSetOutputColorLevel(mwxwidget->GetColorLevel()); } + //----------------------------------------------------- void TransferFunctionView::CreateWidget(wxWindow* parent) { - bbtkDebugMessageInc("Core",9,"TransferFunctionView::CreateWxWindow()"<Connect(mwxwidget->GetId(), wxEVT_COMMAND_COMBOBOX_SELECTED, (wxObjectEventFunction) (&HandlerTransferFunctionView::onActive),NULL,handler); parent->Connect(mwxwidget->GetId(), wxEVT_COMMAND_COMBOBOX_SELECTED, (wxObjectEventFunction) (&HandlerTransferFunctionView::onColorChange),NULL,handler); parent->Connect(mwxwidget->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction) (&HandlerTransferFunctionView::onSliderChange),NULL,handler); - - bbtkDebugDecTab("Core",9); bbSetOutputWidget( mwxwidget ); + bbtkDebugDecTab("Core",9); } //----------------------------------------------------- void TransferFunctionView::bbUserSetDefaultValues() { - mwxwidget = NULL; + mwxwidget = NULL; _currentimg = NULL; - - _tfun = NULL; - _ctfun = NULL; - + _tfun = NULL; + _ctfun = NULL; bbSetOutputOpacityFunction(0); bbSetOutputColorFunction(0); - } - //----------------------------------------------------------------- void TransferFunctionView::bbUserInitializeProcessing() @@ -131,26 +164,28 @@ void TransferFunctionView::bbUserSetDefaultValues() { } - //----------------------------------------------------------------- - - - HandlerTransferFunctionView::HandlerTransferFunctionView(TransferFunctionView* box){ + HandlerTransferFunctionView::HandlerTransferFunctionView(TransferFunctionView* box) + { _box = box; } - HandlerTransferFunctionView::~HandlerTransferFunctionView(){ - + + HandlerTransferFunctionView::~HandlerTransferFunctionView() + { } - void HandlerTransferFunctionView::onColorChange(wxCommandEvent& event){ + + void HandlerTransferFunctionView::onColorChange(wxCommandEvent& event) + { _box->onColorChange(); } - void HandlerTransferFunctionView::onSliderChange(wxCommandEvent& event){ + + void HandlerTransferFunctionView::onSliderChange(wxCommandEvent& event) + { _box->onSliderChange(); } } - // EO namespace bbcreaMaracasVisu