// // 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); bool CrashTheLine(Line line, const car_model *car, LIST_CAR_MODEL &CarModelList); double CalcDistanceReference(PointF point, PointF refPoint, vector &edge); PointF CalcProjectionWithRoadEdge(vector &edge, PointF point); #endif //MYAPPLICATION2_ROAD_EXAM_H