ad_map_access
LaneSegment.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"
31 namespace ad {
35 namespace map {
41 namespace route {
42 
54 {
58  typedef std::shared_ptr<LaneSegment> Ptr;
59 
63  typedef std::shared_ptr<LaneSegment const> ConstPtr;
64 
68  LaneSegment() = default;
69 
73  ~LaneSegment() = default;
74 
78  LaneSegment(const LaneSegment &other) = default;
79 
83  LaneSegment(LaneSegment &&other) = default;
84 
92  LaneSegment &operator=(const LaneSegment &other) = default;
93 
101  LaneSegment &operator=(LaneSegment &&other) = default;
102 
110  bool operator==(const LaneSegment &other) const
111  {
112  return (leftNeighbor == other.leftNeighbor) && (rightNeighbor == other.rightNeighbor)
113  && (predecessors == other.predecessors) && (successors == other.successors)
114  && (laneInterval == other.laneInterval) && (routeLaneOffset == other.routeLaneOffset);
115  }
116 
124  bool operator!=(const LaneSegment &other) const
125  {
126  return !operator==(other);
127  }
128 
133 
138 
143 
148 
153 
158 };
159 
160 } // namespace route
161 } // namespace map
162 } // namespace ad
163 
167 #ifndef GEN_GUARD_AD_MAP_ROUTE_LANESEGMENT
168 #define GEN_GUARD_AD_MAP_ROUTE_LANESEGMENT
169 
172 namespace ad {
176 namespace map {
182 namespace route {
183 
193 inline std::ostream &operator<<(std::ostream &os, LaneSegment const &_value)
194 {
195  os << "LaneSegment(";
196  os << "leftNeighbor:";
197  os << _value.leftNeighbor;
198  os << ",";
199  os << "rightNeighbor:";
200  os << _value.rightNeighbor;
201  os << ",";
202  os << "predecessors:";
203  os << _value.predecessors;
204  os << ",";
205  os << "successors:";
206  os << _value.successors;
207  os << ",";
208  os << "laneInterval:";
209  os << _value.laneInterval;
210  os << ",";
211  os << "routeLaneOffset:";
212  os << _value.routeLaneOffset;
213  os << ")";
214  return os;
215 }
216 
217 } // namespace route
218 } // namespace map
219 } // namespace ad
220 
221 namespace std {
225 inline std::string to_string(::ad::map::route::LaneSegment const &value)
226 {
227  stringstream sstream;
228  sstream << value;
229  return sstream.str();
230 }
231 } // namespace std
232 #endif // GEN_GUARD_AD_MAP_ROUTE_LANESEGMENT
ad
namespace ad
Definition: GeometryStoreItem.hpp:28
ad::map::route::LaneSegment::leftNeighbor
::ad::map::lane::LaneId leftNeighbor
Definition: LaneSegment.hpp:132
ad::map::route::LaneSegment::rightNeighbor
::ad::map::lane::LaneId rightNeighbor
Definition: LaneSegment.hpp:137
ad::map::route::LaneSegment::predecessors
::ad::map::lane::LaneIdList predecessors
Definition: LaneSegment.hpp:142
ad::map::route::LaneSegment
DataType LaneSegment.
Definition: LaneSegment.hpp:53
ad::map::lane::LaneIdList
std::vector<::ad::map::lane::LaneId > LaneIdList
DataType LaneIdList.
Definition: LaneIdList.hpp:44
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::route::LaneSegment::successors
::ad::map::lane::LaneIdList successors
Definition: LaneSegment.hpp:147
RouteLaneOffset.hpp
ad::map::lane::LaneId
DataType LaneId.
Definition: LaneId.hpp:66
LaneId.hpp
ad::map::route::LaneSegment::operator==
bool operator==(const LaneSegment &other) const
standard comparison operator
Definition: LaneSegment.hpp:110
ad::map::route::LaneSegment::operator!=
bool operator!=(const LaneSegment &other) const
standard comparison operator
Definition: LaneSegment.hpp:124
ad::map::route::LaneSegment::laneInterval
::ad::map::route::LaneInterval laneInterval
Definition: LaneSegment.hpp:152
ad::map::route::operator<<
std::ostream & operator<<(std::ostream &os, ConnectingRoute const &_value)
standard ostream operator
Definition: ConnectingRoute.hpp:193
ad::map::route::LaneSegment::~LaneSegment
~LaneSegment()=default
standard destructor
ad::map::route::LaneSegment::LaneSegment
LaneSegment()=default
standard constructor
LaneIdList.hpp
ad::map::route::LaneSegment::operator=
LaneSegment & operator=(const LaneSegment &other)=default
standard assignment operator
ad::map::route::LaneSegment::ConstPtr
std::shared_ptr< LaneSegment const > ConstPtr
Smart pointer on constant LaneSegment.
Definition: LaneSegment.hpp:63
LaneInterval.hpp
ad::map::route::LaneInterval
DataType LaneInterval.
Definition: LaneInterval.hpp:51
ad::map::route::LaneSegment::routeLaneOffset
::ad::map::route::RouteLaneOffset routeLaneOffset
Definition: LaneSegment.hpp:157
ad::map::route::RouteLaneOffset
int32_t RouteLaneOffset
DataType RouteLaneOffset.
Definition: RouteLaneOffset.hpp:41
ad::map::route::LaneSegment::Ptr
std::shared_ptr< LaneSegment > Ptr
Smart pointer on LaneSegment.
Definition: LaneSegment.hpp:58