{"_id":"sweepline-intersections","_rev":"14-3c442a6439c1bdf80b2b7722bdba6fec","name":"sweepline-intersections","dist-tags":{"latest":"2.0.1"},"versions":{"0.0.1":{"name":"sweepline-intersections","version":"0.0.1","author":"","license":"MIT","_id":"sweepline-intersections@0.0.1","maintainers":[{"name":"rowanwins","email":"rowanwins@yahoo.com.au"}],"ava":{"files":["test/*.spec.js"],"require":["esm"]},"dist":{"shasum":"bda531bb990c637223500f3edf200f61c5b3ced8","tarball":"https://registry.npmjs.org/sweepline-intersections/-/sweepline-intersections-0.0.1.tgz","fileCount":14,"integrity":"sha512-jynZVN+hkOBc37uMLJReHVE3+UdbQcEGwc5SkxkNGP1bO2UwbyZ9aN2lSc79kNnpH3uRfwFCqM3CBcH2WIl+qw==","signatures":[{"sig":"MEUCIQCLECTY79UrpNh5wrNjEDdxM52HPv8I3zlEJJZxtEwzhAIgQLUMMVpnBXq5Ci6noxR6ppC/9kJd1lXxkJMRxIAgNus=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23008,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdehuwCRA9TVsSAnZWagAAKqIP/1vTPhRkS85821QiseCi\nHwXFS5JF7xTH8lSo5HDeHo38Sv1udZZaaDoHQ3K4577FDDrGvB6m+Foj8GkJ\n+87+/ryozXkk3dD7/JLWsKD/k/LVCOPoq5EsKulC9SGMkYYKewR3zGWG9YJ0\nvEsIyiySYK7Y2z5tvE1toE4N410IxY0SOGb69vD8ix4gJUbn4AJW9C72DKbK\nvFcJfBx2aqPH01Dq93sXGfeFFm6H088t8gvSBaMQTm7+kZHDbHSTxAWjsHsE\nLM9L7akI+ufFLT2r8YcsuapGXlIMUd10LBuk+gmhEfbmw2JtfJepDiUo/xrq\noEKBTZCMeOrVr3unfKcglbLmlKooEaBGfgj+U/fVtWDN4Gj1Z97xBSoAwHXv\nSKQIqUOsc/rkVhop8C/y5tZWbm38PoOl/9jGnMCCYKryhrxcACyj8yovyeuI\n1NNhyhqPlt+YHCo6OAwJrhGOnCXsN62fnMxeYLqec4LKK+N4QbptfHWtcbUr\nVenWiE9JfHeHifJiIDbnEOTcuZdgWyt9vdyx8i7W2Qentz0B51LuK8E91TZt\nh3++PorEStXwii/7Am3kePlw+p+zof/DuEY/Em+bEi1qsrcfsufpkFGsT46W\n5e7X6fAhoy9rg0Skj15sjxluQWcZDsK6ePcg+GC0R+LcwGXO0BAOkANSdEXZ\nKpfD\r\n=utCS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/sweeplineIntersections.js","unpkg":"dist/sweeplineIntersections.min.js","module":"src/main.js","gitHead":"7ac3e463fa93f0e8150fb695f3aecad8cbee9073","scripts":{"test":"npm run test:unit && npm run test:e2e","bench":"npm run build && node test/benchmark.js","build":"rollup -c","debug":"cross-env webpack-dev-server --config debug/webpack.config.js --mode development --open --hot","test:e2e":"ava ./test/test.e2e.js --verbose","test:unit":"ava --verbose","build:debug":"cross-env webpack --config debug/webpack.config.js --mode production","test:coverage":"nyc npm run test:unit"},"_npmUser":{"name":"rowanwins","email":"rowanwins@yahoo.com.au"},"jsdelivr":"dist/sweeplineIntersections.min.js","_npmVersion":"6.4.1","description":"A module to check if a polygon self-intersects using a sweepline algorithm","directories":{},"_nodeVersion":"8.16.0","dependencies":{"tinyqueue":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ava":"^1.0.1","esm":"^3.0.84","nyc":"^13.1.0","vue":"^2.5.22","glob":"^7.1.3","eslint":"^5.12.0","rollup":"^1.16.2","leaflet":"^1.4.0","webpack":"^4.29.0","benchmark":"^2.1.4","cross-env":"^5.2.0","css-loader":"^2.1.0","vue-loader":"^15.6.2","file-loader":"^3.0.1","json-loader":"^0.5.7","webpack-cli":"^3.2.1","load-json-file":"^5.3.0","webpack-dev-server":"^3.1.14","rollup-plugin-strip":"^1.2.1","rollup-plugin-terser":"^4.0.2","eslint-config-mourner":"^3.0.0","vue-template-compiler":"^2.5.22","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-node-resolve":"^4.0.0","2d-polygon-self-intersections":"^1.3.1","bentley-ottmann-intersections":"0.0.1","geojson-polygon-self-intersections":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/sweepline-intersections_0.0.1_1568283568127_0.1888790225133996","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"sweepline-intersections","version":"1.0.0","author":"","license":"MIT","_id":"sweepline-intersections@1.0.0","maintainers":[{"name":"rowanwins","email":"rowanwins@yahoo.com.au"}],"ava":{"files":["test/test.e2e.js","test/*.spec.js"],"require":["esm"]},"dist":{"shasum":"f64d0c28b8ee0d0becb210e7e1ca7433e313be39","tarball":"https://registry.npmjs.org/sweepline-intersections/-/sweepline-intersections-1.0.0.tgz","fileCount":15,"integrity":"sha512-knHD4YYNChiEA2KOmLcQN7nyFcYjB7SDBuP/oLbokAMmMF+5Xv+e+0iXZ60fbx9ke9UL+tDT0+KuO0dUEIWvTQ==","signatures":[{"sig":"MEYCIQDDbdli/btkOEN5+bcC8jN495JJP2/g1eYrvpDgiQCkkwIhANwNcHfuU6QN8dQRV92NEg7F6sHo4/3AbzHErAyeWfRV","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29458,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeESPBCRA9TVsSAnZWagAAybcP/izb7HZ4nQ+IPstdX8Ei\n2hQe7mdz+eFiGQX4pjS/BX72lsP+9JiaT0lZTBrjzbky7SoyHpd94a2+AwSF\njgpL66Pe/HC8KRENdptYgRCI/MjOdXCYpwdiD6hm/0j07dmoe6nlSvP/2/Fi\netmg1eM0CfqQ/qLgwKQjaLFf9VJjHP4XYEXWxuEQYN1Gx0NUMDkX/llEuliq\n/qZZ+E2MqB8JMYVg7QW3EmS+Gg7HRwXWjjZMWA7oBw7o0wPz4IsMbSZxRVc4\nzzF1RmPHF0wBGBQXGWKhmvUE+D6JvDlgW3J2jQgMgQjDg/XZcH3wRkjvO5u8\n3TcV7z1up3aPp56eFeGz65/VkNEQw+m/Pfc43rAOlIFszQPsd0VvfHMOh8d0\nzQ0wa3GItls3esX/jpUgwb3p0p7guDL/7ukRnH2lT8FYTgqLzZ1QGdthtbTF\n2TBOh7kPkxR+hSxUoWUxYTncv55QfVB3uX7BZzQqvBz7J5Pj1vdbriJKffG+\njZ0w/KnFDUhELR4ZiDlc/2d/O8FtJXeUPO/QO1ZdvvnZ9BoWlaK1MrX+3z1b\nUcBqMUE/J3bd2SYI8KM0m01R/7lmLAq/UzypzNuNiwgdckxfwOC+AEhnS0yK\nlUyDQImSJWc5xxVCnrWQli6/JuxCyps8K4ORAuI5knzGFr8n6lUJmQdZtVm5\n4T5I\r\n=i5at\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/sweeplineIntersections.js","unpkg":"dist/sweeplineIntersections.min.js","module":"dist/sweeplineIntersections.esm.js","gitHead":"57860d7645a3d394482af29da2f87a9ad4d43a7c","scripts":{"test":"ava --verbose","bench":"npm run build && node test/benchmark.js","build":"rollup -c","debug":"cross-env webpack-dev-server --config debug/webpack.config.js --mode development --open --hot","build:debug":"cross-env webpack --config debug/webpack.config.js --mode production"},"_npmUser":{"name":"rowanwins","email":"rowanwins@yahoo.com.au"},"jsdelivr":"dist/sweeplineIntersections.min.js","_npmVersion":"6.4.1","description":"A module to check if a polygon self-intersects using a sweepline algorithm","directories":{},"_nodeVersion":"8.16.2","dependencies":{"tinyqueue":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ava":"^1.0.1","esm":"^3.0.84","nyc":"^13.1.0","vue":"^2.5.22","glob":"^7.1.3","eslint":"^5.12.0","rollup":"^1.16.2","leaflet":"^1.4.0","webpack":"^4.29.0","benchmark":"^2.1.4","cross-env":"^5.2.0","css-loader":"^2.1.0","vue-loader":"^15.6.2","file-loader":"^3.0.1","json-loader":"^0.5.7","webpack-cli":"^3.2.1","load-json-file":"^5.3.0","webpack-dev-server":"^3.1.14","rollup-plugin-strip":"^1.2.1","rollup-plugin-terser":"^4.0.2","eslint-config-mourner":"^3.0.0","vue-template-compiler":"^2.5.22","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-node-resolve":"^4.0.0","2d-polygon-self-intersections":"^1.3.1","bentley-ottmann-intersections":"0.0.1","geojson-polygon-self-intersections":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/sweepline-intersections_1.0.0_1578181569258_0.11823955064596037","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"sweepline-intersections","version":"1.0.1","author":"","license":"MIT","_id":"sweepline-intersections@1.0.1","maintainers":[{"name":"rowanwins","email":"rowanwins@yahoo.com.au"}],"homepage":"https://github.com/rowanwins/sweepline-intersections#readme","bugs":{"url":"https://github.com/rowanwins/sweepline-intersections/issues"},"ava":{"files":["test/test.e2e.js","test/*.spec.js"],"require":["esm"]},"dist":{"shasum":"d0c65810a4e86f1422e81e29ba9d988c3e3cb2d2","tarball":"https://registry.npmjs.org/sweepline-intersections/-/sweepline-intersections-1.0.1.tgz","fileCount":15,"integrity":"sha512-tuLmQOkbLVfra3464i/Us0L7iCifq4V19SnRxxRB5U3u9Dvv0CTzZ+5noS1NT8FF/e/Pk01ypFXWrUpiBpiyOQ==","signatures":[{"sig":"MEUCIEXYCWbw9qIJ0po0/ErTeE/uzw5V+ScJsvM5MiYA/5VhAiEA+623H8BgnGdUeoSh1AzypPSKdxw+HlTLBDF0fgvGavA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29664,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeESR0CRA9TVsSAnZWagAAcE4QAJ47+k8yJhrBi7Zz7yR4\nCx/2rHGxL5tf7xHECO9OiQaxzWttBcKhXuNBMSW2XrXEmtSpNkoBUnhscBSF\nxgRkrryXJY7dgcNUh9+S94MuR5y0v4vlFCe5xUDXlNFmnEghBw7SmejZoIgN\nGk48A+DZg1OwMVjSRwfn4RVpNGiJ6ye1Y+ICWRfLBsSRRBmqgjplGrBo7D7r\nNrtfnrv+yPoxWzGmYGNg2f9toGiFuyR0MlGumgV6cuxN7jOk1u4cNwQ/SP3R\nf1wxeqC+8xyptuGwoewdWDY4M8+zipZ44mA9FleLNK7qeOuScw245NP42w9K\nvTeTwBvYetwjid4nl1vIDVfJWQr6WpvtUhhG3aOo3IpV1HAo0OpiOSx59WuI\nLRr/7DUDdIkg+jMc1yth5INRpoqVSQ4bWCHtGiq/fOb9Wz7tO3ItRrftyOFi\naXVjJbdNrzX80N1b/gulYszilidq6lEeUDXC9FXUiFYT8vlTbfdhXl4ti2UD\n6i8DnT4MifKlMC432FSyXvDSA8X12MjOOt6y5nElQIq2ZRK2IqO1UNsI/QXg\nuTocidcE331efImh1Uso/U3yatUwcf9j4AimVsRzgZNMGEGlyjLXBI1R6i9o\nlS7wgtH7ATJGoJm9FEeDfwRWK2c4Gfa5l/hmp5F04GBejaoh+WDrTuR2C722\nwVgY\r\n=yM/F\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/sweeplineIntersections.js","unpkg":"dist/sweeplineIntersections.min.js","module":"dist/sweeplineIntersections.esm.js","gitHead":"57860d7645a3d394482af29da2f87a9ad4d43a7c","scripts":{"test":"ava --verbose","bench":"npm run build && node test/benchmark.js","build":"rollup -c","debug":"cross-env webpack-dev-server --config debug/webpack.config.js --mode development --open --hot","build:debug":"cross-env webpack --config debug/webpack.config.js --mode production"},"_npmUser":{"name":"rowanwins","email":"rowanwins@yahoo.com.au"},"jsdelivr":"dist/sweeplineIntersections.min.js","repository":{"url":"git+https://github.com/rowanwins/sweepline-intersections.git","type":"git"},"_npmVersion":"6.4.1","description":"A module to check if a polygon self-intersects using a sweepline algorithm","directories":{},"_nodeVersion":"8.16.2","dependencies":{"tinyqueue":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ava":"^1.0.1","esm":"^3.0.84","nyc":"^13.1.0","vue":"^2.5.22","glob":"^7.1.3","eslint":"^5.12.0","rollup":"^1.16.2","leaflet":"^1.4.0","webpack":"^4.29.0","benchmark":"^2.1.4","cross-env":"^5.2.0","css-loader":"^2.1.0","vue-loader":"^15.6.2","file-loader":"^3.0.1","json-loader":"^0.5.7","webpack-cli":"^3.2.1","load-json-file":"^5.3.0","webpack-dev-server":"^3.1.14","rollup-plugin-strip":"^1.2.1","rollup-plugin-terser":"^4.0.2","eslint-config-mourner":"^3.0.0","vue-template-compiler":"^2.5.22","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-node-resolve":"^4.0.0","2d-polygon-self-intersections":"^1.3.1","bentley-ottmann-intersections":"0.0.1","geojson-polygon-self-intersections":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/sweepline-intersections_1.0.1_1578181747551_0.8503566958506377","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"sweepline-intersections","version":"1.1.1","author":"","license":"MIT","_id":"sweepline-intersections@1.1.1","maintainers":[{"name":"rowanwins","email":"rowanwins@yahoo.com.au"}],"homepage":"https://github.com/rowanwins/sweepline-intersections#readme","bugs":{"url":"https://github.com/rowanwins/sweepline-intersections/issues"},"ava":{"files":["test/test.e2e.js","test/*.spec.js"],"require":["esm"]},"dist":{"shasum":"ea72b5df14f5d173ce811d696388fcd19445ef94","tarball":"https://registry.npmjs.org/sweepline-intersections/-/sweepline-intersections-1.1.1.tgz","fileCount":9,"integrity":"sha512-8IxpI8et81f56kL7CQCLVHLA7a0AF5qDVRV9e0SkRJb2UZZZuUweD6MbKXcYaNP3HlvvnzqdLcb8CI593iAYeg==","signatures":[{"sig":"MEYCIQDWfL+rk+0Dl5UnnRPtweyfkvNspOep5eGmj5VGnzH3YwIhALGNyM9Ev6UGOMQueoHfq1bG4lPTOGjTg1iqZQDS3lgT","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27576,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJerRzPCRA9TVsSAnZWagAAp7wP/j0x8yEiOC5jdMFP90lB\nTOc9GW1586JL+E7ZK5AD2gVQ70rcHb1VD3vLWrO76x/3P2wDQqn06zEz/X8K\ncWGbsZ4w2qtvHAUF3G/ajE7y3SdTm1u2HW4AS9Q7EiTlixXSk9kioc/8LqrP\n+CYZV0ZS0a4eyJonKxoO4o00upfXDg3ZuuJRZpzr/qIetWYsTnBWRzb8244F\nVGb3fsQH/bm3w0Ol52PYHYRM8pWrZ6F4tS6lN7wpv2HdwpjRJW56hNEKIr/5\nXfcLzr/kei9+sq4P0LsqGH9hwtydLKaxb5ytu+RtqYH1YNV04KF9yivtloAg\nMa7drJ9rROSf07pytXztPl+tHvm4MsFTaXYba63f1X0jVmOyJIxhdImQQjHF\n8ZwZzBaPmaGoARFekQLYfuJ7MkpUrG8j8F8u1eNoqHbEV2Rq98wyQ/WTOls9\nm/zYRQFuDBhbWdqINsy0epznX3yqjwtiWrcaasR54s+oZTVKjVncwLavcV8t\nnxmsV/lTGegbAHwHSXB58lh3SIrtQre/yoEVXIRaBgH2JscTAJLeQUTRw3zo\nq/6L/5an08EYyXH7edHjsSkFq4qxUeg3/Cy4PHfDZGiGjZ8wLa3yzy5pas5w\nA2unp2fUVd6YNw5iThOEwKhfmJ6WDuyIO2Yu+SXDkTgf7zB3xUAFOe/NXC47\nCswJ\r\n=xqtE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/sweeplineIntersections.js","unpkg":"dist/sweeplineIntersections.min.js","module":"dist/sweeplineIntersections.esm.js","gitHead":"607a00898483397f8d179dd0c60fb9ce6c889185","scripts":{"test":"ava --verbose","bench":"npm run build && node test/benchmark.js","build":"rollup -c","debug":"cross-env webpack-dev-server --config debug/webpack.config.js --mode development --open --hot","build:debug":"cross-env webpack --config debug/webpack.config.js --mode production"},"_npmUser":{"name":"rowanwins","email":"rowanwins@yahoo.com.au"},"jsdelivr":"dist/sweeplineIntersections.min.js","repository":{"url":"git+https://github.com/rowanwins/sweepline-intersections.git","type":"git"},"_npmVersion":"6.13.4","description":"A module to check if a polygon self-intersects using a sweepline algorithm","directories":{},"_nodeVersion":"10.19.0","dependencies":{"tinyqueue":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ava":"^1.0.1","esm":"^3.0.84","nyc":"^13.1.0","vue":"^2.5.22","glob":"^7.1.3","eslint":"^5.12.0","rollup":"^2.7.6","leaflet":"^1.4.0","webpack":"^4.29.0","benchmark":"^2.1.4","cross-env":"^5.2.0","css-loader":"^2.1.0","vue-loader":"^15.6.2","file-loader":"^3.0.1","json-loader":"^0.5.7","webpack-cli":"^3.2.1","load-json-file":"^5.3.0","webpack-dev-server":"^3.1.14","@rollup/plugin-strip":"^1.3.2","rollup-plugin-terser":"^4.0.2","eslint-config-mourner":"^3.0.0","vue-template-compiler":"^2.5.22","@rollup/plugin-commonjs":"^11.1.0","@rollup/plugin-node-resolve":"^7.1.3","2d-polygon-self-intersections":"^1.3.1","bentley-ottmann-intersections":"0.0.1","geojson-polygon-self-intersections":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/sweepline-intersections_1.1.1_1588403406880_0.05976965742225859","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"sweepline-intersections","version":"1.1.2","author":"","license":"MIT","_id":"sweepline-intersections@1.1.2","maintainers":[{"name":"rowanwins","email":"rowanwins@yahoo.com.au"}],"homepage":"https://github.com/rowanwins/sweepline-intersections#readme","bugs":{"url":"https://github.com/rowanwins/sweepline-intersections/issues"},"ava":{"files":["test/test.e2e.js","test/*.spec.js"],"require":["esm"]},"dist":{"shasum":"31d746decd97b9a46a75f960243e73c149c9898f","tarball":"https://registry.npmjs.org/sweepline-intersections/-/sweepline-intersections-1.1.2.tgz","fileCount":9,"integrity":"sha512-CkeD573UFIplwJgrhPn5WfKTo9gJiI4QSPTuUlCpXpYD1zWfAG0v/pXdvh/c7N20BF7UA7rVIIkVw3JQaa0KOQ==","signatures":[{"sig":"MEYCIQC0Z6PZPmMr05vk+wtzka+3H2M1qM5O0GeQIqc0bDxACAIhAI6+5HkMYn7POMshDw10LP6PnJvhTu0r+IpVsxgWNzTz","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27650,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJerqtoCRA9TVsSAnZWagAAJ40P/1JVNszfhuooldcuweuv\nNfzJUjWnUznAAKorYCSDqclqk15N6mfGk+JELurLWEcPFaAMW9xM3GWhm44Y\nzI5r9FAFMOf4tU7ZtjOhCluidYeXGeRm7kG02FOwe4xbBUTrhPYd/GbtTBwf\nPXbxqxTfScK8hjsrUdPw0ukYm8IVUPfx9Cnlkc4kfwKvofxdBtU7G8UwAUMw\nWUrSMrZ1metORsseDpPnNs7Ejurvp8+JZjJ+ATxmYwwtLZSLEMAhWt/lS2NZ\nBTGp1ribcfterVM6E4/8IBAsaQHmfzA8RxK5QuoRO38Tc+ynDs09dMHiaZpW\nFd+YSy+lVr71iFcI488e63jBbXKQvlCBm/1+sxGjFpMk/2E7lePkSHf/o/x0\nql0FATQUs+273ZaB7asx6zn7NgidZ3kgMlEvhj+VVSUNT7QxJwOAp9QmbGlj\nS8tcHkFIDv3x4vgQPX8ZD4feE794gH4QFY1C+yAp4VJUlH6nGt+QvJq8hZGW\nZnMC+FCJ1jE5DvdL0K6lbtF8fZU8Ln35ExsBbWd2htic8BM0NFqjxhHy2RJb\nlZpOdpnI6AgxeagR0p8+1VqaaJJj0K/qT/M9kDG9EEwnv2kZGcXPBKEyvxlJ\nOJ+LVzsTIaXOMihdeW8iqE18k8ikXb//1j5WAbgVbQ0i1t8Eu301tPAZSB76\nMF44\r\n=Xfqz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/sweeplineIntersections.js","unpkg":"dist/sweeplineIntersections.min.js","module":"dist/sweeplineIntersections.esm.js","gitHead":"261d30d7d2b8301820fecda34ce09de2698e45f0","scripts":{"test":"ava --verbose","bench":"npm run build && node test/benchmark.js","build":"rollup -c","debug":"cross-env webpack-dev-server --config debug/webpack.config.js --mode development --open --hot","build:debug":"cross-env webpack --config debug/webpack.config.js --mode production"},"_npmUser":{"name":"rowanwins","email":"rowanwins@yahoo.com.au"},"jsdelivr":"dist/sweeplineIntersections.min.js","repository":{"url":"git+https://github.com/rowanwins/sweepline-intersections.git","type":"git"},"_npmVersion":"6.13.4","description":"A module to check if a polygon self-intersects using a sweepline algorithm","directories":{},"_nodeVersion":"10.19.0","dependencies":{"tinyqueue":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ava":"^1.0.1","esm":"^3.0.84","nyc":"^13.1.0","vue":"^2.5.22","glob":"^7.1.3","eslint":"^5.12.0","rollup":"^2.7.6","leaflet":"^1.4.0","webpack":"^4.29.0","benchmark":"^2.1.4","cross-env":"^5.2.0","css-loader":"^2.1.0","vue-loader":"^15.6.2","file-loader":"^3.0.1","json-loader":"^0.5.7","webpack-cli":"^3.2.1","load-json-file":"^5.3.0","webpack-dev-server":"^3.1.14","@rollup/plugin-strip":"^1.3.2","rollup-plugin-terser":"^4.0.2","eslint-config-mourner":"^3.0.0","vue-template-compiler":"^2.5.22","@rollup/plugin-commonjs":"^11.1.0","@rollup/plugin-node-resolve":"^7.1.3","2d-polygon-self-intersections":"^1.3.1","bentley-ottmann-intersections":"0.0.1","geojson-polygon-self-intersections":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/sweepline-intersections_1.1.2_1588505447652_0.8057737719782139","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"sweepline-intersections","version":"1.2.0","author":"","license":"MIT","_id":"sweepline-intersections@1.2.0","maintainers":[{"name":"rowanwins","email":"rowanwins@yahoo.com.au"}],"homepage":"https://github.com/rowanwins/sweepline-intersections#readme","bugs":{"url":"https://github.com/rowanwins/sweepline-intersections/issues"},"ava":{"files":["test/test.e2e.js","test/*.spec.js"],"require":["esm"]},"dist":{"shasum":"4cbdd29087b2c6b3b79a4951fa8a4b9ac44205d9","tarball":"https://registry.npmjs.org/sweepline-intersections/-/sweepline-intersections-1.2.0.tgz","fileCount":7,"integrity":"sha512-cHTjVvdna12iNXOvZV81mBJh8x5zpJmQLsdiWgK89rKIMyC/z7DO86FJ1/zuenX2c5EvIPAtNXWPOhu/MylToQ==","signatures":[{"sig":"MEUCIDhwuq6GxG6xC1vosv6kZhxIOrqFLqHF7R1DzIxcIw4VAiEAoxxdyn+iKf7aFXzENXyfuf/clVkF14YooFpRgBrEiXw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10268,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJ416CRA9TVsSAnZWagAA7FgP/2CcKmsBGa+P9YdVvS4z\nb+wyA7tD3K86jWVC2qSEowBloCk+KKPXSPQwZluMDrLKV6EHOPYJgpypQbst\nlRrwSYAEctpFB4wnVHteiX2aMRUiNxx6uj78pQLVTZNv4whTKtoMUqUCs9VE\n7Mg2BrhQn4qLO5D9lxyH3kMBXO8q7eXE6bjmPJp4Axw4l0XmKGlNFDSLqI1G\nHyaLhKNe1qUAJAxp3BayNXhdwNmnw1Qj0fLXRD1KSOgqCyGArXkSAL6UiYQn\npqSDdluk36ib/3wXCXGRzsPten8/hBznugbVhiG3HcpwvtAx4Mzov+ppHj1p\nnrMsycDK+wTCv312ajOvRFDIvoqMnEdDXJ3RJAOyhY/QZ/sYbM2lF2hgsxlI\nlFB8KruqPUwscU7s4o3MdVqYniUe7qhZVOLFJbX17NNNi8kK4D3kkdOcXiaG\nuDQuG2a4M/HAjCizo9jwKA4fGlZ5O4KXBjzts/9ple64Yzsc5nLbPZOehqAt\nUVG4msgqiP05sdgbkuj+yV0HrE34cDpMdJSW7oYvFDyeythpZCxbWq69XA3I\nYREnBfvhaMVc9y8kAOhEALwGjkptbL4keQj5DgK9FG5sPPd7PSGlA5mCsDTR\nICAu1h3jsV7Jo+VtnTJv5JGeB5dxr2KiOB1w6zrn3BntjbX/fyfZwghgrDsC\n/ZIm\r\n=2Ke5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/sweeplineIntersections.js","unpkg":"dist/sweeplineIntersections.min.js","module":"dist/sweeplineIntersections.esm.js","gitHead":"a9a224bbd1fb2fc4b74fac06965cab54b0735e3b","scripts":{"test":"ava --verbose","bench":"npm run build && node test/benchmark.js","build":"rollup -c","debug":"cross-env webpack-dev-server --config debug/webpack.config.js --mode development --open --hot","build:debug":"cross-env webpack --config debug/webpack.config.js --mode production"},"_npmUser":{"name":"rowanwins","email":"rowanwins@yahoo.com.au"},"jsdelivr":"dist/sweeplineIntersections.min.js","repository":{"url":"git+https://github.com/rowanwins/sweepline-intersections.git","type":"git"},"_npmVersion":"6.14.8","description":"A module to check if a polygon self-intersects using a sweepline algorithm","directories":{},"_nodeVersion":"14.14.0","dependencies":{"tinyqueue":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ava":"^1.0.1","esm":"^3.0.84","nyc":"^13.1.0","vue":"^2.5.22","glob":"^7.1.3","eslint":"^5.12.0","rollup":"^2.7.6","leaflet":"^1.4.0","webpack":"^4.29.0","benchmark":"^2.1.4","cross-env":"^5.2.0","css-loader":"^2.1.0","vue-loader":"^15.6.2","file-loader":"^3.0.1","json-loader":"^0.5.7","webpack-cli":"^3.2.1","load-json-file":"^5.3.0","webpack-dev-server":"^3.1.14","@rollup/plugin-strip":"^1.3.2","rollup-plugin-terser":"^4.0.2","eslint-config-mourner":"^3.0.0","vue-template-compiler":"^2.5.22","@rollup/plugin-commonjs":"^11.1.0","@rollup/plugin-node-resolve":"^7.1.3","2d-polygon-self-intersections":"^1.3.1","bentley-ottmann-intersections":"0.0.1","geojson-polygon-self-intersections":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/sweepline-intersections_1.2.0_1613204857535_0.6099324715679806","host":"s3://npm-registry-packages"}},"1.2.1":{"name":"sweepline-intersections","version":"1.2.1","author":"","license":"MIT","_id":"sweepline-intersections@1.2.1","maintainers":[{"name":"rowanwins","email":"rowanwins@yahoo.com.au"}],"homepage":"https://github.com/rowanwins/sweepline-intersections#readme","bugs":{"url":"https://github.com/rowanwins/sweepline-intersections/issues"},"ava":{"files":["test/test.e2e.js","test/*.spec.js"],"require":["esm"]},"dist":{"shasum":"6bf1e2ec7e3e999d0a28d748f5ffd1a7d05dccc0","tarball":"https://registry.npmjs.org/sweepline-intersections/-/sweepline-intersections-1.2.1.tgz","fileCount":7,"integrity":"sha512-784hArIgwCA5wLZlngMR5gu0RUspcT+oTwikYakZ53+zR2jYyrzyo5OtKIVyXfH/eLKFBNWdRKhpRqYrn3p8uQ==","signatures":[{"sig":"MEUCIQCF9d6Ypdzym0dxLOrihLGGACToj7thfhVbbu9v2h8BTwIgCSmCiim+V7c0PmLzmgxpQb7EIydcUTQ/wrr8be0aQpM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27379,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJ5A5CRA9TVsSAnZWagAARyQP/0xXVncX5voFLjh/nrDj\n2Psjx70rcO4I4xMXdHp0B06Q2p1Ooj0Rx4hvzewO/drVQLByyyO31rQ9KR44\ncCY0Oq0bRWBf0a/ik4+d/vezq++d5QPu2jd9eD+XA51L1gwK3+WmVNAlfgZV\ndR7eq4fHK8bpmJw6Oeh3phn2+JdhQo7A56wP0S47Ap4Tzvd75Oq3kIJyRy4Z\n3qcIFAR4DiVnTctJ28S3NuCawr4M21qLnSudEo3oP3ThYU485R3+vRaHUKEj\nbgP3rom2DJOw81UnwghVrDQ42Wm8UDcHyAaQAsxxlyBJML6KEjBVfFHkXwVZ\nfM/k0skuUmK2Wcx9+hzuVN97QhEP8ARReHTYWtHjADgiCGxtEgwJMCBo5OQN\nVC0saIgvWmi4abUz7AvFbPi1LAbeikUrLhFScB5FU5O0hKoFl2l1wqbqynog\n/rlZ42rfsy58BEX3AMGlgp7hK0oDfstihQkxP/YU3d8BMIIq3atOU2O2DkBH\nCLDciadcDvKernciGVFUaNL6XRVYsV6u+z2Su0ZJc6jLupusaEXXfiEkJ1PF\nhAnw3tmykSgf2x2KSwKY2H4HGcqS4fjCie9WEil+W73X+ILs/4d+l2cBxkob\nB+ccttfkkupkTrs5Immq5nZo7lsxEMObzl7Swg3zZkRCOeQUmhhmERmG8uNb\n/yfy\r\n=VbmJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/sweeplineIntersections.js","unpkg":"dist/sweeplineIntersections.min.js","module":"dist/sweeplineIntersections.esm.js","gitHead":"f61d0a75b61bb37ae5a5c964408d1c946b242538","scripts":{"test":"ava --verbose","bench":"npm run build && node test/benchmark.js","build":"rollup -c","debug":"cross-env webpack-dev-server --config debug/webpack.config.js --mode development --open --hot","build:debug":"cross-env webpack --config debug/webpack.config.js --mode production"},"_npmUser":{"name":"rowanwins","email":"rowanwins@yahoo.com.au"},"jsdelivr":"dist/sweeplineIntersections.min.js","repository":{"url":"git+https://github.com/rowanwins/sweepline-intersections.git","type":"git"},"_npmVersion":"6.14.8","description":"A module to check if a polygon self-intersects using a sweepline algorithm","directories":{},"_nodeVersion":"14.14.0","dependencies":{"tinyqueue":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ava":"^1.0.1","esm":"^3.0.84","nyc":"^13.1.0","vue":"^2.5.22","glob":"^7.1.3","eslint":"^5.12.0","rollup":"^2.7.6","leaflet":"^1.4.0","webpack":"^4.29.0","benchmark":"^2.1.4","cross-env":"^5.2.0","css-loader":"^2.1.0","vue-loader":"^15.6.2","file-loader":"^3.0.1","json-loader":"^0.5.7","webpack-cli":"^3.2.1","load-json-file":"^5.3.0","webpack-dev-server":"^3.1.14","@rollup/plugin-strip":"^1.3.2","rollup-plugin-terser":"^4.0.2","eslint-config-mourner":"^3.0.0","vue-template-compiler":"^2.5.22","@rollup/plugin-commonjs":"^11.1.0","@rollup/plugin-node-resolve":"^7.1.3","2d-polygon-self-intersections":"^1.3.1","bentley-ottmann-intersections":"0.0.1","geojson-polygon-self-intersections":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/sweepline-intersections_1.2.1_1613205560847_0.5638853791689538","host":"s3://npm-registry-packages"}},"1.2.2":{"name":"sweepline-intersections","version":"1.2.2","author":"","license":"MIT","_id":"sweepline-intersections@1.2.2","maintainers":[{"name":"rowanwins","email":"rowanwins@yahoo.com.au"}],"homepage":"https://github.com/rowanwins/sweepline-intersections#readme","bugs":{"url":"https://github.com/rowanwins/sweepline-intersections/issues"},"ava":{"files":["test/test.e2e.js","test/*.spec.js"],"require":["esm"]},"dist":{"shasum":"27475ad37db60107c3c3621e2ec7ae31c0f51482","tarball":"https://registry.npmjs.org/sweepline-intersections/-/sweepline-intersections-1.2.2.tgz","fileCount":9,"integrity":"sha512-VaPO1ChdM3qtjvQydcUrG/HteQNrM5SBnchhzMlnm9BdsEnn0KlG2XkZMVf8wdDTSpLWmsGFkopovBEmfLc3hA==","signatures":[{"sig":"MEUCIBFZRJue40mQWMCVYr4QmnPOheIjHTA4TQCzyKOF9kq6AiEA1NNOgKJS/cDetgnpnmPm8Dh23AbYAZzgbKxl6uypjmA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":43981,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgNhXSCRA9TVsSAnZWagAA7gAP/i23Ka13Mtsy7b48I4ry\nreZdcMrRzmITbjrqrfYulwrdGLRNPWKoXx9lIqEu9eBmWeu5+8BiOPlItDe5\nm38/SeMoTIjtHGRZv/jsce0NAxtJrG4azq+QWgNKvNRQhzqlJRwQ/3t9LE28\n7YTga91WydQEsnjOFwzf1TUqhxl1SdEgFOLw/52cJEzEsmdMlrZHyPJ75Bol\nR/dX71fA9ujKIaCpOaI+E+ovAeHn4OqvHOZ7ZiO/VXeuZWhVXtF5/bvZ4UNY\nHoQvaHDZlLohQw1tlXIzeatdJmP2AugbTi5DUxMRDcFK3xMBfiR0E5PHScWG\n38yK2A0yHV+/li6aVaRsOPq9RIO5wrEy9kzMJS2/QhV6iJPPA1qtnElM3nZu\nM/YxfAvmlG2jEztFcBBrzhKit8U0ogt4EYeiC28KYCkD+Ug9kDuIla/Z4Tq6\nKqcM3I4Csa0A07z3DfFTUzl0g+I5srENbbTwQDzwCy9r0uQKvVcdnKlsCtZI\ntCHp3uuTDt1eea20wGPcTX87TMKP2izAkv0OOaIThQ3OC7P371QamG79znkx\n/y18CNruEqusKMkHJ0L/TITQy6FG4sNHpszbJmh2hcWJsAjqILKjJmuoagnl\nUfuzBfELjG6ncuIH5nwKvXWTeIz2AV0hhvJg1OntVq503soq0EzAjKBpg8Dn\nf1qY\r\n=lTWj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/sweeplineIntersections.js","unpkg":"dist/sweeplineIntersections.min.js","module":"dist/sweeplineIntersections.esm.js","gitHead":"f61d0a75b61bb37ae5a5c964408d1c946b242538","scripts":{"test":"ava --verbose","bench":"npm run build && node test/benchmark.js","build":"rollup -c","debug":"cross-env webpack-dev-server --config debug/webpack.config.js --mode development --open --hot","build:debug":"cross-env webpack --config debug/webpack.config.js --mode production"},"_npmUser":{"name":"rowanwins","email":"rowanwins@yahoo.com.au"},"jsdelivr":"dist/sweeplineIntersections.min.js","repository":{"url":"git+https://github.com/rowanwins/sweepline-intersections.git","type":"git"},"_npmVersion":"6.14.8","description":"A module to check if a polygon self-intersects using a sweepline algorithm","directories":{},"_nodeVersion":"14.14.0","dependencies":{"tinyqueue":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ava":"^1.0.1","esm":"^3.0.84","nyc":"^13.1.0","vue":"^2.5.22","glob":"^7.1.3","eslint":"^5.12.0","rollup":"^2.7.6","leaflet":"^1.4.0","webpack":"^4.29.0","benchmark":"^2.1.4","cross-env":"^5.2.0","css-loader":"^2.1.0","vue-loader":"^15.6.2","file-loader":"^3.0.1","json-loader":"^0.5.7","webpack-cli":"^3.2.1","load-json-file":"^5.3.0","webpack-dev-server":"^3.1.14","@rollup/plugin-strip":"^1.3.2","rollup-plugin-terser":"^4.0.2","eslint-config-mourner":"^3.0.0","vue-template-compiler":"^2.5.22","@rollup/plugin-commonjs":"^11.1.0","@rollup/plugin-node-resolve":"^7.1.3","2d-polygon-self-intersections":"^1.3.1","bentley-ottmann-intersections":"0.0.1","geojson-polygon-self-intersections":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/sweepline-intersections_1.2.2_1614157266247_0.4589181969552554","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"sweepline-intersections","version":"1.3.0","author":"","license":"MIT","_id":"sweepline-intersections@1.3.0","maintainers":[{"name":"rowanwins","email":"rowanwins@yahoo.com.au"}],"homepage":"https://github.com/rowanwins/sweepline-intersections#readme","bugs":{"url":"https://github.com/rowanwins/sweepline-intersections/issues"},"ava":{"files":["test/test.e2e.js","test/*.spec.js"],"require":["esm"]},"dist":{"shasum":"f04b0ff9786baf0f4317094acbff85125c24db9d","tarball":"https://registry.npmjs.org/sweepline-intersections/-/sweepline-intersections-1.3.0.tgz","fileCount":9,"integrity":"sha512-deAGeT2C3ZM/XoBD/FJzdF24e9yojH2tIGPsINc6nk7BC6d5JiLq1ZmH9J1ah8eYMZc4FP/GrSF+kqFqLwiHeA==","signatures":[{"sig":"MEUCIAfUR8NdDFMi48EUVXxsNlF1O5z/m7T1ccjegJha3spRAiEAmyQjjVhIQPFy9lQHkGWuKk2//kH9/43HmccdiXGUAAc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":48471,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgye2DCRA9TVsSAnZWagAAIqcQAJAxVaRSkcqp4YkqTrSi\nZJCtGfLHOdY4zVc/yJfPxdyIA3KrEdUY6zMafYxezJ9l+jsLNhWSofGmH2dR\nTAzWUSHKIb1LeOygWTVRuQlQ9hH+wGYAGw4R56oNLbF1EJsOZljuXHhkfXqf\nqYWX1ts2xgt8bpkWAjO5b01DdHT6P1aO9iEpxVC/RIVTEFaxGn44zTi1w+7s\ntIO9XwNAOjqEVpJPjVkthknlsc7esG9N7hEGAvdN/ysf21UAP/VfR4jvEiLz\ngz34gEPd4t3FNkuQBWDAYHTEbOvLEZ5mFGVCBcVW1GoJCA/YIFzGRD54jD5v\nCdZxhnMs0s8De+qReKBEYKlbTILf3YAwUbjnAa6QWhepJ1ZEvHb+zXaG6A84\n4vMQtALXd68jywWPLmFpdmS2q3FrGv4xNWSdFhw02hcYdl7GcTp2h8mRvzCS\n+0fKHBh3Yvnbt5DSL+yNgLt6BE6U2jh9Av1kf2OzOC2kJIjBJg1PD/wjH4Ft\noe9Gd/Dw9ToLPYhh73xAt4RbOcltbHTCuJvMfZooi1FPet5jspl5XBA/UHUC\ngr4LsehOEpXgBiY8mj3NbtiBgw/b4eQTeLKqr3fLvFfv37h6i7ZssFFtakx6\nc1B1CEwrOspXP74NNFYryHPLa3A9hwkIY+4jBXsKOy3aVMZbBIgmUMXOldN2\nzMBx\r\n=m6Qz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/sweeplineIntersections.js","unpkg":"dist/sweeplineIntersections.min.js","module":"dist/sweeplineIntersections.esm.js","gitHead":"db344101337ba99a17d2317c4a197ac997407cfd","scripts":{"test":"ava --verbose","bench":"npm run build && node test/benchmark.js","build":"rollup -c","debug":"cross-env webpack-dev-server --config debug/webpack.config.js --mode development --open --hot","build:debug":"cross-env webpack --config debug/webpack.config.js --mode production"},"_npmUser":{"name":"rowanwins","email":"rowanwins@yahoo.com.au"},"jsdelivr":"dist/sweeplineIntersections.min.js","repository":{"url":"git+https://github.com/rowanwins/sweepline-intersections.git","type":"git"},"_npmVersion":"6.14.8","description":"A module to check if a polygon self-intersects using a sweepline algorithm","directories":{},"_nodeVersion":"14.14.0","dependencies":{"tinyqueue":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ava":"^1.0.1","esm":"^3.0.84","nyc":"^13.1.0","vue":"^2.5.22","glob":"^7.1.3","eslint":"^5.12.0","rollup":"^2.7.6","leaflet":"^1.4.0","webpack":"^4.29.0","benchmark":"^2.1.4","cross-env":"^5.2.0","css-loader":"^2.1.0","vue-loader":"^15.6.2","file-loader":"^3.0.1","json-loader":"^0.5.7","webpack-cli":"^3.2.1","load-json-file":"^5.3.0","webpack-dev-server":"^3.1.14","@rollup/plugin-strip":"^1.3.2","rollup-plugin-terser":"^4.0.2","eslint-config-mourner":"^3.0.0","vue-template-compiler":"^2.5.22","@rollup/plugin-commonjs":"^11.1.0","@rollup/plugin-node-resolve":"^7.1.3","2d-polygon-self-intersections":"^1.3.1","bentley-ottmann-intersections":"0.0.1","geojson-polygon-self-intersections":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/sweepline-intersections_1.3.0_1623846275536_0.547923503089029","host":"s3://npm-registry-packages"}},"1.3.1":{"name":"sweepline-intersections","version":"1.3.1","author":"","license":"MIT","_id":"sweepline-intersections@1.3.1","maintainers":[{"name":"rowanwins","email":"rowanwins@yahoo.com.au"}],"homepage":"https://github.com/rowanwins/sweepline-intersections#readme","bugs":{"url":"https://github.com/rowanwins/sweepline-intersections/issues"},"ava":{"files":["test/test.e2e.js","test/*.spec.js"],"require":["esm"]},"dist":{"shasum":"a1ec86e96d929f34c56ea02c84b8d93a6e3de8aa","tarball":"https://registry.npmjs.org/sweepline-intersections/-/sweepline-intersections-1.3.1.tgz","fileCount":9,"integrity":"sha512-5+e8gDZ7aWx/tymFqrUzAvMDhpMq1EM3gSFY9D08dIbMAEFB7X7g0J0piNkuxlhsSfbnyvvHqH5R+dBq4gRKZg==","signatures":[{"sig":"MEUCIFj2CKfIq4IR4ozooYwkejHstEPT9ZnqRQYa0/tIbXiWAiEA8dVqP/eu3VoPw6JTvGy0u+/EAQJiBXfDOHdE6CjZh6M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":47342,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgye6YCRA9TVsSAnZWagAAbFQP/1M56qD89fILZHDzCFUS\nhSK54H7dHJYk1ct2MeVRuRdiuV/oOg2gXvjCF3Gol89nzHX1BAx4a8i/J4L/\n99DScbnwiGcMNy50Ww7Eiy81caurz8lGfqavEjGaZwxkxJ7P30bhYNiemEMS\nifN4uFZakuX6w3dTcmgV5Txf+1xn21HTB6faIas7EhOhkXl24/ik9hf5XLuH\nA/RvZu8gvYk1F3LQg7LRkXQNmMbrgv2CZXNT8iNDFH0OxzPTnT8jvdFA4A6t\nZrpKptpUIMnJd0VCQlFDBvs2XG0F2mEOCaGkXalBfhX9yM75YGB0jsd4RSnp\nUuggaJnCoiJWpITHhg/VkfjF8OyjxpaK86Y9WEVOYlaPKXdPYkcbxMbVforT\n9OlzyZB2oLTsG80vRIs0EYBlnBGonIe2vzU/Ta0c1scEn+fOqENZ+OhY9ZrL\nIxHPkV4C4OkPSjOH3Qi82NzAbHXwI1JkHR9QyE2cEvQKwGhaZL3pCelh41Ve\nJ2djTdLL7Oin1dbwsYgP4hnxPfjtf2pASgJwB6tD2lR8298ThHkJ8zofx4H1\n16vreDnNjcuMfAyRGDwvDY2qWbSSR3MpfLbuL3lkcsNAp2zM+NBkRtMI53/9\nqaxnBVRr+x4N8p9rlgB1XYhtPeVa2jqtCol/DsJ9fSSTxJFI4zQyw3KHLZqt\n5+fm\r\n=5xmQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/sweeplineIntersections.js","unpkg":"dist/sweeplineIntersections.min.js","module":"dist/sweeplineIntersections.esm.js","gitHead":"db344101337ba99a17d2317c4a197ac997407cfd","scripts":{"test":"ava --verbose","bench":"npm run build && node test/benchmark.js","build":"rollup -c","debug":"cross-env webpack-dev-server --config debug/webpack.config.js --mode development --open --hot","build:debug":"cross-env webpack --config debug/webpack.config.js --mode production"},"_npmUser":{"name":"rowanwins","email":"rowanwins@yahoo.com.au"},"jsdelivr":"dist/sweeplineIntersections.min.js","repository":{"url":"git+https://github.com/rowanwins/sweepline-intersections.git","type":"git"},"_npmVersion":"6.14.8","description":"A module to check if a polygon self-intersects using a sweepline algorithm","directories":{},"_nodeVersion":"14.14.0","dependencies":{"tinyqueue":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ava":"^1.0.1","esm":"^3.0.84","nyc":"^13.1.0","vue":"^2.5.22","glob":"^7.1.3","eslint":"^5.12.0","rollup":"^2.7.6","leaflet":"^1.4.0","webpack":"^4.29.0","benchmark":"^2.1.4","cross-env":"^5.2.0","css-loader":"^2.1.0","vue-loader":"^15.6.2","file-loader":"^3.0.1","json-loader":"^0.5.7","webpack-cli":"^3.2.1","load-json-file":"^5.3.0","webpack-dev-server":"^3.1.14","@rollup/plugin-strip":"^1.3.2","rollup-plugin-terser":"^4.0.2","eslint-config-mourner":"^3.0.0","vue-template-compiler":"^2.5.22","@rollup/plugin-commonjs":"^11.1.0","@rollup/plugin-node-resolve":"^7.1.3","2d-polygon-self-intersections":"^1.3.1","bentley-ottmann-intersections":"0.0.1","geojson-polygon-self-intersections":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/sweepline-intersections_1.3.1_1623846552829_0.13774952732654522","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"sweepline-intersections","version":"1.4.0","author":"","license":"MIT","_id":"sweepline-intersections@1.4.0","maintainers":[{"name":"rowanwins","email":"rowanwins@yahoo.com.au"}],"homepage":"https://github.com/rowanwins/sweepline-intersections#readme","bugs":{"url":"https://github.com/rowanwins/sweepline-intersections/issues"},"ava":{"files":["test/test.e2e.js","test/*.spec.js"],"require":["esm"]},"dist":{"shasum":"9a9843e0fd4829e83e48907506aef27256c564ab","tarball":"https://registry.npmjs.org/sweepline-intersections/-/sweepline-intersections-1.4.0.tgz","fileCount":9,"integrity":"sha512-OSqsMTRINvMQq9v/6KGaPnpXn2anbbm0lWR1bxa4OVScq7UBi7spK0jQE1q64/bYXZ478onjAa9lgdKLYL5HHQ==","signatures":[{"sig":"MEUCIQCaRa6SbMl3n6mkduDbi3R9+zPZ/eveT+E7QPf9yw/rzQIgbCc/NuBh/rQJZnTBoXLAOVXurt6YVOn8QjTfXet/5lc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":47186,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiN7rDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqKvhAAicoh9o5okyyDbZd8AYTe4FNbHR12EZiA6Z24lhYdPal+TFQW\r\nyMFudpXNp1px+t3VCWKrSS3tDZTx65iFSJIaiSTML6NtS3SLthZcNio7epBw\r\ntPRF+FylQ8gYOlPN2lmE7C/KS6HAMmyh4pV2EKxaDaaEH2j9pisAAE4JMqr0\r\nFUn2FcazT4zrx6+nqSIuztpqC0DnSYss7C5vh+VqqJMwvvub1nUxKhKxJVS9\r\neDvzdgDuGUe+UIm3hr0uHckKj64uRt88i7+v4KNFFMsUOOpDic4pTOQiSias\r\ngGUH3Eh6AGHHMRfM8rFkHfy9aKiAMvd0sT3J20FAf7O00X7kEDWnmbn1tpie\r\nGLJCfDsQDxKaSlONivMGpUieBxGrOND8JX1UO5dEYY84TXaYmU4/OKys9SCV\r\nM2KdvcTgSgt+AOAXs+HmzB0C4SGMX7XjxTiSdAGblSeyOFmzqtra8W0iZRMt\r\ntwDya9uoORSWi/lqEdzwCxh1AzO5tn428dQRUt+ZVwD1uR54gToTW+C561Ar\r\nTXT5nvAnqDnFHToJx1DdlOAHRv0ahHbv5pZxjYT33Qzi8V9sgnZ2y6+mYY+s\r\nvv0sAQYgjQKYQhhIZrROvs7L7a2TZHpLnt+yaQVwQVB9i6vhh7y+4jL9Sqm8\r\nkIUFWvtA3xc5Nd+Y4ngJtKBYzMYVEIUpnPQ=\r\n=lVva\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/sweeplineIntersections.js","unpkg":"dist/sweeplineIntersections.min.js","module":"dist/sweeplineIntersections.esm.js","gitHead":"303d38c9e9824a0968790c1022cd1c5458f48aa1","scripts":{"test":"ava --verbose","bench":"npm run build && node test/benchmark.js","build":"rollup -c","debug":"cross-env webpack-dev-server --config debug/webpack.config.js --mode development --open --hot","build:debug":"cross-env webpack --config debug/webpack.config.js --mode production"},"typings":"types.d.ts","_npmUser":{"name":"rowanwins","email":"rowanwins@yahoo.com.au"},"jsdelivr":"dist/sweeplineIntersections.min.js","repository":{"url":"git+https://github.com/rowanwins/sweepline-intersections.git","type":"git"},"_npmVersion":"8.3.1","description":"A module to check if a polygon self-intersects using a sweepline algorithm","directories":{},"_nodeVersion":"16.14.0","dependencies":{"tinyqueue":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ava":"^1.0.1","esm":"^3.0.84","nyc":"^13.1.0","vue":"^2.5.22","glob":"^7.1.3","eslint":"^5.12.0","rollup":"^2.7.6","leaflet":"^1.4.0","webpack":"^4.29.0","benchmark":"^2.1.4","cross-env":"^5.2.0","css-loader":"^2.1.0","vue-loader":"^15.6.2","file-loader":"^3.0.1","json-loader":"^0.5.7","webpack-cli":"^3.2.1","@types/geojson":"7946.0.8","load-json-file":"^5.3.0","webpack-dev-server":"^3.1.14","@rollup/plugin-strip":"^1.3.2","rollup-plugin-terser":"^4.0.2","eslint-config-mourner":"^3.0.0","vue-template-compiler":"^2.5.22","@rollup/plugin-commonjs":"^11.1.0","@rollup/plugin-node-resolve":"^7.1.3","2d-polygon-self-intersections":"^1.3.1","bentley-ottmann-intersections":"0.0.1","geojson-polygon-self-intersections":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/sweepline-intersections_1.4.0_1647819459652_0.3399393872841905","host":"s3://npm-registry-packages"}},"1.5.0":{"name":"sweepline-intersections","version":"1.5.0","keywords":["kinks","intersections","self-intersections","complex polygon"],"author":"","license":"MIT","_id":"sweepline-intersections@1.5.0","maintainers":[{"name":"rowanwins","email":"rowanwins@yahoo.com.au"}],"homepage":"https://github.com/rowanwins/sweepline-intersections#readme","bugs":{"url":"https://github.com/rowanwins/sweepline-intersections/issues"},"ava":{"files":["test/test.e2e.js","test/*.spec.js"],"require":["esm"]},"dist":{"shasum":"85ab3629a291875926fae0acd508496430d8a647","tarball":"https://registry.npmjs.org/sweepline-intersections/-/sweepline-intersections-1.5.0.tgz","fileCount":9,"integrity":"sha512-AoVmx72QHpKtItPu72TzFL+kcYjd67BPLDoR0LarIk+xyaRg+pDTMFXndIEvZf9xEKnJv6JdhgRMnocoG0D3AQ==","signatures":[{"sig":"MEUCIFtqumq/8lxowdnuETR0ysBhOSIXlt3KYzHXuqBTqzwbAiEAzj+D3fZf/mA72laBSfxqqi3mddGfOc5q1e0xxlfe0bA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":47716,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjPr4eACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq5iA/+Ic2a+y6KtFMSpAurFNR1/4hkmGgGYG3UxFvwGNrDij7EgWgA\r\nUi/oIbL9bdJna/c3GoYan+Ai7EFDJcQ1RgaPA6vRIUhhUG++5r5cFGaLMdGT\r\n/z9jcTYaF5+IG6BYWDbT5PKcsvRPcEazFLrsKZ6kpBLwfC6H3PmTz7MWGeTA\r\n+2J6AAOT3RyphNJWKo8Vs+USgjiXQEhk7a4LHfyoHek8CDXyVXdO2QWfSZpr\r\nKKmdRSXkaKWt4rpnLpe7FEFq2EJfBHzflOWZEhhADnaqhQpZ4STcgndSzPqb\r\nxAfXKg3kf+3SSd4hOSgkaVaRntSuq/vF1U++A/eTabGkNDcYziyPFhMetaL8\r\npc0/EDp4D8ryGYurJKKH0AInNphl7h6kHm4a/fnN9PXb2BrNYg6kRJPNzRSN\r\nYnCaHOKCKxLzVPhPZJhrpk6Liq/fYhnJ0l357y2kkhLu9ngZaCLBhm8QFD45\r\nFjDM3ZhyYig/mReCg+a+Ii7rJd9LglJqqGmRS/aNQlO6UazOzJQR1F5mnYWt\r\nKpVNLEcndwqTejkHqIv7K2+sy2nAOQ9blv7B4XPw/2qAgZmMqvHeoy43VknE\r\nwHFPbcP+P5ez4NEHHyNTl3N62yzBgFCze+35yvdNmkC/GmeHArbdJ0+Qafip\r\nqevA8DRrP+crEO1DT5G4a9WNkMxNY1avgyI=\r\n=2xMU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/sweeplineIntersections.js","unpkg":"dist/sweeplineIntersections.min.js","module":"dist/sweeplineIntersections.esm.js","gitHead":"099622c776979a3d905237d82efb481835778ceb","scripts":{"test":"ava --verbose","bench":"npm run build && node test/benchmark.js","build":"rollup -c","debug":"cross-env webpack-dev-server --config debug/webpack.config.js --mode development --open --hot","build:debug":"cross-env webpack --config debug/webpack.config.js --mode production"},"typings":"types.d.ts","_npmUser":{"name":"rowanwins","email":"rowanwins@yahoo.com.au"},"jsdelivr":"dist/sweeplineIntersections.min.js","repository":{"url":"git+https://github.com/rowanwins/sweepline-intersections.git","type":"git"},"_npmVersion":"8.3.1","description":"A module to check if a polygon self-intersects using a sweepline algorithm","directories":{},"_nodeVersion":"16.14.0","dependencies":{"tinyqueue":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ava":"^1.0.1","esm":"^3.0.84","nyc":"^13.1.0","vue":"^2.5.22","glob":"^7.1.3","eslint":"^5.12.0","rollup":"^2.7.6","leaflet":"^1.4.0","webpack":"^4.29.0","benchmark":"^2.1.4","cross-env":"^5.2.0","css-loader":"^2.1.0","vue-loader":"^15.6.2","file-loader":"^3.0.1","json-loader":"^0.5.7","webpack-cli":"^3.2.1","@types/geojson":"7946.0.8","load-json-file":"^5.3.0","webpack-dev-server":"^3.1.14","@rollup/plugin-buble":"^0.21.3","@rollup/plugin-strip":"^1.3.2","rollup-plugin-terser":"^4.0.2","eslint-config-mourner":"^3.0.0","vue-template-compiler":"^2.5.22","@rollup/plugin-commonjs":"^11.1.0","@rollup/plugin-node-resolve":"^7.1.3","2d-polygon-self-intersections":"^1.3.1","bentley-ottmann-intersections":"0.0.1","geojson-polygon-self-intersections":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/sweepline-intersections_1.5.0_1665056286150_0.2567103958049648","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"sweepline-intersections","version":"2.0.0","keywords":["kinks","intersections","self-intersections","complex polygon"],"author":"","license":"MIT","_id":"sweepline-intersections@2.0.0","maintainers":[{"name":"rowanwins","email":"rowanwins@yahoo.com.au"}],"homepage":"https://github.com/rowanwins/sweepline-intersections#readme","bugs":{"url":"https://github.com/rowanwins/sweepline-intersections/issues"},"dist":{"shasum":"116d3ac353fc0cf6b82b157e6f79f67e8fef83e7","tarball":"https://registry.npmjs.org/sweepline-intersections/-/sweepline-intersections-2.0.0.tgz","fileCount":9,"integrity":"sha512-//M6xWVwgRFUsJ9TAjrqm3eajTdZzMaMsDPkNKL23VgiT8gvwN8rB3gdDOxuKp9/crCgxsZKATYL5P0QyDqfow==","signatures":[{"sig":"MEUCIQD/FmmoEow4FK6iGlQGLVB8Hj1dV0aRfrQdnLdugS9b/wIgMVWFRH4hha2sOojLLAb66t3nSQ/Zc9rROUB5uUMRIR0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":85291},"main":"dist/sweeplineIntersections.js","type":"module","unpkg":"dist/sweeplineIntersections.min.js","module":"dist/sweeplineIntersections.esm.js","gitHead":"c1be69d3dfd5234e9d20412362a28d00cddbc215","scripts":{"test":"vitest test/cases.test.js","bench":"npm run build && node test/benchmark.js","build":"rollup -c","debug":"vite serve debug"},"typings":"types.d.ts","_npmUser":{"name":"rowanwins","email":"rowanwins@yahoo.com.au"},"jsdelivr":"dist/sweeplineIntersections.min.js","repository":{"url":"git+https://github.com/rowanwins/sweepline-intersections.git","type":"git"},"_npmVersion":"10.2.3","description":"A module to check if a polygon self-intersects using a sweepline algorithm","directories":{},"_nodeVersion":"20.10.0","dependencies":{"ava":"^6.2.0","vitest":"^2.1.5","tinyqueue":"^2.0.0","@rollup/plugin-commonjs":"^28.0.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^13.1.0","vue":"^3.0.0","glob":"^7.1.3","vite":"^5.4.11","eslint":"^5.12.0","rollup":"^4.0.0","leaflet":"^1.4.0","benchmark":"^2.1.4","cross-env":"^5.2.0","json-loader":"^0.5.7","@types/geojson":"7946.0.8","load-json-file":"^5.3.0","@vitejs/plugin-vue":"^5.2.0","@rollup/pluginutils":"^5.1.3","@rollup/plugin-buble":"^1.0.3","@rollup/plugin-strip":"^3.0.4","@rollup/plugin-terser":"^0.4.4","eslint-config-mourner":"^3.0.0","@rollup/plugin-node-resolve":"^15.3.0","2d-polygon-self-intersections":"^1.3.1","bentley-ottmann-intersections":"0.0.1","geojson-polygon-self-intersections":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/sweepline-intersections_2.0.0_1732099028287_0.7371257316022608","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"sweepline-intersections","version":"2.0.1","type":"module","description":"A module to check if a polygon self-intersects using a sweepline algorithm","main":"dist/sweeplineIntersections.cjs","module":"dist/sweeplineIntersections.esm.js","unpkg":"dist/sweeplineIntersections.min.js","jsdelivr":"dist/sweeplineIntersections.min.js","typings":"types.d.cts","scripts":{"bench":"npm run build && node test/benchmark.js","build":"rollup -c","debug":"vite serve debug","test":"vitest test/cases.test.js"},"author":"","license":"MIT","dependencies":{"@rollup/plugin-commonjs":"^28.0.1","ava":"^6.2.0","tinyqueue":"^2.0.0","vitest":"^2.1.5"},"devDependencies":{"@rollup/plugin-buble":"^1.0.3","@rollup/plugin-node-resolve":"^15.3.0","@rollup/plugin-strip":"^3.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/pluginutils":"^5.1.3","@types/geojson":"7946.0.8","@vitejs/plugin-vue":"^5.2.0","2d-polygon-self-intersections":"^1.3.1","benchmark":"^2.1.4","bentley-ottmann-intersections":"0.0.1","cross-env":"^5.2.0","eslint":"^5.12.0","eslint-config-mourner":"^3.0.0","geojson-polygon-self-intersections":"^1.2.0","glob":"^7.1.3","json-loader":"^0.5.7","leaflet":"^1.4.0","load-json-file":"^5.3.0","nyc":"^13.1.0","rollup":"^4.0.0","vite":"^5.4.11","vue":"^3.0.0"},"repository":{"type":"git","url":"git+https://github.com/rowanwins/sweepline-intersections.git"},"bugs":{"url":"https://github.com/rowanwins/sweepline-intersections/issues"},"keywords":["kinks","intersections","self-intersections","complex polygon"],"_id":"sweepline-intersections@2.0.1","gitHead":"6c71fb8ca6f335008176445be571df4705a7b63f","homepage":"https://github.com/rowanwins/sweepline-intersections#readme","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-zO/NI2dIRyfgSRofPcBFW8OeMcg2ITyUSWC2NjZBL/XrvFXHPzt6fY9O0aNoZ118/frEpcGb3zF9asUD7pLFbg==","shasum":"9202e83af7aed4c080bf61d88022984eaa37bcb8","tarball":"https://registry.npmjs.org/sweepline-intersections/-/sweepline-intersections-2.0.1.tgz","fileCount":10,"unpackedSize":103462,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBwVbvIUUZNrdbd+EXGbrR6aP+OrMsrJNQOtCPjhJcOiAiEAqcxujY/R/X6jwDzuepGg+AzZHIiZv6A7Eyr3MefSYIM="}]},"_npmUser":{"name":"rowanwins","email":"rowanwins@yahoo.com.au"},"directories":{},"maintainers":[{"name":"rowanwins","email":"rowanwins@yahoo.com.au"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sweepline-intersections_2.0.1_1732437340714_0.30326447837113246"},"_hasShrinkwrap":false}},"time":{"created":"2019-09-12T10:19:28.125Z","modified":"2024-11-24T08:35:41.118Z","0.0.1":"2019-09-12T10:19:28.239Z","1.0.0":"2020-01-04T23:46:09.342Z","1.0.1":"2020-01-04T23:49:07.679Z","1.1.1":"2020-05-02T07:10:07.018Z","1.1.2":"2020-05-03T11:30:47.777Z","1.2.0":"2021-02-13T08:27:37.812Z","1.2.1":"2021-02-13T08:39:20.993Z","1.2.2":"2021-02-24T09:01:06.473Z","1.3.0":"2021-06-16T12:24:35.696Z","1.3.1":"2021-06-16T12:29:12.976Z","1.4.0":"2022-03-20T23:37:39.830Z","1.5.0":"2022-10-06T11:38:06.407Z","2.0.0":"2024-11-20T10:37:08.569Z","2.0.1":"2024-11-24T08:35:40.938Z"},"bugs":{"url":"https://github.com/rowanwins/sweepline-intersections/issues"},"license":"MIT","homepage":"https://github.com/rowanwins/sweepline-intersections#readme","keywords":["kinks","intersections","self-intersections","complex polygon"],"repository":{"type":"git","url":"git+https://github.com/rowanwins/sweepline-intersections.git"},"description":"A module to check if a polygon self-intersects using a sweepline algorithm","maintainers":[{"name":"rowanwins","email":"rowanwins@yahoo.com.au"}],"readme":"# sweepline-intersections\nA small and fast module using a sweepline algorithm to detect intersections between polygons and/or polylines.\n\n## Documentation\n\n### Install\n````\nnpm install sweepline-intersections\n````\n\n### Basic Use\nValid inputs: Geojson `Feature` or `Geometry` including `Polygon`, `LineString`, `MultiPolygon`, `MultiLineString`, as well as `FeatureCollection`.\n\nReturns an array of intersection points eg, [[x1, y1], [x2, y2]] \n\n````js\n    const findIntersections = require('sweepline-intersections')\n\n    const box = {type: 'Polygon', coordinates: [[[0, 0], [1, 0], [1, 1], [0, 1], [0, 0]]]}\n    const intersections = findIntersections(box)\n    // returns an array of self-intersection points\n````\n\nAlso accepts an optional boolean argument second which when set to true means the module won't detect self-intersections and will only report intersections between different features. This defaults to false.\neg \n````js\n    const findIntersections = require('sweepline-intersections')\n    const intersectionsBetweenFeature = findIntersections(featureCollection, true)\n    // returns an array of intersection points between features\n````\n\n### Complex Use\nThis library also provide a class-based approach which is helpful if you want to check multiple geometries against a single geometry. This allows you to save the state of the initial event queue with the primary geometry.\n\n````js\n    import SweeplineIntersectionsClass from 'sweepline-intersections/dist/SweeplineIntersectionsClass'\n\n    // create the base instance\n    const sl = new SweeplineIntersectionsClass()\n    // populate the event queue with your primary geometry\n    sl.addData(largeGeoJson)\n    // clone the event queue in the original state so you can reuse it\n    const origQueue = sl.cloneEventQueue()\n\n    // now you can iterate through some other set of features saving\n    // the overhead of having to populate the complete queue multiple times\n    someOtherFeatureCollection.features.forEach(feature => {\n        // add another feature to test against your original data\n        sl.addData(feature, origQueue)\n        // check if those two features intersect\n        // add an optional boolean argument to ignore self-intersections \n        const intersectionPoints = sl.getIntersections(true)\n    })\n````\n\n#### API\n`new SweeplineIntersectionsClass()` - creates a new instance\n\n`.addData(geojson, existingQueue)` - add geojson to the event queue. The second argument for an `existingQueue` is optional, and takes a queue generated from `.cloneEventQueue()`\n\n`.cloneEventQueue()` - clones the state of the existing event queue that's been populated with geojson. Returns a queue that you can pass to the `addData` method\n\n`.getIntersections(ignoreSelfIntersections)` - Checks for segment intersections. Accepts an optional boolean argument to ignore self intersections are only report intersections between features.\n\n\n## Benchmarks\nTested against \n- bentley-ottmann-intersections - https://www.npmjs.com/package/bentley-ottmann-intersections\n- gpsi - https://www.npmjs.com/package/geojson-polygon-self-intersections\n- isects - https://www.npmjs.com/package/2d-polygon-self-intersections\n````\n// Switzerland (~700 vertices)\n// gpsi x 37.05 ops/sec ±1.77% (49 runs sampled)\n// bentleyOttmann x 2,010 ops/sec ±1.52% (89 runs sampled)\n// sweepline x 2,621 ops/sec ±0.29% (95 runs sampled)\n// isects x 14.29 ops/sec ±2.16% (40 runs sampled)\n// - Fastest is sweepline (this library)\n\n// Simple Case (6 vertices)\n// gpsi x 246,512 ops/sec ±1.23% (90 runs sampled)\n// bentleyOttmann x 546,326 ops/sec ±0.66% (92 runs sampled)\n// sweepline x 1,157,425 ops/sec ±1.04% (94 runs sampled)\n// - Fastest is sweepline (this library)\n\n// Chile - Vertical geometry (17,000 vertices)\n// sweepline x 35.64 ops/sec ±1.20% (62 runs sampled)\n````\n\n## Contributing\n- For a live dev server run `npm run debug`. \n  - The geometry being tested can be modified in `debug/src/App.vue`\n- There are a couple of test suites\n  - `npm run test` runs all tests\n  - `npm run test:e2e` does a general test that the correct number of self-intersections are found in the `test/fixtures` folder\n  - `npm run test:unit` is unit style tests to make sure functions & methods do the right thing\n    - these need some love\n\n\n## Algorithm notes\nThe basic concept of this algorithm is based on a sweepline. Where this algorithm differs from the [bentley-ottmann algorithm](https://en.wikipedia.org/wiki/Bentley%E2%80%93Ottmann_algorithm) is that there is no use of a tree data structure to store the segments. The reason for the modification is because if you are dealing with polygons or polylines (rather than a random group of line segments) there is a reasonable assumption that there are going to be very few segments that lie on the same x plane.\n\nRemoving the tree structure greatly simplifies the code. The tree structure is replaced with a priority queue of segments which is sorted by the x vertex of the right endpoint of the segments. A priority queue is already used to sort the vertices which means only 1 data structure is required.\n\nThe package size of this module is 3kb compared to my implementation of the bentley-ottmann algorithm which is 16kb while performance is typically faster than bentley-ottmann. \n\nBentley-ottman only outperforms this library when there are several thousands vertices, however I'm also less confident in the results of my bentley-ottman lib as it occassionally misses intersections and is much harder to write tests for due to the more complex logic.\n\n\n### Algorithm Steps\n- Vertices are entered into a priority queue sorted from left to right\n- An empty priority queue is created to store segments encountered\n- An item is removed from the priority queue\n    - If the vertex is the left endpoint of a segment, we test it against every other segment in the segment queue for intersections with any intersection recorded. We then add the vertex (and it's associated right endpoint) to the segment queue.\n    - When we encounter a right endpoint we remove the first item from the segment queue.\n\nEach pair of segments are only tested once. And only segments that overlap on the x plane are tested against each other.\n","readmeFilename":"README.md"}