Changeset 344 in Sophya for trunk/SophyaPI/PIext/servnobjm.cc


Ignore:
Timestamp:
Aug 2, 1999, 6:52:49 PM (26 years ago)
Author:
ercodmgr
Message:

1/ Extension de fonctionalites de gestion de repertoires (Lock, ...)
2/ Plus de NTupIntf_Adapter quand les objets heritent de NTupleInterface
3/ Support pour affichage info texte, ds PINtuple et PIStarList

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaPI/PIext/servnobjm.cc

    r341 r344  
    200200
    201201if (vpy) {
    202   string titre = (nom.length() < 1) ? "Function f(x)" : nom;
    203   P1DArrayAdapter* vya = new POVectorAdapter(vpy, true);
     202  string titre;
     203  if (nom.length() < 1) {
     204     titre = "Function f(x)";
     205     nom = "/tmp/func";
     206    }
     207  else titre = nom;
     208 
     209  P1DArrayAdapter* vya = new POVectorAdapter(vpy, false);
    204210  vya->DefineXCoordinate(xmin, (xmax-xmin)/np);
    205211  PIYfXDrawer* dr = new   PIYfXDrawer(vya, NULL, true) ;
     
    256262
    257263if (mtx) {
    258   string titre = (nom.length() < 1) ? "Function f(x,y)" : nom; 
     264  string titre;
     265  if (nom.length() < 1) {
     266     titre = "Function f(x,y)";
     267     nom = "/tmp/func2d";
     268    }
     269  else titre = nom;
    259270  bool fgsr = true;
    260271  int opt = DecodeDispOption(dopt, fgsr);
    261   P2DArrayAdapter* arr = new POMatrixAdapter(mtx, true);
     272  P2DArrayAdapter* arr = new POMatrixAdapter(mtx, false);
    262273  arr->DefineXYCoordinates(xmin, ymin, dx, dy);
    263274  PISurfaceDrawer* sdr = new PISurfaceDrawer(arr, true, true, true);
     
    636647/* --Methode-- */
    637648void Services2NObjMgr::FillNTFrCFile(string & nom, string const & fname,
    638                                      string const & funcname, string & nomnt)
     649                                     string const & funcname, string & nomnt,
     650                                     int nl1, int nl2)
    639651{
    640652if (!mImgapp)  return;
     
    646658  return;
    647659  }
    648 NTupleInterface* objnt = obja->GetNTupleInterface();
     660bool adel = true;
     661NTupleInterface* objnt = obja->GetNTupleInterface(adel);
    649662if (objnt == NULL)  {
    650663  cout << "Services2NObjMgr::FillNTFrCFile( " << nom << "...) No NTupleInterface !" <<endl;
     
    655668if (!f) {
    656669  cerr << "Services2NObjMgr::FillNTFrCFile Error Creation  NTLoopExprFunc" <<  endl;
     670  if (adel) delete objnt;   // Delete de l'objet NTupleInterface si necessaire
    657671  return;
    658672  }
     
    691705TRY  {
    692706  double* xn;
    693   int kmax = objnt->NbLines();
    694   for(k=0; k<kmax; k++)    {
     707  if (nl1 < 0) nl1 = 0;
     708  if (nl2 < 0) nl2 = objnt->NbLines();
     709  if (nl2 > objnt->NbLines()) nl2 = objnt->NbLines();
     710  int kmax = nl2;
     711  for(k=nl1; k<kmax; k++)    {
    695712    xn = objnt->GetLineD(k);
    696713    if (f(xn, xnt, xnt+1, xnt+2, xnt+3, k, kmax) != 0) {
     
    709726  cerr << "Services2NObjMgr::FillNTFrCFile()  Exception :" << merr << es;
    710727  } ENDTRY;
    711  
     728
     729if (adel) delete objnt;   // Delete de l'objet NTupleInterface si necessaire
    712730CloseDLL();
    713731
     
    729747  return;
    730748  }
    731 NTupleInterface* objnt = obja->GetNTupleInterface();
     749bool adel = true;
     750NTupleInterface* objnt = obja->GetNTupleInterface(adel);
    732751if (objnt == NULL)  {
    733752  cout << "Services2NObjMgr::PrepareNTExpressionCFile( " << nom
     
    740759if ((fip = fopen(fname.c_str(), "w")) == NULL)   {
    741760  cout << "Services2NObjMgr::PrepareNTExpressionCFile()_Error: fopen " << fname << endl;
     761  if (adel) delete objnt;   // Delete de l'objet NTupleInterface si necessaire
    742762  return;
    743763  }
     764
    744765// constitution du fichier des decalarations des variables de l'interface NTuple
    745766fputs("#include <stdlib.h> \n", fip);
    746767fputs("#include <stdio.h> \n", fip);
    747768fputs("#include <math.h> \n\n", fip);
     769
     770fputs("/* ------ Some random number generators --------- */ \n", fip);
     771fputs("#define frand01() ( (float) drand48() ) \n", fip);
     772fputs("#define drand01() drand48()  \n", fip);
     773fputs("#define rand01()  drand48()  \n", fip);
     774fputs("#define frandpm1() ( 2. * frand01() - 1.) \n", fip);
     775fputs("#define drandpm1() ( 2. * drand01() - 1.) \n", fip);
     776fputs("#define randpm1() ( 2. * drand01() - 1.) \n", fip);
     777fputs("double NorRand(void) \n", fip);
     778fputs(" { \n double x,A,B; \n LAB10: \n A = drand01(); \n", fip);
     779fputs(" if ( A == 0. ) goto LAB10; \n B = drand01(); \n", fip);
     780fputs(" x = sqrt(-2.*log(A))*cos(M_2PI*B); \n", fip);
     781fputs(" return(x); \n } \n", fip);
     782fputs("#define GauRand() NorRand() \n", fip);
     783fputs("#define gaurand() NorRand() \n\n", fip);
     784
    748785fputs("/* NTupleInterface Variable declaration - Generated by piapp  \n", fip);
    749786fputs("      -- Services2NObjMgr::PrepareNTExpressionCFile()  --     */ \n\n", fip);
     
    759796
    760797fclose(fip);
     798
     799if (adel) delete objnt;   // Delete de l'objet NTupleInterface si necessaire
    761800return;
    762801}
     
    13041343{
    13051344if (obja == NULL) return;
    1306 NTupleInterface* objnt = obja->GetNTupleInterface();
     1345bool adel = true;
     1346NTupleInterface* objnt = obja->GetNTupleInterface(adel);
    13071347if (objnt == NULL)  return;
    13081348string  vardec = objnt->VarList_C("_zz6qi_");
     
    13111351if (!f) {
    13121352  cerr << "Services2NObjMgr::::ComputeExpressions() Error Creation PlotExprFunc " <<  endl;
     1353  if (adel) delete objnt;  // Delete de l'objet NTupleInterface si necessaire
    13131354  return;
    13141355  }
     
    13441385 
    13451386
     1387if (adel) delete objnt;  // Delete de l'objet NTupleInterface si necessaire
    13461388// Fermeture du fichier .so
    13471389CloseDLL();
     
    13721414fputs("#include <stdlib.h> \n", fip);
    13731415fputs("#include <math.h> \n", fip);
     1416
     1417fputs("/* ------ Some random number generators --------- */ \n", fip);
     1418fputs("#define frand01() ( (float) drand48() ) \n", fip);
     1419fputs("#define drand01() drand48()  \n", fip);
     1420fputs("#define rand01()  drand48()  \n", fip);
     1421fputs("#define frandpm1() ( 2. * frand01() - 1.) \n", fip);
     1422fputs("#define drandpm1() ( 2. * drand01() - 1.) \n", fip);
     1423fputs("#define randpm1() ( 2. * drand01() - 1.) \n", fip);
     1424fputs("double NorRand(void) \n", fip);
     1425fputs(" { \n double x,A,B; \n LAB10: \n A = drand01(); \n", fip);
     1426fputs(" if ( A == 0. ) goto LAB10; \n B = drand01(); \n", fip);
     1427fputs(" x = sqrt(-2.*log(A))*cos(M_2PI*B); \n", fip);
     1428fputs(" return(x); \n } \n", fip);
     1429fputs("#define GauRand() NorRand() \n", fip);
     1430fputs("#define gaurand() NorRand() \n\n", fip);
     1431
    13741432fputs("int expf_pia_dl_func(double* _zz6qi_, double* _rx_6q_, double* _ry_6q_, double* _rz_6q_, double* _rt_6q_) \n{\n", fip);
    13751433fprintf(fip,"%s \n", vardec.c_str());
Note: See TracChangeset for help on using the changeset viewer.