File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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
2939class 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 ) = {
You can’t perform that action at this time.
0 commit comments