Skip to content

Commit 65bffd3

Browse files
committed
Adds code (at least interim) to cover at-grade elevated intersections between Viaducts
1 parent 99766df commit 65bffd3

1 file changed

Lines changed: 150 additions & 1 deletion

File tree

src/main/scala/module/ViaductRuleGenerator.scala

Lines changed: 150 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,154 @@ class ViaductRuleGenerator(var context: RuleTransducer.Context) extends RuleGene
2121
for (minor <- CrossingGenerator.crossingNetworksOf(main)) {
2222
createCrossingRules(main, minor)
2323
}
24+
// at-grades
25+
Rules += L1Road~WE | Road~WE & L1Road~NS | % | L1Road~WE & L1Road~NS
26+
Rules += L1Road~WE | Road~WE & L1Onewayroad~NS | % | L1Road~WE & L1Onewayroad~NS
27+
Rules += L1Road~WE | Road~WE & L1Avenue~NS | % | L1Road~WE & L1Avenue~NS
28+
Rules += L1Road~WE & L1Avenue~NS | Road~WE & L1Avenue~SN | % | L1Road~WE & L1Avenue~SN
29+
30+
Rules += L1Onewayroad~WE | Onewayroad~WE & L1Road~NS | % | L1Onewayroad~WE & L1Road~NS
31+
Rules += L1Onewayroad~WE | Onewayroad~WE & L1Onewayroad~NS | % | L1Onewayroad~WE & L1Onewayroad~NS
32+
Rules += L1Onewayroad~WE | Onewayroad~WE & L1Avenue~NS | % | L1Onewayroad~WE & L1Avenue~NS
33+
Rules += L1Onewayroad~WE & L1Avenue~NS | Onewayroad~WE & L1Avenue~SN | % | L1Onewayroad~WE & L1Avenue~SN
34+
35+
Rules += L1Avenue~EW | Avenue~EW & L1Road~NS | % | L1Avenue~EW & L1Road~NS
36+
Rules += L1Avenue~EW | Avenue~EW & L1Onewayroad~NS | % | L1Avenue~EW & L1Onewayroad~NS
37+
Rules += L1Avenue~EW | Avenue~EW & L1Avenue~NS | % | L1Avenue~EW & L1Avenue~NS
38+
Rules += L1Avenue~EW & L1Avenue~NS | Avenue~EW & L1Avenue~SN | % | L1Avenue~WE & L1Avenue~SN
39+
40+
Rules += L1Road~WE | Road~WE & Road~NC | % | L1Road~WE & L1Road~NC
41+
Rules += L1Road~WE | Road~WE & Onewayroad~NC | % | L1Road~WE & L1Onewayroad~NC
42+
Rules += L1Road~WE | Road~WE & Avenue~NC | % | L1Road~WE & L1Avenue~NC
43+
Rules += L1Road~WE | Road~WC & Avenue~NS | % | L1Road~WC & L1Avenue~NS
44+
Rules += L1Road~WE & L1Avenue~NC | Road~WE & Avenue~CN | % | L1Road~WE & L1Avenue~CN
45+
Rules += L1Road~WE & L1Avenue~NS | Road~WC & Avenue~SN | % | L1Road~WC & L1Avenue~SN
46+
Rules += L1Road~WE & Avenue~NS | Road~WC & Avenue~SN | L1Road~WE & L1Avenue~NS | L1Road~WC & L1Avenue~SN
47+
48+
Rules += L1Onewayroad~WE | Onewayroad~WE & Road~NC | % | L1Onewayroad~WE & L1Road~NC
49+
Rules += L1Onewayroad~WE | Onewayroad~WE & Onewayroad~NC | % | L1Onewayroad~WE & L1Onewayroad~NC
50+
Rules += L1Onewayroad~WE | Onewayroad~WE & Avenue~NC | % | L1Onewayroad~WE & L1Avenue~NC
51+
Rules += L1Onewayroad~WE | Onewayroad~WC & Avenue~NS | % | L1Onewayroad~WC & L1Avenue~NS
52+
Rules += L1Onewayroad~WE & L1Avenue~NC | Onewayroad~WE & Avenue~CN | % | L1Onewayroad~WE & L1Avenue~CN
53+
Rules += L1Onewayroad~WE & L1Avenue~NS | Onewayroad~WC & Avenue~SN | % | L1Onewayroad~WC & L1Avenue~SN
54+
Rules += L1Onewayroad~WE & Avenue~NS | Onewayroad~WC & Avenue~SN | L1Onewayroad~WE & L1Avenue~NS | L1Onewayroad~WC & L1Avenue~SN
55+
56+
Rules += L1Avenue~EW | Avenue~EW & Road~NC | % | L1Avenue~EW & L1Road~NC
57+
Rules += L1Avenue~WE | Avenue~WE & Road~NC | % | L1Avenue~WE & L1Road~NC
58+
Rules += L1Avenue~EW | Avenue~EW & Onewayroad~NC | % | L1Avenue~EW & L1Onewayroad~NC
59+
Rules += L1Avenue~WE | Avenue~WE & Onewayroad~NC | % | L1Avenue~WE & L1Onewayroad~NC
60+
Rules += L1Avenue~WE | Avenue~WE & Avenue~NC | % | L1Avenue~WE & L1Avenue~NC
61+
Rules += L1Avenue~WE & L1Avenue~NC | Avenue~WE & Avenue~CN | % | L1Avenue~WE & L1Avenue~CN
62+
Rules += L1Avenue~NS & L1Road~WC | Avenue~SN | % | L1Avenue~SN
63+
Rules += L1Avenue~NS & L1Onewayroad~WC | Avenue~SN | % | L1Avenue~SN
64+
65+
Rules += L2Road~WE | Road~WE & L2Road~NS | % | L2Road~WE & L2Road~NS
66+
Rules += L2Road~WE | Road~WE & L2Onewayroad~NS | % | L2Road~WE & L2Onewayroad~NS
67+
Rules += L2Road~WE | Road~WE & L2Avenue~NS | % | L2Road~WE & L2Avenue~NS
68+
Rules += L2Road~WE & L2Avenue~NS | Road~WE & L2Avenue~SN | % | L2Road~WE & L2Avenue~SN
69+
70+
Rules += L2Onewayroad~WE | Onewayroad~WE & L2Road~NS | % | L2Onewayroad~WE & L2Road~NS
71+
Rules += L2Onewayroad~WE | Onewayroad~WE & L2Onewayroad~NS | % | L2Onewayroad~WE & L2Onewayroad~NS
72+
Rules += L2Onewayroad~WE | Onewayroad~WE & L2Avenue~NS | % | L2Onewayroad~WE & L2Avenue~NS
73+
Rules += L2Onewayroad~WE & L2Avenue~NS | Onewayroad~WE & L2Avenue~SN | % | L2Onewayroad~WE & L2Avenue~SN
74+
75+
Rules += L2Avenue~EW | Avenue~EW & L2Road~NS | % | L2Avenue~EW & L2Road~NS
76+
Rules += L2Avenue~EW | Avenue~EW & L2Onewayroad~NS | % | L2Avenue~EW & L2Onewayroad~NS
77+
Rules += L2Avenue~EW | Avenue~EW & L2Avenue~NS | % | L2Avenue~EW & L2Avenue~NS
78+
Rules += L2Avenue~EW & L2Avenue~NS | Avenue~EW & L2Avenue~SN | % | L2Avenue~WE & L2Avenue~SN
79+
80+
Rules += L2Road~WE | Road~WE & Road~NC | % | L2Road~WE & L2Road~NC
81+
Rules += L2Road~WE | Road~WE & Onewayroad~NC | % | L2Road~WE & L2Onewayroad~NC
82+
Rules += L2Road~WE | Road~WE & Avenue~NC | % | L2Road~WE & L2Avenue~NC
83+
Rules += L2Road~WE | Road~WC & Avenue~NS | % | L2Road~WC & L2Avenue~NS
84+
Rules += L2Road~WE & L2Avenue~NC | Road~WE & Avenue~CN | % | L2Road~WE & L2Avenue~CN
85+
Rules += L2Road~WE & L2Avenue~NS | Road~WC & Avenue~SN | % | L2Road~WC & L2Avenue~SN
86+
Rules += L2Road~WE & Avenue~NS | Road~WC & Avenue~SN | L2Road~WE & L2Avenue~NS | L2Road~WC & L2Avenue~SN
87+
88+
Rules += L2Onewayroad~WE | Onewayroad~WE & Road~NC | % | L2Onewayroad~WE & L2Road~NC
89+
Rules += L2Onewayroad~WE | Onewayroad~WE & Onewayroad~NC | % | L2Onewayroad~WE & L2Onewayroad~NC
90+
Rules += L2Onewayroad~WE | Onewayroad~WE & Avenue~NC | % | L2Onewayroad~WE & L2Avenue~NC
91+
Rules += L2Onewayroad~WE | Onewayroad~WC & Avenue~NS | % | L2Onewayroad~WC & L2Avenue~NS
92+
Rules += L2Onewayroad~WE & L2Avenue~NC | Onewayroad~WE & Avenue~CN | % | L2Onewayroad~WE & L2Avenue~CN
93+
Rules += L2Onewayroad~WE & L2Avenue~NS | Onewayroad~WC & Avenue~SN | % | L2Onewayroad~WC & L2Avenue~SN
94+
Rules += L2Onewayroad~WE & Avenue~NS | Onewayroad~WC & Avenue~SN | L2Onewayroad~WE & L2Avenue~NS | L2Onewayroad~WC & L2Avenue~SN
95+
96+
Rules += L2Avenue~EW | Avenue~EW & Road~NC | % | L2Avenue~EW & L2Road~NC
97+
Rules += L2Avenue~WE | Avenue~WE & Road~NC | % | L2Avenue~WE & L2Road~NC
98+
Rules += L2Avenue~EW | Avenue~EW & Onewayroad~NC | % | L2Avenue~EW & L2Onewayroad~NC
99+
Rules += L2Avenue~WE | Avenue~WE & Onewayroad~NC | % | L2Avenue~WE & L2Onewayroad~NC
100+
Rules += L2Avenue~WE | Avenue~WE & Avenue~NC | % | L2Avenue~WE & L2Avenue~NC
101+
Rules += L2Avenue~WE & L2Avenue~NC | Avenue~WE & Avenue~CN | % | L2Avenue~WE & L2Avenue~CN
102+
Rules += L2Avenue~NS & L2Road~WC | Avenue~SN | % | L2Avenue~SN
103+
Rules += L2Avenue~NS & L2Onewayroad~WC | Avenue~SN | % | L2Avenue~SN
104+
105+
// at-grade exit
106+
107+
Rules += L1Road~WE & L1Road~NS | Road~WE | % | L1Road~WE
108+
Rules += L1Road~WE & L1Road~NC | Road~WE | % | L1Road~WE
109+
Rules += L1Road~WE & L1Onewayroad~NS | Road~WE | % | L1Road~WE
110+
Rules += L1Road~WE & L1Onewayroad~NC | Road~WE | % | L1Road~WE
111+
Rules += L1Road~WE & L1Avenue~SN | Road~WE | % | L1Road~WE
112+
Rules += L1Road~WE & L1Avenue~CN | Road~WE | % | L1Road~WE
113+
Rules += L1Road~CE & L1Road~NS | Road~WE | % | L1Road~WE
114+
Rules += L1Road~CE & L1Onewayroad~NS | Road~WE | % | L1Road~WE
115+
Rules += L1Road~CE & L1Avenue~NS | Road~WE | % | L1Road~WE
116+
117+
Rules += L1Onewayroad~WE & L1Road~NS | Onewayroad~WE | % | L1Onewayroad~WE
118+
Rules += L1Onewayroad~WE & L1Road~NC | Onewayroad~WE | % | L1Onewayroad~WE
119+
Rules += L1Onewayroad~WE & L1Onewayroad~NS | Onewayroad~WE | % | L1Onewayroad~WE
120+
Rules += L1Onewayroad~WE & L1Onewayroad~NC | Onewayroad~WE | % | L1Onewayroad~WE
121+
Rules += L1Onewayroad~WE & L1Avenue~SN | Onewayroad~WE | % | L1Onewayroad~WE
122+
Rules += L1Onewayroad~WE & L1Avenue~CN | Onewayroad~WE | % | L1Onewayroad~WE
123+
Rules += L1Onewayroad~CE & L1Road~NS | Onewayroad~WE | % | L1Onewayroad~WE
124+
Rules += L1Onewayroad~CE & L1Onewayroad~NS | Onewayroad~WE | % | L1Onewayroad~WE
125+
Rules += L1Onewayroad~CE & L1Avenue~NS | Onewayroad~WE | % | L1Onewayroad~WE
126+
127+
Rules += L1Avenue~EW & L1Road~NS | Avenue~EW | % | L1Avenue~EW
128+
Rules += L1Avenue~EW & L1Road~NC | Avenue~EW | % | L1Avenue~EW
129+
Rules += L1Avenue~WE & L1Road~NC | Avenue~WE | % | L1Avenue~WE
130+
Rules += L1Avenue~EW & L1Onewayroad~NS | Avenue~EW | % | L1Avenue~EW
131+
Rules += L1Avenue~EW & L1Onewayroad~NC | Avenue~EW | % | L1Avenue~EW
132+
Rules += L1Avenue~WE & L1Onewayroad~NC | Avenue~WE | % | L1Avenue~WE
133+
Rules += L1Avenue~EW & L1Avenue~SN | Avenue~EW | % | L1Avenue~EW
134+
Rules += L1Avenue~WE & L1Avenue~CN | Avenue~WE | % | L1Avenue~WE
135+
Rules += L1Avenue~EC & L1Road~NS | Avenue~EW | % | L1Avenue~EW
136+
Rules += L1Avenue~CE & L1Road~NS | Avenue~WE | % | L1Avenue~WE
137+
Rules += L1Avenue~EC & L1Onewayroad~NS | Avenue~EW | % | L1Avenue~EW
138+
Rules += L1Avenue~CE & L1Onewayroad~NS | Avenue~WE | % | L1Avenue~WE
139+
140+
Rules += L2Road~WE & L2Road~NS | Road~WE | % | L2Road~WE
141+
Rules += L2Road~WE & L2Road~NC | Road~WE | % | L2Road~WE
142+
Rules += L2Road~WE & L2Onewayroad~NS | Road~WE | % | L2Road~WE
143+
Rules += L2Road~WE & L2Onewayroad~NC | Road~WE | % | L2Road~WE
144+
Rules += L2Road~WE & L2Avenue~SN | Road~WE | % | L2Road~WE
145+
Rules += L2Road~WE & L2Avenue~CN | Road~WE | % | L2Road~WE
146+
Rules += L2Road~CE & L2Road~NS | Road~WE | % | L2Road~WE
147+
Rules += L2Road~CE & L2Onewayroad~NS | Road~WE | % | L2Road~WE
148+
Rules += L2Road~CE & L2Avenue~NS | Road~WE | % | L2Road~WE
149+
150+
Rules += L2Onewayroad~WE & L2Road~NS | Onewayroad~WE | % | L2Onewayroad~WE
151+
Rules += L2Onewayroad~WE & L2Road~NC | Onewayroad~WE | % | L2Onewayroad~WE
152+
Rules += L2Onewayroad~WE & L2Onewayroad~NS | Onewayroad~WE | % | L2Onewayroad~WE
153+
Rules += L2Onewayroad~WE & L2Onewayroad~NC | Onewayroad~WE | % | L2Onewayroad~WE
154+
Rules += L2Onewayroad~WE & L2Avenue~SN | Onewayroad~WE | % | L2Onewayroad~WE
155+
Rules += L2Onewayroad~WE & L2Avenue~CN | Onewayroad~WE | % | L2Onewayroad~WE
156+
Rules += L2Onewayroad~CE & L2Road~NS | Onewayroad~WE | % | L2Onewayroad~WE
157+
Rules += L2Onewayroad~CE & L2Onewayroad~NS | Onewayroad~WE | % | L2Onewayroad~WE
158+
Rules += L2Onewayroad~CE & L2Avenue~NS | Onewayroad~WE | % | L2Onewayroad~WE
159+
160+
Rules += L2Avenue~EW & L2Road~NS | Avenue~EW | % | L2Avenue~EW
161+
Rules += L2Avenue~EW & L2Road~NC | Avenue~EW | % | L2Avenue~EW
162+
Rules += L2Avenue~WE & L2Road~NC | Avenue~WE | % | L2Avenue~WE
163+
Rules += L2Avenue~EW & L2Onewayroad~NS | Avenue~EW | % | L2Avenue~EW
164+
Rules += L2Avenue~EW & L2Onewayroad~NC | Avenue~EW | % | L2Avenue~EW
165+
Rules += L2Avenue~WE & L2Onewayroad~NC | Avenue~WE | % | L2Avenue~WE
166+
Rules += L2Avenue~EW & L2Avenue~SN | Avenue~EW | % | L2Avenue~EW
167+
Rules += L2Avenue~WE & L2Avenue~CN | Avenue~WE | % | L2Avenue~WE
168+
Rules += L2Avenue~EC & L2Road~NS | Avenue~EW | % | L2Avenue~EW
169+
Rules += L2Avenue~CE & L2Road~NS | Avenue~WE | % | L2Avenue~WE
170+
Rules += L2Avenue~EC & L2Onewayroad~NS | Avenue~EW | % | L2Avenue~EW
171+
Rules += L2Avenue~CE & L2Onewayroad~NS | Avenue~WE | % | L2Avenue~WE
24172
}
25173
}
26174
}
@@ -29,5 +177,6 @@ class ViaductRuleGenerator(var context: RuleTransducer.Context) extends RuleGene
29177
object CompileViaductCode extends AbstractMain {
30178
lazy val resolve: IdResolver = new MiscResolver orElse new RealRailwayResolver orElse new RhwResolver orElse new NwmResolver orElse new ViaductResolver
31179
val generator = new ViaductRuleGenerator(_)
32-
lazy val file = new java.io.File("target/ViaductMetaGenerated_MANAGED.txt")
180+
// lazy val file = new java.io.File("target/ViaductMetaGenerated_MANAGED.txt")
181+
lazy val file = new java.io.File("Controller/RUL2/06_Road_Viaducts/ViaductMetaGenerated_MANAGED.txt")
33182
}

0 commit comments

Comments
 (0)