yy1717
2020-05-11 a073dc3c983b4c56c5da92642c9ad11995bdb844
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//
// Created by YY on 2020/3/17.
//
 
#ifndef MYAPPLICATION2_ROAD_EXAM_H
#define MYAPPLICATION2_ROAD_EXAM_H
 
#include "../driver_test.h"
 
#define GENERAL_MAP                     100
#define DRIVE_STRAIGHT_MAP              101
#define OP_GEAER_MAP                    102
#define STOP_CAR_MAP                    103
#define THROUGH_INTERSECTION_MAP        104
#define TURN_LEFT_MAP                   105
#define TURN_RIGHT_MAP                  106
#define THROUGH_ZEBRA_CROSSING_MAP      107
#define THROUGH_SCHOOL_MAP              108
#define THROUGH_BUS_STATION_MAP         109
#define TURN_AROUND_MAP                 110
 
struct drive_timer {
    int hour;
    int min;
    int sec;
    int msec;
};
 
void Rtk2DriveTimer(struct drive_timer &tm, const struct RtkTime *rtkTime);
void InitRoadExam(road_exam_map &RoadMap);
void TerminateRoadExam(void);
void TestRoadGeneral(road_exam_map &RoadMap, const car_model *car, LIST_CAR_MODEL &CarModelList, double speed, int moveDirect, const struct RtkTime *rtkTime);
void TestRoadGeneral(LIST_ROAD_MAP &RoadMapList, const car_model *car, LIST_CAR_MODEL &CarModelList, double speed, int moveDirect, const struct RtkTime *rtkTime);
bool ExitSonArea(int index, LIST_ROAD_MAP &RoadMapList, const car_model *car);
bool CrashSonRedLine(int index, LIST_ROAD_MAP &RoadMapList, const car_model *car, LIST_CAR_MODEL &CarModelList);
 
bool CrashTheLine(Line line, const car_model *car, LIST_CAR_MODEL &CarModelList);
PointF GetSELine(std::vector<edge_t> &edge, PointF point);
 
#endif //MYAPPLICATION2_ROAD_EXAM_H