Index: /trunk/SophyaPI/PIext/pigfd1.cc
===================================================================
--- /trunk/SophyaPI/PIext/pigfd1.cc	(revision 204)
+++ /trunk/SophyaPI/PIext/pigfd1.cc	(revision 205)
@@ -47,10 +47,10 @@
 dx = 0.02*(xmax-xmin);
 dy = 0.02*(ymax-ymin);
-SetLimits((float)xmin-dx,(float)xmax+dx,(float)ymin-dy,(float)ymax+dy);
+SetLimits((double)xmin-dx,(double)xmax+dx,(double)ymin-dy,(double)ymax+dy);
 SetAxesFlags(kBoxAxes | kExtTicks | kLabels);
 }
 
 /* --Methode-- */
-void PIGenFitDat::Draw(PIGraphicUC* g, float xmin, float ymin, float xmax, float ymax)
+void PIGenFitDat::Draw(PIGraphicUC* g, double xmin, double ymin, double xmax, double ymax)
 {
 if (!mGFD) return;
@@ -59,5 +59,5 @@
 // On plotte les barre d'erreurs ligne demandee explicitement
 if(mLAtt!=PI_NotDefLineAtt) SelectErrBar(true,true);
-float xp,yp,er;
+double xp,yp,er;
 for (int i=0; i<mGFD->NData(); i++) {
   xp = mGFD->Absc(VarX,i);
Index: /trunk/SophyaPI/PIext/pigfd1.h
===================================================================
--- /trunk/SophyaPI/PIext/pigfd1.h	(revision 204)
+++ /trunk/SophyaPI/PIext/pigfd1.h	(revision 205)
@@ -10,5 +10,5 @@
   virtual           ~PIGenFitDat();
   
-  virtual void       Draw(PIGraphicUC* g, float xmin, float ymin, float xmax, float ymax);
+  virtual void       Draw(PIGraphicUC* g, double xmin, double ymin, double xmax, double ymax);
   virtual void       UpdateLimits();
   
Index: /trunk/SophyaPI/PIext/pigfd2.cc
===================================================================
--- /trunk/SophyaPI/PIext/pigfd2.cc	(revision 204)
+++ /trunk/SophyaPI/PIext/pigfd2.cc	(revision 205)
@@ -48,5 +48,5 @@
 if(zmax<=zmin) zmax = zmin+1.;
 // Voir commentaires pintuple3d.cc
-float D = xmax-xmin;
+double D = xmax-xmin;
 if (D < (ymax-ymin))  D = ymax-ymin;
 D *= 1.4;
@@ -61,5 +61,5 @@
 
 /* --Methode-- */
-void PIGenFitDat3D::Draw(PIGraphicUC* g, float xmin, float ymin, float xmax, float ymax)
+void PIGenFitDat3D::Draw(PIGraphicUC* g, double xmin, double ymin, double xmax, double ymax)
 {
 // On trace les axes - En attendant de faire mieux - Reza 8/12/98
@@ -81,5 +81,5 @@
 if (mLAtt == PI_NotDefLineAtt)  g3->SelLine(PI_ThinLine);
 
-float xp,yp,zp,er;
+double xp,yp,zp,er;
 for (int i=0; i<mGFD->NData(); i++) {
   xp = mGFD->Absc(VarX,i);
Index: /trunk/SophyaPI/PIext/pigfd2.h
===================================================================
--- /trunk/SophyaPI/PIext/pigfd2.h	(revision 204)
+++ /trunk/SophyaPI/PIext/pigfd2.h	(revision 205)
@@ -10,5 +10,5 @@
   virtual           ~PIGenFitDat3D();
   
-  virtual void       Draw(PIGraphicUC* g, float xmin, float ymin, float xmax, float ymax);
+  virtual void       Draw(PIGraphicUC* g, double xmin, double ymin, double xmax, double ymax);
   virtual void       UpdateLimits();
   
Index: /trunk/SophyaPI/PIext/pihisto.cc
===================================================================
--- /trunk/SophyaPI/PIext/pihisto.cc	(revision 204)
+++ /trunk/SophyaPI/PIext/pihisto.cc	(revision 205)
@@ -38,5 +38,5 @@
 
 void
-PIHisto::Draw(PIGraphicUC* g, float /*xmin*/, float /*ymin*/, float /*xmax*/, float /*ymax*/)
+PIHisto::Draw(PIGraphicUC* g, double /*xmin*/, double /*ymin*/, double /*xmax*/, double /*ymax*/)
 {
   bool oktrace = false;
@@ -46,6 +46,6 @@
     // Marqeurs definis OU HBProf => marqueurs+Erreurs si il y en a
     if (mLAtt == PI_NotDefLineAtt) g->SelLine(PI_ThinLine);
-    float x1,y1, x2,y2;
-    float bw = mHisto->BinWidth();
+    double x1,y1, x2,y2;
+    double bw = mHisto->BinWidth();
     for (int i=0; i<mHisto->NBins(); i++) {
       if(mHisto->Error(i)>0.) {
@@ -68,5 +68,5 @@
   }
   if (mLAtt != PI_NotDefLineAtt) {
-    float x1,y1, x2, y2;
+    double x1,y1, x2, y2;
     x1 = mHisto->BinLowEdge(0);
     y1 = 0;
@@ -85,8 +85,8 @@
   if( !oktrace ) {
     for(int i=0; i<mHisto->NBins(); i++) {
-      float left   = mHisto->BinLowEdge(i);
-      float width  = mHisto->BinWidth();
-      float bottom = 0;
-      float height = (*mHisto)(i);
+      double left   = mHisto->BinLowEdge(i);
+      double width  = mHisto->BinWidth();
+      double bottom = 0;
+      double height = (*mHisto)(i);
       g->DrawFBox(left,bottom,width,height);
       g->DrawLine(left, bottom, left, bottom + height); // Au moins une ligne...
@@ -103,6 +103,6 @@
   //  if (mLAtt == PI_NotDefLineAtt)  g->SelLine(PI_ThinLine);
   g->SelLine(PI_ThinLine);
-  float cellHeight = (YMax() - YMin()) * 0.05;
-  float cellWidth  = (XMax() - XMin()) * 0.23;
+  double cellHeight = (YMax() - YMin()) * 0.05;
+  double cellWidth  = (XMax() - XMin()) * 0.23;
   g->DrawLine(XMax() - cellWidth, YMax(),
                        XMax() - cellWidth, YMax() - cellHeight);
Index: /trunk/SophyaPI/PIext/pihisto.h
===================================================================
--- /trunk/SophyaPI/PIext/pihisto.h	(revision 204)
+++ /trunk/SophyaPI/PIext/pihisto.h	(revision 205)
@@ -9,5 +9,5 @@
                      PIHisto(Histo* histo, bool ad=false);
   virtual           ~PIHisto();
-  virtual void       Draw(PIGraphicUC* g, float xmin, float ymin, float xmax, float ymax);
+  virtual void       Draw(PIGraphicUC* g, double xmin, double ymin, double xmax, double ymax);
   virtual void       UpdateLimits();
   virtual void       DrawStats(PIGraphicUC* g);
Index: /trunk/SophyaPI/PIext/pihisto2d.cc
===================================================================
--- /trunk/SophyaPI/PIext/pihisto2d.cc	(revision 204)
+++ /trunk/SophyaPI/PIext/pihisto2d.cc	(revision 205)
@@ -157,5 +157,5 @@
 
 //++
-void PIHisto2D::Draw(PIGraphicUC* g,float,float, float, float)
+void PIHisto2D::Draw(PIGraphicUC* g, double xmin, double ymin, double xmax, double ymax)
 //
 //	Dessin de l'histogramme.
@@ -164,6 +164,6 @@
 if(!mHisto) return;
 // Caracteristiques histogramme
-float dx = mHisto->WBinX(),dy = mHisto->WBinY();
-float p1dx,p1dy;
+double dx = mHisto->WBinX(),dy = mHisto->WBinY();
+double p1dx,p1dy;
 g->DGrC2UC(1.f,1.f,p1dx,p1dy);
 
@@ -197,5 +197,5 @@
 int FontSize = g->GetFontSize();
 if(mTypDisp==2) {
-  float dxg,dyg,dg;
+  double dxg,dyg,dg;
   g->DUC2GrC(dx,dy,dxg,dyg);
   dg =(dxg<dyg) ? dxg : dyg;
@@ -235,9 +235,13 @@
   }
 
+// Pour ne pas dessiner en dehors des axes 
+  if ( (left0+dx/2. < xmin) || (left0+dx/2. > xmax) || 
+         (bottom0+dy/2. < ymin) || (bottom0+dy/2. > ymax) ) continue;
+
   // Dessin proprement dit selon le choix graphique.
   if(mTypDisp==0) {
     //..... carres de tailles variables
-    float left   = left0   + 0.5*(1.-fracred)*dx, width  = fracred*dx;
-    float bottom = bottom0 + 0.5*(1.-fracred)*dy, height = fracred*dy;
+    double left   = left0   + 0.5*(1.-fracred)*dx, width  = fracred*dx;
+    double bottom = bottom0 + 0.5*(1.-fracred)*dy, height = fracred*dy;
     if (cmap) g->DrawFBox(left,bottom,width,height);
     else      g->DrawBox(left,bottom,width,height);
@@ -246,6 +250,6 @@
     int ipt  = int( (float) npt *frac );
     for(int k=0;k<ipt;k++) {
-      float x = left0 + frand01()*dx;
-      float y = bottom0 + frand01()*dy;
+      double x = left0 + frand01()*dx;
+      double y = bottom0 + frand01()*dy;
       g->DrawMarker(x,y);
     }
@@ -254,6 +258,6 @@
     char c[2];
     c[0] = HPrint2(frac); c[1]='\0';
-    float x = left0 + dx/2.;
-    float y = bottom0 + dy/2.;
+    double x = left0 + dx/2.;
+    double y = bottom0 + dy/2.;
     g->DrawString(x,y,c);
   } else if(mTypDisp==3) {
@@ -283,6 +287,6 @@
   // Une boite dans le coin superieur droit
   if (mLAtt == PI_NotDefLineAtt)  g->SelLine(PI_ThinLine);
-  float cellHeight = (YMax() - YMin()) * 0.05;
-  float cellWidth  = (XMax() - XMin()) * 0.23;
+  double cellHeight = (YMax() - YMin()) * 0.05;
+  double cellWidth  = (XMax() - XMin()) * 0.23;
   g->DrawLine(XMax() - cellWidth, YMax(),
                        XMax() - cellWidth, YMax() - cellHeight);
@@ -331,6 +335,6 @@
 //--
 {
-float dx = mHisto->WBinX(),dy = mHisto->WBinY();
-float dxg,dyg;
+double dx = mHisto->WBinX(),dy = mHisto->WBinY();
+double dxg,dyg;
 g->DUC2GrC(dx,dy,dxg,dyg);
 int np = (int) dxg * (int) dyg;
@@ -413,5 +417,5 @@
 
 //++
-string  PIH2DWdg::GetClickText(float x, float y)
+string  PIH2DWdg::GetClickText(double x, double y)
 //
 //	Quand on click (and drag) le bouton-1, affichage
Index: /trunk/SophyaPI/PIext/pihisto2d.h
===================================================================
--- /trunk/SophyaPI/PIext/pihisto2d.h	(revision 204)
+++ /trunk/SophyaPI/PIext/pihisto2d.h	(revision 205)
@@ -21,5 +21,5 @@
           void       UseFrac(float frmin=0.1, float frmax=0.9);
           void       Print(int lp=0);
-  virtual void       Draw(PIGraphicUC* g,float xmin,float ymin,float xmax,float ymax);
+  virtual void       Draw(PIGraphicUC* g,double xmin,double ymin,double xmax,double ymax);
   virtual void       UpdateLimits();
   virtual void       DrawStats(PIGraphicUC* g);
@@ -64,5 +64,5 @@
   inline PIHisto2D*  GetPIHisto() {return mPih;}
 
-  virtual string     GetClickText(float x, float y); 
+  virtual string     GetClickText(double x, double y); 
   virtual void       But3Press(int x, int y);
 
Index: /trunk/SophyaPI/PIext/pimgadapter.h
===================================================================
--- /trunk/SophyaPI/PIext/pimgadapter.h	(revision 204)
+++ /trunk/SophyaPI/PIext/pimgadapter.h	(revision 205)
@@ -12,5 +12,5 @@
 
   virtual 	  ~RzImageAdapter() { if (aDel) delete mImg; }
-  virtual float   Value(int ix, int iy) { return mImg->FValue(ix, iy); }
+  virtual double  Value(int ix, int iy) { return mImg->FValue(ix, iy); }
 
 protected :
@@ -27,5 +27,5 @@
 
   virtual 	  ~ImageAdapter() { if (aDel) delete mImg; }
-  virtual float   Value(int ix, int iy) { return((*mImg)(ix, iy)); }
+  virtual double  Value(int ix, int iy) { return((*mImg)(ix, iy)); }
 
 protected :
Index: /trunk/SophyaPI/PIext/pintup3d.cc
===================================================================
--- /trunk/SophyaPI/PIext/pintup3d.cc	(revision 204)
+++ /trunk/SophyaPI/PIext/pintup3d.cc	(revision 205)
@@ -62,5 +62,5 @@
 // Distance D = Max(xmax-xmin,ymin-ymax)*2
 // Observateur en O = X+D, Yc+2*D 
-  float D = xmax-xmin;
+  double D = xmax-xmin;
   if (D < (ymax-ymin))  D = ymax-ymin;
   D *= 1.4;
@@ -84,7 +84,7 @@
 
 /* --Methode-- */
-void PINTuple3D::Draw(PIGraphicUC* g, float xmin, float ymin, float xmax, float ymax)
+void PINTuple3D::Draw(PIGraphicUC* g, double xmin, double ymin, double xmax, double ymax)
 {
-float xp,yp,zp,xer,yer,zer;
+double xp,yp,zp,xer,yer,zer;
 int nok;
 
Index: /trunk/SophyaPI/PIext/pintup3d.h
===================================================================
--- /trunk/SophyaPI/PIext/pintup3d.h	(revision 204)
+++ /trunk/SophyaPI/PIext/pintup3d.h	(revision 205)
@@ -10,5 +10,5 @@
   virtual           ~PINTuple3D();
   
-  virtual void       Draw(PIGraphicUC* g, float xmin, float ymin, float xmax, float ymax);
+  virtual void       Draw(PIGraphicUC* g, double xmin, double ymin, double xmax, double ymax);
   virtual void       UpdateLimits();
   
Index: /trunk/SophyaPI/PIext/pintuple.cc
===================================================================
--- /trunk/SophyaPI/PIext/pintuple.cc	(revision 204)
+++ /trunk/SophyaPI/PIext/pintuple.cc	(revision 205)
@@ -63,7 +63,7 @@
 
 /* --Methode-- */
-void PINTuple::Draw(PIGraphicUC* g, float xmin, float ymin, float xmax, float ymax)
+void PINTuple::Draw(PIGraphicUC* g, double xmin, double ymin, double xmax, double ymax)
 {
-float xp,yp,xer,yer;
+double xp,yp,xer,yer;
 int nok;
 
Index: /trunk/SophyaPI/PIext/pintuple.h
===================================================================
--- /trunk/SophyaPI/PIext/pintuple.h	(revision 204)
+++ /trunk/SophyaPI/PIext/pintuple.h	(revision 205)
@@ -10,5 +10,5 @@
   virtual           ~PINTuple();
   
-  virtual void       Draw(PIGraphicUC* g, float xmin, float ymin, float xmax, float ymax);
+  virtual void       Draw(PIGraphicUC* g, double xmin, double ymin, double xmax, double ymax);
   virtual void       UpdateLimits();
   
Index: /trunk/SophyaPI/PIext/pipodrw.cc
===================================================================
--- /trunk/SophyaPI/PIext/pipodrw.cc	(revision 204)
+++ /trunk/SophyaPI/PIext/pipodrw.cc	(revision 205)
@@ -31,19 +31,19 @@
 
 void
-PIGFFDrawer::Draw(PIGraphicUC* g, float /*xmin*/, float/*ymin*/, float/*xmax*/, float/*ymax*/)
+PIGFFDrawer::Draw(PIGraphicUC* g, double /*xmin*/, double/*ymin*/, double/*xmax*/, double/*ymax*/)
 {
   PIGrCoord x1, x2, y1, y2;
   g->GetGrSpace(x1, x2, y1, y2);
-  float xMax = x2;
-  float xMin = x1;
-  float yMax = y2;
-  float yMin = y1;
-  float xStep = (xMax - xMin)/100;
-  float xOld = xMin;
-  float yOld = 0;
-//  float yOld = f->Value(&xMin, mParms);
-  for (float x = xMin+xStep; x<xMax; x+=xStep) {
-   float y = 0; // $CHECK$
-//    float y = f->Value(&x, mParms);
+  double xMax = x2;
+  double xMin = x1;
+  double yMax = y2;
+  double yMin = y1;
+  double xStep = (xMax - xMin)/100;
+  double xOld = xMin;
+  double yOld = 0;
+//  double yOld = f->Value(&xMin, mParms);
+  for (double x = xMin+xStep; x<xMax; x+=xStep) {
+   double y = 0; // $CHECK$
+//    double y = f->Value(&x, mParms);
     if (y>yMin && yOld>yMin && 
         y<yMax && yOld<yMax) 
@@ -72,5 +72,5 @@
 
 /* --Methode-- */
-float POVectorAdapter::Value(int i)
+double POVectorAdapter::Value(int i)
 { 
 return((*mVec)(i)); 
@@ -96,5 +96,5 @@
 
 /* --Methode-- */
-float POH2DAdapter::Value(int ix, int iy)
+double POH2DAdapter::Value(int ix, int iy)
 {
 return((*mH2d)(ix, iy));
@@ -120,5 +120,5 @@
 
 /* --Methode-- */
-float POMatrixAdapter::Value(int ix, int iy)
+double POMatrixAdapter::Value(int ix, int iy)
 {
 // Attention MatrixAdapter(X=Colonne, Y= Row) = Matrix(row, col)  
Index: /trunk/SophyaPI/PIext/pipodrw.h
===================================================================
--- /trunk/SophyaPI/PIext/pipodrw.h	(revision 204)
+++ /trunk/SophyaPI/PIext/pipodrw.h	(revision 205)
@@ -20,5 +20,5 @@
   virtual           ~PIGFFDrawer();
   
-  virtual void       Draw(PIGraphicUC* g, float xmin, float ymin, float xmax, float ymax);
+  virtual void       Draw(PIGraphicUC* g, double xmin, double ymin, double xmax, double ymax);
   virtual void       SetParms(double const*);
 protected:
@@ -34,5 +34,5 @@
                   POVectorAdapter(Vector* v, bool ad=false);
   virtual         ~POVectorAdapter();
-  virtual float   Value(int i);
+  virtual double  Value(int i);
 
 protected:
@@ -47,5 +47,5 @@
   virtual         ~POH2DAdapter();
 
-  virtual float   Value(int ix, int iy);   
+  virtual double  Value(int ix, int iy);   
 
 protected:
@@ -61,5 +61,5 @@
   virtual         ~POMatrixAdapter();
 
-  virtual float   Value(int ix, int iy);   
+  virtual double  Value(int ix, int iy);   
 
 protected:
Index: /trunk/SophyaPI/PIext/pistdimgapp.cc
===================================================================
--- /trunk/SophyaPI/PIext/pistdimgapp.cc	(revision 204)
+++ /trunk/SophyaPI/PIext/pistdimgapp.cc	(revision 205)
@@ -199,7 +199,7 @@
 int i;
 
+delete mc;
 for(i=0; i<6; i++)  
   if (m[i]) delete m[i];
-delete mc;
 
 WindMList::iterator it;
Index: /trunk/SophyaPI/PIext/pistlist.cc
===================================================================
--- /trunk/SophyaPI/PIext/pistlist.cc	(revision 204)
+++ /trunk/SophyaPI/PIext/pistlist.cc	(revision 205)
@@ -43,5 +43,5 @@
 
   // Commencer par trouver nos limites
-  float dx, dy;
+  double dx, dy;
   double x1, x2, y1, y2;
   mStL->CalcXYLimits(x1, x2, y1, y2);
@@ -56,8 +56,9 @@
 
 /* --Methode-- */
-void PIStarList::Draw(PIGraphicUC* g, float xmin, float ymin, float xmax, float ymax)
+void PIStarList::Draw(PIGraphicUC* g, double xmin, double ymin, double xmax, double ymax)
 {
 BStar *sti;
-float xp,yp,flx;
+double xp,yp;
+float flx;
 int sz;
 char buff[128];
@@ -85,5 +86,5 @@
   if (mDspFV) {  
     sprintf(buff," F=%g", flx);
-    float dx,dy;
+    double dx,dy;
     g->DGrC2UC(sz, 4, dx, dy);
     g->DrawString(xp+dx, yp-dy, buff);
Index: /trunk/SophyaPI/PIext/pistlist.h
===================================================================
--- /trunk/SophyaPI/PIext/pistlist.h	(revision 204)
+++ /trunk/SophyaPI/PIext/pistlist.h	(revision 205)
@@ -10,5 +10,5 @@
   virtual           ~PIStarList();
   
-  virtual void       Draw(PIGraphicUC* g, float xmin, float ymin, float xmax, float ymax);
+  virtual void       Draw(PIGraphicUC* g, double xmin, double ymin, double xmax, double ymax);
   virtual void       UpdateLimits();
   
