-
Notifications
You must be signed in to change notification settings - Fork 46
/
Copy pathlayerOrder.ts
76 lines (72 loc) · 2.76 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
import type { Layer } from 'applications/editor/consts';
export const LAYER_GROUPS = Object.freeze({
MAP_BACKGROUND: Symbol('MAP_BACKGROUND'),
TOPOGRAPHY: Symbol('TOPOGRAPHY'),
TRACKS: Symbol('TRACKS'),
INFRA: Symbol('INFRA'),
SIGNALS: Symbol('SIGNALS'),
DYN_SIGNALS: Symbol('DYN_SIGNALS'),
TRAIN: Symbol('TRAIN'),
ERRORS: Symbol('ERRORS'),
});
export const LAYER_GROUPS_ORDER = Object.freeze({
[LAYER_GROUPS.MAP_BACKGROUND]: 0,
[LAYER_GROUPS.TOPOGRAPHY]: 1,
[LAYER_GROUPS.TRACKS]: 2,
[LAYER_GROUPS.INFRA]: 3,
[LAYER_GROUPS.SIGNALS]: 4,
[LAYER_GROUPS.DYN_SIGNALS]: 5,
[LAYER_GROUPS.TRAIN]: 6,
[LAYER_GROUPS.ERRORS]: 7,
});
/**
* 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: { GROUP: LAYER_GROUPS.MAP_BACKGROUND },
// 1
PLATFORMS: { GROUP: LAYER_GROUPS.TOPOGRAPHY },
// 2
TRACKS_GEOGRAPHIC: { GROUP: LAYER_GROUPS.TRACKS },
TRACKS_OSM: { GROUP: LAYER_GROUPS.TRACKS },
ELECTRIFICATIONS: { GROUP: LAYER_GROUPS.TRACKS },
ITINERARY: { GROUP: LAYER_GROUPS.TRACKS },
// 3
ROUTES: { GROUP: LAYER_GROUPS.INFRA },
OPERATIONAL_POINTS: { GROUP: LAYER_GROUPS.INFRA },
DEAD_SECTIONS: { GROUP: LAYER_GROUPS.INFRA },
BUFFER_STOPS: { GROUP: LAYER_GROUPS.INFRA },
DETECTORS: { GROUP: LAYER_GROUPS.INFRA },
SWITCHES: { GROUP: LAYER_GROUPS.INFRA },
LINE_SEARCH: { GROUP: LAYER_GROUPS.INFRA },
// 4
SPEED_LIMITS: { GROUP: LAYER_GROUPS.SIGNALS },
// 5
SIGNALS: { GROUP: LAYER_GROUPS.DYN_SIGNALS },
// 6
TRAIN: { GROUP: LAYER_GROUPS.TRAIN },
// 7
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_GEOGRAPHIC.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.SIGNALS.GROUP],
psl_signs: LAYER_GROUPS_ORDER[LAYERS.SIGNALS.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],
});