| | |
| | | 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 |
| | |
| | | #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; // 属性(实线、虚线,有些可以掉头的路段) |
| | |
| | | Line startLine; |
| | | Line stopLine; |
| | | int active; // 到达路口尾部的行进方向 |
| | | bool activeBreak; // 路口刹车减速 |
| | | bool activeStop; // 路口停车瞭望 |
| | | bool errorLane; // 错误车道 |
| | | int targetRoad; |
| | | int stopFlag; |
| | | string tts; |
| | |
| | | int id; |
| | | int road; |
| | | int type; |
| | | bool activeBreak; |
| | | bool overSpeed; |
| | | std::vector<PointF> area; // 人行道等右侧2点,网格线4点 |
| | | std::vector<PointF> leftPoints; // 对应到道路左侧的点 |
| | | } special_area_t; |
| | |
| | | int time; // 项目最大完成时间 |
| | | int distance; // 项目最大完成距离 |
| | | string tts; |
| | | Line line; |
| | | std::vector<PointF> points; |
| | | std::vector<PointF> leftPoints; // 对应到道路左侧的点 |
| | | } trigger_line_t; |
| | | |
| | | struct road_exam_map { |
| | |
| | | |
| | | typedef list<car_model *> LIST_CAR_MODEL; |
| | | |
| | | //vector<ExamFault> ExamFaultList; |
| | | |
| | | void DriverTestInit(void); |
| | | void ReadDriverExamPrimer(void); |
| | | |
| | |
| | | |
| | | 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, |