@tscircuit/rectdiff 0.0.19 → 0.0.21
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/.github/workflows/bun-test.yml +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +28 -35
- package/lib/solvers/RectDiffExpansionSolver/RectDiffExpansionSolver.ts +6 -3
- package/lib/solvers/RectDiffGridSolverPipeline/buildObstacleIndexes.ts +2 -1
- package/lib/solvers/RectDiffSeedingSolver/RectDiffSeedingSolver.ts +2 -7
- package/lib/types/capacity-mesh-types.ts +1 -0
- package/lib/utils/expandRectFromSeed.ts +3 -0
- package/lib/utils/rectToTree.ts +5 -1
- package/lib/utils/resizeSoftOverlaps.ts +8 -16
- package/package.json +1 -1
- package/tests/solver/__snapshots__/rectDiffGridSolverPipeline.snap.svg +3 -3
- package/tests/solver/both-points-equivalent/__snapshots__/both-points-equivalent.snap.svg +44 -0
- package/tests/solver/both-points-equivalent/both-points-equivalent.srj.json +64 -0
- package/tests/solver/both-points-equivalent/both-points-equivalent.test.ts +92 -0
- package/tests/solver/bugreport01-be84eb/__snapshots__/bugreport01-be84eb.snap.svg +44 -0
- package/tests/solver/bugreport01-be84eb/bugreport01-be84eb.json +929 -0
- package/tests/solver/bugreport01-be84eb/bugreport01-be84eb.test.ts +93 -0
- package/tests/solver/bugreport02-bc4361/__snapshots__/bugreport02-bc4361.snap.svg +44 -0
- package/tests/solver/bugreport02-bc4361/bugreport02-bc4361.json +1276 -0
- package/tests/solver/bugreport02-bc4361/bugreport02-bc4361.test.ts +93 -0
- package/tests/solver/bugreport03-fe4a17/__snapshots__/bugreport03-fe4a17.snap.svg +44 -0
- package/tests/solver/bugreport03-fe4a17/bugreport03-fe4a17.json +986 -0
- package/tests/solver/bugreport03-fe4a17/bugreport03-fe4a17.test.ts +93 -0
- package/tests/solver/bugreport07-d3f3be/__snapshots__/bugreport07-d3f3be.snap.svg +44 -0
- package/tests/solver/bugreport07-d3f3be/bugreport07-d3f3be.json +1211 -0
- package/tests/solver/bugreport07-d3f3be/bugreport07-d3f3be.test.ts +93 -0
- package/tests/solver/bugreport08-e3ec95/__snapshots__/bugreport08-e3ec95.snap.svg +44 -0
- package/tests/solver/bugreport08-e3ec95/bugreport08-e3ec95.json +1511 -0
- package/tests/solver/bugreport08-e3ec95/bugreport08-e3ec95.test.ts +93 -0
- package/tests/solver/bugreport09-618e09/__snapshots__/bugreport09-618e09.snap.svg +44 -0
- package/tests/solver/bugreport09-618e09/bugreport09-618e09.json +2827 -0
- package/tests/solver/bugreport09-618e09/bugreport09-618e09.test.ts +93 -0
- package/tests/solver/bugreport10-71239a/__snapshots__/bugreport10-71239a.snap.svg +44 -0
- package/tests/solver/bugreport10-71239a/bugreport10-71239a.json +890 -0
- package/tests/solver/bugreport10-71239a/bugreport10-71239a.test.ts +93 -0
- package/tests/solver/bugreport11-b2de3c/__snapshots__/bugreport11-b2de3c.snap.svg +44 -0
- package/tests/solver/bugreport11-b2de3c/bugreport11-b2de3c.json +4315 -0
- package/tests/solver/bugreport11-b2de3c/bugreport11-b2de3c.test.ts +93 -0
- package/tests/solver/bugreport12-35ce1c/__snapshots__/bugreport12-35ce1c.snap.svg +44 -0
- package/tests/solver/bugreport12-35ce1c/bugreport12-35ce1c.json +475 -0
- package/tests/solver/bugreport12-35ce1c/bugreport12-35ce1c.test.ts +93 -0
- package/tests/solver/bugreport13-b9a758/__snapshots__/bugreport13-b9a758.snap.svg +44 -0
- package/tests/solver/bugreport13-b9a758/bugreport13-b9a758.json +15815 -0
- package/tests/solver/bugreport13-b9a758/bugreport13-b9a758.test.ts +93 -0
- package/tests/solver/bugreport16-d95f38/__snapshots__/bugreport16-d95f38.snap.svg +44 -0
- package/tests/solver/bugreport16-d95f38/bugreport16-d95f38.json +623 -0
- package/tests/solver/bugreport16-d95f38/bugreport16-d95f38.test.ts +93 -0
- package/tests/solver/bugreport18-1b2d06/__snapshots__/bugreport18-1b2d06.snap.svg +44 -0
- package/tests/solver/bugreport18-1b2d06/bugreport18-1b2d06.json +543 -0
- package/tests/solver/bugreport18-1b2d06/bugreport18-1b2d06.test.ts +93 -0
- package/tests/solver/bugreport19/__snapshots__/bugreport19.snap.svg +44 -0
- package/tests/solver/bugreport19/bugreport19.json +678 -0
- package/tests/solver/bugreport19/bugreport19.test.ts +93 -0
- package/tests/solver/bugreport20-obstacle-clipping/__snapshots__/bugreport20-obstacle-clipping.snap.svg +44 -0
- package/tests/solver/bugreport20-obstacle-clipping/bugreport20-obstacle-clipping.json +109 -0
- package/tests/solver/bugreport20-obstacle-clipping/bugreport20-obstacle-clipping.test.ts +93 -0
- package/tests/solver/bugreport21-board-outline/__snapshots__/bugreport21-board-outline.snap.svg +44 -0
- package/tests/solver/bugreport21-board-outline/bugreport21-board-outline.json +148 -0
- package/tests/solver/bugreport21-board-outline/bugreport21-board-outline.test.ts +93 -0
- package/tests/solver/bugreport22-2a75ce/__snapshots__/bugreport22-2a75ce.snap.svg +44 -0
- package/tests/solver/bugreport22-2a75ce/bugreport22-2a75ce.json +1550 -0
- package/tests/solver/bugreport22-2a75ce/bugreport22-2a75ce.test.ts +93 -0
- package/tests/solver/bugreport23-LGA15x4/__snapshots__/bugreport23-LGA15x4.snap.svg +44 -0
- package/tests/solver/bugreport23-LGA15x4/bugreport23-LGA15x4.srj.json +2401 -0
- package/tests/solver/bugreport23-LGA15x4/bugreport23-LGA15x4.test.ts +92 -0
- package/tests/solver/bugreport24-05597c/__snapshots__/bugreport24-05597c.snap.svg +44 -0
- package/tests/solver/bugreport24-05597c/bugreport24-05597c.json +8427 -0
- package/tests/solver/bugreport24-05597c/bugreport24-05597c.test.ts +93 -0
- package/tests/solver/bugreport25-4b1d55/__snapshots__/bugreport25-4b1d55.snap.svg +44 -0
- package/tests/solver/bugreport25-4b1d55/bugreport25-4b1d55.json +119 -0
- package/tests/solver/bugreport25-4b1d55/bugreport25-4b1d55.test.ts +93 -0
- package/tests/solver/bugreport26-66b0b2/__snapshots__/bugreport26-66b0b2.snap.svg +44 -0
- package/tests/solver/bugreport26-66b0b2/bugreport26-66b0b2.json +1651 -0
- package/tests/solver/bugreport26-66b0b2/bugreport26-66b0b2.test.ts +93 -0
- package/tests/solver/bugreport27-dd3734/__snapshots__/bugreport27-dd3734.snap.svg +44 -0
- package/tests/solver/bugreport27-dd3734/bugreport27-dd3734.json +4116 -0
- package/tests/solver/bugreport27-dd3734/bugreport27-dd3734.test.ts +93 -0
- package/tests/solver/bugreport28-18a9ef/__snapshots__/bugreport28-18a9ef.snap.svg +44 -0
- package/tests/solver/bugreport28-18a9ef/bugreport28-18a9ef.json +4116 -0
- package/tests/solver/bugreport28-18a9ef/bugreport28-18a9ef.test.ts +93 -0
- package/tests/solver/bugreport29-7deae8/__snapshots__/bugreport29-7deae8.snap.svg +44 -0
- package/tests/solver/bugreport29-7deae8/bugreport29-7deae8.json +4118 -0
- package/tests/solver/bugreport29-7deae8/bugreport29-7deae8.test.ts +93 -0
- package/tests/solver/bugreport30-2174c8/__snapshots__/bugreport30-2174c8.snap.svg +44 -0
- package/tests/solver/bugreport30-2174c8/bugreport30-2174c8.json +4007 -0
- package/tests/solver/bugreport30-2174c8/bugreport30-2174c8.test.ts +93 -0
- package/tests/solver/bugreport33-213d45/__snapshots__/bugreport33-213d45.snap.svg +44 -0
- package/tests/solver/bugreport33-213d45/bugreport33-213d45.json +5089 -0
- package/tests/solver/bugreport33-213d45/bugreport33-213d45.test.ts +93 -0
- package/tests/solver/bugreport34-e9dea2/__snapshots__/bugreport34-e9dea2.snap.svg +44 -0
- package/tests/solver/bugreport34-e9dea2/bugreport34-e9dea2.json +3924 -0
- package/tests/solver/bugreport34-e9dea2/bugreport34-e9dea2.test.ts +93 -0
- package/tests/solver/bugreport35-191db9/__snapshots__/bugreport35-191db9.snap.svg +44 -0
- package/tests/solver/bugreport35-191db9/bugreport35-191db9.json +4237 -0
- package/tests/solver/bugreport35-191db9/bugreport35-191db9.test.ts +93 -0
- package/tests/solver/bugreport36-bf8303/__snapshots__/bugreport36-bf8303.snap.svg +44 -0
- package/tests/solver/bugreport36-bf8303/bugreport36-bf8303.json +29660 -0
- package/tests/solver/bugreport36-bf8303/bugreport36-bf8303.test.ts +93 -0
- package/tests/solver/interaction/__snapshots__/interaction.snap.svg +44 -0
- package/tests/solver/interaction/interaction.srj.json +58 -0
- package/tests/solver/interaction/interaction.test.ts +92 -0
- package/tests/solver/multi-point/__snapshots__/multi-point.snap.svg +44 -0
- package/tests/solver/multi-point/multi-point.srj.json +57 -0
- package/tests/solver/multi-point/multi-point.test.ts +92 -0
- package/tests/solver/no-better-path/__snapshots__/no-better-path.snap.svg +44 -0
- package/tests/solver/no-better-path/no-better-path.srj.json +48 -0
- package/tests/solver/no-better-path/no-better-path.test.ts +92 -0
- package/tests/solver/offboardconnects01/__snapshots__/offboardconnects01.snap.svg +44 -0
- package/tests/solver/offboardconnects01/offboardconnects01.srj.json +53 -0
- package/tests/solver/offboardconnects01/offboardconnects01.test.ts +92 -0
- package/tests/solver/pcb_trace_id-should-return-root-connection-name/__snapshots__/pcb_trace_id-should-return-root-connection-name.snap.svg +44 -0
- package/tests/solver/pcb_trace_id-should-return-root-connection-name/pcb_trace_id-should-return-root-connection-name.srj.json +129 -0
- package/tests/solver/pcb_trace_id-should-return-root-connection-name/pcb_trace_id-should-return-root-connection-name.test.ts +92 -0
- package/tests/solver/transitivity/__snapshots__/transitivity.snap.svg +44 -0
- package/tests/solver/transitivity/transitivity.srj.json +64 -0
- package/tests/solver/transitivity/transitivity.test.ts +92 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
<svg width="640" height="1606" viewBox="0 0 640 1606" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" fill="white"/><g><polyline data-points="-10,-10 10,-10 10,10 -10,10 -10,-10" data-type="line" data-label="bounds" points="40,724.9310416666667 600,724.9310416666667 600,164.93104166666666 40,164.93104166666666 40,724.9310416666667" fill="none" stroke="#111827" stroke-width="2.8000000000000003"/></g><g><polyline data-points="-10,-37.881770833333334 10,-37.881770833333334 10,-17.881770833333334 -10,-17.881770833333334 -10,-37.881770833333334" data-type="line" data-label="bounds" points="40,1505.620625 600,1505.620625 600,945.620625 40,945.620625 40,1505.620625" fill="none" stroke="#111827" stroke-width="2.8000000000000003"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-4.440892098500626e-16" x="273.8" y="355.19104166666665" width="92.39999999999998" height="179.48000000000008" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-5.825" data-y="-6.1025" x="40" y="506.67104166666667" width="233.8" height="218.26000000000005" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.6500000000000004" data-y="0" x="217.79999999999998" y="435.55104166666666" width="56.00000000000003" height="18.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-3.1625000000000005" data-y="2.705" x="189.09999999999997" y="355.19104166666665" width="84.70000000000005" height="28" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.1500000000000004" data-y="-2.705" x="366.2" y="506.67104166666667" width="84.00000000000006" height="28.000000000000057" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.6499999999999995" data-y="0" x="366.2" y="435.55104166666666" width="56" height="18.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.4174999999999995" data-y="2.705" x="366.2" y="355.19104166666665" width="98.97999999999996" height="28" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-5.075" data-y="1.4525000000000001" x="166.70000000000002" y="355.19104166666665" width="22.39999999999995" height="98.13999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.4075000000000006" data-y="7.4775" x="40" y="164.93104166666666" width="425.17999999999995" height="141.26" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.175000000000001" data-y="-7.3025" x="273.8" y="573.8710416666667" width="326.2" height="151.06000000000006" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="7.325000000000001" data-y="-2.71875" x="450.20000000000005" y="468.24104166666666" width="149.79999999999995" height="105.63" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-8.25" data-y="1.375" x="40" y="306.19104166666665" width="98" height="200.48000000000002" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="7.592499999999999" data-y="4.58375" x="465.17999999999995" y="164.93104166666666" width="134.82000000000005" height="303.31" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-5.075" data-y="-1.2525" x="166.70000000000002" y="453.33104166666664" width="22.39999999999995" height="53.34000000000003" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-3.6625000000000005" data-y="1.27" x="189.09999999999997" y="383.19104166666665" width="56.70000000000002" height="52.360000000000014" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.6500000000000004" data-y="-1.5187499999999998" x="394.2" y="468.24104166666666" width="56.00000000000006" height="38.43000000000001" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.6500000000000004" data-y="-1.27" x="217.79999999999998" y="471.11104166666667" width="56.00000000000003" height="18.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.6499999999999995" data-y="1.27" x="366.2" y="399.99104166666666" width="56" height="18.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.26540230795233866" data-y="4.08" x="298.5687353773345" y="306.19104166666665" width="28" height="49" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-5.65770115397617" data-y="4.08" x="138" y="306.19104166666665" width="47.168735377334485" height="49" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.790402307952339" data-y="4.08" x="216.6687353773345" y="306.19104166666665" width="50.400000000000006" height="49" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.1347988460238305" data-y="4.08" x="406.36873537733453" y="306.19104166666665" width="58.81126462266542" height="49" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.247477978850017" data-y="-3.9050000000000002" x="371.6587668156009" y="534.6710416666667" width="78.54123318439912" height="39.19999999999993" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-5.9875" data-y="1.635" x="138" y="355.19104166666665" width="28.700000000000017" height="87.92000000000002" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.4174999999999995" data-y="0.5925000000000004" x="422.2" y="417.14104166666664" width="42.97999999999996" height="22.400000000000034" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="1.6595976920476618" data-y="4.08" x="355.2687353773345" y="306.19104166666665" width="22.400000000000034" height="49" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="0.419955957700033" data-y="-3.9050000000000002" x="320.5587668156009" y="534.6710416666667" width="22.400000000000034" height="39.19999999999993" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-4.1625000000000005" data-y="-1.7700000000000002" x="189.09999999999997" y="482.31104166666665" width="28.700000000000017" height="24.360000000000014" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-5.9875" data-y="-1.77" x="138" y="482.31104166666665" width="28.700000000000017" height="24.360000000000014" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.15" data-y="-1.27" x="366.2" y="471.11104166666667" width="28" height="18.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.15" data-y="1.27" x="245.8" y="399.99104166666666" width="28" height="18.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.1499999999999995" data-y="1.905" x="394.2" y="383.19104166666665" width="28" height="16.80000000000001" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.1499999999999995" data-y="0.635" x="394.2" y="418.75104166666665" width="28" height="16.80000000000001" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.1499999999999995" data-y="-0.5837499999999998" x="394.2" y="454.31104166666665" width="28" height="13.930000000000007" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-3.1500000000000004" data-y="-0.635" x="217.79999999999998" y="454.31104166666665" width="28.00000000000003" height="16.80000000000001" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.3275220211499836" data-y="-3.9050000000000002" x="273.8" y="534.6710416666667" width="18.058766815600904" height="39.19999999999993" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="0.7470976920476617" data-y="4.78" x="326.5687353773345" y="306.19104166666665" width="28.69999999999999" height="9.800000000000011" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.572097692047662" data-y="4.78" x="377.66873537733454" y="306.19104166666665" width="28.69999999999999" height="9.800000000000011" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-3.1500000000000004" data-y="-1.905" x="217.79999999999998" y="489.87104166666666" width="28.00000000000003" height="16.80000000000001" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.15" data-y="1.905" x="245.8" y="383.19104166666665" width="28" height="16.80000000000001" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.15" data-y="0.635" x="245.8" y="418.75104166666665" width="28" height="16.80000000000001" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.15" data-y="-0.635" x="245.8" y="454.31104166666665" width="28" height="16.80000000000001" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.15" data-y="-1.905" x="245.8" y="489.87104166666666" width="28" height="16.80000000000001" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.15" data-y="-1.905" x="366.2" y="489.87104166666666" width="28" height="16.80000000000001" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.15" data-y="-0.635" x="366.2" y="454.31104166666665" width="28" height="16.80000000000001" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.15" data-y="0.635" x="366.2" y="418.75104166666665" width="28" height="16.80000000000001" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.15" data-y="1.905" x="366.2" y="383.19104166666665" width="28" height="16.80000000000001" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="0.7470976920476617" data-y="3.9050000000000002" x="326.5687353773345" y="315.99104166666666" width="28.69999999999999" height="39.19999999999999" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.572097692047662" data-y="3.9050000000000002" x="377.66873537733454" y="315.99104166666666" width="28.69999999999999" height="39.19999999999999" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.35" data-y="1.5050000000000003" x="422.2" y="388.44104166666665" width="39.19999999999999" height="28.69999999999999" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.35" data-y="-0.31999999999999973" x="422.2" y="439.5410416666667" width="39.19999999999999" height="28.69999999999999" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-4.252902307952339" data-y="4.08" x="185.1687353773345" y="306.19104166666665" width="31.5" height="49" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.327902307952339" data-y="4.08" x="267.0687353773345" y="306.19104166666665" width="31.5" height="49" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="1.332455957700033" data-y="-3.9050000000000002" x="342.95876681560094" y="534.6710416666667" width="28.69999999999999" height="39.19999999999993" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.49254404229996696" data-y="-3.9050000000000002" x="291.8587668156009" y="534.6710416666667" width="28.69999999999999" height="39.19999999999993" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-4.1625000000000005" data-y="-0.6350000000000005" x="189.09999999999997" y="443.11104166666667" width="28.700000000000017" height="39.19999999999999" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-5.9875" data-y="-0.635" x="138" y="443.11104166666667" width="28.700000000000017" height="39.19999999999999" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-4.1625000000000005" data-y="0.1999999999999998" x="189.09999999999997" y="435.55104166666666" width="28.700000000000017" height="7.560000000000002" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.4174999999999995" data-y="2.11125" x="422.2" y="383.19104166666665" width="42.97999999999996" height="5.25" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="5.117499999999999" data-y="-0.3199999999999996" x="461.4" y="439.5410416666667" width="3.7799999999999727" height="28.69999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="5.1175" data-y="1.5050000000000003" x="461.4" y="388.44104166666665" width="3.7800000000000296" height="28.69999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-27.881770833333334" x="273.8" y="1135.880625" width="92.39999999999998" height="179.48000000000002" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-5.825" data-y="-33.98427083333333" x="40" y="1287.360625" width="233.8" height="218.26" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.6500000000000004" data-y="-27.881770833333334" x="217.79999999999998" y="1216.240625" width="56.00000000000003" height="18.76000000000022" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-3.1625000000000005" data-y="-25.176770833333336" x="189.09999999999997" y="1135.880625" width="84.70000000000005" height="28" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.1500000000000004" data-y="-30.586770833333333" x="366.2" y="1287.360625" width="84.00000000000006" height="28" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.6499999999999995" data-y="-27.881770833333334" x="366.2" y="1216.240625" width="56" height="18.76000000000022" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.4174999999999995" data-y="-25.176770833333336" x="366.2" y="1135.880625" width="98.97999999999996" height="28" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-5.075" data-y="-26.429270833333334" x="166.70000000000002" y="1135.880625" width="22.39999999999995" height="98.1400000000001" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.4075000000000006" data-y="-20.404270833333335" x="40" y="945.620625" width="425.17999999999995" height="141.26" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.175000000000001" data-y="-35.184270833333336" x="273.8" y="1354.560625" width="326.2" height="151.05999999999995" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="7.325000000000001" data-y="-30.600520833333334" x="450.20000000000005" y="1248.930625" width="149.79999999999995" height="105.63000000000011" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-8.25" data-y="-26.506770833333334" x="40" y="1086.880625" width="98" height="200.48000000000002" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="7.592499999999999" data-y="-23.298020833333332" x="465.17999999999995" y="945.620625" width="134.82000000000005" height="303.30999999999995" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-5.075" data-y="-29.134270833333336" x="166.70000000000002" y="1234.020625" width="22.39999999999995" height="53.33999999999992" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-3.6625000000000005" data-y="-26.611770833333335" x="189.09999999999997" y="1163.880625" width="56.70000000000002" height="52.3599999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.6500000000000004" data-y="-29.400520833333335" x="394.2" y="1248.930625" width="56.00000000000006" height="38.430000000000064" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.6500000000000004" data-y="-29.151770833333334" x="217.79999999999998" y="1251.800625" width="56.00000000000003" height="18.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.6499999999999995" data-y="-26.611770833333335" x="366.2" y="1180.680625" width="56" height="18.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.26540230795233866" data-y="-23.801770833333336" x="298.5687353773345" y="1086.880625" width="28" height="49" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-5.65770115397617" data-y="-23.801770833333336" x="138" y="1086.880625" width="47.168735377334485" height="49" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.790402307952339" data-y="-23.801770833333336" x="216.6687353773345" y="1086.880625" width="50.400000000000006" height="49" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.1347988460238305" data-y="-23.801770833333336" x="406.36873537733453" y="1086.880625" width="58.81126462266542" height="49" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.247477978850017" data-y="-31.786770833333335" x="371.6587668156009" y="1315.360625" width="78.54123318439912" height="39.200000000000045" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-5.9875" data-y="-26.246770833333333" x="138" y="1135.880625" width="28.700000000000017" height="87.92000000000007" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.4174999999999995" data-y="-27.289270833333333" x="422.2" y="1197.830625" width="42.97999999999996" height="22.399999999999864" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="1.6595976920476618" data-y="-23.801770833333336" x="355.2687353773345" y="1086.880625" width="22.400000000000034" height="49" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="0.419955957700033" data-y="-31.786770833333335" x="320.5587668156009" y="1315.360625" width="22.400000000000034" height="39.200000000000045" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-4.1625000000000005" data-y="-29.651770833333334" x="189.09999999999997" y="1263.0006250000001" width="28.700000000000017" height="24.3599999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-5.9875" data-y="-29.651770833333334" x="138" y="1263.0006250000001" width="28.700000000000017" height="24.3599999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-4.252902307952339" data-y="-23.801770833333336" x="185.1687353773345" y="1086.880625" width="31.5" height="49" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.327902307952339" data-y="-23.801770833333336" x="267.0687353773345" y="1086.880625" width="31.5" height="49" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="0.7470976920476617" data-y="-23.801770833333336" x="326.5687353773345" y="1086.880625" width="28.69999999999999" height="49" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.572097692047662" data-y="-23.801770833333336" x="377.66873537733454" y="1086.880625" width="28.69999999999999" height="49" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="1.332455957700033" data-y="-31.786770833333335" x="342.95876681560094" y="1315.360625" width="28.69999999999999" height="39.200000000000045" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.8150220211499837" data-y="-31.786770833333335" x="273.8" y="1315.360625" width="46.75876681560089" height="39.200000000000045" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.15" data-y="-26.611770833333335" x="245.8" y="1163.880625" width="28" height="52.3599999999999" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.4174999999999995" data-y="-26.283020833333335" x="422.2" y="1163.880625" width="42.97999999999996" height="33.950000000000045" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.55" data-y="-27.246770833333333" x="366.2" y="1199.440625" width="50.400000000000034" height="16.799999999999955" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.6500000000000004" data-y="-29.786770833333335" x="217.79999999999998" y="1270.560625" width="56.00000000000003" height="16.799999999999955" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-5.9875" data-y="-28.516770833333336" x="138" y="1223.800625" width="28.700000000000017" height="39.200000000000045" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.15" data-y="-29.400520833333335" x="366.2" y="1248.930625" width="28" height="38.430000000000064" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.417499999999999" data-y="-28.201770833333335" x="422.19999999999993" y="1220.2306250000001" width="42.98000000000002" height="28.699999999999818" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.6499999999999995" data-y="-25.976770833333333" x="366.2" y="1163.880625" width="56" height="16.799999999999955" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.6499999999999995" data-y="-28.465520833333333" x="366.2" y="1235.000625" width="56" height="13.930000000000064" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-4.1625000000000005" data-y="-28.381770833333334" x="189.09999999999997" y="1216.240625" width="28.700000000000017" height="46.76000000000022" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.6500000000000004" data-y="-28.516770833333336" x="217.79999999999998" y="1235.0006250000001" width="56.00000000000003" height="16.799999999999955" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.55" data-y="-27.246770833333333" x="416.6" y="1199.440625" width="5.599999999999966" height="16.799999999999955" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><text data-type="text" data-label="Layer z=0" data-x="0" data-y="11.805416666666666" x="320" y="114.37937500000004" fill="black" font-size="14" font-family="sans-serif" text-anchor="end" dominant-baseline="text-before-edge">Layer z=0</text><text data-type="text" data-label="Layer z=1" data-x="0" data-y="-16.07635416666667" x="320" y="895.0689583333333" fill="black" font-size="14" font-family="sans-serif" text-anchor="end" dominant-baseline="text-before-edge">Layer z=1</text><g id="crosshair" style="display: none"><line id="crosshair-h" y1="0" y2="1606" 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[
|
|
2
|
+
document.currentScript.parentElement.addEventListener('mousemove', (e) => {
|
|
3
|
+
const svg = e.currentTarget;
|
|
4
|
+
const rect = svg.getBoundingClientRect();
|
|
5
|
+
const x = e.clientX - rect.left;
|
|
6
|
+
const y = e.clientY - rect.top;
|
|
7
|
+
const crosshair = svg.getElementById('crosshair');
|
|
8
|
+
const h = svg.getElementById('crosshair-h');
|
|
9
|
+
const v = svg.getElementById('crosshair-v');
|
|
10
|
+
const coords = svg.getElementById('coordinates');
|
|
11
|
+
|
|
12
|
+
crosshair.style.display = 'block';
|
|
13
|
+
h.setAttribute('x1', '0');
|
|
14
|
+
h.setAttribute('x2', '640');
|
|
15
|
+
h.setAttribute('y1', y);
|
|
16
|
+
h.setAttribute('y2', y);
|
|
17
|
+
v.setAttribute('x1', x);
|
|
18
|
+
v.setAttribute('x2', x);
|
|
19
|
+
v.setAttribute('y1', '0');
|
|
20
|
+
v.setAttribute('y2', '1606');
|
|
21
|
+
|
|
22
|
+
// Calculate real coordinates using inverse transformation
|
|
23
|
+
const matrix = {"a":28,"c":0,"e":320,"b":0,"d":-28,"f":444.93104166666666};
|
|
24
|
+
// Manually invert and apply the affine transform
|
|
25
|
+
// Since we only use translate and scale, we can directly compute:
|
|
26
|
+
// x' = (x - tx) / sx
|
|
27
|
+
// y' = (y - ty) / sy
|
|
28
|
+
const sx = matrix.a;
|
|
29
|
+
const sy = matrix.d;
|
|
30
|
+
const tx = matrix.e;
|
|
31
|
+
const ty = matrix.f;
|
|
32
|
+
const realPoint = {
|
|
33
|
+
x: (x - tx) / sx,
|
|
34
|
+
y: (y - ty) / sy // Flip y back since we used negative scale
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
|
|
38
|
+
coords.setAttribute('x', (x + 5).toString());
|
|
39
|
+
coords.setAttribute('y', (y - 5).toString());
|
|
40
|
+
});
|
|
41
|
+
document.currentScript.parentElement.addEventListener('mouseleave', () => {
|
|
42
|
+
document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
|
|
43
|
+
});
|
|
44
|
+
]]></script></svg>
|