ad_rss_map_integration
RssObjectData.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 <chrono>
21 #include <iostream>
22 #include <limits>
23 #include <memory>
24 #include <sstream>
25 #include "ad/map/match/Object.hpp"
26 #include "ad/physics/Angle.hpp"
27 #include "ad/physics/AngularVelocity.hpp"
28 #include "ad/physics/SpeedRange.hpp"
30 #include "ad/rss/world/ObjectId.hpp"
31 #include "ad/rss/world/ObjectType.hpp"
32 #include "ad/rss/world/RssDynamics.hpp"
36 namespace ad {
40 namespace rss {
44 namespace map {
45 
52 {
56  typedef std::shared_ptr<RssObjectData> Ptr;
57 
61  typedef std::shared_ptr<RssObjectData const> ConstPtr;
62 
66  RssObjectData() = default;
67 
71  ~RssObjectData() = default;
72 
76  RssObjectData(const RssObjectData &other) = default;
77 
81  RssObjectData(RssObjectData &&other) = default;
82 
90  RssObjectData &operator=(const RssObjectData &other) = default;
91 
99  RssObjectData &operator=(RssObjectData &&other) = default;
100 
108  bool operator==(const RssObjectData &other) const
109  {
110  return (last_update == other.last_update) && (id == other.id) && (type == other.type)
111  && (match_object == other.match_object) && (speed_range == other.speed_range) && (yaw_rate == other.yaw_rate)
112  && (steering_angle == other.steering_angle) && (rss_dynamics == other.rss_dynamics);
113  }
114 
122  bool operator!=(const RssObjectData &other) const
123  {
124  return !operator==(other);
125  }
126 
130  std::chrono::system_clock::time_point last_update;
131 
135  ::ad::rss::world::ObjectId id{0};
136 
140  ::ad::rss::world::ObjectType type{::ad::rss::world::ObjectType::Invalid};
141 
145  ::ad::map::match::Object match_object;
146 
151  ::ad::physics::SpeedRange speed_range;
152 
156  ::ad::physics::AngularVelocity yaw_rate;
157 
161  ::ad::physics::Angle steering_angle;
162 
166  ::ad::rss::world::RssDynamics rss_dynamics;
167 };
168 
169 } // namespace map
170 } // namespace rss
171 } // namespace ad
172 
176 #ifndef GEN_GUARD_AD_RSS_MAP_RSSOBJECTDATA
177 #define GEN_GUARD_AD_RSS_MAP_RSSOBJECTDATA
181 namespace ad {
185 namespace rss {
189 namespace map {
190 
200 inline std::ostream &operator<<(std::ostream &os, RssObjectData const &_value)
201 {
202  os << "RssObjectData(";
203  os << "last_update:";
204  os << _value.last_update;
205  os << ",";
206  os << "id:";
207  os << _value.id;
208  os << ",";
209  os << "type:";
210  os << _value.type;
211  os << ",";
212  os << "match_object:";
213  os << _value.match_object;
214  os << ",";
215  os << "speed_range:";
216  os << _value.speed_range;
217  os << ",";
218  os << "yaw_rate:";
219  os << _value.yaw_rate;
220  os << ",";
221  os << "steering_angle:";
222  os << _value.steering_angle;
223  os << ",";
224  os << "rss_dynamics:";
225  os << _value.rss_dynamics;
226  os << ")";
227  return os;
228 }
229 
230 } // namespace map
231 } // namespace rss
232 } // namespace ad
233 
234 namespace std {
238 inline std::string to_string(::ad::rss::map::RssObjectData const &value)
239 {
240  stringstream sstream;
241  sstream << value;
242  return sstream.str();
243 }
244 } // namespace std
245 
249 template <> struct fmt::formatter<::ad::rss::map::RssObjectData> : formatter<string_view>
250 {
251  template <typename FormatContext> auto format(::ad::rss::map::RssObjectData const &value, FormatContext &ctx)
252  {
253  return formatter<string_view>::format(std::to_string(value), ctx);
254  }
255 };
256 
257 #endif // GEN_GUARD_AD_RSS_MAP_RSSOBJECTDATA
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 RssObjectData.
Definition: RssObjectData.hpp:52
bool operator==(const RssObjectData &other) const
standard comparison operator
Definition: RssObjectData.hpp:108
RssObjectData()=default
standard constructor
RssObjectData(RssObjectData &&other)=default
standard move constructor
RssObjectData & operator=(RssObjectData &&other)=default
standard move operator
::ad::rss::world::ObjectId id
Definition: RssObjectData.hpp:135
::ad::map::match::Object match_object
Definition: RssObjectData.hpp:145
::ad::physics::AngularVelocity yaw_rate
Definition: RssObjectData.hpp:156
::ad::physics::Angle steering_angle
Definition: RssObjectData.hpp:161
bool operator!=(const RssObjectData &other) const
standard comparison operator
Definition: RssObjectData.hpp:122
RssObjectData & operator=(const RssObjectData &other)=default
standard assignment operator
std::shared_ptr< RssObjectData const > ConstPtr
Smart pointer on constant RssObjectData.
Definition: RssObjectData.hpp:61
std::shared_ptr< RssObjectData > Ptr
Smart pointer on RssObjectData.
Definition: RssObjectData.hpp:56
::ad::rss::world::ObjectType type
Definition: RssObjectData.hpp:140
RssObjectData(const RssObjectData &other)=default
standard copy constructor
std::chrono::system_clock::time_point last_update
Definition: RssObjectData.hpp:130
::ad::rss::world::RssDynamics rss_dynamics
Definition: RssObjectData.hpp:166
~RssObjectData()=default
standard destructor
::ad::physics::SpeedRange speed_range
Definition: RssObjectData.hpp:151