ad_map_access
|
namespace point More...
Classes | |
class | Altitude |
DataType Altitude. More... | |
struct | BoundingSphere |
DataType BoundingSphere. More... | |
class | CoordinateTransform |
Class that encapsulates various coordinate transformations. More... | |
class | ECEFCoordinate |
DataType ECEFCoordinate. More... | |
struct | ECEFHeading |
DataType ECEFHeading. More... | |
struct | ECEFPoint |
DataType ECEFPoint. More... | |
class | ENUCoordinate |
DataType ENUCoordinate. More... | |
struct | ENUEdgeCache |
DataType ENUEdgeCache. More... | |
class | ENUHeading |
DataType ENUHeading. More... | |
struct | ENUPoint |
DataType ENUPoint. More... | |
struct | Geometry |
DataType Geometry. More... | |
struct | GeoPoint |
DataType GeoPoint. More... | |
class | Latitude |
DataType Latitude. More... | |
class | Longitude |
DataType Longitude. More... | |
struct | ParaPoint |
DataType ParaPoint. More... | |
Typedefs | |
typedef std::vector<::ad::map::point::ECEFPoint > | ECEFEdge |
DataType ECEFEdge. | |
typedef std::vector<::ad::map::point::ENUPoint > | ENUEdge |
DataType ENUEdge. | |
typedef std::vector<::ad::map::point::GeoPoint > | GeoEdge |
DataType GeoEdge. | |
typedef std::vector<::ad::map::point::ParaPoint > | ParaPointList |
DataType ParaPointList. | |
Functions | |
std::ostream & | operator<< (std::ostream &os, Altitude const &_value) |
standard ostream operator More... | |
std::ostream & | operator<< (std::ostream &os, BoundingSphere const &_value) |
standard ostream operator More... | |
std::ostream & | operator<< (std::ostream &os, ECEFCoordinate const &_value) |
standard ostream operator More... | |
std::ostream & | operator<< (std::ostream &os, ECEFHeading const &_value) |
standard ostream operator More... | |
std::ostream & | operator<< (std::ostream &os, ECEFPoint const &_value) |
standard ostream operator More... | |
std::ostream & | operator<< (std::ostream &os, ENUCoordinate const &_value) |
standard ostream operator More... | |
std::ostream & | operator<< (std::ostream &os, ENUEdgeCache const &_value) |
standard ostream operator More... | |
std::ostream & | operator<< (std::ostream &os, ENUHeading const &_value) |
standard ostream operator More... | |
std::ostream & | operator<< (std::ostream &os, ENUPoint const &_value) |
standard ostream operator More... | |
std::ostream & | operator<< (std::ostream &os, Geometry const &_value) |
standard ostream operator More... | |
std::ostream & | operator<< (std::ostream &os, GeoPoint const &_value) |
standard ostream operator More... | |
std::ostream & | operator<< (std::ostream &os, Latitude const &_value) |
standard ostream operator More... | |
std::ostream & | operator<< (std::ostream &os, Longitude const &_value) |
standard ostream operator More... | |
std::ostream & | operator<< (std::ostream &os, ParaPoint const &_value) |
standard ostream operator More... | |
physics::Distance | distance (BoundingSphere const &left, BoundingSphere const &right) |
Computes distance between BoundingSpheres. More... | |
BoundingSphere | calcBoundingSphere (Geometry const &edgeLeft, Geometry const &edgeRight) |
calculate the bounding sphere of two edges | |
bool | isValid (ECEFPoint const &point, bool const logErrors=true) |
checks if the given ECEFPoint is valid More... | |
bool | isValid (ECEFEdge const &edge, bool const logErrors=true) |
checks if the given ECEFEdge is valid More... | |
ECEFPoint | createECEFPoint (double const x, double const y, double const z) |
create a ECEFPoint More... | |
ECEFPoint | createECEFPoint (ECEFCoordinate const x, ECEFCoordinate const y, ECEFCoordinate const z) |
create a ECEFPoint More... | |
physics::Distance | distance (ECEFPoint const &point, ECEFPoint const &other) |
Computes distance between ECEF points. More... | |
physics::Distance | calcLength (ECEFEdge const &edge) |
calculate the length of the provided border as distance value More... | |
template<typename PointType > | |
physics::RatioValue | findNearestPointOnEdge (PointType const &a, const PointType &pt0, const PointType &pt1) |
Find point nearest to the line formed by two points. More... | |
template<typename PointType > | |
physics::ParametricValue | findNearestPointOnSegment (PointType const &a, const PointType &pt0, const PointType &pt1) |
Find point nearest to the segment formed by two points. More... | |
template<typename PointType > | |
physics::Distance | calculateEdgeLength (std::vector< PointType > const &edge) |
Calculate the length of an edge. More... | |
template<typename PointType > | |
std::vector< physics::ParametricValue > | getParametricEdgePoints (std::vector< PointType > const &edge) |
Get the parametric edge points. More... | |
template<typename PointType > | |
PointType | getParametricPoint (std::vector< PointType > const &edge, physics::Distance const &edgeLength, const physics::ParametricValue &t) |
Calculates parametric point on the edge. More... | |
template<typename PointType > | |
PointType | getParametricPoint (std::vector< PointType > const &edge, const physics::ParametricValue &t) |
Calculates parametric point on the edge. More... | |
template<typename PointType > | |
std::vector< PointType > | getParametricRange (std::vector< PointType > const &edge, physics::Distance const &edgeLength, const physics::ParametricRange &trange) |
Generates sub-edge for given range. More... | |
template<typename PointType > | |
std::vector< PointType > | getParametricRange (std::vector< PointType > const &edge, const physics::ParametricRange &trange) |
Generates sub-edge for given range. More... | |
template<typename PointType > | |
physics::ParametricValue | findNearestPointOnEdge (std::vector< PointType > const &edge, physics::Distance const &edgeLength, const PointType &pt) |
Finds point on geometry nearest to given point. More... | |
template<typename PointType > | |
physics::ParametricValue | findNearestPointOnEdge (std::vector< PointType > const &edge, const PointType &pt) |
Find the nearest point on an edge. More... | |
template<typename PointType > | |
std::pair< physics::MetricRange, physics::Distance > | calculateWidthRange (std::vector< PointType > const &edgeLeft, physics::Distance const &edgeLeftLength, std::vector< PointType > const &edgeRight, physics::Distance const &edgeRightLength) |
Calculate the width range and the average width of a pair of edges. More... | |
template<typename PointType > | |
std::vector< PointType > | getLateralAlignmentEdge (std::vector< PointType > const &leftEdge, physics::Distance const &leftEdgeLength, std::vector< PointType > const &rightEdge, physics::Distance const &rightEdgeLength, physics::ParametricValue const lateralAlignment) |
Get an edge between the two given border edges with corresponding lateralAlignment. More... | |
template<typename PointType > | |
std::vector< PointType > | getLateralAlignmentEdge (std::vector< PointType > const &leftEdge, std::vector< PointType > const &rightEdge, physics::ParametricValue const lateralAlignment) |
Get an edge between the two given border edges with corresponding lateralAlignment. More... | |
template<typename PointType > | |
PointType | getEdgeStartDirectionalVector (std::vector< PointType > const edge) |
get a normalized vector representing the edge direction at edge start More... | |
template<typename PointType > | |
PointType | getEdgeEndDirectionalVector (std::vector< PointType > const edge) |
get a normalized vector representing the edge direction at edge end More... | |
bool | isValid (ENUPoint const &point, bool const logErrors=true) |
checks if the given ENUPoint is valid More... | |
ENUPoint | createENUPoint (double const x, double const y, double const z) |
create a ENUPoint More... | |
ENUPoint | createENUPoint (ENUCoordinate const x, ENUCoordinate const y, ENUCoordinate const z) |
create a ENUPoint More... | |
ENUPoint | getEnuEastAxis () |
get ENUPoint defining the East-Axis | |
ENUPoint | getEnuNorthAxis () |
get ENUPoint defining the North-Axis | |
ENUPoint | getEnuUpAxis () |
get ENUPoint defining the Up-Axis | |
physics::Distance | distance (ENUPoint const &point, ENUPoint const &other) |
Computes distance between ENU points. More... | |
bool | isValid (Geometry const &geometry) |
validity check More... | |
Geometry | createGeometry (const ECEFEdge &points, bool closed) |
create a geometry More... | |
ENUEdge | getCachedENUEdge (Geometry const &geometry) |
get the cached ENUEdge for a geometry More... | |
bool | isSuccessor (Geometry const &edge, const Geometry &other) |
Checks if Geometry is longitudinally connected with another Geometry at the end. More... | |
bool | isPredecessor (Geometry const &edge, const Geometry &other) |
Checks if Geometry is longitudinally connected with another Geometry at the start. More... | |
bool | haveSameStart (Geometry const &edge, const Geometry &other) |
Checks if two edges have same start point. More... | |
bool | haveSameEnd (Geometry const &edge, const Geometry &other) |
Checks if two edges have same end point. More... | |
point::ECEFPoint | getParametricPoint (Geometry const &geometry, const physics::ParametricValue &t) |
Calculates parametric point on the geometry. More... | |
void | getParametricRange (Geometry const &geometry, const physics::ParametricRange &trange, ECEFEdge &outputEdge, const bool revertOrder=false) |
Generates sub-geometry for given range. More... | |
physics::ParametricValue | findNearestPointOnEdge (Geometry const &geometry, const point::ECEFPoint &pt) |
Finds point on geometry nearest to given point. More... | |
ECEFEdge | getMiddleEdge (Geometry const &geometry, Geometry const &other) |
Calculates middle line between two Geometries. More... | |
bool | isValid (GeoPoint const &point, bool const logErrors=true) |
checks if the given GeoPoint is valid More... | |
double | degree2radians (double degree) |
Convert degrees to radians. More... | |
double | radians2degree (double radians) |
Convert radians to degrees. More... | |
double | toRadians (Latitude const &latitude) |
Convert Latitude to radians. More... | |
double | toRadians (Longitude const &longitude) |
Convert Longitude to radians. More... | |
GeoPoint | createGeoPoint (Longitude const longitude, Latitude const latitude, Altitude const altitude) |
create a GeoPoint More... | |
physics::Distance | distance (GeoPoint const &point, GeoPoint const &other) |
Computes distance between geo points. More... | |
GeoPoint | zeroAltitude (GeoPoint const &point) |
physics::Distance | flatDistance (GeoPoint const &point, const GeoPoint &other) |
Calculated distance between points not taking in account altitude. More... | |
GeoPoint | approxAltitude (GeoPoint const &point, const GeoEdge &pts) |
Approximates altitude of the point based on other points. More... | |
bool | isOnTheLeft (GeoPoint const &point, const GeoPoint &pt0, const GeoPoint &pt1) |
Checks if point is on the left side of the line defined by two points. More... | |
bool | haveSameOrientation (const GeoEdge &pts0, const GeoEdge &pts1) |
Checks if two GeoEdge have same orientation by taking in account distances between first and last points. More... | |
bool | isOnTheLeft (const GeoEdge &pts0, const GeoEdge &pts1) |
Checks if one polyline is on the left side of another polyline. More... | |
template<> | |
GeoPoint | vectorExtrapolate (GeoPoint const &a, GeoPoint const &b, double const &scalar) |
specialization of vectorExtrapolate for GeoPoint | |
ECEFHeading | createECEFHeading (ECEFPoint const &start, ECEFPoint const &end) |
create a heading in ECEF as a directional vector More... | |
ECEFHeading | createECEFHeading (ENUHeading const &yaw, GeoPoint const &enuReferencePoint) |
create a heading in ECEF as a directional vector More... | |
ENUHeading | createENUHeading (double yawAngleRadian) |
create a ENUHeading from yaw angle in radians More... | |
ENUHeading | createENUHeading (physics::Angle const &angle) |
create a ENUHeading from angle More... | |
ENUHeading | createENUHeading (ECEFHeading const &ecefHeading) |
create a ENUHeading from ECEFHeading value More... | |
ENUHeading | createENUHeading (ECEFHeading const &ecefHeading, GeoPoint const &enuReferencePoint) |
create a ENUHeading from ECEFHeading value More... | |
ENUHeading | createENUHeading (ECEFHeading const &ecefHeading, ECEFPoint const &enuReferencePoint) |
create a ENUHeading from ECEFHeading value More... | |
ENUHeading | createENUHeading (ENUPoint const &start, ENUPoint const &end) |
create a ENUHeading from a directional vector More... | |
ENUHeading | normalizeENUHeading (ENUHeading const &heading) |
ENUPoint | getDirectionalVectorZPlane (ENUHeading const &heading) |
get a directional vector of the heading More... | |
ENUPoint | getOrthogonalVectorZPlane (ENUHeading const &heading) |
get a vector that is orthogonal to the vectors heading More... | |
void | getDirectionVectorsZPlane (ENUHeading const &heading, ENUPoint &directionalVector, ENUPoint &orthogonalVector) |
get a directional vector of the vectors heading and the orthogonal vector at once More... | |
ParaPoint | createParaPoint (lane::LaneId const &laneId, physics::ParametricValue const ¶metricOffset) |
create a ParaPoint More... | |
template<typename PointType > | |
PointType | vectorCrossProduct (PointType const &a, PointType const &b) |
calculate the cross product of two vectors More... | |
template<typename PointType > | |
double | vectorDotProduct (PointType const &a, PointType const &b) |
calculate the dot product of two vectors More... | |
template<typename PointType > | |
PointType | vectorMultiplyScalar (PointType const &a, double const &b) |
multiplies a vector with a scalar More... | |
template<typename PointType > | |
PointType | vectorMultiplyScalar (PointType const &a, physics::Distance const &b) |
multiplies a vector with a scalar More... | |
template<typename PointType > | |
physics::Distance | vectorLength (PointType const &a) |
calculate the length of a vector More... | |
template<typename PointType > | |
PointType | vectorNorm (PointType const &a) |
normalizes a vector More... | |
template<typename PointType > | |
PointType | vectorAdd (PointType const &a, PointType const &b) |
add two vectors More... | |
template<typename PointType > | |
PointType | vectorSub (PointType const &a, PointType const &b) |
subtract two vectors from each right More... | |
template<typename PointType > | |
PointType | vectorInterpolate (PointType const &a, PointType const &b, physics::ParametricValue const &tparam) |
Interpolates point between two points. More... | |
template<typename PointType > | |
PointType | vectorExtrapolate (PointType const &a, PointType const &b, double const &scalar) |
Extrapolate point based on line defined by two points. More... | |
ECEFPoint | toECEF (GeoPoint const &point) |
perform coordinate transformation from GeoPoint to ECEFPoint | |
ECEFPoint | toECEF (ENUPoint const &point) |
perform coordinate transformation from ENUPoint to ECEFPoint More... | |
ECEFPoint | toECEF (ENUPoint const &point, GeoPoint const &enuReferencePoint) |
perform coordinate transformation from ENUPoint to ECEFPoint More... | |
GeoPoint | toGeo (ECEFPoint const &point) |
perform coordinate transformation from ECEFPoint to GeoPoint | |
GeoPoint | toGeo (ENUPoint const &point) |
perform coordinate transformation from ENUPoint to GeoPoint More... | |
GeoPoint | toGeo (ENUPoint const &point, GeoPoint const &enuReferencePoint) |
perform coordinate transformation from ENUPoint to GeoPoint More... | |
ENUPoint | toENU (ECEFPoint const &point) |
perform coordinate transformation from ECEFPoint to ENUPoint More... | |
ENUPoint | toENU (GeoPoint const &point) |
perform coordinate transformation from GeoPoint to ENUPoint More... | |
ENUPoint | toENU (ECEFPoint const &point, GeoPoint const &enuReferencePoint) |
perform coordinate transformation from ECEFPoint to ENUPoint More... | |
ENUPoint | toENU (GeoPoint const &point, GeoPoint const &enuReferencePoint) |
perform coordinate transformation from GeoPoint to ENUPoint More... | |
ECEFEdge | toECEF (GeoEdge const &edge) |
perform coordinate transformation from GeoEdge to ECEFEdge More... | |
ECEFEdge | toECEF (ENUEdge const &edge, GeoPoint const &enuReferencePoint) |
perform coordinate transformation from ENUEdge to ECEFEdge More... | |
GeoEdge | toGeo (ECEFEdge const &edge) |
perform coordinate transformation from ECEFEdge to GeoEdge More... | |
GeoEdge | toGeo (ENUEdge const &edge, GeoPoint const &enuReferencePoint) |
perform coordinate transformation from ENUEdge to GeoEdge More... | |
ENUEdge | toENU (ECEFEdge const &edge) |
perform coordinate transformation from ECEFEdge to ENUEdge More... | |
ENUEdge | toENU (ECEFEdge const &edge, GeoPoint const &enuReferencePoint) |
perform coordinate transformation from ECEFEdge to ENUEdge More... | |
Variables | |
const physics::Distance | cEdgePointBorderDistance {0.1} |
The edge point border distance. | |
const Altitude | AltitudeUnknown |
constant defining the unknown altitude | |
namespace point
Handling geographic positions in different coordinate systems
Approximates altitude of the point based on other points.
[in] | pts | Set of other points that will be used in approximation. |
physics::Distance ad::map::point::calcLength | ( | ECEFEdge const & | edge | ) |
calculate the length of the provided border as distance value
Length calculation is performed within Cartesian ECEF coordinate frame.
physics::Distance ad::map::point::calculateEdgeLength | ( | std::vector< PointType > const & | edge | ) |
Calculate the length of an edge.
[in] | edge | The input edge to operate on. |
std::pair<physics::MetricRange, physics::Distance> ad::map::point::calculateWidthRange | ( | std::vector< PointType > const & | edgeLeft, |
physics::Distance const & | edgeLeftLength, | ||
std::vector< PointType > const & | edgeRight, | ||
physics::Distance const & | edgeRightLength | ||
) |
Calculate the width range and the average width of a pair of edges.
At maximum 100 supporting points are taken into account to calculate this.
[in] | leftEdge | the left-hand border edge as basis for the calculation |
[in] | leftEdgeLength | the length of the left-hand border edge |
[in] | rightEdge | the right-hand border edge as basis for the calculation |
[in] | rightEdgeLength | the length of the left-hand border edge |
ECEFHeading ad::map::point::createECEFHeading | ( | ECEFPoint const & | start, |
ECEFPoint const & | end | ||
) |
ECEFHeading ad::map::point::createECEFHeading | ( | ENUHeading const & | yaw, |
GeoPoint const & | enuReferencePoint | ||
) |
create a heading in ECEF as a directional vector
[in] | yaw | ENUHeading the heading in ENU coordinate frame |
[in] | enuReferencePoint | the GeoPoint defining the ENU reference point |
|
inline |
create a ECEFPoint
[in] | x | x-coodinate of the point |
[in] | y | y-coodinate of the point |
[in] | z | z-coodinate of the point |
|
inline |
create a ECEFPoint
[in] | x | x-coodinate of the point |
[in] | y | y-coodinate of the point |
[in] | z | z-coodinate of the point |
ENUHeading ad::map::point::createENUHeading | ( | double | yawAngleRadian | ) |
create a ENUHeading from yaw angle in radians
Heading in ENU coordinate system as angle measured from East to North axis (yaw) in radians
[in] | yawAngleRadian | heading provided as yaw angle in radians |
ENUHeading ad::map::point::createENUHeading | ( | ECEFHeading const & | ecefHeading | ) |
create a ENUHeading from ECEFHeading value
Heading in ENU coordinate system as angle measured from East to North axis (yaw) in radians
[in] | ecefHeading | ECEFHeading value |
ENUHeading ad::map::point::createENUHeading | ( | ECEFHeading const & | ecefHeading, |
ECEFPoint const & | enuReferencePoint | ||
) |
create a ENUHeading from ECEFHeading value
Heading in ENU coordinate system as angle measured from East to North axis (yaw) in radians
[in] | ecefHeading | ECEFHeading value |
[in] | enuReferencePoint | the reference point of the ENU coordinate system as ECEFPoint |
ENUHeading ad::map::point::createENUHeading | ( | ECEFHeading const & | ecefHeading, |
GeoPoint const & | enuReferencePoint | ||
) |
create a ENUHeading from ECEFHeading value
Heading in ENU coordinate system as angle measured from East to North axis (yaw) in radians
[in] | ecefHeading | ECEFHeading value |
[in] | enuReferencePoint | the reference point of the ENU coordinate system as GeoPoint |
ENUHeading ad::map::point::createENUHeading | ( | ENUPoint const & | start, |
ENUPoint const & | end | ||
) |
create a ENUHeading from a directional vector
[in] | start | point defining the start of the directional vector |
[in] | end | point defining the end of the directional vector |
ENUHeading ad::map::point::createENUHeading | ( | physics::Angle const & | angle | ) |
create a ENUHeading from angle
Heading in ENU coordinate system as angle measured from East to North axis (yaw) in radians
[in] | angle | heading provided as yaw angle in radians |
|
inline |
create a ENUPoint
[in] | x | x-coodinate of the point |
[in] | y | y-coodinate of the point |
[in] | z | z-coodinate of the point |
|
inline |
create a ENUPoint
[in] | x | x-coodinate of the point |
[in] | y | y-coodinate of the point |
[in] | z | z-coodinate of the point |
create a geometry
[in] | points | the points to create the geometry from |
[in] | closed | should the geometry be closed? |
|
inline |
create a GeoPoint
[in] | longitude | longitude of the point |
[in] | latitude | latitude of the point |
[in] | altitude | altitude of the point |
|
inline |
create a ParaPoint
[in] | laneId | the lane id |
[in] | parametricOffset | the parametric offset |
|
inline |
Convert degrees to radians.
[in] | deg | Decimal degrees. |
|
inline |
Computes distance between BoundingSpheres.
|
inline |
Computes distance between ECEF points.
|
inline |
Computes distance between ENU points.
Computes distance between geo points.
physics::ParametricValue ad::map::point::findNearestPointOnEdge | ( | Geometry const & | geometry, |
const point::ECEFPoint & | pt | ||
) |
Finds point on geometry nearest to given point.
[in] | pt | Point of interest. |
physics::RatioValue ad::map::point::findNearestPointOnEdge | ( | PointType const & | a, |
const PointType & | pt0, | ||
const PointType & | pt1 | ||
) |
Find point nearest to the line formed by two points.
[in] | a | point to search for |
[in] | pt0 | First point of the line. |
[in] | pt1 | Second point of the line. |
physics::ParametricValue ad::map::point::findNearestPointOnEdge | ( | std::vector< PointType > const & | edge, |
const PointType & | pt | ||
) |
Find the nearest point on an edge.
[in] | edge | The input edge to operate on. |
[in] | pt | Point of interest. |
physics::ParametricValue ad::map::point::findNearestPointOnEdge | ( | std::vector< PointType > const & | edge, |
physics::Distance const & | edgeLength, | ||
const PointType & | pt | ||
) |
Finds point on geometry nearest to given point.
[in] | pt | Point of interest. |
physics::ParametricValue ad::map::point::findNearestPointOnSegment | ( | PointType const & | a, |
const PointType & | pt0, | ||
const PointType & | pt1 | ||
) |
Find point nearest to the segment formed by two points.
[in] | a | point to search for |
[in] | pt0 | First point of the segment. |
[in] | pt1 | Second point of the segment. |
Calculated distance between points not taking in account altitude.
[in] | other | Other object. Must be IsValid()! |
get the cached ENUEdge for a geometry
[in] | geometry | the geometry to work on |
|
inline |
get a directional vector of the heading
angle of zero vector will be along positive x - axis
[in] | heading | the heading input |
|
inline |
get a directional vector of the vectors heading and the orthogonal vector at once
Combines getDirectionalVectorZPlane() and getOrthogonalVectorZPlane() in one call.
[in] | heading | the heading input |
[out] | directionalVector | directional vector of the heading, angle of zero vector will be along positive x - axis |
[out] | orthogonalVector | vector that is orthogonal to the vectors heading angle of zero vector will be along positive y - axis |
PointType ad::map::point::getEdgeEndDirectionalVector | ( | std::vector< PointType > const | edge | ) |
get a normalized vector representing the edge direction at edge end
If the number of edge points is <= 1, zero is returned. If the two end points of the edge are too close to each other, a third point is used if possible to increase the accuracy.
PointType ad::map::point::getEdgeStartDirectionalVector | ( | std::vector< PointType > const | edge | ) |
get a normalized vector representing the edge direction at edge start
If the number of edge points is <= 1, zero is returned. If the two start points of the edge are too close to each other, a third point is used if possible to increase the accuracy.
std::vector<PointType> ad::map::point::getLateralAlignmentEdge | ( | std::vector< PointType > const & | leftEdge, |
physics::Distance const & | leftEdgeLength, | ||
std::vector< PointType > const & | rightEdge, | ||
physics::Distance const & | rightEdgeLength, | ||
physics::ParametricValue const | lateralAlignment | ||
) |
Get an edge between the two given border edges with corresponding lateralAlignment.
The left and right edges are usually the borders of some road section. This function then calculates a new edge in between two other edges providing e.g. the center edge (lateralAlgignment=0.5) or edge with other lateral shift.
[in] | leftEdge | the left-hand border edge as basis for the calculation |
[in] | leftEdgeLength | the length of the left-hand border edge |
[in] | rightEdge | the right-hand border edge as basis for the calculation |
[in] | rightEdgeLength | the length of the left-hand border edge |
[in] | lateralAlignment | the lateral alignment as TParam [0.;1.] used to calculate the resulting edge. The lateral alignment is relative to the left edge. If lateralAlignment is 1., the left edge is returned, if lateralAlignment is 0., the right edge is returned |
std::invalid_argument | if the lateralAlignment parameter is smaller than 0. or larger than 1. |
std::vector<PointType> ad::map::point::getLateralAlignmentEdge | ( | std::vector< PointType > const & | leftEdge, |
std::vector< PointType > const & | rightEdge, | ||
physics::ParametricValue const | lateralAlignment | ||
) |
Get an edge between the two given border edges with corresponding lateralAlignment.
The left and right edges are usually the borders of some road section. This function then calculates a new edge in between two other edges providing e.g. the center edge (lateralAlgignment=0.5) or edge with other lateral shift.
Note: if the length of the edges are already know, the overloaded getLateralAlignmentEdge() function can be called.
[in] | leftEdge | the left-hand border edge as basis for the calculation |
[in] | rightEdge | the right-hand border edge as basis for the calculation |
[in] | lateralAlignment | the lateral alignment as TParam [0.;1.] used to calculate the resulting edge. The lateral alignment is relative to the left edge. If lateralAlignment is 1., the left edge is returned, if lateralAlignment is 0., the right edge is returned |
std::invalid_argument | if the lateralAlignment parameter is smaller than 0. or larger than 1. |
Calculates middle line between two Geometries.
[in] | geometry | A geometry |
[in] | other | Another geometry. |
|
inline |
get a vector that is orthogonal to the vectors heading
angle of zero vector will be along positive y - axis
[in] | heading | the heading input |
std::vector<physics::ParametricValue> ad::map::point::getParametricEdgePoints | ( | std::vector< PointType > const & | edge | ) |
Get the parametric edge points.
[in] | edge | The input edge to operate on. |
point::ECEFPoint ad::map::point::getParametricPoint | ( | Geometry const & | geometry, |
const physics::ParametricValue & | t | ||
) |
Calculates parametric point on the geometry.
[in] | t | Parameter. 0 will return first point, and 1 last point on the geometry. |
PointType ad::map::point::getParametricPoint | ( | std::vector< PointType > const & | edge, |
const physics::ParametricValue & | t | ||
) |
Calculates parametric point on the edge.
[in] | edge | The input edge to operate on. |
[in] | t | Parameter. 0 will return first point, and 1 last point on the edge. |
PointType ad::map::point::getParametricPoint | ( | std::vector< PointType > const & | edge, |
physics::Distance const & | edgeLength, | ||
const physics::ParametricValue & | t | ||
) |
Calculates parametric point on the edge.
[in] | edge | The input edge to operate on. |
[in] | t | Parameter. 0 will return first point, and 1 last point on the edge. |
void ad::map::point::getParametricRange | ( | Geometry const & | geometry, |
const physics::ParametricRange & | trange, | ||
ECEFEdge & | outputEdge, | ||
const bool | revertOrder = false |
||
) |
Generates sub-geometry for given range.
Generates sub-geometry for given range. This overloaded member internally makes use of the getCachedENUEdge() feature of the geometry.
[in] | geometry | source geometry. |
[in] | trange | Specifies parametric range. |
[out] | outputEdge | The output edge to be filled with the sub-geometry points |
[in] | revertOrder | optional parameter: if set true the order of the points in the outputEdge is in reverse order of the geometry |
std::vector<PointType> ad::map::point::getParametricRange | ( | std::vector< PointType > const & | edge, |
const physics::ParametricRange & | trange | ||
) |
Generates sub-edge for given range.
[in] | edge | The input edge to operate on. |
[in] | trange | Specifies parametric range. |
std::vector<PointType> ad::map::point::getParametricRange | ( | std::vector< PointType > const & | edge, |
physics::Distance const & | edgeLength, | ||
const physics::ParametricRange & | trange | ||
) |
Generates sub-edge for given range.
[in] | edge | The input edge to operate on. |
[in] | trange | Specifies parametric range. |
Checks if two edges have same end point.
[in] | other | Other object. Must be IsValid()! |
Checks if two GeoEdge have same orientation by taking in account distances between first and last points.
[in] | pts0 | First GeoEdge |
[in] | pts1 | Second GeoEdge |
Checks if one polyline is on the left side of another polyline.
[in] | pts0 | First GeoEdge |
[in] | pts1 | Second GeoEdge |
bool ad::map::point::isOnTheLeft | ( | GeoPoint const & | point, |
const GeoPoint & | pt0, | ||
const GeoPoint & | pt1 | ||
) |
Checks if point is on the left side of the line defined by two points.
[in] | pt0 | First point defining the line. |
[in] | pt1 | Second point defining the line. |
|
inline |
checks if the given ECEFEdge is valid
checks if the given GeoEdge is valid
checks if the given ENUEdge is valid
The point is valid if it's within valid input range.
The edge is valid if it's within valid input range.
|
inline |
checks if the given ECEFPoint is valid
The point is valid if it's within valid input range.
|
inline |
checks if the given ENUPoint is valid
The point is valid if it's within valid input range.
|
inline |
validity check
[in] | geometry | the geometry to check |
|
inline |
checks if the given GeoPoint is valid
The point is valid if it's within valid input range.
ENUHeading ad::map::point::normalizeENUHeading | ( | ENUHeading const & | heading | ) |
|
inline |
standard ostream operator
[in] | os | The output stream to write to |
[in] | _value | Altitude value |
|
inline |
standard ostream operator
[in] | os | The output stream to write to |
[in] | _value | BoundingSphere value |
|
inline |
standard ostream operator
[in] | os | The output stream to write to |
[in] | _value | ECEFCoordinate value |
|
inline |
standard ostream operator
[in] | os | The output stream to write to |
[in] | _value | ECEFHeading value |
|
inline |
standard ostream operator
[in] | os | The output stream to write to |
[in] | _value | ECEFPoint value |
|
inline |
standard ostream operator
[in] | os | The output stream to write to |
[in] | _value | ENUCoordinate value |
|
inline |
standard ostream operator
[in] | os | The output stream to write to |
[in] | _value | ENUEdgeCache value |
|
inline |
standard ostream operator
[in] | os | The output stream to write to |
[in] | _value | ENUHeading value |
|
inline |
standard ostream operator
[in] | os | The output stream to write to |
[in] | _value | ENUPoint value |
|
inline |
standard ostream operator
[in] | os | The output stream to write to |
[in] | _value | Geometry value |
|
inline |
standard ostream operator
[in] | os | The output stream to write to |
[in] | _value | GeoPoint value |
|
inline |
standard ostream operator
[in] | os | The output stream to write to |
[in] | _value | Latitude value |
|
inline |
standard ostream operator
[in] | os | The output stream to write to |
[in] | _value | Longitude value |
|
inline |
standard ostream operator
[in] | os | The output stream to write to |
[in] | _value | ParaPoint value |
|
inline |
Convert radians to degrees.
[in] | rad | Radians. |
perform coordinate transformation from ENUEdge to ECEFEdge
The transformation into ENU coordinate frame makes use of the provided ENUReferencePoint
perform coordinate transformation from ENUPoint to ECEFPoint
The transformation into ENU coordinate frame makes use of the globally set ENUReferencePoint (see AdMapAccess::setENUReferencePoint())
perform coordinate transformation from GeoEdge to ECEFEdge
perform coordinate transformation from ENUEdge to ECEFEdge
The transformation into ENU coordinate frame makes use of the globally set ENUReferencePoint (see AdMapAccess::setENUReferencePoint())
perform coordinate transformation from ECEFEdge to ENUEdge
perform coordinate transformation from GeoEdge to ENUEdge
The transformation into ENU coordinate frame makes use of the globally set ENUReferencePoint (see AdMapAccess::setENUReferencePoint())
perform coordinate transformation from ECEFEdge to ENUEdge
perform coordinate transformation from GeoEdge to ENUEdge
The transformation into ENU coordinate frame makes use of the provided ENUReferencePoint
perform coordinate transformation from ECEFPoint to ENUPoint
The transformation into ENU coordinate frame makes use of the globally set ENUReferencePoint (see AdMapAccess::setENUReferencePoint())
perform coordinate transformation from GeoPoint to ENUPoint
The transformation into ENU coordinate frame makes use of the globally set ENUReferencePoint (see AdMapAccess::setENUReferencePoint())
perform coordinate transformation from ECEFEdge to GeoEdge
perform coordinate transformation from ENUEdge to GeoEdge
The transformation into ENU coordinate frame makes use of the globally set ENUReferencePoint (see AdMapAccess::setENUReferencePoint())
perform coordinate transformation from ENUEdge to GeoEdge
The transformation into ENU coordinate frame makes use of the provided ENUReferencePoint
perform coordinate transformation from ENUPoint to GeoPoint
The transformation into ENU coordinate frame makes use of the globally set ENUReferencePoint (see AdMapAccess::setENUReferencePoint())
|
inline |
|
inline |
PointType ad::map::point::vectorAdd | ( | PointType const & | a, |
PointType const & | b | ||
) |
add two vectors
[in] | a | vector a |
[in] | b | vector b |
PointType ad::map::point::vectorCrossProduct | ( | PointType const & | a, |
PointType const & | b | ||
) |
calculate the cross product of two vectors
[in] | a | vector a |
[in] | b | vector b |
double ad::map::point::vectorDotProduct | ( | PointType const & | a, |
PointType const & | b | ||
) |
calculate the dot product of two vectors
[in] | a | vector a |
[in] | b | vector b |
PointType ad::map::point::vectorExtrapolate | ( | PointType const & | a, |
PointType const & | b, | ||
double const & | scalar | ||
) |
Extrapolate point based on line defined by two points.
[in] | a | vector a |
[in] | b | vector b |
[in] | scalar | scalar value |
PointType ad::map::point::vectorInterpolate | ( | PointType const & | a, |
PointType const & | b, | ||
physics::ParametricValue const & | tparam | ||
) |
Interpolates point between two points.
[in] | a | vector a |
[in] | b | vector b |
[in] | tparam | Between 0 and 1. |
physics::Distance ad::map::point::vectorLength | ( | PointType const & | a | ) |
calculate the length of a vector
[in] | a | vector a |
PointType ad::map::point::vectorMultiplyScalar | ( | PointType const & | a, |
double const & | b | ||
) |
multiplies a vector with a scalar
[in] | a | vector a |
[in] | b | scalar b |
PointType ad::map::point::vectorMultiplyScalar | ( | PointType const & | a, |
physics::Distance const & | b | ||
) |
multiplies a vector with a scalar
[in] | a | vector a |
[in] | b | scalar b |
PointType ad::map::point::vectorNorm | ( | PointType const & | a | ) |
normalizes a vector
[in] | a | vector a |
PointType ad::map::point::vectorSub | ( | PointType const & | a, |
PointType const & | b | ||
) |
subtract two vectors from each right
[in] | a | vector a |
[in] | b | vector b |