00001 #pragma ident "$Id: PZ90Ellipsoid.hpp 3140 2012-06-18 15:03:02Z susancummins $" 00002 00003 //============================================================================ 00004 // 00005 // This file is part of GPSTk, the GPS Toolkit. 00006 // 00007 // The GPSTk is free software; you can redistribute it and/or modify 00008 // it under the terms of the GNU Lesser General Public License as published 00009 // by the Free Software Foundation; either version 2.1 of the License, or 00010 // any later version. 00011 // 00012 // The GPSTk is distributed in the hope that it will be useful, 00013 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 // GNU Lesser General Public License for more details. 00016 // 00017 // You should have received a copy of the GNU Lesser General Public 00018 // License along with GPSTk; if not, write to the Free Software Foundation, 00019 // Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA 00020 // 00021 // Copyright 2004, The University of Texas at Austin 00022 // 00023 //============================================================================ 00024 00025 //============================================================================ 00026 // 00027 //This software developed by Applied Research Laboratories at the University of 00028 //Texas at Austin, under contract to an agency or agencies within the U.S. 00029 //Department of Defense. The U.S. Government retains all rights to use, 00030 //duplicate, distribute, disclose, or release this software. 00031 // 00032 //Pursuant to DoD Directive 523024 00033 // 00034 // DISTRIBUTION STATEMENT A: This software has been approved for public 00035 // release, distribution is unlimited. 00036 // 00037 //============================================================================= 00038 00044 #ifndef GPSTK_PZ90ELLIPSOID_HPP 00045 #define GPSTK_PZ90ELLIPSOID_HPP 00046 00047 #include "EllipsoidModel.hpp" 00048 00049 namespace gpstk 00050 { 00053 00054 class PZ90Ellipsoid : public EllipsoidModel 00055 { 00056 public: 00057 00060 virtual double a() const throw() 00061 { return 6378136.0; } 00062 00065 virtual double a_km() const throw() 00066 { return a() / 1000.0; } 00067 00072 virtual double flatteningInverse() const throw() 00073 { return 298.25784; } 00074 00080 virtual double flattening() const throw() 00081 { return 3.35280373518e-3; } 00082 00083 // The eccentricity and eccSquared values were computed from the 00084 // flattening value via the formula: 00085 // ecc2 = 1 - (1 - f)^2 = f*(2.0 - f) 00086 // ecc = sqrt(ecc2) 00088 virtual double eccentricity() const throw() 00089 { return 8.1819106432923e-2; } 00090 00092 virtual double eccSquared() const throw() 00093 { return 6.69436617748e-3; } 00094 00097 virtual double angVelocity() const throw() 00098 { return 7.292115e-5; } 00099 00102 virtual double gm() const throw() 00103 { return 398600.4418e9; } 00104 00107 virtual double gm_km() const throw() 00108 { return 398600.4418; } 00109 00112 virtual double c() const throw() 00113 { return 299792458; } 00114 00117 virtual double c_km() const throw() 00118 { return c()/1000.0; } 00119 00122 virtual double j20() const throw() 00123 { return (-1.08262575e-3); } 00124 00126 virtual ~PZ90Ellipsoid() throw() {}; 00127 00128 }; // End of class 'PZ90Ellipsoid' 00129 00131 00132 } // End of namespace gpstk 00133 00134 #endif // GPSTK_PZ90ELLIPSOID_HPP
1.3.9.1