ad_rss
RssDynamics.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/physics/Distance.hpp"
25 #include "ad/physics/Duration.hpp"
26 #include "ad/physics/Speed.hpp"
33 namespace ad {
37 namespace rss {
41 namespace world {
42 
51 {
55  typedef std::shared_ptr<RssDynamics> Ptr;
56 
60  typedef std::shared_ptr<RssDynamics const> ConstPtr;
61 
65  RssDynamics() = default;
66 
70  ~RssDynamics() = default;
71 
75  RssDynamics(const RssDynamics &other) = default;
76 
80  RssDynamics(RssDynamics &&other) = default;
81 
89  RssDynamics &operator=(const RssDynamics &other) = default;
90 
98  RssDynamics &operator=(RssDynamics &&other) = default;
99 
107  bool operator==(const RssDynamics &other) const
108  {
109  return (alpha_lon == other.alpha_lon) && (alpha_lat == other.alpha_lat)
114  }
115 
123  bool operator!=(const RssDynamics &other) const
124  {
125  return !operator==(other);
126  }
127 
132 
137 
141  ::ad::physics::Distance lateral_fluctuation_margin{0.0};
142 
146  ::ad::physics::Duration response_time;
147 
155  ::ad::physics::Speed max_speed_on_acceleration{100};
156 
161 
172  ::ad::physics::Distance min_longitudinal_safety_distance{0.0};
173 };
174 
175 } // namespace world
176 } // namespace rss
177 } // namespace ad
178 
182 #ifndef GEN_GUARD_AD_RSS_WORLD_RSSDYNAMICS
183 #define GEN_GUARD_AD_RSS_WORLD_RSSDYNAMICS
187 namespace ad {
191 namespace rss {
195 namespace world {
196 
206 inline std::ostream &operator<<(std::ostream &os, RssDynamics const &_value)
207 {
208  os << "RssDynamics(";
209  os << "alpha_lon:";
210  os << _value.alpha_lon;
211  os << ",";
212  os << "alpha_lat:";
213  os << _value.alpha_lat;
214  os << ",";
215  os << "lateral_fluctuation_margin:";
216  os << _value.lateral_fluctuation_margin;
217  os << ",";
218  os << "response_time:";
219  os << _value.response_time;
220  os << ",";
221  os << "max_speed_on_acceleration:";
222  os << _value.max_speed_on_acceleration;
223  os << ",";
224  os << "unstructured_settings:";
225  os << _value.unstructured_settings;
226  os << ",";
227  os << "min_longitudinal_safety_distance:";
229  os << ")";
230  return os;
231 }
232 
233 } // namespace world
234 } // namespace rss
235 } // namespace ad
236 
237 namespace std {
241 inline std::string to_string(::ad::rss::world::RssDynamics const &value)
242 {
243  stringstream sstream;
244  sstream << value;
245  return sstream.str();
246 }
247 } // namespace std
248 
252 template <> struct fmt::formatter<::ad::rss::world::RssDynamics> : formatter<string_view>
253 {
254  template <typename FormatContext> auto format(::ad::rss::world::RssDynamics const &value, FormatContext &ctx)
255  {
256  return formatter<string_view>::format(std::to_string(value), ctx);
257  }
258 };
259 
260 #endif // GEN_GUARD_AD_RSS_WORLD_RSSDYNAMICS
std::string to_string(::ad::rss::core::LateralRelativePosition const &value)
overload of the std::to_string for LateralRelativePosition
Definition: LateralRelativePosition.hpp:162
std::ostream & operator<<(std::ostream &os, Constellation const &_value)
standard ostream operator
Definition: Constellation.hpp:198
namespace ad
Definition: LateralRelativePosition.hpp:28
DataType LateralRssAccelerationValues.
Definition: LateralRssAccelerationValues.hpp:44
DataType LongitudinalRssAccelerationValues.
Definition: LongitudinalRssAccelerationValues.hpp:44
DataType RssDynamics.
Definition: RssDynamics.hpp:51
bool operator!=(const RssDynamics &other) const
standard comparison operator
Definition: RssDynamics.hpp:123
::ad::physics::Speed max_speed_on_acceleration
Definition: RssDynamics.hpp:155
~RssDynamics()=default
standard destructor
RssDynamics & operator=(RssDynamics &&other)=default
standard move operator
bool operator==(const RssDynamics &other) const
standard comparison operator
Definition: RssDynamics.hpp:107
::ad::rss::world::UnstructuredSettings unstructured_settings
Definition: RssDynamics.hpp:160
::ad::physics::Distance lateral_fluctuation_margin
Definition: RssDynamics.hpp:141
RssDynamics()=default
standard constructor
std::shared_ptr< RssDynamics > Ptr
Smart pointer on RssDynamics.
Definition: RssDynamics.hpp:55
::ad::physics::Distance min_longitudinal_safety_distance
Definition: RssDynamics.hpp:172
RssDynamics(const RssDynamics &other)=default
standard copy constructor
::ad::rss::world::LateralRssAccelerationValues alpha_lat
Definition: RssDynamics.hpp:136
::ad::physics::Duration response_time
Definition: RssDynamics.hpp:146
RssDynamics(RssDynamics &&other)=default
standard move constructor
::ad::rss::world::LongitudinalRssAccelerationValues alpha_lon
Definition: RssDynamics.hpp:131
RssDynamics & operator=(const RssDynamics &other)=default
standard assignment operator
std::shared_ptr< RssDynamics const > ConstPtr
Smart pointer on constant RssDynamics.
Definition: RssDynamics.hpp:60
DataType UnstructuredSettings.
Definition: UnstructuredSettings.hpp:48