libosmscout 1.1.1
Loading...
Searching...
No Matches
Geometry.h File Reference
#include <algorithm>
#include <array>
#include <functional>
#include <list>
#include <unordered_map>
#include <utility>
#include <vector>
#include <tuple>
#include <osmscout/lib/CoreImportExport.h>
#include <osmscout/system/Assert.h>
#include <osmscout/system/Math.h>
#include <osmscout/system/SystemTypes.h>
#include <osmscout/GeoCoord.h>
#include <osmscout/Point.h>
#include <osmscout/OSMScoutTypes.h>
#include <osmscout/util/GeoBox.h>
#include <osmscout/util/Distance.h>
#include <osmscout/util/Bearing.h>
Include dependency graph for Geometry.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  osmscout::ScanCell
struct  osmscout::SegmentGeoBox
struct  osmscout::PathIntersection
class  osmscout::PolygonMerger
struct  osmscout::PolygonMerger::Polygon
struct  osmscout::CellDimension
class  osmscout::GeoBoxPartitioner
struct  std::hash< osmscout::ScanCell >

Namespaces

namespace  osmscout
namespace  std
 STL namespace.

Functions

double osmscout::DegToRad (double deg)
double osmscout::RadToDeg (double rad)
double osmscout::AngleDiff (double a, double b)
template<class InputIt>
void osmscout::GetBoundingBox (const InputIt first, const InputIt last, GeoBox &boundingBox)
template<typename N>
GeoBox osmscout::GetBoundingBox (const std::vector< N > &nodes)
GeoBox osmscout::GetBoundingBox (const std::vector< Point > &nodes)
template<typename N>
void osmscout::GetBoundingBox (const std::vector< N > &nodes, GeoBox &boundingBox)
void osmscout::GetBoundingBox (const std::vector< Point > &nodes, GeoBox &boundingBox)
template<typename N>
bool osmscout::LinesIntersect (const N &a1, const N &a2, const N &b1, const N &b2)
template<typename N, typename I>
bool osmscout::GetLineIntersection (const N &a1, const N &a2, const N &b1, const N &b2, I &intersection)
template<typename N>
bool osmscout::GetLineIntersectionPixel (const N &a1, const N &a2, const N &b1, const N &b2, N &intersection)
template<typename N>
double osmscout::DistanceSquare (const N &a, const N &b)
template<typename N, typename M>
bool osmscout::IsCoordInArea (const N &point, const std::vector< M > &nodes)
template<typename N, typename M>
int osmscout::GetRelationOfPointToArea (const N &point, const std::vector< M > &nodes)
template<typename N, typename M>
bool osmscout::IsAreaCompletelyInArea (const std::vector< N > &a, const std::vector< M > &b)
template<typename N, typename M>
bool osmscout::IsAreaAtLeastPartlyInArea (const std::vector< N > &a, const std::vector< M > &b, const GeoBox &aBox, const GeoBox &bBox)
template<typename N, typename M>
bool osmscout::IsAreaAtLeastPartlyInArea (const std::vector< N > &a, const std::vector< M > &b)
template<typename N, typename M>
bool osmscout::IsAreaSubOfArea (const std::vector< N > &a, const std::vector< M > &b)
template<typename N, typename M>
bool osmscout::IsAreaSubOfAreaQuorum (const std::vector< N > &a, const std::vector< M > &b)
template<typename N, typename M>
bool osmscout::IsAreaSubOfAreaOrSame (const std::vector< N > &a, const std::vector< M > &b)
template<typename N>
bool osmscout::AreaIsSimple (std::vector< N > points)
template<typename N>
bool osmscout::AreaIsSimple (const std::vector< std::pair< N, N > > &edges, const std::vector< bool > &edgeStartsNewPoly)
template<typename N>
bool osmscout::AreaIsCCW (const std::vector< N > &edges)
template<typename N>
bool osmscout::AreaIsValid (std::vector< N > &outerPoints, std::vector< std::vector< N > > &innerPoints)
void osmscout::Normalize (double x, double y, double &nx, double &ny)
double osmscout::Det (double x1, double y1, double x2, double y2)
OSMSCOUT_API size_t osmscout::Pow (size_t a, size_t b)
template<typename N>
bool osmscout::AreaIsClockwise (const std::vector< N > &edges)
template<typename N>
double osmscout::CalculateDistancePointToLineSegment (const N &p, const N &a, const N &b)
OSMSCOUT_API double osmscout::CalculateDistancePointToLineSegment (const GeoCoord &p, const GeoCoord &a, const GeoCoord &b, GeoCoord &intersection)
OSMSCOUT_API Distance osmscout::GetSphericalDistance (const GeoCoord &a, const GeoCoord &b)
OSMSCOUT_API Distance osmscout::GetEllipsoidalDistance (double aLon, double aLat, double bLon, double bLat)
OSMSCOUT_API Distance osmscout::GetEllipsoidalDistance (const GeoCoord &a, const GeoCoord &b)
OSMSCOUT_API void osmscout::GetEllipsoidalDistance (double lat1, double lon1, const Bearing &bearing, const Distance &distance, double &lat2, double &lon2)
OSMSCOUT_API GeoCoord osmscout::GetEllipsoidalDistance (const GeoCoord &position, const Bearing &bearing, const Distance &distance)
OSMSCOUT_API Bearing osmscout::GetSphericalBearingInitial (const GeoCoord &a, const GeoCoord &b)
OSMSCOUT_API Bearing osmscout::GetSphericalBearingFinal (const GeoCoord &a, const GeoCoord &b)
OSMSCOUT_API double osmscout::GetDistanceInLonDegrees (const Distance &d, double latitude=0)
OSMSCOUT_API double osmscout::NormalizeRelativeAngle (double angle)
void OSMSCOUT_API osmscout::ScanConvertLine (int x1, int y1, int x2, int y2, std::vector< ScanCell > &cells)
OSMSCOUT_API double osmscout::DistanceToSegment (double px, double py, double p1x, double p1y, double p2x, double p2y, double &r, double &qx, double &qy)
OSMSCOUT_API double osmscout::DistanceToSegment (const GeoCoord &point, const GeoCoord &segmentStart, const GeoCoord &segmentEnd, double &r, GeoCoord &intersection)
OSMSCOUT_API double osmscout::DistanceToSegment (const std::vector< Point > &points, const GeoCoord &segmentStart, const GeoCoord &segmentEnd, GeoCoord &location, GeoCoord &intersection)
OSMSCOUT_API double osmscout::DistanceToSegment (const GeoBox &boundingBox, const GeoCoord &segmentStart, const GeoCoord &segmentEnd, GeoCoord &location, GeoCoord &intersection)
template<typename N>
void osmscout::GetSegmentBoundingBox (const std::vector< N > &path, size_t from, size_t to, GeoBox &boundingBox)
template<typename N>
void osmscout::ComputeSegmentBoxes (const std::vector< N > &path, std::vector< SegmentGeoBox > &segmentBoxes, size_t bound, size_t segmentSize=1000)
template<typename N>
void osmscout::FindPathIntersections (const std::vector< N > &aPath, const std::vector< N > &bPath, bool aClosed, bool bClosed, std::vector< PathIntersection > &intersections, size_t aStartIndex=0, size_t bStartIndex=0)
template<typename N>
bool osmscout::FindIntersection (const std::vector< N > &way, size_t &i, size_t &j)

Variables

const size_t osmscout::CELL_DIMENSION_MAX = 25
const size_t osmscout::CELL_DIMENSION_COUNT = CELL_DIMENSION_MAX+1
OSMSCOUT_API const std::array< CellDimension, CELL_DIMENSION_COUNTosmscout::cellDimension