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