Index: /trunk/SophyaPI/PIGcont/picntools.cc
===================================================================
--- /trunk/SophyaPI/PIGcont/picntools.cc	(revision 1918)
+++ /trunk/SophyaPI/PIGcont/picntools.cc	(revision 1919)
@@ -531,5 +531,5 @@
 t_contour_levels_kind lvkind = dr->GetCntLevelKind()  ;
 for (ii=0 ; ii<4 ; ii++)
-  if(crbe_algo[ii]==kind)
+  if(lev_kind[ii]==lvkind)
     {mOpt[9]->SetValue(910+ii); break;}
 
@@ -538,11 +538,15 @@
 sprintf(txt,"%d",nlv);
 mTxt[0]->SetText(txt);  
-// cout << " nlv "<<nlv<< endl;
+
 if(dr->Levels()!=NULL){
   string strg=" ";
   for(int kk=0 ; kk<nlv ; kk++) {
-    cout << " dr->Level("<<kk<<") "<<endl;
+    //cout << " dr->Level("<<kk<<") "<<endl;
     cout <<dr->Level(kk)<<endl;
-    sprintf(txt,"%g",dr->Level(kk)); 
+    if (kk!=nlv-1)
+       sprintf(txt,"%g ,",dr->Level(kk)); 
+    else
+      sprintf(txt,"%g",dr->Level(kk)); 
+
     strg += txt;
   }
@@ -569,5 +573,5 @@
 int k,ii,jj,kk;
 
-k = mOpt[8]->GetValue()-900; // type de ligne 
+k = mOpt[8]->GetValue()-900; // type de contour 
 dr->SetCntKind(crbe_algo[k]);
 
@@ -576,9 +580,14 @@
 
 string str=mTxt[0]->GetText();
+
 ii=atoi(str.c_str());
-dr->SetNLevel(ii);
+if(ii>0) 
+  dr->SetNLevel(ii);
+else 
+  cerr<< " PICnTools::SetCalcParm ERREUR noombre de contours <=0 "<<ii<<endl;
 char *buff;
 char *tmp;
 str=mTxt[1]->GetText();
+
 buff=strdup(str.c_str());
 double * zlev=NULL;
@@ -587,6 +596,15 @@
   zlev = new double[2];
   tmp = strtok(buff,",");
+  if(tmp ==NULL) {
+    cerr<< " PICnTools::SetCalcParm ERREUR decodage des niveaux impossible avec " << buff <<endl;
+    return;
+  }
   zlev[0] = atof(tmp);
+  
   tmp = strtok(NULL,",");
+  if(tmp ==NULL) {
+    cerr<< " PICnTools::SetCalcParm ERREUR decodage des niveaux impossible avec " << buff <<endl;
+    return;
+  }
   zlev[1]= atof(tmp);
   dr->SetMyLevels(zlev,2);
@@ -596,8 +614,26 @@
   zlev = new double[ii];
   tmp = strtok(buff,",");
+  if(tmp ==NULL) {
+    cerr<< " PICnTools::SetCalcParm ERREUR decodage des niveaux impossible dans  " << buff <<endl;
+    return;
+  }
+  int cntr = 0;
   for(jj=0 ; jj<ii ; jj++){
       zlev[jj]= atof(tmp);
-      cout << " jj "<<zlev[jj]<<endl;
-      tmp = strtok(NULL,",");
+      cntr++;
+      //cout << " jj "<<zlev[jj]<<endl;
+      tmp = strtok(NULL,"," );
+      if(tmp == NULL) {
+	
+	break;
+      }
+      cout << " tmp = <"<<tmp<<"<"<<endl;
+
+  }
+  if(cntr<ii) {
+    cerr<< " PICnTools::SetCalcParm ERREUR decodage des niveaux "<<cntr
+	<<" trouves sur "<<ii<<" dans " << buff <<endl;
+    return;
+
   }
   dr->SetMyLevels(zlev,ii);
@@ -605,5 +641,5 @@
 
 
-} 
+}  
 
 //
