#include "machdefs.h" #include #include #include #include #include "nomimagadapter.h" #include "fitsimage.h" #include "pimgadapter.h" //--------------------------------------------------------------- // Class Adaptateur d'objet (Pour NamedObjMgr) d'objet Image //--------------------------------------------------------------- /* --Methode-- */ template NOMAdapter_Image::NOMAdapter_Image(Image * o) : NObjMgrAdapter(o) { mImg = o; } /* --Methode-- */ template NOMAdapter_Image::~NOMAdapter_Image() { } /* --Methode-- */ template NObjMgrAdapter* NOMAdapter_Image::Clone(AnyDataObj* o) { Image* im = dynamic_cast *>(o); if (im) return ( new NOMAdapter_Image(im) ); return ( new NObjMgrAdapter(o) ); } /* --Methode-- */ template void NOMAdapter_Image::SaveFits(string const & flnm) { #ifdef SANS_EVOLPLANCK FitsImage fim(*mImg, 1); fim.Save(flnm); #else cout << "NOMAdapter_Image::SaveFits() - Error : Not supported for " << s << endl; #endif } /* --Methode-- */ template void NOMAdapter_Image::SavePPF(POutPersist& pos, string const & nom) { #ifdef SANS_EVOLPLANCK // PEIDA-EROS L'histo est lui-meme PPersist string tag = nom; // A cause de const mImg->Write(pos,0,tag); #else string s = typeid(*mObj).name(); cout << "NOMAdapter_Image::SavePPF() - Error : Not supported for " << s << endl; #endif } /* --Methode-- */ template void NOMAdapter_Image::Print(ostream& os) { os << (*mImg); } /* --Methode-- */ template P2DArrayAdapter* NOMAdapter_Image::Get2DArray(string &) { return ( new ImageAdapter(mImg, false) ); } /* --Methode-- */ template NTupleInterface* NOMAdapter_Image::GetNTupleInterface() { return( new NTupInt_Image(mImg) ); } // ------------------------------------------------------------- /* --Methode-- */ template NTupInt_Image::NTupInt_Image(Image* m) { mImg = m; } /* --Methode-- */ template NTupInt_Image::~NTupInt_Image() { } /* --Methode-- */ template uint_4 NTupInt_Image::NbLines() const { return( mImg->XSize() * mImg->YSize() ); } /* --Methode-- */ template uint_4 NTupInt_Image::NbColumns() const { return(3); } /* --Methode-- */ template r_8* NTupInt_Image::GetLineD(int n) const { int i,j; if ((n < 0) || (n >= mImg->XSize() * mImg->YSize() )) for(i=0; i<3; i++) mRet[i] = 0.; else { i = n%mImg->XSize(); j = n/mImg->XSize(); mRet[0] = i; mRet[1] = j; mRet[2] = (*mImg)(i,j); } return(mRet); } /* --Methode-- */ template string NTupInt_Image::VarList_C(const char* nx) const { string nomx; if (nx) nomx = nx; else nomx = "_xh_"; string vardec = "double x,y,pix,i,j,val; \n"; vardec += "x = i = " + nomx + "[0]; y = j = " + nomx + "[1]; pix = val = " + nomx + "[2]; \n"; return(vardec); } #ifdef __CXX_PRAGMA_TEMPLATES__ #pragma define_template NOMAdapter_Image #pragma define_template NOMAdapter_Image #pragma define_template NOMAdapter_Image #pragma define_template NOMAdapter_Image #pragma define_template NTupInt_Image #pragma define_template NTupInt_Image #pragma define_template NTupInt_Image #pragma define_template NTupInt_Image #endif #if defined(__ANSI_TEMPLATES__) || defined(__GNU_TEMPLATES__) template class NOMAdapter_Image; template class NOMAdapter_Image; template class NOMAdapter_Image; template class NOMAdapter_Image; template class NTupInt_Image; template class NTupInt_Image; template class NTupInt_Image; template class NTupInt_Image; #endif