source: Sophya/trunk/SophyaPI/PIext/nomstladapter.cc@ 3306

Last change on this file since 3306 was 2975, checked in by ansari, 19 years ago

Ajout flag int lev ds les adaptateurs NObjMgrAdapter::Print(ostream& os, int lev=0) et NamedObjMgr::Print() + modif commande print - Reza 20 Juin 2006

File size: 3.0 KB
Line 
1#include "sopnamsp.h"
2#include "machdefs.h"
3#include <stdlib.h>
4#include <typeinfo>
5#include <iostream>
6#include <string>
7
8#include "nomstladapter.h"
9#include "stlist.h"
10#include "pistlist.h"
11
12
13
14
15//-------------------------------------------------------------------------
16// Class Adaptateur d'objet (Pour NamedObjMgr) d'objet StarList
17//-------------------------------------------------------------------------
18
19/* --Methode-- */
20NOMAdapter_StarList::NOMAdapter_StarList(StarList* o)
21 : NObjMgrAdapter(o)
22{
23mStl = o;
24}
25
26/* --Methode-- */
27NOMAdapter_StarList::~NOMAdapter_StarList()
28{
29}
30
31/* --Methode-- */
32NObjMgrAdapter* NOMAdapter_StarList::Clone(AnyDataObj* o)
33{
34StarList* stl = dynamic_cast<StarList *>(o);
35if (stl) return ( new NOMAdapter_StarList(stl) );
36return ( new NObjMgrAdapter(o) );
37}
38
39
40/* --Methode-- */
41void NOMAdapter_StarList::SavePPF(POutPersist& pos, string const & nom)
42{
43#ifdef SANS_EVOLPLANCK
44// PEIDA-EROS L'objet est lui-meme PPersist
45string tag = nom; // A cause de const
46mStl->Write(pos,0,tag);
47#else
48string s = typeid(*mStl).name();
49cout << "NOMAdapter_StarList::SavePPF() - Error : Not supported for " << s << endl;
50#endif
51}
52
53/* --Methode-- */
54void NOMAdapter_StarList::Print(ostream& os, int)
55{
56os << (*mStl);
57}
58
59/* --Methode-- */
60PIDrawer* NOMAdapter_StarList::GetDrawer(string & dopt)
61{
62return(new PIStarList(mStl, false));
63}
64
65
66/* --Methode-- */
67NTupleInterface* NOMAdapter_StarList::GetNTupleInterface(bool& adel)
68{
69adel = true;
70return( new NTupInt_StarList(mStl) );
71}
72
73
74// -------------------------------------------------------------
75
76/* --Methode-- */
77NTupInt_StarList::NTupInt_StarList(StarList* stl)
78{
79mStl = stl;
80}
81
82/* --Methode-- */
83NTupInt_StarList::~NTupInt_StarList()
84{
85}
86
87/* --Methode-- */
88uint_4 NTupInt_StarList::NbLines() const
89{
90return(mStl->NbStars());
91}
92
93/* --Methode-- */
94uint_4 NTupInt_StarList::NbColumns() const
95{
96return(11);
97}
98
99/* --Methode-- */
100r_8* NTupInt_StarList::GetLineD(int n) const
101{
102BStar* bst = mStl->Star(n);
103if (bst == NULL)
104 for(int k=0; k<11; k++) mRet[k] = -9999.0;
105else {
106 mRet[0] = bst->PosX();
107 mRet[1] = bst->PosY();
108 mRet[2] = bst->Flux();
109 mRet[3] = bst->Fond();
110 mRet[4] = bst->PixMax();
111 mRet[5] = bst->PosXRef();
112 mRet[6] = bst->PosYRef();
113 mRet[7] = bst->FluxRef();
114 mRet[8] = bst->FondRef();
115 mRet[9] = bst->PixMaxRef();
116 mRet[10] = bst->Flags();
117 }
118return(mRet);
119}
120
121/* --Methode-- */
122string NTupInt_StarList::VarList_C(const char* nx) const
123{
124string nomx;
125if (nx) nomx = nx;
126else nomx = "_xstl_";
127string vardec = "double x,y,flux,fond,pixmax; \n";
128vardec += "double xref,yref,fluxref,fondref,pixmaxref; \n";
129vardec += "double flags; \n";
130vardec += "x = " + nomx + "[0]; y = " + nomx + "[1]; \n";
131vardec += "flux = " + nomx + "[2]; fond = " + nomx + "[3]; \n";
132vardec += "pixmax = " + nomx + "[4]; \n";
133vardec += "xref = " + nomx + "[5]; yref = " + nomx + "[6]; \n";
134vardec += "fluxref = " + nomx + "[7]; fondref = " + nomx + "[8]; \n";
135vardec += "pixmaxref = " + nomx + "[9]; \n";
136vardec += "flags = " + nomx + "[10]; \n";
137return(vardec);
138}
Note: See TracBrowser for help on using the repository browser.