Skip to content

Commit b718420

Browse files
committed
Various updates to Crossing Generator, adding RHW T-int support and improving stability.
1 parent e5fd1c8 commit b718420

1 file changed

Lines changed: 11 additions & 2 deletions

File tree

src/main/scala/module/CrossingGenerator.scala

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ trait CrossingGenerator extends Adjacencies { this: RuleGenerator =>
3030
Rules += main~WE~EW | (base ~> main)~WE~EW & orient(minor~ES) // OxD
3131
Rules += main~SE~ES | (base ~> main)~WN~NW & orient(minor~NS) // DxO
3232
Rules += main~SE~ES | (base ~> main)~WN~NW & orient(minor~NE) // DxD
33-
if (main.isNwm) withResolvableRulesOnly { // T intersections are not defined for all network combinations
33+
if (main.isNwm || main.isRhw) withResolvableRulesOnly { // T intersections are not defined for all network combinations
3434
Rules += main~WE~EW | (base ~> main)~WE~EW & orient(minor~CS) // OxO T 1
3535
Rules += main~WE~EW | (base ~> main)~WE~EW & orient(minor~NC) // OxO T 2
3636
Rules += main~WE~EW | (base ~> main)~WC~CW & orient(minor~NS) // OxO T End
@@ -68,6 +68,9 @@ trait CrossingGenerator extends Adjacencies { this: RuleGenerator =>
6868
Rules += main~CEN~NEC & minor~SE~ES | base~SW~WS | main~CEN~NEC & minor~SE~ES | main~CSW~WSC & minor~SW~WS // DxD T End 2 Alt 3
6969
}
7070
if (minor == Avenue) {
71+
Rules += main~WE~EW & minor~NS | (base ~> main)~WC~CW & orient(minor~SN) // OxO-End Long T
72+
Rules += main~WE~EW & minor~NC | (base ~> main)~WE~EW & minor~CN // OxO Thru T 1
73+
// Rules += main~WE~EW & minor~CS | (base ~> main)~WE~EW & minor~SC // OxO Thru T 2
7174
Rules += main~WE~EW | (base ~> main)~WE~EW & minor~(0,0,3,0) // OxD T 1
7275
Rules += main~WE~EW | (base ~> main)~WE~EW & minor~(1,0,0,0) // OxD T 3
7376
Rules += main~WE~EW & minor~(0,0,3,0) | (base ~> main)~WE~EW & minor~(0,0,3,1) // OxD T 1-2
@@ -118,13 +121,19 @@ trait CrossingGenerator extends Adjacencies { this: RuleGenerator =>
118121
Rules += main~WC~CW & minor~ES | (base ~> main)~WC~CW & minor~SharedDiagRight // OxD T End-Short 2
119122
Rules += main~WE~EW & minor~ES | (base ~> main)~WC~CW & minor~SharedDiagRight // OxD T End-Short 2 Alt
120123
Rules += main~WE~EW & minor~SharedDiagRight | base~WC~CW & minor~WN | main~WC~CW & minor~SharedDiagRight | main~WC~CW & minor~WN // OxD T End-Long
124+
Rules += main~WC~CW & minor~SharedDiagRight | base~WC~CW & minor~WN | main~WC~CW & minor~SharedDiagRight | main~WC~CW & minor~WN // OxD T End-Long Stability 1
125+
Rules += main~WE~EW & minor~SharedDiagRight | main~WC~CW & minor~WN | main~WC~CW & minor~SharedDiagRight | main~WC~CW & minor~WN // OxD T End-Long Stability 2
126+
121127
Rules += main~(0,0,11,3) | base~WNC~CNW & minor~NS~SN | main~(0,0,11,3) | main~WNC~CNW & minor~NS~SN // DxO T End-Short 1
122128
Rules += main~SW~WS | base~WNC~CNW & minor~NS~SN | main~(0,0,11,3) | main~WNC~CNW & minor~NS~SN // DxO T End-Short 1 Alt
123129
Rules += main~SE~ES & minor~NS | (base ~> main)~WNC~CNW & minor~SN // DxO T End-Long 1
124130
Rules += main~SEC~CES & minor~EW | base~WNC~CNW & minor~EW | main~SEC~CES & minor~EW | main~WNC~CNW & minor~EW // DxO T End-Long 2
125131
Rules += main~SE~ES & minor~EW | base~WNC~CNW & minor~EW | main~SEC~CES & minor~EW | main~WNC~CNW & minor~EW // DxO T End-Long 2 Alt
126132
Rules += main~SE~ES | (base ~> main)~WNC~CNW & orient(minor~EN) // DxD T End-Short 1
133+
Rules += main~SE~ES & minor~NE | base~WNC~CNW & minor~SharedDiagLeft | % | main~WNC~CNW & minor~SharedDiagLeft // DxD to DxD Long T 1
127134
Rules += main~SE~ES & minor~SharedDiagLeft | base~WNC~CNW & minor~SW | main~SEC~CES & minor~SharedDiagLeft | main~WNC~CNW & minor~SW // DxD T End-Long
135+
Rules += main~SEC~CES & minor~SharedDiagLeft | base~WNC~CNW & minor~SW | main~SEC~CES & minor~SharedDiagLeft | main~WNC~CNW & minor~SW // DxD T End-Long Stability
136+
Rules += main~SE~ES & minor~SharedDiagLeft | main~WNC~CNW & minor~SW | main~SEC~CES & minor~SharedDiagLeft | main~WNC~CNW & minor~SW // DxD T End-Long Stability 2
128137
}
129138
}
130139
if (main.isNwm && minor.isNwmDual) withResolvableRulesOnly { // T intersections are not defined for all network combinations
@@ -160,7 +169,7 @@ trait CrossingGenerator extends Adjacencies { this: RuleGenerator =>
160169
Rules += main~SE~ES & orient(minor~SN) | (base ~> main)~WN~NW // DxO
161170
Rules += main~SE~ES & orient(minor~SW) | (base ~> main)~WN~NW // DxD
162171
// Shared diagonals on minor are not relevant here since the shared diagonal is an inner tile (i.e. without an edge).
163-
if (main.isNwm) withResolvableRulesOnly { // T intersections are not defined for all network combinations
172+
if (main.isNwm || main.isRhw) withResolvableRulesOnly { // T intersections are not defined for all network combinations
164173
Rules += main~WE~EW & minor~CS~SC | (base ~> main)~WE~EW // OxO T 1
165174
Rules += main~WE~EW & minor~NC~CN | (base ~> main)~WE~EW // OxO T 2
166175
Rules += main~WE~EW & minor~NEC~CEN | (base ~> main)~WE~EW // OxD T 1

0 commit comments

Comments
 (0)