Branch data Line data Source code
1 : : // ----------------- BEGIN LICENSE BLOCK --------------------------------- 2 : : // 3 : : // Copyright (C) 2018-2022 Intel Corporation 4 : : // 5 : : // SPDX-License-Identifier: LGPL-2.1-only 6 : : // 7 : : // ----------------- END LICENSE BLOCK ----------------------------------- 8 : : /** 9 : : * @file 10 : : */ 11 : : 12 : : #pragma once 13 : : 14 : : #include <memory> 15 : : #include "ad/rss/core/RssResponseResolving.hpp" 16 : : #include "ad/rss/core/RssSituationChecking.hpp" 17 : : #include "ad/rss/core/RssSituationExtraction.hpp" 18 : : 19 : : /*! 20 : : * @brief namespace ad 21 : : */ 22 : : namespace ad { 23 : : /*! 24 : : * @brief namespace rss 25 : : */ 26 : : namespace rss { 27 : : 28 : : /*! 29 : : * @brief namespace core 30 : : */ 31 : : namespace core { 32 : : 33 : : /** 34 : : * @brief RssCheck 35 : : * 36 : : * Class providing the functionality of the RSS check sequence at once with the RSS world model as input and 37 : : * the proper response as output. This class internally makes use of the 38 : : * RssSituationExtraction, RssSituationChecking, RssResponseResolving functionality. 39 : : */ 40 : : class RssCheck 41 : : { 42 : : public: 43 : : /*! 44 : : * \brief Smart pointer on RssCheck 45 : : */ 46 : : typedef std::shared_ptr<RssCheck> Ptr; 47 : : 48 : : /*! 49 : : * \brief Smart pointer on constant RssCheck 50 : : */ 51 : : typedef std::shared_ptr<RssCheck const> ConstPtr; 52 : : 53 : : /** 54 : : * @brief constructor 55 : : */ 56 : 737 : RssCheck() = default; 57 : : 58 : : /** 59 : : * @brief default copy constructor 60 : : */ 61 : : RssCheck(RssCheck const &other) = default; 62 : : 63 : : /** 64 : : * @brief destructor 65 : : */ 66 : 737 : ~RssCheck() = default; 67 : : 68 : : /** 69 : : * @brief default assignment operator 70 : : */ 71 : : RssCheck &operator=(RssCheck const &other) = default; 72 : : 73 : : /** 74 : : * @brief calculateProperResponse 75 : : * 76 : : * @param [in] worldModel - the current world model information 77 : : * \param [out] accelerationRestriction - The proper response to become RSS safe. 78 : : * 79 : : * @return return true if the proper response could be calculated, false otherwise. 80 : : */ 81 : : bool calculateProperResponse(world::WorldModel const &worldModel, state::ProperResponse &properResponse); 82 : : 83 : : /** 84 : : * @brief calculateProperResponse 85 : : * 86 : : * @param [in] worldModel - the current world model information 87 : : * \param [out] situationSnapshot - The intermediate situation snapshot 88 : : * \param [out] rssStateSnapshot - The intermediate rss state snapshot 89 : : * \param [out] properResponse - The intermediate proper response 90 : : * 91 : : * @return return true if the proper response could be calculated, false otherwise. 92 : : */ 93 : : bool calculateProperResponse(world::WorldModel const &worldModel, 94 : : RssSituationSnapshot &situationSnapshot, 95 : : state::RssStateSnapshot &rssStateSnapshot, 96 : : state::ProperResponse &properResponse); 97 : : 98 : : /*! 99 : : * @brief Register a callback for unstructured trajectory set calculation 100 : : * 101 : : * @param[in] objectType The object type this trajectory set calculation should be applied 102 : : * @param[in] calculateTrajectorySetsCallback The actual callback function to perform the trajectory set calculation 103 : : */ 104 : : void registerCalculateTrajectorySetsCallback( 105 : : world::ObjectType objectType, 106 : : unstructured::RssUnstructuredConstellationChecker::CalculateTrajectorySetsCallbackFunctionType 107 : : calculateTrajectorySetsCallback); 108 : : 109 : : /*! 110 : : * @brief drop the history associated with a given object_id 111 : : * 112 : : * This function might be used to drop previous states referred to a certain object id in case the object id is reused 113 : : * 114 : : * @param[in] object_id the object_id previous history should be dropped 115 : : */ 116 : : void dropObjectHistory(world::ObjectId const &object_id); 117 : : 118 : : /*! 119 : : * \brief RssResponseResolving member 120 : : */ 121 : : RssResponseResolving mResponseResolving; 122 : : /*! 123 : : * \brief RssSituationChecking member 124 : : */ 125 : : RssSituationChecking mSituationChecking; 126 : : /*! 127 : : * \brief RssSituationExtraction member 128 : : */ 129 : : RssSituationExtraction mSituationExtraction; 130 : : }; 131 : : 132 : : } // namespace core 133 : : } // namespace rss 134 : : } // namespace ad