Branch data Line data Source code
1 : : /* 2 : : * ----------------- BEGIN LICENSE BLOCK --------------------------------- 3 : : * 4 : : * Copyright (C) 2018-2020 Intel Corporation 5 : : * 6 : : * SPDX-License-Identifier: LGPL-2.1-only 7 : : * 8 : : * ----------------- END LICENSE BLOCK ----------------------------------- 9 : : */ 10 : : 11 : : /** 12 : : * Generated file 13 : : * @file 14 : : * 15 : : * Generator Version : 11.0.0-1997 16 : : */ 17 : : 18 : : #pragma once 19 : : 20 : : #include <iostream> 21 : : #include <limits> 22 : : #include <memory> 23 : : #include <sstream> 24 : : #include "ad/rss/situation/RelativePosition.hpp" 25 : : #include "ad/rss/situation/SituationId.hpp" 26 : : #include "ad/rss/situation/SituationType.hpp" 27 : : #include "ad/rss/situation/VehicleState.hpp" 28 : : #include "ad/rss/world/ObjectId.hpp" 29 : : /*! 30 : : * @brief namespace ad 31 : : */ 32 : : namespace ad { 33 : : /*! 34 : : * @brief namespace rss 35 : : */ 36 : : namespace rss { 37 : : /*! 38 : : * @brief namespace situation 39 : : */ 40 : : namespace situation { 41 : : 42 : : /*! 43 : : * \brief DataType Situation 44 : : * 45 : : * Describes a RSS situation. 46 : : * A situation always considers the relative relation between two objects: the ego 47 : : * vehicle and one other vehicle. The situation coordinate system is unique for one 48 : : * specific situation. As a consequence the vehicle state of the ego vehicle in different 49 : : * RSS situations cannot be compared to each other. Consists of a situation id and 50 : : * type, the VehicleState of the ego vehicle, the VehicleState of the other vehicle 51 : : * and the RelativePosition between ego vehicle and other vehicle. 52 : : */ 53 : : struct Situation 54 : : { 55 : : /*! 56 : : * \brief Smart pointer on Situation 57 : : */ 58 : : typedef std::shared_ptr<Situation> Ptr; 59 : : 60 : : /*! 61 : : * \brief Smart pointer on constant Situation 62 : : */ 63 : : typedef std::shared_ptr<Situation const> ConstPtr; 64 : : 65 : : /*! 66 : : * \brief standard constructor 67 : : */ 68 : 5151 : Situation() = default; 69 : : 70 : : /*! 71 : : * \brief standard destructor 72 : : */ 73 : : ~Situation() = default; 74 : : 75 : : /*! 76 : : * \brief standard copy constructor 77 : : */ 78 : : Situation(const Situation &other) = default; 79 : : 80 : : /*! 81 : : * \brief standard move constructor 82 : : */ 83 : : Situation(Situation &&other) = default; 84 : : 85 : : /** 86 : : * \brief standard assignment operator 87 : : * 88 : : * \param[in] other Other Situation 89 : : * 90 : : * \returns Reference to this Situation. 91 : : */ 92 : : Situation &operator=(const Situation &other) = default; 93 : : 94 : : /** 95 : : * \brief standard move operator 96 : : * 97 : : * \param[in] other Other Situation 98 : : * 99 : : * \returns Reference to this Situation. 100 : : */ 101 : : Situation &operator=(Situation &&other) = default; 102 : : 103 : : /** 104 : : * \brief standard comparison operator 105 : : * 106 : : * \param[in] other Other Situation 107 : : * 108 : : * \returns \c true if both Situation are equal 109 : : */ 110 : 26 : bool operator==(const Situation &other) const 111 : : { 112 [ + + + + ]: 22 : return (situationId == other.situationId) && (objectId == other.objectId) && (situationType == other.situationType) 113 [ + + + + ]: 18 : && (egoVehicleState == other.egoVehicleState) && (otherVehicleState == other.otherVehicleState) 114 [ + + + + ]: 48 : && (relativePosition == other.relativePosition); 115 : : } 116 : : 117 : : /** 118 : : * \brief standard comparison operator 119 : : * 120 : : * \param[in] other Other Situation. 121 : : * 122 : : * \returns \c true if both Situation are different 123 : : */ 124 : 7 : bool operator!=(const Situation &other) const 125 : : { 126 : 7 : return !operator==(other); 127 : : } 128 : : 129 : : /*! 130 : : * The unique id of the situation. 131 : : * The situation id has to be constant over time for a pair of ego vehicle and specific 132 : : * other vehicle. 133 : : * E.g. might be filled with an id identifying the other vehicle unambiguously. 134 : : */ 135 : : ::ad::rss::situation::SituationId situationId; 136 : : 137 : : /*! 138 : : * Defines the unique id of an object. This id has to be constant over time for the same object. 139 : : */ 140 : : ::ad::rss::world::ObjectId objectId; 141 : : 142 : : /*! 143 : : * The type of the current situation. 144 : : */ 145 : : ::ad::rss::situation::SituationType situationType; 146 : : 147 : : /*! 148 : : * The vehicle state of the ego vehicle 149 : : */ 150 : : ::ad::rss::situation::VehicleState egoVehicleState; 151 : : 152 : : /*! 153 : : * The vehicle state of the other vehicle within the situation. 154 : : */ 155 : : ::ad::rss::situation::VehicleState otherVehicleState; 156 : : 157 : : /*! 158 : : * The relative position between the ego vehicle and the other vehicle within this situation. 159 : : */ 160 : : ::ad::rss::situation::RelativePosition relativePosition; 161 : : }; 162 : : 163 : : } // namespace situation 164 : : } // namespace rss 165 : : } // namespace ad 166 : : 167 : : /*! 168 : : * \brief protect the definition of functions from duplicates by typedef usage within other data types 169 : : */ 170 : : #ifndef GEN_GUARD_AD_RSS_SITUATION_SITUATION 171 : : #define GEN_GUARD_AD_RSS_SITUATION_SITUATION 172 : : /*! 173 : : * @brief namespace ad 174 : : */ 175 : : namespace ad { 176 : : /*! 177 : : * @brief namespace rss 178 : : */ 179 : : namespace rss { 180 : : /*! 181 : : * @brief namespace situation 182 : : */ 183 : : namespace situation { 184 : : 185 : : /** 186 : : * \brief standard ostream operator 187 : : * 188 : : * \param[in] os The output stream to write to 189 : : * \param[in] _value Situation value 190 : : * 191 : : * \returns The stream object. 192 : : * 193 : : */ 194 : 1004070 : inline std::ostream &operator<<(std::ostream &os, Situation const &_value) 195 : : { 196 : 1004070 : os << "Situation("; 197 : 1004070 : os << "situationId:"; 198 : 1004070 : os << _value.situationId; 199 : 1004070 : os << ","; 200 : 1004070 : os << "objectId:"; 201 : 1004070 : os << _value.objectId; 202 : 1004070 : os << ","; 203 : 1004070 : os << "situationType:"; 204 : 1004070 : os << _value.situationType; 205 : 1004070 : os << ","; 206 : 1004070 : os << "egoVehicleState:"; 207 : 1004070 : os << _value.egoVehicleState; 208 : 1004070 : os << ","; 209 : 1004070 : os << "otherVehicleState:"; 210 : 1004070 : os << _value.otherVehicleState; 211 : 1004070 : os << ","; 212 : 1004070 : os << "relativePosition:"; 213 : 1004070 : os << _value.relativePosition; 214 : 1004070 : os << ")"; 215 : 1004070 : return os; 216 : : } 217 : : 218 : : } // namespace situation 219 : : } // namespace rss 220 : : } // namespace ad 221 : : 222 : : namespace std { 223 : : /*! 224 : : * \brief overload of the std::to_string for Situation 225 : : */ 226 : 1 : inline std::string to_string(::ad::rss::situation::Situation const &value) 227 : : { 228 [ + - ]: 2 : stringstream sstream; 229 [ + - ]: 1 : sstream << value; 230 [ + - ]: 2 : return sstream.str(); 231 : : } 232 : : } // namespace std 233 : : #endif // GEN_GUARD_AD_RSS_SITUATION_SITUATION