ad_map_access
Landmark.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>
24 #include <string>
34 namespace ad {
38 namespace map {
44 namespace landmark {
45 
51 struct Landmark
52 {
56  typedef std::shared_ptr<Landmark> Ptr;
57 
61  typedef std::shared_ptr<Landmark const> ConstPtr;
62 
66  Landmark() = default;
67 
71  ~Landmark() = default;
72 
76  Landmark(const Landmark &other) = default;
77 
81  Landmark(Landmark &&other) = default;
82 
90  Landmark &operator=(const Landmark &other) = default;
91 
99  Landmark &operator=(Landmark &&other) = default;
100 
108  bool operator==(const Landmark &other) const
109  {
110  return (id == other.id) && (type == other.type) && (position == other.position)
111  && (orientation == other.orientation) && (boundingBox == other.boundingBox)
113  && (trafficSignType == other.trafficSignType);
114  }
115 
123  bool operator!=(const Landmark &other) const
124  {
125  return !operator==(other);
126  }
127 
132 
137 
142 
147  ::ad::map::point::Geometry boundingBox;
148 
152  std::string supplementaryText;
153 
158 
163 };
164 
165 } // namespace landmark
166 } // namespace map
167 } // namespace ad
168 
172 #ifndef GEN_GUARD_AD_MAP_LANDMARK_LANDMARK
173 #define GEN_GUARD_AD_MAP_LANDMARK_LANDMARK
174 
177 namespace ad {
181 namespace map {
187 namespace landmark {
188 
198 inline std::ostream &operator<<(std::ostream &os, Landmark const &_value)
199 {
200  os << "Landmark(";
201  os << "id:";
202  os << _value.id;
203  os << ",";
204  os << "type:";
205  os << _value.type;
206  os << ",";
207  os << "position:";
208  os << _value.position;
209  os << ",";
210  os << "orientation:";
211  os << _value.orientation;
212  os << ",";
213  os << "boundingBox:";
214  os << _value.boundingBox;
215  os << ",";
216  os << "supplementaryText:";
217  os << _value.supplementaryText;
218  os << ",";
219  os << "trafficLightType:";
220  os << _value.trafficLightType;
221  os << ",";
222  os << "trafficSignType:";
223  os << _value.trafficSignType;
224  os << ")";
225  return os;
226 }
227 
228 } // namespace landmark
229 } // namespace map
230 } // namespace ad
231 
232 namespace std {
236 inline std::string to_string(::ad::map::landmark::Landmark const &value)
237 {
238  stringstream sstream;
239  sstream << value;
240  return sstream.str();
241 }
242 } // namespace std
243 #endif // GEN_GUARD_AD_MAP_LANDMARK_LANDMARK
ad
namespace ad
Definition: GeometryStoreItem.hpp:28
ad::map::landmark::Landmark::type
::ad::map::landmark::LandmarkType type
Definition: Landmark.hpp:136
ad::map::landmark::operator<<
std::ostream & operator<<(std::ostream &os, ENULandmark const &_value)
standard ostream operator
Definition: ENULandmark.hpp:179
ECEFPoint.hpp
ad::map::landmark::Landmark
DataType Landmark.
Definition: Landmark.hpp:51
ad::map::landmark::LandmarkId
DataType LandmarkId.
Definition: LandmarkId.hpp:66
ad::map::landmark::Landmark::operator==
bool operator==(const Landmark &other) const
standard comparison operator
Definition: Landmark.hpp:108
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
TrafficSignType.hpp
ad::map::landmark::LandmarkType::INVALID
@ INVALID
ad::map::landmark::Landmark::Ptr
std::shared_ptr< Landmark > Ptr
Smart pointer on Landmark.
Definition: Landmark.hpp:56
ad::map::landmark::TrafficSignType
TrafficSignType
DataType TrafficSignType.
Definition: TrafficSignType.hpp:43
ad::map::landmark::Landmark::trafficLightType
::ad::map::landmark::TrafficLightType trafficLightType
Definition: Landmark.hpp:157
ad::map::landmark::TrafficLightType
TrafficLightType
DataType TrafficLightType.
Definition: TrafficLightType.hpp:43
ad::map::landmark::Landmark::orientation
::ad::map::point::ECEFPoint orientation
Definition: Landmark.hpp:146
Geometry.hpp
ad::map::landmark::Landmark::~Landmark
~Landmark()=default
standard destructor
ad::map::landmark::Landmark::Landmark
Landmark()=default
standard constructor
ad::map::landmark::Landmark::operator=
Landmark & operator=(const Landmark &other)=default
standard assignment operator
ad::map::landmark::Landmark::ConstPtr
std::shared_ptr< Landmark const > ConstPtr
Smart pointer on constant Landmark.
Definition: Landmark.hpp:61
ad::map::landmark::Landmark::trafficSignType
::ad::map::landmark::TrafficSignType trafficSignType
Definition: Landmark.hpp:162
LandmarkId.hpp
ad::map::landmark::Landmark::operator!=
bool operator!=(const Landmark &other) const
standard comparison operator
Definition: Landmark.hpp:123
ad::map::point::Geometry
DataType Geometry.
Definition: Geometry.hpp:45
ad::map::point::ECEFPoint
DataType ECEFPoint.
Definition: ECEFPoint.hpp:45
ad::map::landmark::LandmarkType
LandmarkType
DataType LandmarkType.
Definition: LandmarkType.hpp:43
ad::map::landmark::Landmark::position
::ad::map::point::ECEFPoint position
Definition: Landmark.hpp:141
TrafficLightType.hpp
LandmarkType.hpp
ad::map::landmark::Landmark::id
::ad::map::landmark::LandmarkId id
Definition: Landmark.hpp:131
ad::map::landmark::Landmark::supplementaryText
std::string supplementaryText
Definition: Landmark.hpp:152