From 5b961ecfe0c04eb6ce493658b2131d5071380c73 Mon Sep 17 00:00:00 2001 From: yy <fctom1215@outlook.com> Date: 星期一, 10 八月 2020 23:51:57 +0800 Subject: [PATCH] 确立导向车道 --- lib/src/main/cpp/test_items2/road_exam.cpp | 13 +++++++++++++ lib/src/main/cpp/driver_test.h | 2 +- 2 files changed, 14 insertions(+), 1 deletions(-) diff --git a/lib/src/main/cpp/driver_test.h b/lib/src/main/cpp/driver_test.h index 69173a1..c82fc11 100644 --- a/lib/src/main/cpp/driver_test.h +++ b/lib/src/main/cpp/driver_test.h @@ -141,7 +141,7 @@ // 涓�缁勫钩琛岀殑鍒嗛亾绾� typedef struct { - std::vector<lane_direct_t> lane_direct; // 姣忎竴杞﹂亾鐨勮繍琛屾柟鍚� + std::vector<lane_direct_t> lane_direct; // 涓�缁勫鍚戠嚎鐨勯厤缃� std::vector<std::vector<segment_t>> lines; // 姣忔鍩熶笅鐨勫钩琛岀殑涓�缁勭嚎 } separate_t; diff --git a/lib/src/main/cpp/test_items2/road_exam.cpp b/lib/src/main/cpp/test_items2/road_exam.cpp index 8e42c1e..3d6a4e1 100644 --- a/lib/src/main/cpp/test_items2/road_exam.cpp +++ b/lib/src/main/cpp/test_items2/road_exam.cpp @@ -16,6 +16,7 @@ #include "stop_car.h" #include "operate_gear.h" +#include <cmath> #include <vector> #include <list> #include <map> @@ -633,6 +634,18 @@ return false; } +static int GetGuideDirect(road_exam_map &RoadMap, PointF point, int roadIndex, int sepIndex, int laneNo) +{ + for (int i = 0; i < RoadMap.roads[roadIndex].separate[sepIndex].lane_direct.size(); ++i) { + double d1 = CalcDistanceReference(point, RoadMap.roads[roadIndex].separate[sepIndex].lane_direct[i].start, RoadMap.roads[roadIndex].rightEdge); + double d2 = CalcDistanceReference(point, RoadMap.roads[roadIndex].separate[sepIndex].lane_direct[i].end, RoadMap.roads[roadIndex].rightEdge); + if (fabs(d1) < 1e-6 && d1 < 0.0 && d2 > 1e-6 && laneNo < RoadMap.roads[roadIndex].separate[sepIndex].lane_direct[i].direct.size()) { + return RoadMap.roads[roadIndex].separate[sepIndex].lane_direct[i].direct[laneNo]; + } + } + return 0; +} + /******************************************** * 璁$畻鏌愮偣鍦ㄥ摢涓溅閬� * @param point -- Gitblit v1.8.0