Changeset 1136 in Sophya for trunk/SophyaExt/FitsIOServer/fitstarray.cc
- Timestamp:
- Aug 24, 2000, 12:18:02 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaExt/FitsIOServer/fitstarray.cc
r1047 r1136 12 12 FITS_TArray<T>::FITS_TArray() 13 13 { 14 dobj_= new TArray<T>;15 ownobj =true;14 dobj_= NULL; 15 ownobj_=false; 16 16 } 17 17 … … 19 19 FITS_TArray<T>::FITS_TArray(char inputfile[],int hdunum) 20 20 { 21 dobj_= new TArray<T>;22 ownobj =true;23 Read F(inputfile,hdunum);21 dobj_=NULL; 22 ownobj_=false; 23 Read(inputfile,hdunum); 24 24 } 25 25 … … 27 27 FITS_TArray<T>::FITS_TArray(const TArray<T> & obj) 28 28 { 29 dobj_ = new TArray<T>(obj);30 ownobj =true;29 dobj_ = new TArray<T>(obj); 30 ownobj_=true; 31 31 } 32 32 … … 35 35 { 36 36 dobj_ = obj; 37 ownobj =false;37 ownobj_=false; 38 38 } 39 39 … … 42 42 FITS_TArray<T>::~FITS_TArray() 43 43 { 44 if (ownobj && dobj_) delete dobj_;44 if (ownobj_ && dobj_) delete dobj_; 45 45 } 46 47 template <class T>48 void FITS_TArray<T>::Write(char outputfile[], bool OldFile)49 {50 WriteF(outputfile, OldFile);51 }52 53 46 54 47 … … 59 52 } 60 53 54 61 55 template <class T> 62 void FITS_TArray<T>::ReadFromFits() 56 void FITS_TArray<T>::SetDataObj(AnyDataObj & o) 57 { 58 TArray<T>* po = dynamic_cast< TArray<T>* >(& o); 59 if (po == NULL) return; 60 if (ownobj_ && dobj_) delete dobj_; 61 dobj_ = po; 62 ownobj_ = false; 63 } 64 65 66 67 template <class T> 68 void FITS_TArray<T>::ReadFromFits(FitsInFile& is) 63 69 { 64 65 // if (!fn.IsFitsImage()) 66 if (!IsFitsImage()) 70 if (!is.IsFitsImage()) 67 71 { 68 72 throw PException("ReadFromFits: the fits file seems not to be an image"); 69 73 } 70 // int dimension = fn.nbDimOfImage(); 71 int dimension = nbDimOfImage(); 74 int dimension = is.nbDimOfImage(); 72 75 cout << " dimension de l'image a lire: " << dimension << endl; 73 76 74 77 uint_4* siz = new uint_4[dimension]; 75 // for (int k=0; k< dimension; k++) siz[k] = fn.dimOfImageAxes()[k]; 76 for (int k=0; k< dimension; k++) siz[k] = dimOfImageAxes()[k]; 78 for (int k=0; k< dimension; k++) siz[k] = is.dimOfImageAxes()[k]; 77 79 if(dobj_ == NULL) 78 dobj_ = new TArray<T>(dimension,siz); 80 { 81 dobj_ = new TArray<T>(dimension,siz); 82 ownobj_ = true; 83 } 79 84 else 80 85 dobj_->ReSize(dimension,siz); 81 86 82 87 delete [] siz; 83 // if (dobj_->Size() != fn.nbOfImageData() ) 84 if (dobj_->Size() != nbOfImageData() ) 88 if (dobj_->Size() != is.nbOfImageData() ) 85 89 { 86 90 cout << " total size of TArray: " << dobj_->Size() << endl; 87 cout << " total size from fits file: " << nbOfImageData() << endl;91 cout << " total size from fits file: " << is.nbOfImageData() << endl; 88 92 throw PException("ReadFromFits: size conflict"); 89 93 } 90 94 // On lit le tableau 91 // fn.GetSingleColumn( dobj_->Data(),dobj_->Size()); 92 GetSingleColumn( dobj_->Data(),dobj_->Size()); 95 is.GetSingleColumn( dobj_->Data(),dobj_->Size()); 93 96 94 97 } 95 98 96 99 97 98 void FITS_TArray<T>::WriteToFits( )100 template <class T> 101 void FITS_TArray<T>::WriteToFits(FitsOutFile& os) 99 102 { 100 103 if(dobj_ == NULL) return; … … 130 133 } 131 134 cout << " nombre total d'elements a copier " << nbels << endl; 132 // fn.makeHeaderImageOnFits(type, nbdim, naxisn); 133 makeHeaderImageOnFits(type, nbdim, naxisn); 135 os.makeHeaderImageOnFits(type, nbdim, naxisn); 134 136 if (!dobj_->IsPacked()) 135 137 { … … 144 146 145 147 } 146 // fn.putImageToFits(nbels, dobj_->Data()); 147 putImageToFits(nbels, dobj_->Data()); 148 os.putImageToFits(nbels, dobj_->Data()); 148 149 149 150 delete [] naxisn;
Note:
See TracChangeset
for help on using the changeset viewer.