-
Notifications
You must be signed in to change notification settings - Fork 46
/
Copy pathlayerOrder.ts
89 lines (85 loc) · 3.66 KB
/
layerOrder.ts
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import type { Layer } from 'applications/editor/consts';
export const LAYER_GROUPS = Object.freeze({
MAP_BACKGROUND: Symbol('MAP_BACKGROUND'),
TOPOGRAPHY: Symbol('TOPOGRAPHY'),
EXTERNAL_TRACKS: Symbol('EXTERNAL_TRACKS'),
TRACKS: Symbol('TRACKS'),
ELECTRIFICATIONS: Symbol('ELECTRIFICATIONS'),
OVER_ELECTRIFICATION: Symbol('OVER_ELECTRIFICATION'),
SPEED_LIMITS: Symbol('SPEED_LIMITS'),
PATHFINDING: Symbol('PATHFINDING'),
SPEED_LIMITS_PUNCTUAL: Symbol('SPEED_LIMITS_PUNCTUAL'),
PUNCTUAL: Symbol('PUNCTUAL'),
TRAIN: Symbol('TRAIN'),
ERRORS: Symbol('ERRORS'),
});
export const LAYER_GROUPS_ORDER = Object.freeze({
[LAYER_GROUPS.MAP_BACKGROUND]: 0,
[LAYER_GROUPS.TOPOGRAPHY]: 1,
[LAYER_GROUPS.EXTERNAL_TRACKS]: 2,
[LAYER_GROUPS.TRACKS]: 3,
[LAYER_GROUPS.ELECTRIFICATIONS]: 4,
[LAYER_GROUPS.OVER_ELECTRIFICATION]: 5,
[LAYER_GROUPS.SPEED_LIMITS]: 6,
[LAYER_GROUPS.PATHFINDING]: 7,
[LAYER_GROUPS.SPEED_LIMITS_PUNCTUAL]: 8,
[LAYER_GROUPS.PUNCTUAL]: 9,
[LAYER_GROUPS.TRAIN]: 10,
[LAYER_GROUPS.ERRORS]: 11,
});
/**
* Virtual layers are the topmost layer of each group.
* for example, virtual-layer-0 will be on top of all layers of group 0.
* Layers of group MAP_BACKGROUND (0) will have boeforeId: 'virtual-layer-0'
* Layers of group TOPOGRAPHY (1) will have boeforeId: 'virtual-layer-1'
* etc
*/
export const LAYERS = Object.freeze({
// 0 BACKGROUND
BACKGROUND: { GROUP: LAYER_GROUPS.MAP_BACKGROUND },
// 1 PLATFORMS
PLATFORMS: { GROUP: LAYER_GROUPS.TOPOGRAPHY },
// 2 EXTERNAL TRACKS
TRACKS_OSM: { GROUP: LAYER_GROUPS.EXTERNAL_TRACKS },
// 3 TRACKS
TRACKS: { GROUP: LAYER_GROUPS.TRACKS },
// 4 ELECTRIFICATIONS
ELECTRIFICATIONS: { GROUP: LAYER_GROUPS.ELECTRIFICATIONS },
// 5 OVER_ELECTRIFICATION
DEAD_SECTIONS: { GROUP: LAYER_GROUPS.OVER_ELECTRIFICATION },
// 6 SPEED_LIMITS
SPEED_LIMITS: { GROUP: LAYER_GROUPS.SPEED_LIMITS },
// 7 PATHFINDING
ROUTES: { GROUP: LAYER_GROUPS.PATHFINDING },
PATH: { GROUP: LAYER_GROUPS.PATHFINDING }, // TODO : decide between "path" and "itinerary" here and in all names in itinerary layer and beyond
LINE_SEARCH: { GROUP: LAYER_GROUPS.PATHFINDING },
// 8 SPEEDLIMIT PUNCTUAL
SPEED_LIMITS_PUNCTUAL: { GROUP: LAYER_GROUPS.SPEED_LIMITS_PUNCTUAL }, // Used for psl_signs in all maps, and speed limits points signs in standard map but not infra editor/warped map
// 9 PUNCTUAL
OPERATIONAL_POINTS: { GROUP: LAYER_GROUPS.PUNCTUAL },
BUFFER_STOPS: { GROUP: LAYER_GROUPS.PUNCTUAL },
DETECTORS: { GROUP: LAYER_GROUPS.PUNCTUAL },
SWITCHES: { GROUP: LAYER_GROUPS.PUNCTUAL },
SIGNALS: { GROUP: LAYER_GROUPS.PUNCTUAL },
// 10 TRAIN
TRAIN: { GROUP: LAYER_GROUPS.TRAIN },
// 11 ERRORS
ERRORS: { GROUP: LAYER_GROUPS.ERRORS },
});
export const LAYER_ENTITIES_ORDERS: Record<Layer, number> = Object.freeze({
buffer_stops: LAYER_GROUPS_ORDER[LAYERS.BUFFER_STOPS.GROUP],
detectors: LAYER_GROUPS_ORDER[LAYERS.DETECTORS.GROUP],
signals: LAYER_GROUPS_ORDER[LAYERS.SIGNALS.GROUP],
switches: LAYER_GROUPS_ORDER[LAYERS.SWITCHES.GROUP],
track_sections: LAYER_GROUPS_ORDER[LAYERS.TRACKS.GROUP],
electrifications: LAYER_GROUPS_ORDER[LAYERS.ELECTRIFICATIONS.GROUP],
speed_sections: LAYER_GROUPS_ORDER[LAYERS.SPEED_LIMITS.GROUP],
routes: LAYER_GROUPS_ORDER[LAYERS.ROUTES.GROUP],
psl: LAYER_GROUPS_ORDER[LAYERS.SPEED_LIMITS.GROUP],
psl_signs: LAYER_GROUPS_ORDER[LAYERS.SPEED_LIMITS_PUNCTUAL.GROUP],
neutral_signs: LAYER_GROUPS_ORDER[LAYERS.SIGNALS.GROUP],
errors: LAYER_GROUPS_ORDER[LAYERS.ERRORS.GROUP],
platforms: LAYER_GROUPS_ORDER[LAYERS.PLATFORMS.GROUP],
neutral_sections: LAYER_GROUPS_ORDER[LAYERS.DEAD_SECTIONS.GROUP],
operational_points: LAYER_GROUPS_ORDER[LAYERS.OPERATIONAL_POINTS.GROUP],
});