Graphite/libraries/path-bool/visual-tests/real-02/union.svg
Dennis Kobert 8a1089938e
Path Bool library code cleanup (#2000)
* Remove log statements

* Add feature gates to functions in path.rs

* Fix infinite parsing loop and add new test

* License tweaks

* Remove trailing zero in whole number floats

* Flatten visual-tests directory

* Code review

* Clean up printlines

* Add error handling to path parsing

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2024-09-23 12:16:31 +02:00

5 lines
20 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg id="svg2" viewBox="0 0 900 900" version="1.1" xmlns="http://www.w3.org/2000/svg">
<path d="M 804.730565520070,400.900238264635 C 835.673264956245,398.273807218184 854.106670000000,396.693710000000 854.106670000000,396.693710000000 C 855.201370000000,397.013290000000 859.103450000000,398.997880000000 861.310510000000,401.911190000000 C 861.310510000000,401.911190000000 873.316900000000,420.980170000000 864.135540000000,388.492280000000 C 864.135540000000,388.492280000000 847.891590000000,337.641670000000 863.429280000000,357.416910000000 C 863.429280000000,357.416910000000 874.023160000000,370.129560000000 868.373090000000,346.116770000000 C 861.557700000000,317.112500000000 857.072950000000,305.860030000000 857.072950000000,305.860030000000 C 857.072950000000,305.860030000000 877.554450000000,314.335140000000 830.235130000000,244.415540000000 L 845.772820000000,250.771870000000 C 845.772820000000,250.771870000000 811.166150000000,180.852280000000 773.028190000000,171.670910000000 L 758.903020000000,161.077040000000 C 758.903020000000,161.077040000000 760.405508762799,159.590202127649 762.888599681427,156.844851797827 C 767.001159170221,154.254572561435 773.611656668798,148.952483440338 779.384520000000,139.183020000000 C 788.565880000000,123.645340000000 815.403700000000,90.451185000000 809.047380000000,45.956898000000 C 809.047380000000,45.956898000000 811.166150000000,26.181660000000 800.572270000000,25.475401000000 C 800.572270000000,25.475401000000 785.740840000000,22.650367000000 773.028190000000,36.069279000000 C 773.028190000000,36.069279000000 761.021800000000,41.719347000000 756.784240000000,41.013088000000 L 694.633500000000,43.131864000000 C 694.633500000000,43.131864000000 694.492641639768,43.175882231729 694.225791376338,43.264778738302 C 693.845793162225,43.005798840729 693.381026084753,42.663525965401 692.831688899054,42.247102857355 C 693.080950761839,42.423346474501 693.328438505263,42.600555716068 693.574110000000,42.778735000000 C 693.574110000000,42.778735000000 681.760475473939,28.996168510751 651.806416500816,16.931704431949 C 650.231562150496,16.225899237118 648.614582031349,15.528464805479 646.955548530216,14.842730934322 C 639.417210977688,11.044531159039 602.298524207823,-5.682417699202 547.025460000000,2.168869800000 C 547.025460000000,2.168869800000 515.596960000000,7.818938000000 501.824920000000,10.997101000000 C 501.824920000000,10.997101000000 497.236000000000,9.937713600000 496.176620000000,9.231455000000 C 495.117230000000,8.525196500000 474.280840000000,-7.365620200000 425.549000000000,4.993903900000 C 425.549000000000,4.993903900000 395.533010000000,13.115877000000 380.348450000000,21.590979000000 C 380.348450000000,21.590979000000 353.510630000000,23.709755000000 347.154300000000,29.359823000000 C 347.154300000000,29.359823000000 345.335703718339,30.787323359509 342.508400836997,32.988890359319 C 340.729904730849,34.241780262408 338.756089902821,35.725268077743 336.560430000000,37.481796000000 C 335.281193716668,38.505185026666 334.112017915538,39.447476846854 333.040836608286,40.317065189248 C 323.667374945534,47.524696121684 312.736277635836,55.769060392245 310.781990000000,56.550776000000 C 307.250700000000,57.963293000000 287.122330000000,71.382205000000 285.709810000000,72.088463000000 C 285.709810000000,72.088463000000 286.464190893200,71.886068141041 287.783815303572,71.524925505849 C 284.901426903228,72.937517157240 282.436059073530,73.928895755393 280.766000000000,74.207239000000 C 280.766000000000,74.207239000000 260.284510000000,85.507375000000 252.515660000000,103.163840000000 L 246.159340000000,105.282610000000 C 246.159340000000,105.282610000000 243.334300000000,117.995270000000 242.628040000000,120.114040000000 C 242.628040000000,120.114040000000 234.152940000000,126.470370000000 232.740420000000,136.357990000000 C 232.740420000000,136.357990000000 217.202740000000,146.951870000000 217.908990000000,154.720710000000 C 217.908990000000,154.720710000000 215.083960000000,163.902070000000 213.671440000000,172.377170000000 C 213.671440000000,172.377170000000 200.958790000000,180.852280000000 202.371310000000,185.796090000000 C 202.371310000000,185.796090000000 188.952390000000,210.515130000000 191.071170000000,222.521530000000 C 191.071170000000,222.521530000000 179.771030000000,221.815270000000 174.827220000000,226.052820000000 C 174.827220000000,226.052820000000 173.414710000000,234.527920000000 170.589670000000,235.234180000000 C 170.589670000000,235.234180000000 165.645860000000,237.352960000000 169.883410000000,244.415540000000 C 169.883410000000,244.415540000000 167.058380000000,249.359350000000 166.352120000000,252.184390000000 C 166.352120000000,252.184390000000 167.764640000000,257.128200000000 159.995800000000,267.015810000000 C 159.995800000000,267.015810000000 148.695660000000,300.209970000000 152.226950000000,309.391330000000 C 152.226950000000,309.391330000000 152.610322780482,313.991792509363 150.834975350775,317.543625103838 C 148.899343622703,318.699349066843 143.735720278709,322.338807389753 146.930010000000,326.694660000000 C 147.708742567375,327.756568775424 148.416513032759,328.633975442619 149.050476061313,329.358177717921 C 150.549307010824,332.236912408040 152.892374440454,336.069922798225 156.464500000000,341.172960000000 C 156.464500000000,341.172960000000 157.877020000000,343.291740000000 152.226950000000,347.529290000000 C 152.226950000000,347.529290000000 121.857840000000,353.885610000000 117.620280000000,382.842210000000 C 117.620280000000,382.842210000000 93.607495000000,408.973780000000 93.607495000000,418.155140000000 C 93.607495000000,422.224950000000 94.084219000000,427.781440000000 95.320172000000,435.917540000000 C 95.320172000000,435.917540000000 94.547017112298,447.230009823510 127.168898897385,450.975658740198 C 111.598886211297,474.829616308905 137.925220000000,498.845170000000 137.925220000000,498.845170000000 C 137.925220000000,498.845170000000 156.111370000000,521.622010000000 173.414710000000,527.625210000000 C 191.318360000000,533.840280000000 191.071170000000,526.918950000000 191.071170000000,526.918950000000 L 203.077570000000,506.437450000000 C 217.202740000000,495.137320000000 198.133760000000,495.843580000000 198.133760000000,495.843580000000 C 193.896200000000,491.606020000000 178.358520000000,495.843580000000 178.358520000000,495.843580000000 C 175.974890000000,485.514540000000 204.490080000000,483.837180000000 204.490080000000,483.837180000000 C 232.740420000000,482.424660000000 241.921780000000,447.111740000000 241.921780000000,447.111740000000 C 241.876729217274,446.931534317548 241.881969288888,446.690261154579 241.931267548165,446.396444600833 C 270.460260197636,444.352120263405 303.550002179195,441.858806822603 339.283377651186,439.089236745845 C 334.320522129277,440.312560515279 327.804590000000,441.673550000000 327.804590000000,441.673550000000 C 322.998500000000,445.151870000000 308.474290000000,452.514620000000 308.474290000000,452.514620000000 C 299.816428651647,450.809190519529 295.333286700831,457.792229631411 293.091973649894,463.983766018249 C 291.746953608793,463.977837231505 290.653620000000,464.061940000000 290.653620000000,464.061940000000 L 291.359880000000,467.593230000000 C 291.359880000000,467.593230000000 291.579927194342,467.666579237874 291.944806099283,467.746419413814 C 291.236997728391,470.542288231166 291.015580000000,472.590010000000 291.015580000000,472.590010000000 C 291.015580000000,472.590010000000 308.883920000000,455.498560000000 313.352770000000,455.692780000000 C 317.821620000000,455.887000000000 333.615330000000,445.681560000000 338.864590000000,443.015440000000 C 339.546866724831,442.668858982530 340.252852146341,442.330441677798 340.980659399035,442.000171671893 L 340.822700000000,444.039510000000 C 340.822700000000,444.039510000000 347.876450000000,444.498580000000 350.696190000000,440.755410000000 C 351.482932985544,439.706091047784 351.098858721500,439.022395490253 350.136066343292,438.581983673907 C 350.632092072479,438.428307273855 351.132914126133,438.277279662744 351.638178664445,438.128897762614 C 353.723521145009,437.966351354082 355.816859343971,437.802958996045 357.917830179539,437.638753402241 L 357.772900000000,438.389440000000 C 357.772900000000,438.389440000000 362.499049296703,438.669031206935 365.914903336877,437.012697671948 C 381.309497249568,435.805576830099 397.082500173079,434.557739721784 413.094820023507,433.281718567683 C 429.575931046276,437.046623836773 446.717542121505,446.777274407666 446.056980000000,446.017040000000 C 442.586983250331,442.094184011799 430.731382209896,436.580702996544 420.496255180409,432.691257609219 C 426.027596659292,432.249513308464 431.584717474717,431.804663022753 437.161958833781,431.357216610305 C 437.519000541721,431.657742899884 437.885503875933,431.965396859322 438.261650000000,432.280310000000 C 468.630770000000,457.705620000000 482.757700000000,481.718400000000 482.051450000000,484.543440000000 C 481.345190000000,487.368470000000 475.693350000000,483.837180000000 475.693350000000,483.837180000000 C 464.393220000000,483.307490000000 479.226410000000,500.787380000000 479.226410000000,500.787380000000 C 499.001650000000,472.537040000000 493.351580000000,517.031330000000 493.351580000000,517.031330000000 C 499.001650000000,553.756770000000 504.649950000000,540.337860000000 504.649950000000,540.337860000000 C 511.712540000000,494.431060000000 495.470360000000,474.655820000000 495.470360000000,474.655820000000 C 481.528468874012,469.200295892818 450.936834801378,439.292370902400 442.546077570537,430.924961394435 C 446.876528710824,430.577056895322 451.217964753031,430.227692529613 455.567754320329,429.877105384815 C 467.741424004509,439.077679537700 488.407770000000,454.880580000000 488.407770000000,454.880580000000 C 494.764100000000,461.943170000000 501.824920000000,464.768200000000 501.824920000000,464.768200000000 C 526.543970000000,455.586840000000 515.243830000000,478.893370000000 515.243830000000,478.893370000000 C 519.481380000000,490.899770000000 529.369000000000,470.418270000000 529.369000000000,470.418270000000 C 549.144240000000,440.755410000000 520.187640000000,444.992960000000 520.187640000000,444.992960000000 C 485.778683869884,448.204462745371 468.655341610400,437.408659881684 460.880048219807,429.448670592221 C 489.328518630045,427.152869877151 518.087608864971,424.809031748851 546.424407953285,422.483191612064 C 549.647517964708,425.465544866293 539.992071298681,437.318991849876 542.787910000000,446.405480000000 C 545.612950000000,455.586840000000 554.088050000000,477.480850000000 554.088050000000,477.480850000000 C 549.850500000000,480.305890000000 550.556760000000,499.374870000000 550.556760000000,499.374870000000 C 580.219610000000,540.337860000000 563.269410000000,536.806570000000 563.269410000000,536.806570000000 C 535.725330000000,536.100310000000 561.856890000000,549.519220000000 561.856890000000,549.519220000000 C 567.506960000000,553.050520000000 583.044650000000,565.763170000000 583.044650000000,565.763170000000 C 578.100840000000,563.644390000000 575.275810000000,572.825750000000 575.275810000000,572.825750000000 C 583.750910000000,579.888340000000 578.807100000000,588.363440000000 578.807100000000,588.363440000000 C 568.213220000000,590.482220000000 566.094440000000,597.544800000000 566.094440000000,597.544800000000 C 578.100840000000,611.669970000000 560.444380000000,612.376230000000 560.444380000000,612.376230000000 C 566.800700000000,620.145070000000 558.325600000000,641.332830000000 558.325600000000,641.332830000000 C 549.850500000000,641.332830000000 538.550360000000,651.220450000000 538.550360000000,651.220450000000 C 542.787910000000,659.695550000000 524.425190000000,669.583170000000 524.425190000000,669.583170000000 C 509.593760000000,672.408210000000 514.537570000000,684.414600000000 514.537570000000,684.414600000000 C 500.414170000000,695.008480000000 496.176620000000,723.258820000000 496.176620000000,723.258820000000 C 494.764100000000,741.621540000000 490.526550000000,747.271610000000 499.707910000000,743.740320000000 C 508.887500000000,740.209020000000 507.474990000000,718.315010000000 507.474990000000,718.315010000000 C 499.001650000000,690.770930000000 574.569550000000,662.520590000000 574.569550000000,662.520590000000 C 581.632130000000,659.695550000000 583.044650000000,650.514190000000 583.044650000000,650.514190000000 C 586.575940000000,651.220450000000 602.113630000000,664.639360000000 602.113630000000,664.639360000000 C 615.532540000000,684.414600000000 616.238800000000,668.170650000000 616.238800000000,668.170650000000 C 618.357580000000,661.814330000000 615.532540000000,651.220450000000 615.532540000000,651.220450000000 C 626.126420000000,613.082490000000 601.407370000000,601.782350000000 601.407370000000,601.782350000000 C 583.750910000000,542.456640000000 608.469960000000,557.288070000000 608.469960000000,557.288070000000 C 613.413770000000,567.175690000000 632.482750000000,576.357050000000 632.482750000000,576.357050000000 L 638.839070000000,572.119500000000 C 636.014040000000,563.644390000000 650.845470000000,553.050520000000 650.845470000000,553.050520000000 C 655.789280000000,564.350650000000 666.383150000000,550.225480000000 666.383150000000,550.225480000000 C 672.739480000000,507.143710000000 694.633500000000,532.569020000000 694.633500000000,532.569020000000 C 701.696080000000,534.687790000000 703.814860000000,522.681400000000 703.814860000000,522.681400000000 C 710.171180000000,504.318680000000 703.814860000000,480.305890000000 703.814860000000,480.305890000000 C 710.171180000000,479.599630000000 727.121390000000,490.193510000000 727.121390000000,490.193510000000 C 732.065200000000,483.837180000000 715.821250000000,454.174320000000 722.883840000000,458.411870000000 C 729.946420000000,462.649420000000 737.715260000000,465.474460000000 737.715260000000,465.474460000000 C 739.127780000000,461.943170000000 721.471320000000,440.049150000000 721.471320000000,440.049150000000 C 716.371427748864,436.803762231673 710.662829855891,420.166975313499 707.342413123593,409.119029894845 C 721.876909023786,407.899363183782 735.689217369541,406.737172426378 748.608530958386,405.647847381028 C 750.902097586567,412.310445490899 753.959210000000,418.861400000000 753.959210000000,418.861400000000 C 744.071590000000,409.680040000000 734.890230000000,412.505070000000 743.365330000000,421.686430000000 C 751.840440000000,430.867790000000 755.371730000000,470.418270000000 757.490500000000,478.187110000000 C 759.609280000000,485.955960000000 756.077990000000,526.212690000000 756.077990000000,526.212690000000 C 717.940030000000,500.787380000000 763.846830000000,585.538410000000 763.846830000000,585.538410000000 C 763.846830000000,585.538410000000 771.615670000000,597.544800000000 761.728050000000,586.244670000000 C 721.930390000000,540.761620000000 740.540300000000,594.013510000000 740.540300000000,594.013510000000 C 725.708870000000,579.888340000000 729.946420000000,607.432420000000 729.946420000000,607.432420000000 C 717.233770000000,595.426030000000 718.646280000000,615.907520000000 718.646280000000,615.907520000000 C 718.646280000000,615.907520000000 694.633500000000,591.188480000000 696.046010000000,605.313650000000 C 697.458530000000,619.438820000000 672.033220000000,645.570380000000 672.033220000000,645.570380000000 L 665.676900000000,636.389020000000 L 634.601520000000,704.189840000000 L 626.832680000000,697.833510000000 C 614.826280000000,709.839910000000 578.807100000000,713.371200000000 578.807100000000,713.371200000000 C 597.169820000000,721.140040000000 650.139210000000,710.546170000000 650.139210000000,710.546170000000 C 652.257980000000,699.952290000000 652.964240000000,721.846300000000 652.964240000000,721.846300000000 L 673.445740000000,692.889700000000 C 681.920840000000,663.933100000000 703.108600000000,685.827120000000 703.108600000000,685.827120000000 C 705.227370000000,667.464400000000 714.408730000000,707.721130000000 719.352540000000,703.483580000000 C 724.296350000000,699.246030000000 730.652680000000,688.652150000000 735.596490000000,675.233240000000 C 740.540300000000,661.814330000000 746.190370000000,691.477190000000 746.190370000000,691.477190000000 C 746.190370000000,707.014870000000 751.840440000000,687.945890000000 751.840440000000,687.945890000000 C 757.490500000000,672.408210000000 759.609280000000,658.283030000000 759.609280000000,658.283030000000 C 756.784240000000,632.857730000000 782.915810000000,673.114460000000 782.915810000000,673.114460000000 C 788.565880000000,679.470790000000 790.684650000000,677.352010000000 790.684650000000,677.352010000000 C 792.097170000000,667.464400000000 781.503290000000,639.920310000000 777.972000000000,624.382630000000 C 774.440710000000,608.844940000000 766.671860000000,598.957320000000 782.209550000000,615.201270000000 C 797.747240000000,631.445210000000 791.390910000000,612.376230000000 787.859620000000,605.313650000000 C 784.328330000000,598.251060000000 765.965610000000,564.350650000000 773.734450000000,550.225480000000 C 781.503290000000,536.100310000000 779.384520000000,485.955960000000 778.678260000000,476.774600000000 C 777.972000000000,467.593230000000 780.797030000000,439.342890000000 780.797030000000,439.342890000000 C 765.259350000000,408.973780000000 794.215950000000,418.155140000000 794.215950000000,418.155140000000 C 791.154540130309,411.492071610072 789.068884182760,406.309853408779 787.759942720426,402.339196716901 C 792.978381824171,401.897176617117 797.942079606456,401.476319062707 802.631491311656,401.078385039554 C 804.764756678586,403.164326164173 806.222340000000,404.736230000000 806.222340000000,404.736230000000 L 804.730565520066,400.900238264636 M 660.531627452784,413.036167177684 C 668.863211079110,421.386011043510 652.257980000000,414.976970000000 652.257980000000,414.976970000000 C 644.136010000000,411.798810000000 649.786080000000,423.805210000000 649.786080000000,423.805210000000 C 655.436150000000,426.630240000000 685.805260000000,438.989760000000 685.805260000000,438.989760000000 C 686.511520000000,445.699220000000 681.214580000000,454.527450000000 681.214580000000,454.527450000000 C 681.920840000000,461.590040000000 678.036420000000,467.593230000000 678.036420000000,467.593230000000 C 675.917640000000,482.071530000000 674.858260000000,483.484050000000 674.858260000000,483.484050000000 C 667.442540000000,483.837180000000 654.376760000000,508.203100000000 654.376760000000,508.203100000000 C 651.198600000000,512.793780000000 633.189000000000,533.981540000000 633.189000000000,533.981540000000 C 629.657710000000,546.341060000000 597.876080000000,533.628410000000 597.876080000000,533.628410000000 C 586.222810000000,539.631600000000 589.754100000000,533.628410000000 589.754100000000,533.628410000000 C 589.047850000000,529.743980000000 597.522950000000,519.150110000000 597.522950000000,519.150110000000 C 609.882470000000,514.559430000000 605.291790000000,495.490450000000 605.291790000000,495.490450000000 C 612.354380000000,493.018540000000 592.579140000000,488.074730000000 592.932270000000,485.955960000000 C 593.285400000000,483.837180000000 603.526150000000,481.365280000000 603.526150000000,481.365280000000 C 617.651320000000,477.833980000000 609.882470000000,473.596430000000 609.882470000000,473.596430000000 C 608.823090000000,466.533850000000 614.120020000000,456.646230000000 614.120020000000,456.646230000000 C 634.601520000000,455.233710000000 614.120020000000,426.630240000000 614.120020000000,426.630240000000 C 609.639931232566,423.477585376512 606.114941163443,420.500356796725 603.343554827142,417.790142869527 C 622.966763996893,416.165246684838 642.118948311653,414.572524746554 660.531627452703,413.036167177635 M 128.066569838164,451.075887581223 C 132.447662567242,451.551357941497 137.414572228951,451.892331748614 143.045590000000,452.055550000000 C 149.433238427522,452.240698298943 166.363296828396,451.426119850051 190.962271228951,449.870716955215 C 185.050185596412,453.681462809106 162.820830000000,455.586840000000 162.820830000000,455.586840000000 C 129.877525677402,463.556995606386 127.315133920233,455.537192762473 128.066569838113,451.075887581161 M 192.763885563629,449.756350502343 C 205.372506253628,448.952862638884 219.918923484616,447.962066401940 236.033127580308,446.817299727068 C 230.719965532296,451.830156391381 221.582460020327,458.860772987076 213.671440000000,456.999360000000 C 209.165593788960,455.934103914834 196.739623448404,451.633232453851 192.763885563564,449.756350502324 M 441.728763859663,430.990616769441 C 444.356985588945,434.989044061454 444.545812207061,436.454354602789 438.689047413637,431.234678102256 C 439.701652099524,431.153407245759 440.714902182104,431.072052452971 441.728763859604,430.990616769379" style="fill:#ff0000;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round"/>
</svg>