@tscircuit/schematic-trace-solver 0.0.112 → 0.0.114
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.d.ts +10 -0
- package/dist/index.js +128 -10
- package/lib/solvers/LongDistancePairSolver/LongDistancePairSolver.ts +55 -1
- package/lib/solvers/MspConnectionPairSolver/MspConnectionPairSolver.ts +13 -4
- package/lib/solvers/MspConnectionPairSolver/isLabeledPeripheralConnection.ts +44 -0
- package/lib/solvers/SchematicTracePipelineSolver/SchematicTracePipelineSolver.ts +30 -3
- package/lib/solvers/TraceOverlapShiftSolver/TraceOverlapIssueSolver/TraceOverlapIssueSolver.ts +11 -1
- package/lib/solvers/TraceOverlapShiftSolver/TraceOverlapShiftSolver.ts +12 -0
- package/package.json +1 -1
- package/site/bug-reports/bug-report-20260728T144234Z.page.tsx +4 -0
- package/site/bug-reports/bug-report-20260728T225606Z.page.tsx +4 -0
- package/tests/bug-reports/bug-report-20260707T092615Z/__snapshots__/bug-report-20260707T092615Z.snap.svg +1 -1
- package/tests/bug-reports/bug-report-20260728T144234Z/__snapshots__/bug-report-20260728T144234Z.snap.svg +108 -0
- package/tests/bug-reports/bug-report-20260728T144234Z/bug-report-20260728T144234Z.json +518 -0
- package/tests/bug-reports/bug-report-20260728T144234Z/bug-report-20260728T144234Z.test.ts +12 -0
- package/tests/bug-reports/bug-report-20260728T225606Z/__snapshots__/bug-report-20260728T225606Z.snap.svg +131 -0
- package/tests/bug-reports/bug-report-20260728T225606Z/bug-report-20260728T225606Z.json +1127 -0
- package/tests/bug-reports/bug-report-20260728T225606Z/bug-report-20260728T225606Z.test.ts +35 -0
- package/tests/repros/__snapshots__/repro-atmega328p-missing-gnd-netlabel.snap.svg +1 -1
- package/tests/repros/__snapshots__/repro-rp2040-usb-cc2-ground-overlap.snap.svg +70 -0
- package/tests/repros/assets/repro-rp2040-usb-cc2-ground-overlap.input.json +164 -0
- package/tests/repros/repro-rp2040-usb-cc2-ground-overlap.test.ts +95 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
<svg width="640" height="640" viewBox="0 0 640 640" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" fill="white"/><g><polyline data-points="-1.1800000000000002,2.000000000000001 -2.9699999999999998,4.3" data-type="line" data-label="" points="278.6468919877098,243.23327818482625 160.18789884188138,91.02339872370601" fill="none" stroke="hsl(104, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-1.1800000000000002,2.000000000000001 -2.67,3.3800000000000003" data-type="line" data-label="" points="278.6468919877098,243.23327818482625 180.04136138028838,151.90735050815408" fill="none" stroke="hsl(104, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="2.02,-2.1000000000000005 2.1399999999999997,-2.6199999999999997" data-type="line" data-label="" points="490.41715906405113,514.5639328763887 498.3585440794139,548.9766012762941" fill="none" stroke="hsl(136, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-1.1800000000000002,1.8000000000000007 -4.1425,3.000000000000001" data-type="line" data-label="" points="278.6468919877098,256.4689198770976 82.5939494209407,177.0550697234696" fill="none" stroke="hsl(168, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-1.1800000000000002,1.6000000000000008 -4.1425,2.200000000000002" data-type="line" data-label="" points="278.6468919877098,269.70456156936893 82.5939494209407,229.99763649255485" fill="none" stroke="hsl(112, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-1.1800000000000002,1.4000000000000008 -4.1425,1.4000000000000015" data-type="line" data-label="" points="278.6468919877098,282.94020326164025 82.5939494209407,282.9402032616402" fill="none" stroke="hsl(248, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-1.1800000000000002,1.2000000000000008 -4.1425,0.6000000000000012" data-type="line" data-label="" points="278.6468919877098,296.17584495391156 82.5939494209407,335.88277003072557" fill="none" stroke="hsl(272, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-1.1800000000000002,1.0000000000000009 -4.1425,-0.1999999999999991" data-type="line" data-label="" points="278.6468919877098,309.4114866461829 82.5939494209407,388.8253367998109" fill="none" stroke="hsl(104, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-1.1800000000000002,-2.0000000000000004 -1.7425000000000002,-2.0000000000000004" data-type="line" data-label="" points="278.6468919877098,507.94611203025295 241.42164972819666,507.94611203025295" fill="none" stroke="hsl(88, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-1.1800000000000002,2.400000000000001 2.02,0.49999999999999956" data-type="line" data-label="" points="278.6468919877098,216.7619948002836 490.41715906405113,342.50059087686134" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.1800000000000002,2.400000000000001 2.02,0.6999999999999997" data-type="line" data-label="" points="278.6468919877098,216.7619948002836 490.41715906405113,329.26494918458997" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.1800000000000002,2.400000000000001 -2.67,2.6199999999999997" data-type="line" data-label="" points="278.6468919877098,216.7619948002836 180.04136138028838,202.2027889387852" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.1800000000000002,2.400000000000001 3.08,-2.6199999999999997" data-type="line" data-label="" points="278.6468919877098,216.7619948002836 560.5660600330891,548.9766012762941" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="2.02,0.49999999999999956 2.02,0.6999999999999997" data-type="line" data-label="" points="490.41715906405113,342.50059087686134 490.41715906405113,329.26494918458997" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="2.02,0.49999999999999956 -2.67,2.6199999999999997" data-type="line" data-label="" points="490.41715906405113,342.50059087686134 180.04136138028838,202.2027889387852" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="2.02,0.49999999999999956 3.08,-2.6199999999999997" data-type="line" data-label="" points="490.41715906405113,342.50059087686134 560.5660600330891,548.9766012762941" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="2.02,0.6999999999999997 -2.67,2.6199999999999997" data-type="line" data-label="" points="490.41715906405113,329.26494918458997 180.04136138028838,202.2027889387852" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="2.02,0.6999999999999997 3.08,-2.6199999999999997" data-type="line" data-label="" points="490.41715906405113,329.26494918458997 560.5660600330891,548.9766012762941" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-2.67,2.6199999999999997 3.08,-2.6199999999999997" data-type="line" data-label="" points="180.04136138028838,202.2027889387852 560.5660600330891,548.9766012762941" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.1800000000000002,2.2000000000000006 -2.37,4.3" data-type="line" data-label="" points="278.6468919877098,229.99763649255493 199.89482391869535,91.02339872370601" fill="none" stroke="hsl(154, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-2.67,3.3800000000000003 -2.67,3.84 -3.17,3.84 -3.17,4.3 -2.9699999999999998,4.3" data-type="line" data-label="" points="180.04136138028838,151.90735050815408 180.04136138028838,121.46537461593005 146.95225714961003,121.46537461593005 146.95225714961003,91.02339872370601 160.18789884188138,91.02339872370601" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="2.02,-2.1000000000000005 2.08,-2.1000000000000005 2.08,-2.6199999999999997 2.1399999999999997,-2.6199999999999997" data-type="line" data-label="" points="490.41715906405113,514.5639328763887 494.38785157173254,514.5639328763887 494.38785157173254,548.9766012762941 498.3585440794139,548.9766012762941" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-1.1800000000000002,1.6000000000000008 -3.8312500000000003,1.6000000000000008 -3.8312500000000003,2.200000000000002 -4.1425,2.200000000000002" data-type="line" data-label="" points="278.6468919877098,269.70456156936893 103.19191680453793,269.70456156936893 103.19191680453793,229.99763649255485 82.5939494209407,229.99763649255485" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-1.1800000000000002,1.4000000000000008 -4.1425,1.4000000000000015" data-type="line" data-label="" points="278.6468919877098,282.94020326164025 82.5939494209407,282.9402032616402" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-1.1800000000000002,1.2000000000000008 -2.66125,1.2000000000000008 -2.66125,0.6000000000000012 -4.1425,0.6000000000000012" data-type="line" data-label="" points="278.6468919877098,296.17584495391156 180.62042070432526,296.17584495391156 180.62042070432526,335.88277003072557 82.5939494209407,335.88277003072557" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-1.1800000000000002,1.0000000000000009 -1.3800000000000001,1.0000000000000009 -1.3800000000000001,-0.1999999999999991 -4.1425,-0.1999999999999991" data-type="line" data-label="" points="278.6468919877098,309.4114866461829 265.41125029543844,309.4114866461829 265.41125029543844,388.8253367998109 82.5939494209407,388.8253367998109" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-1.1800000000000002,-2.0000000000000004 -1.7425000000000002,-2.0000000000000004" data-type="line" data-label="" points="278.6468919877098,507.94611203025295 241.42164972819666,507.94611203025295" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-2.67,2.6199999999999997 -2.67,2.400000000000001 -1.1800000000000002,2.400000000000001" data-type="line" data-label="" points="180.04136138028838,202.2027889387852 180.04136138028838,216.7619948002836 278.6468919877098,216.7619948002836" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="2.02,0.6999999999999997 2.22,0.6999999999999997 2.22,0.49999999999999956 2.02,0.49999999999999956" data-type="line" data-label="" points="490.41715906405113,329.26494918458997 503.65280075632245,329.26494918458997 503.65280075632245,342.50059087686134 490.41715906405113,342.50059087686134" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-1.1800000000000002,1.8000000000000007 -3.63125,1.8000000000000007 -3.63125,3.000000000000001 -4.1425,3.000000000000001" data-type="line" data-label="" points="278.6468919877098,256.4689198770976 116.42755849680927,256.4689198770976 116.42755849680927,177.0550697234696 82.5939494209407,177.0550697234696" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="2.22,0.6999999999999997 2.51,0.6999999999999997 2.51,0.6989999999999997" data-type="line" data-label="" points="503.65280075632245,329.26494918458997 522.8444812101159,329.26494918458997 522.8444812101159,329.33112739305136" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="3.08,-2.6199999999999997 3.321,-2.6199999999999997 3.321,-2.9709999999999996" data-type="line" data-label="" points="560.5660600330891,548.9766012762941 576.5150082722762,548.9766012762941 576.5150082722762,572.2051524462303" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-1.1800000000000002,2.2000000000000006 -1.481,2.2000000000000006 -1.481,2.5010000000000003" data-type="line" data-label="" points="278.6468919877098,229.99763649255493 258.72725124084144,229.99763649255493 258.72725124084144,210.0779957456866" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-2.37,4.3 -2.0690000000000004,4.3 -2.0690000000000004,4.651" data-type="line" data-label="" points="199.89482391869535,91.02339872370601 219.8144646655637,91.02339872370601 219.8144646655637,67.79484755376978" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="0.41999999999999993" data-y="0" x="278.64689198770975" y="210.14417395414796" width="211.77026707634133" height="330.89104230678333" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.015110714285714285"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="-2.67" data-y="4.3" x="160.1878988418814" y="68.52280784684476" width="39.706925076813974" height="45.001181753722506" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.015110714285714285"/></g><g><rect data-type="rect" data-label="schematic_component_2" data-x="-2.5975" data-y="3" x="150.2611675726779" y="151.90735050815408" width="69.15622784211772" height="50.29543843063112" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.015110714285714285"/></g><g><rect data-type="rect" data-label="schematic_component_3" data-x="2.61" data-y="-2.57" x="498.35854407941383" y="521.8795797683764" width="62.20751595367523" height="47.576222169699804" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.015110714285714285"/></g><g><rect data-type="rect" data-label="schematic_component_4" data-x="-1.9425" data-y="-2.0000000000000004" x="214.95036634365403" y="501.32829118411723" width="26.47128338454263" height="13.235641692271372" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.015110714285714285"/></g><g><rect data-type="rect" data-label="schematic_component_5" data-x="-4.3425" data-y="3.000000000000001" x="56.12266603639799" y="170.4372488773339" width="26.471283384542687" height="13.235641692271344" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.015110714285714285"/></g><g><rect data-type="rect" data-label="schematic_component_6" data-x="-4.3425" data-y="2.200000000000002" x="56.12266603639799" y="223.37981564641916" width="26.471283384542687" height="13.235641692271344" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.015110714285714285"/></g><g><rect data-type="rect" data-label="schematic_component_7" data-x="-4.3425" data-y="1.4000000000000015" x="56.12266603639799" y="276.32238241550453" width="26.471283384542687" height="13.235641692271315" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.015110714285714285"/></g><g><rect data-type="rect" data-label="schematic_component_8" data-x="-4.3425" data-y="0.6000000000000012" x="56.12266603639799" y="329.2649491845899" width="26.471283384542687" height="13.235641692271315" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.015110714285714285"/></g><g><rect data-type="rect" data-label="schematic_component_9" data-x="-4.3425" data-y="-0.19999999999999907" x="56.12266603639799" y="382.2075159536752" width="26.471283384542687" height="13.235641692271315" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.015110714285714285"/></g><g><rect data-type="rect" data-label="ESP32_S3_WROOM_1_N16R8" data-x="0.5399999999999998" data-y="-2.63" x="305.1181753722525" y="543.6823445993855" width="174.71047033798158" height="11.912077523044218" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.015110714285714285"/></g><g><rect data-type="rect" data-label="U1" data-x="-0.66" data-y="2.615" x="301.1474828645711" y="194.26140392342236" width="23.82415504608838" height="16.544552115339172" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.015110714285714285"/></g><g><rect data-type="rect" data-label="netId: GND
|
|
2
|
+
globalConnNetId: connectivity_net8" data-x="-2.67" data-y="2.190000000000001" x="164.15859134956276" y="216.7619948002836" width="31.765540061451247" height="27.794847553769785" fill="#00000066" stroke="#000000" stroke-width="0.015110714285714285"/></g><g><rect data-type="rect" data-label="netId: GND
|
|
3
|
+
globalConnNetId: connectivity_net8" data-x="2.51" data-y="0.48899999999999977" x="506.96171117939025" y="329.33112739305136" width="31.765540061451247" height="27.794847553769785" fill="#00000066" stroke="#000000" stroke-width="0.015110714285714285"/></g><g><rect data-type="rect" data-label="netId: GND
|
|
4
|
+
globalConnNetId: connectivity_net8" data-x="3.321" data-y="-3.1809999999999996" x="560.6322382415506" y="572.2051524462304" width="31.765540061451134" height="27.794847553769728" fill="#00000066" stroke="#000000" stroke-width="0.015110714285714285"/></g><g><rect data-type="rect" data-label="netId: V3V3
|
|
5
|
+
globalConnNetId: connectivity_net9" data-x="-1.481" data-y="2.7110000000000003" x="238.87378870243447" y="182.2831481919168" width="39.706925076813974" height="27.794847553769785" fill="#ef444466" stroke="#ef4444" stroke-width="0.015110714285714285"/></g><g><rect data-type="rect" data-label="netId: V3V3
|
|
6
|
+
globalConnNetId: connectivity_net9" data-x="-2.0690000000000004" data-y="4.861" x="199.9610021271567" y="40.00000000000003" width="39.706925076813974" height="27.794847553769785" fill="#ef444466" stroke="#ef4444" stroke-width="0.015110714285714285"/></g><g><rect data-type="rect" data-label="netId: .U1 > .EN to .C_EN > .pin1
|
|
7
|
+
globalConnNetId: connectivity_net0" data-x="-1.541" data-y="2.000000000000001" x="230.93240368707166" y="236.6154573386906" width="47.64831009217676" height="13.235641692271344" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.015110714285714285"/></g><g><rect data-type="rect" data-label="netId: .U1 > .EN to .C_EN > .pin1
|
|
8
|
+
globalConnNetId: connectivity_net0" data-x="-2.31" data-y="3.6100000000000003" x="180.04136138028838" y="130.0685417159064" width="47.648310092176786" height="13.235641692271344" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.015110714285714285"/></g><g><rect data-type="rect" data-label="netId: .U1 > .IO4 to .TCH1 > .pin1
|
|
9
|
+
globalConnNetId: connectivity_net2" data-x="-3.2800000000000002" data-y="2.2200000000000006" x="133.0548333727251" y="200.879224769558" width="13.235641692271344" height="55.589695107539626" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.015110714285714285"/></g><g><rect data-type="rect" data-label="netId: .U1 > .IO5 to .TCH2 > .pin1
|
|
10
|
+
globalConnNetId: connectivity_net3" data-x="-4.251250000000001" data-y="1.9000000000000012" x="47.602221696998285" y="243.23327818482625" width="55.5896951075396" height="13.235641692271344" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.015110714285714285"/></g><g><rect data-type="rect" data-label="netId: .U1 > .IO7 to .TCH4 > .pin1
|
|
11
|
+
globalConnNetId: connectivity_net5" data-x="-1.920625" data-y="0.7800000000000009" x="223.01583549988186" y="296.17584495391156" width="13.235641692271315" height="55.589695107539626" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.015110714285714285"/></g><g><rect data-type="rect" data-label="netId: .U1 > .IO15 to .TCH5 > .pin1
|
|
12
|
+
globalConnNetId: connectivity_net6" data-x="-1.86" data-y="0.20000000000000084" x="201.88017017253605" y="355.7362325691326" width="63.53108012290235" height="13.235641692271315" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.015110714285714285"/></g><g><rect data-type="rect" data-label="netId: .U1 > .IO21 to .TP_LED_DATA > .pin1
|
|
13
|
+
globalConnNetId: connectivity_net7" data-x="-1.4612500000000002" data-y="-1.7750000000000004" x="253.41645001181757" y="478.1659182226425" width="13.235641692271315" height="29.780193807610488" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.015110714285714285"/></g><g><rect data-type="rect" data-label="netId: .U1 > .IO0 to .SW_BOOT > .pin1
|
|
14
|
+
globalConnNetId: connectivity_net1" data-x="2.305" data-y="-2.1000000000000005" x="494.3878515717325" y="507.946112030253" width="29.780193807610544" height="13.235641692271315" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.015110714285714285"/></g><g><circle data-type="point" data-label="schematic_port_0
|
|
15
|
+
x-" data-x="-1.1800000000000002" data-y="2.400000000000001" cx="278.6468919877098" cy="216.7619948002836" r="3" fill="hsl(248, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_1
|
|
16
|
+
x-" data-x="-1.1800000000000002" data-y="2.2000000000000006" cx="278.6468919877098" cy="229.99763649255493" r="3" fill="hsl(248, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_2
|
|
17
|
+
x-" data-x="-1.1800000000000002" data-y="2.000000000000001" cx="278.6468919877098" cy="243.23327818482625" r="3" fill="hsl(248, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_3
|
|
18
|
+
x-" data-x="-1.1800000000000002" data-y="1.8000000000000007" cx="278.6468919877098" cy="256.4689198770976" r="3" fill="hsl(248, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_4
|
|
19
|
+
x-" data-x="-1.1800000000000002" data-y="1.6000000000000008" cx="278.6468919877098" cy="269.70456156936893" r="3" fill="hsl(248, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_5
|
|
20
|
+
x-" data-x="-1.1800000000000002" data-y="1.4000000000000008" cx="278.6468919877098" cy="282.94020326164025" r="3" fill="hsl(248, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_6
|
|
21
|
+
x-" data-x="-1.1800000000000002" data-y="1.2000000000000008" cx="278.6468919877098" cy="296.17584495391156" r="3" fill="hsl(248, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_7
|
|
22
|
+
x-" data-x="-1.1800000000000002" data-y="1.0000000000000009" cx="278.6468919877098" cy="309.4114866461829" r="3" fill="hsl(248, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_8
|
|
23
|
+
x-" data-x="-1.1800000000000002" data-y="0.8000000000000009" cx="278.6468919877098" cy="322.64712833845425" r="3" fill="hsl(248, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_9
|
|
24
|
+
x-" data-x="-1.1800000000000002" data-y="0.600000000000001" cx="278.6468919877098" cy="335.88277003072557" r="3" fill="hsl(248, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_10
|
|
25
|
+
x-" data-x="-1.1800000000000002" data-y="0.400000000000001" cx="278.6468919877098" cy="349.1184117229969" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_11
|
|
26
|
+
x-" data-x="-1.1800000000000002" data-y="0.20000000000000107" cx="278.6468919877098" cy="362.3540534152682" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_12
|
|
27
|
+
x-" data-x="-1.1800000000000002" data-y="8.881784197001252e-16" cx="278.6468919877098" cy="375.58969510753957" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_13
|
|
28
|
+
x-" data-x="-1.1800000000000002" data-y="-0.1999999999999993" cx="278.6468919877098" cy="388.8253367998109" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_14
|
|
29
|
+
x-" data-x="-1.1800000000000002" data-y="-0.39999999999999947" cx="278.6468919877098" cy="402.06097849208226" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_15
|
|
30
|
+
x-" data-x="-1.1800000000000002" data-y="-0.5999999999999996" cx="278.6468919877098" cy="415.2966201843536" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_16
|
|
31
|
+
x-" data-x="-1.1800000000000002" data-y="-0.7999999999999998" cx="278.6468919877098" cy="428.53226187662494" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_17
|
|
32
|
+
x-" data-x="-1.1800000000000002" data-y="-1" cx="278.6468919877098" cy="441.76790356889626" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_18
|
|
33
|
+
x-" data-x="-1.1800000000000002" data-y="-1.2000000000000002" cx="278.6468919877098" cy="455.00354526116763" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_19
|
|
34
|
+
x-" data-x="-1.1800000000000002" data-y="-1.4000000000000004" cx="278.6468919877098" cy="468.239186953439" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_20
|
|
35
|
+
x-" data-x="-1.1800000000000002" data-y="-1.6" cx="278.6468919877098" cy="481.4748286457103" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_21
|
|
36
|
+
x-" data-x="-1.1800000000000002" data-y="-1.8000000000000003" cx="278.6468919877098" cy="494.71047033798163" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_22
|
|
37
|
+
x-" data-x="-1.1800000000000002" data-y="-2.0000000000000004" cx="278.6468919877098" cy="507.94611203025295" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_23
|
|
38
|
+
x-" data-x="-1.1800000000000002" data-y="-2.2000000000000006" cx="278.6468919877098" cy="521.1817537225243" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_24
|
|
39
|
+
x-" data-x="-1.1800000000000002" data-y="-2.400000000000001" cx="278.6468919877098" cy="534.4173954147957" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_25
|
|
40
|
+
x+" data-x="2.02" data-y="-2.3000000000000007" cx="490.41715906405113" cy="527.79957456866" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_26
|
|
41
|
+
x+" data-x="2.02" data-y="-2.1000000000000005" cx="490.41715906405113" cy="514.5639328763887" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_27
|
|
42
|
+
x+" data-x="2.02" data-y="-1.9000000000000008" cx="490.41715906405113" cy="501.32829118411735" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_28
|
|
43
|
+
x+" data-x="2.02" data-y="-1.7000000000000006" cx="490.41715906405113" cy="488.092649491846" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_29
|
|
44
|
+
x+" data-x="2.02" data-y="-1.5000000000000007" cx="490.41715906405113" cy="474.85700779957466" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_30
|
|
45
|
+
x+" data-x="2.02" data-y="-1.3000000000000007" cx="490.41715906405113" cy="461.62136610730334" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_31
|
|
46
|
+
x+" data-x="2.02" data-y="-1.1000000000000008" cx="490.41715906405113" cy="448.385724415032" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_32
|
|
47
|
+
x+" data-x="2.02" data-y="-0.9000000000000008" cx="490.41715906405113" cy="435.15008272276066" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_33
|
|
48
|
+
x+" data-x="2.02" data-y="-0.7000000000000008" cx="490.41715906405113" cy="421.91444103048934" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_34
|
|
49
|
+
x+" data-x="2.02" data-y="-0.5000000000000009" cx="490.41715906405113" cy="408.678799338218" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_35
|
|
50
|
+
x+" data-x="2.02" data-y="-0.30000000000000093" cx="490.41715906405113" cy="395.4431576459467" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_36
|
|
51
|
+
x+" data-x="2.02" data-y="-0.10000000000000098" cx="490.41715906405113" cy="382.20751595367534" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_37
|
|
52
|
+
x+" data-x="2.02" data-y="0.0999999999999992" cx="490.41715906405113" cy="368.971874261404" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_38
|
|
53
|
+
x+" data-x="2.02" data-y="0.2999999999999994" cx="490.41715906405113" cy="355.73623256913265" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_39
|
|
54
|
+
x+" data-x="2.02" data-y="0.49999999999999956" cx="490.41715906405113" cy="342.50059087686134" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_40
|
|
55
|
+
x+" data-x="2.02" data-y="0.6999999999999997" cx="490.41715906405113" cy="329.26494918458997" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_41
|
|
56
|
+
x+" data-x="2.02" data-y="0.8999999999999999" cx="490.41715906405113" cy="316.02930749231865" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_42
|
|
57
|
+
x+" data-x="2.02" data-y="1.1" cx="490.41715906405113" cy="302.7936658000473" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_43
|
|
58
|
+
x+" data-x="2.02" data-y="1.3000000000000003" cx="490.41715906405113" cy="289.55802410777596" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_44
|
|
59
|
+
x+" data-x="2.02" data-y="1.5000000000000004" cx="490.41715906405113" cy="276.3223824155046" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_45
|
|
60
|
+
x+" data-x="2.02" data-y="1.7000000000000002" cx="490.41715906405113" cy="263.0867407232333" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_46
|
|
61
|
+
x+" data-x="2.02" data-y="1.9000000000000004" cx="490.41715906405113" cy="249.85109903096196" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_47
|
|
62
|
+
x+" data-x="2.02" data-y="2.1000000000000005" cx="490.41715906405113" cy="236.6154573386906" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_48
|
|
63
|
+
x+" data-x="2.02" data-y="2.3000000000000007" cx="490.41715906405113" cy="223.37981564641925" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_49
|
|
64
|
+
x-" data-x="-2.9699999999999998" data-y="4.3" cx="160.18789884188138" cy="91.02339872370601" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_50
|
|
65
|
+
x+" data-x="-2.37" data-y="4.3" cx="199.89482391869535" cy="91.02339872370601" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_51
|
|
66
|
+
y+" data-x="-2.67" data-y="3.3800000000000003" cx="180.04136138028838" cy="151.90735050815408" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_52
|
|
67
|
+
y-" data-x="-2.67" data-y="2.6199999999999997" cx="180.04136138028838" cy="202.2027889387852" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_53
|
|
68
|
+
x-" data-x="2.1399999999999997" data-y="-2.6199999999999997" cx="498.3585440794139" cy="548.9766012762941" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_54
|
|
69
|
+
x+" data-x="3.08" data-y="-2.6199999999999997" cx="560.5660600330891" cy="548.9766012762941" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_55
|
|
70
|
+
x+" data-x="-1.7425000000000002" data-y="-2.0000000000000004" cx="241.42164972819666" cy="507.94611203025295" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_56
|
|
71
|
+
x+" data-x="-4.1425" data-y="3.000000000000001" cx="82.5939494209407" cy="177.0550697234696" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_57
|
|
72
|
+
x+" data-x="-4.1425" data-y="2.200000000000002" cx="82.5939494209407" cy="229.99763649255485" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_58
|
|
73
|
+
x+" data-x="-4.1425" data-y="1.4000000000000015" cx="82.5939494209407" cy="282.9402032616402" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_59
|
|
74
|
+
x+" data-x="-4.1425" data-y="0.6000000000000012" cx="82.5939494209407" cy="335.88277003072557" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="schematic_port_60
|
|
75
|
+
x+" data-x="-4.1425" data-y="-0.1999999999999991" cx="82.5939494209407" cy="388.8253367998109" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
76
|
+
orientation: y-" data-x="-2.67" data-y="2.400000000000001" cx="180.04136138028838" cy="216.7619948002836" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
77
|
+
orientation: y-" data-x="2.51" data-y="0.6989999999999997" cx="522.8444812101159" cy="329.33112739305136" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
78
|
+
orientation: y-" data-x="3.321" data-y="-2.9709999999999996" cx="576.5150082722762" cy="572.2051524462303" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
79
|
+
orientation: y+" data-x="-1.481" data-y="2.5010000000000003" cx="258.72725124084144" cy="210.0779957456866" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
80
|
+
orientation: y+" data-x="-2.0690000000000004" data-y="4.651" cx="219.8144646655637" cy="67.79484755376978" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
81
|
+
orientation: x-" data-x="-1.1800000000000002" data-y="2.000000000000001" cx="278.6468919877098" cy="243.23327818482625" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
82
|
+
orientation: x+" data-x="-2.67" data-y="3.6100000000000003" cx="180.04136138028838" cy="136.68636256204206" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
83
|
+
orientation: y+" data-x="-3.2800000000000002" data-y="1.8000000000000007" cx="139.6726542188608" cy="256.4689198770976" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
84
|
+
orientation: x-" data-x="-3.8312500000000003" data-y="1.9000000000000012" cx="103.19191680453793" cy="249.8510990309619" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
85
|
+
orientation: y-" data-x="-1.920625" data-y="1.2000000000000008" cx="229.63365634601752" cy="296.17584495391156" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
86
|
+
orientation: x-" data-x="-1.3800000000000001" data-y="0.20000000000000084" cx="265.41125029543844" cy="362.35405341526825" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
87
|
+
orientation: y+" data-x="-1.4612500000000002" data-y="-2.0000000000000004" cx="260.03427085795323" cy="507.94611203025295" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
88
|
+
orientation: x+" data-x="2.08" data-y="-2.1000000000000005" cx="494.38785157173254" cy="514.5639328763887" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g id="crosshair" style="display: none"><line id="crosshair-h" y1="0" y2="640" stroke="#666" stroke-width="0.5"/><line id="crosshair-v" x1="0" x2="640" stroke="#666" stroke-width="0.5"/><text id="coordinates" font-family="monospace" font-size="12" fill="#666"></text></g><script><![CDATA[
|
|
89
|
+
document.currentScript.parentElement.addEventListener('mousemove', (e) => {
|
|
90
|
+
const svg = e.currentTarget;
|
|
91
|
+
const rect = svg.getBoundingClientRect();
|
|
92
|
+
const x = e.clientX - rect.left;
|
|
93
|
+
const y = e.clientY - rect.top;
|
|
94
|
+
const crosshair = svg.getElementById('crosshair');
|
|
95
|
+
const h = svg.getElementById('crosshair-h');
|
|
96
|
+
const v = svg.getElementById('crosshair-v');
|
|
97
|
+
const coords = svg.getElementById('coordinates');
|
|
98
|
+
|
|
99
|
+
crosshair.style.display = 'block';
|
|
100
|
+
h.setAttribute('x1', '0');
|
|
101
|
+
h.setAttribute('x2', '640');
|
|
102
|
+
h.setAttribute('y1', y);
|
|
103
|
+
h.setAttribute('y2', y);
|
|
104
|
+
v.setAttribute('x1', x);
|
|
105
|
+
v.setAttribute('x2', x);
|
|
106
|
+
v.setAttribute('y1', '0');
|
|
107
|
+
v.setAttribute('y2', '640');
|
|
108
|
+
|
|
109
|
+
// Calculate real coordinates using inverse transformation
|
|
110
|
+
const matrix = {"a":66.17820846135666,"c":0,"e":356.73717797211066,"b":0,"d":-66.17820846135666,"f":375.5896951075396};
|
|
111
|
+
// Manually invert and apply the affine transform
|
|
112
|
+
// Since we only use translate and scale, we can directly compute:
|
|
113
|
+
// x' = (x - tx) / sx
|
|
114
|
+
// y' = (y - ty) / sy
|
|
115
|
+
const sx = matrix.a;
|
|
116
|
+
const sy = matrix.d;
|
|
117
|
+
const tx = matrix.e;
|
|
118
|
+
const ty = matrix.f;
|
|
119
|
+
const realPoint = {
|
|
120
|
+
x: (x - tx) / sx,
|
|
121
|
+
y: (y - ty) / sy // Flip y back since we used negative scale
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
|
|
125
|
+
coords.setAttribute('x', (x + 5).toString());
|
|
126
|
+
coords.setAttribute('y', (y - 5).toString());
|
|
127
|
+
});
|
|
128
|
+
document.currentScript.parentElement.addEventListener('mouseleave', () => {
|
|
129
|
+
document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
|
|
130
|
+
});
|
|
131
|
+
]]></script></svg>
|