ad_map_access
ECEFOperation.hpp
Go to the documentation of this file.
1 // ----------------- BEGIN LICENSE BLOCK ---------------------------------
2 //
3 // Copyright (C) 2018-2021 Intel Corporation
4 //
5 // SPDX-License-Identifier: MIT
6 //
7 // ----------------- END LICENSE BLOCK -----------------------------------
12 #pragma once
13 
17 
18 namespace ad {
19 namespace map {
20 namespace point {
21 
27 inline bool isValid(ECEFPoint const &point, bool const logErrors = true)
28 {
29  return withinValidInputRange(point, logErrors);
30 }
31 
37 inline bool isValid(ECEFEdge const &edge, bool const logErrors = true)
38 {
39  return withinValidInputRange(edge, logErrors);
40 }
41 
49 inline ECEFPoint createECEFPoint(double const x, double const y, double const z)
50 {
51  ECEFPoint result;
52  result.x = ECEFCoordinate(x);
53  result.y = ECEFCoordinate(y);
54  result.z = ECEFCoordinate(z);
55  return result;
56 }
57 
66 {
67  ECEFPoint result;
68  result.x = x;
69  result.y = y;
70  result.z = z;
71  return result;
72 }
73 
78 inline physics::Distance distance(ECEFPoint const &point, ECEFPoint const &other)
79 {
80  return vectorLength(vectorSub(point, other));
81 }
82 
87 physics::Distance calcLength(ECEFEdge const &edge);
88 
89 } // namespace point
90 } // namespace map
91 } // namespace ad
92 
101 inline double operator*(::ad::map::point::ECEFPoint const &a, ::ad::map::point::ECEFPoint const &b)
102 {
104 }
105 
111 inline ::ad::map::point::ECEFPoint operator*(::ad::map::point::ECEFPoint const &a, ::ad::physics::Distance const &b)
112 {
114 }
115 
121 inline ::ad::map::point::ECEFPoint operator*(::ad::physics::Distance const &b, ::ad::map::point::ECEFPoint const &a)
122 {
124 }
125 
131 inline ::ad::map::point::ECEFPoint operator*(::ad::map::point::ECEFPoint const &a, double const &b)
132 {
134 }
135 
141 inline ::ad::map::point::ECEFPoint operator*(double const &b, ::ad::map::point::ECEFPoint const &a)
142 {
144 }
145 
154 inline ::ad::map::point::ECEFPoint operator+(::ad::map::point::ECEFPoint const &a, ::ad::map::point::ECEFPoint const &b)
155 {
157 }
158 
167 inline ::ad::map::point::ECEFPoint operator-(::ad::map::point::ECEFPoint const &a, ::ad::map::point::ECEFPoint const &b)
168 {
170 }
ad
namespace ad
Definition: GeometryStoreItem.hpp:28
ad::map::point::ECEFPoint::z
::ad::map::point::ECEFCoordinate z
Definition: ECEFPoint.hpp:132
ad::map::point::createECEFPoint
ECEFPoint createECEFPoint(double const x, double const y, double const z)
create a ECEFPoint
Definition: ECEFOperation.hpp:49
ad::map::point::ECEFPoint::y
::ad::map::point::ECEFCoordinate y
Definition: ECEFPoint.hpp:127
ECEFEdgeValidInputRange.hpp
operator-
inline ::ad::map::point::ECEFPoint operator-(::ad::map::point::ECEFPoint const &a, ::ad::map::point::ECEFPoint const &b)
subtract two ECEFPoint vectors from each right
Definition: ECEFOperation.hpp:167
PointOperation.hpp
ad::map::point::vectorDotProduct
double vectorDotProduct(PointType const &a, PointType const &b)
calculate the dot product of two vectors
Definition: PointOperation.hpp:54
withinValidInputRange
bool withinValidInputRange(::ad::map::access::MapMetaData const &input, bool const logErrors=true)
check if the given MapMetaData is within valid input range
Definition: MapMetaDataValidInputRange.hpp:37
ad::map::point::ECEFPoint::x
::ad::map::point::ECEFCoordinate x
Definition: ECEFPoint.hpp:122
ad::map::point::vectorAdd
PointType vectorAdd(PointType const &a, PointType const &b)
add two vectors
Definition: PointOperation.hpp:126
ad::map::point::ECEFCoordinate
DataType ECEFCoordinate.
Definition: ECEFCoordinate.hpp:68
ad::map::point::vectorSub
PointType vectorSub(PointType const &a, PointType const &b)
subtract two vectors from each right
Definition: PointOperation.hpp:143
ad::map::point::distance
physics::Distance distance(BoundingSphere const &left, BoundingSphere const &right)
Computes distance between BoundingSpheres.
Definition: BoundingSphereOperation.hpp:29
ad::map::point::isValid
bool isValid(ECEFPoint const &point, bool const logErrors=true)
checks if the given ECEFPoint is valid
Definition: ECEFOperation.hpp:27
ad::map::point::vectorMultiplyScalar
PointType vectorMultiplyScalar(PointType const &a, double const &b)
multiplies a vector with a scalar
Definition: PointOperation.hpp:65
ad::map::point::calcLength
physics::Distance calcLength(ECEFEdge const &edge)
calculate the length of the provided border as distance value
ECEFPointValidInputRange.hpp
ad::map::point::ECEFPoint
DataType ECEFPoint.
Definition: ECEFPoint.hpp:45
operator+
inline ::ad::map::point::ECEFPoint operator+(::ad::map::point::ECEFPoint const &a, ::ad::map::point::ECEFPoint const &b)
add two ECEFPoint vectors
Definition: ECEFOperation.hpp:154
ad::map::point::vectorLength
physics::Distance vectorLength(PointType const &a)
calculate the length of a vector
Definition: PointOperation.hpp:91
ad::map::point::ECEFEdge
std::vector<::ad::map::point::ECEFPoint > ECEFEdge
DataType ECEFEdge.
Definition: ECEFEdge.hpp:42
operator*
double operator*(::ad::map::point::ECEFPoint const &a, ::ad::map::point::ECEFPoint const &b)
calculate the dot product of two ECEFPoint vectors
Definition: ECEFOperation.hpp:101