ad_map_access
GeoPoint.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>
30 namespace ad {
34 namespace map {
40 namespace point {
41 
47 struct GeoPoint
48 {
52  typedef std::shared_ptr<GeoPoint> Ptr;
53 
57  typedef std::shared_ptr<GeoPoint const> ConstPtr;
58 
62  GeoPoint() = default;
63 
67  ~GeoPoint() = default;
68 
72  GeoPoint(const GeoPoint &other) = default;
73 
77  GeoPoint(GeoPoint &&other) = default;
78 
86  GeoPoint &operator=(const GeoPoint &other) = default;
87 
95  GeoPoint &operator=(GeoPoint &&other) = default;
96 
104  bool operator==(const GeoPoint &other) const
105  {
106  return (longitude == other.longitude) && (latitude == other.latitude) && (altitude == other.altitude);
107  }
108 
116  bool operator!=(const GeoPoint &other) const
117  {
118  return !operator==(other);
119  }
120 
124  ::ad::map::point::Longitude longitude{std::numeric_limits<double>::quiet_NaN()};
125 
129  ::ad::map::point::Latitude latitude{std::numeric_limits<double>::quiet_NaN()};
130 
134  ::ad::map::point::Altitude altitude{std::numeric_limits<double>::quiet_NaN()};
135 };
136 
137 } // namespace point
138 } // namespace map
139 } // namespace ad
140 
144 #ifndef GEN_GUARD_AD_MAP_POINT_GEOPOINT
145 #define GEN_GUARD_AD_MAP_POINT_GEOPOINT
146 
149 namespace ad {
153 namespace map {
159 namespace point {
160 
170 inline std::ostream &operator<<(std::ostream &os, GeoPoint const &_value)
171 {
172  os << "GeoPoint(";
173  os << "longitude:";
174  os << _value.longitude;
175  os << ",";
176  os << "latitude:";
177  os << _value.latitude;
178  os << ",";
179  os << "altitude:";
180  os << _value.altitude;
181  os << ")";
182  return os;
183 }
184 
185 } // namespace point
186 } // namespace map
187 } // namespace ad
188 
189 namespace std {
193 inline std::string to_string(::ad::map::point::GeoPoint const &value)
194 {
195  stringstream sstream;
196  sstream << value;
197  return sstream.str();
198 }
199 } // namespace std
200 #endif // GEN_GUARD_AD_MAP_POINT_GEOPOINT
ad
namespace ad
Definition: GeometryStoreItem.hpp:28
ad::map::point::GeoPoint::operator=
GeoPoint & operator=(const GeoPoint &other)=default
standard assignment operator
Altitude.hpp
ad::map::point::operator<<
std::ostream & operator<<(std::ostream &os, Altitude const &_value)
standard ostream operator
Definition: Altitude.hpp:562
ad::map::point::GeoPoint::latitude
::ad::map::point::Latitude latitude
Definition: GeoPoint.hpp:129
ad::map::point::GeoPoint
DataType GeoPoint.
Definition: GeoPoint.hpp:47
Latitude.hpp
ad::map::point::GeoPoint::longitude
::ad::map::point::Longitude longitude
Definition: GeoPoint.hpp:124
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::GeoPoint::Ptr
std::shared_ptr< GeoPoint > Ptr
Smart pointer on GeoPoint.
Definition: GeoPoint.hpp:52
ad::map::point::GeoPoint::GeoPoint
GeoPoint()=default
standard constructor
ad::map::point::GeoPoint::operator!=
bool operator!=(const GeoPoint &other) const
standard comparison operator
Definition: GeoPoint.hpp:116
ad::map::point::GeoPoint::altitude
::ad::map::point::Altitude altitude
Definition: GeoPoint.hpp:134
ad::map::point::GeoPoint::~GeoPoint
~GeoPoint()=default
standard destructor
ad::map::point::Latitude
DataType Latitude.
Definition: Latitude.hpp:65
ad::map::point::Altitude
DataType Altitude.
Definition: Altitude.hpp:67
ad::map::point::Longitude
DataType Longitude.
Definition: Longitude.hpp:65
Longitude.hpp
ad::map::point::GeoPoint::operator==
bool operator==(const GeoPoint &other) const
standard comparison operator
Definition: GeoPoint.hpp:104
ad::map::point::GeoPoint::ConstPtr
std::shared_ptr< GeoPoint const > ConstPtr
Smart pointer on constant GeoPoint.
Definition: GeoPoint.hpp:57