ad_rss_map_integration
RssRoute.hpp
Go to the documentation of this file.
1 /*
2  * ----------------- BEGIN LICENSE BLOCK ---------------------------------
3  *
4  * Copyright (C) 2018-2022 Intel Corporation
5  *
6  * SPDX-License-Identifier: LGPL-2.1-only
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/route/FullRoute.hpp"
25 #include "ad/physics/Distance.hpp"
26 #include "ad/physics/Probability.hpp"
33 namespace ad {
37 namespace rss {
41 namespace map {
42 
48 struct RssRoute
49 {
53  typedef std::shared_ptr<RssRoute> Ptr;
54 
58  typedef std::shared_ptr<RssRoute const> ConstPtr;
59 
63  RssRoute() = default;
64 
68  ~RssRoute() = default;
69 
73  RssRoute(const RssRoute &other) = default;
74 
78  RssRoute(RssRoute &&other) = default;
79 
87  RssRoute &operator=(const RssRoute &other) = default;
88 
96  RssRoute &operator=(RssRoute &&other) = default;
97 
105  bool operator==(const RssRoute &other) const
106  {
107  return (route_id == other.route_id) && (route == other.route) && (likelihood == other.likelihood)
110  }
111 
119  bool operator!=(const RssRoute &other) const
120  {
121  return !operator==(other);
122  }
123 
128 
132  ::ad::map::route::FullRoute route;
133 
137  ::ad::physics::Probability likelihood{0.0};
138 
143 
149 
153  ::ad::physics::Distance progress_on_route;
154 
159 };
160 
161 } // namespace map
162 } // namespace rss
163 } // namespace ad
164 
168 #ifndef GEN_GUARD_AD_RSS_MAP_RSSROUTE
169 #define GEN_GUARD_AD_RSS_MAP_RSSROUTE
173 namespace ad {
177 namespace rss {
181 namespace map {
182 
192 inline std::ostream &operator<<(std::ostream &os, RssRoute const &_value)
193 {
194  os << "RssRoute(";
195  os << "route_id:";
196  os << _value.route_id;
197  os << ",";
198  os << "route:";
199  os << _value.route;
200  os << ",";
201  os << "likelihood:";
202  os << _value.likelihood;
203  os << ",";
204  os << "vehicle_dynamics_on_route:";
205  os << _value.vehicle_dynamics_on_route;
206  os << ",";
207  os << "parent_route_id:";
208  os << _value.parent_route_id;
209  os << ",";
210  os << "progress_on_route:";
211  os << _value.progress_on_route;
212  os << ",";
213  os << "object_data_on_route:";
214  os << _value.object_data_on_route;
215  os << ")";
216  return os;
217 }
218 
219 } // namespace map
220 } // namespace rss
221 } // namespace ad
222 
223 namespace std {
227 inline std::string to_string(::ad::rss::map::RssRoute const &value)
228 {
229  stringstream sstream;
230  sstream << value;
231  return sstream.str();
232 }
233 } // namespace std
234 
238 template <> struct fmt::formatter<::ad::rss::map::RssRoute> : formatter<string_view>
239 {
240  template <typename FormatContext> auto format(::ad::rss::map::RssRoute const &value, FormatContext &ctx)
241  {
242  return formatter<string_view>::format(std::to_string(value), ctx);
243  }
244 };
245 
246 #endif // GEN_GUARD_AD_RSS_MAP_RSSROUTE
std::string to_string(::ad::rss::map::RouteAccelerations const &value)
overload of the std::to_string for RouteAccelerations
Definition: RouteAccelerations.hpp:229
uint64_t RssRouteId
DataType RssRouteId.
Definition: RssRouteId.hpp:39
std::ostream & operator<<(std::ostream &os, RouteAccelerations const &_value)
standard ostream operator
Definition: RouteAccelerations.hpp:194
namespace ad
Definition: RouteAccelerations.hpp:33
DataType RssEgoVehicleDynamicsOnRoute.
Definition: RssEgoVehicleDynamicsOnRoute.hpp:46
DataType RssObjectDataOnRoute.
Definition: RssObjectDataOnRoute.hpp:50
DataType RssRoute.
Definition: RssRoute.hpp:49
::ad::rss::map::RssRouteId route_id
Definition: RssRoute.hpp:127
~RssRoute()=default
standard destructor
::ad::map::route::FullRoute route
Definition: RssRoute.hpp:132
RssRoute()=default
standard constructor
RssRoute(const RssRoute &other)=default
standard copy constructor
bool operator==(const RssRoute &other) const
standard comparison operator
Definition: RssRoute.hpp:105
std::shared_ptr< RssRoute const > ConstPtr
Smart pointer on constant RssRoute.
Definition: RssRoute.hpp:58
::ad::rss::map::RssObjectDataOnRoute object_data_on_route
Definition: RssRoute.hpp:158
::ad::rss::map::RssEgoVehicleDynamicsOnRoute vehicle_dynamics_on_route
Definition: RssRoute.hpp:142
::ad::physics::Distance progress_on_route
Definition: RssRoute.hpp:153
std::shared_ptr< RssRoute > Ptr
Smart pointer on RssRoute.
Definition: RssRoute.hpp:53
RssRoute & operator=(RssRoute &&other)=default
standard move operator
RssRoute(RssRoute &&other)=default
standard move constructor
::ad::rss::map::RssRouteId parent_route_id
Definition: RssRoute.hpp:148
RssRoute & operator=(const RssRoute &other)=default
standard assignment operator
::ad::physics::Probability likelihood
Definition: RssRoute.hpp:137
bool operator!=(const RssRoute &other) const
standard comparison operator
Definition: RssRoute.hpp:119