XYZ2NEU.hpp

Go to the documentation of this file.
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 //  This file is part of GPSTk, the GPS Toolkit.
00015 //
00016 //  The GPSTk is free software; you can redistribute it and/or modify
00017 //  it under the terms of the GNU Lesser General Public License as published
00018 //  by the Free Software Foundation; either version 2.1 of the License, or
00019 //  any later version.
00020 //
00021 //  The GPSTk is distributed in the hope that it will be useful,
00022 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
00023 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00024 //  GNU Lesser General Public License for more details.
00025 //
00026 //  You should have received a copy of the GNU Lesser General Public
00027 //  License along with GPSTk; if not, write to the Free Software Foundation,
00028 //  Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00029 //
00030 //  Dagoberto Salazar - gAGE ( http://www.gage.es ). 2007, 2008
00031 //
00032 //============================================================================
00033 
00034 
00035 
00036 #include "geometry.hpp"                   // DEG_TO_RAD
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    }; // End of class 'XYZ2NEU'
00279 
00281 
00282 }  // End of namespace gpstk
00283 #endif   // XYZ2NEU_HPP

Generated on Tue May 22 03:31:02 2012 for GPS ToolKit Software Library by  doxygen 1.3.9.1