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

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

HelpToTex + CopyObj (ds Adapter) et PawExecutor cmv+Reza 12/10/99

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