Changeset 1159 in Sophya for trunk/SophyaLib/NTools/cimage.cc


Ignore:
Timestamp:
Aug 29, 2000, 6:13:31 PM (25 years ago)
Author:
ansari
Message:

Handler PPersist pour Image<T> (classe FIO_Image<T>) - Reza 29/8/2000

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/NTools/cimage.cc

    r1104 r1159  
    4747}
    4848
     49
     50// --------------------------------------------------------
     51//   Les objets delegues pour la gestion de persistance
     52// --------------------------------------------------------
     53/*!
     54  \class SOPHYA::FIO_Image
     55  \ingroup Image
     56  Class for persistent management of Image
     57
     58 */
     59///////////////////////////////////////////////////////////
     60
     61//! Default constructor
     62template <class T>
     63FIO_Image<T>::FIO_Image()
     64  : FIO_TArray<T>()
     65{
     66}
     67
     68
     69//! Constructor from the file \b filename
     70template <class T>
     71FIO_Image<T>::FIO_Image(string const & filename)
     72  : FIO_TArray<T>(filename)
     73{
     74}
     75
     76//! Constructor from the Image \b obj
     77template <class T>
     78FIO_Image<T>::FIO_Image(const Image<T> & obj)
     79  : FIO_TArray<T>()
     80{
     81  dobj = new Image<T>(obj, true);
     82  ownobj=true;
     83}
     84
     85//! Connect with a Image \b obj
     86template <class T>
     87FIO_Image<T>::FIO_Image(Image<T> * obj)
     88  : FIO_TArray<T>(obj)
     89{
     90}
     91
     92
     93//! Connect Image \b o
     94template <class T>
     95void FIO_Image<T>::SetDataObj(AnyDataObj & o)
     96{
     97  Image<T> * po = dynamic_cast< Image<T> * >(&o);
     98  if (po == NULL) return;
     99  if (ownobj && dobj) delete dobj;
     100  dobj = po; ownobj = false;
     101}
     102
     103template <class T>
     104void FIO_Image<T>::ReadSelf(PInPersist& is)
     105{
     106  if (dobj == NULL) dobj = new Image<T>;
     107  Image<T> * img = dynamic_cast<Image<T> * > (dobj);
     108// On lit les 3 premiers uint_4
     109//  0: Numero de version,  1 : reserve
     110  uint_4 itab[3];
     111  is.Get(itab,3);
     112
     113// Image<T> part data
     114  r_8 orgx, orgy;
     115  is.Get(orgx);
     116  is.Get(orgy);
     117  img->SetOrg(orgx, orgy);
     118  r_8 szx, szy;
     119  is.Get(szx);
     120  is.Get(szy);
     121  img->SetPixelSize(szx, szy);
     122
     123// Reading the TArray part
     124  FIO_TArray<T>::ReadSelf(is);
     125}
     126
     127template <class T>
     128void FIO_Image<T>::WriteSelf(POutPersist& os) const
     129{
     130  if (dobj == NULL)   return;
     131  Image<T> * img = dynamic_cast<Image<T> * > (dobj);
     132//  On ecrit 3 uint_4 ....
     133  uint_4 itab[3];
     134  itab[0] = 1;  // Numero de version a 1
     135  itab[1] = 0;
     136  itab[2] = 0;
     137  os.Put(itab,3);
     138
     139// Image<T> part data
     140  os.Put(img->XOrg());
     141  os.Put(img->XOrg());
     142  os.Put(img->XPixSize());
     143  os.Put(img->YPixSize());
     144
     145// Writing the TArray part
     146  FIO_TArray<T>::WriteSelf(os);
     147}
     148
    49149///////////////////////////////////////////////////////////////
    50150#ifdef __CXX_PRAGMA_TEMPLATES__
     
    56156//#pragma define_template Image< complex<r_4> >
    57157//#pragma define_template Image< complex<r_8> >
     158
     159#pragma define_template FIO_Image<uint_2>
     160#pragma define_template FIO_Image<int_4>
     161#pragma define_template FIO_Image<int_8>
     162#pragma define_template FIO_Image<r_4>
     163#pragma define_template FIO_Image<r_8>
    58164#endif
    59165
     
    66172//template class Image< complex<r_4> >;
    67173//template class Image< complex<r_8> >;
     174
     175template class FIO_Image<uint_2>;
     176template class FIO_Image<int_4>;
     177template class FIO_Image<int_8>;
     178template class FIO_Image<r_4>;
     179template class FIO_Image<r_8>;
     180
    68181#endif
Note: See TracChangeset for help on using the changeset viewer.