@tscircuit/rectdiff 0.0.27 → 0.0.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/.github/workflows/bun-pver-release.yml +24 -45
  2. package/dist/index.d.ts +0 -46
  3. package/dist/index.js +220 -774
  4. package/lib/RectDiffPipeline.ts +0 -46
  5. package/lib/types/srj-types.ts +0 -1
  6. package/package.json +1 -2
  7. package/pages/repro/merge-single-layer-node.page.tsx +17 -0
  8. package/tests/__snapshots__/board-outline.snap.svg +2 -2
  9. package/tests/solver/__snapshots__/rectDiffGridSolverPipeline.snap.svg +1 -1
  10. package/tests/solver/both-points-equivalent/__snapshots__/both-points-equivalent.snap.svg +1 -1
  11. package/tests/solver/bugreport01-be84eb/__snapshots__/bugreport01-be84eb.snap.svg +1 -1
  12. package/tests/solver/bugreport02-bc4361/__snapshots__/bugreport02-bc4361.snap.svg +1 -1
  13. package/tests/solver/bugreport03-fe4a17/__snapshots__/bugreport03-fe4a17.snap.svg +1 -1
  14. package/tests/solver/bugreport07-d3f3be/__snapshots__/bugreport07-d3f3be.snap.svg +1 -1
  15. package/tests/solver/bugreport08-e3ec95/__snapshots__/bugreport08-e3ec95.snap.svg +1 -1
  16. package/tests/solver/bugreport09-618e09/__snapshots__/bugreport09-618e09.snap.svg +1 -1
  17. package/tests/solver/bugreport10-71239a/__snapshots__/bugreport10-71239a.snap.svg +1 -1
  18. package/tests/solver/bugreport11-b2de3c/__snapshots__/bugreport11-b2de3c.snap.svg +1 -1
  19. package/tests/solver/bugreport12-35ce1c/__snapshots__/bugreport12-35ce1c.snap.svg +1 -1
  20. package/tests/solver/bugreport13-b9a758/__snapshots__/bugreport13-b9a758.snap.svg +1 -1
  21. package/tests/solver/bugreport16-d95f38/__snapshots__/bugreport16-d95f38.snap.svg +1 -1
  22. package/tests/solver/bugreport19/__snapshots__/bugreport19.snap.svg +1 -1
  23. package/tests/solver/bugreport20-obstacle-clipping/__snapshots__/bugreport20-obstacle-clipping.snap.svg +1 -1
  24. package/tests/solver/bugreport21-board-outline/__snapshots__/bugreport21-board-outline.snap.svg +2 -2
  25. package/tests/solver/bugreport22-2a75ce/__snapshots__/bugreport22-2a75ce.snap.svg +1 -1
  26. package/tests/solver/bugreport23-LGA15x4/__snapshots__/bugreport23-LGA15x4.snap.svg +1 -1
  27. package/tests/solver/bugreport24-05597c/__snapshots__/bugreport24-05597c.snap.svg +1 -1
  28. package/tests/solver/bugreport25-4b1d55/__snapshots__/bugreport25-4b1d55.snap.svg +1 -1
  29. package/tests/solver/bugreport36-bf8303/__snapshots__/bugreport36-bf8303.snap.svg +1 -1
  30. package/tests/solver/interaction/__snapshots__/interaction.snap.svg +1 -1
  31. package/tests/solver/multi-point/__snapshots__/multi-point.snap.svg +1 -1
  32. package/tests/solver/no-better-path/__snapshots__/no-better-path.snap.svg +1 -1
  33. package/tests/solver/repros/merge-single-layer-node/merge-single-layer-node.json +861 -0
  34. package/tests/solver/{bugreport50-multi-support-layer-merge/bugreport50-multi-support-layer-merge.test.ts → repros/merge-single-layer-node/merge-single-layer-node.test.ts} +7 -42
  35. package/tests/solver/transitivity/__snapshots__/transitivity.snap.svg +2 -2
  36. package/tsconfig.json +5 -1
  37. package/vite.config.ts +4 -0
  38. package/lib/solvers/AdjacentLayerContainmentMergeSolver/AdjacentLayerContainmentMergeSolver.ts +0 -456
  39. package/lib/solvers/OuterLayerContainmentMergeSolver/OuterLayerContainmentMergeSolver.ts +0 -311
  40. package/pages/bugreports/bugreport50-multi-support-layer-merge.page.tsx +0 -19
  41. package/pages/pour.page.tsx +0 -18
  42. package/test-assets/bugreport49-634662.json +0 -412
  43. package/tests/solver/bugreport49-634662/__snapshots__/bugreport49-634662.snap.svg +0 -44
  44. package/tests/solver/bugreport49-634662/bugreport49-634662.test.ts +0 -134
  45. package/tests/solver/bugreport50-multi-support-layer-merge/__snapshots__/bugreport50-multi-support-layer-merge.snap.svg +0 -44
  46. package/tests/solver/bugreport50-multi-support-layer-merge/bugreport50-multi-support-layer-merge.json +0 -972
