yy1717
2020-05-11 a073dc3c983b4c56c5da92642c9ad11995bdb844
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,