ad_map_access
LaneInterval.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 "ad/map/lane/LaneId.hpp"
25 #include "ad/physics/ParametricValue.hpp"
29 namespace ad {
33 namespace map {
39 namespace route {
40 
52 {
56  typedef std::shared_ptr<LaneInterval> Ptr;
57 
61  typedef std::shared_ptr<LaneInterval const> ConstPtr;
62 
66  LaneInterval() = default;
67 
71  ~LaneInterval() = default;
72 
76  LaneInterval(const LaneInterval &other) = default;
77 
81  LaneInterval(LaneInterval &&other) = default;
82 
90  LaneInterval &operator=(const LaneInterval &other) = default;
91 
99  LaneInterval &operator=(LaneInterval &&other) = default;
100 
108  bool operator==(const LaneInterval &other) const
109  {
110  return (laneId == other.laneId) && (start == other.start) && (end == other.end) && (wrongWay == other.wrongWay);
111  }
112 
120  bool operator!=(const LaneInterval &other) const
121  {
122  return !operator==(other);
123  }
124 
125  ::ad::map::lane::LaneId laneId{0};
126  ::ad::physics::ParametricValue start;
127  ::ad::physics::ParametricValue end;
128 
132  bool wrongWay{false};
133 };
134 
135 } // namespace route
136 } // namespace map
137 } // namespace ad
138 
142 #ifndef GEN_GUARD_AD_MAP_ROUTE_LANEINTERVAL
143 #define GEN_GUARD_AD_MAP_ROUTE_LANEINTERVAL
144 
147 namespace ad {
151 namespace map {
157 namespace route {
158 
168 inline std::ostream &operator<<(std::ostream &os, LaneInterval const &_value)
169 {
170  os << "LaneInterval(";
171  os << "laneId:";
172  os << _value.laneId;
173  os << ",";
174  os << "start:";
175  os << _value.start;
176  os << ",";
177  os << "end:";
178  os << _value.end;
179  os << ",";
180  os << "wrongWay:";
181  os << _value.wrongWay;
182  os << ")";
183  return os;
184 }
185 
186 } // namespace route
187 } // namespace map
188 } // namespace ad
189 
190 namespace std {
194 inline std::string to_string(::ad::map::route::LaneInterval const &value)
195 {
196  stringstream sstream;
197  sstream << value;
198  return sstream.str();
199 }
200 } // namespace std
201 #endif // GEN_GUARD_AD_MAP_ROUTE_LANEINTERVAL
ad
namespace ad
Definition: GeometryStoreItem.hpp:28
ad::map::route::LaneInterval::~LaneInterval
~LaneInterval()=default
standard destructor
ad::map::route::LaneInterval::ConstPtr
std::shared_ptr< LaneInterval const > ConstPtr
Smart pointer on constant LaneInterval.
Definition: LaneInterval.hpp:61
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::lane::LaneId
DataType LaneId.
Definition: LaneId.hpp:66
LaneId.hpp
ad::map::route::LaneInterval::operator=
LaneInterval & operator=(const LaneInterval &other)=default
standard assignment operator
ad::map::route::operator<<
std::ostream & operator<<(std::ostream &os, ConnectingRoute const &_value)
standard ostream operator
Definition: ConnectingRoute.hpp:193
ad::map::route::LaneInterval::wrongWay
bool wrongWay
Definition: LaneInterval.hpp:132
ad::map::route::LaneInterval::LaneInterval
LaneInterval()=default
standard constructor
ad::map::route::LaneInterval
DataType LaneInterval.
Definition: LaneInterval.hpp:51
ad::map::route::LaneInterval::Ptr
std::shared_ptr< LaneInterval > Ptr
Smart pointer on LaneInterval.
Definition: LaneInterval.hpp:56
ad::map::route::LaneInterval::operator==
bool operator==(const LaneInterval &other) const
standard comparison operator
Definition: LaneInterval.hpp:108
ad::map::route::LaneInterval::operator!=
bool operator!=(const LaneInterval &other) const
standard comparison operator
Definition: LaneInterval.hpp:120