]> Creatis software - clitk.git/blobdiff - common/clitkCommon.cxx
removed headers
[clitk.git] / common / clitkCommon.cxx
index d7ca47aa7cd94dabc8965c20a48fc1a7844b1151..715c228ae589c9c10a38bb10eb5e8bc60bc2e2ec 100644 (file)
@@ -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 <fstream>
+#include <iomanip>
+#include <sstream>
 
 //------------------------------------------------------------------
 // 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; i<oss.str().length(); ++i) 
+       std::cout << "\b" << std::flush;
 }
 //------------------------------------------------------------------
 
@@ -104,33 +78,7 @@ int stage = current;
 // Display progression
 void clitk::VerboseInProgressInPercentage(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");
-
-  /*
-  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);
 }
 //------------------------------------------------------------------