@@ -0,0 +1,861 @@
1
+ [
2
+ {
3
+ "simpleRouteJson": {
4
+ "bounds": { "maxX": 10, "maxY": 5, "minX": -10, "minY": -5 },
5
+ "obstacles": [
6
+ {
7
+ "type": "rect",
8
+ "width": 1,
9
+ "center": { "x": -2.15, "y": 2.54 },
10
+ "height": 0.6,
11
+ "layers": ["top"],
12
+ "connectedTo": [
13
+ "pcb_smtpad_0",
14
+ "connectivity_net8",
15
+ "source_trace_3",
16
+ "source_port_10",
17
+ "source_port_0",
18
+ "pcb_smtpad_0",
19
+ "pcb_port_0",
20
+ "pcb_smtpad_10",
21
+ "pcb_port_10"
22
+ ],
23
+ "zLayers": [0]
24
+ },
25
+ {
26
+ "type": "rect",
27
+ "width": 1,
28
+ "center": { "x": -2.15, "y": 1.27 },
29
+ "height": 0.6,
30
+ "layers": ["top"],
31
+ "connectedTo": [
32
+ "pcb_smtpad_1",
33
+ "connectivity_net26",
34
+ "source_trace_10",
35
+ "source_port_17",
36
+ "source_trace_6",
37
+ "source_port_13",
38
+ "source_trace_4",
39
+ "source_port_11",
40
+ "source_trace_2",
41
+ "source_port_3",
42
+ "source_trace_0",
43
+ "source_port_1",
44
+ "source_net_0",
45
+ "pcb_smtpad_1",
46
+ "pcb_port_1",
47
+ "pcb_smtpad_3",
48
+ "pcb_port_3",
49
+ "pcb_smtpad_11",
50
+ "pcb_port_11",
51
+ "pcb_smtpad_13",
52
+ "pcb_port_13",
53
+ "pcb_smtpad_17",
54
+ "pcb_port_17"
55
+ ],
56
+ "zLayers": [0]
57
+ },
58
+ {
59
+ "type": "rect",
60
+ "width": 1,
61
+ "center": { "x": -2.15, "y": 0 },
62
+ "height": 0.6,
63
+ "layers": ["top"],
64
+ "connectedTo": [
65
+ "pcb_smtpad_2",
66
+ "connectivity_net24",
67
+ "source_trace_9",
68
+ "source_port_16",
69
+ "source_trace_1",
70
+ "source_port_2",
71
+ "source_net_1",
72
+ "pcb_smtpad_2",
73
+ "pcb_port_2",
74
+ "pcb_smtpad_16",
75
+ "pcb_port_16"
76
+ ],
77
+ "zLayers": [0]
78
+ },
79
+ {
80
+ "type": "rect",
81
+ "width": 1,
82
+ "center": { "x": -2.15, "y": -1.27 },
83
+ "height": 0.6,
84
+ "layers": ["top"],
85
+ "connectedTo": [
86
+ "pcb_smtpad_3",
87
+ "connectivity_net26",
88
+ "source_trace_10",
89
+ "source_port_17",
90
+ "source_trace_6",
91
+ "source_port_13",
92
+ "source_trace_4",
93
+ "source_port_11",
94
+ "source_trace_2",
95
+ "source_port_3",
96
+ "source_trace_0",
97
+ "source_port_1",
98
+ "source_net_0",
99
+ "pcb_smtpad_1",
100
+ "pcb_port_1",
101
+ "pcb_smtpad_3",
102
+ "pcb_port_3",
103
+ "pcb_smtpad_11",
104
+ "pcb_port_11",
105
+ "pcb_smtpad_13",
106
+ "pcb_port_13",
107
+ "pcb_smtpad_17",
108
+ "pcb_port_17"
109
+ ],
110
+ "zLayers": [0]
111
+ },
112
+ {
113
+ "type": "rect",
114
+ "width": 1,
115
+ "center": { "x": -2.15, "y": -2.54 },
116
+ "height": 0.6,
117
+ "layers": ["top"],
118
+ "connectedTo": [
119
+ "pcb_smtpad_4",
120
+ "connectivity_net74",
121
+ "source_port_4",
122
+ "pcb_smtpad_4",
123
+ "pcb_port_4"
124
+ ],
125
+ "zLayers": [0]
126
+ },
127
+ {
128
+ "type": "rect",
129
+ "width": 1,
130
+ "center": { "x": 2.15, "y": -2.54 },
131
+ "height": 0.6,
132
+ "layers": ["top"],
133
+ "connectedTo": [
134
+ "pcb_smtpad_5",
135
+ "connectivity_net13",
136
+ "source_trace_5",
137
+ "source_port_12",
138
+ "source_port_5",
139
+ "pcb_smtpad_5",
140
+ "pcb_port_5",
141
+ "pcb_smtpad_12",
142
+ "pcb_port_12"
143
+ ],
144
+ "zLayers": [0]
145
+ },
146
+ {
147
+ "type": "rect",
148
+ "width": 1,
149
+ "center": { "x": 2.15, "y": -1.27 },
150
+ "height": 0.6,
151
+ "layers": ["top"],
152
+ "connectedTo": [
153
+ "pcb_smtpad_6",
154
+ "connectivity_net21",
155
+ "source_trace_8",
156
+ "source_port_15",
157
+ "source_port_6",
158
+ "pcb_smtpad_6",
159
+ "pcb_port_6",
160
+ "pcb_smtpad_15",
161
+ "pcb_port_15"
162
+ ],
163
+ "zLayers": [0]
164
+ },
165
+ {
166
+ "type": "rect",
167
+ "width": 1,
168
+ "center": { "x": 2.15, "y": 0 },
169
+ "height": 0.6,
170
+ "layers": ["top"],
171
+ "connectedTo": [
172
+ "pcb_smtpad_7",
173
+ "connectivity_net18",
174
+ "source_trace_7",
175
+ "source_port_14",
176
+ "source_port_7",
177
+ "pcb_smtpad_7",
178
+ "pcb_port_7",
179
+ "pcb_smtpad_14",
180
+ "pcb_port_14"
181
+ ],
182
+ "zLayers": [0]
183
+ },
184
+ {
185
+ "type": "rect",
186
+ "width": 1,
187
+ "center": { "x": 2.15, "y": 1.27 },
188
+ "height": 0.6,
189
+ "layers": ["top"],
190
+ "connectedTo": [
191
+ "pcb_smtpad_8",
192
+ "connectivity_net31",
193
+ "source_trace_12",
194
+ "source_port_19",
195
+ "source_port_8",
196
+ "pcb_smtpad_8",
197
+ "pcb_port_8",
198
+ "pcb_smtpad_19",
199
+ "pcb_port_19"
200
+ ],
201
+ "zLayers": [0]
202
+ },
203
+ {
204
+ "type": "rect",
205
+ "width": 1,
206
+ "center": { "x": 2.15, "y": 2.54 },
207
+ "height": 0.6,
208
+ "layers": ["top"],
209
+ "connectedTo": [
210
+ "pcb_smtpad_9",
211
+ "connectivity_net28",
212
+ "source_trace_11",
213
+ "source_port_18",
214
+ "source_port_9",
215
+ "pcb_smtpad_9",
216
+ "pcb_port_9",
217
+ "pcb_smtpad_18",
218
+ "pcb_port_18"
219
+ ],
220
+ "zLayers": [0]
221
+ },
222
+ {
223
+ "type": "rect",
224
+ "width": 0.54,
225
+ "center": { "x": -2.1500000000000004, "y": 4.16 },
226
+ "height": 0.64,
227
+ "layers": ["top"],
228
+ "connectedTo": [
229
+ "pcb_smtpad_10",
230
+ "connectivity_net8",
231
+ "source_trace_3",
232
+ "source_port_10",
233
+ "source_port_0",
234
+ "pcb_smtpad_0",
235
+ "pcb_port_0",
236
+ "pcb_smtpad_10",
237
+ "pcb_port_10"
238
+ ],
239
+ "zLayers": [0]
240
+ },
241
+ {
242
+ "type": "rect",
243
+ "width": 0.54,
244
+ "center": { "x": -1.1300000000000006, "y": 4.16 },
245
+ "height": 0.64,
246
+ "layers": ["top"],
247
+ "connectedTo": [
248
+ "pcb_smtpad_11",
249
+ "connectivity_net26",
250
+ "source_trace_10",
251
+ "source_port_17",
252
+ "source_trace_6",
253
+ "source_port_13",
254
+ "source_trace_4",
255
+ "source_port_11",
256
+ "source_trace_2",
257
+ "source_port_3",
258
+ "source_trace_0",
259
+ "source_port_1",
260
+ "source_net_0",
261
+ "pcb_smtpad_1",
262
+ "pcb_port_1",
263
+ "pcb_smtpad_3",
264
+ "pcb_port_3",
265
+ "pcb_smtpad_11",
266
+ "pcb_port_11",
267
+ "pcb_smtpad_13",
268
+ "pcb_port_13",
269
+ "pcb_smtpad_17",
270
+ "pcb_port_17"
271
+ ],
272
+ "zLayers": [0]
273
+ },
274
+ {
275
+ "type": "rect",
276
+ "width": 0.64,
277
+ "center": { "x": 3.97, "y": -3.2861261293105146 },
278
+ "height": 0.54,
279
+ "layers": ["top"],
280
+ "connectedTo": [
281
+ "pcb_smtpad_12",
282
+ "connectivity_net13",
283
+ "source_trace_5",
284
+ "source_port_12",
285
+ "source_port_5",
286
+ "pcb_smtpad_5",
287
+ "pcb_port_5",
288
+ "pcb_smtpad_12",
289
+ "pcb_port_12"
290
+ ],
291
+ "zLayers": [0]
292
+ },
293
+ {
294
+ "type": "rect",
295
+ "width": 0.64,
296
+ "center": { "x": 3.97, "y": -4.306126129310514 },
297
+ "height": 0.54,
298
+ "layers": ["top"],
299
+ "connectedTo": [
300
+ "pcb_smtpad_13",
301
+ "connectivity_net26",
302
+ "source_trace_10",
303
+ "source_port_17",
304
+ "source_trace_6",
305
+ "source_port_13",
306
+ "source_trace_4",
307
+ "source_port_11",
308
+ "source_trace_2",
309
+ "source_port_3",
310
+ "source_trace_0",
311
+ "source_port_1",
312
+ "source_net_0",
313
+ "pcb_smtpad_1",
314
+ "pcb_port_1",
315
+ "pcb_smtpad_3",
316
+ "pcb_port_3",
317
+ "pcb_smtpad_11",
318
+ "pcb_port_11",
319
+ "pcb_smtpad_13",
320
+ "pcb_port_13",
321
+ "pcb_smtpad_17",
322
+ "pcb_port_17"
323
+ ],
324
+ "zLayers": [0]
325
+ },
326
+ {
327
+ "type": "rect",
328
+ "width": 1,
329
+ "center": { "x": 4.15, "y": 0.8238738706894861 },
330
+ "height": 0.6,
331
+ "layers": ["top"],
332
+ "connectedTo": [
333
+ "pcb_smtpad_14",
334
+ "connectivity_net18",
335
+ "source_trace_7",
336
+ "source_port_14",
337
+ "source_port_7",
338
+ "pcb_smtpad_7",
339
+ "pcb_port_7",
340
+ "pcb_smtpad_14",
341
+ "pcb_port_14"
342
+ ],
343
+ "zLayers": [0]
344
+ },
345
+ {
346
+ "type": "rect",
347
+ "width": 1,
348
+ "center": { "x": 4.15, "y": -0.4461261293105139 },
349
+ "height": 0.6,
350
+ "layers": ["top"],
351
+ "connectedTo": [
352
+ "pcb_smtpad_15",
353
+ "connectivity_net21",
354
+ "source_trace_8",
355
+ "source_port_15",
356
+ "source_port_6",
357
+ "pcb_smtpad_6",
358
+ "pcb_port_6",
359
+ "pcb_smtpad_15",
360
+ "pcb_port_15"
361
+ ],
362
+ "zLayers": [0]
363
+ },
364
+ {
365
+ "type": "rect",
366
+ "width": 1,
367
+ "center": { "x": 4.15, "y": -1.716126129310514 },
368
+ "height": 0.6,
369
+ "layers": ["top"],
370
+ "connectedTo": [
371
+ "pcb_smtpad_16",
372
+ "connectivity_net24",
373
+ "source_trace_9",
374
+ "source_port_16",
375
+ "source_trace_1",
376
+ "source_port_2",
377
+ "source_net_1",
378
+ "pcb_smtpad_2",
379
+ "pcb_port_2",
380
+ "pcb_smtpad_16",
381
+ "pcb_port_16"
382
+ ],
383
+ "zLayers": [0]
384
+ },
385
+ {
386
+ "type": "rect",
387
+ "width": 1,
388
+ "center": { "x": 8.45, "y": -1.716126129310514 },
389
+ "height": 0.6,
390
+ "layers": ["top"],
391
+ "connectedTo": [
392
+ "pcb_smtpad_17",
393
+ "connectivity_net26",
394
+ "source_trace_10",
395
+ "source_port_17",
396
+ "source_trace_6",
397
+ "source_port_13",
398
+ "source_trace_4",
399
+ "source_port_11",
400
+ "source_trace_2",
401
+ "source_port_3",
402
+ "source_trace_0",
403
+ "source_port_1",
404
+ "source_net_0",
405
+ "pcb_smtpad_1",
406
+ "pcb_port_1",
407
+ "pcb_smtpad_3",
408
+ "pcb_port_3",
409
+ "pcb_smtpad_11",
410
+ "pcb_port_11",
411
+ "pcb_smtpad_13",
412
+ "pcb_port_13",
413
+ "pcb_smtpad_17",
414
+ "pcb_port_17"
415
+ ],
416
+ "zLayers": [0]
417
+ },
418
+ {
419
+ "type": "rect",
420
+ "width": 1,
421
+ "center": { "x": 8.45, "y": -0.4461261293105139 },
422
+ "height": 0.6,
423
+ "layers": ["top"],
424
+ "connectedTo": [
425
+ "pcb_smtpad_18",
426
+ "connectivity_net28",
427
+ "source_trace_11",
428
+ "source_port_18",
429
+ "source_port_9",
430
+ "pcb_smtpad_9",
431
+ "pcb_port_9",
432
+ "pcb_smtpad_18",
433
+ "pcb_port_18"
434
+ ],
435
+ "zLayers": [0]
436
+ },
437
+ {
438
+ "type": "rect",
439
+ "width": 1,
440
+ "center": { "x": 8.45, "y": 0.8238738706894861 },
441
+ "height": 0.6,
442
+ "layers": ["top"],
443
+ "connectedTo": [
444
+ "pcb_smtpad_19",
445
+ "connectivity_net31",
446
+ "source_trace_12",
447
+ "source_port_19",
448
+ "source_port_8",
449
+ "pcb_smtpad_8",
450
+ "pcb_port_8",
451
+ "pcb_smtpad_19",
452
+ "pcb_port_19"
453
+ ],
454
+ "zLayers": [0]
455
+ },
456
+ {
457
+ "type": "rect",
458
+ "width": 20,
459
+ "center": { "x": 0, "y": 0 },
460
+ "height": 10,
461
+ "layers": ["bottom"],
462
+ "connectedTo": [
463
+ "source_net_0",
464
+ "unnamedsubcircuit760_connectivity_net0",
465
+ "connectivity_net26",
466
+ "source_trace_10",
467
+ "source_port_17",
468
+ "source_trace_6",
469
+ "source_port_13",
470
+ "source_trace_4",
471
+ "source_port_11",
472
+ "source_trace_2",
473
+ "source_port_3",
474
+ "source_trace_0",
475
+ "source_port_1",
476
+ "source_net_0",
477
+ "pcb_smtpad_1",
478
+ "pcb_port_1",
479
+ "pcb_smtpad_3",
480
+ "pcb_port_3",
481
+ "pcb_smtpad_11",
482
+ "pcb_port_11",
483
+ "pcb_smtpad_13",
484
+ "pcb_port_13",
485
+ "pcb_smtpad_17",
486
+ "pcb_port_17"
487
+ ],
488
+ "isCopperPour": true,
489
+ "zLayers": [3]
490
+ },
491
+ {
492
+ "type": "rect",
493
+ "width": 20,
494
+ "center": { "x": 0, "y": 0 },
495
+ "height": 10,
496
+ "layers": ["inner2"],
497
+ "connectedTo": [
498
+ "source_net_1",
499
+ "unnamedsubcircuit760_connectivity_net1",
500
+ "connectivity_net24",
501
+ "source_trace_9",
502
+ "source_port_16",
503
+ "source_trace_1",
504
+ "source_port_2",
505
+ "source_net_1",
506
+ "pcb_smtpad_2",
507
+ "pcb_port_2",
508
+ "pcb_smtpad_16",
509
+ "pcb_port_16"
510
+ ],
511
+ "isCopperPour": true,
512
+ "zLayers": [2]
513
+ },
514
+ {
515
+ "obstacleId": "escape-via-obstacle:escape-via:source_trace_9:pcb_port_16:inner2:0",
516
+ "type": "rect",
517
+ "layers": ["top", "inner1", "inner2"],
518
+ "zLayers": [0, 1, 2],
519
+ "center": { "x": 3.3500000000000005, "y": -1.716126129310514 },
520
+ "width": 0.3,
521
+ "height": 0.3,
522
+ "connectedTo": ["source_trace_9"]
523
+ },
524
+ {
525
+ "obstacleId": "escape-via-obstacle:escape-via:source_net_1:pcb_port_2:inner2:2",
526
+ "type": "rect",
527
+ "layers": ["top", "inner1", "inner2"],
528
+ "zLayers": [0, 1, 2],
529
+ "center": { "x": -1.3499999999999999, "y": 0 },
530
+ "width": 0.3,
531
+ "height": 0.3,
532
+ "connectedTo": ["source_net_1"]
533
+ },
534
+ {
535
+ "obstacleId": "escape-via-obstacle:escape-via:source_net_0:pcb_port_11:bottom:3",
536
+ "type": "rect",
537
+ "layers": ["top", "inner1", "inner2", "bottom"],
538
+ "zLayers": [0, 1, 2, 3],
539
+ "center": { "x": -0.5600000000000005, "y": 4.16 },
540
+ "width": 0.3,
541
+ "height": 0.3,
542
+ "connectedTo": ["source_net_0"]
543
+ },
544
+ {
545
+ "obstacleId": "escape-via-obstacle:escape-via:source_net_0:pcb_port_13:bottom:4",
546
+ "type": "rect",
547
+ "layers": ["top", "inner1", "inner2", "bottom"],
548
+ "zLayers": [0, 1, 2, 3],
549
+ "center": { "x": 3.3500000000000005, "y": -4.306126129310514 },
550
+ "width": 0.3,
551
+ "height": 0.3,
552
+ "connectedTo": ["source_net_0"]
553
+ },
554
+ {
555
+ "obstacleId": "escape-via-obstacle:escape-via:source_net_0:pcb_port_1:bottom:6",
556
+ "type": "rect",
557
+ "layers": ["top", "inner1", "inner2", "bottom"],
558
+ "zLayers": [0, 1, 2, 3],
559
+ "center": { "x": -1.3499999999999999, "y": 1.27 },
560
+ "width": 0.3,
561
+ "height": 0.3,
562
+ "connectedTo": ["source_net_0"]
563
+ },
564
+ {
565
+ "obstacleId": "escape-via-obstacle:escape-via:source_net_0:pcb_port_3:bottom:8",
566
+ "type": "rect",
567
+ "layers": ["top", "inner1", "inner2", "bottom"],
568
+ "zLayers": [0, 1, 2, 3],
569
+ "center": { "x": -1.3499999999999999, "y": -1.27 },
570
+ "width": 0.3,
571
+ "height": 0.3,
572
+ "connectedTo": ["source_net_0"]
573
+ },
574
+ {
575
+ "obstacleId": "escape-via-obstacle:escape-via:source_net_0:pcb_port_17:bottom:9",
576
+ "type": "rect",
577
+ "layers": ["top", "inner1", "inner2", "bottom"],
578
+ "zLayers": [0, 1, 2, 3],
579
+ "center": { "x": 7.6499999999999995, "y": -1.716126129310514 },
580
+ "width": 0.3,
581
+ "height": 0.3,
582
+ "connectedTo": ["source_net_0"]
583
+ }
584
+ ],
585
+ "layerCount": 4,
586
+ "connections": [
587
+ {
588
+ "pointsToConnect": [
589
+ {
590
+ "x": -1.1300000000000006,
591
+ "y": 4.16,
592
+ "layer": "top",
593
+ "pointId": "pcb_port_11",
594
+ "pcb_port_id": "pcb_port_11"
595
+ },
596
+ {
597
+ "x": -0.5600000000000005,
598
+ "y": 4.16,
599
+ "layer": "top",
600
+ "pointId": "escape-via:source_net_0:pcb_port_11:bottom:3",
601
+ "terminalVia": { "toLayer": "bottom", "viaDiameter": 0.3 }
602
+ }
603
+ ],
604
+ "name": "source_net_0_mst0",
605
+ "rootConnectionName": "source_net_0"
606
+ },
607
+ {
608
+ "pointsToConnect": [
609
+ {
610
+ "x": 3.3500000000000005,
611
+ "y": -4.306126129310514,
612
+ "layer": "top",
613
+ "pointId": "escape-via:source_net_0:pcb_port_13:bottom:4",
614
+ "terminalVia": { "toLayer": "bottom", "viaDiameter": 0.3 }
615
+ },
616
+ {
617
+ "x": 3.97,
618
+ "y": -4.306126129310514,
619
+ "layer": "top",
620
+ "pointId": "pcb_port_13",
621
+ "pcb_port_id": "pcb_port_13"
622
+ }
623
+ ],
624
+ "name": "source_net_0_mst1",
625
+ "rootConnectionName": "source_net_0"
626
+ },
627
+ {
628
+ "pointsToConnect": [
629
+ {
630
+ "x": 7.6499999999999995,
631
+ "y": -1.716126129310514,
632
+ "layer": "top",
633
+ "pointId": "escape-via:source_net_0:pcb_port_17:bottom:9",
634
+ "terminalVia": { "toLayer": "bottom", "viaDiameter": 0.3 }
635
+ },
636
+ {
637
+ "x": 8.45,
638
+ "y": -1.716126129310514,
639
+ "layer": "top",
640
+ "pointId": "pcb_port_17",
641
+ "pcb_port_id": "pcb_port_17"
642
+ }
643
+ ],
644
+ "name": "source_net_0_mst2",
645
+ "rootConnectionName": "source_net_0"
646
+ },
647
+ {
648
+ "pointsToConnect": [
649
+ {
650
+ "x": -2.15,
651
+ "y": 1.27,
652
+ "layer": "top",
653
+ "pointId": "pcb_port_1",
654
+ "pcb_port_id": "pcb_port_1"
655
+ },
656
+ {
657
+ "x": -1.3499999999999999,
658
+ "y": 1.27,
659
+ "layer": "top",
660
+ "pointId": "escape-via:source_net_0:pcb_port_1:bottom:6",
661
+ "terminalVia": { "toLayer": "bottom", "viaDiameter": 0.3 }
662
+ }
663
+ ],
664
+ "name": "source_net_0_mst3",
665
+ "rootConnectionName": "source_net_0"
666
+ },
667
+ {
668
+ "pointsToConnect": [
669
+ {
670
+ "x": -2.15,
671
+ "y": -1.27,
672
+ "layer": "top",
673
+ "pointId": "pcb_port_3",
674
+ "pcb_port_id": "pcb_port_3"
675
+ },
676
+ {
677
+ "x": -1.3499999999999999,
678
+ "y": -1.27,
679
+ "layer": "top",
680
+ "pointId": "escape-via:source_net_0:pcb_port_3:bottom:8",
681
+ "terminalVia": { "toLayer": "bottom", "viaDiameter": 0.3 }
682
+ }
683
+ ],
684
+ "name": "source_net_0_mst4",
685
+ "rootConnectionName": "source_net_0"
686
+ },
687
+ {
688
+ "name": "source_trace_12",
689
+ "pointsToConnect": [
690
+ {
691
+ "x": 8.45,
692
+ "y": 0.8238738706894861,
693
+ "layer": "top",
694
+ "pointId": "pcb_port_19",
695
+ "pcb_port_id": "pcb_port_19"
696
+ },
697
+ {
698
+ "x": 2.15,
699
+ "y": 1.27,
700
+ "layer": "top",
701
+ "pointId": "pcb_port_8",
702
+ "pcb_port_id": "pcb_port_8"
703
+ }
704
+ ],
705
+ "source_trace_id": "source_trace_12",
706
+ "rootConnectionName": "source_trace_12"
707
+ },
708
+ {
709
+ "name": "source_trace_11",
710
+ "pointsToConnect": [
711
+ {
712
+ "x": 8.45,
713
+ "y": -0.4461261293105139,
714
+ "layer": "top",
715
+ "pointId": "pcb_port_18",
716
+ "pcb_port_id": "pcb_port_18"
717
+ },
718
+ {
719
+ "x": 2.15,
720
+ "y": 2.54,
721
+ "layer": "top",
722
+ "pointId": "pcb_port_9",
723
+ "pcb_port_id": "pcb_port_9"
724
+ }
725
+ ],
726
+ "source_trace_id": "source_trace_11",
727
+ "rootConnectionName": "source_trace_11"
728
+ },
729
+ {
730
+ "pointsToConnect": [
731
+ {
732
+ "x": 3.3500000000000005,
733
+ "y": -1.716126129310514,
734
+ "layer": "top",
735
+ "pointId": "escape-via:source_trace_9:pcb_port_16:inner2:0",
736
+ "terminalVia": { "toLayer": "inner2", "viaDiameter": 0.3 }
737
+ },
738
+ {
739
+ "x": 4.15,
740
+ "y": -1.716126129310514,
741
+ "layer": "top",
742
+ "pointId": "pcb_port_16",
743
+ "pcb_port_id": "pcb_port_16"
744
+ }
745
+ ],
746
+ "name": "source_trace_9__source_net_1_mst0",
747
+ "rootConnectionName": "source_trace_9__source_net_1",
748
+ "mergedConnectionNames": {
749
+ "$ref": "$.simpleRouteJson.connections[8].mergedConnectionNames"
750
+ }
751
+ },
752
+ {
753
+ "pointsToConnect": [
754
+ {
755
+ "x": -2.15,
756
+ "y": 0,
757
+ "layer": "top",
758
+ "pointId": "pcb_port_2",
759
+ "pcb_port_id": "pcb_port_2"
760
+ },
761
+ {
762
+ "x": -1.3499999999999999,
763
+ "y": 0,
764
+ "layer": "top",
765
+ "pointId": "escape-via:source_net_1:pcb_port_2:inner2:2",
766
+ "terminalVia": { "toLayer": "inner2", "viaDiameter": 0.3 }
767
+ }
768
+ ],
769
+ "name": "source_trace_9__source_net_1_mst1",
770
+ "rootConnectionName": "source_trace_9__source_net_1",
771
+ "mergedConnectionNames": ["source_trace_9", "source_net_1"]
772
+ },
773
+ {
774
+ "name": "source_trace_8",
775
+ "pointsToConnect": [
776
+ {
777
+ "x": 4.15,
778
+ "y": -0.4461261293105139,
779
+ "layer": "top",
780
+ "pointId": "pcb_port_15",
781
+ "pcb_port_id": "pcb_port_15"
782
+ },
783
+ {
784
+ "x": 2.15,
785
+ "y": -1.27,
786
+ "layer": "top",
787
+ "pointId": "pcb_port_6",
788
+ "pcb_port_id": "pcb_port_6"
789
+ }
790
+ ],
791
+ "source_trace_id": "source_trace_8",
792
+ "rootConnectionName": "source_trace_8"
793
+ },
794
+ {
795
+ "name": "source_trace_7",
796
+ "pointsToConnect": [
797
+ {
798
+ "x": 4.15,
799
+ "y": 0.8238738706894861,
800
+ "layer": "top",
801
+ "pointId": "pcb_port_14",
802
+ "pcb_port_id": "pcb_port_14"
803
+ },
804
+ {
805
+ "x": 2.15,
806
+ "y": 0,
807
+ "layer": "top",
808
+ "pointId": "pcb_port_7",
809
+ "pcb_port_id": "pcb_port_7"
810
+ }
811
+ ],
812
+ "source_trace_id": "source_trace_7",
813
+ "rootConnectionName": "source_trace_7"
814
+ },
815
+ {
816
+ "name": "source_trace_5",
817
+ "pointsToConnect": [
818
+ {
819
+ "x": 3.97,
820
+ "y": -3.2861261293105146,
821
+ "layer": "top",
822
+ "pointId": "pcb_port_12",
823
+ "pcb_port_id": "pcb_port_12"
824
+ },
825
+ {
826
+ "x": 2.15,
827
+ "y": -2.54,
828
+ "layer": "top",
829
+ "pointId": "pcb_port_5",
830
+ "pcb_port_id": "pcb_port_5"
831
+ }
832
+ ],
833
+ "source_trace_id": "source_trace_5",
834
+ "rootConnectionName": "source_trace_5"
835
+ },
836
+ {
837
+ "name": "source_trace_3",
838
+ "pointsToConnect": [
839
+ {
840
+ "x": -2.1500000000000004,
841
+ "y": 4.16,
842
+ "layer": "top",
843
+ "pointId": "pcb_port_10",
844
+ "pcb_port_id": "pcb_port_10"
845
+ },
846
+ {
847
+ "x": -2.15,
848
+ "y": 2.54,
849
+ "layer": "top",
850
+ "pointId": "pcb_port_0",
851
+ "pcb_port_id": "pcb_port_0"
852
+ }
853
+ ],
854
+ "source_trace_id": "source_trace_3",
855
+ "rootConnectionName": "source_trace_3"
856
+ }
857
+ ],
858
+ "minTraceWidth": 0.15
859
+ }
860
+ }
861
+ ]