68 const auto& first_encountered_overlaps =
69 reference_line_info.FirstEncounteredOverlaps();
73 if (first_encountered_overlaps.empty()) {
77 for (
const auto& overlap : first_encountered_overlaps) {
81 traffic_sign_overlap ==
nullptr) {
85 pnc_junction_overlap ==
nullptr) {
90 if (traffic_sign_overlap && pnc_junction_overlap) {
91 static constexpr double kJunctionDelta = 10.0;
92 double s_diff = std::fabs(traffic_sign_overlap->
start_s -
94 if (s_diff >= kJunctionDelta) {
95 if (pnc_junction_overlap->
start_s > traffic_sign_overlap->
start_s) {
96 pnc_junction_overlap =
nullptr;
98 traffic_sign_overlap =
nullptr;
103 if (traffic_sign_overlap || !pnc_junction_overlap) {
107 if (reference_line_info.GetIntersectionRightofWayStatus(
108 *pnc_junction_overlap)) {
112 const double adc_front_edge_s = reference_line_info.AdcSlBoundary().
end_s();
113 const double adc_distance_to_pnc_junction =
114 pnc_junction_overlap->
start_s - adc_front_edge_s;
115 ADEBUG <<
"adc_distance_to_pnc_junction[" << adc_distance_to_pnc_junction
116 <<
"] pnc_junction[" << pnc_junction_overlap->
object_id
117 <<
"] pnc_junction_overlap_start_s[" << pnc_junction_overlap->
start_s
120 const bool bare_junction_scenario =
121 (adc_distance_to_pnc_junction > 0.0 &&
122 adc_distance_to_pnc_junction <=
126 return bare_junction_scenario;
ScenarioBareIntersectionUnprotectedConfig scenario_config