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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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-- */
Note: See TracChangeset for help on using the changeset viewer.