@tscircuit/core 0.0.62 → 0.0.63

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.
package/dist/index.js CHANGED
@@ -2521,23 +2521,31 @@ searched component ${targetComponent.getString()}, which has ports: ${targetComp
2521
2521
  return { ...t, layers: [candidateLayerSelections[idx]] };
2522
2522
  });
2523
2523
  }
2524
+ ;
2525
+ orderedRoutePoints[0].pcb_port_id = ports[0].pcb_port_id;
2526
+ orderedRoutePoints[orderedRoutePoints.length - 1].pcb_port_id = ports[1].pcb_port_id;
2524
2527
  const routes = [];
2525
2528
  for (const [a, b] of pairs(orderedRoutePoints)) {
2526
2529
  const dominantLayer = "via_to_layer" in a ? a.via_to_layer : null;
2527
2530
  const BOUNDS_MARGIN = 2;
2528
2531
  const aLayer = "layers" in a && a.layers.length === 1 ? a.layers[0] : dominantLayer ?? "top";
2529
2532
  const bLayer = "layers" in b && b.layers.length === 1 ? b.layers[0] : dominantLayer ?? "top";
2533
+ const pcbPortA = "pcb_port_id" in a ? a.pcb_port_id : null;
2534
+ const pcbPortB = "pcb_port_id" in b ? b.pcb_port_id : null;
2530
2535
  const ijump = new MultilayerIjump({
2531
2536
  OBSTACLE_MARGIN: 0.3,
2532
- isRemovePathLoopsEnabled: true,
2537
+ // isRemovePathLoopsEnabled: true,
2538
+ optimizeWithGoalBoxes: false,
2539
+ // Boolean(pcbPortA && pcbPortB),
2540
+ connMap,
2533
2541
  input: {
2534
2542
  obstacles,
2535
2543
  connections: [
2536
2544
  {
2537
- name: connMap.getNetConnectedToId(this.source_trace_id),
2545
+ name: this.source_trace_id,
2538
2546
  pointsToConnect: [
2539
- { ...a, layer: aLayer },
2540
- { ...b, layer: bLayer }
2547
+ { ...a, layer: aLayer, pcb_port_id: pcbPortA },
2548
+ { ...b, layer: bLayer, pcb_port_id: pcbPortB }
2541
2549
  ]
2542
2550
  }
2543
2551
  ],
@@ -44,7 +44,13 @@ import { getFullConnectivityMapFromCircuitJson } from "circuit-json-to-connectiv
44
44
 
45
45
  type PcbRouteObjective =
46
46
  | RouteHintPoint
47
- | { layers: string[]; x: number; y: number; via?: boolean }
47
+ | {
48
+ layers: string[]
49
+ x: number
50
+ y: number
51
+ via?: boolean
52
+ pcb_port_id?: string
53
+ }
48
54
 
49
55
  const portToObjective = (port: Port): PcbRouteObjective => {
50
56
  const portPosition = port._getGlobalPcbPositionAfterLayout()
@@ -422,6 +428,9 @@ export class Trace extends PrimitiveComponent<typeof traceProps> {
422
428
  return { ...t, layers: [candidateLayerSelections[idx]] }
423
429
  })
424
430
  }
431
+ ;(orderedRoutePoints[0] as any).pcb_port_id = ports[0].pcb_port_id
432
+ ;(orderedRoutePoints[orderedRoutePoints.length - 1] as any).pcb_port_id =
433
+ ports[1].pcb_port_id
425
434
 
426
435
  const routes: PCBTrace["route"][] = []
427
436
  for (const [a, b] of pairs(orderedRoutePoints)) {
@@ -432,23 +441,28 @@ export class Trace extends PrimitiveComponent<typeof traceProps> {
432
441
  const aLayer =
433
442
  "layers" in a && a.layers.length === 1
434
443
  ? a.layers[0]
435
- : dominantLayer ?? "top"
444
+ : (dominantLayer ?? "top")
436
445
  const bLayer =
437
446
  "layers" in b && b.layers.length === 1
438
447
  ? b.layers[0]
439
- : dominantLayer ?? "top"
448
+ : (dominantLayer ?? "top")
449
+
450
+ const pcbPortA = "pcb_port_id" in a ? a.pcb_port_id : null
451
+ const pcbPortB = "pcb_port_id" in b ? b.pcb_port_id : null
440
452
 
441
453
  const ijump = new MultilayerIjump({
442
454
  OBSTACLE_MARGIN: 0.3,
443
- isRemovePathLoopsEnabled: true,
455
+ // isRemovePathLoopsEnabled: true,
456
+ optimizeWithGoalBoxes: false, // Boolean(pcbPortA && pcbPortB),
457
+ connMap,
444
458
  input: {
445
459
  obstacles,
446
460
  connections: [
447
461
  {
448
- name: connMap.getNetConnectedToId(this.source_trace_id!)!,
462
+ name: this.source_trace_id!,
449
463
  pointsToConnect: [
450
- { ...a, layer: aLayer },
451
- { ...b, layer: bLayer },
464
+ { ...a, layer: aLayer, pcb_port_id: pcbPortA! },
465
+ { ...b, layer: bLayer, pcb_port_id: pcbPortB! },
452
466
  ],
453
467
  },
454
468
  ],
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@tscircuit/core",
3
3
  "module": "index.ts",
4
4
  "type": "module",
5
- "version": "0.0.62",
5
+ "version": "0.0.63",
6
6
  "types": "dist/index.d.ts",
7
7
  "main": "dist/index.js",
8
8
  "files": [
@@ -27,6 +27,7 @@
27
27
  "debug": "^4.3.6",
28
28
  "howfat": "^0.3.8",
29
29
  "looks-same": "^9.0.1",
30
+ "performance-now": "^2.1.0",
30
31
  "tsup": "^8.2.4"
31
32
  },
32
33
  "peerDependencies": {
@@ -34,12 +35,14 @@
34
35
  },
35
36
  "dependencies": {
36
37
  "@lume/kiwi": "^0.4.3",
37
- "@tscircuit/infgrid-ijump-astar": "^0.0.17",
38
+ "@tscircuit/infgrid-ijump-astar": "^0.0.18",
39
+ "@tscircuit/math-utils": "^0.0.4",
38
40
  "@tscircuit/props": "^0.0.63",
39
41
  "@tscircuit/soup": "^0.0.69",
40
42
  "@tscircuit/soup-util": "^0.0.26",
41
- "circuit-json-to-connectivity-map": "^0.0.8",
43
+ "circuit-json-to-connectivity-map": "^0.0.15",
42
44
  "footprinter": "^0.0.44",
45
+ "nanoid": "^5.0.7",
43
46
  "react": "^18.3.1",
44
47
  "react-reconciler": "^0.29.2",
45
48
  "schematic-symbols": "0.0.17",