{"_id":"2d-polygon-boolean","_rev":"8-3152c3f7188da84e61699872b53338bc","name":"2d-polygon-boolean","description":"perform boolean operations on arbitrary polygons in 2d","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"2d-polygon-boolean","version":"1.0.0","description":"perform boolean operations on arbitrary polygons in 2d","main":"2d-polygon-boolean.js","directories":{"test":"test"},"scripts":{"test":"tape test/test.js | tap-spec"},"repository":{"type":"git","url":"git://github.com/tmpvar/polygon.clip.js.git"},"keywords":["polygon","geometry","math","2d","clipping"],"author":{"name":"Elijah Insua","email":"tmpvar@gmail.com"},"license":"MIT","dependencies":{"segseg":"~0.2.0","point-in-big-polygon":"~1.0.0"},"devDependencies":{"tape":"~3.0.3","tap-spec":"~2.1.2"},"gitHead":"cef89f5fcfae40d14f5aaae5b6434d156dc8a461","bugs":{"url":"https://github.com/tmpvar/polygon.clip.js/issues"},"homepage":"https://github.com/tmpvar/polygon.clip.js","_id":"2d-polygon-boolean@1.0.0","_shasum":"b0805da07cf5acbaf4196d7c5b2a2609dd3a9ad6","_from":".","_npmVersion":"2.1.8","_nodeVersion":"0.10.31","_npmUser":{"name":"tmpvar","email":"tmpvar@gmail.com"},"maintainers":[{"name":"tmpvar","email":"tmpvar@gmail.com"}],"dist":{"shasum":"b0805da07cf5acbaf4196d7c5b2a2609dd3a9ad6","tarball":"https://registry.npmjs.org/2d-polygon-boolean/-/2d-polygon-boolean-1.0.0.tgz","integrity":"sha512-hpi1X3hMSbEGbxOMegvDf3H0BbqZId/x6wbL3MQGcbb6/wIsgehwboT04bEpvoQDPz+vfUzMmn7bDSJ1TUXwvQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICuPpBkJyx81yS0mrgcgPyX/pIaoMDc+sl31WtTsIhQYAiALfvyCAH8maAW62qVzYCVZKAXhcguz6qTHrJqZKApxgg=="}]}},"1.0.1":{"name":"2d-polygon-boolean","version":"1.0.1","description":"perform boolean operations on arbitrary polygons in 2d","main":"2d-polygon-boolean.js","directories":{"test":"test"},"scripts":{"test":"tape test/test.js | tap-spec"},"repository":{"type":"git","url":"git://github.com/tmpvar/polygon.clip.js.git"},"keywords":["polygon","geometry","math","2d","clipping"],"author":{"name":"Elijah Insua","email":"tmpvar@gmail.com"},"license":"MIT","dependencies":{"2d-polygon-area":"^1.0.0","point-in-big-polygon":"~1.0.0","segseg":"~0.2.0","signum":"^1.0.0"},"devDependencies":{"tape":"~3.0.3","tap-spec":"~2.1.2"},"gitHead":"04f0476ad9b5ae81900aad15c869ce467095ced8","bugs":{"url":"https://github.com/tmpvar/polygon.clip.js/issues"},"homepage":"https://github.com/tmpvar/polygon.clip.js","_id":"2d-polygon-boolean@1.0.1","_shasum":"f7ae11a2fc97d5edf42ae980a3e546a2cf4715e0","_from":".","_npmVersion":"2.7.5","_nodeVersion":"0.10.37","_npmUser":{"name":"tmpvar","email":"tmpvar@gmail.com"},"maintainers":[{"name":"tmpvar","email":"tmpvar@gmail.com"}],"dist":{"shasum":"f7ae11a2fc97d5edf42ae980a3e546a2cf4715e0","tarball":"https://registry.npmjs.org/2d-polygon-boolean/-/2d-polygon-boolean-1.0.1.tgz","integrity":"sha512-MCOjlgnRtBq3uOf5IO1aOW9izttFHjQXETYjEQIa3bbdwtdBjc0eiAOuxPfve6gHOr6JrcRm+s/+uyCmkYN5gQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDI6/zGp7fDLX1aDvKQdp+/uYmDnE27RCKkYtZ/vdkNzwIgbaMli37p+uVvAYOf4yUfb2PcOSMEgbBckWaCeCh5bbY="}]}}},"readme":"# polygon.clip\n\nImplementation of the Greiner-Kai \"efficient clipping of arbitrary polygons\" [paper](http://www.inf.usi.ch/hormann/papers/Greiner.1998.ECO.pdf)\n\n## install\n\n`npm install 2d-polygon-boolean`\n\n## use\n\n### signature\n\n`var polygons = polygonBoolean(array1, array2, mode)`\n\nWhere mode is the string `and` (intersect), `or` (union), `not` (cut)\n\n`polygons` is an array of arrays of arrays\n\ne.g\n```javascript\n  [\n    [\n      [0, 0],\n      [0, 1],\n      [1, 1]\n    ]\n  ]\n```\n### example\n\n```javascript\n\nvar polygonBoolean = require('2d-polygon-boolean');\n\nvar subject = [\n  [0, 0],\n  [100, 0],\n  [100, 100],\n  [0, 100]\n];\n\nvar clip = [\n  [90, 90],\n  [110, 90],\n  [110, 110],\n  [90, 110],\n  [90, 90]\n];\n\n\nvar union = polygonBoolean(subject, clip, 'or');\nconsole.log('union results', union);\n\n/*\nunion results [ [ [ 100, 90 ],\n    [ 100, 0 ],\n    [ 0, 0 ],\n    [ 0, 100 ],\n    [ 90, 100 ],\n    [ 90, 110 ],\n    [ 110, 110 ],\n    [ 110, 90 ] ] ]\n*/\n\nvar cut = polygonBoolean(subject, clip, 'not');\nconsole.log('cut results', cut);\n\n/*\ncut results [ [ [ 100, 90 ],\n    [ 100, 0 ],\n    [ 0, 0 ],\n    [ 0, 100 ],\n    [ 90, 100 ],\n    [ 90, 90 ] ] ]\n*/\n\nvar intersect = polygonBoolean(subject, clip, 'and');\nconsole.log('intersect results', intersect);\n\n/*\nintersect results [ [ [ 100, 90 ], [ 100, 100 ], [ 90, 100 ], [ 90, 90 ] ] ]\n*/\n```\n\n# license\n\n[MIT](LICENSE.txt)\n","maintainers":[{"name":"tmpvar","email":"tmpvar@gmail.com"}],"time":{"modified":"2022-11-08T10:38:57.353Z","created":"2014-12-18T03:17:42.478Z","1.0.0":"2014-12-18T03:17:42.478Z","1.0.1":"2015-06-05T01:55:16.739Z"},"homepage":"https://github.com/tmpvar/polygon.clip.js","keywords":["polygon","geometry","math","2d","clipping"],"repository":{"type":"git","url":"git://github.com/tmpvar/polygon.clip.js.git"},"author":{"name":"Elijah Insua","email":"tmpvar@gmail.com"},"bugs":{"url":"https://github.com/tmpvar/polygon.clip.js/issues"},"license":"MIT","readmeFilename":"README.md","users":{"ynakajima":true}}