yy1717
2020-05-22 00c07fb94c6927f3bb8ebfec383a33936f04447b
lib/src/main/cpp/driver_test.h
@@ -92,41 +92,6 @@
    int wrong_id;
};
struct trigger_line_tx {
    int triggerMapId;
    Polygon line;
};
struct road_exam_mapx {
    int id;
    int type;
    string tts;
    int redLineNum;
    Polygon *redLine;
    int greenLineNum;
    Polygon *greenLine;
    int redAreaNum;
    Polygon *redArea;
    int triggerLineNum;
    trigger_line_tx *triggerLine;
    int roadEdgeLineNum;    // 道路边线,只有直线驾驶、靠边停车才有
    Polygon *roadEdgeLine;
    Polygon area;           // 子项目的区域
    Line stopLine;         // 诸如人行道、路口等考点的停止线
    int flagStop;           // 到达开始线前,是否需要停车
};
typedef vector<struct road_exam_mapx> LIST_ROAD_MAP;
#define LINE_DOTTED            0
#define LINE_SOLID             1
#define LINE_HALF_SOLID_LEFT        2
@@ -142,6 +107,20 @@
#define SCHOOL_AREA                 1
#define BUS_STATION_AREA            2
#define GRID_AREA                   3
#define ROAD_ITEM_NONE              0
#define ROAD_ITEM_CHANGE_LANE       1
#define ROAD_ITEM_OVERTAKE          2
#define ROAD_ITEM_STRAIGHT          3
#define ROAD_ITEM_OPERATE_GEAR      4
#define ROAD_ITEM_START_CAR         5
enum {
    ROAD_ACTIVE_FORWARD,
    ROAD_ACTIVE_TURN_LEFT,
    ROAD_ACTIVE_TURN_RIGHT,
    ROAD_ACTIVE_TURN_BACKWARD
};
typedef struct {
    int character;                  // 属性(实线、虚线,有些可以掉头的路段)
@@ -165,6 +144,9 @@
    Line startLine;
    Line stopLine;
    int active;         // 到达路口尾部的行进方向
    bool activeBreak;   // 路口刹车减速
    bool activeStop;    // 路口停车瞭望
    bool errorLane;     // 错误车道
    int targetRoad;
    int stopFlag;
    string tts;
@@ -179,6 +161,8 @@
    int id;
    int road;
    int type;
    bool activeBreak;
    bool overSpeed;
    std::vector<PointF> area;       // 人行道等右侧2点,网格线4点
    std::vector<PointF> leftPoints; // 对应到道路左侧的点
} special_area_t;
@@ -190,7 +174,8 @@
    int time;                   // 项目最大完成时间
    int distance;               // 项目最大完成距离
    string tts;
    Line line;
    std::vector<PointF> points;
    std::vector<PointF> leftPoints; // 对应到道路左侧的点
} trigger_line_t;
struct road_exam_map {
@@ -210,8 +195,6 @@
typedef list<car_model *> LIST_CAR_MODEL;
//vector<ExamFault> ExamFaultList;
void DriverTestInit(void);
void ReadDriverExamPrimer(void);
@@ -221,12 +204,6 @@
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,
                      vector<vector<int>> &triggerLines, vector<vector<int>> &roadEdgeLines,
                      vector<int> area, vector<int> stopLine);
void SetCarMeasurePoint(double *basePoint, int *axial, int *left_front_tire,
                        int *right_front_tire, int *left_rear_tire, int *right_rear_tire,