//
|
// 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
|