-
Notifications
You must be signed in to change notification settings - Fork 0
/
strategies.py
54 lines (46 loc) · 1.95 KB
/
strategies.py
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
from viewer import models
def connect_all(link):
link.start_node.links.append(link)
link.end_node.links.append(link)
return True
def connect_class1(link):
if (
link.rt_struct not in (models.RouteStructure.UNOFFICIAL_CROSSING, models.RouteStructure.PEDESTRIAN_BRIDGE)
and link.route_type in (models.RouteType.GENERAL, models.RouteType.SLOPE)
and link.width == models.Width.MORE_THAN_EAUAL_3m
and link.vtcl_slope == models.Gradient.LESS_THAN_EQUAL_5pct
and link.lev_diff == models.Step.LESS_THAN_EQUAL_2cm
):
link.start_node.links.append(link)
link.end_node.links.append(link)
return True
return False
def connect_class2(link):
if (
link.rt_struct not in (models.RouteStructure.UNOFFICIAL_CROSSING, models.RouteStructure.PEDESTRIAN_BRIDGE)
and link.route_type in (models.RouteType.GENERAL, models.RouteType.SLOPE)
and link.width == models.Width.MORE_THAN_EAUAL_2m_LESS_THAN_3m
and link.vtcl_slope == models.Gradient.LESS_THAN_EQUAL_5pct
and link.lev_diff == models.Step.LESS_THAN_EQUAL_2cm
):
link.start_node.links.append(link)
link.end_node.links.append(link)
return True
return False
def connect_class3(link):
if (
link.rt_struct not in (models.RouteStructure.UNOFFICIAL_CROSSING, models.RouteStructure.PEDESTRIAN_BRIDGE)
and link.route_type in (models.RouteType.GENERAL, models.RouteType.SLOPE)
and (
(
link.width in (models.Width.MORE_THAN_EAUAL_2m_LESS_THAN_3m, models.Width.MORE_THAN_EAUAL_3m)
and link.vtcl_slope != models.Gradient.LESS_THAN_EQUAL_5pct
and link.lev_diff != models.Step.LESS_THAN_EQUAL_2cm
)
or (link.width == models.Width.MORE_THAN_EAUAL_1m_LESS_THAN_2m)
)
):
link.start_node.links.append(link)
link.end_node.links.append(link)
return True
return False