Index: /trunk/SophyaPI/PIGcont/pigncont.cc
===================================================================
--- /trunk/SophyaPI/PIGcont/pigncont.cc	(revision 1918)
+++ /trunk/SophyaPI/PIGcont/pigncont.cc	(revision 1919)
@@ -1,2 +1,8 @@
+// This may look like C code, but it is really -*- C++ -*-
+// Classe d'interface avec le code de GNUplot 
+// pour calculer les contours & classe de trace de contours
+// O. Perdereau
+// LAL (Orsay) / IN2P3-CNRS  DAPNIA/SPP (Saclay) / CEA
+
 #include "machdefs.h"
 #include <stdio.h>
@@ -16,13 +22,49 @@
 #include <sys/resource.h>
 
-/*  A virer ?? Reza 21/12/2001 
-static TBOOLEAN multiplot;
-static double zero =0;
-static TBOOLEAN fg_polar;
-static int xleft, xright, ybot, ytop;
-static float xsize; 
-static float ysize; 
-static float xoffset, yoffset;
-*/
+//++
+// Class	GNUPlotContour
+// Lib		PIGcont
+// include	pigncont.h
+//
+//	Classe d'interface avec le code de GNUplot qui calcule les courbes de niveaux 
+//      GNUplot part d'une grille (structure iso_curve) qui est remplie par les 
+//      createurs 
+//      Les parametres du calcul sont modifiable a partir de la fenetre d'options 
+//      du traceur de contour (classe PIContourDrawer)
+//      Options (reconnues dans un enum t_contour_kind dans GNUplot)
+//       1) nombre de courbes et et niveaux determines automatiquement par le programme (defaut)
+//          En general, 5 courbes sont tracees LEVELS_AUTO
+// 
+//       2) nombre de niveaux fixe par l'utilisateur. Les niveaux sont equidistants entre 
+//          le min et le max de la surface LEVELS_NUM
+//
+//       3) nombre et hauteurs des niveaux fixes par l'utilisateur. Les niveaux sont passes
+//          dans un tableau LEVELS_DISCRETE
+//
+//       4) nombre niveau min et ecart entre niveaux fixe par l'utilisateur LEVELS_INCREMENTAL
+//         
+//     Les contours sont traces en interpolant entre les points de la grille. 
+//     On peut choisir 3 algorithmes d'interpolation a travers p.ex. les options 
+//     de PIContourDrawer
+//     (enum t_contour_levels_kind ds GNUplot) 
+//       a) interpolation simple CONTOUR_KIND_LINEAR
+//       b) spline cubique       CONTOUR_KIND_CUBIC_SPL
+//       c) B-spline             CONTOUR_KIND_BSPLINE
+//
+//--
+//++
+// Links	Voir aussi
+// PIContourDrawer
+// PIcntools 
+//--
+//++
+// Titre	Constructeurs et Méthodes 
+//--
+//++
+// GNUPlotContour(struct iso_curve * iso) : 
+//         constructeur a partir d'une structure iso_curve
+//         (structure de GNUplot)             
+//--
+
 
 GNUPlotContour::GNUPlotContour(struct iso_curve * iso){
@@ -67,4 +109,14 @@
 
 
+//++
+// GNUPlotContour(NTupleInterface *nt,int *nz=NULL,double *z=NULL,double *dz=NULL):
+//         constructeur a partir d'un NTupleInterface 
+//         la structure iso_curve est remplie par le constructeur 
+//Inputs 
+//| NTupleInterface *nt 
+//| double *nz nombre de contours (optionnel)
+//| double *z tabelau avec les niveaux des contours (optionnel)
+//| double *dz increment entre contours (optionnel)                
+//--
 GNUPlotContour::GNUPlotContour(NTupleInterface *nt,int *nz=NULL,double *z=NULL,double *dz=NULL){
   _xmin = 1.e37;
@@ -262,5 +314,16 @@
 }
 
-GNUPlotContour::GNUPlotContour(P2DArrayAdapter*arr,int *nz=NULL,double *z=NULL,double *dz=NULL){
+//++
+// GNUPlotContour(P2DArrayAdapter*arr,int *nz=NULL,double *z=NULL,double *dz=NULL):
+//         constructeur a partir d'un P2DArrayAdapter
+//         la structure iso_curve est remplie par le constructeur 
+//Inputs 
+//| P2DArrayAdapter* arr 
+//| double *nz nombre de contours (optionnel)
+//| double *z tabelau avec les niveaux des contours (optionnel)
+//| double *dz increment entre contours (optionnel)                
+//--
+
+GNUPlotContour::GNUPlotContour(P2DArrayAdapter* arr,int *nz=NULL,double *z=NULL,double *dz=NULL){
   _xmin = 1.e37;
   _ymin = 1.e37;
@@ -353,4 +416,11 @@
 }
 
+
+//++
+// ~GNUPlotContour()
+//          
+//       Destructeur        
+//
+//--
 GNUPlotContour::~GNUPlotContour(){
  cout << " destructeur de GNUPlotContour "<<endl;
@@ -394,4 +464,11 @@
 } 
 
+
+//++
+// void CalcContour()
+//      Methode de calcul des courbes de niveaux 
+//      par appel a la routine de GNUplot 
+//
+//--
 void GNUPlotContour::CalcContour(){
   //cout << " GNUPlotContour::CalcContour(): determination des contours "<<endl;
@@ -425,5 +502,5 @@
 
  
- rcus = getrusage( RUSAGE_SELF , &r_usage);
+ //rcus = getrusage( RUSAGE_SELF , &r_usage);
 
  //if(rcus==0) 
@@ -474,5 +551,11 @@
  
 }
-//_+_ Methode 
+//++
+// void SetMyLevels(double *ptr,int k)
+//      Setting du tableau des niveaux des contours 
+//Inputs      
+//| int k : nombre de niveaux 
+//| double *ptr : adresse du tableau des niveaux 
+//--
 void 
 GNUPlotContour::SetMyLevels(double *ptr,int k){
@@ -483,6 +566,36 @@
 }
 
-// Class PIContourDrawer
-/* --Methode-- */
+//++
+// Class	PIContourDrawer
+// Lib		PIGcont
+// include	pigncont.h
+// 
+//  Classe de traceur de contour qui herite de PIDrawer et de GNUPlotContour 
+//  elle gere les options graphiques generales (couleurs, lignes, fontes,...)
+//  les contours peuvent etre traces avec des lignes ou des markers
+//  on peut afficher les valeurs des niveaux des contours
+//  on peut demander a utiliser une table de couleur 
+//  tout ca a travers la fenetre de controle associee (PICntools) 
+//
+//
+//--
+//++
+// Links        Parents
+// PIDrawer
+// GNUPlotContour
+//-- 
+//++
+// Links	Voir aussi
+// PIcntools 
+//--
+//++
+// Titre	Constructeurs et Méthodes 
+//--
+//++
+// PIContourDrawer(P2DArrayAdapter* arr,bool autodel,int *nz,double *z0,double *dz )
+// Constructeur a partir d'un P2DArrayAdapter* - voir le createur de GNUPlotContour
+// 
+//--
+
 PIContourDrawer::PIContourDrawer(P2DArrayAdapter* arr,bool autodel,int *nz,double *z0,double *dz )
   :GNUPlotContour(arr,nz,z0,dz)
@@ -500,4 +613,9 @@
 }
 
+//++
+// PIContourDrawer(NTupleInterface* nti,bool autodel,int *nz,double *z0,double *dz )
+// Constructeur a partir d'un NTupleInterface*  - voir le createur de GNUPlotContour
+// 
+//--
 PIContourDrawer::PIContourDrawer(NTupleInterface* nti,bool autodel,int *nz,double *z0,double *dz )
   :GNUPlotContour(nti,nz,z0,dz)
@@ -671,9 +789,9 @@
 
 void PIContourDrawer::InitAtts(){
-  mLineOn = false;
-  mMarkOn = true;
+  mLineOn = true;
+  mMarkOn = false;
   mLabelOn = false;
 }
-
-
-
+ 
+
+
Index: /trunk/SophyaPI/PIGcont/pigncont.h
===================================================================
--- /trunk/SophyaPI/PIGcont/pigncont.h	(revision 1918)
+++ /trunk/SophyaPI/PIGcont/pigncont.h	(revision 1919)
@@ -1,5 +1,5 @@
 // This may look like C code, but it is really -*- C++ -*-
 // Classe  GNUPlotContour   : interface avec le code de gnuplot pour tracer les contours
-// Classe  PIContourDrawer  : trace des contours ds PI 
+// Classe  PIContourDrawer  : trace des contours dans PI 
 // (c) DAPNIA (CEA)                 LAL (IN2P3/CNRS)
 //                           R. Ansari O.Perdereau  11/2001
