00001 #pragma ident "$Id: XYZ2NEU.hpp 1315 2008-07-25 18:35:21Z architest $"
00002
00009 #ifndef XYZ2NEU_HPP
00010 #define XYZ2NEU_HPP
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 #include "geometry.hpp"
00037 #include "Matrix.hpp"
00038 #include "Position.hpp"
00039 #include "TypeID.hpp"
00040 #include "ProcessingClass.hpp"
00041
00042
00043 namespace gpstk
00044 {
00045
00048
00122 class XYZ2NEU : public ProcessingClass
00123 {
00124 public:
00125
00127 XYZ2NEU()
00128 : refLat(0.0), refLon(0.0)
00129 { init(); setIndex(); };
00130
00131
00137 XYZ2NEU( const double& lat,
00138 const double& lon )
00139 { setLatLon(lat, lon); setIndex(); }
00140
00141
00146 XYZ2NEU(const Position& refPos);
00147
00148
00156 virtual XYZ2NEU& setLat(const double& lat);
00157
00158
00160 virtual double getLat(void) const
00161 { return (refLat*RAD_TO_DEG); };
00162
00163
00168 virtual XYZ2NEU& setLon(const double& lon);
00169
00170
00172 virtual double getLon(void) const
00173 { return (refLon*RAD_TO_DEG); };
00174
00175
00185 virtual XYZ2NEU& setLatLon( const double& lat,
00186 const double& lon );
00187
00188
00195 virtual satTypeValueMap& Process(satTypeValueMap& gData)
00196 throw(ProcessingException);
00197
00198
00205 virtual gnssSatTypeValue& Process(gnssSatTypeValue& gData)
00206 throw(ProcessingException)
00207 { Process(gData.body); return gData; };
00208
00209
00216 virtual gnssRinex& Process(gnssRinex& gData)
00217 throw(ProcessingException)
00218 { Process(gData.body); return gData; };
00219
00220
00222 virtual int getIndex(void) const;
00223
00224
00226 virtual std::string getClassName(void) const;
00227
00228
00230 virtual ~XYZ2NEU() {};
00231
00232
00233 private:
00234
00235
00238 double refLat;
00239
00240
00243 double refLon;
00244
00245
00247 Matrix<double> rotationMatrix;
00248
00249
00252 TypeIDSet inputSet;
00253
00254
00257 TypeIDSet outputSet;
00258
00259
00262 virtual void init();
00263
00264
00266 static int classIndex;
00267
00268
00270 int index;
00271
00272
00274 void setIndex(void)
00275 { index = classIndex++; };
00276
00277
00278 };
00279
00281
00282 }
00283 #endif // XYZ2NEU_HPP