Socket
Socket
Sign inDemoInstall

polygon-clipping

Package Overview
Dependencies
Maintainers
1
Versions
29
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

polygon-clipping - npm Package Compare versions

Comparing version 0.14.2 to 0.14.3

4

CHANGELOG.md

@@ -5,2 +5,6 @@ # Changelog

## v0.14.3 (2019-10-26)
* Bug fixes: [#78](https://github.com/mfogel/polygon-clipping/issues/78), [#79](https://github.com/mfogel/polygon-clipping/issues/79), [#80](https://github.com/mfogel/polygon-clipping/issues/80), [#81](https://github.com/mfogel/polygon-clipping/issues/81), [#82](https://github.com/mfogel/polygon-clipping/issues/82), [#85](https://github.com/mfogel/polygon-clipping/issues/85)
## v0.14.2 (2019-07-27)

@@ -7,0 +11,0 @@

2

dist/polygon-clipping.umd.min.js

@@ -1,2 +0,2 @@

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).polygonClipping=e()}(this,function(){"use strict";function t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function e(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function n(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}var r=function e(n,r){t(this,e),this.next=null,this.key=n,this.data=r,this.left=null,this.right=null};function i(t,e){return t>e?1:t<e?-1:0}function o(t,e,n){for(var i=new r(null,null),o=i,s=i;;){var u=n(t,e.key);if(u<0){if(null===e.left)break;if(n(t,e.left.key)<0){var l=e.left;if(e.left=l.right,l.right=e,null===(e=l).left)break}s.left=e,s=e,e=e.left}else{if(!(u>0))break;if(null===e.right)break;if(n(t,e.right.key)>0){var h=e.right;if(e.right=h.left,h.left=e,null===(e=h).right)break}o.right=e,o=e,e=e.right}}return o.right=e.left,s.left=e.right,e.left=i.right,e.right=i.left,e}function s(t,e,n,i){var s=new r(t,e);if(null===n)return s.left=s.right=null,s;var u=i(t,(n=o(t,n,i)).key);return u<0?(s.left=n.left,s.right=n,n.left=null):u>=0&&(s.right=n.right,s.left=n,n.right=null),s}function u(t,e,n){var r=null,i=null;if(e){var s=n((e=o(t,e,n)).key,t);0===s?(r=e.left,i=e.right):s<0?(i=e.right,e.right=null,r=e):(r=e.left,e.left=null,i=e)}return{left:r,right:i}}var l=function(){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:i;t(this,e),this._root=null,this._size=0,this._comparator=n}return n(e,[{key:"insert",value:function(t,e){return this._size++,this._root=s(t,e,this._root,this._comparator)}},{key:"add",value:function(t,e){var n=new r(t,e);null===this._root&&(n.left=n.right=null,this._size++,this._root=n);var i=this._comparator,s=o(t,this._root,i),u=i(t,s.key);return 0===u?this._root=s:(u<0?(n.left=s.left,n.right=s,s.left=null):u>0&&(n.right=s.right,n.left=s,s.right=null),this._size++,this._root=n),this._root}},{key:"remove",value:function(t){this._root=this._remove(t,this._root,this._comparator)}},{key:"_remove",value:function(t,e,n){var r;return null===e?null:0===n(t,(e=o(t,e,n)).key)?(null===e.left?r=e.right:(r=o(t,e.left,n)).right=e.right,this._size--,r):e}},{key:"pop",value:function(){var t=this._root;if(t){for(;t.left;)t=t.left;return this._root=o(t.key,this._root,this._comparator),this._root=this._remove(t.key,this._root,this._comparator),{key:t.key,data:t.data}}return null}},{key:"findStatic",value:function(t){for(var e=this._root,n=this._comparator;e;){var r=n(t,e.key);if(0===r)return e;e=r<0?e.left:e.right}return null}},{key:"find",value:function(t){return this._root&&(this._root=o(t,this._root,this._comparator),0!==this._comparator(t,this._root.key))?null:this._root}},{key:"contains",value:function(t){for(var e=this._root,n=this._comparator;e;){var r=n(t,e.key);if(0===r)return!0;e=r<0?e.left:e.right}return!1}},{key:"forEach",value:function(t,e){for(var n=this._root,r=[],i=!1;!i;)null!==n?(r.push(n),n=n.left):0!==r.length?(n=r.pop(),t.call(e,n),n=n.right):i=!0;return this}},{key:"range",value:function(t,e,n,r){for(var i=[],o=this._comparator,s=this._root;0!==i.length||s;)if(s)i.push(s),s=s.left;else{if(o((s=i.pop()).key,e)>0)break;if(o(s.key,t)>=0&&n.call(r,s))return this;s=s.right}return this}},{key:"keys",value:function(){var t=[];return this.forEach(function(e){var n=e.key;return t.push(n)}),t}},{key:"values",value:function(){var t=[];return this.forEach(function(e){var n=e.data;return t.push(n)}),t}},{key:"min",value:function(){return this._root?this.minNode(this._root).key:null}},{key:"max",value:function(){return this._root?this.maxNode(this._root).key:null}},{key:"minNode",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._root;if(t)for(;t.left;)t=t.left;return t}},{key:"maxNode",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._root;if(t)for(;t.right;)t=t.right;return t}},{key:"at",value:function(t){for(var e=this._root,n=!1,r=0,i=[];!n;)if(e)i.push(e),e=e.left;else if(i.length>0){if(e=i.pop(),r===t)return e;r++,e=e.right}else n=!0;return null}},{key:"next",value:function(t){var e=this._root,n=null;if(t.right){for(n=t.right;n.left;)n=n.left;return n}for(var r=this._comparator;e;){var i=r(t.key,e.key);if(0===i)break;i<0?(n=e,e=e.left):e=e.right}return n}},{key:"prev",value:function(t){var e=this._root,n=null;if(null!==t.left){for(n=t.left;n.right;)n=n.right;return n}for(var r=this._comparator;e;){var i=r(t.key,e.key);if(0===i)break;i<0?e=e.left:(n=e,e=e.right)}return n}},{key:"clear",value:function(){return this._root=null,this._size=0,this}},{key:"toList",value:function(){return function(t){var e=t,n=[],i=!1,o=new r(null,null),s=o;for(;!i;)e?(n.push(e),e=e.left):n.length>0?e=(e=s=s.next=n.pop()).right:i=!0;return s.next=null,o.next}(this._root)}},{key:"load",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=t.length,o=this._comparator;if(n&&function t(e,n,r,i,o){if(r>=i)return;var s=e[r+i>>1];var u=r-1;var l=i+1;for(;;){do{u++}while(o(e[u],s)<0);do{l--}while(o(e[l],s)>0);if(u>=l)break;var h=e[u];e[u]=e[l],e[l]=h,h=n[u],n[u]=n[l],n[l]=h}t(e,n,r,l,o);t(e,n,l+1,i,o)}(t,e,0,i-1,o),null===this._root)this._root=function t(e,n,i,o){var s=o-i;if(s>0){var u=i+Math.floor(s/2),l=e[u],h=n[u],f=new r(l,h);return f.left=t(e,n,i,u),f.right=t(e,n,u+1,o),f}return null}(t,e,0,i),this._size=i;else{var s=function(t,e,n){var i=new r(null,null),o=i,s=t,u=e;for(;null!==s&&null!==u;)n(s.key,u.key)<0?(o.next=s,s=s.next):(o.next=u,u=u.next),o=o.next;null!==s?o.next=s:null!==u&&(o.next=u);return i.next}(this.toList(),function(t,e){for(var n=new r(null,null),i=n,o=0;o<t.length;o++)i=i.next=new r(t[o],e[o]);return i.next=null,n.next}(t,e),o);i=this._size+i,this._root=function t(e,n,r){var i=r-n;if(i>0){var o=n+Math.floor(i/2),s=t(e,n,o),u=e.head;return u.left=s,e.head=e.head.next,u.right=t(e,o+1,r),u}return null}({head:s},0,i)}return this}},{key:"isEmpty",value:function(){return null===this._root}},{key:"toString",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(t){return String(t.key)},e=[];return function t(e,n,r,i,o){if(e){i("".concat(n).concat(r?"└── ":"├── ").concat(o(e),"\n"));var s=n+(r?" ":"│ ");e.left&&t(e.left,s,!1,i,o),e.right&&t(e.right,s,!0,i,o)}}(this._root,"",!0,function(t){return e.push(t)},t),e.join("")}},{key:"update",value:function(t,e,n){var r=this._comparator,i=u(t,this._root,r),l=i.left,h=i.right;r(t,e)<0?h=s(e,n,h,r):l=s(e,n,l,r),this._root=function(t,e,n){return null===e?t:null===t?e:((e=o(t.key,e,n)).left=t,e)}(l,h,r)}},{key:"split",value:function(t){return u(t,this._root,this._comparator)}},{key:"size",get:function(){return this._size}},{key:"root",get:function(){return this._root}}]),e}();var h=function(t,e){return t.ll.x<=e.x&&e.x<=t.ur.x&&t.ll.y<=e.y&&e.y<=t.ur.y},f=function(t,e){if(e.ur.x<t.ll.x||t.ur.x<e.ll.x||e.ur.y<t.ll.y||t.ur.y<e.ll.y)return null;var n=t.ll.x<e.ll.x?e.ll.x:t.ll.x,r=t.ur.x<e.ur.x?t.ur.x:e.ur.x;return{ll:{x:n,y:t.ll.y<e.ll.y?e.ll.y:t.ll.y},ur:{x:r,y:t.ur.y<e.ur.y?t.ur.y:e.ur.y}}},a=Number.EPSILON;void 0===a&&(a=Math.pow(2,-52));var y=a*a,v=function(t,e){if(-a<t&&t<a&&-a<e&&e<a)return 0;if(t<0&&0<e)return-1;if(e<0&&0<t)return 1;var n=t-e;return n*n<y*t*e?0:t<e?-1:1},g=function(t,e){return t.x*e.y-t.y*e.x},c=function(t,e){return t.x*e.x+t.y*e.y},p=function(t,e,n){var r={x:e.x-t.x,y:e.y-t.y},i={x:n.x-t.x,y:n.y-t.y},o=g(r,i);return v(o,0)},x=function(t){return Math.sqrt(c(t,t))},b=function(t,e,n){var r={x:e.x-t.x,y:e.y-t.y},i={x:n.x-t.x,y:n.y-t.y};return c(i,r)/x(i)/x(r)},m=function(t,e,n){return 0===e.y?null:{x:t.x+e.x/e.y*(n-t.y),y:n}},d=function(t,e,n){return 0===e.x?null:{x:n,y:t.y+e.y/e.x*(n-t.x)}},E=function(){function e(){t(this,e),this.reset()}return n(e,[{key:"reset",value:function(){this.xRounder=new k,this.yRounder=new k}},{key:"round",value:function(t,e){return{x:this.xRounder.round(t),y:this.yRounder.round(e)}}}]),e}(),k=function(){function e(){t(this,e),this.tree=new l,this.round(0)}return n(e,[{key:"round",value:function(t){var e=this.tree.add(t),n=this.tree.prev(e);if(null!==n&&0===v(e.key,n.key))return this.tree.remove(t),n.key;var r=this.tree.next(e);return null!==r&&0===v(e.key,r.key)?(this.tree.remove(t),r.key):t}}]),e}(),S=new E,_=function(t){var e=[];if(!Array.isArray(t))throw new Error("Input is not a Polygon or MultiPolygon");for(var n=0,r=t.length;n<r;n++){if(!Array.isArray(t[n])||0==t[n].length)throw new Error("Input is not a Polygon or MultiPolygon");e.push([]);for(var i=0,o=t[n].length;i<o;i++){if(!Array.isArray(t[n][i])||0==t[n][i].length)throw new Error("Input is not a Polygon or MultiPolygon");if(Array.isArray(t[n][i][0])){e[n].push([]);for(var s=0,u=t[n][i].length;s<u;s++){if(!Array.isArray(t[n][i][s])||t[n][i][s].length<2)throw new Error("Input is not a Polygon or MultiPolygon");if(t[n][i][s].length>2)throw new Error("Input has more than two coordinates. Only 2-dimensional polygons supported.");e[n][i].push(S.round(t[n][i][s][0],t[n][i][s][1]))}}else{if(t[n][i].length<2)throw new Error("Input is not a Polygon or MultiPolygon");if(t[n][i].length>2)throw new Error("Input has more than two coordinates. Only 2-dimensional polygons supported.");e[n].push(S.round(t[n][i][0],t[n][i][1]))}}}return e},w=function(t){if(Array.isArray(t)){if(0===t.length)return;if(Array.isArray(t[0])){if(Array.isArray(t[0][0])&&"number"==typeof t[0][0][0].x&&"number"==typeof t[0][0][0].y)return;if("number"==typeof t[0][0].x&&"number"==typeof t[0][0].y)return void t.unshift(t.splice(0))}}throw new Error("Unrecognized input - not a polygon nor multipolygon")},R=function(t){for(var e=0;e<t.length;){var n=t[e];if(0!==n.length){var r=n[0];if(I(r),0!==r.length){for(var i=1;i<n.length;){var o=n[i];I(o),0===o.length?n.splice(i,1):i++}e++}else t.splice(e,1)}else t.splice(e,1)}},I=function(t){if(0!==t.length){var e=t[0],n=t[t.length-1];e.x===n.x&&e.y===n.y&&t.pop();for(var r,i,o=function(t,e,n){return t.x===e.x&&t.y===e.y||n.x===e.x&&n.y===e.y||0===p(e,t,n)},s=0;s<t.length;)r=0===s?t[t.length-1]:t[s-1],i=s===t.length-1?t[0]:t[s+1],o(r,t[s],i)?t.splice(s,1):s++;for(;t.length<3&&t.length>0;)t.pop()}},P=function(){function e(n,r){t(this,e),void 0===n.events?n.events=[this]:n.events.push(this),this.point=n,this.isLeft=r}return n(e,null,[{key:"compare",value:function(t,n){var r=e.comparePoints(t.point,n.point);return 0!==r?r:(t.point!==n.point&&t.link(n),t.isLeft!==n.isLeft?t.isLeft?1:-1:O.compare(t.segment,n.segment))}},{key:"comparePoints",value:function(t,e){return t.x<e.x?-1:t.x>e.x?1:t.y<e.y?-1:t.y>e.y?1:0}}]),n(e,[{key:"link",value:function(t){if(t.point===this.point)throw new Error("Tried to link already linked events");for(var e=t.point.events,n=0,r=e.length;n<r;n++){var i=e[n];this.point.events.push(i),i.point=this.point}this.checkForConsuming()}},{key:"checkForConsuming",value:function(){for(var t=this.point.events.length,e=0;e<t;e++){var n=this.point.events[e];if(void 0===n.segment.consumedBy)for(var r=e+1;r<t;r++){var i=this.point.events[r];void 0===i.consumedBy&&(n.otherSE.point.events===i.otherSE.point.events&&n.segment.consume(i.segment))}}}},{key:"getAvailableLinkedEvents",value:function(){for(var t=[],e=0,n=this.point.events.length;e<n;e++){var r=this.point.events[e];r!==this&&!r.segment.ringOut&&r.segment.isInResult()&&t.push(r)}return t}},{key:"getLeftmostComparator",value:function(t){var e=this,n=new Map,r=function(r){var i,o,s,u,l,h=r.otherSE;n.set(r,{sine:(i=e.point,o=t.point,s=h.point,u={x:o.x-i.x,y:o.y-i.y},l={x:s.x-i.x,y:s.y-i.y},g(l,u)/x(l)/x(u)),cosine:b(e.point,t.point,h.point)})};return function(t,e){n.has(t)||r(t),n.has(e)||r(e);var i=n.get(t),o=i.sine,s=i.cosine,u=n.get(e),l=u.sine,h=u.cosine;return o>=0&&l>=0?s<h?1:s>h?-1:0:o<0&&l<0?s<h?-1:s>h?1:0:l<o?-1:l>o?1:0}}}]),e}(),A=0,O=function(){function e(n,r,i,o){t(this,e),this.id=++A,this.leftSE=n,n.segment=this,n.otherSE=r,this.rightSE=r,r.segment=this,r.otherSE=n,this.rings=i,this.windings=o}return n(e,null,[{key:"compare",value:function(t,e){var n=t.leftSE.point.x,r=e.leftSE.point.x,i=t.rightSE.point.x,o=e.rightSE.point.x;if(o<n)return 1;if(i<r)return-1;var s=t.leftSE.point.y,u=e.leftSE.point.y,l=t.rightSE.point.y,h=e.rightSE.point.y;if(n<r){if(u<s&&u<l)return 1;if(u>s&&u>l)return-1;var f=t.comparePoint(e.leftSE.point);if(f<0)return 1;if(f>0)return-1;var a=e.comparePoint(t.rightSE.point);return 0!==a?a:-1}if(n>r){if(s<u&&s<h)return-1;if(s>u&&s>h)return 1;var y=e.comparePoint(t.leftSE.point);if(0!==y)return y;var v=t.comparePoint(e.rightSE.point);return v<0?1:v>0?-1:1}if(s<u)return-1;if(s>u)return 1;if(i<o){var g=e.comparePoint(t.rightSE.point);if(0!==g)return g}if(i>o){var c=t.comparePoint(e.rightSE.point);if(c<0)return 1;if(c>0)return-1}if(i!==o){var p=l-s,x=i-n,b=h-u,m=o-r;if(p>x&&b<m)return 1;if(p<x&&b>m)return-1}return i>o?1:i<o?-1:l<h?-1:l>h?1:t.id<e.id?-1:t.id>e.id?1:0}}]),n(e,[{key:"replaceRightSE",value:function(t){this.rightSE=t,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}},{key:"bbox",value:function(){var t=this.leftSE.point.y,e=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:t<e?t:e},ur:{x:this.rightSE.point.x,y:t>e?t:e}}}},{key:"vector",value:function(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}},{key:"isAnEndpoint",value:function(t){return t.x===this.leftSE.point.x&&t.y===this.leftSE.point.y||t.x===this.rightSE.point.x&&t.y===this.rightSE.point.y}},{key:"comparePoint",value:function(t){if(this.isAnEndpoint(t))return 0;var e=function(t,e,n){if(t.x===e.x)return{x:t.x,y:n.y};if(t.y===e.y)return{x:n.x,y:t.y};var r,i,o,s={x:n.x-t.x,y:n.y-t.y},u={x:n.x-e.x,y:n.y-e.y};c(s,s)>c(u,u)?(r=s,i={x:e.x-t.x,y:e.y-t.y},o=t):(r=u,i={x:t.x-e.x,y:t.y-e.y},o=e);var l=c(i,r)/c(i,i);return{x:o.x+l*i.x,y:o.y+l*i.y}}(this.leftSE.point,this.rightSE.point,t),n=this.leftSE.point.x,r=this.leftSE.point.y,i=this.rightSE.point.x,o=this.rightSE.point.y;if(o>=r)if(o-r>i-n){var s=v(e.x,t.x);if(0!=s)return s}else{var u=v(t.y,e.y);if(0!=u)return u}else if(r-o>i-n){var l=v(t.x,e.x);if(0!=l)return l}else{var h=v(t.y,e.y);if(0!=h)return h}return 0}},{key:"getIntersection",value:function(t){var e=this.bbox(),n=t.bbox(),r=f(e,n);if(null===r)return null;var i=this.leftSE.point,o=this.rightSE.point,s=t.leftSE.point,u=t.rightSE.point,l=h(e,s)&&0===this.comparePoint(s),a=h(n,i)&&0===t.comparePoint(i),y=h(e,u)&&0===this.comparePoint(u),v=h(n,o)&&0===t.comparePoint(o);if(a&&l)return v&&!y?o:!v&&y?u:null;if(a)return y&&i.x===u.x&&i.y===u.y?null:i;if(l)return v&&o.x===s.x&&o.y===s.y?null:s;if(v&&y)return null;if(v)return o;if(y)return u;var c=function(t,e,n,r){if(0===e.x)return d(n,r,t.x);if(0===r.x)return d(t,e,n.x);if(0===e.y)return m(n,r,t.y);if(0===r.y)return m(t,e,n.y);var i=g(e,r);if(0==i)return null;var o={x:n.x-t.x,y:n.y-t.y},s=g(o,e)/i,u=g(o,r)/i;return{x:(t.x+u*e.x+(n.x+s*r.x))/2,y:(t.y+u*e.y+(n.y+s*r.y))/2}}(i,this.vector(),s,t.vector());return null===c?null:h(r,c)?S.round(c.x,c.y):null}},{key:"split",value:function(t){var n=[],r=void 0!==t.events,i=new P(t,!0),o=new P(t,!1),s=this.rightSE;this.replaceRightSE(o),n.push(o),n.push(i);var u=new e(i,s,this.rings.slice(),this.windings.slice());return P.comparePoints(u.leftSE.point,u.rightSE.point)>0&&u.swapEvents(),P.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),r&&(i.checkForConsuming(),o.checkForConsuming()),n}},{key:"swapEvents",value:function(){var t=this.rightSE;this.rightSE=this.leftSE,this.leftSE=t,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(var e=0,n=this.windings.length;e<n;e++)this.windings[e]*=-1}},{key:"consume",value:function(t){for(var n=this,r=t;n.consumedBy;)n=n.consumedBy;for(;r.consumedBy;)r=r.consumedBy;var i=e.compare(n,r);if(0!==i){if(i>0){var o=n;n=r,r=o}if(n.prev===r){var s=n;n=r,r=s}for(var u=0,l=r.rings.length;u<l;u++){var h=r.rings[u],f=r.windings[u],a=n.rings.indexOf(h);-1===a?(n.rings.push(h),n.windings.push(f)):n.windings[a]+=f}r.rings=null,r.windings=null,r.consumedBy=n,r.leftSE.consumedBy=n.leftSE,r.rightSE.consumedBy=n.rightSE}}},{key:"prevInResult",value:function(){return void 0!==this._prevInResult?this._prevInResult:(this.prev?this.prev.isInResult()?this._prevInResult=this.prev:this._prevInResult=this.prev.prevInResult():this._prevInResult=null,this._prevInResult)}},{key:"beforeState",value:function(){if(void 0!==this._beforeState)return this._beforeState;if(this.prev){var t=this.prev.consumedBy||this.prev;this._beforeState=t.afterState()}else this._beforeState={rings:[],windings:[],multiPolys:[]};return this._beforeState}},{key:"afterState",value:function(){if(void 0!==this._afterState)return this._afterState;var t=this.beforeState();this._afterState={rings:t.rings.slice(0),windings:t.windings.slice(0),multiPolys:[]};for(var e=this._afterState.rings,n=this._afterState.windings,r=this._afterState.multiPolys,i=0,o=this.rings.length;i<o;i++){var s=this.rings[i],u=this.windings[i],l=e.indexOf(s);-1===l?(e.push(s),n.push(u)):n[l]+=u}for(var h=[],f=[],a=0,y=e.length;a<y;a++)if(0!==n[a]){var v=e[a],g=v.poly;if(-1===f.indexOf(g))if(v.isExterior)h.push(g);else{-1===f.indexOf(g)&&f.push(g);var c=h.indexOf(v.poly);-1!==c&&h.splice(c,1)}}for(var p=0,x=h.length;p<x;p++){var b=h[p].multiPoly;-1===r.indexOf(b)&&r.push(b)}return this._afterState}},{key:"isInResult",value:function(){if(this.consumedBy)return!1;if(void 0!==this._isInResult)return this._isInResult;var t=this.beforeState().multiPolys,e=this.afterState().multiPolys;switch(j.type){case"union":var n=0===t.length,r=0===e.length;this._isInResult=n!==r;break;case"intersection":var i,o;t.length<e.length?(i=t.length,o=e.length):(i=e.length,o=t.length),this._isInResult=o===j.numMultiPolys&&i<o;break;case"xor":var s=Math.abs(t.length-e.length);this._isInResult=s%2==1;break;case"difference":var u=function(t){return 1===t.length&&t[0].isSubject};this._isInResult=u(t)!==u(e);break;default:throw new Error("Unrecognized operation type found ".concat(j.type))}return this._isInResult}}],[{key:"fromRing",value:function(t,n,r){var i,o,s,u=P.comparePoints(t,n);if(u<0)i=t,o=n,s=1;else{if(!(u>0))throw new Error("Tried to create degenerate segment at [".concat(t.x,", ").concat(t.y,"]"));i=n,o=t,s=-1}return new e(new P(i,!0),new P(o,!1),[r],[s])}}]),e}(),N=function(){function e(n,r,i){t(this,e),this.poly=r,this.isExterior=i,this.segments=[];var o=n[0];this.bbox={ll:{x:o.x,y:o.y},ur:{x:o.x,y:o.y}};for(var s=1,u=n.length;s<u;s++){var l=n[s];this.segments.push(O.fromRing(o,l,this)),l.x<this.bbox.ll.x&&(this.bbox.ll.x=l.x),l.y<this.bbox.ll.y&&(this.bbox.ll.y=l.y),l.x>this.bbox.ur.x&&(this.bbox.ur.x=l.x),l.y>this.bbox.ur.y&&(this.bbox.ur.y=l.y),o=l}this.segments.push(O.fromRing(o,n[0],this))}return n(e,[{key:"getSweepEvents",value:function(){for(var t=[],e=0,n=this.segments.length;e<n;e++){var r=this.segments[e];t.push(r.leftSE),t.push(r.rightSE)}return t}}]),e}(),L=function(){function e(n,r){t(this,e),this.exteriorRing=new N(n[0],this,!0),this.bbox={ll:{x:this.exteriorRing.bbox.ll.x,y:this.exteriorRing.bbox.ll.y},ur:{x:this.exteriorRing.bbox.ur.x,y:this.exteriorRing.bbox.ur.y}},this.interiorRings=[];for(var i=1,o=n.length;i<o;i++){var s=new N(n[i],this,!1);s.bbox.ll.x<this.bbox.ll.x&&(this.bbox.ll.x=s.bbox.ll.x),s.bbox.ll.y<this.bbox.ll.y&&(this.bbox.ll.y=s.bbox.ll.y),s.bbox.ur.x>this.bbox.ur.x&&(this.bbox.ur.x=s.bbox.ur.x),s.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=s.bbox.ur.y),this.interiorRings.push(s)}this.multiPoly=r}return n(e,[{key:"getSweepEvents",value:function(){for(var t=this.exteriorRing.getSweepEvents(),e=0,n=this.interiorRings.length;e<n;e++)for(var r=this.interiorRings[e].getSweepEvents(),i=0,o=r.length;i<o;i++)t.push(r[i]);return t}}]),e}(),B=function(){function e(n){t(this,e),this.polys=[],this.bbox={ll:{x:Number.POSITIVE_INFINITY,y:Number.POSITIVE_INFINITY},ur:{x:Number.NEGATIVE_INFINITY,y:Number.NEGATIVE_INFINITY}};for(var r=0,i=n.length;r<i;r++){var o=new L(n[r],this);o.bbox.ll.x<this.bbox.ll.x&&(this.bbox.ll.x=o.bbox.ll.x),o.bbox.ll.y<this.bbox.ll.y&&(this.bbox.ll.y=o.bbox.ll.y),o.bbox.ur.x>this.bbox.ur.x&&(this.bbox.ur.x=o.bbox.ur.x),o.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=o.bbox.ur.y),this.polys.push(o)}this.isSubject=!1}return n(e,[{key:"markAsSubject",value:function(){this.isSubject=!0}},{key:"getSweepEvents",value:function(){for(var t=[],e=0,n=this.polys.length;e<n;e++)for(var r=this.polys[e].getSweepEvents(),i=0,o=r.length;i<o;i++)t.push(r[i]);return t}}]),e}(),z=function(){function e(n){t(this,e),this.events=n;for(var r=0,i=n.length;r<i;r++)n[r].segment.ringOut=this;this.poly=null}return n(e,null,[{key:"factory",value:function(t){for(var n=[],r=0,i=t.length;r<i;r++){var o=t[r];if(o.isInResult()&&!o.ringOut){for(var s=null,u=o.leftSE,l=o.rightSE,h=[u],f=u.point,a=[];s=u,u=l,h.push(u),u.point!==f;)for(;;){var y=u.getAvailableLinkedEvents();if(0===y.length){var v=h[0].point,g=h[h.length-1].point;throw new Error("Unable to complete output ring starting at [".concat(v.x,",")+" ".concat(v.y,"]. Last matching segment found ends at")+" [".concat(g.x,", ").concat(g.y,"]."))}if(1===y.length){l=y[0].otherSE;break}for(var c=null,p=0,x=a.length;p<x;p++)if(a[p].point===u.point){c=p;break}if(null===c){a.push({index:h.length,point:u.point});var b=u.getLeftmostComparator(s);l=y.sort(b)[0].otherSE;break}var m=a.splice(c)[0],d=h.splice(m.index);d.unshift(d[0].otherSE),n.push(new e(d.reverse()))}n.push(new e(h))}}return n}}]),n(e,[{key:"getGeom",value:function(){for(var t=this.events[0].point,e=[t],n=1,r=this.events.length-1;n<r;n++){var i=this.events[n].point,o=this.events[n+1].point;0!==p(i,t,o)&&(e.push(i),t=i)}if(1===e.length)return null;var s=e[0],u=e[1];0===p(s,t,u)&&e.shift(),e.push(e[0]);for(var l=this.isExteriorRing()?1:-1,h=this.isExteriorRing()?0:e.length-1,f=this.isExteriorRing()?e.length:-1,a=[],y=h;y!=f;y+=l)a.push([e[y].x,e[y].y]);return a}},{key:"isExteriorRing",value:function(){if(void 0===this._isExteriorRing){var t=this.enclosingRing();this._isExteriorRing=!t||!t.isExteriorRing()}return this._isExteriorRing}},{key:"enclosingRing",value:function(){return void 0===this._enclosingRing&&(this._enclosingRing=this._calcEnclosingRing()),this._enclosingRing}},{key:"_calcEnclosingRing",value:function(){for(var t=this.events[0],e=1,n=this.events.length;e<n;e++){var r=this.events[e];P.compare(t,r)>0&&(t=r)}for(var i=t.segment.prevInResult(),o=i?i.prevInResult():null;;){if(!i)return null;if(!o)return i.ringOut;if(o.ringOut!==i.ringOut)return o.ringOut.enclosingRing()!==i.ringOut?i.ringOut:i.ringOut.enclosingRing();i=o.prevInResult(),o=i?i.prevInResult():null}}}]),e}(),M=function(){function e(n){t(this,e),this.exteriorRing=n,n.poly=this,this.interiorRings=[]}return n(e,[{key:"addInterior",value:function(t){this.interiorRings.push(t),t.poly=this}},{key:"getGeom",value:function(){var t=[this.exteriorRing.getGeom()];if(null===t[0])return null;for(var e=0,n=this.interiorRings.length;e<n;e++){var r=this.interiorRings[e].getGeom();null!==r&&t.push(r)}return t}}]),e}(),T=function(){function e(n){t(this,e),this.rings=n,this.polys=this._composePolys(n)}return n(e,[{key:"getGeom",value:function(){for(var t=[],e=0,n=this.polys.length;e<n;e++){var r=this.polys[e].getGeom();null!==r&&t.push(r)}return t}},{key:"_composePolys",value:function(t){for(var e=[],n=0,r=t.length;n<r;n++){var i=t[n];if(!i.poly)if(i.isExteriorRing())e.push(new M(i));else{var o=i.enclosingRing();o.poly||e.push(new M(o)),o.poly.addInterior(i)}}return e}}]),e}(),G=function(){function e(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:O.compare;t(this,e),this.queue=n,this.tree=new l(r),this.segments=[]}return n(e,[{key:"process",value:function(t){var e=t.segment,n=[];if(t.consumedBy)return t.isLeft?this.queue.remove(t.otherSE):this.tree.remove(e),n;var r=t.isLeft?this.tree.insert(e):this.tree.find(e);if(!r)throw new Error("Unable to find segment #".concat(e.id," ")+"[".concat(e.leftSE.point.x,", ").concat(e.leftSE.point.y,"] -> ")+"[".concat(e.rightSE.point.x,", ").concat(e.rightSE.point.y,"] ")+"in SweepLine tree. Please submit a bug report.");for(var i=r,o=r,s=void 0,u=void 0;void 0===s;)null===(i=this.tree.prev(i))?s=null:void 0===i.key.consumedBy&&(s=i.key);for(;void 0===u;)null===(o=this.tree.next(o))?u=null:void 0===o.key.consumedBy&&(u=o.key);if(t.isLeft){var l=null;if(s){var h=s.getIntersection(e);if(null!==h&&(e.isAnEndpoint(h)||(l=h),!s.isAnEndpoint(h)))for(var f=this._splitSafely(s,h),a=0,y=f.length;a<y;a++)n.push(f[a])}var v=null;if(u){var g=u.getIntersection(e);if(null!==g&&(e.isAnEndpoint(g)||(v=g),!u.isAnEndpoint(g)))for(var c=this._splitSafely(u,g),p=0,x=c.length;p<x;p++)n.push(c[p])}if(null!==l||null!==v){var b=null;if(null===l)b=v;else if(null===v)b=l;else{var m=P.comparePoints(l,v);m<0&&(b=l),m>0&&(b=v),b=l}this.queue.remove(e.rightSE),n.push(e.rightSE);for(var d=e.split(b),E=0,k=d.length;E<k;E++)n.push(d[E])}n.length>0?(this.tree.remove(e),n.push(t)):(this.segments.push(e),e.prev=s)}else{if(s&&u){var S=s.getIntersection(u);if(null!==S){if(!s.isAnEndpoint(S))for(var _=this._splitSafely(s,S),w=0,R=_.length;w<R;w++)n.push(_[w]);if(!u.isAnEndpoint(S))for(var I=this._splitSafely(u,S),A=0,O=I.length;A<O;A++)n.push(I[A])}}this.tree.remove(e)}return n}},{key:"_splitSafely",value:function(t,e){this.tree.remove(t);var n=t.rightSE;this.queue.remove(n);var r=t.split(e);return r.push(n),void 0===t.consumedBy&&this.tree.insert(t),r}}]),e}(),j=new(function(){function e(){t(this,e)}return n(e,[{key:"run",value:function(t,e,n){j.type=t,S.reset();for(var r=[_(e)],i=0,o=n.length;i<o;i++)r.push(_(n[i]));for(var s=0,u=r.length;s<u;s++)w(r[s]),R(r[s]);for(var h=[],a=0,y=r.length;a<y;a++)h.push(new B(r[a]));if(h[0].markAsSubject(),j.numMultiPolys=h.length,"difference"===j.type)for(var v=h[0],g=1;g<h.length;)null!==f(h[g].bbox,v.bbox)?g++:h.splice(g,1);if("intersection"===j.type)for(var c=0,p=h.length;c<p;c++)for(var x=h[c],b=c+1,m=h.length;b<m;b++)if(null===f(x.bbox,h[b].bbox))return[];for(var d=new l(P.compare),E=0,k=h.length;E<k;E++)for(var I=h[E].getSweepEvents(),A=0,O=I.length;A<O;A++)d.insert(I[A]);for(var N=new G(d),L=d.size,M=d.pop();M;){var C=M.key;if(d.size===L){var F=C.segment;throw new Error("Unable to pop() ".concat(C.isLeft?"left":"right"," SweepEvent ")+"[".concat(C.point.x,", ").concat(C.point.y,"] from segment #").concat(F.id," ")+"[".concat(F.leftSE.point.x,", ").concat(F.leftSE.point.y,"] -> ")+"[".concat(F.rightSE.point.x,", ").concat(F.rightSE.point.y,"] from queue. ")+"Please file a bug report.")}for(var q=N.process(C),U=0,V=q.length;U<V;U++){var Y=q[U];void 0===Y.consumedBy&&d.insert(Y)}L=d.size,M=d.pop()}S.reset();var D=z.factory(N.segments);return new T(D).getGeom()}}]),e}());return{union:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];return j.run("union",t,n)},intersection:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];return j.run("intersection",t,n)},xor:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];return j.run("xor",t,n)},difference:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];return j.run("difference",t,n)}}});
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).polygonClipping=e()}(this,function(){"use strict";function t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function e(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function n(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}var r=function e(n,r){t(this,e),this.next=null,this.key=n,this.data=r,this.left=null,this.right=null};function i(t,e){return t>e?1:t<e?-1:0}function o(t,e,n){for(var i=new r(null,null),o=i,s=i;;){var u=n(t,e.key);if(u<0){if(null===e.left)break;if(n(t,e.left.key)<0){var l=e.left;if(e.left=l.right,l.right=e,null===(e=l).left)break}s.left=e,s=e,e=e.left}else{if(!(u>0))break;if(null===e.right)break;if(n(t,e.right.key)>0){var h=e.right;if(e.right=h.left,h.left=e,null===(e=h).right)break}o.right=e,o=e,e=e.right}}return o.right=e.left,s.left=e.right,e.left=i.right,e.right=i.left,e}function s(t,e,n,i){var s=new r(t,e);if(null===n)return s.left=s.right=null,s;var u=i(t,(n=o(t,n,i)).key);return u<0?(s.left=n.left,s.right=n,n.left=null):u>=0&&(s.right=n.right,s.left=n,n.right=null),s}function u(t,e,n){var r=null,i=null;if(e){var s=n((e=o(t,e,n)).key,t);0===s?(r=e.left,i=e.right):s<0?(i=e.right,e.right=null,r=e):(r=e.left,e.left=null,i=e)}return{left:r,right:i}}var l=function(){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:i;t(this,e),this._root=null,this._size=0,this._comparator=n}return n(e,[{key:"insert",value:function(t,e){return this._size++,this._root=s(t,e,this._root,this._comparator)}},{key:"add",value:function(t,e){var n=new r(t,e);null===this._root&&(n.left=n.right=null,this._size++,this._root=n);var i=this._comparator,s=o(t,this._root,i),u=i(t,s.key);return 0===u?this._root=s:(u<0?(n.left=s.left,n.right=s,s.left=null):u>0&&(n.right=s.right,n.left=s,s.right=null),this._size++,this._root=n),this._root}},{key:"remove",value:function(t){this._root=this._remove(t,this._root,this._comparator)}},{key:"_remove",value:function(t,e,n){var r;return null===e?null:0===n(t,(e=o(t,e,n)).key)?(null===e.left?r=e.right:(r=o(t,e.left,n)).right=e.right,this._size--,r):e}},{key:"pop",value:function(){var t=this._root;if(t){for(;t.left;)t=t.left;return this._root=o(t.key,this._root,this._comparator),this._root=this._remove(t.key,this._root,this._comparator),{key:t.key,data:t.data}}return null}},{key:"findStatic",value:function(t){for(var e=this._root,n=this._comparator;e;){var r=n(t,e.key);if(0===r)return e;e=r<0?e.left:e.right}return null}},{key:"find",value:function(t){return this._root&&(this._root=o(t,this._root,this._comparator),0!==this._comparator(t,this._root.key))?null:this._root}},{key:"contains",value:function(t){for(var e=this._root,n=this._comparator;e;){var r=n(t,e.key);if(0===r)return!0;e=r<0?e.left:e.right}return!1}},{key:"forEach",value:function(t,e){for(var n=this._root,r=[],i=!1;!i;)null!==n?(r.push(n),n=n.left):0!==r.length?(n=r.pop(),t.call(e,n),n=n.right):i=!0;return this}},{key:"range",value:function(t,e,n,r){for(var i=[],o=this._comparator,s=this._root;0!==i.length||s;)if(s)i.push(s),s=s.left;else{if(o((s=i.pop()).key,e)>0)break;if(o(s.key,t)>=0&&n.call(r,s))return this;s=s.right}return this}},{key:"keys",value:function(){var t=[];return this.forEach(function(e){var n=e.key;return t.push(n)}),t}},{key:"values",value:function(){var t=[];return this.forEach(function(e){var n=e.data;return t.push(n)}),t}},{key:"min",value:function(){return this._root?this.minNode(this._root).key:null}},{key:"max",value:function(){return this._root?this.maxNode(this._root).key:null}},{key:"minNode",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._root;if(t)for(;t.left;)t=t.left;return t}},{key:"maxNode",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._root;if(t)for(;t.right;)t=t.right;return t}},{key:"at",value:function(t){for(var e=this._root,n=!1,r=0,i=[];!n;)if(e)i.push(e),e=e.left;else if(i.length>0){if(e=i.pop(),r===t)return e;r++,e=e.right}else n=!0;return null}},{key:"next",value:function(t){var e=this._root,n=null;if(t.right){for(n=t.right;n.left;)n=n.left;return n}for(var r=this._comparator;e;){var i=r(t.key,e.key);if(0===i)break;i<0?(n=e,e=e.left):e=e.right}return n}},{key:"prev",value:function(t){var e=this._root,n=null;if(null!==t.left){for(n=t.left;n.right;)n=n.right;return n}for(var r=this._comparator;e;){var i=r(t.key,e.key);if(0===i)break;i<0?e=e.left:(n=e,e=e.right)}return n}},{key:"clear",value:function(){return this._root=null,this._size=0,this}},{key:"toList",value:function(){return function(t){var e=t,n=[],i=!1,o=new r(null,null),s=o;for(;!i;)e?(n.push(e),e=e.left):n.length>0?e=(e=s=s.next=n.pop()).right:i=!0;return s.next=null,o.next}(this._root)}},{key:"load",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=t.length,o=this._comparator;if(n&&function t(e,n,r,i,o){if(r>=i)return;var s=e[r+i>>1];var u=r-1;var l=i+1;for(;;){do{u++}while(o(e[u],s)<0);do{l--}while(o(e[l],s)>0);if(u>=l)break;var h=e[u];e[u]=e[l],e[l]=h,h=n[u],n[u]=n[l],n[l]=h}t(e,n,r,l,o);t(e,n,l+1,i,o)}(t,e,0,i-1,o),null===this._root)this._root=function t(e,n,i,o){var s=o-i;if(s>0){var u=i+Math.floor(s/2),l=e[u],h=n[u],f=new r(l,h);return f.left=t(e,n,i,u),f.right=t(e,n,u+1,o),f}return null}(t,e,0,i),this._size=i;else{var s=function(t,e,n){var i=new r(null,null),o=i,s=t,u=e;for(;null!==s&&null!==u;)n(s.key,u.key)<0?(o.next=s,s=s.next):(o.next=u,u=u.next),o=o.next;null!==s?o.next=s:null!==u&&(o.next=u);return i.next}(this.toList(),function(t,e){for(var n=new r(null,null),i=n,o=0;o<t.length;o++)i=i.next=new r(t[o],e[o]);return i.next=null,n.next}(t,e),o);i=this._size+i,this._root=function t(e,n,r){var i=r-n;if(i>0){var o=n+Math.floor(i/2),s=t(e,n,o),u=e.head;return u.left=s,e.head=e.head.next,u.right=t(e,o+1,r),u}return null}({head:s},0,i)}return this}},{key:"isEmpty",value:function(){return null===this._root}},{key:"toString",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(t){return String(t.key)},e=[];return function t(e,n,r,i,o){if(e){i("".concat(n).concat(r?"└── ":"├── ").concat(o(e),"\n"));var s=n+(r?" ":"│ ");e.left&&t(e.left,s,!1,i,o),e.right&&t(e.right,s,!0,i,o)}}(this._root,"",!0,function(t){return e.push(t)},t),e.join("")}},{key:"update",value:function(t,e,n){var r=this._comparator,i=u(t,this._root,r),l=i.left,h=i.right;r(t,e)<0?h=s(e,n,h,r):l=s(e,n,l,r),this._root=function(t,e,n){return null===e?t:null===t?e:((e=o(t.key,e,n)).left=t,e)}(l,h,r)}},{key:"split",value:function(t){return u(t,this._root,this._comparator)}},{key:"size",get:function(){return this._size}},{key:"root",get:function(){return this._root}}]),e}();var h=function(t,e){return t.ll.x<=e.x&&e.x<=t.ur.x&&t.ll.y<=e.y&&e.y<=t.ur.y},f=function(t,e){if(e.ur.x<t.ll.x||t.ur.x<e.ll.x||e.ur.y<t.ll.y||t.ur.y<e.ll.y)return null;var n=t.ll.x<e.ll.x?e.ll.x:t.ll.x,r=t.ur.x<e.ur.x?t.ur.x:e.ur.x;return{ll:{x:n,y:t.ll.y<e.ll.y?e.ll.y:t.ll.y},ur:{x:r,y:t.ur.y<e.ur.y?t.ur.y:e.ur.y}}},a=Number.EPSILON;void 0===a&&(a=Math.pow(2,-52));var v=a*a,y=function(t,e){if(-a<t&&t<a&&-a<e&&e<a)return 0;var n=t-e;return n*n<v*t*e?0:t<e?-1:1},g=function(){function e(){t(this,e),this.reset()}return n(e,[{key:"reset",value:function(){this.xRounder=new c,this.yRounder=new c}},{key:"round",value:function(t,e){return{x:this.xRounder.round(t),y:this.yRounder.round(e)}}}]),e}(),c=function(){function e(){t(this,e),this.tree=new l,this.round(0)}return n(e,[{key:"round",value:function(t){var e=this.tree.add(t),n=this.tree.prev(e);if(null!==n&&0===y(e.key,n.key))return this.tree.remove(t),n.key;var r=this.tree.next(e);return null!==r&&0===y(e.key,r.key)?(this.tree.remove(t),r.key):t}}]),e}(),p=new g,x=function(t,e){return t.x*e.y-t.y*e.x},b=function(t,e){return t.x*e.x+t.y*e.y},m=function(t,e,n){var r={x:e.x-t.x,y:e.y-t.y},i={x:n.x-t.x,y:n.y-t.y},o=x(r,i);return y(o,0)},d=function(t){return Math.sqrt(b(t,t))},E=function(t,e,n){var r={x:e.x-t.x,y:e.y-t.y},i={x:n.x-t.x,y:n.y-t.y};return b(i,r)/d(i)/d(r)},k=function(t,e,n){return 0===e.y?null:{x:t.x+e.x/e.y*(n-t.y),y:n}},S=function(t,e,n){return 0===e.x?null:{x:n,y:t.y+e.y/e.x*(n-t.x)}},_=function(){function e(n,r){t(this,e),void 0===n.events?n.events=[this]:n.events.push(this),this.point=n,this.isLeft=r}return n(e,null,[{key:"compare",value:function(t,n){var r=e.comparePoints(t.point,n.point);return 0!==r?r:(t.point!==n.point&&t.link(n),t.isLeft!==n.isLeft?t.isLeft?1:-1:R.compare(t.segment,n.segment))}},{key:"comparePoints",value:function(t,e){return t.x<e.x?-1:t.x>e.x?1:t.y<e.y?-1:t.y>e.y?1:0}}]),n(e,[{key:"link",value:function(t){if(t.point===this.point)throw new Error("Tried to link already linked events");for(var e=t.point.events,n=0,r=e.length;n<r;n++){var i=e[n];this.point.events.push(i),i.point=this.point}this.checkForConsuming()}},{key:"checkForConsuming",value:function(){for(var t=this.point.events.length,e=0;e<t;e++){var n=this.point.events[e];if(void 0===n.segment.consumedBy)for(var r=e+1;r<t;r++){var i=this.point.events[r];void 0===i.consumedBy&&(n.otherSE.point.events===i.otherSE.point.events&&n.segment.consume(i.segment))}}}},{key:"getAvailableLinkedEvents",value:function(){for(var t=[],e=0,n=this.point.events.length;e<n;e++){var r=this.point.events[e];r!==this&&!r.segment.ringOut&&r.segment.isInResult()&&t.push(r)}return t}},{key:"getLeftmostComparator",value:function(t){var e=this,n=new Map,r=function(r){var i,o,s,u,l,h=r.otherSE;n.set(r,{sine:(i=e.point,o=t.point,s=h.point,u={x:o.x-i.x,y:o.y-i.y},l={x:s.x-i.x,y:s.y-i.y},x(l,u)/d(l)/d(u)),cosine:E(e.point,t.point,h.point)})};return function(t,e){n.has(t)||r(t),n.has(e)||r(e);var i=n.get(t),o=i.sine,s=i.cosine,u=n.get(e),l=u.sine,h=u.cosine;return o>=0&&l>=0?s<h?1:s>h?-1:0:o<0&&l<0?s<h?-1:s>h?1:0:l<o?-1:l>o?1:0}}}]),e}(),w=0,R=function(){function e(n,r,i,o){t(this,e),this.id=++w,this.leftSE=n,n.segment=this,n.otherSE=r,this.rightSE=r,r.segment=this,r.otherSE=n,this.rings=i,this.windings=o}return n(e,null,[{key:"compare",value:function(t,e){var n=t.leftSE.point.x,r=e.leftSE.point.x,i=t.rightSE.point.x,o=e.rightSE.point.x;if(o<n)return 1;if(i<r)return-1;var s=t.leftSE.point.y,u=e.leftSE.point.y,l=t.rightSE.point.y,h=e.rightSE.point.y;if(n<r){if(u<s&&u<l)return 1;if(u>s&&u>l)return-1;var f=t.comparePoint(e.leftSE.point);if(f<0)return 1;if(f>0)return-1;var a=e.comparePoint(t.rightSE.point);return 0!==a?a:-1}if(n>r){if(s<u&&s<h)return-1;if(s>u&&s>h)return 1;var v=e.comparePoint(t.leftSE.point);if(0!==v)return v;var y=t.comparePoint(e.rightSE.point);return y<0?1:y>0?-1:1}if(s<u)return-1;if(s>u)return 1;if(i<o){var g=e.comparePoint(t.rightSE.point);if(0!==g)return g}if(i>o){var c=t.comparePoint(e.rightSE.point);if(c<0)return 1;if(c>0)return-1}if(i!==o){var p=l-s,x=i-n,b=h-u,m=o-r;if(p>x&&b<m)return 1;if(p<x&&b>m)return-1}return i>o?1:i<o?-1:l<h?-1:l>h?1:t.id<e.id?-1:t.id>e.id?1:0}}]),n(e,[{key:"replaceRightSE",value:function(t){this.rightSE=t,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}},{key:"bbox",value:function(){var t=this.leftSE.point.y,e=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:t<e?t:e},ur:{x:this.rightSE.point.x,y:t>e?t:e}}}},{key:"vector",value:function(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}},{key:"isAnEndpoint",value:function(t){return t.x===this.leftSE.point.x&&t.y===this.leftSE.point.y||t.x===this.rightSE.point.x&&t.y===this.rightSE.point.y}},{key:"comparePoint",value:function(t){if(this.isAnEndpoint(t))return 0;var e=this.leftSE.point,n=this.rightSE.point,r=this.vector();if(e.x===n.x)return t.x===e.x?0:t.x<e.x?1:-1;var i=(t.y-e.y)/r.y,o=e.x+i*r.x;if(t.x===o)return 0;var s=(t.x-e.x)/r.x,u=e.y+s*r.y;return t.y===u?0:t.y<u?-1:1}},{key:"getIntersection",value:function(t){var e=this.bbox(),n=t.bbox(),r=f(e,n);if(null===r)return null;var i=this.leftSE.point,o=this.rightSE.point,s=t.leftSE.point,u=t.rightSE.point,l=h(e,s)&&0===this.comparePoint(s),a=h(n,i)&&0===t.comparePoint(i),v=h(e,u)&&0===this.comparePoint(u),y=h(n,o)&&0===t.comparePoint(o);if(a&&l)return y&&!v?o:!y&&v?u:null;if(a)return v&&i.x===u.x&&i.y===u.y?null:i;if(l)return y&&o.x===s.x&&o.y===s.y?null:s;if(y&&v)return null;if(y)return o;if(v)return u;var g=function(t,e,n,r){if(0===e.x)return S(n,r,t.x);if(0===r.x)return S(t,e,n.x);if(0===e.y)return k(n,r,t.y);if(0===r.y)return k(t,e,n.y);var i=x(e,r);if(0==i)return null;var o={x:n.x-t.x,y:n.y-t.y},s=x(o,e)/i,u=x(o,r)/i;return{x:(t.x+u*e.x+(n.x+s*r.x))/2,y:(t.y+u*e.y+(n.y+s*r.y))/2}}(i,this.vector(),s,t.vector());return null===g?null:h(r,g)?p.round(g.x,g.y):null}},{key:"split",value:function(t){var n=[],r=void 0!==t.events,i=new _(t,!0),o=new _(t,!1),s=this.rightSE;this.replaceRightSE(o),n.push(o),n.push(i);var u=new e(i,s,this.rings.slice(),this.windings.slice());return _.comparePoints(u.leftSE.point,u.rightSE.point)>0&&u.swapEvents(),_.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),r&&(i.checkForConsuming(),o.checkForConsuming()),n}},{key:"swapEvents",value:function(){var t=this.rightSE;this.rightSE=this.leftSE,this.leftSE=t,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(var e=0,n=this.windings.length;e<n;e++)this.windings[e]*=-1}},{key:"consume",value:function(t){for(var n=this,r=t;n.consumedBy;)n=n.consumedBy;for(;r.consumedBy;)r=r.consumedBy;var i=e.compare(n,r);if(0!==i){if(i>0){var o=n;n=r,r=o}if(n.prev===r){var s=n;n=r,r=s}for(var u=0,l=r.rings.length;u<l;u++){var h=r.rings[u],f=r.windings[u],a=n.rings.indexOf(h);-1===a?(n.rings.push(h),n.windings.push(f)):n.windings[a]+=f}r.rings=null,r.windings=null,r.consumedBy=n,r.leftSE.consumedBy=n.leftSE,r.rightSE.consumedBy=n.rightSE}}},{key:"prevInResult",value:function(){return void 0!==this._prevInResult?this._prevInResult:(this.prev?this.prev.isInResult()?this._prevInResult=this.prev:this._prevInResult=this.prev.prevInResult():this._prevInResult=null,this._prevInResult)}},{key:"beforeState",value:function(){if(void 0!==this._beforeState)return this._beforeState;if(this.prev){var t=this.prev.consumedBy||this.prev;this._beforeState=t.afterState()}else this._beforeState={rings:[],windings:[],multiPolys:[]};return this._beforeState}},{key:"afterState",value:function(){if(void 0!==this._afterState)return this._afterState;var t=this.beforeState();this._afterState={rings:t.rings.slice(0),windings:t.windings.slice(0),multiPolys:[]};for(var e=this._afterState.rings,n=this._afterState.windings,r=this._afterState.multiPolys,i=0,o=this.rings.length;i<o;i++){var s=this.rings[i],u=this.windings[i],l=e.indexOf(s);-1===l?(e.push(s),n.push(u)):n[l]+=u}for(var h=[],f=[],a=0,v=e.length;a<v;a++)if(0!==n[a]){var y=e[a],g=y.poly;if(-1===f.indexOf(g))if(y.isExterior)h.push(g);else{-1===f.indexOf(g)&&f.push(g);var c=h.indexOf(y.poly);-1!==c&&h.splice(c,1)}}for(var p=0,x=h.length;p<x;p++){var b=h[p].multiPoly;-1===r.indexOf(b)&&r.push(b)}return this._afterState}},{key:"isInResult",value:function(){if(this.consumedBy)return!1;if(void 0!==this._isInResult)return this._isInResult;var t=this.beforeState().multiPolys,e=this.afterState().multiPolys;switch(z.type){case"union":var n=0===t.length,r=0===e.length;this._isInResult=n!==r;break;case"intersection":var i,o;t.length<e.length?(i=t.length,o=e.length):(i=e.length,o=t.length),this._isInResult=o===z.numMultiPolys&&i<o;break;case"xor":var s=Math.abs(t.length-e.length);this._isInResult=s%2==1;break;case"difference":var u=function(t){return 1===t.length&&t[0].isSubject};this._isInResult=u(t)!==u(e);break;default:throw new Error("Unrecognized operation type found ".concat(z.type))}return this._isInResult}}],[{key:"fromRing",value:function(t,n,r){var i,o,s,u=_.comparePoints(t,n);if(u<0)i=t,o=n,s=1;else{if(!(u>0))throw new Error("Tried to create degenerate segment at [".concat(t.x,", ").concat(t.y,"]"));i=n,o=t,s=-1}return new e(new _(i,!0),new _(o,!1),[r],[s])}}]),e}(),I=function(){function e(n,r,i){if(t(this,e),!Array.isArray(n)||0===n.length)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=r,this.isExterior=i,this.segments=[],"number"!=typeof n[0][0]||"number"!=typeof n[0][1])throw new Error("Input geometry is not a valid Polygon or MultiPolygon");var o=p.round(n[0][0],n[0][1]);this.bbox={ll:{x:o.x,y:o.y},ur:{x:o.x,y:o.y}};for(var s=o,u=1,l=n.length;u<l;u++){if("number"!=typeof n[u][0]||"number"!=typeof n[u][1])throw new Error("Input geometry is not a valid Polygon or MultiPolygon");var h=p.round(n[u][0],n[u][1]);h.x===s.x&&h.y===s.y||(this.segments.push(R.fromRing(s,h,this)),h.x<this.bbox.ll.x&&(this.bbox.ll.x=h.x),h.y<this.bbox.ll.y&&(this.bbox.ll.y=h.y),h.x>this.bbox.ur.x&&(this.bbox.ur.x=h.x),h.y>this.bbox.ur.y&&(this.bbox.ur.y=h.y),s=h)}o.x===s.x&&o.y===s.y||this.segments.push(R.fromRing(s,o,this))}return n(e,[{key:"getSweepEvents",value:function(){for(var t=[],e=0,n=this.segments.length;e<n;e++){var r=this.segments[e];t.push(r.leftSE),t.push(r.rightSE)}return t}}]),e}(),P=function(){function e(n,r){if(t(this,e),!Array.isArray(n))throw new Error("Input geometry is not a valid Polygon or MultiPolygon");this.exteriorRing=new I(n[0],this,!0),this.bbox={ll:{x:this.exteriorRing.bbox.ll.x,y:this.exteriorRing.bbox.ll.y},ur:{x:this.exteriorRing.bbox.ur.x,y:this.exteriorRing.bbox.ur.y}},this.interiorRings=[];for(var i=1,o=n.length;i<o;i++){var s=new I(n[i],this,!1);s.bbox.ll.x<this.bbox.ll.x&&(this.bbox.ll.x=s.bbox.ll.x),s.bbox.ll.y<this.bbox.ll.y&&(this.bbox.ll.y=s.bbox.ll.y),s.bbox.ur.x>this.bbox.ur.x&&(this.bbox.ur.x=s.bbox.ur.x),s.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=s.bbox.ur.y),this.interiorRings.push(s)}this.multiPoly=r}return n(e,[{key:"getSweepEvents",value:function(){for(var t=this.exteriorRing.getSweepEvents(),e=0,n=this.interiorRings.length;e<n;e++)for(var r=this.interiorRings[e].getSweepEvents(),i=0,o=r.length;i<o;i++)t.push(r[i]);return t}}]),e}(),A=function(){function e(n,r){if(t(this,e),!Array.isArray(n))throw new Error("Input geometry is not a valid Polygon or MultiPolygon");try{"number"==typeof n[0][0][0]&&(n=[n])}catch(t){}this.polys=[],this.bbox={ll:{x:Number.POSITIVE_INFINITY,y:Number.POSITIVE_INFINITY},ur:{x:Number.NEGATIVE_INFINITY,y:Number.NEGATIVE_INFINITY}};for(var i=0,o=n.length;i<o;i++){var s=new P(n[i],this);s.bbox.ll.x<this.bbox.ll.x&&(this.bbox.ll.x=s.bbox.ll.x),s.bbox.ll.y<this.bbox.ll.y&&(this.bbox.ll.y=s.bbox.ll.y),s.bbox.ur.x>this.bbox.ur.x&&(this.bbox.ur.x=s.bbox.ur.x),s.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=s.bbox.ur.y),this.polys.push(s)}this.isSubject=r}return n(e,[{key:"getSweepEvents",value:function(){for(var t=[],e=0,n=this.polys.length;e<n;e++)for(var r=this.polys[e].getSweepEvents(),i=0,o=r.length;i<o;i++)t.push(r[i]);return t}}]),e}(),N=function(){function e(n){t(this,e),this.events=n;for(var r=0,i=n.length;r<i;r++)n[r].segment.ringOut=this;this.poly=null}return n(e,null,[{key:"factory",value:function(t){for(var n=[],r=0,i=t.length;r<i;r++){var o=t[r];if(o.isInResult()&&!o.ringOut){for(var s=null,u=o.leftSE,l=o.rightSE,h=[u],f=u.point,a=[];s=u,u=l,h.push(u),u.point!==f;)for(;;){var v=u.getAvailableLinkedEvents();if(0===v.length){var y=h[0].point,g=h[h.length-1].point;throw new Error("Unable to complete output ring starting at [".concat(y.x,",")+" ".concat(y.y,"]. Last matching segment found ends at")+" [".concat(g.x,", ").concat(g.y,"]."))}if(1===v.length){l=v[0].otherSE;break}for(var c=null,p=0,x=a.length;p<x;p++)if(a[p].point===u.point){c=p;break}if(null===c){a.push({index:h.length,point:u.point});var b=u.getLeftmostComparator(s);l=v.sort(b)[0].otherSE;break}var m=a.splice(c)[0],d=h.splice(m.index);d.unshift(d[0].otherSE),n.push(new e(d.reverse()))}n.push(new e(h))}}return n}}]),n(e,[{key:"getGeom",value:function(){for(var t=this.events[0].point,e=[t],n=1,r=this.events.length-1;n<r;n++){var i=this.events[n].point,o=this.events[n+1].point;0!==m(i,t,o)&&(e.push(i),t=i)}if(1===e.length)return null;var s=e[0],u=e[1];0===m(s,t,u)&&e.shift(),e.push(e[0]);for(var l=this.isExteriorRing()?1:-1,h=this.isExteriorRing()?0:e.length-1,f=this.isExteriorRing()?e.length:-1,a=[],v=h;v!=f;v+=l)a.push([e[v].x,e[v].y]);return a}},{key:"isExteriorRing",value:function(){if(void 0===this._isExteriorRing){var t=this.enclosingRing();this._isExteriorRing=!t||!t.isExteriorRing()}return this._isExteriorRing}},{key:"enclosingRing",value:function(){return void 0===this._enclosingRing&&(this._enclosingRing=this._calcEnclosingRing()),this._enclosingRing}},{key:"_calcEnclosingRing",value:function(){for(var t=this.events[0],e=1,n=this.events.length;e<n;e++){var r=this.events[e];_.compare(t,r)>0&&(t=r)}for(var i=t.segment.prevInResult(),o=i?i.prevInResult():null;;){if(!i)return null;if(!o)return i.ringOut;if(o.ringOut!==i.ringOut)return o.ringOut.enclosingRing()!==i.ringOut?i.ringOut:i.ringOut.enclosingRing();i=o.prevInResult(),o=i?i.prevInResult():null}}}]),e}(),O=function(){function e(n){t(this,e),this.exteriorRing=n,n.poly=this,this.interiorRings=[]}return n(e,[{key:"addInterior",value:function(t){this.interiorRings.push(t),t.poly=this}},{key:"getGeom",value:function(){var t=[this.exteriorRing.getGeom()];if(null===t[0])return null;for(var e=0,n=this.interiorRings.length;e<n;e++){var r=this.interiorRings[e].getGeom();null!==r&&t.push(r)}return t}}]),e}(),L=function(){function e(n){t(this,e),this.rings=n,this.polys=this._composePolys(n)}return n(e,[{key:"getGeom",value:function(){for(var t=[],e=0,n=this.polys.length;e<n;e++){var r=this.polys[e].getGeom();null!==r&&t.push(r)}return t}},{key:"_composePolys",value:function(t){for(var e=[],n=0,r=t.length;n<r;n++){var i=t[n];if(!i.poly)if(i.isExteriorRing())e.push(new O(i));else{var o=i.enclosingRing();o.poly||e.push(new O(o)),o.poly.addInterior(i)}}return e}}]),e}(),B=function(){function e(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:R.compare;t(this,e),this.queue=n,this.tree=new l(r),this.segments=[]}return n(e,[{key:"process",value:function(t){var e=t.segment,n=[];if(t.consumedBy)return t.isLeft?this.queue.remove(t.otherSE):this.tree.remove(e),n;var r=t.isLeft?this.tree.insert(e):this.tree.find(e);if(!r)throw new Error("Unable to find segment #".concat(e.id," ")+"[".concat(e.leftSE.point.x,", ").concat(e.leftSE.point.y,"] -> ")+"[".concat(e.rightSE.point.x,", ").concat(e.rightSE.point.y,"] ")+"in SweepLine tree. Please submit a bug report.");for(var i=r,o=r,s=void 0,u=void 0;void 0===s;)null===(i=this.tree.prev(i))?s=null:void 0===i.key.consumedBy&&(s=i.key);for(;void 0===u;)null===(o=this.tree.next(o))?u=null:void 0===o.key.consumedBy&&(u=o.key);if(t.isLeft){var l=null;if(s){var h=s.getIntersection(e);if(null!==h&&(e.isAnEndpoint(h)||(l=h),!s.isAnEndpoint(h)))for(var f=this._splitSafely(s,h),a=0,v=f.length;a<v;a++)n.push(f[a])}var y=null;if(u){var g=u.getIntersection(e);if(null!==g&&(e.isAnEndpoint(g)||(y=g),!u.isAnEndpoint(g)))for(var c=this._splitSafely(u,g),p=0,x=c.length;p<x;p++)n.push(c[p])}if(null!==l||null!==y){var b=null;if(null===l)b=y;else if(null===y)b=l;else{b=_.comparePoints(l,y)<=0?l:y}this.queue.remove(e.rightSE),n.push(e.rightSE);for(var m=e.split(b),d=0,E=m.length;d<E;d++)n.push(m[d])}n.length>0?(this.tree.remove(e),n.push(t)):(this.segments.push(e),e.prev=s)}else{if(s&&u){var k=s.getIntersection(u);if(null!==k){if(!s.isAnEndpoint(k))for(var S=this._splitSafely(s,k),w=0,R=S.length;w<R;w++)n.push(S[w]);if(!u.isAnEndpoint(k))for(var I=this._splitSafely(u,k),P=0,A=I.length;P<A;P++)n.push(I[P])}}this.tree.remove(e)}return n}},{key:"_splitSafely",value:function(t,e){this.tree.remove(t);var n=t.rightSE;this.queue.remove(n);var r=t.split(e);return r.push(n),void 0===t.consumedBy&&this.tree.insert(t),r}}]),e}(),z=new(function(){function e(){t(this,e)}return n(e,[{key:"run",value:function(t,e,n){z.type=t,p.reset();for(var r=[new A(e,!0)],i=0,o=n.length;i<o;i++)r.push(new A(n[i],!1));if(z.numMultiPolys=r.length,"difference"===z.type)for(var s=r[0],u=1;u<r.length;)null!==f(r[u].bbox,s.bbox)?u++:r.splice(u,1);if("intersection"===z.type)for(var h=0,a=r.length;h<a;h++)for(var v=r[h],y=h+1,g=r.length;y<g;y++)if(null===f(v.bbox,r[y].bbox))return[];for(var c=new l(_.compare),x=0,b=r.length;x<b;x++)for(var m=r[x].getSweepEvents(),d=0,E=m.length;d<E;d++)c.insert(m[d]);for(var k=new B(c),S=c.size,w=c.pop();w;){var R=w.key;if(c.size===S){var I=R.segment;throw new Error("Unable to pop() ".concat(R.isLeft?"left":"right"," SweepEvent ")+"[".concat(R.point.x,", ").concat(R.point.y,"] from segment #").concat(I.id," ")+"[".concat(I.leftSE.point.x,", ").concat(I.leftSE.point.y,"] -> ")+"[".concat(I.rightSE.point.x,", ").concat(I.rightSE.point.y,"] from queue. ")+"Please file a bug report.")}for(var P=k.process(R),O=0,M=P.length;O<M;O++){var T=P[O];void 0===T.consumedBy&&c.insert(T)}S=c.size,w=c.pop()}p.reset();var G=N.factory(k.segments);return new L(G).getGeom()}}]),e}());return{union:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];return z.run("union",t,n)},intersection:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];return z.run("intersection",t,n)},xor:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];return z.run("xor",t,n)},difference:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];return z.run("difference",t,n)}}});
//# sourceMappingURL=polygon-clipping.umd.min.js.map
{
"name": "polygon-clipping",
"version": "0.14.2",
"version": "0.14.3",
"description": "Apply boolean Polygon clipping operations (intersection, union, difference, xor) to your Polygons & MultiPolygons.",

@@ -47,18 +47,18 @@ "main": "dist/polygon-clipping.cjs.js",

"devDependencies": {
"@babel/cli": "^7.5.5",
"@babel/core": "^7.5.5",
"@babel/preset-env": "^7.5.5",
"@babel/cli": "^7.6.4",
"@babel/core": "^7.6.4",
"@babel/preset-env": "^7.6.3",
"@turf/difference": "^5.1.5",
"@turf/intersect": "^5.1.6",
"@turf/union": "^5.1.5",
"babel-jest": "^24.8.0",
"babel-jest": "^24.9.0",
"benchmark": "^2.1.4",
"coveralls": "^3.0.5",
"coveralls": "^3.0.7",
"eslint": "^5.16.0",
"eslint-plugin-vue-libs": "^3.0.2",
"jest": "^24.8.0",
"jest": "^24.9.0",
"load-json-file": "^5.3.0",
"martinez-polygon-clipping": "^0.5.0",
"npm-run-all": "^4.1.5",
"rollup": "^1.17.0",
"rollup": "^1.25.2",
"rollup-plugin-babel": "^4.3.3",

@@ -74,4 +74,4 @@ "rollup-plugin-commonjs": "^9.3.4",

"dependencies": {
"splaytree": "^3.0.0"
"splaytree": "^3.0.1"
}
}

@@ -86,2 +86,3 @@ # polygon-clipping

* [Alantgeo](https://www.alantgeo.com.au/)
* [EasyTerritory](https://www.easyterritory.com/)

@@ -88,0 +89,0 @@

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc