/*! \file piellipsoidmodel.h * \ingroup Geo * \~\brief * \~english Geographical ellipsoid Earth models * \~russian Географическая эллипсоидная модель Земли */ /* PIP - Platform Independent Primitives Contains geo ellipsoid models Andrey Bychkov work.a.b@yandex.ru This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef PIELLIPSOIDMODEL_H #define PIELLIPSOIDMODEL_H #include "pimathbase.h" //! \~english Geographical ellipsoid Earth model //! \~russian Географическая эллипсоидная модель Земли class PIP_EXPORT PIEllipsoidModel { public: //! \~english Default constructor //! \~russian Конструктор по умолчанию PIEllipsoidModel(); //! \~english Get eccentricity squared //! \~russian Получить квадрат эксцентриситета double eccSquared() const { return eccentricity * eccentricity; } //! \~english Get semi-minor axis (b) //! \~russian Получить малую полуось (b) double b() const { return a * sqrt(1 - eccSquared()); } //! \~english WGS84 ellipsoid model //! \~russian Эллипсоид WGS84 static PIEllipsoidModel WGS84Ellipsoid(); //! \~english PZ90 ellipsoid model //! \~russian Эллипсоид ПЗ-90 static PIEllipsoidModel PZ90Ellipsoid(); //! \~english GPS ellipsoid (same as WGS84) //! \~russian Эллипсоид GPS (то же что WGS84) static PIEllipsoidModel GPSEllipsoid(); //! \~english Krasovskiy ellipsoid model //! \~russian Эллипсоид Красовского static PIEllipsoidModel KrasovskiyEllipsoid(); //! \~english Major semi-axis (meters) //! \~russian Большая полуось (метры) double a; //! \~english Flattening (f = (a-b)/a) //! \~russian Сплюснутость (f = (a-b)/a) double flattening; //! \~english First eccentricity //! \~russian Первый эксцентриситет double eccentricity; //! \~english Angular velocity (rad/sec) //! \~russian Угловая скорость (рад/сек) double angVelocity; }; #endif // PIELLIPSOIDMODEL_H