CStokesParameter.h
Go to the documentation of this file.00001
00002 #ifndef CStokesParameter_H
00003 #define CStokesParameter_H
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 #ifndef __cplusplus
00040 #error This is a C++ include file and cannot be used from plain C
00041 #endif
00042
00043 #include <iostream>
00044 #include <string>
00045 #include <vector>
00049 #ifndef WITHOUT_ACS
00050 #include <almaEnumerations_IFC.h>
00051 #else
00052
00053
00054 namespace StokesParameterMod
00055 {
00058
00059 const char *const revision = "-1";
00060 const int version = 1;
00061
00062 enum StokesParameter
00063 {
00064 I
00065 ,
00066 Q
00067 ,
00068 U
00069 ,
00070 V
00071 ,
00072 RR
00073 ,
00074 RL
00075 ,
00076 LR
00077 ,
00078 LL
00079 ,
00080 XX
00081 ,
00082 XY
00083 ,
00084 YX
00085 ,
00086 YY
00087 ,
00088 RX
00089 ,
00090 RY
00091 ,
00092 LX
00093 ,
00094 LY
00095 ,
00096 XR
00097 ,
00098 XL
00099 ,
00100 YR
00101 ,
00102 YL
00103 ,
00104 PP
00105 ,
00106 PQ
00107 ,
00108 QP
00109 ,
00110 QQ
00111 ,
00112 RCIRCULAR
00113 ,
00114 LCIRCULAR
00115 ,
00116 LINEAR
00117 ,
00118 PTOTAL
00119 ,
00120 PLINEAR
00121 ,
00122 PFTOTAL
00123 ,
00124 PFLINEAR
00125 ,
00126 PANGLE
00128 };
00129 typedef StokesParameter &StokesParameter_out;
00130 }
00131 #endif
00132
00133 namespace StokesParameterMod {
00134 std::ostream & operator << ( std::ostream & out, const StokesParameter& value);
00135 std::istream & operator >> ( std::istream & in , StokesParameter& value );
00136 }
00137
00142 class CStokesParameter {
00143 public:
00144
00149 static const std::string& sI;
00151 static const std::string& sQ;
00153 static const std::string& sU;
00155 static const std::string& sV;
00157 static const std::string& sRR;
00159 static const std::string& sRL;
00161 static const std::string& sLR;
00163 static const std::string& sLL;
00165 static const std::string& sXX;
00167 static const std::string& sXY;
00169 static const std::string& sYX;
00171 static const std::string& sYY;
00173 static const std::string& sRX;
00175 static const std::string& sRY;
00177 static const std::string& sLX;
00179 static const std::string& sLY;
00181 static const std::string& sXR;
00183 static const std::string& sXL;
00185 static const std::string& sYR;
00187 static const std::string& sYL;
00189 static const std::string& sPP;
00191 static const std::string& sPQ;
00193 static const std::string& sQP;
00195 static const std::string& sQQ;
00197 static const std::string& sRCIRCULAR;
00199 static const std::string& sLCIRCULAR;
00201 static const std::string& sLINEAR;
00203 static const std::string& sPTOTAL;
00205 static const std::string& sPLINEAR;
00207 static const std::string& sPFTOTAL;
00209 static const std::string& sPFLINEAR;
00211 static const std::string& sPANGLE;
00218 static int version() ;
00219
00220
00226 static std::string revision() ;
00227
00228
00233 static unsigned int size() ;
00234
00235
00241 static std::string name(const StokesParameterMod::StokesParameter& e);
00242
00246 static std::string toString(const StokesParameterMod::StokesParameter& f) { return name(f); }
00247
00253 static const std::vector<std::string> names();
00254
00255
00256
00257 static StokesParameterMod::StokesParameter newStokesParameter(const std::string& name);
00258
00264 static StokesParameterMod::StokesParameter literal(const std::string& name);
00265
00271 static StokesParameterMod::StokesParameter from_int(unsigned int i);
00272
00273
00274 private:
00275
00276 CStokesParameter();
00277 CStokesParameter(const CStokesParameter&);
00278 CStokesParameter& operator=(const CStokesParameter&);
00279
00280 static std::string badString(const std::string& name) ;
00281 static std::string badInt(unsigned int i) ;
00282
00283 };
00284
00285 #endif