X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=common%2FclitkCommon.cxx;h=715c228ae589c9c10a38bb10eb5e8bc60bc2e2ec;hb=0083c3fb2c66812489631c7551709d121de51625;hp=d7ca47aa7cd94dabc8965c20a48fc1a7844b1151;hpb=931a42358442f4ee4f314613c991c838d4b4e3b7;p=clitk.git diff --git a/common/clitkCommon.cxx b/common/clitkCommon.cxx index d7ca47a..715c228 100644 --- a/common/clitkCommon.cxx +++ b/common/clitkCommon.cxx @@ -1,18 +1,5 @@ -/*------------------------------------------------------------------------- - - Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de - l'Image). All rights reserved. See Doc/License.txt or - http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details. - - This software is distributed WITHOUT ANY WARRANTY; without even - the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - PURPOSE. See the above copyright notices for more information. - --------------------------------------------------------------------------*/ - #ifndef CLITKCOMMON_CXX #define CLITKCOMMON_CXX - /** ------------------------------------------------- * @file clitkCommon.cxx @@ -25,7 +12,9 @@ -------------------------------------------------*/ #include "clitkCommon.h" -#include "itkMacro.h" +#include +#include +#include //------------------------------------------------------------------ // skip line which begin with a sharp '#' @@ -71,32 +60,17 @@ std::string clitk::GetExtension(const std::string& filename) // Display progression void clitk::VerboseInProgress(const int nb, const int current, const int percentage) { -int stage = current; - int number_of_stages = nb; - - static int exp = -1; - int prec = 4; - int p = (int)(stage*pow(10.0,prec)*1./number_of_stages); - if (p==exp) return; - exp = p; - float s = p * 100. / pow(10.0,prec); - char fmt[128]; - sprintf(fmt,"%%%i.%if%%%%",prec<4?prec:prec+1,prec>3?prec-3:0); - char ch[128]; - - snprintf(ch,2,fmt,s); - //sxsVSCU_MESSAGE(2,ch); - std::cout << ch << std::flush; - for (int i=0;i<(prec>3?prec+2:prec+1);++i) - std::cout << "\b" << std::flush;//sxsVSCU_MESSAGE(2,"\b"); + static int previous = -1; + const int rounded = (100*current)/nb; + if (previous==rounded) return; + previous = rounded; - /* + std::ostringstream oss; + oss << std::setw(4) << rounded << '%'; - if ((current % (nb/percentage)) == 0) { - std::cout.width(15); - std::cout << "\r" << current << "/" << nb << std::flush; - } - */ + std::cout << oss.str() << std::flush; + for (unsigned int i=0; i3?prec-3:0); - char ch[128]; - - snprintf(ch,2,fmt,s); - //sxsVSCU_MESSAGE(2,ch); - std::cout << ch << std::flush; - for (int i=0;i<(prec>3?prec+2:prec+1);++i) - std::cout << "\b" << std::flush;//sxsVSCU_MESSAGE(2,"\b"); - - /* - if (nb/percentage != 0) { - if ((current % (nb/percentage)) == 0) { - std::cout.width(2); - std::cout << "\r" << (nb/current)*100 << "/100% " << std::flush; - } - } - */ + VerboseInProgress(nb, current, percentage); } //------------------------------------------------------------------