@tscircuit/rectdiff 0.0.39 → 0.0.41
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/benchmark.sh +61 -0
- package/global.d.ts +7 -0
- package/lib/RectDiffPipeline.ts +0 -27
- package/lib/solvers/OuterLayerContainmentMergeSolver/OuterLayerContainmentMergeSolver.ts +4 -108
- package/package.json +3 -1
- package/scripts/benchmark/benchmark-child/constants.ts +6 -0
- package/scripts/benchmark/benchmark-child/createSolver.ts +34 -0
- package/scripts/benchmark/benchmark-child/getAutorouterPipeline4ModulePath.ts +7 -0
- package/scripts/benchmark/benchmark-child/handleWorkerTaskLine.ts +64 -0
- package/scripts/benchmark/benchmark-child/importRuntimeModule.ts +8 -0
- package/scripts/benchmark/benchmark-child/types.ts +20 -0
- package/scripts/benchmark/benchmark-child/writeWorkerResultMessage.ts +10 -0
- package/scripts/benchmark/benchmark-types.ts +34 -0
- package/scripts/benchmark/benchmark.child.ts +11 -0
- package/scripts/benchmark/index.ts +413 -0
- package/tests/benchmark-rectdiff-override.test.ts +41 -0
- package/tests/benchmark-results.test.ts +30 -0
- package/tests/solver/__snapshots__/rectDiffGridSolverPipeline.snap.svg +3 -3
- package/tests/solver/arduino-uno-inner2-ground-bottom-power/__snapshots__/arduino-uno-inner2-ground-bottom-power.snap.svg +3 -3
- package/tests/solver/arduino-uno-inner2-ground-inner1-power/__snapshots__/arduino-uno-inner2-ground-inner1-power.snap.svg +1 -1
- package/tests/solver/both-points-equivalent/__snapshots__/both-points-equivalent.snap.svg +1 -1
- package/tests/solver/bugreport02-bc4361/__snapshots__/bugreport02-bc4361.snap.svg +3 -3
- package/tests/solver/bugreport03-fe4a17/__snapshots__/bugreport03-fe4a17.snap.svg +1 -1
- package/tests/solver/bugreport08-e3ec95/__snapshots__/bugreport08-e3ec95.snap.svg +1 -1
- package/tests/solver/bugreport09-618e09/__snapshots__/bugreport09-618e09.snap.svg +1 -1
- package/tests/solver/bugreport10-71239a/__snapshots__/bugreport10-71239a.snap.svg +3 -3
- package/tests/solver/bugreport11-b2de3c/__snapshots__/bugreport11-b2de3c.snap.svg +3 -3
- package/tests/solver/bugreport13-b9a758/__snapshots__/bugreport13-b9a758.snap.svg +2 -2
- package/tests/solver/bugreport16-d95f38/__snapshots__/bugreport16-d95f38.snap.svg +1 -1
- package/tests/solver/bugreport18-1b2d06/__snapshots__/bugreport18-1b2d06.snap.svg +3 -3
- package/tests/solver/bugreport19/__snapshots__/bugreport19.snap.svg +1 -1
- package/tests/solver/bugreport22-2a75ce/__snapshots__/bugreport22-2a75ce.snap.svg +1 -1
- package/tests/solver/bugreport23-LGA15x4/__snapshots__/bugreport23-LGA15x4.snap.svg +2 -2
- package/tests/solver/bugreport24-05597c/__snapshots__/bugreport24-05597c.snap.svg +1 -1
- package/tests/solver/bugreport25-4b1d55/__snapshots__/bugreport25-4b1d55.snap.svg +3 -3
- package/tests/solver/bugreport36-bf8303/__snapshots__/bugreport36-bf8303.snap.svg +2 -2
- package/tests/solver/interaction/__snapshots__/interaction.snap.svg +3 -3
- package/tests/solver/multi-point/__snapshots__/multi-point.snap.svg +1 -1
- package/tests/solver/no-better-path/__snapshots__/no-better-path.snap.svg +1 -1
- package/tests/solver/offboardconnects01/__snapshots__/offboardconnects01.snap.svg +1 -1
- package/tests/solver/pcb_trace_id-should-return-root-connection-name/__snapshots__/pcb_trace_id-should-return-root-connection-name.snap.svg +3 -3
- package/tests/solver/repros/merge-single-layer-node/__snapshots__/merge-single-layer-node.snap.svg +3 -3
- package/tests/solver/transitivity/__snapshots__/transitivity.snap.svg +2 -2
- package/lib/math/layers/getUnionZ.ts +0 -6
- package/lib/math/layers/getZLayerName.ts +0 -6
- package/lib/math/layers/getZSpanMask.ts +0 -6
- package/lib/math/layers/hasContiguousZSpan.ts +0 -11
- package/lib/math/rects/intersectRects.ts +0 -28
- package/lib/math/rects/mergeRects.ts +0 -12
- package/lib/math/rects/rectArea.ts +0 -7
- package/lib/math/rects/rectContainsRect.ts +0 -18
- package/lib/math/rects/rectsTouchOrOverlap.ts +0 -12
- package/lib/math/rects/subtractRects.ts +0 -23
- package/lib/solvers/SparseMultilayerPromotionSolver/SparseMultilayerPromotionSolver.ts +0 -134
- package/lib/solvers/SparseMultilayerPromotionSolver/cloneNode.ts +0 -15
- package/lib/solvers/SparseMultilayerPromotionSolver/cloneNodeWithRect.ts +0 -34
- package/lib/solvers/SparseMultilayerPromotionSolver/createResidualNodes.ts +0 -42
- package/lib/solvers/SparseMultilayerPromotionSolver/findBestCoalesceCandidate.ts +0 -98
- package/lib/solvers/SparseMultilayerPromotionSolver/findBestPromotionCandidate.ts +0 -72
- package/lib/solvers/SparseMultilayerPromotionSolver/getUsableMultilayerVolumeShare.ts +0 -34
- package/lib/solvers/SparseMultilayerPromotionSolver/isFreeNode.ts +0 -8
- package/lib/solvers/SparseMultilayerPromotionSolver/nodeToRect.ts +0 -13
- package/lib/solvers/SparseMultilayerPromotionSolver/solvers/CoalesceMultilayerTilesSolver.ts +0 -104
- package/lib/solvers/SparseMultilayerPromotionSolver/solvers/PromoteSparseMultilayerCoverageSolver.ts +0 -148
- package/lib/solvers/SparseMultilayerPromotionSolver/solvers/TrimContainedSingleLayerCoverageSolver.ts +0 -137
- package/lib/solvers/SparseMultilayerPromotionSolver/types.ts +0 -23
package/tests/solver/repros/merge-single-layer-node/__snapshots__/merge-single-layer-node.snap.svg
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<svg width="640" height="1822" viewBox="0 0 640 1822" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" fill="white"/><g><polyline data-points="-10,-5 10,-5 10,5 -10,5 -10,-5" data-type="line" data-label="bounds" points="40,444.47333333333336 600,444.47333333333336 600,164.47333333333336 40,164.47333333333336 40,444.47333333333336" fill="none" stroke="#111827" stroke-width="2.8000000000000003"/></g><g><polyline data-points="-10,-19.758333333333333 10,-19.758333333333333 10,-9.758333333333333 -10,-9.758333333333333 -10,-19.758333333333333" data-type="line" data-label="bounds" points="40,857.7066666666667 600,857.7066666666667 600,577.7066666666667 40,577.7066666666667 40,857.7066666666667" fill="none" stroke="#111827" stroke-width="2.8000000000000003"/></g><g><polyline data-points="-10,-34.92166666666667 10,-34.92166666666667 10,-24.921666666666667 -10,-24.921666666666667 -10,-34.92166666666667" data-type="line" data-label="bounds" points="40,1282.28 600,1282.28 600,1002.28 40,1002.28 40,1282.28" fill="none" stroke="#111827" stroke-width="2.8000000000000003"/></g><g><polyline data-points="-10,-50.129999999999995 10,-50.129999999999995 10,-40.129999999999995 -10,-40.129999999999995 -10,-50.129999999999995" data-type="line" data-label="bounds" points="40,1708.1133333333332 600,1708.1133333333332 600,1428.1133333333332 40,1428.1133333333332 40,1708.1133333333332" fill="none" stroke="#111827" stroke-width="2.8000000000000003"/></g><g><rect data-type="rect" data-label="node" data-x="-2.15" data-y="2.54" x="245.8" y="224.95333333333338" width="28" height="16.799999999999983" fill="red" 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="260.5133333333334" width="28" height="16.799999999999955" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.15" data-y="0" x="245.8" y="296.0733333333334" width="28" height="16.799999999999955" fill="red" 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="331.6333333333334" width="28" height="16.799999999999955" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.15" data-y="-2.54" x="245.8" y="367.1933333333334" width="28" height="16.799999999999955" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.15" data-y="-2.54" x="366.2" y="367.1933333333334" width="28" height="16.799999999999955" fill="red" 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="331.6333333333334" width="28" height="16.799999999999955" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.15" data-y="0" x="366.2" y="296.0733333333334" width="28" height="16.799999999999955" fill="red" 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="260.5133333333334" width="28" height="16.799999999999955" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.15" data-y="2.54" x="366.2" y="224.95333333333338" width="28" height="16.799999999999983" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.1500000000000004" data-y="4.16" x="252.24" y="179.03333333333333" width="15.120000000000005" height="17.920000000000016" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.1300000000000006" data-y="4.16" x="280.8" y="179.03333333333333" width="15.120000000000005" height="17.920000000000016" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.97" data-y="-3.2861261293105146" x="422.20000000000005" y="388.9248649540278" width="17.91999999999996" height="15.120000000000005" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.97" data-y="-4.306126129310515" x="422.20000000000005" y="417.4848649540278" width="17.91999999999996" height="15.120000000000005" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.15" data-y="0.823873870689486" x="422.20000000000005" y="273.00486495402777" width="28" height="16.799999999999955" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.15" data-y="-0.44612612931051393" x="422.20000000000005" y="308.56486495402777" width="28" height="16.799999999999955" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.15" data-y="-1.7161261293105137" x="422.20000000000005" y="344.12486495402777" width="28" height="16.799999999999955" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="8.45" data-y="-1.7161261293105137" x="542.5999999999999" y="344.12486495402777" width="28" height="16.799999999999955" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="8.45" data-y="-0.44612612931051393" x="542.5999999999999" y="308.56486495402777" width="28" height="16.799999999999955" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="8.45" data-y="0.823873870689486" x="542.5999999999999" y="273.00486495402777" width="28" height="16.799999999999955" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.9699999999999998" data-y="-2.516126" x="422.19999999999993" y="360.92486133333335" width="17.920000000000016" height="28" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.2425" data-y="-4.788063" x="427.38" y="432.60486133333336" width="22.819999999999993" height="11.868471999999997" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.1075" data-y="-3.7961259999999992" x="419.82" y="404.0448613333333" width="30.379999999999995" height="13.440000000000055" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.47" data-y="-4.306126" x="440.12" y="417.48486133333336" width="10.079999999999984" height="15.120000000000005" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.47" data-y="-2.786126" x="440.12" y="360.92486133333335" width="10.079999999999984" height="43.120000000000005" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="8.469999999999999" data-y="-1.081126" x="543.72" y="325.36486133333335" width="26.87999999999988" height="18.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="8.469999999999999" data-y="0.188874" x="543.72" y="289.80486133333335" width="26.87999999999988" height="18.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.3625" data-y="-1.081126" x="434.1" y="325.36486133333335" width="16.099999999999966" height="18.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.3625" data-y="0.188874" x="434.1" y="289.80486133333335" width="16.099999999999966" height="18.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.3824999999999994" data-y="-3.0111259999999995" x="409.59999999999997" y="356.7248613333333" width="10.220000000000027" height="64.12" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.424999999999999" data-y="-4.728063000000001" x="409.6" y="429.24486133333335" width="12.599999999999966" height="15.228471999999954" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.925" data-y="-2.54" x="394.20000000000005" y="367.1933333333334" width="15.39999999999992" height="16.80000000000001" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.1500000000000004" data-y="1.9049999999999998" x="245.8" y="241.75333333333333" width="28.00000000000003" height="18.76000000000002" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.1500000000000004" data-y="1.9049999999999998" x="366.19999999999993" y="241.75333333333333" width="28.000000000000057" height="18.76000000000002" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.6499999999999995" data-y="0.635" x="366.20000000000005" y="277.3133333333334" width="55.99999999999994" height="18.760000000000048" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.1499999999999995" data-y="-1.268063" x="394.20000000000005" y="331.6333333333334" width="27.999999999999886" height="16.69152799999995" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.1499999999999995" data-y="0" x="394.20000000000005" y="296.0733333333334" width="27.999999999999886" height="16.799999999999955" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.1500000000000004" data-y="-1.9049999999999998" x="245.8" y="348.43333333333334" width="28.00000000000003" height="18.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.9250000000000003" data-y="-0.635" x="245.8" y="312.87333333333333" width="40.599999999999994" height="18.760000000000048" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.6499999999999995" data-y="-0.635" x="366.20000000000005" y="312.87333333333333" width="55.99999999999994" height="18.760000000000048" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.6074999999999995" data-y="-2.516126" x="419.82" y="360.92486133333335" width="2.3799999999999955" height="28" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.7424999999999993" data-y="-4.788063" x="422.19999999999993" y="432.60486133333336" width="5.180000000000064" height="11.868471999999997" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.6075000000000004" data-y="-4.246126" x="419.81999999999994" y="417.48486133333336" width="2.3800000000000523" height="11.760000000000048" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.6075000000000004" data-y="-3.2861259999999994" x="419.81999999999994" y="388.9248613333334" width="2.3800000000000523" height="15.119999999999948" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="7.969999999999999" data-y="-1.081126" x="542.5999999999999" y="325.36486133333335" width="1.1200000000001182" height="18.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="7.969999999999999" data-y="0.188874" x="542.5999999999999" y="289.80486133333335" width="1.1200000000001182" height="18.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.8624999999999994" data-y="-1.081126" x="422.19999999999993" y="325.36486133333335" width="11.900000000000091" height="18.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.8624999999999994" data-y="0.188874" x="422.19999999999993" y="289.80486133333335" width="11.900000000000091" height="18.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.5324999999999998" data-y="-4.306126000000001" x="418" y="420.84486133333337" width="1.8199999999999932" height="8.400000000000034" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.5324999999999998" data-y="-1.7161259999999996" x="418" y="348.3248613333333" width="1.8199999999999932" height="8.400000000000034" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="7.874999999999999" data-y="-1.7161259999999998" x="538.4000000000001" y="348.3248613333334" width="4.199999999999932" height="8.400000000000034" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.425" data-y="3.34" x="273.80000000000007" y="196.95333333333338" width="12.599999999999966" height="28" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.425" data-y="1.9049999999999998" x="273.80000000000007" y="241.75333333333333" width="12.599999999999966" height="18.76000000000002" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.1499999999999995" data-y="1.0469369999999998" x="394.20000000000005" y="273.00486133333334" width="27.999999999999886" height="4.308472000000052" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.925" data-y="-1.568063" x="394.20000000000005" y="348.3248613333334" width="15.39999999999992" height="0.10847199999994928" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.4249999999999996" data-y="0.22500000000000003" x="273.8" y="296.0733333333334" width="12.600000000000023" height="4.199999999999989" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.4249999999999996" data-y="1.045" x="273.8" y="273.11333333333334" width="12.600000000000023" height="4.2000000000000455" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.535" data-y="4.42" x="245.79999999999995" y="164.47333333333336" width="6.440000000000026" height="32.48000000000002" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.6350000000000002" data-y="3.925" x="295.91999999999996" y="192.19333333333338" width="12.600000000000023" height="4.760000000000019" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.6350000000000002" data-y="4.655" x="295.91999999999996" y="164.47333333333336" width="12.600000000000023" height="19.319999999999993" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.425" data-y="-1.045" x="273.80000000000007" y="331.6333333333333" width="12.599999999999966" height="4.2000000000000455" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.425" data-y="-0.22500000000000003" x="273.80000000000007" y="308.6733333333334" width="12.599999999999966" height="4.199999999999989" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5749999999999997" data-y="-1.2700000000000002" x="273.79999999999995" y="335.83333333333337" width="4.199999999999989" height="8.399999999999977" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.4249999999999998" data-y="2.54" x="273.80000000000007" y="224.95333333333338" width="12.599999999999966" height="16.799999999999983" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.6400000000000006" data-y="4.16" x="267.36" y="179.03333333333333" width="13.43999999999994" height="17.920000000000016" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.6075" data-y="-1.791126064655257" x="419.81999999999994" y="348.3248613333334" width="2.3800000000000523" height="12.600003620694338" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5749999999999997" data-y="0" x="273.79999999999995" y="300.27333333333337" width="4.199999999999989" height="8.399999999999977" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.7850000000000006" data-y="4.16" x="295.91999999999996" y="183.79333333333335" width="4.2000000000000455" height="8.400000000000006" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5749999999999997" data-y="1.27" x="273.79999999999995" y="264.71333333333337" width="4.199999999999989" height="8.399999999999977" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.3499999999999996" data-y="1.4949999999999999" x="278" y="260.5133333333333" width="8.399999999999977" height="4.199999999999989" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.9550000000000001" data-y="-3.92" x="278" y="383.99333333333334" width="30.519999999999982" height="60.48000000000002" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="0.6199999999999999" data-y="-1.4930630000000003" x="308.52" y="344.23333333333335" width="57.68000000000001" height="4.091528000000039" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="0.6200000000000001" data-y="3.925" x="308.52" y="192.19333333333338" width="57.68000000000001" height="4.760000000000019" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="7.875" data-y="-3.4330629999999998" x="538.4000000000001" y="356.72486133333337" width="4.199999999999818" height="87.74847199999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.03" data-y="-2.54" x="273.80000000000007" y="367.1933333333334" width="34.71999999999997" height="16.80000000000001" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.03" data-y="-1.495" x="273.80000000000007" y="344.23333333333335" width="34.71999999999997" height="4.199999999999989" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.3499999999999996" data-y="0.635" x="278" y="277.3133333333334" width="8.400000000000034" height="18.760000000000048" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.3500000000000005" data-y="-1.716126129310514" x="409.6" y="348.32486495402776" width="8.399999999999977" height="8.399999999999977" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.3499999999999996" data-y="0" x="278" y="300.27333333333337" width="8.399999999999977" height="8.399999999999977" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5600000000000005" data-y="4.16" x="300.12" y="183.79333333333335" width="8.399999999999977" height="8.400000000000006" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.3500000000000005" data-y="-4.306126129310515" x="409.6" y="420.8448649540278" width="8.399999999999977" height="8.399999999999977" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.3499999999999996" data-y="1.27" x="278" y="264.71333333333337" width="8.399999999999977" height="8.399999999999977" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.3499999999999996" data-y="-1.27" x="278" y="335.83333333333337" width="8.399999999999977" height="8.399999999999977" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="7.649999999999999" data-y="-1.716126129310514" x="530" y="348.32486495402776" width="8.399999999999977" height="8.399999999999977" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-5.75" data-y="-3.92" x="40" y="383.99333333333334" width="238" height="60.48000000000002" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="6.325" data-y="1.9819369999999998" x="394.20000000000005" y="224.95333333333338" width="205.79999999999995" height="48.05152799999996" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="6.074999999999999" data-y="-3.283063" x="450.19999999999993" y="348.3248613333334" width="79.80000000000007" height="96.14847200000003" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="6.299999999999999" data-y="-0.22112599999999993" x="450.2" y="273.00486133333334" width="92.39999999999998" height="75.32" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="1.3949999999999996" data-y="-3.92" x="308.52" y="383.99333333333334" width="101.07999999999998" height="60.48000000000002" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="8.45" data-y="-3.508063" x="542.5999999999999" y="360.9248613333334" width="28" height="83.548472" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="0.6199999999999999" data-y="-2.203063" x="308.52" y="348.3248613333334" width="57.68000000000001" height="35.66847199999995" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="0.6200000000000001" data-y="4.505" x="308.52" y="164.47333333333336" width="57.68000000000001" height="27.72" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.425" data-y="-1.9049999999999998" x="366.2" y="348.43333333333334" width="43.39999999999998" height="18.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.1500000000000004" data-y="3.34" x="245.8" y="196.95333333333338" width="28.00000000000003" height="28" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="7.65" data-y="-3.4330629999999998" x="530" y="356.72486133333337" width="8.400000000000091" height="87.74847199999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.03" data-y="-1.9049999999999998" x="273.80000000000007" y="348.43333333333334" width="34.71999999999997" height="18.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.075" data-y="0.635" x="245.79999999999995" y="277.3133333333334" width="32.20000000000002" height="18.760000000000048" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-6.325" data-y="1.08" x="40.000000000000014" y="164.47333333333336" width="205.79999999999998" height="219.51999999999998" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="5.825" data-y="3.92" x="366.20000000000005" y="164.47333333333336" width="233.8" height="60.48000000000002" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="0.22499999999999987" data-y="1.2099999999999995" x="286.4" y="196.95333333333338" width="79.80000000000001" height="147.27999999999997" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="9.475" data-y="-1.938063" x="570.5999999999999" y="273.00486133333334" width="29.40000000000009" height="171.46847200000002" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.35" data-y="-15.393333333333333" x="278" y="721.9066666666668" width="8.399999999999977" height="27.159999999999854" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.35" data-y="-14.123333333333333" x="278" y="686.3466666666668" width="8.399999999999977" height="27.159999999999968" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.35" data-y="-18.378333333333334" x="278" y="780.4266666666667" width="8.399999999999977" height="77.27999999999997" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.03" data-y="-18.233333333333334" x="286.4" y="780.4266666666667" width="9.520000000000039" height="69.15999999999997" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.3499999999999996" data-y="-17.769459333333334" x="409.5999999999999" y="769.9581946666667" width="8.400000000000034" height="64.12" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5600000000000004" data-y="-18.378333333333334" x="300.12" y="780.4266666666667" width="8.399999999999977" height="77.27999999999997" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.9550000000000005" data-y="-19.613333333333333" x="286.4" y="849.5866666666666" width="13.720000000000027" height="8.120000000000005" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.7850000000000005" data-y="-18.233333333333334" x="295.91999999999996" y="780.4266666666667" width="4.199999999999989" height="69.15999999999997" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.35" data-y="-16.253333333333334" x="278" y="757.4666666666667" width="8.399999999999977" height="4.2000000000000455" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.8050000000000002" data-y="-16.32639633333333" x="286.4" y="761.5581946666665" width="22.120000000000005" height="0.1084720000001198" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.3499999999999996" data-y="-19.486396397988592" x="409.5999999999999" y="842.4781982873612" width="8.400000000000034" height="15.228468379305468" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5600000000000005" data-y="-10.103333333333332" x="300.12" y="577.7066666666667" width="8.399999999999977" height="19.319999999999936" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="0.4699999999999993" data-y="-16.251396333333332" x="300.12" y="757.4666666666667" width="66.07999999999998" height="4.091527999999926" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="0.4699999999999993" data-y="-10.833333333333332" x="300.12" y="605.4266666666665" width="66.07999999999998" height="4.760000000000105" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.074999999999999" data-y="-18.04139633333333" x="418" y="761.5581946666666" width="32.19999999999993" height="96.14847200000008" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.6499999999999995" data-y="-14.979459333333333" x="394.20000000000005" y="686.2381946666667" width="55.999999999999886" height="75.31999999999994" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.075" data-y="-17.298333333333332" x="245.79999999999995" y="780.4266666666665" width="32.20000000000002" height="16.800000000000068" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="7.875" data-y="-18.04139633333333" x="538.4000000000001" y="761.5581946666666" width="4.199999999999818" height="96.14847200000008" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="8.45" data-y="-16.54945933333333" x="542.5999999999999" y="761.5581946666666" width="28" height="12.600000000000023" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="8.45" data-y="-14.979459333333333" x="542.5999999999999" y="686.2381946666667" width="28" height="75.31999999999994" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.9550000000000004" data-y="-16.251396333333332" x="286.4" y="757.4666666666667" width="13.720000000000027" height="4.091527999999926" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.9550000000000004" data-y="-10.338333333333333" x="286.4" y="577.7066666666667" width="13.720000000000027" height="32.48000000000002" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.1500000000000004" data-y="-14.121396333333333" x="366.19999999999993" y="638.1866666666667" width="28.000000000000057" height="123.3715279999999" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.425" data-y="-17.298333333333332" x="366.2" y="780.4266666666665" width="43.39999999999998" height="16.800000000000068" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.425" data-y="-16.32639633333333" x="366.2" y="761.5581946666665" width="43.39999999999998" height="0.1084720000001198" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.4249999999999998" data-y="-11.548333333333332" x="273.80000000000007" y="577.7066666666667" width="12.599999999999966" height="100.2399999999999" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.1500000000000004" data-y="-12.628333333333334" x="245.8" y="638.1866666666667" width="28.00000000000003" height="39.75999999999999" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.1500000000000004" data-y="-10.338333333333333" x="245.8" y="577.7066666666667" width="28.00000000000003" height="32.48000000000002" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.1500000000000004" data-y="-16.663333333333334" x="245.8" y="761.6666666666667" width="28.00000000000003" height="18.75999999999999" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.075" data-y="-15.393333333333333" x="245.79999999999995" y="709.3066666666666" width="32.20000000000002" height="52.36000000000013" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.075" data-y="-13.563333333333333" x="245.79999999999995" y="677.9466666666667" width="32.20000000000002" height="12.599999999999909" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.3500000000000005" data-y="-16.474459462643846" x="409.6" y="761.558198287361" width="8.399999999999977" height="8.399999999999864" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.3499999999999996" data-y="-14.758333333333333" x="278" y="713.5066666666667" width="8.399999999999977" height="8.400000000000091" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5600000000000005" data-y="-10.598333333333333" x="300.12" y="597.0266666666666" width="8.399999999999977" height="8.400000000000091" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.3500000000000005" data-y="-19.064459462643846" x="409.6" y="834.0781982873611" width="8.399999999999977" height="8.399999999999864" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.3499999999999996" data-y="-13.488333333333333" x="278" y="677.9466666666667" width="8.399999999999977" height="8.399999999999977" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.3499999999999996" data-y="-16.028333333333332" x="278" y="749.0666666666666" width="8.399999999999977" height="8.400000000000091" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="7.649999999999999" data-y="-16.474459462643846" x="530" y="761.558198287361" width="8.399999999999977" height="8.399999999999864" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-5.75" data-y="-18.678333333333335" x="40" y="797.2266666666667" width="238" height="60.479999999999905" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="6.325" data-y="-12.776396333333333" x="394.20000000000005" y="638.1866666666667" width="205.79999999999995" height="48.05152799999996" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="6.074999999999999" data-y="-18.04139633333333" x="450.19999999999993" y="761.5581946666666" width="79.80000000000007" height="96.14847200000008" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="6.299999999999999" data-y="-14.979459333333333" x="450.2" y="686.2381946666667" width="92.39999999999998" height="75.31999999999994" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="1.3949999999999996" data-y="-18.678333333333335" x="308.52" y="797.2266666666667" width="101.07999999999998" height="60.479999999999905" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="8.45" data-y="-18.266396333333333" x="542.5999999999999" y="774.1581946666668" width="28" height="83.54847200000006" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="0.6199999999999999" data-y="-16.961396333333333" x="308.52" y="761.5581946666666" width="57.68000000000001" height="35.668472000000065" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="0.6200000000000001" data-y="-10.253333333333334" x="308.52" y="577.7066666666667" width="57.68000000000001" height="27.720000000000027" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.425" data-y="-16.663333333333334" x="366.2" y="761.6666666666667" width="43.39999999999998" height="18.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.1500000000000004" data-y="-11.418333333333333" x="245.8" y="610.1866666666667" width="28.00000000000003" height="28" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="7.65" data-y="-18.191396333333334" x="530" y="769.9581946666667" width="8.400000000000091" height="87.74847199999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.03" data-y="-16.663333333333334" x="273.80000000000007" y="761.6666666666667" width="34.71999999999997" height="18.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.075" data-y="-14.123333333333333" x="245.79999999999995" y="690.5466666666669" width="32.20000000000002" height="18.759999999999877" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-6.325" data-y="-13.678333333333333" x="40.000000000000014" y="577.7066666666667" width="205.79999999999998" height="219.51999999999998" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="5.825" data-y="-10.838333333333333" x="366.20000000000005" y="577.7066666666667" width="233.8" height="60.48000000000002" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="0.22499999999999987" data-y="-13.548333333333334" x="286.4" y="610.1866666666667" width="79.80000000000001" height="147.27999999999997" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="9.475" data-y="-16.696396333333333" x="570.5999999999999" y="686.2381946666667" width="29.40000000000009" height="171.46847200000002" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-29.921666666666667" x="40" y="1002.28" width="560" height="280" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.3500000000000005" data-y="-31.63779279597718" x="409.6" y="1186.1315316206947" width="8.399999999999977" height="8.399999999999864" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.3499999999999996" data-y="-29.921666666666667" x="278" y="1138.08" width="8.399999999999977" height="8.400000000000091" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5600000000000005" data-y="-25.761666666666667" x="300.12" y="1021.6000000000001" width="8.399999999999977" height="8.399999999999977" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.3500000000000005" data-y="-34.22779279597718" x="409.6" y="1258.6515316206946" width="8.399999999999977" height="8.399999999999864" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.3499999999999996" data-y="-28.651666666666667" x="278" y="1102.52" width="8.399999999999977" height="8.400000000000091" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.3499999999999996" data-y="-31.191666666666666" x="278" y="1173.6400000000003" width="8.399999999999977" height="8.399999999999864" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="7.649999999999999" data-y="-31.63779279597718" x="530" y="1186.1315316206947" width="8.399999999999977" height="8.399999999999864" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-45.129999999999995" x="40" y="1428.1133333333332" width="560" height="280" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5600000000000005" data-y="-40.97" x="300.12" y="1447.4333333333334" width="8.399999999999977" height="8.399999999999864" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.3500000000000005" data-y="-49.43612612931051" x="409.6" y="1684.4848649540277" width="8.399999999999977" height="8.399999999999864" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.3499999999999996" data-y="-43.85999999999999" x="278" y="1528.353333333333" width="8.399999999999977" height="8.399999999999864" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.3499999999999996" data-y="-46.4" x="278" y="1599.4733333333334" width="8.399999999999977" height="8.399999999999864" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="7.649999999999999" data-y="-46.84612612931051" x="530" y="1611.9648649540277" width="8.399999999999977" height="8.400000000000091" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><text data-type="text" data-label="Layer z=0" data-x="0" data-y="6.306666666666667" x="320" y="127.88666666666668" 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="-8.451666666666666" x="320" y="541.12" fill="black" font-size="14" font-family="sans-serif" text-anchor="end" dominant-baseline="text-before-edge">Layer z=1</text><text data-type="text" data-label="Layer z=2" data-x="0" data-y="-23.255000000000003" x="320" y="955.6133333333335" fill="black" font-size="14" font-family="sans-serif" text-anchor="end" dominant-baseline="text-before-edge">Layer z=2</text><text data-type="text" data-label="Layer z=3" data-x="0" data-y="-38.46333333333333" x="320" y="1381.4466666666667" fill="black" font-size="14" font-family="sans-serif" text-anchor="end" dominant-baseline="text-before-edge">Layer z=3</text><g id="crosshair" style="display: none"><line id="crosshair-h" y1="0" y2="1822" 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[
|
|
1
|
+
<svg width="640" height="1794" viewBox="0 0 640 1794" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" fill="white"/><g><polyline data-points="-10,-5 10,-5 10,5 -10,5 -10,-5" data-type="line" data-label="bounds" points="40,442.8983333333334 600,442.8983333333334 600,162.89833333333343 40,162.89833333333343 40,442.8983333333334" fill="none" stroke="#111827" stroke-width="2.8000000000000003"/></g><g><polyline data-points="-10,-18.959583333333335 10,-18.959583333333335 10,-8.959583333333335 -10,-8.959583333333335 -10,-18.959583333333335" data-type="line" data-label="bounds" points="40,833.7666666666668 600,833.7666666666668 600,553.7666666666668 40,553.7666666666668 40,833.7666666666668" fill="none" stroke="#111827" stroke-width="2.8000000000000003"/></g><g><polyline data-points="-10,-34.034166666666664 10,-34.034166666666664 10,-24.034166666666664 -10,-24.034166666666664 -10,-34.034166666666664" data-type="line" data-label="bounds" points="40,1255.855 600,1255.855 600,975.855 40,975.855 40,1255.855" fill="none" stroke="#111827" stroke-width="2.8000000000000003"/></g><g><polyline data-points="-10,-49.24249999999999 10,-49.24249999999999 10,-39.24249999999999 -10,-39.24249999999999 -10,-49.24249999999999" data-type="line" data-label="bounds" points="40,1681.688333333333 600,1681.688333333333 600,1401.688333333333 40,1401.688333333333 40,1681.688333333333" fill="none" stroke="#111827" stroke-width="2.8000000000000003"/></g><g><rect data-type="rect" data-label="node" data-x="-2.15" data-y="2.54" x="245.8" y="223.37833333333344" width="28" height="16.799999999999983" fill="red" 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="258.93833333333345" width="28" height="16.799999999999955" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.15" data-y="0" x="245.8" y="294.49833333333345" width="28" height="16.799999999999955" fill="red" 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="330.05833333333345" width="28" height="16.799999999999955" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.15" data-y="-2.54" x="245.8" y="365.61833333333345" width="28" height="16.799999999999955" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.15" data-y="-2.54" x="366.2" y="365.61833333333345" width="28" height="16.799999999999955" fill="red" 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="330.05833333333345" width="28" height="16.799999999999955" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.15" data-y="0" x="366.2" y="294.49833333333345" width="28" height="16.799999999999955" fill="red" 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="258.93833333333345" width="28" height="16.799999999999955" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.15" data-y="2.54" x="366.2" y="223.37833333333344" width="28" height="16.799999999999983" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.1500000000000004" data-y="4.16" x="252.24" y="177.45833333333343" width="15.120000000000005" height="17.920000000000016" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.1300000000000006" data-y="4.16" x="280.79999999999995" y="177.45833333333343" width="15.120000000000005" height="17.920000000000016" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.97" data-y="-3.2861261293105146" x="422.20000000000005" y="387.34986495402785" width="17.91999999999996" height="15.120000000000005" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.97" data-y="-4.306126129310515" x="422.20000000000005" y="415.90986495402785" width="17.91999999999996" height="15.120000000000005" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.15" data-y="0.823873870689486" x="422.20000000000005" y="271.42986495402783" width="28" height="16.799999999999955" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.15" data-y="-0.44612612931051393" x="422.20000000000005" y="306.98986495402784" width="28" height="16.799999999999955" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.15" data-y="-1.7161261293105137" x="422.20000000000005" y="342.54986495402784" width="28" height="16.799999999999955" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="8.45" data-y="-1.7161261293105137" x="542.5999999999999" y="342.54986495402784" width="28" height="16.799999999999955" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="8.45" data-y="-0.44612612931051393" x="542.5999999999999" y="306.98986495402784" width="28" height="16.799999999999955" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="8.45" data-y="0.823873870689486" x="542.5999999999999" y="271.42986495402783" width="28" height="16.799999999999955" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.9699999999999998" data-y="-2.516126" x="422.2" y="359.3498613333334" width="17.920000000000016" height="28" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.2425" data-y="-4.788063" x="427.38" y="431.02986133333343" width="22.819999999999993" height="11.868471999999997" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.1075" data-y="-3.7961259999999992" x="419.82" y="402.46986133333337" width="30.379999999999995" height="13.440000000000055" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.47" data-y="-4.306126" x="440.12" y="415.9098613333334" width="10.079999999999984" height="15.120000000000005" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.47" data-y="-2.786126" x="440.12" y="359.3498613333334" width="10.079999999999984" height="43.120000000000005" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="8.45" data-y="-3.508063" x="542.5999999999999" y="359.3498613333334" width="28" height="83.548472" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="8.469999999999999" data-y="-1.081126" x="543.72" y="323.7898613333334" width="26.87999999999988" height="18.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="8.469999999999999" data-y="0.188874" x="543.72" y="288.2298613333334" width="26.87999999999988" height="18.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.3625" data-y="-1.081126" x="434.1" y="323.7898613333334" width="16.099999999999966" height="18.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.3625" data-y="0.188874" x="434.1" y="288.2298613333334" width="16.099999999999966" height="18.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.3824999999999994" data-y="-3.0111259999999995" x="409.59999999999997" y="355.14986133333343" width="10.220000000000027" height="64.12" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.424999999999999" data-y="-4.728063000000001" x="409.59999999999997" y="427.6698613333335" width="12.599999999999966" height="15.228471999999954" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.925" data-y="-2.54" x="394.20000000000005" y="365.6183333333334" width="15.39999999999992" height="16.80000000000001" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="7.725" data-y="-3.4330629999999998" x="530" y="355.14986133333343" width="12.599999999999909" height="87.74847199999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.1500000000000004" data-y="3.34" x="245.79999999999998" y="195.37833333333344" width="28.00000000000003" height="28" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.1500000000000004" data-y="1.9049999999999998" x="245.79999999999998" y="240.17833333333343" width="28.00000000000003" height="18.76000000000002" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.1500000000000004" data-y="1.9049999999999998" x="366.2" y="240.17833333333343" width="28.000000000000057" height="18.76000000000002" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="6.074999999999999" data-y="-3.283063" x="450.19999999999993" y="346.7498613333334" width="79.80000000000007" height="96.14847200000003" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="9.475" data-y="-1.938063" x="570.5999999999999" y="271.4298613333334" width="29.40000000000009" height="171.46847200000002" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="6.299999999999999" data-y="-0.22112599999999993" x="450.19999999999993" y="271.4298613333334" width="92.39999999999998" height="75.32" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.6499999999999995" data-y="0.635" x="366.2" y="275.7383333333334" width="55.99999999999994" height="18.760000000000048" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.425" data-y="-1.9049999999999998" x="366.2" y="346.8583333333334" width="43.39999999999998" height="18.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.9249999999999998" data-y="0.635" x="245.79999999999998" y="275.7383333333334" width="40.60000000000005" height="18.760000000000048" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.1499999999999995" data-y="-1.268063" x="394.20000000000005" y="330.05833333333345" width="27.999999999999886" height="16.69152799999995" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.1499999999999995" data-y="0" x="394.20000000000005" y="294.49833333333345" width="27.999999999999886" height="16.799999999999955" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.1500000000000004" data-y="-1.9049999999999998" x="245.79999999999998" y="346.8583333333334" width="28.00000000000003" height="18.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="6.325" data-y="1.9819369999999998" x="394.20000000000005" y="223.37833333333344" width="205.79999999999995" height="48.05152799999996" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-6.325" data-y="1.0799999999999998" x="40" y="162.89833333333343" width="205.79999999999998" height="219.51999999999998" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="5.825" data-y="3.92" x="366.2" y="162.89833333333343" width="233.8" height="60.48000000000002" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="0.6200000000000001" data-y="4.42" x="308.52" y="162.89833333333343" width="57.68000000000001" height="32.48000000000002" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.9250000000000003" data-y="-0.635" x="245.79999999999998" y="311.2983333333334" width="40.599999999999994" height="18.760000000000048" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.6499999999999995" data-y="-0.635" x="366.2" y="311.2983333333334" width="55.99999999999994" height="18.760000000000048" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-3.4000000000000004" data-y="-3.92" x="40" y="382.4183333333334" width="369.59999999999997" height="60.48000000000002" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="0.22499999999999987" data-y="1.2099999999999995" x="286.4" y="195.37833333333344" width="79.80000000000001" height="147.27999999999997" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-2.1300000000000003" x="273.8" y="342.6583333333334" width="92.39999999999998" height="39.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.6074999999999995" data-y="-2.516126" x="419.82" y="359.3498613333334" width="2.3799999999999955" height="28" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.7424999999999993" data-y="-4.788063" x="422.19999999999993" y="431.02986133333343" width="5.180000000000064" height="11.868471999999997" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.6075000000000004" data-y="-4.246126" x="419.82" y="415.9098613333334" width="2.3800000000000523" height="11.760000000000048" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.6075000000000004" data-y="-3.2861259999999994" x="419.82" y="387.3498613333334" width="2.3800000000000523" height="15.119999999999948" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="7.969999999999999" data-y="-1.081126" x="542.5999999999999" y="323.7898613333334" width="1.1200000000001182" height="18.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="7.969999999999999" data-y="0.188874" x="542.5999999999999" y="288.2298613333334" width="1.1200000000001182" height="18.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.8624999999999994" data-y="-1.081126" x="422.19999999999993" y="323.7898613333334" width="11.900000000000091" height="18.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.8624999999999994" data-y="0.188874" x="422.19999999999993" y="288.2298613333334" width="11.900000000000091" height="18.75999999999999" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.5324999999999998" data-y="-4.306126000000001" x="418" y="419.26986133333344" width="1.8199999999999932" height="8.400000000000034" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.5324999999999998" data-y="-1.7161259999999996" x="418" y="346.7498613333334" width="1.8199999999999932" height="8.400000000000034" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="7.874999999999999" data-y="-1.7161259999999998" x="538.4" y="346.7498613333334" width="4.199999999999932" height="8.400000000000034" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.425" data-y="3.34" x="273.8" y="195.37833333333344" width="12.599999999999966" height="28" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.425" data-y="1.9049999999999998" x="273.8" y="240.17833333333343" width="12.599999999999966" height="18.76000000000002" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.1499999999999995" data-y="1.0469369999999998" x="394.20000000000005" y="271.4298613333334" width="27.999999999999886" height="4.308472000000052" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="2.925" data-y="-1.568063" x="394.20000000000005" y="346.74986133333346" width="15.39999999999992" height="0.10847199999994928" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.4249999999999996" data-y="0.22500000000000003" x="273.8" y="294.49833333333345" width="12.600000000000023" height="4.199999999999989" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.4249999999999996" data-y="1.045" x="273.8" y="271.5383333333334" width="12.600000000000023" height="4.2000000000000455" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-2.535" data-y="4.42" x="245.79999999999998" y="162.89833333333343" width="6.440000000000026" height="32.48000000000002" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.6350000000000002" data-y="3.925" x="295.91999999999996" y="190.61833333333342" width="12.600000000000023" height="4.760000000000019" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.6350000000000002" data-y="4.655" x="295.91999999999996" y="162.89833333333343" width="12.600000000000023" height="19.319999999999993" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.425" data-y="-1.045" x="273.8" y="330.0583333333334" width="12.599999999999966" height="4.2000000000000455" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.425" data-y="-0.22500000000000003" x="273.8" y="307.0983333333334" width="12.599999999999966" height="4.199999999999989" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5749999999999997" data-y="-1.2700000000000002" x="273.8" y="334.25833333333344" width="4.199999999999989" height="8.399999999999977" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.4249999999999998" data-y="2.54" x="273.8" y="223.37833333333344" width="12.599999999999966" height="16.799999999999983" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.6400000000000006" data-y="4.16" x="267.36" y="177.45833333333343" width="13.43999999999994" height="17.920000000000016" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.6075" data-y="-1.791126064655257" x="419.82" y="346.74986133333346" width="2.3800000000000523" height="12.600003620694338" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5749999999999997" data-y="0" x="273.8" y="298.69833333333344" width="4.199999999999989" height="8.399999999999977" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.7850000000000006" data-y="4.16" x="295.91999999999996" y="182.21833333333342" width="4.2000000000000455" height="8.400000000000006" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.5749999999999997" data-y="1.27" x="273.8" y="263.13833333333343" width="4.199999999999989" height="8.399999999999977" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.3499999999999996" data-y="1.4949999999999999" x="278" y="258.93833333333345" width="8.399999999999977" height="4.199999999999989" fill="#dbeafe" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.3500000000000005" data-y="-1.716126129310514" x="409.6" y="346.7498649540278" width="8.399999999999977" height="8.399999999999977" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.3499999999999996" data-y="0" x="278" y="298.69833333333344" width="8.399999999999977" height="8.399999999999977" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5600000000000005" data-y="4.16" x="300.12" y="182.21833333333342" width="8.399999999999977" height="8.400000000000006" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.3500000000000005" data-y="-4.306126129310515" x="409.6" y="419.26986495402787" width="8.399999999999977" height="8.399999999999977" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.3499999999999996" data-y="1.27" x="278" y="263.13833333333343" width="8.399999999999977" height="8.399999999999977" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.3499999999999996" data-y="-1.27" x="278" y="334.25833333333344" width="8.399999999999977" height="8.399999999999977" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="7.649999999999999" data-y="-1.716126129310514" x="530" y="346.7498649540278" width="8.399999999999977" height="8.399999999999977" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.35" data-y="-14.594583333333334" x="278" y="697.9666666666668" width="8.399999999999977" height="27.159999999999968" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.35" data-y="-13.324583333333335" x="278" y="662.4066666666668" width="8.399999999999977" height="27.160000000000082" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="7.65" data-y="-17.392646333333335" x="530" y="746.0181946666669" width="8.400000000000091" height="87.74847199999988" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.35" data-y="-17.579583333333336" x="278" y="756.4866666666669" width="8.399999999999977" height="77.27999999999986" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.03" data-y="-17.434583333333336" x="286.4" y="756.4866666666669" width="9.520000000000039" height="69.15999999999997" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-5.75" data-y="-17.579583333333336" x="40" y="756.4866666666669" width="238" height="77.27999999999986" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-5.75" data-y="-14.034583333333334" x="40" y="654.0066666666668" width="238" height="83.71999999999991" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.3499999999999996" data-y="-16.970709333333335" x="409.59999999999997" y="746.0181946666669" width="8.400000000000034" height="64.11999999999989" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5600000000000004" data-y="-17.579583333333336" x="300.12" y="756.4866666666669" width="8.399999999999977" height="77.27999999999986" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-5.205" data-y="-15.864583333333334" x="40" y="737.7266666666668" width="268.52" height="18.759999999999877" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="1.3949999999999998" data-y="-17.242646333333333" x="308.52" y="737.6181946666668" width="101.08000000000004" height="96.14847199999997" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="8.9" data-y="-17.242646333333333" x="538.4000000000001" y="737.6181946666668" width="61.59999999999991" height="96.14847199999997" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="5.5" data-y="-17.242646333333333" x="418" y="737.6181946666668" width="112" height="96.14847199999997" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-5.355" data-y="-10.749583333333334" x="40" y="553.7666666666668" width="260.12" height="100.24000000000001" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.795" data-y="-9.454583333333336" x="308.52" y="553.7666666666668" width="291.48" height="27.72000000000014" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="4.645" data-y="-12.737646333333334" x="300.12" y="581.4866666666668" width="299.88" height="156.131528" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.9550000000000004" data-y="-14.032646333333334" x="286.4" y="654.0066666666668" width="13.720000000000027" height="83.61152800000002" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.9550000000000005" data-y="-18.814583333333335" x="286.4" y="825.6466666666669" width="13.720000000000027" height="8.11999999999989" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.7850000000000005" data-y="-17.434583333333336" x="295.92" y="756.4866666666669" width="4.199999999999989" height="69.15999999999997" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.35" data-y="-15.454583333333334" x="278" y="733.5266666666669" width="8.399999999999977" height="4.199999999999818" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.8050000000000002" data-y="-15.527646333333335" x="286.4" y="737.6181946666668" width="22.120000000000005" height="0.10847200000000612" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.3499999999999996" data-y="-18.687646397988594" x="409.59999999999997" y="818.5381982873613" width="8.400000000000034" height="15.228468379305468" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5600000000000005" data-y="-9.304583333333333" x="300.12" y="553.7666666666668" width="8.399999999999977" height="19.319999999999936" fill="#fef3c7" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.3500000000000005" data-y="-15.675709462643848" x="409.6" y="737.6181982873611" width="8.399999999999977" height="8.400000000000091" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.3499999999999996" data-y="-13.959583333333335" x="278" y="689.5666666666668" width="8.399999999999977" height="8.399999999999977" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5600000000000005" data-y="-9.799583333333334" x="300.12" y="573.0866666666668" width="8.399999999999977" height="8.399999999999977" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.3500000000000005" data-y="-18.265709462643848" x="409.6" y="810.1381982873612" width="8.399999999999977" height="8.399999999999864" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.3499999999999996" data-y="-12.689583333333335" x="278" y="654.0066666666668" width="8.399999999999977" height="8.399999999999977" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.3499999999999996" data-y="-15.229583333333334" x="278" y="725.1266666666668" width="8.399999999999977" height="8.400000000000091" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="7.649999999999999" data-y="-15.675709462643848" x="530" y="737.6181982873611" width="8.399999999999977" height="8.400000000000091" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-29.034166666666664" x="40" y="975.855" width="560" height="280" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.3500000000000005" data-y="-30.750292795977177" x="409.6" y="1159.7065316206945" width="8.399999999999977" height="8.399999999999864" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.3499999999999996" data-y="-29.034166666666664" x="278" y="1111.6550000000002" width="8.399999999999977" height="8.399999999999636" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5600000000000005" data-y="-24.874166666666664" x="300.12" y="995.1750000000001" width="8.399999999999977" height="8.399999999999864" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.3500000000000005" data-y="-33.34029279597718" x="409.6" y="1232.2265316206945" width="8.399999999999977" height="8.399999999999864" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.3499999999999996" data-y="-27.764166666666664" x="278" y="1076.095" width="8.399999999999977" height="8.399999999999864" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.3499999999999996" data-y="-30.304166666666664" x="278" y="1147.2150000000001" width="8.399999999999977" height="8.399999999999864" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="7.649999999999999" data-y="-30.750292795977177" x="530" y="1159.7065316206945" width="8.399999999999977" height="8.399999999999864" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-44.24249999999999" x="40" y="1401.688333333333" width="560" height="280" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-0.5600000000000005" data-y="-40.082499999999996" x="300.12" y="1421.0083333333332" width="8.399999999999977" height="8.400000000000091" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="3.3500000000000005" data-y="-48.548626129310506" x="409.6" y="1658.0598649540275" width="8.399999999999977" height="8.400000000000091" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.3499999999999996" data-y="-42.97249999999999" x="278" y="1501.9283333333333" width="8.399999999999977" height="8.399999999999636" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="-1.3499999999999996" data-y="-45.512499999999996" x="278" y="1573.0483333333332" width="8.399999999999977" height="8.400000000000091" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><g><rect data-type="rect" data-label="node" data-x="7.649999999999999" data-y="-45.95862612931051" x="530" y="1585.539864954028" width="8.399999999999977" height="8.399999999999636" fill="red" stroke="black" stroke-width="0.03571428571428571"/></g><text data-type="text" data-label="Layer z=0" data-x="0" data-y="6.306666666666667" x="320" y="126.31166666666675" 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="-8.362916666666667" x="320" y="537.0600000000002" fill="black" font-size="14" font-family="sans-serif" text-anchor="end" dominant-baseline="text-before-edge">Layer z=1</text><text data-type="text" data-label="Layer z=2" data-x="0" data-y="-22.3675" x="320" y="929.1883333333334" fill="black" font-size="14" font-family="sans-serif" text-anchor="end" dominant-baseline="text-before-edge">Layer z=2</text><text data-type="text" data-label="Layer z=3" data-x="0" data-y="-37.57583333333333" x="320" y="1355.0216666666665" fill="black" font-size="14" font-family="sans-serif" text-anchor="end" dominant-baseline="text-before-edge">Layer z=3</text><g id="crosshair" style="display: none"><line id="crosshair-h" y1="0" y2="1794" 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
2
|
document.currentScript.parentElement.addEventListener('mousemove', (e) => {
|
|
3
3
|
const svg = e.currentTarget;
|
|
4
4
|
const rect = svg.getBoundingClientRect();
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
v.setAttribute('x1', x);
|
|
18
18
|
v.setAttribute('x2', x);
|
|
19
19
|
v.setAttribute('y1', '0');
|
|
20
|
-
v.setAttribute('y2', '
|
|
20
|
+
v.setAttribute('y2', '1794');
|
|
21
21
|
|
|
22
22
|
// Calculate real coordinates using inverse transformation
|
|
23
|
-
const matrix = {"a":28,"c":0,"e":320,"b":0,"d":-28,"f":
|
|
23
|
+
const matrix = {"a":28,"c":0,"e":320,"b":0,"d":-28,"f":302.8983333333334};
|
|
24
24
|
// Manually invert and apply the affine transform
|
|
25
25
|
// Since we only use translate and scale, we can directly compute:
|
|
26
26
|
// x' = (x - tx) / sx
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<svg width="640" height="1652" viewBox="0 0 640 1652" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" fill="white"/><g><polyline data-points="-5,-5 25,-5 25,25 -5,25 -5,-5" data-type="line" data-label="bounds" points="39.99999999999997,745.6944444444446 600,745.6944444444446 600,185.6944444444445 39.99999999999997,185.6944444444445 39.99999999999997,745.6944444444446" fill="none" stroke="#111827" stroke-width="1.866666666666667"/></g><g><polyline data-points="-5,-48.02083333333333 25,-48.02083333333333 25,-18.02083333333333 -5,-18.02083333333333 -5,-48.02083333333333" data-type="line" data-label="bounds" points="39.99999999999997,1548.75 600,1548.75 600,988.75 39.99999999999997,988.75 39.99999999999997,1548.75" fill="none" stroke="#111827" stroke-width="1.866666666666667"/></g><g><rect data-type="rect" data-label="node" data-x="2.25" data-y="13.25" x="40" y="185.69444444444449" width="270.66666666666663" height="438.6666666666667" fill="#dbeafe" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="17.25" data-y="2.25" x="310.66666666666663" y="475.0277777777778" width="289.33333333333337" height="270.66666666666674" fill="#dbeafe" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="14.5" data-y="17.75" x="310.66666666666663" y="185.69444444444449" width="186.66666666666669" height="270.6666666666667" fill="#dbeafe" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="2.75" data-y="-2.75" x="58.66666666666666" y="661.6944444444446" width="252" height="84" fill="#dbeafe" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="22.75" data-y="18.0375" x="516" y="185.69444444444449" width="84" height="259.93333333333334" fill="#dbeafe" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-2.75" data-y="0.5" x="39.999999999999964" y="624.3611111111111" width="84.00000000000001" height="37.33333333333337" fill="#dbeafe" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="22.6375" data-y="10.2875" x="511.79999999999995" y="445.6277777777779" width="88.20000000000005" height="29.399999999999977" fill="#dbeafe" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="1" x="123.99999999999997" y="624.3611111111113" width="18.66666666666667" height="18.66666666666663" fill="#dbeafe" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="1.3875" data-y="0" x="142.66666666666666" y="643.0277777777778" width="33.133333333333326" height="18.666666666666742" fill="#dbeafe" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="20" data-y="15.2875" x="497.33333333333337" y="288.3611111111112" width="18.666666666666686" height="157.26666666666665" fill="#dbeafe" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="20" data-y="22.75" x="497.33333333333337" y="185.6944444444445" width="18.666666666666686" height="84" fill="#dbeafe" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-4.5" data-y="-2.68125" x="39.99999999999998" y="661.6944444444446" width="18.66666666666667" height="81.43333333333328" fill="#dbeafe" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="5.887499999999999" data-y="0.5" x="175.79999999999995" y="624.3611111111111" width="134.86666666666665" height="37.33333333333337" fill="#dbeafe" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="15.387500000000003" data-y="10" x="329.3333333333333" y="456.3611111111112" width="182.4666666666668" height="18.66666666666663" fill="#dbeafe" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="1.8875" data-y="1" x="161.33333333333331" y="624.3611111111113" width="14.466666666666669" height="18.66666666666663" fill="#dbeafe" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="19.8875" data-y="10.7875" x="497.33333333333337" y="445.62777777777785" width="14.46666666666664" height="10.733333333333348" fill="#dbeafe" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="0" x="123.99999999999997" y="643.0277777777778" width="18.66666666666667" height="18.666666666666742" fill="red" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="10" data-y="10" x="310.66666666666663" y="456.3611111111112" width="18.666666666666686" height="18.66666666666663" fill="red" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="20" data-y="20" x="497.33333333333337" y="269.69444444444446" width="18.666666666666686" height="18.666666666666686" fill="red" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="1" data-y="1" x="142.66666666666663" y="624.3611111111113" width="18.666666666666657" height="18.66666666666663" fill="red" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="2.25" data-y="-29.77083333333333" x="40" y="988.7500000000001" width="270.66666666666663" height="438.66666666666674" fill="#dbeafe" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="17.25" data-y="-40.77083333333333" x="310.66666666666663" y="1278.0833333333335" width="289.33333333333337" height="270.6666666666665" fill="#dbeafe" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="14.5" data-y="-25.27083333333333" x="310.66666666666663" y="988.7500000000001" width="186.66666666666669" height="270.66666666666674" fill="#dbeafe" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="2.75" data-y="-45.77083333333333" x="58.66666666666666" y="1464.75" width="252" height="84" fill="#dbeafe" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="22.75" data-y="-24.983333333333327" x="516" y="988.75" width="84" height="259.9333333333334" fill="#dbeafe" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-2.75" data-y="-42.52083333333333" x="39.999999999999964" y="1427.416666666667" width="84.00000000000001" height="37.33333333333326" fill="#dbeafe" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="22.6375" data-y="-32.73333333333333" x="511.79999999999995" y="1248.6833333333332" width="88.20000000000005" height="29.40000000000009" fill="#dbeafe" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-42.02083333333333" x="123.99999999999997" y="1427.4166666666665" width="18.66666666666667" height="18.666666666666742" fill="#dbeafe" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="1.3875" data-y="-43.02083333333333" x="142.66666666666666" y="1446.0833333333335" width="33.133333333333326" height="18.666666666666515" fill="#dbeafe" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="20" data-y="-27.733333333333327" x="497.33333333333337" y="1091.4166666666665" width="18.666666666666686" height="157.26666666666665" fill="#dbeafe" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="20" data-y="-20.27083333333333" x="497.33333333333337" y="988.75" width="18.666666666666686" height="84" fill="#dbeafe" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="-4.5" data-y="-45.70208333333333" x="39.99999999999998" y="1464.75" width="18.66666666666667" height="81.4333333333334" fill="#dbeafe" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="5.887499999999999" data-y="-42.52083333333333" x="175.79999999999995" y="1427.416666666667" width="134.86666666666665" height="37.33333333333326" fill="#dbeafe" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="15.387500000000003" data-y="-33.02083333333333" x="329.3333333333333" y="1259.4166666666665" width="182.4666666666668" height="18.666666666666742" fill="#dbeafe" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="10" data-y="-33.02083333333333" x="310.66666666666663" y="1259.4166666666665" width="18.666666666666686" height="18.666666666666742" fill="#fef3c7" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-43.02083333333333" x="123.99999999999997" y="1446.0833333333335" width="18.66666666666667" height="18.666666666666515" fill="#fef3c7" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="1.3875" data-y="-42.02083333333333" x="142.66666666666666" y="1427.4166666666665" width="33.133333333333326" height="18.666666666666742" fill="#fef3c7" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="19.8875" data-y="-32.23333333333333" x="497.33333333333337" y="1248.6833333333334" width="14.46666666666664" height="10.733333333333348" fill="#fef3c7" stroke="black" stroke-width="0.05357142857142857"/></g><g><rect data-type="rect" data-label="node" data-x="20" data-y="-23.02083333333333" x="497.33333333333337" y="1072.75" width="18.666666666666686" height="18.666666666666742" fill="#fef3c7" stroke="black" stroke-width="0.05357142857142857"/></g><text data-type="text" data-label="Layer z=0" data-x="0" data-y="28.916666666666664" x="133.33333333333331" y="112.58333333333348" fill="black" font-size="9.333333333333334" 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="-14.104166666666664" x="133.33333333333331" y="915.6388888888889" fill="black" font-size="9.333333333333334" 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="1652" 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[
|
|
1
|
+
<svg width="640" height="1652" viewBox="0 0 640 1652" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" fill="white"/><g><polyline data-points="-5,-5 25,-5 25,25 -5,25 -5,-5" data-type="line" data-label="bounds" points="40,745.6944444444446 600,745.6944444444446 600,185.69444444444457 40,185.69444444444457 40,745.6944444444446" fill="none" stroke="#111827" stroke-width="1.8666666666666665"/></g><g><polyline data-points="-5,-48.02083333333333 25,-48.02083333333333 25,-18.02083333333333 -5,-18.02083333333333 -5,-48.02083333333333" data-type="line" data-label="bounds" points="40,1548.75 600,1548.75 600,988.75 40,988.75 40,1548.75" fill="none" stroke="#111827" stroke-width="1.8666666666666665"/></g><g><rect data-type="rect" data-label="node" data-x="2.25" data-y="13.25" x="40" y="185.69444444444457" width="270.66666666666663" height="438.66666666666663" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="17.25" data-y="2.25" x="310.66666666666663" y="475.0277777777779" width="289.33333333333337" height="270.6666666666667" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="14.5" data-y="17.75" x="310.66666666666663" y="185.69444444444457" width="186.66666666666663" height="270.66666666666663" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="14.925" data-y="10" x="376.9333333333333" y="456.3611111111112" width="70" height="18.666666666666686" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="18.5375" data-y="10" x="446.9333333333333" y="456.3611111111112" width="64.86666666666667" height="18.666666666666686" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="2.7500000000000004" data-y="-2.75" x="58.66666666666667" y="661.6944444444446" width="251.99999999999994" height="84" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="22.75" data-y="18.0375" x="516" y="185.69444444444457" width="84" height="259.9333333333333" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="-2.75" data-y="0.5" x="40" y="624.3611111111112" width="83.99999999999999" height="37.33333333333337" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="5.275" data-y="0.5" x="175.79999999999998" y="624.3611111111112" width="111.99999999999997" height="37.33333333333337" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="11.774999999999999" data-y="10" x="329.33333333333326" y="456.3611111111112" width="47.599999999999966" height="18.666666666666686" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="22.637500000000003" data-y="10.2875" x="511.79999999999995" y="445.6277777777779" width="88.20000000000005" height="29.399999999999977" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="8.8875" data-y="0.5" x="287.79999999999995" y="624.3611111111112" width="22.866666666666674" height="37.33333333333337" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="1" x="123.99999999999999" y="624.3611111111112" width="18.66666666666667" height="18.66666666666663" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="1.3875000000000002" data-y="0" x="142.66666666666666" y="643.0277777777778" width="33.133333333333326" height="18.666666666666742" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="20" data-y="15.2875" x="497.33333333333326" y="288.36111111111126" width="18.666666666666742" height="157.26666666666665" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="20" data-y="22.75" x="497.33333333333326" y="185.69444444444457" width="18.666666666666742" height="84" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="-4.5" data-y="-2.68125" x="40" y="661.6944444444446" width="18.66666666666667" height="81.43333333333328" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="1.8875000000000002" data-y="1" x="161.33333333333331" y="624.3611111111112" width="14.466666666666669" height="18.66666666666663" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="19.887500000000003" data-y="10.7875" x="497.33333333333326" y="445.6277777777779" width="14.466666666666754" height="10.733333333333292" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="0" x="123.99999999999999" y="643.0277777777778" width="18.66666666666667" height="18.666666666666742" fill="red" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="10" data-y="10" x="310.66666666666663" y="456.3611111111112" width="18.66666666666663" height="18.666666666666686" fill="red" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="20" data-y="20" x="497.33333333333326" y="269.69444444444457" width="18.666666666666742" height="18.666666666666686" fill="red" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="1" data-y="1" x="142.66666666666666" y="624.3611111111112" width="18.666666666666657" height="18.66666666666663" fill="red" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="2.25" data-y="-29.77083333333333" x="40" y="988.75" width="270.66666666666663" height="438.6666666666665" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="17.25" data-y="-40.77083333333333" x="310.66666666666663" y="1278.0833333333333" width="289.33333333333337" height="270.66666666666674" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="14.5" data-y="-25.27083333333333" x="310.66666666666663" y="988.75" width="186.66666666666663" height="270.6666666666665" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="14.925" data-y="-33.02083333333333" x="376.9333333333333" y="1259.4166666666665" width="70" height="18.666666666666742" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="18.5375" data-y="-33.02083333333333" x="446.9333333333333" y="1259.4166666666665" width="64.86666666666667" height="18.666666666666742" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="2.7500000000000004" data-y="-45.77083333333333" x="58.66666666666667" y="1464.75" width="251.99999999999994" height="84" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="22.75" data-y="-24.983333333333327" x="516" y="988.75" width="84" height="259.93333333333317" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="-2.75" data-y="-42.52083333333333" x="40" y="1427.4166666666665" width="83.99999999999999" height="37.333333333333485" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="5.275" data-y="-42.52083333333333" x="175.79999999999998" y="1427.4166666666665" width="111.99999999999997" height="37.333333333333485" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="11.774999999999999" data-y="-33.02083333333333" x="329.33333333333326" y="1259.4166666666665" width="47.599999999999966" height="18.666666666666742" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="22.637500000000003" data-y="-32.73333333333333" x="511.79999999999995" y="1248.6833333333332" width="88.20000000000005" height="29.40000000000009" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="8.8875" data-y="-42.52083333333333" x="287.79999999999995" y="1427.4166666666665" width="22.866666666666674" height="37.333333333333485" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-42.02083333333333" x="123.99999999999999" y="1427.4166666666665" width="18.66666666666667" height="18.666666666666742" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="1.3875000000000002" data-y="-43.02083333333333" x="142.66666666666666" y="1446.0833333333333" width="33.133333333333326" height="18.666666666666742" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="20" data-y="-27.733333333333327" x="497.33333333333326" y="1091.4166666666665" width="18.666666666666742" height="157.26666666666665" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="20" data-y="-20.27083333333333" x="497.33333333333326" y="988.75" width="18.666666666666742" height="84" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="-4.5" data-y="-45.70208333333333" x="40" y="1464.75" width="18.66666666666667" height="81.43333333333317" fill="#dbeafe" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="10" data-y="-33.02083333333333" x="310.66666666666663" y="1259.4166666666665" width="18.66666666666663" height="18.666666666666742" fill="#fef3c7" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="0" data-y="-43.02083333333333" x="123.99999999999999" y="1446.0833333333333" width="18.66666666666667" height="18.666666666666742" fill="#fef3c7" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="1.3875000000000002" data-y="-42.02083333333333" x="142.66666666666666" y="1427.4166666666665" width="33.133333333333326" height="18.666666666666742" fill="#fef3c7" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="19.887500000000003" data-y="-32.23333333333333" x="497.33333333333326" y="1248.6833333333332" width="14.466666666666754" height="10.733333333333348" fill="#fef3c7" stroke="black" stroke-width="0.053571428571428575"/></g><g><rect data-type="rect" data-label="node" data-x="20" data-y="-23.02083333333333" x="497.33333333333326" y="1072.75" width="18.666666666666742" height="18.666666666666515" fill="#fef3c7" stroke="black" stroke-width="0.053571428571428575"/></g><text data-type="text" data-label="Layer z=0" data-x="0" data-y="28.916666666666664" x="133.33333333333331" y="112.58333333333348" fill="black" font-size="9.333333333333332" 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="-14.104166666666664" x="133.33333333333331" y="915.6388888888889" fill="black" font-size="9.333333333333332" 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="1652" 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
2
|
document.currentScript.parentElement.addEventListener('mousemove', (e) => {
|
|
3
3
|
const svg = e.currentTarget;
|
|
4
4
|
const rect = svg.getBoundingClientRect();
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
v.setAttribute('y2', '1652');
|
|
21
21
|
|
|
22
22
|
// Calculate real coordinates using inverse transformation
|
|
23
|
-
const matrix = {"a":18.
|
|
23
|
+
const matrix = {"a":18.666666666666664,"c":0,"e":133.33333333333331,"b":0,"d":-18.666666666666664,"f":652.3611111111112};
|
|
24
24
|
// Manually invert and apply the affine transform
|
|
25
25
|
// Since we only use translate and scale, we can directly compute:
|
|
26
26
|
// x' = (x - tx) / sx
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Check whether the layers form one continuous range.
|
|
3
|
-
* Gapped layer spans return false.
|
|
4
|
-
*/
|
|
5
|
-
export const hasContiguousZSpan = ({ zValues }: { zValues: number[] }) => {
|
|
6
|
-
for (let i = 1; i < zValues.length; i++) {
|
|
7
|
-
if (zValues[i]! - zValues[i - 1]! !== 1) return false
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
return true
|
|
11
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import type { XYRect } from "../../rectdiff-types"
|
|
2
|
-
import { EPS } from "../../utils/rectdiff-geometry"
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Return the shared area between two rectangles.
|
|
6
|
-
* Returns null when they do not overlap.
|
|
7
|
-
*/
|
|
8
|
-
export const intersectRects = ({
|
|
9
|
-
a,
|
|
10
|
-
b,
|
|
11
|
-
}: {
|
|
12
|
-
a: XYRect
|
|
13
|
-
b: XYRect
|
|
14
|
-
}): XYRect | null => {
|
|
15
|
-
const x0 = Math.max(a.x, b.x)
|
|
16
|
-
const y0 = Math.max(a.y, b.y)
|
|
17
|
-
const x1 = Math.min(a.x + a.width, b.x + b.width)
|
|
18
|
-
const y1 = Math.min(a.y + a.height, b.y + b.height)
|
|
19
|
-
|
|
20
|
-
if (x1 <= x0 + EPS || y1 <= y0 + EPS) return null
|
|
21
|
-
|
|
22
|
-
return {
|
|
23
|
-
x: x0,
|
|
24
|
-
y: y0,
|
|
25
|
-
width: x1 - x0,
|
|
26
|
-
height: y1 - y0,
|
|
27
|
-
}
|
|
28
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { XYRect } from "../../rectdiff-types"
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Build one rectangle that covers both inputs.
|
|
5
|
-
* This is the outer box around the two shapes.
|
|
6
|
-
*/
|
|
7
|
-
export const mergeRects = ({ a, b }: { a: XYRect; b: XYRect }): XYRect => ({
|
|
8
|
-
x: Math.min(a.x, b.x),
|
|
9
|
-
y: Math.min(a.y, b.y),
|
|
10
|
-
width: Math.max(a.x + a.width, b.x + b.width) - Math.min(a.x, b.x),
|
|
11
|
-
height: Math.max(a.y + a.height, b.y + b.height) - Math.min(a.y, b.y),
|
|
12
|
-
})
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { XYRect } from "../../rectdiff-types"
|
|
2
|
-
import { EPS } from "../../utils/rectdiff-geometry"
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Check whether one rectangle fully contains another.
|
|
6
|
-
* A small tolerance is used for edge cases.
|
|
7
|
-
*/
|
|
8
|
-
export const rectContainsRect = ({
|
|
9
|
-
inner,
|
|
10
|
-
outer,
|
|
11
|
-
}: {
|
|
12
|
-
inner: XYRect
|
|
13
|
-
outer: XYRect
|
|
14
|
-
}) =>
|
|
15
|
-
inner.x + EPS >= outer.x &&
|
|
16
|
-
inner.y + EPS >= outer.y &&
|
|
17
|
-
inner.x + inner.width <= outer.x + outer.width + EPS &&
|
|
18
|
-
inner.y + inner.height <= outer.y + outer.height + EPS
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { XYRect } from "../../rectdiff-types"
|
|
2
|
-
import { EPS } from "../../utils/rectdiff-geometry"
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Check whether two rectangles touch or overlap.
|
|
6
|
-
* Separate rectangles return false.
|
|
7
|
-
*/
|
|
8
|
-
export const rectsTouchOrOverlap = ({ a, b }: { a: XYRect; b: XYRect }) =>
|
|
9
|
-
a.x <= b.x + b.width + EPS &&
|
|
10
|
-
b.x <= a.x + a.width + EPS &&
|
|
11
|
-
a.y <= b.y + b.height + EPS &&
|
|
12
|
-
b.y <= a.y + a.height + EPS
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { XYRect } from "../../rectdiff-types"
|
|
2
|
-
import { subtractRect2D } from "../../utils/rectdiff-geometry"
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Remove several rectangles from one rectangle.
|
|
6
|
-
* The result is the list of remaining pieces.
|
|
7
|
-
*/
|
|
8
|
-
export const subtractRects = ({
|
|
9
|
-
cutters,
|
|
10
|
-
target,
|
|
11
|
-
}: {
|
|
12
|
-
cutters: XYRect[]
|
|
13
|
-
target: XYRect
|
|
14
|
-
}) => {
|
|
15
|
-
let remaining: XYRect[] = [target]
|
|
16
|
-
|
|
17
|
-
for (const cutter of cutters) {
|
|
18
|
-
if (remaining.length === 0) return remaining
|
|
19
|
-
remaining = remaining.flatMap((piece) => subtractRect2D(piece, cutter))
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
return remaining
|
|
23
|
-
}
|