Changeset 1159 in Sophya for trunk/SophyaLib/NTools
- Timestamp:
- Aug 29, 2000, 6:13:31 PM (25 years ago)
- Location:
- trunk/SophyaLib/NTools
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/NTools/cimage.cc
r1104 r1159 47 47 } 48 48 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 62 template <class T> 63 FIO_Image<T>::FIO_Image() 64 : FIO_TArray<T>() 65 { 66 } 67 68 69 //! Constructor from the file \b filename 70 template <class T> 71 FIO_Image<T>::FIO_Image(string const & filename) 72 : FIO_TArray<T>(filename) 73 { 74 } 75 76 //! Constructor from the Image \b obj 77 template <class T> 78 FIO_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 86 template <class T> 87 FIO_Image<T>::FIO_Image(Image<T> * obj) 88 : FIO_TArray<T>(obj) 89 { 90 } 91 92 93 //! Connect Image \b o 94 template <class T> 95 void 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 103 template <class T> 104 void 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 127 template <class T> 128 void 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 49 149 /////////////////////////////////////////////////////////////// 50 150 #ifdef __CXX_PRAGMA_TEMPLATES__ … … 56 156 //#pragma define_template Image< complex<r_4> > 57 157 //#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> 58 164 #endif 59 165 … … 66 172 //template class Image< complex<r_4> >; 67 173 //template class Image< complex<r_8> >; 174 175 template class FIO_Image<uint_2>; 176 template class FIO_Image<int_4>; 177 template class FIO_Image<int_8>; 178 template class FIO_Image<r_4>; 179 template class FIO_Image<r_8>; 180 68 181 #endif -
trunk/SophyaLib/NTools/cimage.h
r1104 r1159 8 8 9 9 #include "tmatrix.h" 10 #include "fioarr.h" 10 11 11 12 … … 61 62 } 62 63 64 ///////////////////////////////////////////////////////////////////////// 65 //! Class for persistent management of Image 66 template <class T> 67 class FIO_Image : public FIO_TArray<T> { 68 public: 69 FIO_Image(); 70 FIO_Image(string const & filename); 71 FIO_Image(const Image<T> & obj); 72 FIO_Image(Image<T> * obj); 73 // virtual ~FIO_Image(); 74 virtual void SetDataObj(AnyDataObj & o); 75 inline operator Image<T>() { return(*(dynamic_cast<Image<T> * >dobj)); } 76 protected : 77 virtual void ReadSelf(PInPersist&); 78 virtual void WriteSelf(POutPersist&) const; 79 }; 80 81 /*! \ingroup Image \fn operator<<(POutPersist&,Image<T>&) 82 \brief Write Image \b obj into POutPersist stream \b os */ 83 template <class T> 84 inline POutPersist& operator << (POutPersist& os, Image<T> & obj) 85 { FIO_Image<T> fio(&obj); fio.Write(os); return(os); } 86 87 /*! \ingroup Image \fn operator>>(PInPersist&,Image<T>&) 88 \brief Read Image \b obj from PInPersist stream \b os */ 89 template <class T> 90 inline PInPersist& operator >> (PInPersist& is, Image<T> & obj) 91 { FIO_Image<T> fio(&obj); fio.Read(is); return(is); } 92 93 63 94 64 95 typedef Image<uint_2> ImageU2; -
trunk/SophyaLib/NTools/ntoolsinit.cc
r1104 r1159 30 30 if (FgInit > 1) return; 31 31 32 // Enregistrement des classes PPersist du modules Outils++ 33 34 // PPRegister(OMatrix); 35 // PPRegister(OVector); 32 // Enregistrement des classes PPersist du modules NTools 36 33 34 // Objets Poly et Poly2 (pas encore a la norme Sophya::PPersist) 37 35 PPRegister(ObjFileIO<Poly>); 38 36 PPRegister(ObjFileIO<Poly2>); 39 37 38 // Classe GeneralFitData et son PPersist handler 40 39 PPRegister(ObjFileIO<GeneralFitData>); 41 40 DObjRegister(ObjFileIO<GeneralFitData>, GeneralFitData); 42 41 43 DObjRegister(FIO_TArray<uint_2>, Image<uint_2>); 44 DObjRegister(FIO_TArray<int_4>, Image<int_4>); 45 DObjRegister(FIO_TArray<r_4>, Image<r_4>); 42 // Classes Image<T> et leurs PPersist handler 43 PPRegister(FIO_Image<uint_2>); 44 DObjRegister(FIO_Image<uint_2>, Image<uint_2>); 45 PPRegister(FIO_Image<int_4>); 46 DObjRegister(FIO_Image<int_4>, Image<int_4>); 47 PPRegister(FIO_Image<int_8>); 48 DObjRegister(FIO_Image<int_8>, Image<int_8>); 49 PPRegister(FIO_Image<r_4>); 50 DObjRegister(FIO_Image<r_4>, Image<r_4>); 51 PPRegister(FIO_Image<r_8>); 52 DObjRegister(FIO_Image<r_8>, Image<r_8>); 46 53 47 54
Note:
See TracChangeset
for help on using the changeset viewer.