Skip to content

Commit 658db78

Browse files
committed
refactoring: define crossing networks in RhwRuleGenerator
1 parent 31600a7 commit 658db78

1 file changed

Lines changed: 11 additions & 4 deletions

File tree

src/main/scala/module/RhwRuleGenerator.scala

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,16 @@ object RhwRuleGenerator {
2424
m
2525
}
2626
}
27+
28+
def crossingNetworksOf(main: Network): Iterator[Network] = {
29+
for {
30+
minor <- Network.values.iterator
31+
if minor != Subway && !isHrw(minor) && (main.isRhw || minor.isRhw ||
32+
(main.isNwm && (minor.isRhw || minor.isNwm || minor.base.isEmpty)) ||
33+
(main.isNwm && isSingleTile(main) && main.height == 0 && (minor == L1Dtr || minor == L2Dtr))
34+
) && intersectionAllowed(main, minor)
35+
} yield minor
36+
}
2737
}
2838

2939
class RhwRuleGenerator(var context: RuleTransducer.Context) extends RuleGenerator with Curve45Generator with Adjacencies {
@@ -70,10 +80,7 @@ class RhwRuleGenerator(var context: RuleTransducer.Context) extends RuleGenerato
7080
createCurve90Rules(main)
7181

7282
// TODO filtering
73-
for (minor <- Network.values if minor != Subway && !isHrw(minor) && (main.isRhw || minor.isRhw ||
74-
(main.isNwm && (minor.isRhw || minor.isNwm || minor.base.isEmpty)) ||
75-
(main.isNwm && isSingleTile(main) && main.height == 0 && (minor == L1Dtr || minor == L2Dtr))
76-
) && intersectionAllowed(main, minor)) {
83+
for (minor <- crossingNetworksOf(main)) {
7784
// entry (override from straight tile to first crossing tile)
7885
if (intersectionAllowed(base, minor)) { // skips e.g. preexisting L0Rhw2 x L0Rhw6c in second tile
7986
def entryCode(orient: Segment => Segment) = {

0 commit comments

Comments
 (0)