From a073dc3c983b4c56c5da92642c9ad11995bdb844 Mon Sep 17 00:00:00 2001
From: yy1717 <fctom1215@outlook.com>
Date: 星期一, 11 五月 2020 18:05:31 +0800
Subject: [PATCH] 新的科目三
---
lib/src/main/cpp/driver_test.h | 70 ++++++++++++++++++++++++-----------
1 files changed, 48 insertions(+), 22 deletions(-)
diff --git a/lib/src/main/cpp/driver_test.h b/lib/src/main/cpp/driver_test.h
index 7d3d221..46a6abc 100644
--- a/lib/src/main/cpp/driver_test.h
+++ b/lib/src/main/cpp/driver_test.h
@@ -92,12 +92,14 @@
int wrong_id;
};
-struct trigger_line_t {
+
+struct trigger_line_tx {
int triggerMapId;
Polygon line;
};
-struct road_exam_map {
+
+struct road_exam_mapx {
int id;
int type;
@@ -113,7 +115,7 @@
Polygon *redArea;
int triggerLineNum;
- trigger_line_t *triggerLine;
+ trigger_line_tx *triggerLine;
int roadEdgeLineNum; // 閬撹矾杈圭嚎锛屽彧鏈夌洿绾块┚椹躲�侀潬杈瑰仠杞︽墠鏈�
Polygon *roadEdgeLine;
@@ -123,10 +125,23 @@
int flagStop; // 鍒拌揪寮�濮嬬嚎鍓嶏紝鏄惁闇�瑕佸仠杞�
};
-typedef vector<struct road_exam_map> LIST_ROAD_MAP;
+typedef vector<struct road_exam_mapx> LIST_ROAD_MAP;
-#define ROAD_DOTTED_LINE 0
-#define ROAD_SOLID_LINE 1
+#define LINE_DOTTED 0
+#define LINE_SOLID 1
+#define LINE_HALF_SOLID_LEFT 2
+#define LINE_HALF_SOLID_RIGHT 3
+
+//杞﹂亾鏂瑰悜锛堟寜浣嶇粍鍚堬級,濡傛灉涓�0锛屽垯琛ㄦ棤杞﹂亾鏂瑰悜璇存槑锛�
+#define LANE_FORWARD 0x01
+#define LANE_LEFT 0x02
+#define LANE_RIGHT 0x04
+#define LANE_BACKWARD 0x08
+
+#define ZEBRA_CROSSING 0
+#define SCHOOL_AREA 1
+#define BUS_STATION_AREA 2
+#define GRID_AREA 3
typedef struct {
int character; // 灞炴�э紙瀹炵嚎銆佽櫄绾匡紝鏈変簺鍙互鎺夊ご鐨勮矾娈碉級
@@ -134,42 +149,51 @@
} edge_t;
typedef struct {
- int character; // 灞炴�с�婂疄绾裤�佽櫄绾裤��
- std::vector<Polygon> lines; // 姣忎竴鏉$嚎
+ int character; // 灞炴�с�婂疄绾裤�佽櫄绾裤�佸崐瀹炲崐铏氱嚎銆�
+ int left_lane_direct;
+ int right_lane_direct;
+ std::vector<PointF> points;
+} segment_t;
+
+// 涓�缁勫钩琛岀殑鍒嗛亾绾�
+typedef struct {
+ std::vector<std::vector<segment_t>> lines; // 姣忔鍩熶笅鐨勫钩琛岀殑涓�缁勭嚎
} separate_t;
-struct road_t {
+typedef struct {
int id;
Line startLine;
Line stopLine;
int active; // 鍒拌揪璺彛灏鹃儴鐨勮杩涙柟鍚�
+ int targetRoad;
+ int stopFlag;
string tts;
- Polygon area;
+ Polygon area; // 鏁翠釜閬撹矾鍖哄煙
std::vector<edge_t> leftEdge;
std::vector<edge_t> rightEdge;
std::vector<separate_t> separate;
-};
+} road_t;
-struct special_area_t {
+typedef struct {
int id;
int road;
- int character;
- Line startLine;
- Polygon area;
-};
+ int type;
+ std::vector<PointF> area; // 浜鸿閬撶瓑鍙充晶2鐐癸紝缃戞牸绾�4鐐�
+ std::vector<PointF> leftPoints; // 瀵瑰簲鍒伴亾璺乏渚х殑鐐�
+} special_area_t;
-struct trigger2_line_t {
+typedef struct {
int id;
int road;
int active;
string tts;
Line line;
-};
+} trigger_line_t;
-struct road_exam2_map {
- std::vector<struct road_t> roads;
- std::vector<struct special_area_t> specialAreas;
- std::vector<struct trigger2_line_t> triggerLines;
+struct road_exam_map {
+ std::vector<road_t> roads;
+ std::vector<special_area_t> specialAreas;
+ std::vector<trigger_line_t> triggerLines;
};
struct area_exam_map {
@@ -193,6 +217,8 @@
void CleanRoadMap(void);
+void SetRoadMap(road_exam_map &map);
+
void SetRoadMapPoints(vector<double> &mapPoints);
void AddRoadMapParent(int id, int type, string tts, int stopFlag, vector<vector<int>> &redLines,
vector<vector<int>> &redAreas, vector<vector<int>> &greenLines,
--
Gitblit v1.8.0