source: Sophya/trunk/SophyaPI/PIext/nomimagadapter.cc@ 692

Last change on this file since 692 was 506, checked in by ercodmgr, 26 years ago

Modifs pour echelle Log - Reza 25/10/99

File size: 4.0 KB
Line 
1#include "machdefs.h"
2#include <stdlib.h>
3#include <typeinfo>
4#include <iostream.h>
5#include <string>
6
7#include "nomimagadapter.h"
8#ifdef SANS_EVOLPLANCK
9#include "fitsimage.h"
10#endif
11#include "pimgadapter.h"
12
13
14//---------------------------------------------------------------
15// Class Adaptateur d'objet (Pour NamedObjMgr) d'objet Image<T>
16//---------------------------------------------------------------
17
18
19/* --Methode-- */
20template <class T>
21NOMAdapter_Image<T>::NOMAdapter_Image(Image<T> * o)
22 : NObjMgrAdapter(o)
23{
24mImg = o;
25}
26
27/* --Methode-- */
28template <class T>
29NOMAdapter_Image<T>::~NOMAdapter_Image()
30{
31}
32
33/* --Methode-- */
34template <class T>
35NObjMgrAdapter* NOMAdapter_Image<T>::Clone(AnyDataObj* o)
36{
37Image<T>* im = dynamic_cast<Image<T> *>(o);
38if (im) return ( new NOMAdapter_Image<T>(im) );
39return ( new NObjMgrAdapter(o) );
40}
41
42/* --Methode-- */
43template <class T>
44AnyDataObj* NOMAdapter_Image<T>::GetCopyObj()
45{
46#ifdef SANS_EVOLPLANCK
47FitsImage<T> * fima = dynamic_cast<FitsImage<T> *>(mImg);
48if (fima == NULL) return( new Image<T>(*mImg ) );
49else return ( new FitsImage<T>(*fima) );
50#else
51return( new Image<T>(*mImg ) );
52#endif
53}
54
55/* --Methode-- */
56template <class T>
57void NOMAdapter_Image<T>::SaveFits(string const & flnm)
58{
59#ifdef SANS_EVOLPLANCK
60FitsImage<T> fim(*mImg, 1);
61fim.Save(flnm);
62#else
63string s = typeid(*mImg).name();
64cout << "NOMAdapter_Image<T>::SaveFits() - Error : Not supported for " << s << endl;
65#endif
66}
67
68/* --Methode-- */
69template <class T>
70void NOMAdapter_Image<T>::SavePPF(POutPersist& pos, string const & nom)
71{
72#ifdef SANS_EVOLPLANCK
73// PEIDA-EROS L'histo est lui-meme PPersist
74string tag = nom; // A cause de const
75mImg->Write(pos,0,tag);
76#else
77string s = typeid(*mObj).name();
78cout << "NOMAdapter_Image<T>::SavePPF() - Error : Not supported for " << s << endl;
79#endif
80}
81
82/* --Methode-- */
83template <class T>
84void NOMAdapter_Image<T>::Print(ostream& os)
85{
86mImg->Print(os);
87}
88
89
90/* --Methode-- */
91template <class T>
92P2DArrayAdapter* NOMAdapter_Image<T>::Get2DArray(string &)
93{
94return ( new ImageAdapter<T>(mImg, false) );
95}
96
97/* --Methode-- */
98template <class T>
99NTupleInterface* NOMAdapter_Image<T>::GetNTupleInterface(bool& adel)
100{
101adel = true;
102return( new NTupInt_Image<T>(mImg) );
103}
104
105
106
107// -------------------------------------------------------------
108
109/* --Methode-- */
110template <class T>
111NTupInt_Image<T>::NTupInt_Image(Image<T>* m)
112{
113mImg = m;
114}
115
116/* --Methode-- */
117template <class T>
118NTupInt_Image<T>::~NTupInt_Image()
119{
120}
121
122/* --Methode-- */
123template <class T>
124uint_4 NTupInt_Image<T>::NbLines() const
125{
126return( mImg->XSize() * mImg->YSize() );
127}
128
129/* --Methode-- */
130template <class T>
131uint_4 NTupInt_Image<T>::NbColumns() const
132{
133return(3);
134}
135
136/* --Methode-- */
137template <class T>
138r_8* NTupInt_Image<T>::GetLineD(int n) const
139{
140int i,j;
141if ((n < 0) || (n >= mImg->XSize() * mImg->YSize() ))
142 for(i=0; i<3; i++) mRet[i] = 0.;
143else {
144 i = n%mImg->XSize(); j = n/mImg->XSize();
145 mRet[0] = i; mRet[1] = j; mRet[2] = (*mImg)(i,j);
146 }
147return(mRet);
148}
149
150/* --Methode-- */
151template <class T>
152string NTupInt_Image<T>::VarList_C(const char* nx) const
153{
154string nomx;
155if (nx) nomx = nx;
156else nomx = "_xh_";
157string vardec = "double x,y,pix,i,j,val; \n";
158vardec += "x = i = " + nomx + "[0]; y = j = " + nomx + "[1]; pix = val = " + nomx + "[2]; \n";
159return(vardec);
160}
161
162#ifdef __CXX_PRAGMA_TEMPLATES__
163#pragma define_template NOMAdapter_Image<uint_2>
164#pragma define_template NOMAdapter_Image<int_2>
165#pragma define_template NOMAdapter_Image<int_4>
166#pragma define_template NOMAdapter_Image<r_4>
167#pragma define_template NTupInt_Image<uint_2>
168#pragma define_template NTupInt_Image<int_2>
169#pragma define_template NTupInt_Image<int_4>
170#pragma define_template NTupInt_Image<r_4>
171#endif
172#if defined(ANSI_TEMPLATES) || defined(__ANSI_TEMPLATES__) || defined(__GNU_TEMPLATES__)
173template class NOMAdapter_Image<uint_2>;
174template class NOMAdapter_Image<int_2>;
175template class NOMAdapter_Image<int_4>;
176template class NOMAdapter_Image<r_4>;
177template class NTupInt_Image<uint_2>;
178template class NTupInt_Image<int_2>;
179template class NTupInt_Image<int_4>;
180template class NTupInt_Image<r_4>;
181#endif
182
183
Note: See TracBrowser for help on using the repository browser.