ad_rss_map_integration
RouteAccelerations.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/physics/Acceleration.hpp"
26 #include "ad/physics/Angle.hpp"
27 #include "ad/physics/Distance.hpp"
28 #include "ad/physics/Speed.hpp"
33 namespace ad {
37 namespace rss {
41 namespace map {
42 
49 {
53  typedef std::shared_ptr<RouteAccelerations> Ptr;
54 
58  typedef std::shared_ptr<RouteAccelerations const> ConstPtr;
59 
63  RouteAccelerations() = default;
64 
68  ~RouteAccelerations() = default;
69 
73  RouteAccelerations(const RouteAccelerations &other) = default;
74 
79 
88 
97 
105  bool operator==(const RouteAccelerations &other) const
106  {
107  return (route_id == other.route_id) && (route_heading == other.route_heading)
108  && (route_radius == other.route_radius) && (route_speed_lon == other.route_speed_lon)
111  }
112 
120  bool operator!=(const RouteAccelerations &other) const
121  {
122  return !operator==(other);
123  }
124 
129 
133  ::ad::map::point::ENUHeading route_heading{6.28318530718};
134 
138  ::ad::physics::Distance route_radius;
139 
145  ::ad::physics::Speed route_speed_lon;
146 
150  ::ad::physics::Speed route_speed_lat;
151 
155  ::ad::physics::Angle route_heading_delta{0.0};
156 
160  ::ad::physics::Acceleration route_centripetal_acceleration;
161 };
162 
163 } // namespace map
164 } // namespace rss
165 } // namespace ad
166 
170 #ifndef GEN_GUARD_AD_RSS_MAP_ROUTEACCELERATIONS
171 #define GEN_GUARD_AD_RSS_MAP_ROUTEACCELERATIONS
175 namespace ad {
179 namespace rss {
183 namespace map {
184 
194 inline std::ostream &operator<<(std::ostream &os, RouteAccelerations const &_value)
195 {
196  os << "RouteAccelerations(";
197  os << "route_id:";
198  os << _value.route_id;
199  os << ",";
200  os << "route_heading:";
201  os << _value.route_heading;
202  os << ",";
203  os << "route_radius:";
204  os << _value.route_radius;
205  os << ",";
206  os << "route_speed_lon:";
207  os << _value.route_speed_lon;
208  os << ",";
209  os << "route_speed_lat:";
210  os << _value.route_speed_lat;
211  os << ",";
212  os << "route_heading_delta:";
213  os << _value.route_heading_delta;
214  os << ",";
215  os << "route_centripetal_acceleration:";
216  os << _value.route_centripetal_acceleration;
217  os << ")";
218  return os;
219 }
220 
221 } // namespace map
222 } // namespace rss
223 } // namespace ad
224 
225 namespace std {
229 inline std::string to_string(::ad::rss::map::RouteAccelerations const &value)
230 {
231  stringstream sstream;
232  sstream << value;
233  return sstream.str();
234 }
235 } // namespace std
236 
240 template <> struct fmt::formatter<::ad::rss::map::RouteAccelerations> : formatter<string_view>
241 {
242  template <typename FormatContext> auto format(::ad::rss::map::RouteAccelerations const &value, FormatContext &ctx)
243  {
244  return formatter<string_view>::format(std::to_string(value), ctx);
245  }
246 };
247 
248 #endif // GEN_GUARD_AD_RSS_MAP_ROUTEACCELERATIONS
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 RouteAccelerations.
Definition: RouteAccelerations.hpp:49
bool operator!=(const RouteAccelerations &other) const
standard comparison operator
Definition: RouteAccelerations.hpp:120
RouteAccelerations & operator=(RouteAccelerations &&other)=default
standard move operator
::ad::rss::map::RssRouteId route_id
Definition: RouteAccelerations.hpp:128
::ad::physics::Angle route_heading_delta
Definition: RouteAccelerations.hpp:155
::ad::physics::Acceleration route_centripetal_acceleration
Definition: RouteAccelerations.hpp:160
~RouteAccelerations()=default
standard destructor
std::shared_ptr< RouteAccelerations const > ConstPtr
Smart pointer on constant RouteAccelerations.
Definition: RouteAccelerations.hpp:58
::ad::physics::Speed route_speed_lat
Definition: RouteAccelerations.hpp:150
std::shared_ptr< RouteAccelerations > Ptr
Smart pointer on RouteAccelerations.
Definition: RouteAccelerations.hpp:53
RouteAccelerations()=default
standard constructor
::ad::physics::Distance route_radius
Definition: RouteAccelerations.hpp:138
::ad::physics::Speed route_speed_lon
Definition: RouteAccelerations.hpp:145
RouteAccelerations(const RouteAccelerations &other)=default
standard copy constructor
::ad::map::point::ENUHeading route_heading
Definition: RouteAccelerations.hpp:133
RouteAccelerations(RouteAccelerations &&other)=default
standard move constructor
bool operator==(const RouteAccelerations &other) const
standard comparison operator
Definition: RouteAccelerations.hpp:105
RouteAccelerations & operator=(const RouteAccelerations &other)=default
standard assignment operator