ad_rss_map_integration
RssObjectDataOnRoute.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/point/ENUHeading.hpp"
25 #include "ad/map/point/ENUPoint.hpp"
26 #include "ad/physics/Angle.hpp"
27 #include "ad/physics/Distance.hpp"
28 #include "ad/physics/Speed.hpp"
32 namespace ad {
36 namespace rss {
40 namespace map {
41 
50 {
54  typedef std::shared_ptr<RssObjectDataOnRoute> Ptr;
55 
59  typedef std::shared_ptr<RssObjectDataOnRoute const> ConstPtr;
60 
64  RssObjectDataOnRoute() = default;
65 
69  ~RssObjectDataOnRoute() = default;
70 
74  RssObjectDataOnRoute(const RssObjectDataOnRoute &other) = default;
75 
80 
89 
98 
106  bool operator==(const RssObjectDataOnRoute &other) const
107  {
108  return (route_heading == other.route_heading) && (route_radius == other.route_radius)
124  }
125 
133  bool operator!=(const RssObjectDataOnRoute &other) const
134  {
135  return !operator==(other);
136  }
137 
141  ::ad::map::point::ENUHeading route_heading{6.28318530718};
142 
146  ::ad::physics::Distance route_radius;
147 
151  ::ad::physics::Angle route_heading_delta{0.0};
152 
156  ::ad::physics::Speed route_speed_lat;
157 
163  ::ad::physics::Speed route_speed_lon;
164 
169 
173  bool object_within_route{false};
174 
178  ::ad::map::point::ENUPoint object_center_position_projected_on_route;
179 
183  bool is_valid{false};
184 
188  ::ad::physics::Distance object_center_distance_to_route{0.0};
189 
197 
205  ::ad::physics::Distance object_center_distance_along_route{0.0};
206 
212 
216  ::ad::map::point::ENUPoint object_route_section_front_left;
217 
221  ::ad::map::point::ENUPoint object_route_section_front_right;
222 
226  ::ad::map::point::ENUPoint object_route_section_back_left;
227 
231  ::ad::map::point::ENUPoint object_route_section_back_right;
232 
236  ::ad::map::point::ENUPoint object_turning_center;
237 };
238 
239 } // namespace map
240 } // namespace rss
241 } // namespace ad
242 
246 #ifndef GEN_GUARD_AD_RSS_MAP_RSSOBJECTDATAONROUTE
247 #define GEN_GUARD_AD_RSS_MAP_RSSOBJECTDATAONROUTE
251 namespace ad {
255 namespace rss {
259 namespace map {
260 
270 inline std::ostream &operator<<(std::ostream &os, RssObjectDataOnRoute const &_value)
271 {
272  os << "RssObjectDataOnRoute(";
273  os << "route_heading:";
274  os << _value.route_heading;
275  os << ",";
276  os << "route_radius:";
277  os << _value.route_radius;
278  os << ",";
279  os << "route_heading_delta:";
280  os << _value.route_heading_delta;
281  os << ",";
282  os << "route_speed_lat:";
283  os << _value.route_speed_lat;
284  os << ",";
285  os << "route_speed_lon:";
286  os << _value.route_speed_lon;
287  os << ",";
288  os << "object_center_within_route:";
289  os << _value.object_center_within_route;
290  os << ",";
291  os << "object_within_route:";
292  os << _value.object_within_route;
293  os << ",";
294  os << "object_center_position_projected_on_route:";
296  os << ",";
297  os << "is_valid:";
298  os << _value.is_valid;
299  os << ",";
300  os << "object_center_distance_to_route:";
301  os << _value.object_center_distance_to_route;
302  os << ",";
303  os << "object_center_position_projected_on_lane_in_nominal_route_direction:";
305  os << ",";
306  os << "object_center_distance_along_route:";
308  os << ",";
309  os << "nominal_center_position_of_lane_in_nominal_route_direction:";
311  os << ",";
312  os << "object_route_section_front_left:";
313  os << _value.object_route_section_front_left;
314  os << ",";
315  os << "object_route_section_front_right:";
317  os << ",";
318  os << "object_route_section_back_left:";
319  os << _value.object_route_section_back_left;
320  os << ",";
321  os << "object_route_section_back_right:";
322  os << _value.object_route_section_back_right;
323  os << ",";
324  os << "object_turning_center:";
325  os << _value.object_turning_center;
326  os << ")";
327  return os;
328 }
329 
330 } // namespace map
331 } // namespace rss
332 } // namespace ad
333 
334 namespace std {
338 inline std::string to_string(::ad::rss::map::RssObjectDataOnRoute const &value)
339 {
340  stringstream sstream;
341  sstream << value;
342  return sstream.str();
343 }
344 } // namespace std
345 
349 template <> struct fmt::formatter<::ad::rss::map::RssObjectDataOnRoute> : formatter<string_view>
350 {
351  template <typename FormatContext> auto format(::ad::rss::map::RssObjectDataOnRoute const &value, FormatContext &ctx)
352  {
353  return formatter<string_view>::format(std::to_string(value), ctx);
354  }
355 };
356 
357 #endif // GEN_GUARD_AD_RSS_MAP_RSSOBJECTDATAONROUTE
std::string to_string(::ad::rss::map::RouteAccelerations const &value)
overload of the std::to_string for RouteAccelerations
Definition: RouteAccelerations.hpp:229
std::ostream & operator<<(std::ostream &os, RouteAccelerations const &_value)
standard ostream operator
Definition: RouteAccelerations.hpp:194
namespace ad
Definition: RouteAccelerations.hpp:33
DataType RssObjectDataOnRoute.
Definition: RssObjectDataOnRoute.hpp:50
RssObjectDataOnRoute(const RssObjectDataOnRoute &other)=default
standard copy constructor
std::shared_ptr< RssObjectDataOnRoute > Ptr
Smart pointer on RssObjectDataOnRoute.
Definition: RssObjectDataOnRoute.hpp:54
::ad::map::point::ENUPoint object_center_position_projected_on_lane_in_nominal_route_direction
Definition: RssObjectDataOnRoute.hpp:196
::ad::map::point::ENUPoint object_route_section_front_right
Definition: RssObjectDataOnRoute.hpp:221
::ad::physics::Angle route_heading_delta
Definition: RssObjectDataOnRoute.hpp:151
~RssObjectDataOnRoute()=default
standard destructor
RssObjectDataOnRoute()=default
standard constructor
::ad::map::point::ENUPoint object_center_position_projected_on_route
Definition: RssObjectDataOnRoute.hpp:178
::ad::physics::Distance object_center_distance_along_route
Definition: RssObjectDataOnRoute.hpp:205
::ad::map::point::ENUPoint nominal_center_position_of_lane_in_nominal_route_direction
Definition: RssObjectDataOnRoute.hpp:211
bool object_within_route
Definition: RssObjectDataOnRoute.hpp:173
::ad::map::point::ENUPoint object_route_section_back_left
Definition: RssObjectDataOnRoute.hpp:226
::ad::physics::Distance route_radius
Definition: RssObjectDataOnRoute.hpp:146
::ad::map::point::ENUPoint object_turning_center
Definition: RssObjectDataOnRoute.hpp:236
RssObjectDataOnRoute(RssObjectDataOnRoute &&other)=default
standard move constructor
std::shared_ptr< RssObjectDataOnRoute const > ConstPtr
Smart pointer on constant RssObjectDataOnRoute.
Definition: RssObjectDataOnRoute.hpp:59
::ad::physics::Distance object_center_distance_to_route
Definition: RssObjectDataOnRoute.hpp:188
RssObjectDataOnRoute & operator=(RssObjectDataOnRoute &&other)=default
standard move operator
::ad::physics::Speed route_speed_lon
Definition: RssObjectDataOnRoute.hpp:163
::ad::map::point::ENUPoint object_route_section_back_right
Definition: RssObjectDataOnRoute.hpp:231
bool object_center_within_route
Definition: RssObjectDataOnRoute.hpp:168
bool operator!=(const RssObjectDataOnRoute &other) const
standard comparison operator
Definition: RssObjectDataOnRoute.hpp:133
::ad::map::point::ENUHeading route_heading
Definition: RssObjectDataOnRoute.hpp:141
bool operator==(const RssObjectDataOnRoute &other) const
standard comparison operator
Definition: RssObjectDataOnRoute.hpp:106
::ad::physics::Speed route_speed_lat
Definition: RssObjectDataOnRoute.hpp:156
bool is_valid
Definition: RssObjectDataOnRoute.hpp:183
RssObjectDataOnRoute & operator=(const RssObjectDataOnRoute &other)=default
standard assignment operator
::ad::map::point::ENUPoint object_route_section_front_left
Definition: RssObjectDataOnRoute.hpp:216