source: Sophya/trunk/SophyaPI/PIext/nommatvecadapter.cc@ 1165

Last change on this file since 1165 was 1165, checked in by ercodmgr, 25 years ago

Extension de l'interface NObjMgrAdapter et ajout de DVList pour les variables globales ds NamedObjMgr - Reza 30/8/2000

File size: 4.8 KB
Line 
1#include "machdefs.h"
2#include <stdlib.h>
3#include <typeinfo>
4#include <iostream.h>
5#include <string>
6
7#include "nommatvecadapter.h"
8#include "piscdrawwdg.h"
9#include "pipodrw.h"
10
11//---------------------------------------------------------------
12// Class Adaptateur d'objet (Pour NamedObjMgr) d'objet Vector
13//---------------------------------------------------------------
14
15/* --Methode-- */
16NOMAdapter_Vector::NOMAdapter_Vector(Vector* o)
17 : NObjMgrAdapter(o)
18{
19mVec = o;
20}
21
22/* --Methode-- */
23NOMAdapter_Vector::~NOMAdapter_Vector()
24{
25}
26
27/* --Methode-- */
28NObjMgrAdapter* NOMAdapter_Vector::Clone(AnyDataObj* o)
29{
30Vector* v = dynamic_cast<Vector *>(o);
31if (v) return ( new NOMAdapter_Vector(v) );
32return ( new NObjMgrAdapter(o) );
33}
34
35/* --Methode-- */
36string NOMAdapter_Vector::GetDataObjType()
37{
38 return("Vector ");
39}
40
41/* --Methode-- */
42AnyDataObj* NOMAdapter_Vector::CloneDataObj()
43{
44return ( new Vector(*mVec) );
45}
46
47
48/* --Methode-- */
49void NOMAdapter_Vector::SavePPF(POutPersist& pos, string const & nom)
50{
51#ifdef SANS_EVOLPLANCK
52// PEIDA-EROS L'histo est lui-meme PPersist
53string tag = nom; // A cause de const
54mVec->Write(pos,0,tag);
55#else
56string s = typeid(*mObj).name();
57cout << "NOMAdapter_Vector::SavePPF() - Error : Not supported for " << s << endl;
58#endif
59}
60
61/* --Methode-- */
62void NOMAdapter_Vector::Print(ostream& os)
63{
64os << (*mVec);
65}
66
67/* --Methode-- */
68PIDrawer* NOMAdapter_Vector::GetDrawer(string & dopt)
69{
70dopt = "thinline," + dopt;
71return( new PIYfXDrawer( new POVectorAdapter(mVec, false), NULL, true) );
72}
73
74/* --Methode-- */
75NTupleInterface* NOMAdapter_Vector::GetNTupleInterface(bool& adel)
76{
77adel = true;
78return( new NTupInt_Vector(mVec) );
79}
80
81
82// -------------------------------------------------------------
83
84/* --Methode-- */
85NTupInt_Vector::NTupInt_Vector(Vector* v)
86{
87mVec = v;
88}
89
90/* --Methode-- */
91NTupInt_Vector::~NTupInt_Vector()
92{
93}
94
95/* --Methode-- */
96uint_4 NTupInt_Vector::NbLines() const
97{
98return(mVec->NElts());
99}
100
101/* --Methode-- */
102uint_4 NTupInt_Vector::NbColumns() const
103{
104return(2);
105}
106
107/* --Methode-- */
108r_8* NTupInt_Vector::GetLineD(int n) const
109{
110int i;
111if ((n < 0) || (n >= mVec->NElts() ))
112 for(i=0; i<2; i++) mRet[i] = 0.;
113else {
114 mRet[0] = n; mRet[1] = (*mVec)(n);
115 }
116return(mRet);
117}
118
119/* --Methode-- */
120string NTupInt_Vector::VarList_C(const char* nx) const
121{
122string nomx;
123if (nx) nomx = nx;
124else nomx = "_xh_";
125string vardec = "double i,val; \n";
126vardec += "i = " + nomx + "[0]; val = " + nomx + "[1]; \n";
127return(vardec);
128}
129
130
131//---------------------------------------------------------------
132// Class Adaptateur d'objet (Pour NamedObjMgr) d'objet Matrix
133//---------------------------------------------------------------
134
135
136/* --Methode-- */
137NOMAdapter_Matrix::NOMAdapter_Matrix(Matrix* o)
138 : NObjMgrAdapter(o)
139{
140mMtx = o;
141}
142
143/* --Methode-- */
144NOMAdapter_Matrix::~NOMAdapter_Matrix()
145{
146}
147
148/* --Methode-- */
149NObjMgrAdapter* NOMAdapter_Matrix::Clone(AnyDataObj* o)
150{
151Matrix* m = dynamic_cast<Matrix *>(o);
152if (m) return ( new NOMAdapter_Matrix(m) );
153return ( new NObjMgrAdapter(o) );
154}
155
156/* --Methode-- */
157string NOMAdapter_Matrix::GetDataObjType()
158{
159 return("Matrix ");
160}
161
162/* --Methode-- */
163AnyDataObj* NOMAdapter_Matrix::CloneDataObj()
164{
165return ( new Matrix(*mMtx) );
166}
167
168/* --Methode-- */
169void NOMAdapter_Matrix::SavePPF(POutPersist& pos, string const & nom)
170{
171#ifdef SANS_EVOLPLANCK
172// PEIDA-EROS L'histo est lui-meme PPersist
173string tag = nom; // A cause de const
174mMtx->Write(pos,0,tag);
175#else
176string s = typeid(*mObj).name();
177cout << "NOMAdapter_Matrix::SavePPF() - Error : Not supported for " << s << endl;
178#endif
179}
180
181/* --Methode-- */
182void NOMAdapter_Matrix::Print(ostream& os)
183{
184os << (*mMtx);
185}
186
187
188/* --Methode-- */
189P2DArrayAdapter* NOMAdapter_Matrix::Get2DArray(string &)
190{
191return ( new POMatrixAdapter(mMtx, false) );
192}
193
194/* --Methode-- */
195NTupleInterface* NOMAdapter_Matrix::GetNTupleInterface(bool& adel)
196{
197adel = true;
198return( new NTupInt_Matrix(mMtx) );
199}
200
201
202
203// -------------------------------------------------------------
204
205/* --Methode-- */
206NTupInt_Matrix::NTupInt_Matrix(Matrix* m)
207{
208mMtx = m;
209}
210
211/* --Methode-- */
212NTupInt_Matrix::~NTupInt_Matrix()
213{
214}
215
216/* --Methode-- */
217uint_4 NTupInt_Matrix::NbLines() const
218{
219return( mMtx->NRows()*mMtx->NCol() );
220}
221
222/* --Methode-- */
223uint_4 NTupInt_Matrix::NbColumns() const
224{
225return(3);
226}
227
228/* --Methode-- */
229r_8* NTupInt_Matrix::GetLineD(int n) const
230{
231int i,j;
232if ((n < 0) || (n >= mMtx->NRows()*mMtx->NCol() ))
233 for(i=0; i<3; i++) mRet[i] = 0.;
234else {
235 i = n/mMtx->NCol(); j = n%mMtx->NCol();
236 mRet[0] = i; mRet[1] = j; mRet[2] = (*mMtx)(i,j);
237 }
238return(mRet);
239}
240
241/* --Methode-- */
242string NTupInt_Matrix::VarList_C(const char* nx) const
243{
244string nomx;
245if (nx) nomx = nx;
246else nomx = "_xh_";
247string vardec = "double i,j,val; \n";
248vardec += "i = " + nomx + "[0]; j = " + nomx + "[1]; val = " + nomx + "[2]; \n";
249return(vardec);
250}
Note: See TracBrowser for help on using the repository browser.