Changeset 3221 in Sophya for trunk/SophyaPI


Ignore:
Timestamp:
Apr 12, 2007, 10:00:53 PM (18 years ago)
Author:
ansari
Message:

Amelioration methode GetInfoString() pour les adaptateurs TMatrix, TArray et DataTable (acces au DVList Info() en particulier, et recuperation des lignes de DataTable), Reza 12/04/2007

Location:
trunk/SophyaPI/PIext
Files:
4 edited

Legend:

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

    r3197 r3221  
    752752  return string(buff);   
    753753}
    754 else return "BaseDataTable.Att: nlines/nentry/nrows nvar/ncols";
     754else if (opts[0] == "info") { // Acces aux valeurs stockes ds le DVList Info()
     755  if (opts.size() < 2)  return string("");
     756  else if (mDT->Info().HasKey(opts[1]) == false) return string("");
     757  else return mDT->Info().GetS(opts[1]);
     758}
     759else if (opts[0] == "row") { // Pour recuperer une ligne de la table
     760  if (opts.size() < 2)  return string("");
     761  long num = atol(opts[1].c_str());
     762  return mDT->TableRowToString(num, true);
     763}
     764
     765else return "BaseDataTable.Att: nlines/nentry/nrows nvar/ncols info.varname row.num ";
    755766}
    756767
  • trunk/SophyaPI/PIext/nomtarradapter.cc

    r3039 r3221  
    9393      string s;
    9494      return mtv.Convert(s);
     95    }
     96    else if (opts[0] == "info") { // Acces aux valeurs stockes ds le DVList Info()
     97      if (opts.size() < 2)  return string("");
     98      else if (mArr->Info().HasKey(opts[1]) == false) return string("");
     99      else return mArr->Info().GetS(opts[1]);
    95100    }
    96101    else return "TArray.Att: rank sizes size/nelts sum";
  • trunk/SophyaPI/PIext/nomtmatvecadapter.cc

    r3039 r3221  
    1515#include "pitvmaad.h"
    1616
     17#include "cimage.h"  // Pour la prise en charge des Image<T> (Avr 2007)
     18#include "pimgadapter.h"  // Adaptateur de tableaux PIImage pour Image<T>
     19
    1720#include "fioarr.h"
    1821
     
    5558TVector<T>* v = dynamic_cast<TVector<T> *>(mMtx);
    5659if (v != NULL) type = "TVector< ";
    57 
     60else {
     61  Image<T>* img = dynamic_cast<Image<T> *>(mMtx);
     62  if (img != NULL) type = "Image< ";
     63}
    5864// type +=  DecodeTypeIdName(typeid(T).name());
    5965type += DataTypeInfo<T>::getTypeName();
     
    6975TVector<T>* v = dynamic_cast<TVector<T> *>(mMtx);
    7076if (v != NULL) return( new TVector<T>(*v, share) );
    71 else return ( new TMatrix<T>(*mMtx, share) );
     77else {
     78  Image<T>* img = dynamic_cast<Image<T> *>(mMtx);
     79  if (img != NULL) return ( new Image<T>(*img, share) );
     80  else return ( new TMatrix<T>(*mMtx, share) );
     81}
     82
    7283}
    7384
     
    106117      return mtv.Convert(s);
    107118    }
    108     else return "TMatrix.Att: rank size/nelts nrow/nrows ncol/ncols sum";
     119    else if (opts[0] == "info") { // Acces aux valeurs stockes ds le DVList Info()
     120      if (opts.size() < 2)  return string("");
     121      else if (mMtx->Info().HasKey(opts[1]) == false) return string("");
     122      else return mMtx->Info().GetS(opts[1]);
     123    }
     124    else return "TMatrix.Att: rank size/nelts nrow/nrows ncol/ncols sum info.varname";
    109125  }
    110126}
     
    155171  FIO_TArray<T> fio(v);
    156172  fio.Write(pos, nom);
    157   }
     173}
    158174else {
    159   FIO_TArray<T> fio(mMtx);
    160   fio.Write(pos, nom);
    161   }
     175  Image<T>* img = dynamic_cast<Image<T> *>(mMtx);
     176  if (img != NULL) {
     177    FIO_Image<T> fio(img);
     178    fio.Write(pos, nom);
     179  }
     180  else {
     181    FIO_TArray<T> fio(mMtx);
     182    fio.Write(pos, nom);
     183  }
     184}
     185return;
    162186}
    163187
     
    187211P2DArrayAdapter* NOMAdapter_TMatrix<T>::Get2DArray(string &)
    188212{
    189 return ( new POTMatrixAdapter<T>(mMtx, false) );
    190 }
     213Image<T>* img = dynamic_cast<Image<T> *>(mMtx);
     214if (img != NULL) return ( new ImageAdapter<T>(img, false) );
     215else return ( new POTMatrixAdapter<T>(mMtx, false) );
     216}
     217
     218// ---- Specialisation pour complexes -----
     219DECL_TEMP_SPEC  /* equivalent a template <> , pour SGI-CC en particulier */
     220P2DArrayAdapter* NOMAdapter_TMatrix< complex<r_4> >::Get2DArray(string &)
     221{
     222return ( new POTMatrixAdapter< complex<r_4> >(mMtx, false) );
     223}
     224DECL_TEMP_SPEC  /* equivalent a template <> , pour SGI-CC en particulier */
     225P2DArrayAdapter* NOMAdapter_TMatrix< complex<r_8> >::Get2DArray(string &)
     226{
     227return ( new POTMatrixAdapter< complex<r_8> >(mMtx, false) );
     228}
     229// -------------------------------------------------------------
    191230
    192231/* --Methode-- */
  • trunk/SophyaPI/PIext/piinit.cc

    r3218 r3221  
    100100#endif
    101101
     102  /*  Avril 2007 : Prise en charge des images par NOMAdapter_TMatrix  au lieu de
     103      NOMAdapter_Image<T> , deplace ci-dessous */
     104  serv->RegisterClass(new Image<uint_2>, new NOMAdapter_TMatrix<uint_2> );
     105  serv->RegisterClass(new Image<int_2>, new NOMAdapter_TMatrix<int_2> );
     106  serv->RegisterClass(new Image<int_4>, new NOMAdapter_TMatrix<int_4> );
     107  serv->RegisterClass(new Image<int_8>, new NOMAdapter_TMatrix<int_8> );
     108  serv->RegisterClass(new Image<r_4>, new NOMAdapter_TMatrix<r_4> );
     109  serv->RegisterClass(new Image<r_8>, new NOMAdapter_TMatrix<r_8> );
     110  serv->RegisterClass(new Image<complex<r_4> >, new NOMAdapter_TMatrix<complex<r_4> > );
     111  serv->RegisterClass(new Image<complex<r_8> >, new NOMAdapter_TMatrix<complex<r_8> > );
     112
     113#ifdef SANS_EVOLPLANCK
    102114  serv->RegisterClass(new Image<uint_2>, new  NOMAdapter_Image<uint_2> );
     115  serv->RegisterClass(new Image<int_2>, new  NOMAdapter_Image<int_2> );
    103116  serv->RegisterClass(new Image<int_4>, new  NOMAdapter_Image<int_4> );
    104117  serv->RegisterClass(new Image<r_4>, new  NOMAdapter_Image<r_4> );
    105118  serv->RegisterClass(new Image<r_8>, new  NOMAdapter_Image<r_8> );
    106  
    107 #ifdef SANS_EVOLPLANCK
    108   serv->RegisterClass(new Image<int_2>, new  NOMAdapter_Image<int_2> );
    109119
    110120  serv->RegisterClass(new FitsImage<uint_2>, new  NOMAdapter_Image<uint_2> );
Note: See TracChangeset for help on using the changeset viewer.