-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathroad.h
More file actions
52 lines (41 loc) · 1.34 KB
/
Copy pathroad.h
File metadata and controls
52 lines (41 loc) · 1.34 KB
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
41
42
43
44
45
46
47
48
49
50
51
52
#pragma once
#include "traffic.h"
class RoadBase {
public:
virtual ~RoadBase() = default;
virtual void showRoad() = 0; //drawing road
virtual double getUpLine() { return 0.0;}
virtual double getMidLine() { return 0.0; }
virtual double getDownLine() { return 0.0; }
public:
double Rwidth = 200.0;//road width
double up_boundary = 0.0;//up boundary
double down_boundary = 0.0;//down boundary
double left_boundary = 0.0;//left boundary
double right_boundary = 0.0;//right boundary
};
//general road
class RoadNormal : public RoadBase {
public:
RoadNormal(const double& r_width = 200.0);
void showRoad() override;//drawing road
};
//double two-lane road
class RoadDoubleLane : public RoadBase {
public:
RoadDoubleLane(const double& r_width = 200.0);
void showRoad() override;//display road
};
class RoadCrosswalk : public RoadBase {
public:
RoadCrosswalk(const double& r_width = 200.0);
void showRoad() override;//display
double getUpLine() { return this->up_line; }//return crosswalk top boundary
double getMidLine() { return this->mid_line; }//return crosswalk center line
double getDownLine() { return this->down_line; }//return crosswalk bottom boundary
public:
double up_line = 0.0;//crosswalk top boundary
double mid_line = 0.0;//crosswalk center line
double down_line = 0.0;//crosswalk bottom boundary
double disRec = 20.0;//spacing
};