-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRoadLoop.h
50 lines (39 loc) · 4.78 KB
/
RoadLoop.h
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
#ifndef __ROADLOOP_H__
#define __ROADLOOP_H__
#include "Globals.h"
#include "Point.h"
#include "RoadSegment.h"
#include <vector>
using namespace std;
enum SEGMENT_AMBIENT
{
A_NONE = -1,
A_FOREST,
A_DESERT,
A_GREY,
A_GREEN,
A_SNOW
};
#define LOOP0 vector<SEGMENT_TYPE>{ S_FAT_A, S_FAT_B, S_CLOSE, S_THIN_A, S_CUR_CL, S_THIN_L, S_CUR_LC, S_CUR_CR, S_THIN_R, S_CUR_RC,S_THIN_B, S_OPEN, S_BIF, S_2_ROADS, S_PRE_2_BR, S_2_BR, S_POST_2_BR, S_2_ROADS, S_BIF_R, S_FAT_B, S_CLOSE, S_THIN_A, S_PRE_BR, S_BR, S_POST_BR, S_CUR_CL, S_PRE_BR_L, S_BR_L, S_POST_BR_L, S_CUR_LC, S_CUR_CR, S_PRE_BR_R, S_BR_R, S_POST_BR_R, S_CUR_RC, S_OPEN }
#define LOOP1 vector<SEGMENT_TYPE>{ S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_CLOSE, S_THIN_A, S_THIN_A, S_THIN_A, S_THIN_A, S_THIN_A, S_THIN_B, S_THIN_B, S_THIN_B, S_THIN_B, S_THIN_B, S_THIN_B, S_THIN_B, S_THIN_B, S_CUR_CL, S_THIN_L, S_CUR_LC, S_THIN_B, S_CUR_CR, S_THIN_R, S_THIN_R, S_THIN_R, S_THIN_R, S_THIN_R, S_THIN_R, S_THIN_R, S_THIN_R, S_CUR_RC, S_THIN_A, S_THIN_A, S_THIN_A, S_THIN_A, S_OPEN, S_BIF, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_BIF_R }
#define LOOP2 vector<SEGMENT_TYPE>{ S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_CLOSE, S_THIN_B, S_THIN_B, S_THIN_B, S_THIN_B, S_THIN_B, S_THIN_B, S_CUR_CR, S_THIN_R, S_THIN_R, S_THIN_R, S_THIN_R, S_PRE_BR_R, S_BR_R, S_BR_R, S_POST_BR_R, S_THIN_R, S_THIN_R, S_THIN_R, S_THIN_R, S_THIN_R, S_THIN_R, S_THIN_R, S_CUR_RC, S_CUR_CL, S_CUR_LC, S_THIN_A, S_THIN_A, S_THIN_A, S_PRE_BR, S_BR, S_BR, S_BR, S_POST_BR, S_THIN_A, S_THIN_B, S_PRE_BR, S_BR, S_BR, S_BR, S_POST_BR, S_THIN_A, S_THIN_B, S_OPEN, S_BIF, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_BIF_R }
#define LOOP3 vector<SEGMENT_TYPE>{ S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_B, S_FAT_B, S_FAT_B, S_CLOSE, S_THIN_A, S_THIN_A, S_THIN_A, S_THIN_A, S_THIN_B, S_CUR_CL, S_THIN_L, S_PRE_BR_L, S_BR_L, S_BR_L, S_BR_L, S_BR_L, S_POST_BR_L, S_THIN_L, S_CUR_LC, S_CUR_CR, S_THIN_R, S_CUR_RC, S_THIN_A, S_THIN_A, S_THIN_A, S_THIN_A, S_THIN_A, S_OPEN, S_FAT_B, S_BIF, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_PRE_2_BR, S_2_BR, S_2_BR, S_POST_2_BR, S_2_ROADS, S_2_ROADS, S_BIF_R }
#define LOOP4 vector<SEGMENT_TYPE>{ S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_CLOSE, S_THIN_A, S_THIN_A, S_THIN_A, S_CUR_CL, S_THIN_L, S_THIN_L, S_THIN_L, S_THIN_L, S_CUR_LC, S_THIN_B, S_THIN_B, S_THIN_B, S_THIN_B, S_CUR_CR, S_CUR_RC, S_CUR_CL, S_CUR_LC, S_CUR_CL, S_CUR_LC, S_CUR_CR, S_CUR_RC, S_CUR_CR, S_THIN_R, S_THIN_R, S_THIN_R, S_CUR_RC, S_CUR_CR, S_THIN_R, S_CUR_RC, S_THIN_A, S_THIN_A, S_THIN_A, S_THIN_A, S_OPEN, S_BIF, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_BIF_R }
#define LOOP5 vector<SEGMENT_TYPE>{ S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_A, S_FAT_A, S_FAT_A, S_CLOSE, S_THIN_A, S_THIN_A, S_OPEN, S_FAT_B, S_BIF, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_PRE_2_BR, S_2_BR, S_2_BR, S_2_BR, S_2_BR, S_POST_2_BR, S_2_ROADS, S_2_ROADS, S_BIF_R }
#define LOOP6 vector<SEGMENT_TYPE>{ S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_A, S_FAT_A, S_BIF, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_PRE_2_BR, S_2_BR, S_2_BR, S_2_BR, S_2_BR, S_2_BR, S_2_BR, S_POST_2_BR, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_BIF_R }
#define LOOP7 vector<SEGMENT_TYPE>{ S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_FAT_B, S_CLOSE, S_THIN_B, S_THIN_B, S_THIN_B, S_THIN_B, S_CUR_CR, S_THIN_R, S_THIN_R, S_THIN_R, S_THIN_R, S_PRE_BR_R, S_BR_R, S_BR_R, S_POST_BR_R, S_THIN_R, S_THIN_R, S_THIN_R, S_THIN_R, S_THIN_R, S_THIN_R, S_THIN_R, S_CUR_RC, S_CUR_CL, S_CUR_LC, S_THIN_A, S_THIN_A, S_THIN_A, S_PRE_BR, S_BR, S_BR, S_POST_BR, S_THIN_A, S_THIN_B, S_THIN_B, S_OPEN, S_BIF, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_2_ROADS, S_BIF_R }
class RoadLoop
{
public:
//A loop is a vector of segments
vector<RoadSegment*> loop;
//Current segment pos in loop
int pos;
SEGMENT_AMBIENT ambient;
RoadLoop(vector<SEGMENT_TYPE>* loop_template, SEGMENT_AMBIENT ambient);
~RoadLoop();
void GenerateLoop(vector<SEGMENT_TYPE>* loop_template, const SEGMENT_AMBIENT &ambient);
int GetSize();
void CleanLoop();
};
#endif // __ROADLOOP_H__