Changeset 1919 in Sophya


Ignore:
Timestamp:
Mar 6, 2002, 5:46:47 PM (24 years ago)
Author:
perderos
Message:

correction de bugs dans setting des niveaux + changement du defaut du trace
OP 06-03-2002

Location:
trunk/SophyaPI/PIGcont
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaPI/PIGcont/picntools.cc

    r1905 r1919  
    531531t_contour_levels_kind lvkind = dr->GetCntLevelKind()  ;
    532532for (ii=0 ; ii<4 ; ii++)
    533   if(crbe_algo[ii]==kind)
     533  if(lev_kind[ii]==lvkind)
    534534    {mOpt[9]->SetValue(910+ii); break;}
    535535
     
    538538sprintf(txt,"%d",nlv);
    539539mTxt[0]->SetText(txt); 
    540 // cout << " nlv "<<nlv<< endl;
     540
    541541if(dr->Levels()!=NULL){
    542542  string strg=" ";
    543543  for(int kk=0 ; kk<nlv ; kk++) {
    544     cout << " dr->Level("<<kk<<") "<<endl;
     544    //cout << " dr->Level("<<kk<<") "<<endl;
    545545    cout <<dr->Level(kk)<<endl;
    546     sprintf(txt,"%g",dr->Level(kk));
     546    if (kk!=nlv-1)
     547       sprintf(txt,"%g ,",dr->Level(kk));
     548    else
     549      sprintf(txt,"%g",dr->Level(kk));
     550
    547551    strg += txt;
    548552  }
     
    569573int k,ii,jj,kk;
    570574
    571 k = mOpt[8]->GetValue()-900; // type de ligne
     575k = mOpt[8]->GetValue()-900; // type de contour
    572576dr->SetCntKind(crbe_algo[k]);
    573577
     
    576580
    577581string str=mTxt[0]->GetText();
     582
    578583ii=atoi(str.c_str());
    579 dr->SetNLevel(ii);
     584if(ii>0)
     585  dr->SetNLevel(ii);
     586else
     587  cerr<< " PICnTools::SetCalcParm ERREUR noombre de contours <=0 "<<ii<<endl;
    580588char *buff;
    581589char *tmp;
    582590str=mTxt[1]->GetText();
     591
    583592buff=strdup(str.c_str());
    584593double * zlev=NULL;
     
    587596  zlev = new double[2];
    588597  tmp = strtok(buff,",");
     598  if(tmp ==NULL) {
     599    cerr<< " PICnTools::SetCalcParm ERREUR decodage des niveaux impossible avec " << buff <<endl;
     600    return;
     601  }
    589602  zlev[0] = atof(tmp);
     603 
    590604  tmp = strtok(NULL,",");
     605  if(tmp ==NULL) {
     606    cerr<< " PICnTools::SetCalcParm ERREUR decodage des niveaux impossible avec " << buff <<endl;
     607    return;
     608  }
    591609  zlev[1]= atof(tmp);
    592610  dr->SetMyLevels(zlev,2);
     
    596614  zlev = new double[ii];
    597615  tmp = strtok(buff,",");
     616  if(tmp ==NULL) {
     617    cerr<< " PICnTools::SetCalcParm ERREUR decodage des niveaux impossible dans  " << buff <<endl;
     618    return;
     619  }
     620  int cntr = 0;
    598621  for(jj=0 ; jj<ii ; jj++){
    599622      zlev[jj]= atof(tmp);
    600       cout << " jj "<<zlev[jj]<<endl;
    601       tmp = strtok(NULL,",");
     623      cntr++;
     624      //cout << " jj "<<zlev[jj]<<endl;
     625      tmp = strtok(NULL,"," );
     626      if(tmp == NULL) {
     627       
     628        break;
     629      }
     630      cout << " tmp = <"<<tmp<<"<"<<endl;
     631
     632  }
     633  if(cntr<ii) {
     634    cerr<< " PICnTools::SetCalcParm ERREUR decodage des niveaux "<<cntr
     635        <<" trouves sur "<<ii<<" dans " << buff <<endl;
     636    return;
     637
    602638  }
    603639  dr->SetMyLevels(zlev,ii);
     
    605641
    606642
    607 }
     643}  
    608644
    609645//
  • trunk/SophyaPI/PIGcont/pigncont.cc

    r1905 r1919  
     1// This may look like C code, but it is really -*- C++ -*-
     2// Classe d'interface avec le code de GNUplot
     3// pour calculer les contours & classe de trace de contours
     4// O. Perdereau
     5// LAL (Orsay) / IN2P3-CNRS  DAPNIA/SPP (Saclay) / CEA
     6
    17#include "machdefs.h"
    28#include <stdio.h>
     
    1622#include <sys/resource.h>
    1723
    18 /*  A virer ?? Reza 21/12/2001
    19 static TBOOLEAN multiplot;
    20 static double zero =0;
    21 static TBOOLEAN fg_polar;
    22 static int xleft, xright, ybot, ytop;
    23 static float xsize;
    24 static float ysize;
    25 static float xoffset, yoffset;
    26 */
     24//++
     25// Class        GNUPlotContour
     26// Lib          PIGcont
     27// include      pigncont.h
     28//
     29//      Classe d'interface avec le code de GNUplot qui calcule les courbes de niveaux
     30//      GNUplot part d'une grille (structure iso_curve) qui est remplie par les
     31//      createurs
     32//      Les parametres du calcul sont modifiable a partir de la fenetre d'options
     33//      du traceur de contour (classe PIContourDrawer)
     34//      Options (reconnues dans un enum t_contour_kind dans GNUplot)
     35//       1) nombre de courbes et et niveaux determines automatiquement par le programme (defaut)
     36//          En general, 5 courbes sont tracees LEVELS_AUTO
     37//
     38//       2) nombre de niveaux fixe par l'utilisateur. Les niveaux sont equidistants entre
     39//          le min et le max de la surface LEVELS_NUM
     40//
     41//       3) nombre et hauteurs des niveaux fixes par l'utilisateur. Les niveaux sont passes
     42//          dans un tableau LEVELS_DISCRETE
     43//
     44//       4) nombre niveau min et ecart entre niveaux fixe par l'utilisateur LEVELS_INCREMENTAL
     45//         
     46//     Les contours sont traces en interpolant entre les points de la grille.
     47//     On peut choisir 3 algorithmes d'interpolation a travers p.ex. les options
     48//     de PIContourDrawer
     49//     (enum t_contour_levels_kind ds GNUplot)
     50//       a) interpolation simple CONTOUR_KIND_LINEAR
     51//       b) spline cubique       CONTOUR_KIND_CUBIC_SPL
     52//       c) B-spline             CONTOUR_KIND_BSPLINE
     53//
     54//--
     55//++
     56// Links        Voir aussi
     57// PIContourDrawer
     58// PIcntools
     59//--
     60//++
     61// Titre        Constructeurs et Méthodes
     62//--
     63//++
     64// GNUPlotContour(struct iso_curve * iso) :
     65//         constructeur a partir d'une structure iso_curve
     66//         (structure de GNUplot)             
     67//--
     68
    2769
    2870GNUPlotContour::GNUPlotContour(struct iso_curve * iso){
     
    67109
    68110
     111//++
     112// GNUPlotContour(NTupleInterface *nt,int *nz=NULL,double *z=NULL,double *dz=NULL):
     113//         constructeur a partir d'un NTupleInterface
     114//         la structure iso_curve est remplie par le constructeur
     115//Inputs
     116//| NTupleInterface *nt
     117//| double *nz nombre de contours (optionnel)
     118//| double *z tabelau avec les niveaux des contours (optionnel)
     119//| double *dz increment entre contours (optionnel)               
     120//--
    69121GNUPlotContour::GNUPlotContour(NTupleInterface *nt,int *nz=NULL,double *z=NULL,double *dz=NULL){
    70122  _xmin = 1.e37;
     
    262314}
    263315
    264 GNUPlotContour::GNUPlotContour(P2DArrayAdapter*arr,int *nz=NULL,double *z=NULL,double *dz=NULL){
     316//++
     317// GNUPlotContour(P2DArrayAdapter*arr,int *nz=NULL,double *z=NULL,double *dz=NULL):
     318//         constructeur a partir d'un P2DArrayAdapter
     319//         la structure iso_curve est remplie par le constructeur
     320//Inputs
     321//| P2DArrayAdapter* arr
     322//| double *nz nombre de contours (optionnel)
     323//| double *z tabelau avec les niveaux des contours (optionnel)
     324//| double *dz increment entre contours (optionnel)               
     325//--
     326
     327GNUPlotContour::GNUPlotContour(P2DArrayAdapter* arr,int *nz=NULL,double *z=NULL,double *dz=NULL){
    265328  _xmin = 1.e37;
    266329  _ymin = 1.e37;
     
    353416}
    354417
     418
     419//++
     420// ~GNUPlotContour()
     421//         
     422//       Destructeur       
     423//
     424//--
    355425GNUPlotContour::~GNUPlotContour(){
    356426 cout << " destructeur de GNUPlotContour "<<endl;
     
    394464}
    395465
     466
     467//++
     468// void CalcContour()
     469//      Methode de calcul des courbes de niveaux
     470//      par appel a la routine de GNUplot
     471//
     472//--
    396473void GNUPlotContour::CalcContour(){
    397474  //cout << " GNUPlotContour::CalcContour(): determination des contours "<<endl;
     
    425502
    426503 
    427  rcus = getrusage( RUSAGE_SELF , &r_usage);
     504 //rcus = getrusage( RUSAGE_SELF , &r_usage);
    428505
    429506 //if(rcus==0)
     
    474551 
    475552}
    476 //_+_ Methode
     553//++
     554// void SetMyLevels(double *ptr,int k)
     555//      Setting du tableau des niveaux des contours
     556//Inputs     
     557//| int k : nombre de niveaux
     558//| double *ptr : adresse du tableau des niveaux
     559//--
    477560void
    478561GNUPlotContour::SetMyLevels(double *ptr,int k){
     
    483566}
    484567
    485 // Class PIContourDrawer
    486 /* --Methode-- */
     568//++
     569// Class        PIContourDrawer
     570// Lib          PIGcont
     571// include      pigncont.h
     572//
     573//  Classe de traceur de contour qui herite de PIDrawer et de GNUPlotContour
     574//  elle gere les options graphiques generales (couleurs, lignes, fontes,...)
     575//  les contours peuvent etre traces avec des lignes ou des markers
     576//  on peut afficher les valeurs des niveaux des contours
     577//  on peut demander a utiliser une table de couleur
     578//  tout ca a travers la fenetre de controle associee (PICntools)
     579//
     580//
     581//--
     582//++
     583// Links        Parents
     584// PIDrawer
     585// GNUPlotContour
     586//--
     587//++
     588// Links        Voir aussi
     589// PIcntools
     590//--
     591//++
     592// Titre        Constructeurs et Méthodes
     593//--
     594//++
     595// PIContourDrawer(P2DArrayAdapter* arr,bool autodel,int *nz,double *z0,double *dz )
     596// Constructeur a partir d'un P2DArrayAdapter* - voir le createur de GNUPlotContour
     597//
     598//--
     599
    487600PIContourDrawer::PIContourDrawer(P2DArrayAdapter* arr,bool autodel,int *nz,double *z0,double *dz )
    488601  :GNUPlotContour(arr,nz,z0,dz)
     
    500613}
    501614
     615//++
     616// PIContourDrawer(NTupleInterface* nti,bool autodel,int *nz,double *z0,double *dz )
     617// Constructeur a partir d'un NTupleInterface*  - voir le createur de GNUPlotContour
     618//
     619//--
    502620PIContourDrawer::PIContourDrawer(NTupleInterface* nti,bool autodel,int *nz,double *z0,double *dz )
    503621  :GNUPlotContour(nti,nz,z0,dz)
     
    671789
    672790void PIContourDrawer::InitAtts(){
    673   mLineOn = false;
    674   mMarkOn = true;
     791  mLineOn = true;
     792  mMarkOn = false;
    675793  mLabelOn = false;
    676794}
    677 
    678 
    679 
     795 
     796
     797
  • trunk/SophyaPI/PIGcont/pigncont.h

    r1857 r1919  
    11// This may look like C code, but it is really -*- C++ -*-
    22// Classe  GNUPlotContour   : interface avec le code de gnuplot pour tracer les contours
    3 // Classe  PIContourDrawer  : trace des contours ds PI
     3// Classe  PIContourDrawer  : trace des contours dans PI
    44// (c) DAPNIA (CEA)                 LAL (IN2P3/CNRS)
    55//                           R. Ansari O.Perdereau  11/2001
Note: See TracChangeset for help on using the changeset viewer.