Branch data Line data Source code
1 : : // ----------------- BEGIN LICENSE BLOCK --------------------------------- 2 : : // 3 : : // Copyright (C) 2018-2021 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 "ad/rss/state/RssState.hpp" 15 : : 16 : : /*! 17 : : * @brief namespace ad 18 : : */ 19 : : namespace ad { 20 : : /*! 21 : : * @brief namespace rss 22 : : */ 23 : : namespace rss { 24 : : /*! 25 : : * @brief namespace for RSS state datatypes and operations 26 : : */ 27 : : namespace state { 28 : : 29 : : /** 30 : : * @brief is rss state longitudinal safe 31 : : * 32 : : * @param[in] rssState to check 33 : : * 34 : : * true if safe, false if not 35 : : */ 36 : 189852 : inline bool isLongitudinalSafe(RssState const &rssState) 37 : : { 38 : 189852 : return rssState.longitudinalState.isSafe; 39 : : } 40 : : 41 : : /** 42 : : * @brief is rss state lateral safe 43 : : * 44 : : * @param[in] rssState to check 45 : : * 46 : : * true if safe, false if not 47 : : */ 48 : 84095 : inline bool isLateralSafe(RssState const &rssState) 49 : : { 50 [ + + + + ]: 84095 : return rssState.lateralStateRight.isSafe && rssState.lateralStateLeft.isSafe; 51 : : } 52 : : 53 : : /** 54 : : * @brief is rss unstructured scene state safe 55 : : * 56 : : * @param[in] rssState to check 57 : : * 58 : : * true if safe, false if not 59 : : */ 60 : 0 : inline bool isUnstructuredSceneSafe(RssState const &rssState) 61 : : { 62 : 0 : return rssState.unstructuredSceneState.isSafe; 63 : : } 64 : : 65 : : /** 66 : : * @brief is rss state dangerous 67 : : * 68 : : * @param[in] rssState to check 69 : : * 70 : : * true if dangerous, false if not 71 : : */ 72 : 136955 : inline bool isDangerous(RssState const &rssState) 73 : : { 74 [ - + ]: 136955 : if (rssState.situationType == ad::rss::situation::SituationType::Unstructured) 75 : : { 76 : 0 : return !isUnstructuredSceneSafe(rssState); 77 : : } 78 : : else 79 : : { 80 [ + + + + ]: 136955 : return !isLongitudinalSafe(rssState) && !isLateralSafe(rssState); 81 : : } 82 : : } 83 : : 84 : : } // namespace state 85 : : } // namespace rss 86 : : } // namespace ad