source: PSPA/Interface_Web/trunk/pspaWT/sources/controler/src/nomdElements.cc @ 373

Last change on this file since 373 was 373, checked in by touze, 11 years ago

recupere travail sur elt snapshot

File size: 3.4 KB
Line 
1
2#include <iostream>
3#include <cstring>
4#include "nomdElements.h"
5
6typedElement nomdElements::fromString(std::string s)
7{
8  if( strstr(s.c_str(),"beam") ) return beam;
9  else if( strstr(s.c_str(),"rfgun") ) return RFgun;
10  else if( strstr(s.c_str(),"drift") ) return drift;
11  else if( strstr(s.c_str(),"cell") )  return cell;
12  else if( strstr(s.c_str(),"bend") ) return bend;
13  else if( strstr(s.c_str(),"soleno") ) return soleno;
14  else if( strstr(s.c_str(),"fit") ) return fit;
15  else if( strstr(s.c_str(),"snapshot") ) return snapshot;
16  return inconnu;
17}
18
19typedElement nomdElements::fromLabel(std::string s)
20{
21  if( s == "beam" ) return beam;
22  else if( s == "rfgun" ) return RFgun;
23  else if( s == "drift" ) return drift;
24  else if( s == "cell" )  return cell;
25  else if( s == "bend" ) return bend;
26  else if( s == "solnd" ) return soleno; 
27  else if( s == "fit" ) return fit;
28  else if( s == "snapshot" ) return snapshot;
29  return inconnu;
30}
31
32std::string nomdElements::toName(typedElement eType)
33{
34  switch(eType) {
35  case beam : return "BEAM"; break;
36  case RFgun : return "RF GUN"; break;
37  case drift : return "DRIFT"; break;
38  case cell : return "CELL"; break;
39  case bend : return "BENDING MAGNET"; break;
40  case soleno : return "SOLENOID"; break;
41  case fit : return "FIT"; break;
42  case snapshot : return "SNAPSHOT"; break;
43  default : return "UNKNOWN";
44  }
45}
46
47std::string nomdElements::toLabel(typedElement eType)
48{
49  switch(eType) {
50  case beam : return "beam";
51  case RFgun : return "rfgun";
52  case drift :  return "drift";
53  case cell :  return "cell";
54  case bend :  return "bend";
55  case soleno :   return "solnd";
56  case fit :   return "fit";
57  case snapshot : return "snapshot";
58  default : return string("");
59  }
60}
61
62unsigned nomdElements::toNbParam(typedElement eType)
63{
64  switch(eType) {
65  case beam : return 8;
66  case RFgun : return 9;
67  case drift :  return 3;
68  case cell :  return 10;
69  case bend :  return 7;
70  case soleno :   return 5;
71  case fit :   return 4;
72  case snapshot : return 2;
73  default : return 0;
74  }
75}
76
77
78nomdElements::nomdElements() 
79{
80  e_= fromString("");
81  eName_ = toName(e_);
82  eLabel_ = toLabel(e_);
83  nbParam_ = toNbParam(e_);
84}
85
86nomdElements::nomdElements(nomdElements& ne)
87{
88  e_= ne.e_;
89  eName_ = ne.eName_;
90  eLabel_ = ne.eLabel_;
91  nbParam_ = ne.nbParam_;
92}
93
94nomdElements::nomdElements(const nomdElements& ne)
95{
96  e_= ne.e_;
97  eName_ = ne.eName_;
98  eLabel_ = ne.eLabel_;
99  nbParam_ = ne.nbParam_;
100}
101 
102
103nomdElements::nomdElements(const std::string& s) 
104{
105  e_= fromString(s);
106  eName_ = toName(e_);
107  eLabel_ = toLabel(e_);
108  nbParam_ = toNbParam(e_);
109}
110
111nomdElements::nomdElements(typedElement& eType) 
112{
113  e_= eType;
114  eName_ = toName(e_);
115  eLabel_ = toLabel(e_);
116  nbParam_ = toNbParam(e_);
117}
118
119int nomdElements::getNumberOfElements() {
120  return inconnu;
121}
122
123std::string nomdElements::getLabelFromType(typedElement tp)
124{
125  return toLabel(tp);
126}
127
128typedElement nomdElements::getTypeFromLabel(std::string lb)
129{
130  return fromLabel(lb);
131}
132
133
134typedElement nomdElements::getElementType() const {
135  return e_;
136}
137
138std::string nomdElements::getElementName() const {
139  return eName_;
140}
141
142std::string nomdElements::getElementLabel() const {
143  return eLabel_;
144}
145
146unsigned nomdElements::getElementNbParameters() const
147{
148  return nbParam_;
149}
150
151
152
153// operators
154 
155nomdElements& nomdElements::operator= (const nomdElements& ne)
156{
157  e_= ne.e_;
158  eName_ = ne.eName_;
159  eLabel_ = ne.eLabel_;
160  nbParam_ = ne.nbParam_;
161  return *this;
162}
Note: See TracBrowser for help on using the repository browser.