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