#### Algorithm.h3.1 KB Permalink History Raw

 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 ``````#ifndef ALGORITHM_H #define ALGORITHM_H //============================================================================== // // Algorithm - the gpx algorithm module // // Copyright (C) 2018 Dick van Oudheusden // // This library 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 library 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 library; if not, write to the Free // Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // //============================================================================== #include namespace gpx { /// /// @module Algorithm /// /// @brief The gpx algorithm module. /// /// /// Convert degrees to radians /// /// @param deg the degrees /// /// @return the radians /// double deg2rad(double deg); /// /// Convert radians to degrees /// /// @param rad the radians /// /// @return the degrees /// double rad2deg(double rad); /// /// Calculate the distance between two lat,long coordinates /// /// @param lat1deg the latitude of the first coordinate /// @param lon1deg the longitude of the first coordinate /// @param lat2deg the latitude of the second coordinate /// @param lon2deg the longitude of the second coordinate /// /// @return the distance in metres /// double calcDistance(double lat1deg, double lon1deg, double lat2deg, double lon2deg); /// /// Calculate the bearing between two lat,long coordinates /// /// @param lat1deg the latitude of the first coordinate /// @param lon1deg the longitude of the first coordinate /// @param lat2deg the latitude of the second coordinate /// @param lon2deg the longitude of the second coordinate /// /// @return the bearing in radians /// double calcBearing(double lat1deg, double lon1deg, double lat2deg, double lon2deg); /// /// Calculate the crosstrack distance from the third coordinate to the line of the first two coordinates /// /// @param lat1deg the latitude of the first coordinate of the line /// @param lon1deg the longitude of the first coordinate of the line /// @param lat2deg the latitude of the second coordinate of the line /// @param lon2deg the longitude of the second coordinate of the line /// @param lat3deg the latitude of the third coordinate /// @param lon3deg the longitude of the third coordinate /// /// @return the crosstrack distance in metres /// double calcCrosstrack(double lat1deg, double lon1deg, double lat2deg, double lon2deg, double lat3deg, double lon3deg); } #endif ``````