| | |
| | | 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; |
| | | |
| | |
| | | Polygon *redArea; |
| | | |
| | | int triggerLineNum; |
| | | trigger_line_t *triggerLine; |
| | | trigger_line_tx *triggerLine; |
| | | |
| | | int roadEdgeLineNum; // 道路边线,只有直线驾驶、靠边停车才有 |
| | | Polygon *roadEdgeLine; |
| | |
| | | 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; // 属性(实线、虚线,有些可以掉头的路段) |
| | |
| | | } 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 { |
| | |
| | | |
| | | |
| | | 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, |