ad_map_access
ECEFHeading.hpp
Go to the documentation of this file.
1 /*
2  * ----------------- BEGIN LICENSE BLOCK ---------------------------------
3  *
4  * Copyright (C) 2018-2020 Intel Corporation
5  *
6  * SPDX-License-Identifier: MIT
7  *
8  * ----------------- END LICENSE BLOCK -----------------------------------
9  */
10 
18 #pragma once
19 
20 #include <iostream>
21 #include <limits>
22 #include <memory>
23 #include <sstream>
28 namespace ad {
32 namespace map {
38 namespace point {
39 
46 {
50  typedef std::shared_ptr<ECEFHeading> Ptr;
51 
55  typedef std::shared_ptr<ECEFHeading const> ConstPtr;
56 
60  ECEFHeading() = default;
61 
65  ~ECEFHeading() = default;
66 
70  ECEFHeading(const ECEFHeading &other) = default;
71 
75  ECEFHeading(ECEFHeading &&other) = default;
76 
84  ECEFHeading &operator=(const ECEFHeading &other) = default;
85 
93  ECEFHeading &operator=(ECEFHeading &&other) = default;
94 
102  bool operator==(const ECEFHeading &other) const
103  {
104  return (x == other.x) && (y == other.y) && (z == other.z);
105  }
106 
114  bool operator!=(const ECEFHeading &other) const
115  {
116  return !operator==(other);
117  }
118 
122  ::ad::map::point::ECEFCoordinate x{std::numeric_limits<double>::quiet_NaN()};
123 
127  ::ad::map::point::ECEFCoordinate y{std::numeric_limits<double>::quiet_NaN()};
128 
132  ::ad::map::point::ECEFCoordinate z{std::numeric_limits<double>::quiet_NaN()};
133 };
134 
135 } // namespace point
136 } // namespace map
137 } // namespace ad
138 
142 #ifndef GEN_GUARD_AD_MAP_POINT_ECEFHEADING
143 #define GEN_GUARD_AD_MAP_POINT_ECEFHEADING
144 
147 namespace ad {
151 namespace map {
157 namespace point {
158 
168 inline std::ostream &operator<<(std::ostream &os, ECEFHeading const &_value)
169 {
170  os << "ECEFHeading(";
171  os << "x:";
172  os << _value.x;
173  os << ",";
174  os << "y:";
175  os << _value.y;
176  os << ",";
177  os << "z:";
178  os << _value.z;
179  os << ")";
180  return os;
181 }
182 
183 } // namespace point
184 } // namespace map
185 } // namespace ad
186 
187 namespace std {
191 inline std::string to_string(::ad::map::point::ECEFHeading const &value)
192 {
193  stringstream sstream;
194  sstream << value;
195  return sstream.str();
196 }
197 } // namespace std
198 #endif // GEN_GUARD_AD_MAP_POINT_ECEFHEADING
ad
namespace ad
Definition: GeometryStoreItem.hpp:28
ad::map::point::operator<<
std::ostream & operator<<(std::ostream &os, Altitude const &_value)
standard ostream operator
Definition: Altitude.hpp:562
ad::map::point::ECEFHeading::x
::ad::map::point::ECEFCoordinate x
Definition: ECEFHeading.hpp:122
ad::map::point::ECEFHeading::operator=
ECEFHeading & operator=(const ECEFHeading &other)=default
standard assignment operator
ad::map::point::ECEFHeading::operator==
bool operator==(const ECEFHeading &other) const
standard comparison operator
Definition: ECEFHeading.hpp:102
ad::map::point::ECEFHeading
DataType ECEFHeading.
Definition: ECEFHeading.hpp:45
ad::map::point::ECEFHeading::Ptr
std::shared_ptr< ECEFHeading > Ptr
Smart pointer on ECEFHeading.
Definition: ECEFHeading.hpp:50
std::to_string
std::string to_string(::ad::map::access::GeometryStoreItem const &value)
overload of the std::to_string for GeometryStoreItem
Definition: GeometryStoreItem.hpp:183
ad::map::point::ECEFHeading::z
::ad::map::point::ECEFCoordinate z
Definition: ECEFHeading.hpp:132
ad::map::point::ECEFHeading::y
::ad::map::point::ECEFCoordinate y
Definition: ECEFHeading.hpp:127
ad::map::point::ECEFCoordinate
DataType ECEFCoordinate.
Definition: ECEFCoordinate.hpp:68
ad::map::point::ECEFHeading::ECEFHeading
ECEFHeading()=default
standard constructor
ad::map::point::ECEFHeading::ConstPtr
std::shared_ptr< ECEFHeading const > ConstPtr
Smart pointer on constant ECEFHeading.
Definition: ECEFHeading.hpp:55
ECEFCoordinate.hpp
ad::map::point::ECEFHeading::~ECEFHeading
~ECEFHeading()=default
standard destructor
ad::map::point::ECEFHeading::operator!=
bool operator!=(const ECEFHeading &other) const
standard comparison operator
Definition: ECEFHeading.hpp:114