diff --git a/README.md b/README.md index 3194aca..3fd31f0 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,10 @@ The Martinez-Rueda-Feito polygon clipping algorithm is used to compute the resul ## Changelog +### v0.9.1 (2018-11-12) + + * Bug fixes ([#36](https://github.com/mfogel/polygon-clipping/issues/36) again, [#44](https://github.com/mfogel/polygon-clipping/issues/44)) + ### v0.9 (2018-10-17) * Performance improvements ([#26](https://github.com/mfogel/polygon-clipping/issues/26)) diff --git a/dist/polygon-clipping.js b/dist/polygon-clipping.js index 4612695..c6cda88 100644 --- a/dist/polygon-clipping.js +++ b/dist/polygon-clipping.js @@ -224,7 +224,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _flp = __webpack_require__(/*! ./flp */ \"./src/flp.js\");\n\nvar _vector = __webpack_require__(/*! ./vector */ \"./src/vector.js\");\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar SweepEvent = function () {\n _createClass(SweepEvent, null, [{\n key: 'compare',\n value: function compare(a, b) {\n\n // if the events are already linked, then we know the points are equal\n if (a.point !== b.point) {\n\n // favor event with a point that the sweep line hits first\n var cmpX = (0, _flp.cmp)(a.point.x, b.point.x);\n if (cmpX !== 0) return cmpX;\n\n var cmpY = (0, _flp.cmp)(a.point.y, b.point.y);\n if (cmpY !== 0) return cmpY;\n\n // Points are equal, so go ahead and link these events.\n // This will cascade and possibly mark segments coincident.\n a.link(b);\n }\n\n // favor right events over left\n if (a.isLeft !== b.isLeft) return a.isLeft ? 1 : -1;\n\n // favor vertical segments for left events, and non-vertical for right\n // https://github.com/mfogel/polygon-clipping/issues/29\n if (a.segment.isVertical && !b.segment.isVertical) return a.isLeft ? 1 : -1;\n if (!a.segment.isVertical && b.segment.isVertical) return a.isLeft ? -1 : 1;\n\n // favor events where the line segment is lower\n var pointSegCmp = a.segment.comparePoint(b.otherSE.point);\n if (pointSegCmp !== 0) return pointSegCmp > 0 ? -1 : 1;\n\n // as a tie-breaker, favor lower segment creation id\n var aId = a.segment.ringIn.id;\n var bId = b.segment.ringIn.id;\n if (aId !== bId) return aId < bId ? -1 : 1;\n\n // NOTE: We don't sort on segment length because that changes\n // as segments are divided.\n\n // they appear to be the same point... are they?\n if (a === b) return 0;\n\n throw new Error('SweepEvent comparison failed at [' + a.point.x + ', ' + a.point.y + ']... ' + 'equal but not identical?');\n }\n\n // Warning: input will be modified and re-used (for performance)\n\n }]);\n\n function SweepEvent(point) {\n _classCallCheck(this, SweepEvent);\n\n if (point.events === undefined) point.events = [this];else point.events.push(this);\n this.point = point;\n }\n\n _createClass(SweepEvent, [{\n key: 'link',\n value: function link(other) {\n if (other.point === this.point) {\n throw new Error('Tried to link already linked events');\n }\n var otherEvents = other.point.events;\n for (var i = 0, iMax = otherEvents.length; i < iMax; i++) {\n var evt = otherEvents[i];\n this.point.events.push(evt);\n evt.point = this.point;\n if (this.otherSE.point === evt.otherSE.point) {\n this.segment.registerCoincident(evt.segment);\n }\n }\n }\n }, {\n key: 'getAvailableLinkedEvents',\n value: function getAvailableLinkedEvents() {\n // point.events is always of length 2 or greater\n var events = [];\n for (var i = 0, iMax = this.point.events.length; i < iMax; i++) {\n var evt = this.point.events[i];\n if (evt !== this && !evt.segment.ringOut && evt.segment.isInResult) {\n events.push(evt);\n }\n }\n return events;\n }\n\n /**\n * Returns a comparator function for sorting linked events that will\n * favor the event that will give us the smallest left-side angle.\n * All ring construction starts as low as possible heading to the right,\n * so by always turning left as sharp as possible we'll get polygons\n * without uncessary loops & holes.\n *\n * The comparator function has a compute cache such that it avoids\n * re-computing already-computed values.\n */\n\n }, {\n key: 'getLeftmostComparator',\n value: function getLeftmostComparator(baseEvent) {\n var _this = this;\n\n var cache = new Map();\n\n var fillCache = function fillCache(linkedEvent) {\n var nextEvent = linkedEvent.otherSE;\n cache.set(linkedEvent, {\n sine: (0, _vector.sineOfAngle)(_this.point, baseEvent.point, nextEvent.point),\n cosine: (0, _vector.cosineOfAngle)(_this.point, baseEvent.point, nextEvent.point)\n });\n };\n\n return function (a, b) {\n if (!cache.has(a)) fillCache(a);\n if (!cache.has(b)) fillCache(b);\n\n var _cache$get = cache.get(a),\n asine = _cache$get.sine,\n acosine = _cache$get.cosine;\n\n var _cache$get2 = cache.get(b),\n bsine = _cache$get2.sine,\n bcosine = _cache$get2.cosine;\n\n var cmpZeroASine = (0, _flp.cmp)(asine, 0);\n var cmpZeroBSine = (0, _flp.cmp)(bsine, 0);\n\n if (cmpZeroASine >= 0 && cmpZeroBSine >= 0) return (0, _flp.cmp)(bcosine, acosine);\n if (cmpZeroASine < 0 && cmpZeroBSine < 0) return (0, _flp.cmp)(acosine, bcosine);\n return (0, _flp.cmp)(bsine, asine);\n };\n }\n }, {\n key: 'isLeft',\n get: function get() {\n return this === this.segment.leftSE;\n }\n }, {\n key: 'isRight',\n get: function get() {\n return this === this.segment.rightSE;\n }\n }, {\n key: 'isOrientationCorrect',\n get: function get() {\n var ptCmp = (0, _flp.cmpPoints)(this.point, this.otherSE.point);\n if (ptCmp < 0) return this.isLeft;\n if (ptCmp > 0) return this.isRight;\n throw new Error(\"Degenerate segment encountered\");\n }\n }, {\n key: 'otherSE',\n get: function get() {\n return this.segment.getOtherSE(this);\n }\n }]);\n\n return SweepEvent;\n}();\n\nexports.default = SweepEvent;\nmodule.exports = exports['default'];\n\n//# sourceURL=webpack://polygon-clipping/./src/sweep-event.js?"); +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _flp = __webpack_require__(/*! ./flp */ \"./src/flp.js\");\n\nvar _vector = __webpack_require__(/*! ./vector */ \"./src/vector.js\");\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar SweepEvent = function () {\n _createClass(SweepEvent, null, [{\n key: 'compare',\n value: function compare(a, b) {\n\n // if the events are already linked, then we know the points are equal\n if (a.point !== b.point) {\n\n // favor event with a point that the sweep line hits first\n var cmpX = (0, _flp.cmp)(a.point.x, b.point.x);\n if (cmpX !== 0) return cmpX;\n\n var cmpY = (0, _flp.cmp)(a.point.y, b.point.y);\n if (cmpY !== 0) return cmpY;\n\n // Points are equal, so go ahead and link these events.\n // This will cascade and possibly mark segments coincident.\n a.link(b);\n }\n\n // favor right events over left\n if (a.isLeft !== b.isLeft) return a.isLeft ? 1 : -1;\n\n // favor vertical segments for left events, and non-vertical for right\n // https://github.com/mfogel/polygon-clipping/issues/29\n if (a.segment.isVertical && !b.segment.isVertical) return a.isLeft ? 1 : -1;\n if (!a.segment.isVertical && b.segment.isVertical) return a.isLeft ? -1 : 1;\n\n // favor events where the line segment is lower\n var pointSegCmp = a.segment.comparePoint(b.otherSE.point);\n if (pointSegCmp !== 0) return pointSegCmp > 0 ? -1 : 1;\n\n // as a tie-breaker, favor lower segment creation id\n var aId = a.segment.ringIn.id;\n var bId = b.segment.ringIn.id;\n if (aId !== bId) return aId < bId ? -1 : 1;\n\n // NOTE: We don't sort on segment length because that changes\n // as segments are divided.\n\n // they appear to be the same point... are they?\n if (a === b) return 0;\n\n throw new Error('SweepEvent comparison failed at [' + a.point.x + ', ' + a.point.y + ']... ' + 'equal but not identical?');\n }\n\n // Warning: input will be modified and re-used (for performance)\n\n }]);\n\n function SweepEvent(point) {\n _classCallCheck(this, SweepEvent);\n\n if (point.events === undefined) point.events = [this];else point.events.push(this);\n this.point = point;\n }\n\n _createClass(SweepEvent, [{\n key: 'link',\n value: function link(other) {\n if (other.point === this.point) {\n throw new Error('Tried to link already linked events');\n }\n var numOriginalEvents = this.point.events.length;\n var otherEvents = other.point.events;\n for (var i = 0, iMax = otherEvents.length; i < iMax; i++) {\n var evt = otherEvents[i];\n this.point.events.push(evt);\n evt.point = this.point;\n for (var j = 0, jMax = numOriginalEvents; j < jMax; j++) {\n if (this.point.events[j].otherSE.point === evt.otherSE.point) {\n this.point.events[j].segment.registerCoincident(evt.segment);\n }\n }\n }\n }\n }, {\n key: 'getAvailableLinkedEvents',\n value: function getAvailableLinkedEvents() {\n // point.events is always of length 2 or greater\n var events = [];\n for (var i = 0, iMax = this.point.events.length; i < iMax; i++) {\n var evt = this.point.events[i];\n if (evt !== this && !evt.segment.ringOut && evt.segment.isInResult) {\n events.push(evt);\n }\n }\n return events;\n }\n\n /**\n * Returns a comparator function for sorting linked events that will\n * favor the event that will give us the smallest left-side angle.\n * All ring construction starts as low as possible heading to the right,\n * so by always turning left as sharp as possible we'll get polygons\n * without uncessary loops & holes.\n *\n * The comparator function has a compute cache such that it avoids\n * re-computing already-computed values.\n */\n\n }, {\n key: 'getLeftmostComparator',\n value: function getLeftmostComparator(baseEvent) {\n var _this = this;\n\n var cache = new Map();\n\n var fillCache = function fillCache(linkedEvent) {\n var nextEvent = linkedEvent.otherSE;\n cache.set(linkedEvent, {\n sine: (0, _vector.sineOfAngle)(_this.point, baseEvent.point, nextEvent.point),\n cosine: (0, _vector.cosineOfAngle)(_this.point, baseEvent.point, nextEvent.point)\n });\n };\n\n return function (a, b) {\n if (!cache.has(a)) fillCache(a);\n if (!cache.has(b)) fillCache(b);\n\n var _cache$get = cache.get(a),\n asine = _cache$get.sine,\n acosine = _cache$get.cosine;\n\n var _cache$get2 = cache.get(b),\n bsine = _cache$get2.sine,\n bcosine = _cache$get2.cosine;\n\n var cmpZeroASine = (0, _flp.cmp)(asine, 0);\n var cmpZeroBSine = (0, _flp.cmp)(bsine, 0);\n\n if (cmpZeroASine >= 0 && cmpZeroBSine >= 0) return (0, _flp.cmp)(bcosine, acosine);\n if (cmpZeroASine < 0 && cmpZeroBSine < 0) return (0, _flp.cmp)(acosine, bcosine);\n return (0, _flp.cmp)(bsine, asine);\n };\n }\n }, {\n key: 'isLeft',\n get: function get() {\n return this === this.segment.leftSE;\n }\n }, {\n key: 'isRight',\n get: function get() {\n return this === this.segment.rightSE;\n }\n }, {\n key: 'isOrientationCorrect',\n get: function get() {\n var ptCmp = (0, _flp.cmpPoints)(this.point, this.otherSE.point);\n if (ptCmp < 0) return this.isLeft;\n if (ptCmp > 0) return this.isRight;\n throw new Error(\"Degenerate segment encountered\");\n }\n }, {\n key: 'otherSE',\n get: function get() {\n return this.segment.getOtherSE(this);\n }\n }]);\n\n return SweepEvent;\n}();\n\nexports.default = SweepEvent;\nmodule.exports = exports['default'];\n\n//# sourceURL=webpack://polygon-clipping/./src/sweep-event.js?"); /***/ }), @@ -236,7 +236,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _splaytree = __webpack_require__(/*! splaytree */ \"./node_modules/splaytree/index.js\");\n\nvar _splaytree2 = _interopRequireDefault(_splaytree);\n\nvar _segment = __webpack_require__(/*! ./segment */ \"./src/segment.js\");\n\nvar _segment2 = _interopRequireDefault(_segment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * NOTE: We must be careful not to change any segments while\n * they are in the SplayTree. AFAIK, there's no way to tell\n * the tree to rebalance itself - thus before splitting\n * a segment that's in the tree, we remove it from the tree,\n * do the split, then re-insert it. (Even though splitting a\n * segment *shouldn't* change its correct position in the\n * sweep line tree, the reality is because of rounding errors,\n * it sometimes does.)\n */\n\nvar SweepLine = function () {\n function SweepLine() {\n var comparator = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _segment2.default.compare;\n\n _classCallCheck(this, SweepLine);\n\n this.tree = new _splaytree2.default(comparator);\n this.segments = [];\n }\n\n _createClass(SweepLine, [{\n key: 'process',\n value: function process(event) {\n var segment = event.segment;\n var newEvents = [];\n var node = event.isLeft ? this.tree.insert(segment) : this.tree.find(segment);\n\n var prevNode = this.tree.prev(node);\n var prevSeg = prevNode ? prevNode.key : null;\n\n var nextNode = this.tree.next(node);\n var nextSeg = nextNode ? nextNode.key : null;\n\n if (event.isLeft) {\n var mySplitters = [];\n\n // Check for intersections against the previous segment in the sweep line\n if (prevSeg) {\n var prevInters = prevSeg.getIntersections(segment);\n if (prevInters.length > 0) {\n var newEventsFromSplit = this._possibleSplit(prevSeg, prevInters);\n for (var i = 0, iMax = newEventsFromSplit.length; i < iMax; i++) {\n newEvents.push(newEventsFromSplit[i]);\n }\n for (var _i = 0, _iMax = prevInters.length; _i < _iMax; _i++) {\n var pt = prevInters[_i];\n if (!segment.isAnEndpoint(pt)) mySplitters.push(pt);\n }\n }\n }\n\n // Check for intersections against the next segment in the sweep line\n if (nextSeg) {\n var nextInters = nextSeg.getIntersections(segment);\n if (nextInters.length > 0) {\n var _newEventsFromSplit = this._possibleSplit(nextSeg, nextInters);\n for (var _i2 = 0, _iMax2 = _newEventsFromSplit.length; _i2 < _iMax2; _i2++) {\n newEvents.push(_newEventsFromSplit[_i2]);\n }\n for (var _i3 = 0, _iMax3 = nextInters.length; _i3 < _iMax3; _i3++) {\n var _pt = nextInters[_i3];\n if (!segment.isAnEndpoint(_pt)) mySplitters.push(_pt);\n }\n }\n }\n\n // did we get some intersections?\n if (newEvents.length > 0 || mySplitters.length > 0) {\n this.tree.remove(segment);\n\n if (mySplitters.length > 0) {\n // split ourselves\n var _newEventsFromSplit2 = segment.split(mySplitters);\n for (var _i4 = 0, _iMax4 = _newEventsFromSplit2.length; _i4 < _iMax4; _i4++) {\n newEvents.push(_newEventsFromSplit2[_i4]);\n }\n }\n\n // Make sure sweep line ordering is totally consistent for later\n // use with the segment 'prev' pointers - re-do the current event.\n newEvents.push(event);\n } else {\n this.segments.push(segment);\n segment.registerPrev(prevSeg);\n }\n } else {\n // event.isRight\n\n // since we're about to be removed from the sweep line, check for\n // intersections between our previous and next segments\n if (prevSeg && nextSeg) {\n var inters = prevSeg.getIntersections(nextSeg);\n if (inters.length > 0) {\n var _newEventsFromSplit3 = this._possibleSplit(prevSeg, inters);\n for (var _i5 = 0, _iMax5 = _newEventsFromSplit3.length; _i5 < _iMax5; _i5++) {\n newEvents.push(_newEventsFromSplit3[_i5]);\n }\n _newEventsFromSplit3 = this._possibleSplit(nextSeg, inters);\n for (var _i6 = 0, _iMax6 = _newEventsFromSplit3.length; _i6 < _iMax6; _i6++) {\n newEvents.push(_newEventsFromSplit3[_i6]);\n }\n }\n }\n\n this.tree.remove(segment);\n }\n\n // sometimes, becaues of rounding errors, we need to resort events in the queue\n // https://github.com/mfogel/polygon-clipping/issues/29\n for (var _i7 = 0, _iMax7 = newEvents.length; _i7 < _iMax7; _i7++) {\n var evt = newEvents[_i7];\n if (!evt.isOrientationCorrect) evt.segment.swapEvents();\n }\n\n return newEvents;\n }\n }, {\n key: '_possibleSplit',\n value: function _possibleSplit(segment, intersections) {\n var splitters = [];\n for (var i = 0, iMax = intersections.length; i < iMax; i++) {\n var pt = intersections[i];\n if (!segment.isAnEndpoint(pt)) splitters.push(pt);\n }\n\n var newEvents = [];\n if (splitters.length > 0) {\n // Sometimes, because of rounding errors, splitting segments can cause their\n // ordering to change, making them un-findable in the sweep line tree.\n // To avoid this, we remove and re-insert the segments while splitting.\n for (var _i8 = 0, _iMax8 = segment.coincidents.length; _i8 < _iMax8; _i8++) {\n this.tree.remove(segment.coincidents[_i8]);\n }\n newEvents = segment.split(splitters);\n for (var _i9 = 0, _iMax9 = segment.coincidents.length; _i9 < _iMax9; _i9++) {\n this.tree.insert(segment.coincidents[_i9]);\n }\n }\n return newEvents;\n }\n }]);\n\n return SweepLine;\n}();\n\nexports.default = SweepLine;\nmodule.exports = exports['default'];\n\n//# sourceURL=webpack://polygon-clipping/./src/sweep-line.js?"); +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _splaytree = __webpack_require__(/*! splaytree */ \"./node_modules/splaytree/index.js\");\n\nvar _splaytree2 = _interopRequireDefault(_splaytree);\n\nvar _segment = __webpack_require__(/*! ./segment */ \"./src/segment.js\");\n\nvar _segment2 = _interopRequireDefault(_segment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * NOTE: We must be careful not to change any segments while\n * they are in the SplayTree. AFAIK, there's no way to tell\n * the tree to rebalance itself - thus before splitting\n * a segment that's in the tree, we remove it from the tree,\n * do the split, then re-insert it. (Even though splitting a\n * segment *shouldn't* change its correct position in the\n * sweep line tree, the reality is because of rounding errors,\n * it sometimes does.)\n */\n\nvar SweepLine = function () {\n function SweepLine() {\n var comparator = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _segment2.default.compare;\n\n _classCallCheck(this, SweepLine);\n\n this.tree = new _splaytree2.default(comparator);\n this.segments = [];\n }\n\n _createClass(SweepLine, [{\n key: 'process',\n value: function process(event) {\n var segment = event.segment;\n var newEvents = [];\n var node = event.isLeft ? this.tree.insert(segment) : this.tree.find(segment);\n\n var prevNode = this.tree.prev(node);\n var prevSeg = prevNode ? prevNode.key : null;\n\n var nextNode = this.tree.next(node);\n var nextSeg = nextNode ? nextNode.key : null;\n\n if (event.isLeft) {\n var mySplitters = [];\n\n // Check for intersections against the previous segment in the sweep line\n if (prevSeg) {\n var prevInters = prevSeg.getIntersections(segment);\n if (prevInters.length > 0) {\n var newEventsFromSplit = this._possibleSplit(prevSeg, prevInters);\n for (var i = 0, iMax = newEventsFromSplit.length; i < iMax; i++) {\n newEvents.push(newEventsFromSplit[i]);\n }\n for (var _i = 0, _iMax = prevInters.length; _i < _iMax; _i++) {\n var pt = prevInters[_i];\n if (!segment.isAnEndpoint(pt)) mySplitters.push(pt);\n }\n }\n }\n\n // Check for intersections against the next segment in the sweep line\n if (nextSeg) {\n var nextInters = nextSeg.getIntersections(segment);\n if (nextInters.length > 0) {\n var _newEventsFromSplit = this._possibleSplit(nextSeg, nextInters);\n for (var _i2 = 0, _iMax2 = _newEventsFromSplit.length; _i2 < _iMax2; _i2++) {\n newEvents.push(_newEventsFromSplit[_i2]);\n }\n for (var _i3 = 0, _iMax3 = nextInters.length; _i3 < _iMax3; _i3++) {\n var _pt = nextInters[_i3];\n if (!segment.isAnEndpoint(_pt)) mySplitters.push(_pt);\n }\n }\n }\n\n // did we get some intersections?\n if (newEvents.length > 0 || mySplitters.length > 0) {\n this.tree.remove(segment);\n\n if (mySplitters.length > 0) {\n // split ourselves\n var _newEventsFromSplit2 = segment.split(mySplitters);\n for (var _i4 = 0, _iMax4 = _newEventsFromSplit2.length; _i4 < _iMax4; _i4++) {\n newEvents.push(_newEventsFromSplit2[_i4]);\n }\n }\n\n // Make sure sweep line ordering is totally consistent for later\n // use with the segment 'prev' pointers - re-do the current event.\n newEvents.push(event);\n } else {\n this.segments.push(segment);\n segment.registerPrev(prevSeg);\n }\n } else {\n // event.isRight\n\n // since we're about to be removed from the sweep line, check for\n // intersections between our previous and next segments\n if (prevSeg && nextSeg) {\n var inters = prevSeg.getIntersections(nextSeg);\n if (inters.length > 0) {\n var _newEventsFromSplit3 = this._possibleSplit(prevSeg, inters);\n for (var _i5 = 0, _iMax5 = _newEventsFromSplit3.length; _i5 < _iMax5; _i5++) {\n newEvents.push(_newEventsFromSplit3[_i5]);\n }\n _newEventsFromSplit3 = this._possibleSplit(nextSeg, inters);\n for (var _i6 = 0, _iMax6 = _newEventsFromSplit3.length; _i6 < _iMax6; _i6++) {\n newEvents.push(_newEventsFromSplit3[_i6]);\n }\n }\n }\n\n this.tree.remove(segment);\n }\n\n // sometimes, becaues of rounding errors, we need to resort events in the queue\n // https://github.com/mfogel/polygon-clipping/issues/29\n for (var _i7 = 0, _iMax7 = newEvents.length; _i7 < _iMax7; _i7++) {\n var evt = newEvents[_i7];\n if (!evt.isOrientationCorrect) evt.segment.swapEvents();\n }\n\n return newEvents;\n }\n }, {\n key: '_possibleSplit',\n value: function _possibleSplit(segment, intersections) {\n var splitters = [];\n for (var i = 0, iMax = intersections.length; i < iMax; i++) {\n var pt = intersections[i];\n if (!segment.isAnEndpoint(pt)) splitters.push(pt);\n }\n\n var newEvents = [];\n if (splitters.length > 0) {\n // Sometimes, because of rounding errors, splitting segments can cause their\n // ordering to change, making them un-findable in the sweep line tree.\n // To avoid this, we remove and re-insert the segments while splitting.\n // Also, keep in mind coincidents can change while splitting. (re: #44)\n var nodes = [];\n for (var _i8 = 0, _iMax8 = segment.coincidents.length; _i8 < _iMax8; _i8++) {\n var node = this.tree.find(segment.coincidents[_i8]);\n if (node !== null) {\n nodes.push(node);\n this.tree.remove(node.key);\n }\n }\n newEvents = segment.split(splitters);\n for (var _i9 = 0, _iMax9 = nodes.length; _i9 < _iMax9; _i9++) {\n this.tree.insert(nodes[_i9].key);\n }\n }\n return newEvents;\n }\n }]);\n\n return SweepLine;\n}();\n\nexports.default = SweepLine;\nmodule.exports = exports['default'];\n\n//# sourceURL=webpack://polygon-clipping/./src/sweep-line.js?"); /***/ }), diff --git a/dist/polygon-clipping.min.js b/dist/polygon-clipping.min.js index 118ab55..fbb65e5 100644 --- a/dist/polygon-clipping.min.js +++ b/dist/polygon-clipping.min.js @@ -1 +1 @@ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports["polygon-clipping"]=e():t["polygon-clipping"]=e()}("undefined"!=typeof self?self:this,function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=12)}([function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),void 0===Number.EPSILON&&(Number.EPSILON=Math.pow(2,-52));var r=Number.EPSILON*Number.EPSILON;e.cmp=function(t,e){return-Number.EPSILON=r*n*i)return n=r*n*i)return n0?-1:1;var s=t.segment.ringIn.id,u=e.segment.ringIn.id;if(s!==u)return s=0&&c>=0?(0,i.cmp)(f,u):a<0&&c<0?(0,i.cmp)(u,f):(0,i.cmp)(h,s)}}},{key:"isLeft",get:function(){return this===this.segment.leftSE}},{key:"isRight",get:function(){return this===this.segment.rightSE}},{key:"isOrientationCorrect",get:function(){var t=(0,i.cmpPoints)(this.point,this.otherSE.point);if(t<0)return this.isLeft;if(t>0)return this.isRight;throw new Error("Degenerate segment encountered")}},{key:"otherSE",get:function(){return this.segment.getOtherSE(this)}}]),t}();e.default=s,t.exports=e.default},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.perpendicular=e.intersection=e.verticalIntersection=e.horizontalIntersection=e.cosineOfAngle=e.sineOfAngle=e.length=e.compareVectorAngles=e.dotProduct=e.crossProduct=void 0;var r=n(0),i=e.crossProduct=function(t,e){return t.x*e.y-t.y*e.x},o=e.dotProduct=function(t,e){return t.x*e.x+t.y*e.y},s=(e.compareVectorAngles=function(t,e,n){var o={x:e.x-t.x,y:e.y-t.y},s={x:n.x-t.x,y:n.y-t.y},u=i(o,s);return(0,r.cmp)(u,0)},e.length=function(t){return Math.sqrt(o(t,t))}),u=(e.sineOfAngle=function(t,e,n){var r={x:e.x-t.x,y:e.y-t.y},o={x:n.x-t.x,y:n.y-t.y};return i(o,r)/s(o)/s(r)},e.cosineOfAngle=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 o(i,r)/s(i)/s(r)},e.horizontalIntersection=function(t,e,n){return 0===e.y?null:{x:t.x+e.x/e.y*(n-t.y),y:n}}),l=e.verticalIntersection=function(t,e,n){return 0===e.x?null:{x:n,y:t.y+e.y/e.x*(n-t.x)}};e.intersection=function(t,e,n,r){if(0===e.x)return l(n,r,t.x);if(0===r.x)return l(t,e,n.x);if(0===e.y)return u(n,r,t.y);if(0===r.y)return u(t,e,n.y);var o=i(e,r);if(0==o)return null;var s={x:n.x-t.x,y:n.y-t.y},h=i(s,e)/o,f=i(s,r)/o;return{x:(t.x+f*e.x+n.x+h*r.x)/2,y:(t.y+f*e.y+n.y+h*r.y)/2}},e.perpendicular=function(t){return{x:-t.y,y:t.x}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n0)return 1===e.comparePoint(t.leftSE.point)?1:-1;var a=(0,u.cmp)(r,o);return 0===a?t.isVertical!==e.isVertical?t.isVertical?1:-1:t.comparePoint(e.rightSE.point)>0?-1:1:a}if(0!==f)return f;if(t.ringIn.id!==e.ringIn.id)return t.ringIn.id to ["+t.rightSE.point.x+", "+t.rightSE.point.y+"]) failed... segments equal but not identical?")}}]),r(t,[{key:"swapEvents",value:function(){var t=this.leftSE;this.leftSE=this.rightSE,this.rightSE=t}},{key:"getOtherSE",value:function(t){if(t===this.leftSE)return this.rightSE;if(t===this.rightSE)return this.leftSE;throw new Error("may only be called by own sweep events")}},{key:"isAnEndpoint",value:function(t){return 0===(0,u.cmpPoints)(t,this.leftSE.point)||0===(0,u.cmpPoints)(t,this.rightSE.point)}},{key:"isPointOn",value:function(t){return(0,s.isInBbox)(this.bbox,t)&&0===this.comparePoint(t)}},{key:"comparePoint",value:function(t){if(this.isAnEndpoint(t))return 0;var e=this.vector,n=(0,l.perpendicular)(e),r=(0,l.intersection)(this.leftSE.point,e,t,n),i=(0,u.cmp)(t.y,r.y);return 0!==i?i:(0,u.cmp)(r.x,t.x)}},{key:"getIntersections",value:function(t){var e=(0,s.getBboxOverlap)(this.bbox,t.bbox);if(null===e)return[];for(var n=[],r=(0,s.getUniqueCorners)(e),i=0,o=r.length;i0)return n;var h=(0,l.intersection)(this.leftSE.point,this.vector,t.leftSE.point,t.vector);return null!==h&&(0,s.isInBbox)(e,h)?[h]:[]}},{key:"split",value:function(e){e.sort(u.cmpPoints);for(var n=[],r=0;r0)for(var E=f[0].split(e),x=0,_=E.length;x<_;x++)a.push(E[x]);return a}},{key:"registerPrev",value:function(t){this.prev=t,this._clearCache()}},{key:"registerRingOut",value:function(t){this.ringOut=t}},{key:"registerCoincident",value:function(t){if(this.coincidents!=t.coincidents){for(var e=t.coincidents,n=0,r=e.length;ne?t:e}}}},{key:"vector",get:function(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}},{key:"isVertical",get:function(){return 0===(0,u.cmp)(this.leftSE.point.x,this.rightSE.point.x)}},{key:"prevInResult",get:function(){var t="prevInResult";return void 0===this._cache[t]&&(this._cache[t]=this["_"+t]()),this._cache[t]}},{key:"prevNotCoincident",get:function(){var t="prevNotCoincident";return void 0===this._cache[t]&&(this._cache[t]=this["_"+t]()),this._cache[t]}},{key:"sweepLineEntersRing",get:function(){var t="sweepLineEntersRing";return void 0===this._cache[t]&&(this._cache[t]=this["_"+t]()),this._cache[t]}},{key:"sweepLineEntersPoly",get:function(){return!!this.isValidEdgeForPoly&&this.ringIn.isExterior===this.sweepLineEntersRing}},{key:"sweepLineExitsPoly",get:function(){return!!this.isValidEdgeForPoly&&this.ringIn.isExterior!==this.sweepLineEntersRing}},{key:"ringsInsideOf",get:function(){var t="ringsInsideOf";return void 0===this._cache[t]&&(this._cache[t]=this["_"+t]()),this._cache[t]}},{key:"isValidEdgeForPoly",get:function(){var t="isValidEdgeForPoly";return void 0===this._cache[t]&&(this._cache[t]=this["_"+t]()),this._cache[t]}},{key:"isInResult",get:function(){var t="isInResult";return void 0===this._cache[t]&&(this._cache[t]=this["_"+t]()),this._cache[t]}}],[{key:"fromRing",value:function(e,n,r){var i=void 0,s=void 0,l=(0,u.cmpPoints)(e,n);if(l<0)i=new o.default(e),s=new o.default(n);else{if(!(l>0))throw new Error("Tried to create degenerate segment at ["+e.x+", "+n.y+"]");i=new o.default(n),s=new o.default(e)}return new t(i,s,r)}}]),t}();e.default=f,t.exports=e.default},function(t,e,n){"use strict";n.r(e),n.d(e,"default",function(){return l});class r{constructor(t,e){this.key=t,this.data=e,this.left=null,this.right=null}}function i(t,e,n){if(null===e)return e;let i,o,s;const u=new r;for(i=o=u;;){const r=n(t,e.key);if(r<0){if(null===e.left)break;if(n(t,e.left.key)<0&&(s=e.left,e.left=s.right,s.right=e,null===(e=s).left))break;o.left=e,o=e,e=e.left}else{if(!(r>0))break;if(null===e.right)break;if(n(t,e.right.key)>0&&(s=e.right,e.right=s.left,s.left=e,null===(e=s).right))break;i.right=e,i=e,e=e.right}}return i.right=e.left,o.left=e.right,e.left=u.right,e.right=u.left,e}function o(t,e,n,o,s){const u=new r(t,e);if(s._size++,null===n)return u.left=u.right=null,u;const l=o(t,(n=i(t,n,o)).key);return l<0?(u.left=n.left,u.right=n,n.left=null):l>=0&&(u.right=n.right,u.left=n,n.right=null),u}function s(t,e,n,r){let o;return null===e?null:t===(e=i(t,e,n)).key?(null===e.left?o=e.right:(o=i(t,e.left,n)).right=e.right,r._size--,o):e}function u(t,e,n){let r,o;if(null===e)r=o=null;else{const s=n((e=i(t,e,n)).key,t);0===s?(r=e.left,o=e.right):s<0?(o=e.right,e.right=null,r=e):(r=e.left,e.left=null,o=e)}return{left:r,right:o}}class l{constructor(t=function(t,e){return t>e?1:t0&&(u.right=n.right,u.left=n,n.right=null),s._size++,u)}(t,e,this._root,this._comparator,this)}remove(t){this._root=s(t,this._root,this._comparator,this)}pop(){let t=this._root;if(t){for(;t.left;)t=t.left;return this._root=i(t.key,this._root,this._comparator),this._root=s(t.key,this._root,this._comparator,this),{key:t.key,data:t.data}}return null}findStatic(t){let e=this._root;const n=this._comparator;for(;e;){const r=n(t,e.key);if(0===r)return e;e=r<0?e.left:e.right}return null}find(t){return this._root&&(this._root=i(t,this._root,this._comparator),0!==this._comparator(t,this._root.key))?null:this._root}contains(t){let e=this._root;const n=this._comparator;for(;e;){const r=n(t,e.key);if(0===r)return!0;e=r<0?e.left:e.right}return!1}forEach(t,e){let n=this._root;const r=[];let i=!1;for(;!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}range(t,e,n,r){const i=[],o=this._comparator;let s,u=this._root;for(;0!==i.length||u;)if(u)i.push(u),u=u.left;else{if((s=o((u=i.pop()).key,e))>0)break;if(o(u.key,t)>=0&&n.call(r,u))return this;u=u.right}return this}keys(){const t=[];return this.forEach(({key:e})=>t.push(e)),t}values(){const t=[];return this.forEach(({data:e})=>t.push(e)),t}min(){return this._root?this.minNode(this._root).key:null}max(){return this._root?this.maxNode(this._root).key:null}minNode(t=this._root){if(t)for(;t.left;)t=t.left;return t}maxNode(t=this._root){if(t)for(;t.right;)t=t.right;return t}at(t){let e=this._root,n=!1,r=0;const i=[];for(;!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}next(t){let e=this._root,n=null;if(t.right){for(n=t.right;n.left;)n=n.left;return n}const r=this._comparator;for(;e;){const i=r(t.key,e.key);if(0===i)break;i<0?(n=e,e=e.left):e=e.right}return n}prev(t){let e=this._root,n=null;if(null!==t.left){for(n=t.left;n.right;)n=n.right;return n}const r=this._comparator;for(;e;){const i=r(t.key,e.key);if(0===i)break;i<0?e=e.left:(n=e,e=e.right)}return n}clear(){return this._root=null,this._size=0,this}toList(){return function(t){var e=t,n=[],r=!1;const i={next:null};let o=i;for(;!r;)e?(n.push(e),e=e.left):n.length>0?e=(e=o=o.next=n.pop()).right:r=!0;return o.next=null,i.next}(this._root)}load(t=[],e=[],n=!1){let r=t.length;const i=this._comparator;if(n&&function t(e,n,r,i,o){if(r>=i)return;const s=e[r+i>>1];let u=r-1;let l=i+1;for(;;){do{u++}while(o(e[u],s)<0);do{l--}while(o(e[l],s)>0);if(u>=l)break;let t=e[u];e[u]=e[l],e[l]=t,t=n[u],n[u]=n[l],n[l]=t}t(e,n,r,l,o);t(e,n,l+1,i,o)}(t,e,0,r-1,i),null===this._root)this._root=function t(e,n,r,i,o){const s=o-i;if(s>0){const u=i+Math.floor(s/2),l=n[u],h=r[u],f={key:l,data:h,parent:e};return f.left=t(f,n,r,i,u),f.right=t(f,n,r,u+1,o),f}return null}(this._root,t,e,0,r),this._size=r;else{const n=function(t,e,n=((t,e)=>t-e)){const r={};let i=r,o=t,s=e;for(;null!==o&&null!==s;)n(o.key,s.key)<0?(i.next=o,o=o.next):(i.next=s,s=s.next),i=i.next;null!==o?i.next=o:null!==s&&(i.next=s);return r.next}(this.toList(),function(t,e){const n={next:null};let r=n;for(let n=0;n0){const 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:n},0,r)}return this}isEmpty(){return null===this._root}get size(){return this._size}toString(t=(t=>t.key)){const e=[];return function t(e,n,r,i,o){if(e){i(`${n}${r?"└── ":"├── "}${o(e)}\n`);const s=n+(r?" ":"│ ");e.left&&t(e.left,s,!1,i,o),e.right&&t(e.right,s,!0,i,o)}}(this._root,"",!0,t=>e.push(t),t),e.join("")}update(t,e,n){const r=this._comparator;let{left:s,right:l}=u(t,this._root,r);this._size--,r(t,e)<0?l=o(e,n,l,r,this):s=o(e,n,s,r,this),this._root=function(t,e,n){return null===e?t:null===t?e:((e=i(t.key,e,n)).left=t,e)}(s,l,r)}split(t){return u(t,this._root,this._comparator)}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:o.default.compare;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.tree=new i.default(e),this.segments=[]}return r(t,[{key:"process",value:function(t){var e=t.segment,n=[],r=t.isLeft?this.tree.insert(e):this.tree.find(e),i=this.tree.prev(r),o=i?i.key:null,s=this.tree.next(r),u=s?s.key:null;if(t.isLeft){var l=[];if(o){var h=o.getIntersections(e);if(h.length>0){for(var f=this._possibleSplit(o,h),a=0,c=f.length;a0){for(var d=this._possibleSplit(u,v),m=0,E=d.length;m0||l.length>0){if(this.tree.remove(e),l.length>0)for(var k=e.split(l),P=0,O=k.length;P0){for(var S=this._possibleSplit(o,w),I=0,R=S.length;I0){for(var u=0,l=t.coincidents.length;u0&&(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;o=(i=o.prevInResult)?i.prevInResult:null}}},{key:"enclosingRing",get:function(){return this._getCached("enclosingRing")}},{key:"isExteriorRing",get:function(){return this._getCached("isExteriorRing")}}]),t}();var h=e.PolyOut=function(){function t(e){l(this,t),this.exteriorRing=e,e.registerPoly(this),this.interiorRings=[]}return i(t,[{key:"addInterior",value:function(t){this.interiorRings.push(t),t.registerPoly(this)}},{key:"getGeom",value:function(){var t=[this.exteriorRing.getGeom()];if(null===t[0])return null;for(var e=0,n=this.interiorRings.length;e2)throw new Error("Input has more than two coordinates. Only 2-dimensional polygons supported.");e[n][i].push({x:t[n][i][s][0],y: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({x:t[n][i][0],y:t[n][i][1]})}}}return e},e.forceMultiPoly=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")},e.cleanMultiPoly=function(t){for(var e=0;e0;)t.pop()}})},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e,n){for(var f=[i.pointsAsObjects(e)],a=0,c=n.length;a1?e-1:0),o=1;o1?e-1:0),o=1;o1?e-1:0),o=1;o1?e-1:0),o=1;o=r*n*i)return n=r*n*i)return n0?-1:1;var s=t.segment.ringIn.id,u=e.segment.ringIn.id;if(s!==u)return s=0&&c>=0?(0,i.cmp)(f,u):a<0&&c<0?(0,i.cmp)(u,f):(0,i.cmp)(h,s)}}},{key:"isLeft",get:function(){return this===this.segment.leftSE}},{key:"isRight",get:function(){return this===this.segment.rightSE}},{key:"isOrientationCorrect",get:function(){var t=(0,i.cmpPoints)(this.point,this.otherSE.point);if(t<0)return this.isLeft;if(t>0)return this.isRight;throw new Error("Degenerate segment encountered")}},{key:"otherSE",get:function(){return this.segment.getOtherSE(this)}}]),t}();e.default=s,t.exports=e.default},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.perpendicular=e.intersection=e.verticalIntersection=e.horizontalIntersection=e.cosineOfAngle=e.sineOfAngle=e.length=e.compareVectorAngles=e.dotProduct=e.crossProduct=void 0;var r=n(0),i=e.crossProduct=function(t,e){return t.x*e.y-t.y*e.x},o=e.dotProduct=function(t,e){return t.x*e.x+t.y*e.y},s=(e.compareVectorAngles=function(t,e,n){var o={x:e.x-t.x,y:e.y-t.y},s={x:n.x-t.x,y:n.y-t.y},u=i(o,s);return(0,r.cmp)(u,0)},e.length=function(t){return Math.sqrt(o(t,t))}),u=(e.sineOfAngle=function(t,e,n){var r={x:e.x-t.x,y:e.y-t.y},o={x:n.x-t.x,y:n.y-t.y};return i(o,r)/s(o)/s(r)},e.cosineOfAngle=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 o(i,r)/s(i)/s(r)},e.horizontalIntersection=function(t,e,n){return 0===e.y?null:{x:t.x+e.x/e.y*(n-t.y),y:n}}),l=e.verticalIntersection=function(t,e,n){return 0===e.x?null:{x:n,y:t.y+e.y/e.x*(n-t.x)}};e.intersection=function(t,e,n,r){if(0===e.x)return l(n,r,t.x);if(0===r.x)return l(t,e,n.x);if(0===e.y)return u(n,r,t.y);if(0===r.y)return u(t,e,n.y);var o=i(e,r);if(0==o)return null;var s={x:n.x-t.x,y:n.y-t.y},h=i(s,e)/o,f=i(s,r)/o;return{x:(t.x+f*e.x+n.x+h*r.x)/2,y:(t.y+f*e.y+n.y+h*r.y)/2}},e.perpendicular=function(t){return{x:-t.y,y:t.x}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n0)return 1===e.comparePoint(t.leftSE.point)?1:-1;var a=(0,u.cmp)(r,o);return 0===a?t.isVertical!==e.isVertical?t.isVertical?1:-1:t.comparePoint(e.rightSE.point)>0?-1:1:a}if(0!==f)return f;if(t.ringIn.id!==e.ringIn.id)return t.ringIn.id to ["+t.rightSE.point.x+", "+t.rightSE.point.y+"]) failed... segments equal but not identical?")}}]),r(t,[{key:"swapEvents",value:function(){var t=this.leftSE;this.leftSE=this.rightSE,this.rightSE=t}},{key:"getOtherSE",value:function(t){if(t===this.leftSE)return this.rightSE;if(t===this.rightSE)return this.leftSE;throw new Error("may only be called by own sweep events")}},{key:"isAnEndpoint",value:function(t){return 0===(0,u.cmpPoints)(t,this.leftSE.point)||0===(0,u.cmpPoints)(t,this.rightSE.point)}},{key:"isPointOn",value:function(t){return(0,s.isInBbox)(this.bbox,t)&&0===this.comparePoint(t)}},{key:"comparePoint",value:function(t){if(this.isAnEndpoint(t))return 0;var e=this.vector,n=(0,l.perpendicular)(e),r=(0,l.intersection)(this.leftSE.point,e,t,n),i=(0,u.cmp)(t.y,r.y);return 0!==i?i:(0,u.cmp)(r.x,t.x)}},{key:"getIntersections",value:function(t){var e=(0,s.getBboxOverlap)(this.bbox,t.bbox);if(null===e)return[];for(var n=[],r=(0,s.getUniqueCorners)(e),i=0,o=r.length;i0)return n;var h=(0,l.intersection)(this.leftSE.point,this.vector,t.leftSE.point,t.vector);return null!==h&&(0,s.isInBbox)(e,h)?[h]:[]}},{key:"split",value:function(e){e.sort(u.cmpPoints);for(var n=[],r=0;r0)for(var E=f[0].split(e),x=0,_=E.length;x<_;x++)a.push(E[x]);return a}},{key:"registerPrev",value:function(t){this.prev=t,this._clearCache()}},{key:"registerRingOut",value:function(t){this.ringOut=t}},{key:"registerCoincident",value:function(t){if(this.coincidents!=t.coincidents){for(var e=t.coincidents,n=0,r=e.length;ne?t:e}}}},{key:"vector",get:function(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}},{key:"isVertical",get:function(){return 0===(0,u.cmp)(this.leftSE.point.x,this.rightSE.point.x)}},{key:"prevInResult",get:function(){var t="prevInResult";return void 0===this._cache[t]&&(this._cache[t]=this["_"+t]()),this._cache[t]}},{key:"prevNotCoincident",get:function(){var t="prevNotCoincident";return void 0===this._cache[t]&&(this._cache[t]=this["_"+t]()),this._cache[t]}},{key:"sweepLineEntersRing",get:function(){var t="sweepLineEntersRing";return void 0===this._cache[t]&&(this._cache[t]=this["_"+t]()),this._cache[t]}},{key:"sweepLineEntersPoly",get:function(){return!!this.isValidEdgeForPoly&&this.ringIn.isExterior===this.sweepLineEntersRing}},{key:"sweepLineExitsPoly",get:function(){return!!this.isValidEdgeForPoly&&this.ringIn.isExterior!==this.sweepLineEntersRing}},{key:"ringsInsideOf",get:function(){var t="ringsInsideOf";return void 0===this._cache[t]&&(this._cache[t]=this["_"+t]()),this._cache[t]}},{key:"isValidEdgeForPoly",get:function(){var t="isValidEdgeForPoly";return void 0===this._cache[t]&&(this._cache[t]=this["_"+t]()),this._cache[t]}},{key:"isInResult",get:function(){var t="isInResult";return void 0===this._cache[t]&&(this._cache[t]=this["_"+t]()),this._cache[t]}}],[{key:"fromRing",value:function(e,n,r){var i=void 0,s=void 0,l=(0,u.cmpPoints)(e,n);if(l<0)i=new o.default(e),s=new o.default(n);else{if(!(l>0))throw new Error("Tried to create degenerate segment at ["+e.x+", "+n.y+"]");i=new o.default(n),s=new o.default(e)}return new t(i,s,r)}}]),t}();e.default=f,t.exports=e.default},function(t,e,n){"use strict";n.r(e),n.d(e,"default",function(){return l});class r{constructor(t,e){this.key=t,this.data=e,this.left=null,this.right=null}}function i(t,e,n){if(null===e)return e;let i,o,s;const u=new r;for(i=o=u;;){const r=n(t,e.key);if(r<0){if(null===e.left)break;if(n(t,e.left.key)<0&&(s=e.left,e.left=s.right,s.right=e,null===(e=s).left))break;o.left=e,o=e,e=e.left}else{if(!(r>0))break;if(null===e.right)break;if(n(t,e.right.key)>0&&(s=e.right,e.right=s.left,s.left=e,null===(e=s).right))break;i.right=e,i=e,e=e.right}}return i.right=e.left,o.left=e.right,e.left=u.right,e.right=u.left,e}function o(t,e,n,o,s){const u=new r(t,e);if(s._size++,null===n)return u.left=u.right=null,u;const l=o(t,(n=i(t,n,o)).key);return l<0?(u.left=n.left,u.right=n,n.left=null):l>=0&&(u.right=n.right,u.left=n,n.right=null),u}function s(t,e,n,r){let o;return null===e?null:t===(e=i(t,e,n)).key?(null===e.left?o=e.right:(o=i(t,e.left,n)).right=e.right,r._size--,o):e}function u(t,e,n){let r,o;if(null===e)r=o=null;else{const s=n((e=i(t,e,n)).key,t);0===s?(r=e.left,o=e.right):s<0?(o=e.right,e.right=null,r=e):(r=e.left,e.left=null,o=e)}return{left:r,right:o}}class l{constructor(t=function(t,e){return t>e?1:t0&&(u.right=n.right,u.left=n,n.right=null),s._size++,u)}(t,e,this._root,this._comparator,this)}remove(t){this._root=s(t,this._root,this._comparator,this)}pop(){let t=this._root;if(t){for(;t.left;)t=t.left;return this._root=i(t.key,this._root,this._comparator),this._root=s(t.key,this._root,this._comparator,this),{key:t.key,data:t.data}}return null}findStatic(t){let e=this._root;const n=this._comparator;for(;e;){const r=n(t,e.key);if(0===r)return e;e=r<0?e.left:e.right}return null}find(t){return this._root&&(this._root=i(t,this._root,this._comparator),0!==this._comparator(t,this._root.key))?null:this._root}contains(t){let e=this._root;const n=this._comparator;for(;e;){const r=n(t,e.key);if(0===r)return!0;e=r<0?e.left:e.right}return!1}forEach(t,e){let n=this._root;const r=[];let i=!1;for(;!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}range(t,e,n,r){const i=[],o=this._comparator;let s,u=this._root;for(;0!==i.length||u;)if(u)i.push(u),u=u.left;else{if((s=o((u=i.pop()).key,e))>0)break;if(o(u.key,t)>=0&&n.call(r,u))return this;u=u.right}return this}keys(){const t=[];return this.forEach(({key:e})=>t.push(e)),t}values(){const t=[];return this.forEach(({data:e})=>t.push(e)),t}min(){return this._root?this.minNode(this._root).key:null}max(){return this._root?this.maxNode(this._root).key:null}minNode(t=this._root){if(t)for(;t.left;)t=t.left;return t}maxNode(t=this._root){if(t)for(;t.right;)t=t.right;return t}at(t){let e=this._root,n=!1,r=0;const i=[];for(;!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}next(t){let e=this._root,n=null;if(t.right){for(n=t.right;n.left;)n=n.left;return n}const r=this._comparator;for(;e;){const i=r(t.key,e.key);if(0===i)break;i<0?(n=e,e=e.left):e=e.right}return n}prev(t){let e=this._root,n=null;if(null!==t.left){for(n=t.left;n.right;)n=n.right;return n}const r=this._comparator;for(;e;){const i=r(t.key,e.key);if(0===i)break;i<0?e=e.left:(n=e,e=e.right)}return n}clear(){return this._root=null,this._size=0,this}toList(){return function(t){var e=t,n=[],r=!1;const i={next:null};let o=i;for(;!r;)e?(n.push(e),e=e.left):n.length>0?e=(e=o=o.next=n.pop()).right:r=!0;return o.next=null,i.next}(this._root)}load(t=[],e=[],n=!1){let r=t.length;const i=this._comparator;if(n&&function t(e,n,r,i,o){if(r>=i)return;const s=e[r+i>>1];let u=r-1;let l=i+1;for(;;){do{u++}while(o(e[u],s)<0);do{l--}while(o(e[l],s)>0);if(u>=l)break;let t=e[u];e[u]=e[l],e[l]=t,t=n[u],n[u]=n[l],n[l]=t}t(e,n,r,l,o);t(e,n,l+1,i,o)}(t,e,0,r-1,i),null===this._root)this._root=function t(e,n,r,i,o){const s=o-i;if(s>0){const u=i+Math.floor(s/2),l=n[u],h=r[u],f={key:l,data:h,parent:e};return f.left=t(f,n,r,i,u),f.right=t(f,n,r,u+1,o),f}return null}(this._root,t,e,0,r),this._size=r;else{const n=function(t,e,n=((t,e)=>t-e)){const r={};let i=r,o=t,s=e;for(;null!==o&&null!==s;)n(o.key,s.key)<0?(i.next=o,o=o.next):(i.next=s,s=s.next),i=i.next;null!==o?i.next=o:null!==s&&(i.next=s);return r.next}(this.toList(),function(t,e){const n={next:null};let r=n;for(let n=0;n0){const 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:n},0,r)}return this}isEmpty(){return null===this._root}get size(){return this._size}toString(t=(t=>t.key)){const e=[];return function t(e,n,r,i,o){if(e){i(`${n}${r?"└── ":"├── "}${o(e)}\n`);const s=n+(r?" ":"│ ");e.left&&t(e.left,s,!1,i,o),e.right&&t(e.right,s,!0,i,o)}}(this._root,"",!0,t=>e.push(t),t),e.join("")}update(t,e,n){const r=this._comparator;let{left:s,right:l}=u(t,this._root,r);this._size--,r(t,e)<0?l=o(e,n,l,r,this):s=o(e,n,s,r,this),this._root=function(t,e,n){return null===e?t:null===t?e:((e=i(t.key,e,n)).left=t,e)}(s,l,r)}split(t){return u(t,this._root,this._comparator)}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:o.default.compare;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.tree=new i.default(e),this.segments=[]}return r(t,[{key:"process",value:function(t){var e=t.segment,n=[],r=t.isLeft?this.tree.insert(e):this.tree.find(e),i=this.tree.prev(r),o=i?i.key:null,s=this.tree.next(r),u=s?s.key:null;if(t.isLeft){var l=[];if(o){var h=o.getIntersections(e);if(h.length>0){for(var f=this._possibleSplit(o,h),a=0,c=f.length;a0){for(var d=this._possibleSplit(u,v),m=0,E=d.length;m0||l.length>0){if(this.tree.remove(e),l.length>0)for(var k=e.split(l),P=0,O=k.length;P0){for(var S=this._possibleSplit(o,w),I=0,R=S.length;I0){for(var u=[],l=0,h=t.coincidents.length;l0&&(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;o=(i=o.prevInResult)?i.prevInResult:null}}},{key:"enclosingRing",get:function(){return this._getCached("enclosingRing")}},{key:"isExteriorRing",get:function(){return this._getCached("isExteriorRing")}}]),t}();var h=e.PolyOut=function(){function t(e){l(this,t),this.exteriorRing=e,e.registerPoly(this),this.interiorRings=[]}return i(t,[{key:"addInterior",value:function(t){this.interiorRings.push(t),t.registerPoly(this)}},{key:"getGeom",value:function(){var t=[this.exteriorRing.getGeom()];if(null===t[0])return null;for(var e=0,n=this.interiorRings.length;e2)throw new Error("Input has more than two coordinates. Only 2-dimensional polygons supported.");e[n][i].push({x:t[n][i][s][0],y: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({x:t[n][i][0],y:t[n][i][1]})}}}return e},e.forceMultiPoly=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")},e.cleanMultiPoly=function(t){for(var e=0;e0;)t.pop()}})},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e,n){for(var f=[i.pointsAsObjects(e)],a=0,c=n.length;a1?e-1:0),o=1;o1?e-1:0),o=1;o1?e-1:0),o=1;o1?e-1:0),o=1;o=r*n*i)return n=r*n*i)return n0?-1:1;var a=t.segment.ringIn.id,s=e.segment.ringIn.id;if(a!==s)return a=0&&p>=0?(0,i.cmp)(c,s):f<0&&p<0?(0,i.cmp)(s,c):(0,i.cmp)(l,a)}}},{key:"isLeft",get:function(){return this===this.segment.leftSE}},{key:"isRight",get:function(){return this===this.segment.rightSE}},{key:"isOrientationCorrect",get:function(){var t=(0,i.cmpPoints)(this.point,this.otherSE.point);if(t<0)return this.isLeft;if(t>0)return this.isRight;throw new Error("Degenerate segment encountered")}},{key:"otherSE",get:function(){return this.segment.getOtherSE(this)}}]),t}();e.default=a,t.exports=e.default},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.perpendicular=e.intersection=e.verticalIntersection=e.horizontalIntersection=e.cosineOfAngle=e.sineOfAngle=e.length=e.compareVectorAngles=e.dotProduct=e.crossProduct=void 0;var r=n(0),i=e.crossProduct=function(t,e){return t.x*e.y-t.y*e.x},o=e.dotProduct=function(t,e){return t.x*e.x+t.y*e.y},a=(e.compareVectorAngles=function(t,e,n){var o={x:e.x-t.x,y:e.y-t.y},a={x:n.x-t.x,y:n.y-t.y},s=i(o,a);return(0,r.cmp)(s,0)},e.length=function(t){return Math.sqrt(o(t,t))}),s=(e.sineOfAngle=function(t,e,n){var r={x:e.x-t.x,y:e.y-t.y},o={x:n.x-t.x,y:n.y-t.y};return i(o,r)/a(o)/a(r)},e.cosineOfAngle=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 o(i,r)/a(i)/a(r)},e.horizontalIntersection=function(t,e,n){return 0===e.y?null:{x:t.x+e.x/e.y*(n-t.y),y:n}}),u=e.verticalIntersection=function(t,e,n){return 0===e.x?null:{x:n,y:t.y+e.y/e.x*(n-t.x)}};e.intersection=function(t,e,n,r){if(0===e.x)return u(n,r,t.x);if(0===r.x)return u(t,e,n.x);if(0===e.y)return s(n,r,t.y);if(0===r.y)return s(t,e,n.y);var o=i(e,r);if(0==o)return null;var a={x:n.x-t.x,y:n.y-t.y},l=i(a,e)/o,c=i(a,r)/o;return{x:(t.x+c*e.x+n.x+l*r.x)/2,y:(t.y+c*e.y+n.y+l*r.y)/2}},e.perpendicular=function(t){return{x:-t.y,y:t.x}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=a(n(21)),i=a(n(20)),o=a(n(19));function a(t){return t&&t.__esModule?t:{default:t}}var s=n(18),u=n(11),l=s.intersection,c=u.intersection,f=turf.intersect,p=null,h=null,d=null,v=null,g=JSON.parse(r.default),y=JSON.parse(i.default),m=JSON.parse(o.default);e.default={name:"app",data:function(){return{operations:["Intersection","Union","Difference","XOR"],selectedOperation:"Intersection",performance:"",martinezPerf:"",jstsPerf:""}},methods:{setInput:function(t){h.clearLayers(),d.clearLayers(),"Asia"===t.target.value&&(p=g),"Almost Parallel Segments"===t.target.value&&(p=y),"Saw & Cheese"===t.target.value&&(p=m),h.addData(p),v.fitBounds(h.getBounds(),{padding:[20,20]}),this.runOperation()},setOperation:function(t){this.selectedOperation=t.target.value,d.clearLayers(),"Union"===this.selectedOperation&&(l=s.union,c=u.union,f=turf.union),"Intersection"===this.selectedOperation&&(l=s.intersection,c=u.intersection,f=turf.intersect),"XOR"===this.selectedOperation&&(l=s.xor,c=u.xor,f=null),"Difference"===this.selectedOperation&&(l=s.difference,c=u.diff,f=turf.difference),this.runOperation()},runOperation:function(){var t=performance.now(),e=l(p.features[0].geometry.coordinates,p.features[1].geometry.coordinates);this.performance=(performance.now()-t).toFixed(2),d.addData({type:"MultiPolygon",coordinates:e}).addTo(v);var n=performance.now();if(c(p.features[0].geometry.coordinates,p.features[1].geometry.coordinates),this.martinezPerf=(performance.now()-n).toFixed(2),null!==f){var r=performance.now();f(p.features[0],p.features[1]),this.jstsPerf=(performance.now()-r).toFixed(2)}else this.jstsPerf="N/A"}},mounted:function(){p=g,v=window.map=L.map("map",{minZoom:1,maxZoom:20,center:[0,0],zoom:2,crs:L.CRS.Simple}),h=L.geoJson(g).addTo(v),v.fitBounds(h.getBounds(),{padding:[20,20]}),d=L.geoJson({type:"FeatureCollection",features:[]},{color:"red"}).addTo(v),this.runOperation()}},t.exports=e.default},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n0)return 1===e.comparePoint(t.leftSE.point)?1:-1;var f=(0,s.cmp)(r,o);return 0===f?t.isVertical!==e.isVertical?t.isVertical?1:-1:t.comparePoint(e.rightSE.point)>0?-1:1:f}if(0!==c)return c;if(t.ringIn.id!==e.ringIn.id)return t.ringIn.id to ["+t.rightSE.point.x+", "+t.rightSE.point.y+"]) failed... segments equal but not identical?")}}]),r(t,[{key:"swapEvents",value:function(){var t=this.leftSE;this.leftSE=this.rightSE,this.rightSE=t}},{key:"getOtherSE",value:function(t){if(t===this.leftSE)return this.rightSE;if(t===this.rightSE)return this.leftSE;throw new Error("may only be called by own sweep events")}},{key:"isAnEndpoint",value:function(t){return 0===(0,s.cmpPoints)(t,this.leftSE.point)||0===(0,s.cmpPoints)(t,this.rightSE.point)}},{key:"isPointOn",value:function(t){return(0,a.isInBbox)(this.bbox,t)&&0===this.comparePoint(t)}},{key:"comparePoint",value:function(t){if(this.isAnEndpoint(t))return 0;var e=this.vector,n=(0,u.perpendicular)(e),r=(0,u.intersection)(this.leftSE.point,e,t,n),i=(0,s.cmp)(t.y,r.y);return 0!==i?i:(0,s.cmp)(r.x,t.x)}},{key:"getIntersections",value:function(t){var e=(0,a.getBboxOverlap)(this.bbox,t.bbox);if(null===e)return[];for(var n=[],r=(0,a.getUniqueCorners)(e),i=0,o=r.length;i0)return n;var l=(0,u.intersection)(this.leftSE.point,this.vector,t.leftSE.point,t.vector);return null!==l&&(0,a.isInBbox)(e,l)?[l]:[]}},{key:"split",value:function(e){e.sort(s.cmpPoints);for(var n=[],r=0;r0)for(var _=c[0].split(e),b=0,x=_.length;be?t:e}}}},{key:"vector",get:function(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}},{key:"isVertical",get:function(){return 0===(0,s.cmp)(this.leftSE.point.x,this.rightSE.point.x)}},{key:"prevInResult",get:function(){var t="prevInResult";return void 0===this._cache[t]&&(this._cache[t]=this["_"+t]()),this._cache[t]}},{key:"prevNotCoincident",get:function(){var t="prevNotCoincident";return void 0===this._cache[t]&&(this._cache[t]=this["_"+t]()),this._cache[t]}},{key:"sweepLineEntersRing",get:function(){var t="sweepLineEntersRing";return void 0===this._cache[t]&&(this._cache[t]=this["_"+t]()),this._cache[t]}},{key:"sweepLineEntersPoly",get:function(){return!!this.isValidEdgeForPoly&&this.ringIn.isExterior===this.sweepLineEntersRing}},{key:"sweepLineExitsPoly",get:function(){return!!this.isValidEdgeForPoly&&this.ringIn.isExterior!==this.sweepLineEntersRing}},{key:"ringsInsideOf",get:function(){var t="ringsInsideOf";return void 0===this._cache[t]&&(this._cache[t]=this["_"+t]()),this._cache[t]}},{key:"isValidEdgeForPoly",get:function(){var t="isValidEdgeForPoly";return void 0===this._cache[t]&&(this._cache[t]=this["_"+t]()),this._cache[t]}},{key:"isInResult",get:function(){var t="isInResult";return void 0===this._cache[t]&&(this._cache[t]=this["_"+t]()),this._cache[t]}}],[{key:"fromRing",value:function(e,n,r){var i=void 0,a=void 0,u=(0,s.cmpPoints)(e,n);if(u<0)i=new o.default(e),a=new o.default(n);else{if(!(u>0))throw new Error("Tried to create degenerate segment at ["+e.x+", "+n.y+"]");i=new o.default(n),a=new o.default(e)}return new t(i,a,r)}}]),t}();e.default=c,t.exports=e.default},function(t,e,n){ +!function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="/docs/",n(n.s=30)}([function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),void 0===Number.EPSILON&&(Number.EPSILON=Math.pow(2,-52));var r=Number.EPSILON*Number.EPSILON;e.cmp=function(t,e){return-Number.EPSILON=r*n*i)return n=r*n*i)return n0?-1:1;var a=t.segment.ringIn.id,s=e.segment.ringIn.id;if(a!==s)return a=0&&p>=0?(0,i.cmp)(c,s):f<0&&p<0?(0,i.cmp)(s,c):(0,i.cmp)(l,a)}}},{key:"isLeft",get:function(){return this===this.segment.leftSE}},{key:"isRight",get:function(){return this===this.segment.rightSE}},{key:"isOrientationCorrect",get:function(){var t=(0,i.cmpPoints)(this.point,this.otherSE.point);if(t<0)return this.isLeft;if(t>0)return this.isRight;throw new Error("Degenerate segment encountered")}},{key:"otherSE",get:function(){return this.segment.getOtherSE(this)}}]),t}();e.default=a,t.exports=e.default},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.perpendicular=e.intersection=e.verticalIntersection=e.horizontalIntersection=e.cosineOfAngle=e.sineOfAngle=e.length=e.compareVectorAngles=e.dotProduct=e.crossProduct=void 0;var r=n(0),i=e.crossProduct=function(t,e){return t.x*e.y-t.y*e.x},o=e.dotProduct=function(t,e){return t.x*e.x+t.y*e.y},a=(e.compareVectorAngles=function(t,e,n){var o={x:e.x-t.x,y:e.y-t.y},a={x:n.x-t.x,y:n.y-t.y},s=i(o,a);return(0,r.cmp)(s,0)},e.length=function(t){return Math.sqrt(o(t,t))}),s=(e.sineOfAngle=function(t,e,n){var r={x:e.x-t.x,y:e.y-t.y},o={x:n.x-t.x,y:n.y-t.y};return i(o,r)/a(o)/a(r)},e.cosineOfAngle=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 o(i,r)/a(i)/a(r)},e.horizontalIntersection=function(t,e,n){return 0===e.y?null:{x:t.x+e.x/e.y*(n-t.y),y:n}}),u=e.verticalIntersection=function(t,e,n){return 0===e.x?null:{x:n,y:t.y+e.y/e.x*(n-t.x)}};e.intersection=function(t,e,n,r){if(0===e.x)return u(n,r,t.x);if(0===r.x)return u(t,e,n.x);if(0===e.y)return s(n,r,t.y);if(0===r.y)return s(t,e,n.y);var o=i(e,r);if(0==o)return null;var a={x:n.x-t.x,y:n.y-t.y},l=i(a,e)/o,c=i(a,r)/o;return{x:(t.x+c*e.x+n.x+l*r.x)/2,y:(t.y+c*e.y+n.y+l*r.y)/2}},e.perpendicular=function(t){return{x:-t.y,y:t.x}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=a(n(21)),i=a(n(20)),o=a(n(19));function a(t){return t&&t.__esModule?t:{default:t}}var s=n(18),u=n(11),l=s.intersection,c=u.intersection,f=turf.intersect,p=null,h=null,d=null,v=null,g=JSON.parse(r.default),y=JSON.parse(i.default),m=JSON.parse(o.default);e.default={name:"app",data:function(){return{operations:["Intersection","Union","Difference","XOR"],selectedOperation:"Intersection",performance:"",martinezPerf:"",jstsPerf:""}},methods:{setInput:function(t){h.clearLayers(),d.clearLayers(),"Asia"===t.target.value&&(p=g),"Almost Parallel Segments"===t.target.value&&(p=y),"Saw & Cheese"===t.target.value&&(p=m),h.addData(p),v.fitBounds(h.getBounds(),{padding:[20,20]}),this.runOperation()},setOperation:function(t){this.selectedOperation=t.target.value,d.clearLayers(),"Union"===this.selectedOperation&&(l=s.union,c=u.union,f=turf.union),"Intersection"===this.selectedOperation&&(l=s.intersection,c=u.intersection,f=turf.intersect),"XOR"===this.selectedOperation&&(l=s.xor,c=u.xor,f=null),"Difference"===this.selectedOperation&&(l=s.difference,c=u.diff,f=turf.difference),this.runOperation()},runOperation:function(){var t=performance.now(),e=l(p.features[0].geometry.coordinates,p.features[1].geometry.coordinates);this.performance=(performance.now()-t).toFixed(2),d.addData({type:"MultiPolygon",coordinates:e}).addTo(v);var n=performance.now();if(c(p.features[0].geometry.coordinates,p.features[1].geometry.coordinates),this.martinezPerf=(performance.now()-n).toFixed(2),null!==f){var r=performance.now();f(p.features[0],p.features[1]),this.jstsPerf=(performance.now()-r).toFixed(2)}else this.jstsPerf="N/A"}},mounted:function(){p=g,v=window.map=L.map("map",{minZoom:1,maxZoom:20,center:[0,0],zoom:2,crs:L.CRS.Simple}),h=L.geoJson(g).addTo(v),v.fitBounds(h.getBounds(),{padding:[20,20]}),d=L.geoJson({type:"FeatureCollection",features:[]},{color:"red"}).addTo(v),this.runOperation()}},t.exports=e.default},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n0)return 1===e.comparePoint(t.leftSE.point)?1:-1;var f=(0,s.cmp)(r,o);return 0===f?t.isVertical!==e.isVertical?t.isVertical?1:-1:t.comparePoint(e.rightSE.point)>0?-1:1:f}if(0!==c)return c;if(t.ringIn.id!==e.ringIn.id)return t.ringIn.id to ["+t.rightSE.point.x+", "+t.rightSE.point.y+"]) failed... segments equal but not identical?")}}]),r(t,[{key:"swapEvents",value:function(){var t=this.leftSE;this.leftSE=this.rightSE,this.rightSE=t}},{key:"getOtherSE",value:function(t){if(t===this.leftSE)return this.rightSE;if(t===this.rightSE)return this.leftSE;throw new Error("may only be called by own sweep events")}},{key:"isAnEndpoint",value:function(t){return 0===(0,s.cmpPoints)(t,this.leftSE.point)||0===(0,s.cmpPoints)(t,this.rightSE.point)}},{key:"isPointOn",value:function(t){return(0,a.isInBbox)(this.bbox,t)&&0===this.comparePoint(t)}},{key:"comparePoint",value:function(t){if(this.isAnEndpoint(t))return 0;var e=this.vector,n=(0,u.perpendicular)(e),r=(0,u.intersection)(this.leftSE.point,e,t,n),i=(0,s.cmp)(t.y,r.y);return 0!==i?i:(0,s.cmp)(r.x,t.x)}},{key:"getIntersections",value:function(t){var e=(0,a.getBboxOverlap)(this.bbox,t.bbox);if(null===e)return[];for(var n=[],r=(0,a.getUniqueCorners)(e),i=0,o=r.length;i0)return n;var l=(0,u.intersection)(this.leftSE.point,this.vector,t.leftSE.point,t.vector);return null!==l&&(0,a.isInBbox)(e,l)?[l]:[]}},{key:"split",value:function(e){e.sort(s.cmpPoints);for(var n=[],r=0;r0)for(var _=c[0].split(e),b=0,x=_.length;be?t:e}}}},{key:"vector",get:function(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}},{key:"isVertical",get:function(){return 0===(0,s.cmp)(this.leftSE.point.x,this.rightSE.point.x)}},{key:"prevInResult",get:function(){var t="prevInResult";return void 0===this._cache[t]&&(this._cache[t]=this["_"+t]()),this._cache[t]}},{key:"prevNotCoincident",get:function(){var t="prevNotCoincident";return void 0===this._cache[t]&&(this._cache[t]=this["_"+t]()),this._cache[t]}},{key:"sweepLineEntersRing",get:function(){var t="sweepLineEntersRing";return void 0===this._cache[t]&&(this._cache[t]=this["_"+t]()),this._cache[t]}},{key:"sweepLineEntersPoly",get:function(){return!!this.isValidEdgeForPoly&&this.ringIn.isExterior===this.sweepLineEntersRing}},{key:"sweepLineExitsPoly",get:function(){return!!this.isValidEdgeForPoly&&this.ringIn.isExterior!==this.sweepLineEntersRing}},{key:"ringsInsideOf",get:function(){var t="ringsInsideOf";return void 0===this._cache[t]&&(this._cache[t]=this["_"+t]()),this._cache[t]}},{key:"isValidEdgeForPoly",get:function(){var t="isValidEdgeForPoly";return void 0===this._cache[t]&&(this._cache[t]=this["_"+t]()),this._cache[t]}},{key:"isInResult",get:function(){var t="isInResult";return void 0===this._cache[t]&&(this._cache[t]=this["_"+t]()),this._cache[t]}}],[{key:"fromRing",value:function(e,n,r){var i=void 0,a=void 0,u=(0,s.cmpPoints)(e,n);if(u<0)i=new o.default(e),a=new o.default(n);else{if(!(u>0))throw new Error("Tried to create degenerate segment at ["+e.x+", "+n.y+"]");i=new o.default(n),a=new o.default(e)}return new t(i,a,r)}}]),t}();e.default=c,t.exports=e.default},function(t,e,n){ /** * splaytree v2.0.2 * Fast Splay tree for Node and browser @@ -7,7 +7,7 @@ * @license MIT * @preserve */ -t.exports=function(){"use strict";var t=function(t,e){this.key=t,this.data=e,this.left=null,this.right=null};function e(t,e){return t>e?1:t0))break;if(null===n.right)break;if(r(e,n.right.key)>0&&(a=n.right,n.right=a.left,a.left=n,null===(n=a).right))break;i.right=n,i=n,n=n.right}}return i.right=n.left,o.left=n.right,n.left=s.right,n.right=s.left,n}function r(e,r,i,o,a){var s=new t(e,r);if(a._size++,null===i)return s.left=s.right=null,s;i=n(e,i,o);var u=o(e,i.key);return u<0?(s.left=i.left,s.right=i,i.left=null):u>=0&&(s.right=i.right,s.left=i,i.right=null),s}function i(t,e,r,i){var o;return null===e?null:(e=n(t,e,r),t===e.key?(null===e.left?o=e.right:(o=n(t,e.left,r)).right=e.right,i._size--,o):e)}function o(t,e,r){var i,o;if(null===e)i=o=null;else{e=n(t,e,r);var a=r(e.key,t);0===a?(i=e.left,o=e.right):a<0?(o=e.right,e.right=null,i=e):(i=e.left,e.left=null,o=e)}return{left:i,right:o}}var a=function(t){void 0===t&&(t=e),this._comparator=t,this._root=null,this._size=0},s={size:{configurable:!0}};return a.prototype.insert=function(t,e){return this._root=r(t,e,this._root,this._comparator,this)},a.prototype.add=function(e,r){return this._root=function(e,r,i,o,a){var s=new t(e,r);if(null===i)return s.left=s.right=null,a._size++,s;i=n(e,i,o);var u=o(e,i.key);return 0===u?i:(u<0?(s.left=i.left,s.right=i,i.left=null):u>0&&(s.right=i.right,s.left=i,i.right=null),a._size++,s)}(e,r,this._root,this._comparator,this)},a.prototype.remove=function(t){this._root=i(t,this._root,this._comparator,this)},a.prototype.pop=function(){var t=this._root;if(t){for(;t.left;)t=t.left;return this._root=n(t.key,this._root,this._comparator),this._root=i(t.key,this._root,this._comparator,this),{key:t.key,data:t.data}}return null},a.prototype.findStatic=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},a.prototype.find=function(t){return this._root&&(this._root=n(t,this._root,this._comparator),0!==this._comparator(t,this._root.key))?null:this._root},a.prototype.contains=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},a.prototype.forEach=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},a.prototype.range=function(t,e,n,r){for(var i=[],o=this._comparator,a=this._root;0!==i.length||a;)if(a)i.push(a),a=a.left;else{if(o((a=i.pop()).key,e)>0)break;if(o(a.key,t)>=0&&n.call(r,a))return this;a=a.right}return this},a.prototype.keys=function(){var t=[];return this.forEach(function(e){var n=e.key;return t.push(n)}),t},a.prototype.values=function(){var t=[];return this.forEach(function(e){var n=e.data;return t.push(n)}),t},a.prototype.min=function(){return this._root?this.minNode(this._root).key:null},a.prototype.max=function(){return this._root?this.maxNode(this._root).key:null},a.prototype.minNode=function(t){if(void 0===t&&(t=this._root),t)for(;t.left;)t=t.left;return t},a.prototype.maxNode=function(t){if(void 0===t&&(t=this._root),t)for(;t.right;)t=t.right;return t},a.prototype.at=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},a.prototype.next=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},a.prototype.prev=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},a.prototype.clear=function(){return this._root=null,this._size=0,this},a.prototype.toList=function(){return function(t){for(var e=t,n=[],r=!1,i={next:null},o=i;!r;)e?(n.push(e),e=e.left):n.length>0?e=(e=o=o.next=n.pop()).right:r=!0;return o.next=null,i.next}(this._root)},a.prototype.load=function(t,e,n){void 0===t&&(t=[]),void 0===e&&(e=[]),void 0===n&&(n=!1);var r=t.length,i=this._comparator;if(n&&function t(e,n,r,i,o){if(!(r>=i)){for(var a=e[r+i>>1],s=r-1,u=i+1;;){do{s++}while(o(e[s],a)<0);do{u--}while(o(e[u],a)>0);if(s>=u)break;var l=e[s];e[s]=e[u],e[u]=l,l=n[s],n[s]=n[u],n[u]=l}t(e,n,r,u,o),t(e,n,u+1,i,o)}}(t,e,0,r-1,i),null===this._root)this._root=function t(e,n,r,i,o){var a=o-i;if(a>0){var s=i+Math.floor(a/2),u=n[s],l=r[s],c={key:u,data:l,parent:e};return c.left=t(c,n,r,i,s),c.right=t(c,n,r,s+1,o),c}return null}(this._root,t,e,0,r),this._size=r;else{var o=function(t,e,n){void 0===n&&(n=function(t,e){return t-e});for(var r={},i=r,o=t,a=e;null!==o&&null!==a;)n(o.key,a.key)<0?(i.next=o,o=o.next):(i.next=a,a=a.next),i=i.next;return null!==o?i.next=o:null!==a&&(i.next=a),r.next}(this.toList(),function(t,e){for(var n={next:null},r=n,i=0;i0){var o=n+Math.floor(i/2),a=t(e,n,o),s=e.head;return s.left=a,e.head=e.head.next,s.right=t(e,o+1,r),s}return null}({head:o},0,r)}return this},a.prototype.isEmpty=function(){return null===this._root},s.size.get=function(){return this._size},a.prototype.toString=function(t){void 0===t&&(t=function(t){return t.key});var e=[];return function t(e,n,r,i,o){if(e){i(n+(r?"└── ":"├── ")+o(e)+"\n");var a=n+(r?" ":"│ ");e.left&&t(e.left,a,!1,i,o),e.right&&t(e.right,a,!0,i,o)}}(this._root,"",!0,function(t){return e.push(t)},t),e.join("")},a.prototype.update=function(t,e,i){var a=this._comparator,s=o(t,this._root,a),u=s.left,l=s.right;this._size--,a(t,e)<0?l=r(e,i,l,a,this):u=r(e,i,u,a,this),this._root=function(t,e,r){return null===e?t:null===t?e:((e=n(t.key,e,r)).left=t,e)}(u,l,a)},a.prototype.split=function(t){return o(t,this._root,this._comparator)},Object.defineProperties(a.prototype,s),a}()},function(t,e,n){"use strict";function r(t,e,n,r,i,o,a,s){var u=typeof(t=t||{}).default;"object"!==u&&"function"!==u||(t=t.default);var l,c="function"==typeof t?t.options:t;if(e&&(c.render=e,c.staticRenderFns=n,c._compiled=!0),r&&(c.functional=!0),o&&(c._scopeId=o),a?(l=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(a)},c._ssrRegister=l):i&&(l=s?function(){i.call(this,this.$root.$options.shadowRoot)}:i),l)if(c.functional){c._injectStyles=l;var f=c.render;c.render=function(t,e){return l.call(e),f(t,e)}}else{var p=c.beforeCreate;c.beforeCreate=p?[].concat(p,l):[l]}return{exports:t,options:c}}n.d(e,"a",function(){return r})},function(t,e,n){"use strict";function r(t,e){for(var n=[],r={},i=0;in.parts.length&&(r.parts.length=n.parts.length)}else{var a=[];for(i=0;ie?1:t0&&(e.balanceFactor+=t.balanceFactor),e}function i(t){var e=t.left;return t.left=e.right,t.left&&(t.left.parent=t),e.parent=t.parent,e.parent&&(e.parent.left===t?e.parent.left=e:e.parent.right=e),t.parent=e,e.right=t,t.balanceFactor-=1,e.balanceFactor>0&&(t.balanceFactor-=e.balanceFactor),e.balanceFactor-=1,t.balanceFactor<0&&(e.balanceFactor+=t.balanceFactor),e}var o=function(t,e){void 0===e&&(e=!1),this._comparator=t||n,this._root=null,this._size=0,this._noDuplicates=!!e},a={size:{}};return o.prototype.destroy=function(){return this._root=null,this},a.size.get=function(){return this._size},o.prototype.contains=function(t){if(this._root)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},o.prototype.next=function(t){var e=t;if(e)if(e.right)for(e=e.right;e&&e.left;)e=e.left;else for(e=t.parent;e&&e.right===t;)t=e,e=e.parent;return e},o.prototype.prev=function(t){var e=t;if(e)if(e.left)for(e=e.left;e&&e.right;)e=e.right;else for(e=t.parent;e&&e.left===t;)t=e,e=e.parent;return e},o.prototype.forEach=function(t){for(var e=this._root,n=[],r=!1,i=0;!r;)e?(n.push(e),e=e.left):n.length>0?(e=n.pop(),t(e,i++),e=e.right):r=!0;return this},o.prototype.keys=function(){for(var t=this._root,e=[],n=[],r=!1;!r;)t?(e.push(t),t=t.left):e.length>0?(t=e.pop(),n.push(t.key),t=t.right):r=!0;return n},o.prototype.values=function(){for(var t=this._root,e=[],n=[],r=!1;!r;)t?(e.push(t),t=t.left):e.length>0?(t=e.pop(),n.push(t.data),t=t.right):r=!0;return n},o.prototype.at=function(t){for(var e=this._root,n=[],r=!1,i=0;!r;)if(e)n.push(e),e=e.left;else if(n.length>0){if(e=n.pop(),i===t)return e;i++,e=e.right}else r=!0;return null},o.prototype.minNode=function(){var t=this._root;if(!t)return null;for(;t.left;)t=t.left;return t},o.prototype.maxNode=function(){var t=this._root;if(!t)return null;for(;t.right;)t=t.right;return t},o.prototype.min=function(){var t=this._root;if(!t)return null;for(;t.left;)t=t.left;return t.key},o.prototype.max=function(){var t=this._root;if(!t)return null;for(;t.right;)t=t.right;return t.key},o.prototype.isEmpty=function(){return!this._root},o.prototype.pop=function(){var t=this._root,e=null;if(t){for(;t.left;)t=t.left;e={key:t.key,data:t.data},this.remove(t.key)}return e},o.prototype.find=function(t){for(var e,n=this._root,r=n,i=this._comparator;r;){if(0===(e=i(t,r.key)))return r;r=e<0?r.left:r.right}return null},o.prototype.insert=function(t,e){if(!this._root)return this._root={parent:null,left:null,right:null,balanceFactor:0,key:t,data:e},this._size++,this._root;var n=this._comparator,o=this._root,a=null,s=0;if(this._noDuplicates)for(;o;){if(s=n(t,o.key),a=o,0===s)return null;o=s<0?o.left:o.right}else for(;o;)s=n(t,o.key),a=o,o=s<=0?o.left:o.right;var u,l={left:null,right:null,balanceFactor:0,parent:a,key:t,data:e};for(s<=0?a.left=l:a.right=l;a&&((s=n(a.key,t))<0?a.balanceFactor-=1:a.balanceFactor+=1,0!==a.balanceFactor);){if(a.balanceFactor<-1){1===a.right.balanceFactor&&i(a.right),u=r(a),a===this._root&&(this._root=u);break}if(a.balanceFactor>1){-1===a.left.balanceFactor&&r(a.left),u=i(a),a===this._root&&(this._root=u);break}a=a.parent}return this._size++,l},o.prototype.remove=function(t){if(!this._root)return null;for(var e=this._root,n=this._comparator,o=0;e&&0!==(o=n(t,e.key));)e=o<0?e.left:e.right;if(!e)return null;var a,s,u=e.key;if(e.left){for(a=e.left;a.left||a.right;){for(;a.right;)a=a.right;e.key=a.key,e.data=a.data,a.left&&(e=a,a=a.left)}e.key=a.key,e.data=a.data,e=a}if(e.right){for(s=e.right;s.left||s.right;){for(;s.left;)s=s.left;e.key=s.key,e.data=s.data,s.right&&(e=s,s=s.right)}e.key=s.key,e.data=s.data,e=s}for(var l,c=e.parent,f=e;c&&(c.left===f?c.balanceFactor-=1:c.balanceFactor+=1,c.balanceFactor<-1?(1===c.right.balanceFactor&&i(c.right),l=r(c),c===this._root&&(this._root=l),c=l):c.balanceFactor>1&&(-1===c.left.balanceFactor&&r(c.left),l=i(c),c===this._root&&(this._root=l),c=l),-1!==c.balanceFactor&&1!==c.balanceFactor);)f=c,c=c.parent;return e.parent&&(e.parent.left===e?e.parent.left=null:e.parent.right=null),e===this._root&&(this._root=null),this._size--,u},o.prototype.load=function(t,e){if(void 0===t&&(t=[]),void 0===e&&(e=[]),Array.isArray(t))for(var n=0,r=t.length;n0)for(var n=(this.length>>1)-1;n>=0;n--)this._down(n)}function i(t,e){return te?1:0}e.exports=r,e.exports.default=r,r.prototype={push:function(t){this.data.push(t),this.length++,this._up(this.length-1)},pop:function(){if(0!==this.length){var t=this.data[0];return this.length--,this.length>0&&(this.data[0]=this.data[this.length],this._down(0)),this.data.pop(),t}},peek:function(){return this.data[0]},_up:function(t){for(var e=this.data,n=this.compare,r=e[t];t>0;){var i=t-1>>1,o=e[i];if(n(r,o)>=0)break;e[t]=o,t=i}e[t]=r},_down:function(t){for(var e=this.data,n=this.compare,r=this.length>>1,i=e[t];t=0)break;e[t]=s,t=o}e[t]=i}}},{}],4:[function(t,e,n){"use strict";var r=t("./signed_area");e.exports=function(t,e){var n=t.point,i=e.point;return n[0]>i[0]?1:n[0]i[1]?1:-1:function(t,e,n,i){return t.left!==e.left?t.left?1:-1:0!==r(n,t.otherEvent.point,e.otherEvent.point)?t.isBelow(e.otherEvent.point)?-1:1:!t.isSubject&&e.isSubject?1:-1}(t,e,n)}},{"./signed_area":16}],5:[function(t,e,n){"use strict";var r=t("./signed_area"),i=t("./compare_events"),o=t("./equals");e.exports=function(t,e){if(t===e)return 0;if(0!==r(t.point,t.otherEvent.point,e.point)||0!==r(t.point,t.otherEvent.point,e.otherEvent.point))return o(t.point,e.point)?t.isBelow(e.otherEvent.point)?-1:1:t.point[0]===e.point[0]?t.point[1]e.contourId?1:-1):1===i(t,e)?1:-1}},{"./compare_events":4,"./equals":10,"./signed_area":16}],6:[function(t,e,n){"use strict";var r=t("./edge_type"),i=t("./operation"),o=i.INTERSECTION,a=i.UNION,s=i.DIFFERENCE,u=i.XOR;function l(t,e){switch(t.type){case r.NORMAL:switch(e){case o:return!t.otherInOut;case a:return t.otherInOut;case s:return t.isSubject&&t.otherInOut||!t.isSubject&&!t.otherInOut;case u:return!0}break;case r.SAME_TRANSITION:return e===o||e===a;case r.DIFFERENT_TRANSITION:return e===s;case r.NON_CONTRIBUTING:return!1}return!1}e.exports=function(t,e,n){null===e?(t.inOut=!1,t.otherInOut=!0):(t.isSubject===e.isSubject?(t.inOut=!e.inOut,t.otherInOut=e.otherInOut):(t.inOut=!e.otherInOut,t.otherInOut=e.isVertical()?!e.inOut:e.inOut),e&&(t.prevInResult=!l(e,n)||e.isVertical()?e.prevInResult:e)),t.inResult=l(t,n)}},{"./edge_type":9,"./operation":13}],7:[function(t,e,n){"use strict";var r=t("./compare_events"),i=t("./operation");function o(t,e,n,r){var i=t+1,o=e.length;if(i>o-1)return t-1;for(var a=e[t].point,s=e[i].point;i=r;)i--;return i}e.exports=function(t,e){var n,a,s,u=function(t){var e,n,i,o,a=[];for(n=0,i=t.length;n1?c[c.length-1].push(f[0]):c.push(f):e!==i.DIFFERENCE||u[n].isSubject||0!==c.length?0===c.length?c.push([[f]]):c[c.length-1].push(f[0]):c.push(f);var p=c.length-1,h=n,d=u[n].point;for(f[0].push(d);h>=n;)s=u[h],l[h]=!0,s.left?(s.resultInOut=!1,s.contourId=p):(s.otherEvent.resultInOut=!0,s.otherEvent.contourId=p),h=s.pos,l[h]=!0,f[0].push(u[h].point),h=o(h,u,l,n);s=u[h=-1===h?n:h],l[h]=l[s.pos]=!0,s.otherEvent.resultInOut=!0,s.otherEvent.contourId=p}return c}},{"./compare_events":4,"./operation":13}],8:[function(t,e,n){"use strict";var r=t("./sweep_event"),i=t("./equals"),o=t("./compare_events");e.exports=function(t,e,n){var a=new r(e,!1,t,t.isSubject),s=new r(e,!0,t.otherEvent,t.isSubject);return i(t.point,t.otherEvent.point)&&console.warn("what is that, a collapsed segment?",t),a.contourId=s.contourId=t.contourId,o(s,t.otherEvent)>0&&(t.otherEvent.left=!0,s.left=!1),t.otherEvent.otherEvent=s,t.otherEvent=a,n.push(s),n.push(a),n}},{"./compare_events":4,"./equals":10,"./sweep_event":18}],9:[function(t,e,n){"use strict";e.exports={NORMAL:0,NON_CONTRIBUTING:1,SAME_TRANSITION:2,DIFFERENT_TRANSITION:3}},{}],10:[function(t,e,n){"use strict";e.exports=function(t,e){return t[0]===e[0]&&t[1]===e[1]}},{}],11:[function(t,e,n){"use strict";var r=t("tinyqueue"),i=t("./sweep_event"),o=t("./compare_events"),a=t("./operation"),s=Math.max,u=Math.min,l=0;function c(t,e,n,r,a,l){var c,f,p,h,d,v;for(c=0,f=t.length-1;c0?v.left=!0:d.left=!0;var g=p[0],y=p[1];a[0]=u(a[0],g),a[1]=u(a[1],y),a[2]=s(a[2],g),a[3]=s(a[3],y),r.push(d),r.push(v)}}e.exports=function(t,e,n,i,s){var u,f,p,h,d,v,g=new r(null,o);for(p=0,h=t.length;pr[2]||r[0]>n[2]||n[1]>r[3]||r[1]>n[3])&&(i===a.INTERSECTION?o=s:i===a.DIFFERENCE?o=t:i!==a.UNION&&i!==a.XOR||(o=t.concat(e))),o}(t,e,l,c,n))return u===s?null:u;var p=r(f,t,e,l,c,n),h=i(p,n);return h}u.union=function(t,e){return u(t,e,a.UNION)},u.diff=function(t,e){return u(t,e,a.DIFFERENCE)},u.xor=function(t,e){return u(t,e,a.XOR)},u.intersection=function(t,e){return u(t,e,a.INTERSECTION)},u.operations=a,e.exports=u,e.exports.default=u},{"./connect_edges":7,"./fill_queue":11,"./operation":13,"./subdivide_segments":17}],13:[function(t,e,n){"use strict";e.exports={INTERSECTION:0,UNION:1,DIFFERENCE:2,XOR:3}},{}],14:[function(t,e,n){"use strict";var r=t("./divide_segment"),i=t("./segment_intersection"),o=t("./equals"),a=t("./compare_events"),s=t("./edge_type");e.exports=function(t,e,n){var u=i(t.point,t.otherEvent.point,e.point,e.otherEvent.point),l=u?u.length:0;if(0===l)return 0;if(1===l&&(o(t.point,e.point)||o(t.otherEvent.point,e.otherEvent.point)))return 0;if(2===l&&t.isSubject===e.isSubject)return 0;if(1===l)return o(t.point,u[0])||o(t.otherEvent.point,u[0])||r(t,u[0],n),o(e.point,u[0])||o(e.otherEvent.point,u[0])||r(e,u[0],n),1;var c=[],f=!1,p=!1;return o(t.point,e.point)?f=!0:1===a(t,e)?c.push(e,t):c.push(t,e),o(t.otherEvent.point,e.otherEvent.point)?p=!0:1===a(t.otherEvent,e.otherEvent)?c.push(e.otherEvent,t.otherEvent):c.push(t.otherEvent,e.otherEvent),f&&p||f?(e.type=s.NON_CONTRIBUTING,t.type=e.inOut===t.inOut?s.SAME_TRANSITION:s.DIFFERENT_TRANSITION,f&&!p&&r(c[1].otherEvent,c[0].point,n),2):p?(r(c[0],c[1].point,n),3):c[0]!==c[3].otherEvent?(r(c[0],c[1].point,n),r(c[1],c[2].point,n),3):(r(c[0],c[1].point,n),r(c[3].otherEvent,c[2].point,n),3)}},{"./compare_events":4,"./divide_segment":8,"./edge_type":9,"./equals":10,"./segment_intersection":15}],15:[function(t,e,n){"use strict";function r(t,e){return t[0]*e[1]-t[1]*e[0]}function i(t,e){return t[0]*e[0]+t[1]*e[1]}e.exports=function(t,e,n,o,a){var s=[e[0]-t[0],e[1]-t[1]],u=[o[0]-n[0],o[1]-n[1]];function l(t,e,n){return[t[0]+e*n[0],t[1]+e*n[1]]}var c=[n[0]-t[0],n[1]-t[1]],f=r(s,u),p=f*f,h=i(s,s),d=i(u,u);if(p>1e-9*h*d){var v=r(c,u)/f;if(v<0||v>1)return null;var g=r(c,s)/f;return g<0||g>1?null:a?null:[l(t,v,s)]}var y=i(c,c);if(f=r(c,s),(p=f*f)>1e-9*h*y)return null;var m=i(s,c)/h,_=m+i(s,u)/h,b=Math.min(m,_),x=Math.max(m,_);return b<=1&&x>=0?1===b?a?null:[l(t,b>0?b:0,s)]:0===x?a?null:[l(t,x<1?x:1,s)]:a&&0===b&&1===x?null:[l(t,b>0?b:0,s),l(t,x<1?x:1,s)]:null}},{}],16:[function(t,e,n){"use strict";e.exports=function(t,e,n){return(t[0]-n[0])*(e[1]-n[1])-(e[0]-n[0])*(t[1]-n[1])}},{}],17:[function(t,e,n){"use strict";var r=t("avl"),i=t("./compute_fields"),o=t("./possible_intersection"),a=t("./compare_segments"),s=t("./operation");e.exports=function(t,e,n,u,l,c){for(var f,p,h,d=new r(a),v=[],g=Math.min(u[2],l[2]),y=s.INTERSECTION,m=s.DIFFERENCE;t.length;){var _=t.pop();if(v.push(_),c===y&&_.point[0]>g||c===m&&_.point[0]>u[2])break;if(_.left){p=f=d.insert(_),h=d.minNode(),f=f!==h?d.prev(f):null,p=d.next(p);var b,x=f?f.key:null;if(i(_,x,c),p&&2===o(_,p.key,t)&&(i(_,x,c),i(_,p.key,c)),f&&2===o(f.key,_,t)){var E=f;E=E!==h?d.prev(E):null,b=E?E.key:null,i(x,b,c),i(_,x,c)}}else _=_.otherEvent,p=f=d.find(_),f&&p&&(f=f!==h?d.prev(f):null,p=d.next(p),d.remove(_),p&&f&&o(f.key,p.key,t))}return v}},{"./compare_segments":5,"./compute_fields":6,"./operation":13,"./possible_intersection":14,avl:2}],18:[function(t,e,n){"use strict";var r=t("./edge_type");function i(t,e,n,i,o){this.left=e,this.point=t,this.otherEvent=n,this.isSubject=i,this.type=o||r.NORMAL,this.inOut=!1,this.otherInOut=!1,this.prevInResult=null,this.inResult=!1,this.resultInOut=!1,this.isExteriorRing=!0}i.prototype={isBelow:function(t){var e=this.point,n=this.otherEvent.point;return this.left?(e[0]-t[0])*(n[1]-t[1])-(n[0]-t[0])*(e[1]-t[1])>0:(n[0]-t[0])*(e[1]-t[1])-(e[0]-t[0])*(n[1]-t[1])>0},isAbove:function(t){return!this.isBelow(t)},isVertical:function(){return this.point[0]===this.otherEvent.point[0]},clone:function(){var t=new i(this.point,this.left,this.otherEvent,this.isSubject,this.type);return t.inResult=this.inResult,t.prevInResult=this.prevInResult,t.isExteriorRing=this.isExteriorRing,t.inOut=this.inOut,t.otherInOut=this.otherInOut,t}},e.exports=i},{"./edge_type":9}]},{},[1])(1)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:o.default.compare;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.tree=new i.default(e),this.segments=[]}return r(t,[{key:"process",value:function(t){var e=t.segment,n=[],r=t.isLeft?this.tree.insert(e):this.tree.find(e),i=this.tree.prev(r),o=i?i.key:null,a=this.tree.next(r),s=a?a.key:null;if(t.isLeft){var u=[];if(o){var l=o.getIntersections(e);if(l.length>0){for(var c=this._possibleSplit(o,l),f=0,p=c.length;f0){for(var y=this._possibleSplit(s,g),m=0,_=y.length;m<_;m++)n.push(y[m]);for(var b=0,x=g.length;b0||u.length>0){if(this.tree.remove(e),u.length>0)for(var O=e.split(u),w=0,k=O.length;w0){for(var S=this._possibleSplit(o,I),A=0,C=S.length;A0){for(var s=0,u=t.coincidents.length;s0&&(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;o=(i=o.prevInResult)?i.prevInResult:null}}},{key:"enclosingRing",get:function(){return this._getCached("enclosingRing")}},{key:"isExteriorRing",get:function(){return this._getCached("isExteriorRing")}}]),t}();var l=e.PolyOut=function(){function t(e){u(this,t),this.exteriorRing=e,e.registerPoly(this),this.interiorRings=[]}return i(t,[{key:"addInterior",value:function(t){this.interiorRings.push(t),t.registerPoly(this)}},{key:"getGeom",value:function(){var t=[this.exteriorRing.getGeom()];if(null===t[0])return null;for(var e=0,n=this.interiorRings.length;e2)throw new Error("Input has more than two coordinates. Only 2-dimensional polygons supported.");e[n][i].push({x:t[n][i][a][0],y:t[n][i][a][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({x:t[n][i][0],y:t[n][i][1]})}}}return e},e.forceMultiPoly=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")},e.cleanMultiPoly=function(t){for(var e=0;e0;)t.pop()}})},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e,n){for(var c=[i.pointsAsObjects(e)],f=0,p=n.length;f1?e-1:0),o=1;o1?e-1:0),o=1;o1?e-1:0),o=1;o1?e-1:0),o=1;o1)for(var n=1;n=0&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},n(27),e.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||this&&this.setImmediate,e.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||this&&this.clearImmediate}).call(this,n(5))},function(t,e,n){"use strict";n.r(e),function(t,n){ +t.exports=function(){"use strict";var t=function(t,e){this.key=t,this.data=e,this.left=null,this.right=null};function e(t,e){return t>e?1:t0))break;if(null===n.right)break;if(r(e,n.right.key)>0&&(a=n.right,n.right=a.left,a.left=n,null===(n=a).right))break;i.right=n,i=n,n=n.right}}return i.right=n.left,o.left=n.right,n.left=s.right,n.right=s.left,n}function r(e,r,i,o,a){var s=new t(e,r);if(a._size++,null===i)return s.left=s.right=null,s;i=n(e,i,o);var u=o(e,i.key);return u<0?(s.left=i.left,s.right=i,i.left=null):u>=0&&(s.right=i.right,s.left=i,i.right=null),s}function i(t,e,r,i){var o;return null===e?null:(e=n(t,e,r),t===e.key?(null===e.left?o=e.right:(o=n(t,e.left,r)).right=e.right,i._size--,o):e)}function o(t,e,r){var i,o;if(null===e)i=o=null;else{e=n(t,e,r);var a=r(e.key,t);0===a?(i=e.left,o=e.right):a<0?(o=e.right,e.right=null,i=e):(i=e.left,e.left=null,o=e)}return{left:i,right:o}}var a=function(t){void 0===t&&(t=e),this._comparator=t,this._root=null,this._size=0},s={size:{configurable:!0}};return a.prototype.insert=function(t,e){return this._root=r(t,e,this._root,this._comparator,this)},a.prototype.add=function(e,r){return this._root=function(e,r,i,o,a){var s=new t(e,r);if(null===i)return s.left=s.right=null,a._size++,s;i=n(e,i,o);var u=o(e,i.key);return 0===u?i:(u<0?(s.left=i.left,s.right=i,i.left=null):u>0&&(s.right=i.right,s.left=i,i.right=null),a._size++,s)}(e,r,this._root,this._comparator,this)},a.prototype.remove=function(t){this._root=i(t,this._root,this._comparator,this)},a.prototype.pop=function(){var t=this._root;if(t){for(;t.left;)t=t.left;return this._root=n(t.key,this._root,this._comparator),this._root=i(t.key,this._root,this._comparator,this),{key:t.key,data:t.data}}return null},a.prototype.findStatic=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},a.prototype.find=function(t){return this._root&&(this._root=n(t,this._root,this._comparator),0!==this._comparator(t,this._root.key))?null:this._root},a.prototype.contains=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},a.prototype.forEach=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},a.prototype.range=function(t,e,n,r){for(var i=[],o=this._comparator,a=this._root;0!==i.length||a;)if(a)i.push(a),a=a.left;else{if(o((a=i.pop()).key,e)>0)break;if(o(a.key,t)>=0&&n.call(r,a))return this;a=a.right}return this},a.prototype.keys=function(){var t=[];return this.forEach(function(e){var n=e.key;return t.push(n)}),t},a.prototype.values=function(){var t=[];return this.forEach(function(e){var n=e.data;return t.push(n)}),t},a.prototype.min=function(){return this._root?this.minNode(this._root).key:null},a.prototype.max=function(){return this._root?this.maxNode(this._root).key:null},a.prototype.minNode=function(t){if(void 0===t&&(t=this._root),t)for(;t.left;)t=t.left;return t},a.prototype.maxNode=function(t){if(void 0===t&&(t=this._root),t)for(;t.right;)t=t.right;return t},a.prototype.at=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},a.prototype.next=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},a.prototype.prev=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},a.prototype.clear=function(){return this._root=null,this._size=0,this},a.prototype.toList=function(){return function(t){for(var e=t,n=[],r=!1,i={next:null},o=i;!r;)e?(n.push(e),e=e.left):n.length>0?e=(e=o=o.next=n.pop()).right:r=!0;return o.next=null,i.next}(this._root)},a.prototype.load=function(t,e,n){void 0===t&&(t=[]),void 0===e&&(e=[]),void 0===n&&(n=!1);var r=t.length,i=this._comparator;if(n&&function t(e,n,r,i,o){if(!(r>=i)){for(var a=e[r+i>>1],s=r-1,u=i+1;;){do{s++}while(o(e[s],a)<0);do{u--}while(o(e[u],a)>0);if(s>=u)break;var l=e[s];e[s]=e[u],e[u]=l,l=n[s],n[s]=n[u],n[u]=l}t(e,n,r,u,o),t(e,n,u+1,i,o)}}(t,e,0,r-1,i),null===this._root)this._root=function t(e,n,r,i,o){var a=o-i;if(a>0){var s=i+Math.floor(a/2),u=n[s],l=r[s],c={key:u,data:l,parent:e};return c.left=t(c,n,r,i,s),c.right=t(c,n,r,s+1,o),c}return null}(this._root,t,e,0,r),this._size=r;else{var o=function(t,e,n){void 0===n&&(n=function(t,e){return t-e});for(var r={},i=r,o=t,a=e;null!==o&&null!==a;)n(o.key,a.key)<0?(i.next=o,o=o.next):(i.next=a,a=a.next),i=i.next;return null!==o?i.next=o:null!==a&&(i.next=a),r.next}(this.toList(),function(t,e){for(var n={next:null},r=n,i=0;i0){var o=n+Math.floor(i/2),a=t(e,n,o),s=e.head;return s.left=a,e.head=e.head.next,s.right=t(e,o+1,r),s}return null}({head:o},0,r)}return this},a.prototype.isEmpty=function(){return null===this._root},s.size.get=function(){return this._size},a.prototype.toString=function(t){void 0===t&&(t=function(t){return t.key});var e=[];return function t(e,n,r,i,o){if(e){i(n+(r?"└── ":"├── ")+o(e)+"\n");var a=n+(r?" ":"│ ");e.left&&t(e.left,a,!1,i,o),e.right&&t(e.right,a,!0,i,o)}}(this._root,"",!0,function(t){return e.push(t)},t),e.join("")},a.prototype.update=function(t,e,i){var a=this._comparator,s=o(t,this._root,a),u=s.left,l=s.right;this._size--,a(t,e)<0?l=r(e,i,l,a,this):u=r(e,i,u,a,this),this._root=function(t,e,r){return null===e?t:null===t?e:((e=n(t.key,e,r)).left=t,e)}(u,l,a)},a.prototype.split=function(t){return o(t,this._root,this._comparator)},Object.defineProperties(a.prototype,s),a}()},function(t,e,n){"use strict";function r(t,e,n,r,i,o,a,s){var u=typeof(t=t||{}).default;"object"!==u&&"function"!==u||(t=t.default);var l,c="function"==typeof t?t.options:t;if(e&&(c.render=e,c.staticRenderFns=n,c._compiled=!0),r&&(c.functional=!0),o&&(c._scopeId=o),a?(l=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(a)},c._ssrRegister=l):i&&(l=s?function(){i.call(this,this.$root.$options.shadowRoot)}:i),l)if(c.functional){c._injectStyles=l;var f=c.render;c.render=function(t,e){return l.call(e),f(t,e)}}else{var p=c.beforeCreate;c.beforeCreate=p?[].concat(p,l):[l]}return{exports:t,options:c}}n.d(e,"a",function(){return r})},function(t,e,n){"use strict";function r(t,e){for(var n=[],r={},i=0;in.parts.length&&(r.parts.length=n.parts.length)}else{var a=[];for(i=0;ie?1:t0&&(e.balanceFactor+=t.balanceFactor),e}function i(t){var e=t.left;return t.left=e.right,t.left&&(t.left.parent=t),e.parent=t.parent,e.parent&&(e.parent.left===t?e.parent.left=e:e.parent.right=e),t.parent=e,e.right=t,t.balanceFactor-=1,e.balanceFactor>0&&(t.balanceFactor-=e.balanceFactor),e.balanceFactor-=1,t.balanceFactor<0&&(e.balanceFactor+=t.balanceFactor),e}var o=function(t,e){void 0===e&&(e=!1),this._comparator=t||n,this._root=null,this._size=0,this._noDuplicates=!!e},a={size:{}};return o.prototype.destroy=function(){return this._root=null,this},a.size.get=function(){return this._size},o.prototype.contains=function(t){if(this._root)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},o.prototype.next=function(t){var e=t;if(e)if(e.right)for(e=e.right;e&&e.left;)e=e.left;else for(e=t.parent;e&&e.right===t;)t=e,e=e.parent;return e},o.prototype.prev=function(t){var e=t;if(e)if(e.left)for(e=e.left;e&&e.right;)e=e.right;else for(e=t.parent;e&&e.left===t;)t=e,e=e.parent;return e},o.prototype.forEach=function(t){for(var e=this._root,n=[],r=!1,i=0;!r;)e?(n.push(e),e=e.left):n.length>0?(e=n.pop(),t(e,i++),e=e.right):r=!0;return this},o.prototype.keys=function(){for(var t=this._root,e=[],n=[],r=!1;!r;)t?(e.push(t),t=t.left):e.length>0?(t=e.pop(),n.push(t.key),t=t.right):r=!0;return n},o.prototype.values=function(){for(var t=this._root,e=[],n=[],r=!1;!r;)t?(e.push(t),t=t.left):e.length>0?(t=e.pop(),n.push(t.data),t=t.right):r=!0;return n},o.prototype.at=function(t){for(var e=this._root,n=[],r=!1,i=0;!r;)if(e)n.push(e),e=e.left;else if(n.length>0){if(e=n.pop(),i===t)return e;i++,e=e.right}else r=!0;return null},o.prototype.minNode=function(){var t=this._root;if(!t)return null;for(;t.left;)t=t.left;return t},o.prototype.maxNode=function(){var t=this._root;if(!t)return null;for(;t.right;)t=t.right;return t},o.prototype.min=function(){var t=this._root;if(!t)return null;for(;t.left;)t=t.left;return t.key},o.prototype.max=function(){var t=this._root;if(!t)return null;for(;t.right;)t=t.right;return t.key},o.prototype.isEmpty=function(){return!this._root},o.prototype.pop=function(){var t=this._root,e=null;if(t){for(;t.left;)t=t.left;e={key:t.key,data:t.data},this.remove(t.key)}return e},o.prototype.find=function(t){for(var e,n=this._root,r=n,i=this._comparator;r;){if(0===(e=i(t,r.key)))return r;r=e<0?r.left:r.right}return null},o.prototype.insert=function(t,e){if(!this._root)return this._root={parent:null,left:null,right:null,balanceFactor:0,key:t,data:e},this._size++,this._root;var n=this._comparator,o=this._root,a=null,s=0;if(this._noDuplicates)for(;o;){if(s=n(t,o.key),a=o,0===s)return null;o=s<0?o.left:o.right}else for(;o;)s=n(t,o.key),a=o,o=s<=0?o.left:o.right;var u,l={left:null,right:null,balanceFactor:0,parent:a,key:t,data:e};for(s<=0?a.left=l:a.right=l;a&&((s=n(a.key,t))<0?a.balanceFactor-=1:a.balanceFactor+=1,0!==a.balanceFactor);){if(a.balanceFactor<-1){1===a.right.balanceFactor&&i(a.right),u=r(a),a===this._root&&(this._root=u);break}if(a.balanceFactor>1){-1===a.left.balanceFactor&&r(a.left),u=i(a),a===this._root&&(this._root=u);break}a=a.parent}return this._size++,l},o.prototype.remove=function(t){if(!this._root)return null;for(var e=this._root,n=this._comparator,o=0;e&&0!==(o=n(t,e.key));)e=o<0?e.left:e.right;if(!e)return null;var a,s,u=e.key;if(e.left){for(a=e.left;a.left||a.right;){for(;a.right;)a=a.right;e.key=a.key,e.data=a.data,a.left&&(e=a,a=a.left)}e.key=a.key,e.data=a.data,e=a}if(e.right){for(s=e.right;s.left||s.right;){for(;s.left;)s=s.left;e.key=s.key,e.data=s.data,s.right&&(e=s,s=s.right)}e.key=s.key,e.data=s.data,e=s}for(var l,c=e.parent,f=e;c&&(c.left===f?c.balanceFactor-=1:c.balanceFactor+=1,c.balanceFactor<-1?(1===c.right.balanceFactor&&i(c.right),l=r(c),c===this._root&&(this._root=l),c=l):c.balanceFactor>1&&(-1===c.left.balanceFactor&&r(c.left),l=i(c),c===this._root&&(this._root=l),c=l),-1!==c.balanceFactor&&1!==c.balanceFactor);)f=c,c=c.parent;return e.parent&&(e.parent.left===e?e.parent.left=null:e.parent.right=null),e===this._root&&(this._root=null),this._size--,u},o.prototype.load=function(t,e){if(void 0===t&&(t=[]),void 0===e&&(e=[]),Array.isArray(t))for(var n=0,r=t.length;n0)for(var n=(this.length>>1)-1;n>=0;n--)this._down(n)}function i(t,e){return te?1:0}e.exports=r,e.exports.default=r,r.prototype={push:function(t){this.data.push(t),this.length++,this._up(this.length-1)},pop:function(){if(0!==this.length){var t=this.data[0];return this.length--,this.length>0&&(this.data[0]=this.data[this.length],this._down(0)),this.data.pop(),t}},peek:function(){return this.data[0]},_up:function(t){for(var e=this.data,n=this.compare,r=e[t];t>0;){var i=t-1>>1,o=e[i];if(n(r,o)>=0)break;e[t]=o,t=i}e[t]=r},_down:function(t){for(var e=this.data,n=this.compare,r=this.length>>1,i=e[t];t=0)break;e[t]=s,t=o}e[t]=i}}},{}],4:[function(t,e,n){"use strict";var r=t("./signed_area");e.exports=function(t,e){var n=t.point,i=e.point;return n[0]>i[0]?1:n[0]i[1]?1:-1:function(t,e,n,i){return t.left!==e.left?t.left?1:-1:0!==r(n,t.otherEvent.point,e.otherEvent.point)?t.isBelow(e.otherEvent.point)?-1:1:!t.isSubject&&e.isSubject?1:-1}(t,e,n)}},{"./signed_area":16}],5:[function(t,e,n){"use strict";var r=t("./signed_area"),i=t("./compare_events"),o=t("./equals");e.exports=function(t,e){if(t===e)return 0;if(0!==r(t.point,t.otherEvent.point,e.point)||0!==r(t.point,t.otherEvent.point,e.otherEvent.point))return o(t.point,e.point)?t.isBelow(e.otherEvent.point)?-1:1:t.point[0]===e.point[0]?t.point[1]e.contourId?1:-1):1===i(t,e)?1:-1}},{"./compare_events":4,"./equals":10,"./signed_area":16}],6:[function(t,e,n){"use strict";var r=t("./edge_type"),i=t("./operation"),o=i.INTERSECTION,a=i.UNION,s=i.DIFFERENCE,u=i.XOR;function l(t,e){switch(t.type){case r.NORMAL:switch(e){case o:return!t.otherInOut;case a:return t.otherInOut;case s:return t.isSubject&&t.otherInOut||!t.isSubject&&!t.otherInOut;case u:return!0}break;case r.SAME_TRANSITION:return e===o||e===a;case r.DIFFERENT_TRANSITION:return e===s;case r.NON_CONTRIBUTING:return!1}return!1}e.exports=function(t,e,n){null===e?(t.inOut=!1,t.otherInOut=!0):(t.isSubject===e.isSubject?(t.inOut=!e.inOut,t.otherInOut=e.otherInOut):(t.inOut=!e.otherInOut,t.otherInOut=e.isVertical()?!e.inOut:e.inOut),e&&(t.prevInResult=!l(e,n)||e.isVertical()?e.prevInResult:e)),t.inResult=l(t,n)}},{"./edge_type":9,"./operation":13}],7:[function(t,e,n){"use strict";var r=t("./compare_events"),i=t("./operation");function o(t,e,n,r){var i=t+1,o=e.length;if(i>o-1)return t-1;for(var a=e[t].point,s=e[i].point;i=r;)i--;return i}e.exports=function(t,e){var n,a,s,u=function(t){var e,n,i,o,a=[];for(n=0,i=t.length;n1?c[c.length-1].push(f[0]):c.push(f):e!==i.DIFFERENCE||u[n].isSubject||0!==c.length?0===c.length?c.push([[f]]):c[c.length-1].push(f[0]):c.push(f);var p=c.length-1,h=n,d=u[n].point;for(f[0].push(d);h>=n;)s=u[h],l[h]=!0,s.left?(s.resultInOut=!1,s.contourId=p):(s.otherEvent.resultInOut=!0,s.otherEvent.contourId=p),h=s.pos,l[h]=!0,f[0].push(u[h].point),h=o(h,u,l,n);s=u[h=-1===h?n:h],l[h]=l[s.pos]=!0,s.otherEvent.resultInOut=!0,s.otherEvent.contourId=p}return c}},{"./compare_events":4,"./operation":13}],8:[function(t,e,n){"use strict";var r=t("./sweep_event"),i=t("./equals"),o=t("./compare_events");e.exports=function(t,e,n){var a=new r(e,!1,t,t.isSubject),s=new r(e,!0,t.otherEvent,t.isSubject);return i(t.point,t.otherEvent.point)&&console.warn("what is that, a collapsed segment?",t),a.contourId=s.contourId=t.contourId,o(s,t.otherEvent)>0&&(t.otherEvent.left=!0,s.left=!1),t.otherEvent.otherEvent=s,t.otherEvent=a,n.push(s),n.push(a),n}},{"./compare_events":4,"./equals":10,"./sweep_event":18}],9:[function(t,e,n){"use strict";e.exports={NORMAL:0,NON_CONTRIBUTING:1,SAME_TRANSITION:2,DIFFERENT_TRANSITION:3}},{}],10:[function(t,e,n){"use strict";e.exports=function(t,e){return t[0]===e[0]&&t[1]===e[1]}},{}],11:[function(t,e,n){"use strict";var r=t("tinyqueue"),i=t("./sweep_event"),o=t("./compare_events"),a=t("./operation"),s=Math.max,u=Math.min,l=0;function c(t,e,n,r,a,l){var c,f,p,h,d,v;for(c=0,f=t.length-1;c0?v.left=!0:d.left=!0;var g=p[0],y=p[1];a[0]=u(a[0],g),a[1]=u(a[1],y),a[2]=s(a[2],g),a[3]=s(a[3],y),r.push(d),r.push(v)}}e.exports=function(t,e,n,i,s){var u,f,p,h,d,v,g=new r(null,o);for(p=0,h=t.length;pr[2]||r[0]>n[2]||n[1]>r[3]||r[1]>n[3])&&(i===a.INTERSECTION?o=s:i===a.DIFFERENCE?o=t:i!==a.UNION&&i!==a.XOR||(o=t.concat(e))),o}(t,e,l,c,n))return u===s?null:u;var p=r(f,t,e,l,c,n),h=i(p,n);return h}u.union=function(t,e){return u(t,e,a.UNION)},u.diff=function(t,e){return u(t,e,a.DIFFERENCE)},u.xor=function(t,e){return u(t,e,a.XOR)},u.intersection=function(t,e){return u(t,e,a.INTERSECTION)},u.operations=a,e.exports=u,e.exports.default=u},{"./connect_edges":7,"./fill_queue":11,"./operation":13,"./subdivide_segments":17}],13:[function(t,e,n){"use strict";e.exports={INTERSECTION:0,UNION:1,DIFFERENCE:2,XOR:3}},{}],14:[function(t,e,n){"use strict";var r=t("./divide_segment"),i=t("./segment_intersection"),o=t("./equals"),a=t("./compare_events"),s=t("./edge_type");e.exports=function(t,e,n){var u=i(t.point,t.otherEvent.point,e.point,e.otherEvent.point),l=u?u.length:0;if(0===l)return 0;if(1===l&&(o(t.point,e.point)||o(t.otherEvent.point,e.otherEvent.point)))return 0;if(2===l&&t.isSubject===e.isSubject)return 0;if(1===l)return o(t.point,u[0])||o(t.otherEvent.point,u[0])||r(t,u[0],n),o(e.point,u[0])||o(e.otherEvent.point,u[0])||r(e,u[0],n),1;var c=[],f=!1,p=!1;return o(t.point,e.point)?f=!0:1===a(t,e)?c.push(e,t):c.push(t,e),o(t.otherEvent.point,e.otherEvent.point)?p=!0:1===a(t.otherEvent,e.otherEvent)?c.push(e.otherEvent,t.otherEvent):c.push(t.otherEvent,e.otherEvent),f&&p||f?(e.type=s.NON_CONTRIBUTING,t.type=e.inOut===t.inOut?s.SAME_TRANSITION:s.DIFFERENT_TRANSITION,f&&!p&&r(c[1].otherEvent,c[0].point,n),2):p?(r(c[0],c[1].point,n),3):c[0]!==c[3].otherEvent?(r(c[0],c[1].point,n),r(c[1],c[2].point,n),3):(r(c[0],c[1].point,n),r(c[3].otherEvent,c[2].point,n),3)}},{"./compare_events":4,"./divide_segment":8,"./edge_type":9,"./equals":10,"./segment_intersection":15}],15:[function(t,e,n){"use strict";function r(t,e){return t[0]*e[1]-t[1]*e[0]}function i(t,e){return t[0]*e[0]+t[1]*e[1]}e.exports=function(t,e,n,o,a){var s=[e[0]-t[0],e[1]-t[1]],u=[o[0]-n[0],o[1]-n[1]];function l(t,e,n){return[t[0]+e*n[0],t[1]+e*n[1]]}var c=[n[0]-t[0],n[1]-t[1]],f=r(s,u),p=f*f,h=i(s,s),d=i(u,u);if(p>1e-9*h*d){var v=r(c,u)/f;if(v<0||v>1)return null;var g=r(c,s)/f;return g<0||g>1?null:a?null:[l(t,v,s)]}var y=i(c,c);if(f=r(c,s),(p=f*f)>1e-9*h*y)return null;var m=i(s,c)/h,_=m+i(s,u)/h,b=Math.min(m,_),x=Math.max(m,_);return b<=1&&x>=0?1===b?a?null:[l(t,b>0?b:0,s)]:0===x?a?null:[l(t,x<1?x:1,s)]:a&&0===b&&1===x?null:[l(t,b>0?b:0,s),l(t,x<1?x:1,s)]:null}},{}],16:[function(t,e,n){"use strict";e.exports=function(t,e,n){return(t[0]-n[0])*(e[1]-n[1])-(e[0]-n[0])*(t[1]-n[1])}},{}],17:[function(t,e,n){"use strict";var r=t("avl"),i=t("./compute_fields"),o=t("./possible_intersection"),a=t("./compare_segments"),s=t("./operation");e.exports=function(t,e,n,u,l,c){for(var f,p,h,d=new r(a),v=[],g=Math.min(u[2],l[2]),y=s.INTERSECTION,m=s.DIFFERENCE;t.length;){var _=t.pop();if(v.push(_),c===y&&_.point[0]>g||c===m&&_.point[0]>u[2])break;if(_.left){p=f=d.insert(_),h=d.minNode(),f=f!==h?d.prev(f):null,p=d.next(p);var b,x=f?f.key:null;if(i(_,x,c),p&&2===o(_,p.key,t)&&(i(_,x,c),i(_,p.key,c)),f&&2===o(f.key,_,t)){var E=f;E=E!==h?d.prev(E):null,b=E?E.key:null,i(x,b,c),i(_,x,c)}}else _=_.otherEvent,p=f=d.find(_),f&&p&&(f=f!==h?d.prev(f):null,p=d.next(p),d.remove(_),p&&f&&o(f.key,p.key,t))}return v}},{"./compare_segments":5,"./compute_fields":6,"./operation":13,"./possible_intersection":14,avl:2}],18:[function(t,e,n){"use strict";var r=t("./edge_type");function i(t,e,n,i,o){this.left=e,this.point=t,this.otherEvent=n,this.isSubject=i,this.type=o||r.NORMAL,this.inOut=!1,this.otherInOut=!1,this.prevInResult=null,this.inResult=!1,this.resultInOut=!1,this.isExteriorRing=!0}i.prototype={isBelow:function(t){var e=this.point,n=this.otherEvent.point;return this.left?(e[0]-t[0])*(n[1]-t[1])-(n[0]-t[0])*(e[1]-t[1])>0:(n[0]-t[0])*(e[1]-t[1])-(e[0]-t[0])*(n[1]-t[1])>0},isAbove:function(t){return!this.isBelow(t)},isVertical:function(){return this.point[0]===this.otherEvent.point[0]},clone:function(){var t=new i(this.point,this.left,this.otherEvent,this.isSubject,this.type);return t.inResult=this.inResult,t.prevInResult=this.prevInResult,t.isExteriorRing=this.isExteriorRing,t.inOut=this.inOut,t.otherInOut=this.otherInOut,t}},e.exports=i},{"./edge_type":9}]},{},[1])(1)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:o.default.compare;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.tree=new i.default(e),this.segments=[]}return r(t,[{key:"process",value:function(t){var e=t.segment,n=[],r=t.isLeft?this.tree.insert(e):this.tree.find(e),i=this.tree.prev(r),o=i?i.key:null,a=this.tree.next(r),s=a?a.key:null;if(t.isLeft){var u=[];if(o){var l=o.getIntersections(e);if(l.length>0){for(var c=this._possibleSplit(o,l),f=0,p=c.length;f0){for(var y=this._possibleSplit(s,g),m=0,_=y.length;m<_;m++)n.push(y[m]);for(var b=0,x=g.length;b0||u.length>0){if(this.tree.remove(e),u.length>0)for(var O=e.split(u),w=0,k=O.length;w0){for(var S=this._possibleSplit(o,I),A=0,C=S.length;A0){for(var s=[],u=0,l=t.coincidents.length;u0&&(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;o=(i=o.prevInResult)?i.prevInResult:null}}},{key:"enclosingRing",get:function(){return this._getCached("enclosingRing")}},{key:"isExteriorRing",get:function(){return this._getCached("isExteriorRing")}}]),t}();var l=e.PolyOut=function(){function t(e){u(this,t),this.exteriorRing=e,e.registerPoly(this),this.interiorRings=[]}return i(t,[{key:"addInterior",value:function(t){this.interiorRings.push(t),t.registerPoly(this)}},{key:"getGeom",value:function(){var t=[this.exteriorRing.getGeom()];if(null===t[0])return null;for(var e=0,n=this.interiorRings.length;e2)throw new Error("Input has more than two coordinates. Only 2-dimensional polygons supported.");e[n][i].push({x:t[n][i][a][0],y:t[n][i][a][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({x:t[n][i][0],y:t[n][i][1]})}}}return e},e.forceMultiPoly=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")},e.cleanMultiPoly=function(t){for(var e=0;e0;)t.pop()}})},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e,n){for(var c=[i.pointsAsObjects(e)],f=0,p=n.length;f1?e-1:0),o=1;o1?e-1:0),o=1;o1?e-1:0),o=1;o1?e-1:0),o=1;o1)for(var n=1;n=0&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},n(27),e.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||this&&this.setImmediate,e.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||this&&this.clearImmediate}).call(this,n(5))},function(t,e,n){"use strict";n.r(e),function(t,n){ /*! * Vue.js v2.5.16 * (c) 2014-2018 Evan You diff --git a/docs/build.js.map b/docs/build.js.map index bdb3514..95873dc 100644 --- a/docs/build.js.map +++ b/docs/build.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/flp.js","webpack:///./src/sweep-event.js","webpack:///./src/vector.js","webpack:///docs/src/App.vue","webpack:///./src/operation.js","webpack:///(webpack)/buildin/global.js","webpack:///./docs/src/App.vue?c77a","webpack:///./src/segment.js","webpack:///./node_modules/splaytree/dist/splay.js","webpack:///./node_modules/vue-loader/lib/runtime/component-normalizer.js","webpack:///./node_modules/vue-style-loader/lib/listToStyles.js","webpack:///./node_modules/vue-style-loader/lib/addStylesClient.js","webpack:///./node_modules/martinez-polygon-clipping/dist/martinez.js","webpack:///./src/sweep-line.js","webpack:///./src/geom-out.js","webpack:///./src/bbox.js","webpack:///./src/geom-in.js","webpack:///./src/clean-input.js","webpack:///./src/index.js","webpack:///./main.js","webpack:///./test/end-to-end/saw-and-cheese/args.geojson","webpack:///./test/end-to-end/almost-parrallel-segments/args.geojson","webpack:///./test/fixtures/asia-with-poly.geojson","webpack:///./node_modules/css-loader/lib/css-base.js","webpack:///./docs/src/App.vue?59dc","webpack:///./docs/src/App.vue?3f95","webpack:///./docs/src/App.vue","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/vue/dist/vue.esm.js","webpack:///./docs/src/main.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","undefined","Number","EPSILON","Math","pow","EPSILON_SQ","cmp","a","b","cmpPoints","aPt","bPt","x","diff","y","_flp","_vector","SweepEvent","point","_classCallCheck","this","events","push","cmpX","cmpY","link","isLeft","segment","isVertical","pointSegCmp","comparePoint","otherSE","aId","ringIn","id","bId","Error","other","otherEvents","iMax","length","evt","registerCoincident","ringOut","isInResult","baseEvent","_this","cache","Map","fillCache","linkedEvent","nextEvent","set","sine","sineOfAngle","cosine","cosineOfAngle","has","_cache$get","asine","acosine","_cache$get2","bsine","bcosine","cmpZeroASine","cmpZeroBSine","leftSE","rightSE","ptCmp","isRight","getOtherSE","crossProduct","dotProduct","compareVectorAngles","basePt","endPt1","endPt2","v1","v2","kross","v","sqrt","horizontalIntersection","pShared","pBase","pAngle","vBase","vAngle","pt","verticalIntersection","intersection","pt1","pt2","ve","d1","d2","perpendicular","pc","martinez","operation","martinezOp","turfOperation","turf","intersect","inData","inLayer","outLayer","map","fc","JSON","parse","_asiaWithPoly2","default","fc2","_args2","fc3","_args4","data","operations","selectedOperation","performance","martinezPerf","jstsPerf","methods","setInput","e","clearLayers","target","addData","fitBounds","getBounds","padding","runOperation","setOperation","union","xor","difference","t0","now","outData","features","geometry","coordinates","toFixed","type","addTo","m0","j0","mounted","window","L","minZoom","maxZoom","center","zoom","crs","CRS","Simple","geoJson","color","Operation","types","INTERSECTION","UNION","XOR","DIFFERENCE","numMultiPolys","g","Function","eval","__webpack_exports__","staticRenderFns","render","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","on","change","_l","directives","rawName","expression","domProps","checked","_q","$event","_s","_bbox","Segment","coincidents","_clearCache","alx","aly","blx","bly","arx","brx","cmpLeft","cmpLX","cmpLY","tmp","se","isInBbox","bbox","isAnEndpoint","vector","interPt","bboxOverlap","getBboxOverlap","intersections","bboxCorners","getUniqueCorners","isPointOn","points","sort","newPts","shift","newSegments","newEvents","thisSeg","newLeftSE","newRightSE","moreNewEvents","split","prev","ring","otherCoincidents","seg","next","prevNotCoincident","sweepLineEntersRing","ringsInsideOf","rings","prevRingsInsideOf","prevRingsEntering","getRingsEntering","ringsExiting","getRingsExiting","includes","ringsEntering","sameSLER","diffSLER","getRingsEnteringAndExiting","isValid","mps","poly","multiPoly","isInside","getRingsOnEdgeOf","multiPolysInsideOf","mpsEnters","slice","mpsExits","mp","sweepLineEntersPoly","sweepLineExitsPoly","getMultiPolysInsideOf","getMPS","getMultiPolysSLPEntersAndExits","multiPolysSLPEnters","multiPolysSLPExits","least","most","abs","isJustSubject","isSubject","_cache","y1","y2","ll","ur","isValidEdgeForPoly","isExterior","point1","point2","Node","left","right","DEFAULT_COMPARE","splay","comparator","N","insert","tree","node","_size","remove","Tree","_comparator","_root","prototypeAccessors","size","configurable","add","pop","findStatic","current","compare","find","contains","forEach","visitor","ctx","Q","done","range","low","high","fn","keys","ref","values","min","minNode","max","maxNode","at","index","root","successor","predecessor","clear","toList","head","load","presort","pivot","j","loadRecursive","parent","start","end","middle","floor","mergedList","l1","l2","p1","p2","mergeLists","createList","sortedListToBST","list","isEmpty","toString","printNode","out","printRow","prefix","isTail","indent","join","update","newKey","newData","merge","defineProperties","factory","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","options","_compiled","functional","_scopeId","context","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","concat","listToStyles","parentId","styles","newStyles","item","part","css","media","sourceMap","parts","addStylesClient","hasDocument","document","DEBUG","stylesInDom","getElementsByTagName","singletonElement","singletonCounter","isProduction","noop","ssrIdKey","isOldIE","navigator","test","userAgent","toLowerCase","_isProduction","_options","addStylesToDom","newList","mayRemove","domStyle","refs","addStyle","createStyleElement","styleElement","createElement","appendChild","obj","querySelector","parentNode","removeChild","styleIndex","applyToSingletonTag","setAttribute","ssrId","sources","btoa","unescape","encodeURIComponent","stringify","styleSheet","cssText","firstChild","createTextNode","newObj","textStore","replaceText","replacement","filter","Boolean","cssNode","childNodes","insertBefore","require","u","f","code","1","boolean","./src/index","2","global","print","row","height","rotateLeft","rightNode","balanceFactor","rotateRight","leftNode","AVLTree","noDuplicates","_noDuplicates","destroy","callback","returnValue","subtree","newRoot","newNode","pp","Array","isArray","len","isBalanced","lh","rh","avl","3","TinyQueue","defaultCompare","_down","_up","top","peek","pos","halfLength","best","4","signedArea","e1","e2","otherEvent","isBelow","specialCases","./signed_area","5","compareEvents","equals","le1","le2","isAbove","contourId","./compare_events","./equals","6","edgeType","operationType","inResult","event","NORMAL","otherInOut","SAME_TRANSITION","DIFFERENT_TRANSITION","NON_CONTRIBUTING","inOut","prevInResult","./edge_type","./operation","7","nextPos","resultEvents","processed","origIndex","newPos","sortedEvents","sorted","orderEvents","result","contour","isExteriorRing","ringId","initial","resultInOut","8","queue","console","warn","./sweep_event","9","10","11","Queue","processPolygon","contourOrHole","depth","s1","s2","subject","clipping","sbbox","cbbox","polygonSet","ii","jj","eventQueue","tinyqueue","12","subdivideSegments","connectEdges","fillQueue","EMPTY","trivial","trivialOperation","Infinity","compareBBoxes","./connect_edges","./fill_queue","./subdivide_segments","13","14","divideSegment","se1","se2","inter","nintersections","leftCoincide","rightCoincide","./divide_segment","./segment_intersection","15","a1","a2","b1","b2","noEndpointTouch","va","vb","toPoint","sqrKross","sqrLenA","sqrLenB","sqrLenE","sa","sb","smin","smax","16","p0","17","computeFields","possibleIntersection","compareSegments","begin","sweepLine","rightbound","prevprevEvent","prevEvent","prevprev","./compare_segments","./compute_fields","./possible_intersection","18","EdgeType","clone","copy","SweepLine","arguments","SplayTree","segments","prevNode","prevSeg","nextNode","nextSeg","mySplitters","prevInters","getIntersections","newEventsFromSplit","_possibleSplit","nextInters","registerPrev","inters","isOrientationCorrect","swapEvents","splitters","_sweepEvent","RingOut","registerRingOut","allSegments","ringsOut","startingPoint","intersectionLEs","availableLEs","getAvailableLinkedEvents","firstPt","lastPt","indexLE","jMax","getLeftmostComparator","intersectionLE","splice","ringEvents","unshift","reverse","prevPt","nextPt","propName","calcMethod","enclosingRing","leftMostEvt","prevPrevSeg","_getCached","PolyOut","exteriorRing","registerPoly","interiorRings","geom","getGeom","ringGeom","MultiPolyOut","polys","_composePolys","polyGeom","addInterior","doBboxesOverlap","xmin","ymin","xmax","ymax","xpt","ypt","lowerX","upperX","xEq","yEq","RingIn","geomRing","prevPoint","fromRing","sweepEvents","ringsSameSLER","ringsDiffSLER","exterior","interiors","PolyIn","geomPoly","getSweepEvents","ringSweepEvents","ringsOnEdgeOf","isInsideExterior","isInterior","MultiPolyIn","geomMultiPoly","polySweepEvents","cleanRing","pointsAsObjects","output","k","kMax","forceMultiPoly","cleanMultiPoly","multipoly","interiorRing","isPointUncessary","moreGeoms","geoms","cleanInput","multipolys","geomIn","markAsSubject","register","process","geomOut","_len","_key","_src2","_len2","_key2","_len3","_key3","subjectGeom","_len4","clippingGeoms","_key4","useSourceMap","content","cssMapping","sourceMapping","sourceURLs","source","sourceRoot","cssWithMappingToString","mediaQuery","alreadyImportedModules","locals","_node_modules_vue_loader_lib_runtime_component_normalizer__WEBPACK_IMPORTED_MODULE_2__","__vue_styles__","Component","_babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_App_vue__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_vue_loader_lib_template_compiler_index_id_data_v_457e2f94_hasScoped_false_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_App_vue__WEBPACK_IMPORTED_MODULE_1__","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","Item","array","nextTick","args","apply","title","browser","env","argv","version","versions","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","setImmediate","registerImmediate","html","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","getPrototypeOf","handle","runIfPresent","postMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","port2","documentElement","script","onreadystatechange","random","indexOf","addEventListener","attachEvent","task","clearImmediate","self","scope","Timeout","clearFn","_id","_clearFn","setInterval","clearInterval","close","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","emptyObject","freeze","isUndef","isDef","isTrue","isPrimitive","isObject","_toString","isPlainObject","isRegExp","isValidArrayIndex","val","parseFloat","String","isFinite","toNumber","isNaN","makeMap","str","expectsLowerCase","isBuiltInTag","isReservedAttribute","arr","hasOwn","cached","camelizeRE","camelize","replace","_","toUpperCase","capitalize","charAt","hyphenateRE","hyphenate","boundFn","_length","toArray","ret","extend","to","_from","toObject","res","no","identity","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","every","keysA","keysB","looseIndexOf","called","SSR_ATTR","ASSET_TYPES","LIFECYCLE_HOOKS","config","optionMergeStrategies","silent","productionTip","devtools","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","_lifecycleHooks","def","writable","bailRE","_isServer","hasProto","inBrowser","inWeex","WXEnvironment","platform","weexPlatform","UA","isIE","isIE9","isEdge","isIOS","nativeWatch","watch","supportsPassive","opts","isServerRendering","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","Ctor","_Set","hasSymbol","Reflect","ownKeys","Set","uid","Dep","subs","addSub","sub","removeSub","depend","addDep","notify","targetStack","pushTarget","_target","popTarget","VNode","tag","children","text","elm","componentOptions","asyncFactory","fnContext","fnOptions","fnScopeId","componentInstance","raw","isStatic","isRootInsert","isComment","isCloned","isOnce","asyncMeta","isAsyncPlaceholder","child","createEmptyVNode","createTextVNode","cloneVNode","vnode","cloned","arrayProto","arrayMethods","method","original","inserted","ob","__ob__","observeArray","dep","arrayKeys","getOwnPropertyNames","shouldObserve","toggleObserving","Observer","vmCount","protoAugment","copyAugment","walk","src","__proto__","observe","asRootData","isExtensible","_isVue","defineReactive","customSetter","shallow","getOwnPropertyDescriptor","setter","childOb","dependArray","newVal","del","items","strats","mergeData","from","toVal","fromVal","mergeDataOrFn","parentVal","childVal","vm","instanceData","defaultData","mergeHook","mergeAssets","key$1","props","inject","computed","provide","defaultStrat","mergeOptions","normalizeProps","normalized","normalizeInject","dirs","normalizeDirectives","extendsFrom","extends","mixins","mergeField","strat","resolveAsset","warnMissing","assets","camelizedId","PascalCaseId","validateProp","propOptions","propsData","prop","absent","booleanIndex","getTypeIndex","stringIndex","_props","getType","getPropDefaultValue","prevShouldObserve","match","isSameType","expectedTypes","handleError","err","info","cur","$parent","hooks","errorCaptured","globalHandleError","logError","error","microTimerFunc","macroTimerFunc","callbacks","pending","flushCallbacks","copies","useMacroTask","port","Promise","resolve","then","cb","_resolve","seenObjects","traverse","_traverse","seen","isA","isFrozen","depId","normalizeEvent","passive","once$$1","capture","createFnInvoker","fns","invoker","arguments$1","updateListeners","oldOn","remove$$1","old","params","mergeVNodeHook","hookKey","oldHook","wrappedHook","merged","checkProp","hash","altKey","preserve","normalizeChildren","normalizeArrayChildren","nestedIndex","lastIndex","last","isTextNode","_isVList","ensureCtor","comp","base","getFirstComponentChild","$once","$on","remove$1","$off","updateComponentListeners","oldListeners","resolveSlots","slots","slot","name$1","isWhitespace","resolveScopedSlots","activeInstance","isInInactiveTree","_inactive","activateChildComponent","direct","_directInactive","$children","callHook","handlers","_hasHookEvent","$emit","activatedChildren","waiting","flushing","flushSchedulerQueue","watcher","activatedQueue","updatedQueue","callActivatedHooks","_watcher","_isMounted","callUpdatedHooks","uid$1","Watcher","expOrFn","isRenderWatcher","_watchers","deep","user","lazy","sync","dirty","deps","newDeps","depIds","newDepIds","path","parsePath","cleanupDeps","queueWatcher","oldValue","evaluate","teardown","_isBeingDestroyed","sharedPropertyDefinition","proxy","sourceKey","initState","propsOptions","_propKeys","loop","initProps","initMethods","_data","getData","charCodeAt","initData","watchers","_computedWatchers","isSSR","userDef","computedWatcherOptions","defineComputed","initComputed","handler","createWatcher","initWatch","shouldCache","createComputedGetter","$watch","resolveInject","provideKey","_provided","provideDefault","renderList","renderSlot","fallback","bindObject","nodes","scopedSlotFn","$scopedSlots","slotNodes","$slots","_rendered","resolveFilter","isKeyNotMatch","expect","actual","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","renderStatic","isInFor","_staticTrees","markStatic","_renderProxy","markOnce","markStaticNode","bindObjectListeners","ours","installRenderHelpers","_o","_n","_t","_i","_m","_f","_k","_b","_e","_u","_g","FunctionalRenderContext","contextVm","_original","isCompiled","needNormalization","injections","scopedSlots","cloneAndMarkFunctionalResult","mergeProps","componentVNodeHooks","init","hydrating","parentElm","refElm","_isDestroyed","keepAlive","mountedNode","prepatch","_isComponent","_parentVnode","_parentElm","_refElm","inlineTemplate","createComponentInstanceForVnode","$mount","oldVnode","parentVnode","renderChildren","hasChildren","_renderChildren","_vnode","$attrs","$listeners","propKeys","_parentListeners","$forceUpdate","updateChildComponent","deactivateChildComponent","$destroy","hooksToMerge","createComponent","baseCtor","_base","cid","errorComp","resolved","loading","loadingComp","contexts","forceRender","reject","reason","component","delay","resolveAsyncComponent","createAsyncPlaceholder","resolveConstructorOptions","model","transformModel","extractPropsFromVNodeData","renderContext","vnodes","createFunctionalComponent","nativeOn","abstract","installComponentHooks","SIMPLE_NORMALIZE","ALWAYS_NORMALIZE","normalizationType","alwaysNormalize","is","simpleNormalizeChildren","applyNS","force","style","class","registerDeepBindings","_createElement","uid$3","super","superOptions","modifiedOptions","modified","latest","extended","extendOptions","sealed","sealedOptions","dedupe","resolveModifiedOptions","components","Vue","_init","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","constructor","Comp","initProps$1","initComputed$1","mixin","use","getComponentName","matches","pattern","pruneCache","keepAliveInstance","cachedNode","pruneCacheEntry","cached$$1","_uid","vnodeComponentOptions","_componentTag","initInternalComponent","$refs","initLifecycle","_events","initEvents","parentData","initRender","initInjections","initProvide","el","initMixin","dataDef","propsDef","$set","$delete","immediate","stateMixin","hookRE","cbs","i$1","eventsMixin","_update","prevEl","$el","prevVnode","prevActiveInstance","__patch__","__vue__","lifecycleMixin","$nextTick","_render","renderMixin","patternTypes","RegExp","builtInComponents","KeepAlive","include","exclude","created","destroyed","this$1","parseInt","configDef","util","delete","plugin","installedPlugins","_installedPlugins","install","initUse","initMixin$1","definition","initAssetRegisters","initGlobalAPI","acceptValue","attr","isEnumeratedAttr","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","isFalsyAttrValue","genClassForVnode","childNode","mergeClassData","dynamicClass","stringifyClass","renderClass","stringified","stringifyArray","stringifyObject","namespaceMap","svg","math","isHTMLTag","isSVG","unknownElementCache","isTextInputType","query","selected","nodeOps","tagName","multiple","createElementNS","namespace","createComment","referenceNode","nextSibling","setTextContent","textContent","setStyleScope","registerRef","isRemoval","refInFor","emptyNode","sameVnode","typeA","typeB","sameInputType","createKeyToOldIdx","beginIdx","endIdx","updateDirectives","oldDir","isCreate","isDestroy","oldDirs","normalizeDirectives$1","newDirs","dirsWithInsert","dirsWithPostpatch","callHook$1","componentUpdated","callInsert","emptyModifiers","modifiers","getRawDirName","baseModules","updateAttrs","inheritAttrs","oldAttrs","setAttr","removeAttributeNS","removeAttribute","baseSetAttr","setAttributeNS","__ieph","blocker","stopImmediatePropagation","removeEventListener","updateClass","oldData","cls","transitionClass","_transitionClasses","_prevClass","chr","index$1","expressionPos","expressionEndPos","klass","validDivisionCharRE","parseFilters","exp","filters","inSingle","inDouble","inTemplateString","inRegex","curly","square","paren","lastFilterIndex","trim","pushFilter","wrapFilter","baseWarn","msg","pluckModuleFunction","addProp","plain","addAttr","addRawAttr","attrsMap","attrsList","addDirective","arg","addHandler","important","native","nativeEvents","newHandler","getBindingAttr","getStatic","dynamicValue","getAndRemoveAttr","staticValue","removeFromMap","genComponentModel","number","valueExpression","assignment","genAssignmentCode","lastIndexOf","eof","isStringStart","parseString","parseBracket","parseModel","inBracket","stringQuote","target$1","RANGE_TOKEN","CHECKBOX_RADIO_TOKEN","add$1","_withTask","onceHandler","remove$2","createOnceHandler","updateDOMListeners","normalizeEvents","updateDOMProps","oldProps","_value","strCur","shouldUpdateValue","checkVal","composing","notInFocus","activeElement","isNotInFocusAndDirty","_vModifiers","isDirtyWithModifiers","parseStyleText","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","staticStyle","bindingStyle","emptyStyle","cssVarRE","importantRE","setProp","setProperty","normalizedName","normalize","vendorNames","capName","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","checkChild","styleData","getStyle","addClass","classList","getAttribute","removeClass","tar","resolveTransition","autoCssTransition","enterClass","enterToClass","enterActiveClass","leaveClass","leaveToClass","leaveActiveClass","hasTransition","TRANSITION","ANIMATION","transitionProp","transitionEndEvent","animationProp","animationEndEvent","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","raf","requestAnimationFrame","nextFrame","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","expectedType","getTransitionInfo","propCount","ended","onEnd","transformRE","getComputedStyle","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","durations","toMs","enter","toggleDisplay","_leaveCb","cancelled","transition","_enterCb","nodeType","appearClass","appearToClass","appearActiveClass","beforeEnter","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","duration","transitionNode","isAppear","startClass","activeClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","show","pendingNode","_pending","isValidDuration","leave","rm","beforeLeave","afterLeave","leaveCancelled","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","patch","backend","removeNode","createElm","insertedVnodeQueue","nested","ownerArray","isReactivated","initComponent","innerNode","activate","reactivateComponent","setScope","createChildren","invokeCreateHooks","pendingInsert","isPatchable","ref$$1","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","ch","removeAndInvokeRemoveHook","childElm","createRmCb","findIdxInOld","oldCh","patchVnode","removeOnly","hydrate","newCh","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","updateChildren","postpatch","invokeInsertHook","isRenderedModule","inVPre","pre","hasChildNodes","innerHTML","childrenMatch","fullInvoke","isInitialPatch","isRealElement","hasAttribute","oldElm","parentElm$1","patchable","i$2","createPatchFunction","vmodel","trigger","directive","_vOptions","setSelected","getValue","onCompositionStart","onCompositionEnd","prevOptions","curOptions","some","hasNoMatchingOption","actuallySetSelected","isMultiple","option","selectedIndex","createEvent","initEvent","dispatchEvent","locateNode","platformDirectives","transition$$1","originalDisplay","__vOriginalDisplay","display","unbind","transitionProps","getRealChild","compOptions","extractTransitionData","placeholder","rawChild","Transition","hasParentTransition","_leaving","oldRawChild","oldChild","isSameChild","delayedLeave","moveClass","callPendingCbs","_moveCb","recordPosition","getBoundingClientRect","applyTranslation","oldPos","dx","dy","moved","transform","WebkitTransform","transitionDuration","platformComponents","TransitionGroup","prevChildren","rawChildren","transitionData","kept","removed","c$1","beforeUpdate","updated","hasMove","_reflow","body","offsetHeight","propertyName","_hasMove","cloneNode","HTMLUnknownElement","HTMLElement","mountComponent","defaultTagRE","regexEscapeRE","buildRegex","delimiters","open","klass$1","staticKeys","transformNode","classBinding","genData","decoder","style$1","styleBinding","he","isUnaryTag","canBeLeftOpenTag","isNonPhrasingTag","attribute","ncname","qnameCapture","startTagOpen","startTagClose","endTag","doctype","comment","conditionalComment","IS_REGEX_CAPTURING_BROKEN","isPlainTextElement","reCache","decodingMap","<",">",""","&"," "," ","encodedAttr","encodedAttrWithNewLines","isIgnoreNewlineTag","shouldIgnoreFirstNewline","decodeAttr","shouldDecodeNewlines","re","warn$2","transforms","preTransforms","postTransforms","platformIsPreTag","platformMustUseProp","platformGetTagNamespace","onRE","dirRE","forAliasRE","forIteratorRE","stripParensRE","argRE","bindRE","modifierRE","decodeHTMLCached","createASTElement","makeAttrsMap","template","isPreTag","currentParent","stack","preserveWhitespace","inPre","closeElement","element","lastTag","expectHTML","isUnaryTag$$1","canBeLeftOpenTag$$1","endTagLength","stackedTag","reStackedTag","rest$1","all","chars","parseEndTag","textEnd","commentEnd","shouldKeepComment","substring","advance","conditionalEnd","doctypeMatch","endTagMatch","curIndex","startTagMatch","parseStartTag","handleStartTag","rest","unarySlash","unary","shouldDecodeNewlinesForHref","lowerCasedTag","lowerCasedTagName","parseHTML","comments","ieNSBug","ieNSPrefix","guardIESVGBug","forbidden","checkRootConstraints","processPre","processRawAttrs","processFor","if","addIfCondition","block","else","elseif","processIf","processOnce","processElement","findPrevElement","processIfConditions","slotScope","slotTarget","lastNode","tagRE","tokenValue","tokens","rawTokens","exec","@binding","parseText","for","checkInFor","processRef","slotName","processSlot","processComponent","isProp","hasBindings","parseModifiers","camel","argMatch","processAttrs","inMatch","alias","iteratorMatch","iterator1","iterator2","parseFor","condition","ifConditions","cloneASTElement","modules$1","preTransformNode","typeBinding","ifCondition","ifConditionExtra","hasElse","elseIfCondition","branch0","branch1","branch2","isStaticKey","isPlatformReservedTag","baseOptions","_warn","genSelect","valueBinding","trueValueBinding","falseValueBinding","genCheckboxModel","genRadioModel","needCompositionGuard","genDefaultModel","reduce","genStaticKeys","genStaticKeysCached","optimize","markStatic$1","static","isDirectChildOfTemplateFor","l$1","markStaticRoots","staticInFor","staticRoot","fnExpRE","simplePathRE","esc","tab","space","up","down","keyNames","genGuard","modifierCode","stop","prevent","ctrl","alt","meta","genHandlers","genHandler","isMethodPath","isFunctionExpression","genModifierCode","keyModifier","genFilterCode","genKeyFilter","keyVal","keyCode","keyName","baseDirectives","wrapListeners","wrapData","cloak","CodegenState","dataGenFns","maybeComponent","onceId","generate","ast","state","genElement","staticProcessed","genStatic","onceProcessed","genOnce","forProcessed","altGen","altHelper","genFor","ifProcessed","genIf","genChildren","bind$$1","genSlot","componentName","genData$2","genComponent","altEmpty","genIfConditions","conditions","genTernaryExp","needRuntime","hasRuntime","gen","genDirectives","genProps","genScopedSlot","inlineRenderFns","genInlineTemplate","genForScopedSlot","checkSkip","altGenElement","altGenNode","el$1","needsNormalization","getNormalizationType","genNode","transformSpecialNewlines","createFunction","errors","baseCompile","div","compileToFunctions","compile","finalOptions","tips","tip","compiled","fnGenErrors","createCompileToFunctionFn","getShouldDecode","href","idToTemplate","mount","outerHTML","container","getOuterHTML","App"],"mappings":"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","file":"build.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/docs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 30);\n","/* Javascript doesn't do integer math. Everything is\n * floating point with percision Number.EPSILON.\n *\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/EPSILON\n */\n\n// IE Polyfill\nif (Number.EPSILON === undefined) Number.EPSILON = Math.pow(2, -52)\n\nconst EPSILON_SQ = Number.EPSILON * Number.EPSILON\n\n/* FLP comparator */\nexport const cmp = (a, b) => {\n // check if they're both 0\n if (-Number.EPSILON < a && a < Number.EPSILON) {\n if (-Number.EPSILON < b && b < Number.EPSILON) {\n return 0\n }\n }\n\n // check if they're flp equal\n if ((a - b) * (a - b) < EPSILON_SQ * a * b) {\n return 0\n }\n\n // normal comparison\n return a < b ? -1 : 1\n}\n\n/* FLP point comparator, favors point encountered first by sweep line */\nexport const cmpPoints = (aPt, bPt) => {\n if (aPt === bPt) return 0\n\n // fist compare X, then compare Y\n let a = aPt.x\n let b = bPt.x\n\n // inlined version of cmp() for performance boost\n if (\n a <= -Number.EPSILON ||\n Number.EPSILON <= a ||\n b <= -Number.EPSILON ||\n Number.EPSILON <= b\n ) {\n const diff = a - b\n if (diff * diff >= EPSILON_SQ * a * b) {\n return a < b ? -1 : 1\n }\n }\n\n a = aPt.y\n b = bPt.y\n\n // inlined version of cmp() for performance boost\n if (\n a <= -Number.EPSILON ||\n Number.EPSILON <= a ||\n b <= -Number.EPSILON ||\n Number.EPSILON <= b\n ) {\n const diff = a - b\n if (diff * diff >= EPSILON_SQ * a * b) {\n return a < b ? -1 : 1\n }\n }\n\n // they're the same\n return 0\n}\n","import { cmp, cmpPoints } from './flp'\nimport { cosineOfAngle, sineOfAngle } from './vector'\n\nexport default class SweepEvent {\n\n static compare (a, b) {\n\n // if the events are already linked, then we know the points are equal\n if (a.point !== b.point) {\n\n // favor event with a point that the sweep line hits first\n const cmpX = cmp(a.point.x, b.point.x)\n if (cmpX !== 0) return cmpX\n\n const cmpY = cmp(a.point.y, b.point.y)\n if (cmpY !== 0) return cmpY\n\n // Points are equal, so go ahead and link these events.\n // This will cascade and possibly mark segments coincident.\n a.link(b)\n }\n\n // favor right events over left\n if (a.isLeft !== b.isLeft) return a.isLeft ? 1 : -1\n\n // favor vertical segments for left events, and non-vertical for right\n // https://github.com/mfogel/polygon-clipping/issues/29\n if (a.segment.isVertical && ! b.segment.isVertical) return a.isLeft ? 1 : -1\n if (! a.segment.isVertical && b.segment.isVertical) return a.isLeft ? -1 : 1\n\n // favor events where the line segment is lower\n const pointSegCmp = a.segment.comparePoint(b.otherSE.point)\n if (pointSegCmp !== 0) return pointSegCmp > 0 ? -1 : 1\n\n // as a tie-breaker, favor lower segment creation id\n const aId = a.segment.ringIn.id\n const bId = b.segment.ringIn.id\n if (aId !== bId) return aId < bId ? -1 : 1\n\n // NOTE: We don't sort on segment length because that changes\n // as segments are divided.\n\n // they appear to be the same point... are they?\n if (a === b) return 0\n\n throw new Error(\n `SweepEvent comparison failed at [${a.point.x}, ${a.point.y}]... ` +\n `equal but not identical?`\n )\n }\n\n // Warning: input will be modified and re-used (for performance)\n constructor (point) {\n if (point.events === undefined) point.events = [this]\n else point.events.push(this)\n this.point = point\n }\n\n link (other) {\n if (other.point === this.point) {\n throw new Error(`Tried to link already linked events`)\n }\n const otherEvents = other.point.events\n for (let i = 0, iMax = otherEvents.length; i < iMax; i++) {\n const evt = otherEvents[i]\n this.point.events.push(evt)\n evt.point = this.point\n if (this.otherSE.point === evt.otherSE.point) {\n this.segment.registerCoincident(evt.segment)\n }\n }\n }\n\n getAvailableLinkedEvents () {\n // point.events is always of length 2 or greater\n const events = []\n for (let i = 0, iMax = this.point.events.length; i < iMax; i++) {\n const evt = this.point.events[i]\n if (evt !== this && !evt.segment.ringOut && evt.segment.isInResult) {\n events.push(evt)\n }\n }\n return events\n }\n\n /**\n * Returns a comparator function for sorting linked events that will\n * favor the event that will give us the smallest left-side angle.\n * All ring construction starts as low as possible heading to the right,\n * so by always turning left as sharp as possible we'll get polygons\n * without uncessary loops & holes.\n *\n * The comparator function has a compute cache such that it avoids\n * re-computing already-computed values.\n */\n getLeftmostComparator (baseEvent) {\n const cache = new Map()\n\n const fillCache = linkedEvent => {\n const nextEvent = linkedEvent.otherSE\n cache.set(linkedEvent, {\n sine: sineOfAngle(this.point, baseEvent.point, nextEvent.point),\n cosine: cosineOfAngle(this.point, baseEvent.point, nextEvent.point)\n })\n }\n\n return (a, b) => {\n if (!cache.has(a)) fillCache(a)\n if (!cache.has(b)) fillCache(b)\n\n const { sine: asine, cosine: acosine } = cache.get(a)\n const { sine: bsine, cosine: bcosine } = cache.get(b)\n\n const cmpZeroASine = cmp(asine, 0)\n const cmpZeroBSine = cmp(bsine, 0)\n\n if (cmpZeroASine >= 0 && cmpZeroBSine >= 0) return cmp(bcosine, acosine)\n if (cmpZeroASine < 0 && cmpZeroBSine < 0) return cmp(acosine, bcosine)\n return cmp(bsine, asine)\n }\n }\n\n get isLeft () {\n return this === this.segment.leftSE\n }\n\n get isRight () {\n return this === this.segment.rightSE\n }\n\n get isOrientationCorrect () {\n const ptCmp = cmpPoints(this.point, this.otherSE.point)\n if (ptCmp < 0) return this.isLeft\n if (ptCmp > 0) return this.isRight\n throw new Error(\"Degenerate segment encountered\")\n }\n\n get otherSE () {\n return this.segment.getOtherSE(this)\n }\n}\n","import { cmp } from './flp'\n\n/* Cross Product of two vectors with first point at origin */\nexport const crossProduct = (a, b) => a.x * b.y - a.y * b.x\n\n/* Dot Product of two vectors with first point at origin */\nexport const dotProduct = (a, b) => a.x * b.x + a.y * b.y\n\n/* Comparator for two vectors with same starting point */\nexport const compareVectorAngles = (basePt, endPt1, endPt2) => {\n const v1 = { x: endPt1.x - basePt.x, y: endPt1.y - basePt.y }\n const v2 = { x: endPt2.x - basePt.x, y: endPt2.y - basePt.y }\n const kross = crossProduct(v1, v2)\n return cmp(kross, 0)\n}\n\nexport const length = v => Math.sqrt(dotProduct(v, v))\n\n/* Get the sine of the angle from pShared -> pAngle to pShaed -> pBase */\nexport const sineOfAngle = (pShared, pBase, pAngle) => {\n const vBase = { x: pBase.x - pShared.x, y: pBase.y - pShared.y }\n const vAngle = { x: pAngle.x - pShared.x, y: pAngle.y - pShared.y }\n return crossProduct(vAngle, vBase) / length(vAngle) / length(vBase)\n}\n\n/* Get the cosine of the angle from pShared -> pAngle to pShaed -> pBase */\nexport const cosineOfAngle = (pShared, pBase, pAngle) => {\n const vBase = { x: pBase.x - pShared.x, y: pBase.y - pShared.y }\n const vAngle = { x: pAngle.x - pShared.x, y: pAngle.y - pShared.y }\n return dotProduct(vAngle, vBase) / length(vAngle) / length(vBase)\n}\n\n/* Get the x coordinate where the given line (defined by a point and vector)\n * crosses the horizontal line with the given y coordiante.\n * In the case of parrallel lines (including overlapping ones) returns null. */\nexport const horizontalIntersection = (pt, v, y) => {\n if (v.y === 0) return null\n return { x: pt.x + v.x / v.y * ( y - pt.y ), y: y }\n}\n\n/* Get the y coordinate where the given line (defined by a point and vector)\n * crosses the vertical line with the given x coordiante.\n * In the case of parrallel lines (including overlapping ones) returns null. */\nexport const verticalIntersection = (pt, v, x) => {\n if (v.x === 0) return null\n return { x: x, y: pt.y + v.y / v.x * ( x - pt.x ) }\n}\n\n/* Get the intersection of two lines, each defined by a base point and a vector.\n * In the case of parrallel lines (including overlapping ones) returns null. */\nexport const intersection = (pt1, v1, pt2, v2) => {\n // take some shortcuts for vertical and horizontal lines\n // this also ensures we don't calculate an intersection and then discover\n // it's actually outside the bounding box of the line\n if (v1.x === 0) return verticalIntersection(pt2, v2, pt1.x)\n if (v2.x === 0) return verticalIntersection(pt1, v1, pt2.x)\n if (v1.y === 0) return horizontalIntersection(pt2, v2, pt1.y)\n if (v2.y === 0) return horizontalIntersection(pt1, v1, pt2.y)\n\n // General case for non-overlapping segments.\n // This algorithm is based on Schneider and Eberly.\n // http://www.cimec.org.ar/~ncalvo/Schneider_Eberly.pdf - pg 244\n\n const kross = crossProduct(v1, v2)\n if (kross == 0) return null\n\n const ve = { x: pt2.x - pt1.x, y: pt2.y - pt1.y }\n const d1 = crossProduct(ve, v1) / kross\n const d2 = crossProduct(ve, v2) / kross\n\n // take the average of the two calculations to minimize rounding error\n let x = (pt1.x + d2 * v1.x + pt2.x + d1 * v2.x) / 2\n let y = (pt1.y + d2 * v1.y + pt2.y + d1 * v2.y) / 2\n return { x: x, y: y }\n}\n\n/* Given a vector, return one that is perpendicular */\nexport const perpendicular = (v) => {\n return { x: -v.y, y: v.x }\n}\n","\n\n\n\n\n","class Operation {\n constructor () {\n this.types = {\n INTERSECTION: 0,\n UNION: 1,\n XOR: 2,\n DIFFERENCE: 3\n }\n }\n\n register (type, numMultiPolys) {\n this.type = type\n this.numMultiPolys = numMultiPolys\n }\n}\n\n// global to register details about the operation on\nconst operation = new Operation()\n\nexport default operation\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('div',{attrs:{\"id\":\"map\"}},[_c('div',{staticClass:\"control leaflet-bar\"},[_c('h4',[_vm._v(\"Input Data\")]),_vm._v(\" \"),_c('select',{on:{\"change\":_vm.setInput}},[_c('option',[_vm._v(\"Asia\")]),_vm._v(\" \"),_c('option',[_vm._v(\"Almost Parallel Segments\")]),_vm._v(\" \"),_c('option',[_vm._v(\"Saw & Cheese\")])]),_vm._v(\" \"),_c('br'),_c('br'),_vm._v(\" \"),_vm._l((_vm.operations),function(operation){return _c('div',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedOperation),expression:\"selectedOperation\"}],attrs:{\"type\":\"radio\",\"name\":\"some\"},domProps:{\"value\":operation,\"checked\":_vm._q(_vm.selectedOperation,operation)},on:{\"change\":[function($event){_vm.selectedOperation=operation},_vm.setOperation]}}),_vm._v(\" \"+_vm._s(operation)+\"\\n \")])}),_vm._v(\" \"),_c('h4',[_vm._v(\"Performance\")]),_vm._v(\" \"),_c('p',[_vm._v(\"polygon-clipping \"+_vm._s(_vm.performance)+\" m/s \"),_c('br'),_vm._v(\"\\n martinez \"+_vm._s(_vm.martinezPerf)+\" m/s \"),_c('br'),_vm._v(\"\\n jsts \"+_vm._s(_vm.jstsPerf)+\" m/s \"),_c('br')])],2)])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import operation from './operation'\nimport SweepEvent from './sweep-event'\nimport { isInBbox, getBboxOverlap, getUniqueCorners } from './bbox'\nimport { cmp, cmpPoints } from './flp'\nimport { crossProduct, compareVectorAngles, intersection, perpendicular } from './vector'\n\nexport default class Segment {\n static compare (a, b) {\n if (a === b) return 0\n\n const alx = a.leftSE.point.x\n const aly = a.leftSE.point.y\n const blx = b.leftSE.point.x\n const bly = b.leftSE.point.y\n const arx = a.rightSE.point.x\n const brx = b.rightSE.point.x\n\n // check if they're even in the same vertical plane\n if (cmp(brx, alx) < 0) return 1\n if (cmp(arx, blx) < 0) return -1\n\n const cmpLeft = a.comparePoint(b.leftSE.point)\n const cmpLX = cmp(alx, blx)\n\n // are a and b colinear?\n if (\n cmpLeft === 0 &&\n a.comparePoint(b.rightSE.point) === 0 &&\n b.comparePoint(a.leftSE.point) === 0 &&\n b.comparePoint(a.rightSE.point) === 0\n ) {\n // colinear segments with non-matching left-endpoints, consider\n // the more-left endpoint to be earlier\n if (cmpLX !== 0) return cmpLX\n\n // colinear segments with matching left-endpoints, fall back\n // on creation order of segments as a tie-breaker\n // NOTE: we do not use segment length to break a tie here, because\n // when segments are split their length changes\n if (a.ringIn.id !== b.ringIn.id) {\n return a.ringIn.id < b.ringIn.id ? -1 : 1\n }\n } else {\n // not colinear\n\n // if the our left endpoints are not in the same vertical line,\n // consider a vertical line at the rightmore of the two left endpoints,\n // consider the segment that intersects lower with that line to be earlier\n if (cmpLX < 0) return cmpLeft === 1 ? -1 : 1\n if (cmpLX > 0) return b.comparePoint(a.leftSE.point) === 1 ? 1 : -1\n\n // if our left endpoints match, consider the segment\n // that angles more downward to be earlier\n const cmpLY = cmp(aly, bly)\n if (cmpLY === 0) {\n // special case verticals due to rounding errors\n // part of https://github.com/mfogel/polygon-clipping/issues/29\n if (a.isVertical !== b.isVertical) return a.isVertical ? 1 : -1\n else return a.comparePoint(b.rightSE.point) > 0 ? -1 : 1\n }\n\n // left endpoints are in the same vertical line but don't overlap exactly,\n // lower means ealier\n return cmpLY\n }\n\n throw new Error(\n `Segment comparison (from [${a.leftSE.point.x}, ${a.leftSE.point.y}])` +\n ` -> to [${a.rightSE.point.x}, ${a.rightSE.point.y}]) failed... ` +\n ` segments equal but not identical?`\n )\n }\n\n constructor (leftSE, rightSE, ringIn) {\n this.leftSE = leftSE\n if (leftSE !== null) leftSE.segment = this\n this.rightSE = rightSE\n if (rightSE !== null) rightSE.segment = this\n this.ringIn = ringIn\n this.ringOut = null\n this.coincidents = [this]\n this._clearCache()\n }\n\n static fromRing(point1, point2, ring) {\n let leftSE, rightSE\n const ptCmp = cmpPoints(point1, point2)\n if (ptCmp < 0) {\n leftSE = new SweepEvent(point1)\n rightSE = new SweepEvent(point2)\n } else if (ptCmp > 0) {\n leftSE = new SweepEvent(point2)\n rightSE = new SweepEvent(point1)\n } else {\n throw new Error(\n `Tried to create degenerate segment at [${point1.x}, ${point2.y}]`\n )\n }\n return new Segment(leftSE, rightSE, ring)\n }\n\n get bbox () {\n const y1 = this.leftSE.point.y\n const y2 = this.rightSE.point.y\n return {\n ll: { x: this.leftSE.point.x, y: y1 < y2 ? y1 : y2 },\n ur: { x: this.rightSE.point.x, y: y1 > y2 ? y1 : y2 }\n }\n }\n\n /* A vector from the left point to the right */\n get vector () {\n return {\n x: this.rightSE.point.x - this.leftSE.point.x,\n y: this.rightSE.point.y - this.leftSE.point.y\n }\n }\n\n get isVertical () {\n return cmp(this.leftSE.point.x, this.rightSE.point.x) === 0\n }\n\n swapEvents () {\n const tmp = this.leftSE\n this.leftSE = this.rightSE\n this.rightSE = tmp\n }\n\n getOtherSE (se) {\n if (se === this.leftSE) return this.rightSE\n if (se === this.rightSE) return this.leftSE\n throw new Error('may only be called by own sweep events')\n }\n\n isAnEndpoint (point) {\n return (\n cmpPoints(point, this.leftSE.point) === 0 ||\n cmpPoints(point, this.rightSE.point) === 0\n )\n }\n\n isPointOn (point) {\n return isInBbox(this.bbox, point) && this.comparePoint(point) === 0\n }\n\n /* Compare this segment with a point. Return value indicates\n * 1: point is below segment\n * 0: point is colinear to segment\n * -1: point is above segment */\n comparePoint (point) {\n if (this.isAnEndpoint(point)) return 0\n const v1 = this.vector\n const v2 = perpendicular(v1)\n const interPt = intersection(this.leftSE.point, v1, point, v2)\n\n const cmpY = cmp(point.y, interPt.y)\n if (cmpY !== 0) return cmpY\n return cmp(interPt.x, point.x)\n }\n\n /**\n * Given another segment, returns an array of intersection points\n * between the two segments. The returned array can contain:\n * * zero points: no intersection b/t segments\n * * one point: segments intersect once\n * * two points: segments overlap. Endpoints of overlap returned.\n * Will be ordered as sweep line would encounter them.\n */\n getIntersections (other) {\n // If bboxes don't overlap, there can't be any intersections\n const bboxOverlap = getBboxOverlap(this.bbox, other.bbox)\n if (bboxOverlap === null) return []\n\n // The general algorithim doesn't handle overlapping colinear segments.\n // Overlapping colinear segments, if present, will have intersections\n // of one pair of opposing corners of the bbox overlap. Thus we just\n // manually check those coordinates.\n //\n // Note this also handles the cases of a collapsed bbox (just one point)\n // and semi-collapsed bbox (a vertical or horizontal line) as well.\n //\n // In addition, in the case of a T-intersection, this ensures that the\n // interseciton returned matches exactly an endpoint - no rounding error.\n const intersections = []\n const bboxCorners = getUniqueCorners(bboxOverlap)\n for (let i = 0, iMax = bboxCorners.length; i < iMax; i++) {\n const point = bboxCorners[i]\n // test if this point is an intersection\n if (\n (this.isAnEndpoint(point) && other.isPointOn(point)) ||\n (other.isAnEndpoint(point) && this.isPointOn(point))\n ) {\n intersections.push(point)\n }\n }\n if (intersections.length > 0) return intersections\n\n // general case of one intersection between non-overlapping segments\n const pt = intersection(this.leftSE.point, this.vector, other.leftSE.point, other.vector)\n if (pt !== null && isInBbox(bboxOverlap, pt)) return [pt]\n return []\n }\n\n /**\n * Split the given segment and all of its coincidents into multiple segments\n * on the given points.\n * * Each existing segment will retain its leftSE and a new rightSE will be\n * generated for it.\n * * A new segment will be generated which will adopt the original segment's\n * rightSE, and a new leftSE will be generated for it.\n * * New segments will be marked coincident as needed.\n * * If there are more than two points given to split on, new segments\n * in the middle will be generated with new leftSE and rightSE's.\n * * An array of the newly generated SweepEvents will be returned.\n */\n split (points) {\n // sort them and unique-ify them\n points.sort(cmpPoints)\n const newPts = []\n for (var i = 0; i < points.length; i++) {\n if (i === 0 || cmpPoints(points[i - 1], points[i]) !== 0) newPts.push(points[i])\n }\n points = newPts\n\n for (let i = 0, iMax = points.length; i < iMax; i++) {\n const pt = points[i]\n if (this.isAnEndpoint(pt)) {\n throw new Error(\n `Cannot split segment upon endpoint at [${pt.x}, ${pt.y}]`\n )\n }\n }\n\n const point = points.shift()\n const newSegments = []\n const newEvents = []\n for (let i = 0, iMax = this.coincidents.length; i < iMax; i++) {\n const thisSeg = this.coincidents[i]\n const newLeftSE = new SweepEvent(point)\n const newRightSE = new SweepEvent(point)\n newSegments.push(new Segment(newLeftSE, thisSeg.rightSE, thisSeg.ringIn))\n thisSeg.rightSE = newRightSE\n thisSeg.rightSE.segment = thisSeg\n newEvents.push(newRightSE)\n newEvents.push(newLeftSE)\n }\n\n for (let i = 1, iMax = newSegments.length; i < iMax; i++) {\n newSegments[i].registerCoincident(newSegments[i-1])\n }\n\n if (points.length > 0) {\n const moreNewEvents = newSegments[0].split(points)\n for (let i = 0, iMax = moreNewEvents.length; i < iMax; i++) {\n newEvents.push(moreNewEvents[i])\n }\n }\n return newEvents\n }\n\n registerPrev (other) {\n this.prev = other\n this._clearCache()\n }\n\n registerRingOut (ring) {\n this.ringOut = ring\n }\n\n registerCoincident (other) {\n if (this.coincidents == other.coincidents) return // already coincident\n const otherCoincidents = other.coincidents\n for (let i = 0, iMax = otherCoincidents.length; i < iMax; i++) {\n const seg = otherCoincidents[i]\n this.coincidents.push(seg)\n seg.coincidents = this.coincidents\n }\n // put the 'winner' at the front. arbitrary: winner has lowest ringId\n this.coincidents.sort((a, b) => a.ringIn.id - b.ringIn.id)\n }\n\n /* The first segment previous segment chain that is in the result */\n get prevInResult () {\n const key = 'prevInResult'\n if (this._cache[key] === undefined) this._cache[key] = this[`_${key}`]()\n return this._cache[key]\n }\n\n _prevInResult () {\n let prev = this.prev\n while (prev && !prev.isInResult) prev = prev.prev\n return prev\n }\n\n get prevNotCoincident () {\n const key = 'prevNotCoincident'\n if (this._cache[key] === undefined) this._cache[key] = this[`_${key}`]()\n return this._cache[key]\n }\n\n _prevNotCoincident () {\n // iterating backwards from next to prev\n let next = this\n let prev = this.prev\n while (prev && next.coincidents === prev.coincidents) {\n next = prev\n prev = prev.prev\n }\n return prev\n }\n\n /* Does the sweep line, when it intersects this segment, enter the ring? */\n get sweepLineEntersRing () {\n const key = 'sweepLineEntersRing'\n if (this._cache[key] === undefined) this._cache[key] = this[`_${key}`]()\n return this._cache[key]\n }\n\n _sweepLineEntersRing () {\n // opposite of previous segment on the same ring\n let prev = this.prevNotCoincident\n while (prev) {\n for (let i = 0, iMax = prev.coincidents.length; i < iMax; i++) {\n const seg = prev.coincidents[i]\n if (seg.ringIn === this.ringIn) return !seg.sweepLineEntersRing\n }\n prev = prev.prevNotCoincident\n }\n return true\n }\n\n /* Does the sweep line, when it intersects this segment, enter the polygon? */\n get sweepLineEntersPoly () {\n if (!this.isValidEdgeForPoly) return false\n return this.ringIn.isExterior === this.sweepLineEntersRing\n }\n\n /* Does the sweep line, when it intersects this segment, exit the polygon? */\n get sweepLineExitsPoly () {\n if (!this.isValidEdgeForPoly) return false\n return this.ringIn.isExterior !== this.sweepLineEntersRing\n }\n\n /* Array of input rings this segment is inside of (not on boundary) */\n get ringsInsideOf () {\n const key = 'ringsInsideOf'\n if (this._cache[key] === undefined) this._cache[key] = this[`_${key}`]()\n return this._cache[key]\n }\n\n _ringsInsideOf () {\n if (!this.prev) return []\n\n // coincidents always share the same rings. Return same array to save mem\n if (this.coincidents === this.prev.coincidents) {\n return this.prev.ringsInsideOf\n }\n\n let rings = []\n let prevRingsInsideOf = this.prev.ringsInsideOf\n let prevRingsEntering = this.prev.getRingsEntering()\n let ringsExiting = this.getRingsExiting()\n\n // rings our prev was inside of all count, except those we're exiting\n for (let i = 0, iMax = prevRingsInsideOf.length; i < iMax; i++) {\n const ring = prevRingsInsideOf[i]\n if (!ringsExiting.includes(ring)) rings.push(ring)\n }\n\n // rings our prev was entering of all count, except those we're exiting\n for (let i = 0, iMax = prevRingsEntering.length; i < iMax; i++) {\n const ring = prevRingsEntering[i]\n if (!ringsExiting.includes(ring)) rings.push(ring)\n }\n\n return rings\n }\n\n /* Array of input rings this segment is on boundary of */\n getRingsOnEdgeOf () {\n const rings = []\n for (let i = 0, iMax = this.coincidents.length; i < iMax; i++) {\n rings.push(this.coincidents[i].ringIn)\n }\n return rings\n }\n\n /* Array of input rings this segment is on boundary of,\n * and for which the sweep line enters when intersecting there */\n getRingsEntering () {\n const rings = []\n for (let i = 0, iMax = this.coincidents.length; i < iMax; i++) {\n const segment = this.coincidents[i]\n if (!segment.sweepLineEntersRing) continue\n rings.push(segment.ringIn)\n }\n return rings\n }\n\n /* Array of input rings this segment is on boundary of,\n * and for which the sweep line exits when intersecting there */\n getRingsExiting () {\n const rings = []\n for (let i = 0, iMax = this.coincidents.length; i < iMax; i++) {\n const segment = this.coincidents[i]\n if (segment.sweepLineEntersRing) continue\n rings.push(segment.ringIn)\n }\n return rings\n }\n\n getRingsEnteringAndExiting () {\n const ringsEntering = []\n const ringsExiting = []\n\n for (let i = 0, iMax = this.coincidents.length; i < iMax; i++) {\n const segment = this.coincidents[i]\n if (segment.sweepLineEntersRing) ringsEntering.push(segment.ringIn)\n else ringsExiting.push(segment.ringIn)\n } \n\n return [ringsEntering, ringsExiting]\n }\n\n /* Is this segment valid on our own polygon? (ie not outside exterior ring) */\n get isValidEdgeForPoly () {\n const key = 'isValidEdgeForPoly'\n if (this._cache[key] === undefined) this._cache[key] = this[`_${key}`]()\n return this._cache[key]\n }\n\n _isValidEdgeForPoly () {\n // SLER: sweep line entering orientation\n let sameSLER\n let diffSLER\n const rings = this.getRingsEnteringAndExiting()\n if (this.sweepLineEntersRing) {\n sameSLER = rings[0]\n diffSLER = rings[1]\n } else {\n diffSLER = rings[0]\n sameSLER = rings[1]\n }\n return this.ringIn.isValid(sameSLER, diffSLER, this.ringsInsideOf)\n }\n\n /* Array of multipolys this segment is inside of */\n getMultiPolysInsideOf () {\n const mps = []\n for (let i = 0, iMax = this.ringsInsideOf.length; i < iMax; i++) {\n const poly = this.ringsInsideOf[i].poly\n if (mps.includes(poly.multiPoly)) continue\n if (!poly.isInside(this.getRingsOnEdgeOf(), this.ringsInsideOf)) continue\n mps.push(poly.multiPoly)\n }\n return mps\n }\n\n /* Combine the above two functions for efficient looping */\n getMultiPolysSLPEntersAndExits (multiPolysInsideOf) {\n const mpsEnters = multiPolysInsideOf.slice(0)\n const mpsExits = multiPolysInsideOf.slice(0)\n for (let i = 0, iMax = this.coincidents.length; i < iMax; i++) {\n const seg = this.coincidents[i]\n const mp = seg.ringIn.poly.multiPoly\n if (seg.sweepLineEntersPoly) {\n if (!mpsEnters.includes(mp)) mpsEnters.push(mp)\n } else if (seg.sweepLineExitsPoly) {\n if (!mpsExits.includes(mp)) mpsExits.push(mp) \n }\n }\n return [mpsEnters, mpsExits]\n }\n\n /* Is this segment part of the final result? */\n get isInResult () {\n const key = 'isInResult'\n if (this._cache[key] === undefined) this._cache[key] = this[`_${key}`]()\n return this._cache[key]\n }\n\n _isInResult () {\n // if it's not the coincidence winner, it's not in the resul\n if (this !== this.coincidents[0]) return false\n\n const multiPolysInsideOf = this.getMultiPolysInsideOf()\n const getMPS = this.getMultiPolysSLPEntersAndExits(multiPolysInsideOf)\n const multiPolysSLPEnters = getMPS[0]\n const multiPolysSLPExits = getMPS[1]\n\n switch (operation.type) {\n case operation.types.UNION:\n // UNION - included iff:\n // * On one side of us there is 0 poly interiors AND\n // * On the other side there is 1 or more.\n const noEnters = multiPolysSLPEnters.length === 0\n const noExits = multiPolysSLPExits.length === 0\n return noEnters !== noExits\n\n case operation.types.INTERSECTION:\n // INTERSECTION - included iff:\n // * on one side of us all multipolys are rep. with poly interiors AND\n // * on the other side of us, not all multipolys are repsented\n // with poly interiors\n let least\n let most\n if (multiPolysSLPEnters.length < multiPolysSLPExits.length) {\n least = multiPolysSLPEnters.length\n most = multiPolysSLPExits.length\n } else {\n least = multiPolysSLPExits.length\n most = multiPolysSLPEnters.length\n }\n return most === operation.numMultiPolys && least < most\n\n case operation.types.XOR:\n // XOR - included iff:\n // * the difference between the number of multipolys represented\n // with poly interiors on our two sides is an odd number\n const diff = Math.abs(\n multiPolysSLPEnters.length - multiPolysSLPExits.length\n )\n return diff % 2 === 1\n\n case operation.types.DIFFERENCE:\n // DIFFERENCE included iff:\n // * on exactly one side, we have just the subject\n const isJustSubject = mps => mps.length === 1 && mps[0].isSubject\n return (\n isJustSubject(multiPolysSLPEnters) !==\n isJustSubject(multiPolysSLPExits)\n )\n\n default:\n throw new Error(`Unrecognized operation type found ${operation.type}`)\n }\n }\n\n _clearCache () {\n this._cache = {}\n }\n}\n","/**\n * splaytree v2.0.2\n * Fast Splay tree for Node and browser\n *\n * @author Alexander Milevski \n * @license MIT\n * @preserve\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global.SplayTree = factory());\n}(this, (function () { 'use strict';\n\n /* follows \"An implementation of top-down splaying\"\n * by D. Sleator March 1992\n */\n\n /**\n * @typedef {*} Key\n */\n\n\n /**\n * @typedef {*} Value\n */\n\n\n /**\n * @typedef {function(node:Node):void} Visitor\n */\n\n\n /**\n * @typedef {function(a:Key, b:Key):number} Comparator\n */\n\n\n /**\n * @param {function(node:Node):string} NodePrinter\n */\n\n\n /**\n * @typedef {Object} Node\n * @property {Key} Key\n * @property {Value=} data\n * @property {Node} left\n * @property {Node} right\n */\n\n var Node = function Node (key, data) {\n this.key = key;\n this.data = data;\n this.left = null;\n this.right= null;\n };\n\n function DEFAULT_COMPARE (a, b) { return a > b ? 1 : a < b ? -1 : 0; }\n\n\n /**\n * Simple top down splay, not requiring i to be in the tree t.\n * @param {Key} i\n * @param {Node?} t\n * @param {Comparator} comparator\n */\n function splay (i, t, comparator) {\n if (t === null) { return t; }\n var l, r, y;\n var N = new Node();\n l = r = N;\n\n while (true) {\n var cmp = comparator(i, t.key);\n //if (i < t.key) {\n if (cmp < 0) {\n if (t.left === null) { break; }\n //if (i < t.left.key) {\n if (comparator(i, t.left.key) < 0) {\n y = t.left; /* rotate right */\n t.left = y.right;\n y.right = t;\n t = y;\n if (t.left === null) { break; }\n }\n r.left = t; /* link right */\n r = t;\n t = t.left;\n //} else if (i > t.key) {\n } else if (cmp > 0) {\n if (t.right === null) { break; }\n //if (i > t.right.key) {\n if (comparator(i, t.right.key) > 0) {\n y = t.right; /* rotate left */\n t.right = y.left;\n y.left = t;\n t = y;\n if (t.right === null) { break; }\n }\n l.right = t; /* link left */\n l = t;\n t = t.right;\n } else {\n break;\n }\n }\n /* assemble */\n l.right = t.left;\n r.left = t.right;\n t.left = N.right;\n t.right = N.left;\n return t;\n }\n\n\n /**\n * @param {Key} i\n * @param {Value} data\n * @param {Comparator} comparator\n * @param {Tree} tree\n * @return {Node} root\n */\n function insert (i, data, t, comparator, tree) {\n var node = new Node(i, data);\n\n tree._size++;\n\n if (t === null) {\n node.left = node.right = null;\n return node;\n }\n\n t = splay(i, t, comparator);\n var cmp = comparator(i, t.key);\n if (cmp < 0) {\n node.left = t.left;\n node.right = t;\n t.left = null;\n } else if (cmp >= 0) {\n node.right = t.right;\n node.left = t;\n t.right = null;\n }\n return node;\n }\n\n\n /**\n * Insert i into the tree t, unless it's already there.\n * @param {Key} i\n * @param {Value} data\n * @param {Comparator} comparator\n * @param {Tree} tree\n * @return {Node} root\n */\n function add (i, data, t, comparator, tree) {\n var node = new Node(i, data);\n\n if (t === null) {\n node.left = node.right = null;\n tree._size++;\n return node;\n }\n\n t = splay(i, t, comparator);\n var cmp = comparator(i, t.key);\n if (cmp === 0) { return t; }\n else {\n if (cmp < 0) {\n node.left = t.left;\n node.right = t;\n t.left = null;\n } else if (cmp > 0) {\n node.right = t.right;\n node.left = t;\n t.right = null;\n }\n tree._size++;\n return node;\n }\n }\n\n\n /**\n * Deletes i from the tree if it's there\n * @param {Key} i\n * @param {Tree} tree\n * @param {Comparator} comparator\n * @param {Tree} tree\n * @return {Node} new root\n */\n function remove (i, t, comparator, tree) {\n var x;\n if (t === null) { return null; }\n t = splay(i, t, comparator);\n if (i === t.key) { /* found it */\n if (t.left === null) {\n x = t.right;\n } else {\n x = splay(i, t.left, comparator);\n x.right = t.right;\n }\n tree._size--;\n return x;\n }\n return t; /* It wasn't there */\n }\n\n\n function split (key, v, comparator) {\n var left, right;\n if (v === null) {\n left = right = null;\n } else {\n v = splay(key, v, comparator);\n\n var cmp = comparator(v.key, key);\n if (cmp === 0) {\n left = v.left;\n right = v.right;\n } else if (cmp < 0) {\n right = v.right;\n v.right = null;\n left = v;\n } else {\n left = v.left;\n v.left = null;\n right = v;\n }\n }\n return { left: left, right: right };\n }\n\n\n function merge (left, right, comparator) {\n if (right === null) { return left; }\n if (left === null) { return right; }\n\n right = splay(left.key, right, comparator);\n right.left = left;\n return right;\n }\n\n\n /**\n * Prints level of the tree\n * @param {Node} root\n * @param {String} prefix\n * @param {Boolean} isTail\n * @param {Array} out\n * @param {Function(node:Node):String} printNode\n */\n function printRow (root, prefix, isTail, out, printNode) {\n if (root) {\n out((\"\" + prefix + (isTail ? '└── ' : '├── ') + (printNode(root)) + \"\\n\"));\n var indent = prefix + (isTail ? ' ' : '│ ');\n if (root.left) { printRow(root.left, indent, false, out, printNode); }\n if (root.right) { printRow(root.right, indent, true, out, printNode); }\n }\n }\n\n\n var Tree = function Tree (comparator) {\n if ( comparator === void 0 ) comparator = DEFAULT_COMPARE;\n\n this._comparator = comparator;\n this._root = null;\n this._size = 0;\n };\n\n var prototypeAccessors = { size: { configurable: true } };\n\n\n /**\n * Inserts a key, allows duplicates\n * @param{Key} key\n * @param{Value=} data\n * @return {Node|null}\n */\n Tree.prototype.insert = function insert$1 (key, data) {\n return this._root = insert(key, data, this._root, this._comparator, this);\n };\n\n\n /**\n * Adds a key, if it is not present in the tree\n * @param{Key} key\n * @param{Value=} data\n * @return {Node|null}\n */\n Tree.prototype.add = function add$1 (key, data) {\n return this._root = add(key, data, this._root, this._comparator, this);\n };\n\n\n /**\n * @param{Key} key\n * @return {Node|null}\n */\n Tree.prototype.remove = function remove$1 (key) {\n this._root = remove(key, this._root, this._comparator, this);\n };\n\n\n /**\n * Removes and returns the node with smallest key\n * @return {?Node}\n */\n Tree.prototype.pop = function pop () {\n var node = this._root;\n if (node) {\n while (node.left) { node = node.left; }\n this._root = splay(node.key,this._root, this._comparator);\n this._root = remove(node.key, this._root, this._comparator, this);\n return { key: node.key, data: node.data };\n }\n return null;\n };\n\n\n /**\n * @param{Key} key\n * @return {Node|null}\n */\n Tree.prototype.findStatic = function findStatic (key) {\n var current = this._root;\n var compare = this._comparator;\n while (current) {\n var cmp = compare(key, current.key);\n if (cmp === 0) { return current; }\n else if (cmp < 0) { current = current.left; }\n else { current = current.right; }\n }\n return null;\n };\n\n\n /**\n * @param{Key} key\n * @return {Node|null}\n */\n Tree.prototype.find = function find (key) {\n if (this._root) {\n this._root = splay(key, this._root, this._comparator);\n if (this._comparator(key, this._root.key) !== 0) { return null; }\n }\n return this._root;\n };\n\n\n /**\n * @param{Key} key\n * @return {Boolean}\n */\n Tree.prototype.contains = function contains (key) {\n var current = this._root;\n var compare = this._comparator;\n while (current) {\n var cmp = compare(key, current.key);\n if (cmp === 0) { return true; }\n else if (cmp < 0) { current = current.left; }\n else { current = current.right; }\n }\n return false;\n };\n\n\n /**\n * @param{Visitor} visitor\n * @param{*=} ctx\n * @return {SplayTree}\n */\n Tree.prototype.forEach = function forEach (visitor, ctx) {\n var current = this._root;\n var Q = [];/* Initialize stack s */\n var done = false;\n\n while (!done) {\n if (current !==null) {\n Q.push(current);\n current = current.left;\n } else {\n if (Q.length !== 0) {\n current = Q.pop();\n visitor.call(ctx, current);\n\n current = current.right;\n } else { done = true; }\n }\n }\n return this;\n };\n\n\n /**\n * Walk key range from `low` to `high`. Stops if `fn` returns a value.\n * @param{Key} low\n * @param{Key} high\n * @param{Function} fn\n * @param{*?} ctx\n * @return {SplayTree}\n */\n Tree.prototype.range = function range (low, high, fn, ctx) {\n var this$1 = this;\n\n var Q = [];\n var compare = this._comparator;\n var node = this._root, cmp;\n\n while (Q.length !== 0 || node) {\n if (node) {\n Q.push(node);\n node = node.left;\n } else {\n node = Q.pop();\n cmp = compare(node.key, high);\n if (cmp > 0) {\n break;\n } else if (compare(node.key, low) >= 0) {\n if (fn.call(ctx, node)) { return this$1; } // stop if smth is returned\n }\n node = node.right;\n }\n }\n return this;\n };\n\n\n /**\n * Returns array of keys\n * @return {Array}\n */\n Tree.prototype.keys = function keys () {\n var keys = [];\n this.forEach(function (ref) {\n var key = ref.key;\n\n return keys.push(key);\n });\n return keys;\n };\n\n\n /**\n * Returns array of all the data in the nodes\n * @return {Array}\n */\n Tree.prototype.values = function values () {\n var values = [];\n this.forEach(function (ref) {\n var data = ref.data;\n\n return values.push(data);\n });\n return values;\n };\n\n\n /**\n * @return {Key|null}\n */\n Tree.prototype.min = function min () {\n if (this._root) { return this.minNode(this._root).key; }\n return null;\n };\n\n\n /**\n * @return {Key|null}\n */\n Tree.prototype.max = function max () {\n if (this._root) { return this.maxNode(this._root).key; }\n return null;\n };\n\n\n /**\n * @return {Node|null}\n */\n Tree.prototype.minNode = function minNode (t) {\n if ( t === void 0 ) t = this._root;\n\n if (t) { while (t.left) { t = t.left; } }\n return t;\n };\n\n\n /**\n * @return {Node|null}\n */\n Tree.prototype.maxNode = function maxNode (t) {\n if ( t === void 0 ) t = this._root;\n\n if (t) { while (t.right) { t = t.right; } }\n return t;\n };\n\n\n /**\n * Returns node at given index\n * @param{number} index\n * @return {?Node}\n */\n Tree.prototype.at = function at (index) {\n var current = this._root, done = false, i = 0;\n var Q = [];\n\n while (!done) {\n if (current) {\n Q.push(current);\n current = current.left;\n } else {\n if (Q.length > 0) {\n current = Q.pop();\n if (i === index) { return current; }\n i++;\n current = current.right;\n } else { done = true; }\n }\n }\n return null;\n };\n\n\n /**\n * @param{Node} d\n * @return {Node|null}\n */\n Tree.prototype.next = function next (d) {\n var root = this._root;\n var successor = null;\n\n if (d.right) {\n successor = d.right;\n while (successor.left) { successor = successor.left; }\n return successor;\n }\n\n var comparator = this._comparator;\n while (root) {\n var cmp = comparator(d.key, root.key);\n if (cmp === 0) { break; }\n else if (cmp < 0) {\n successor = root;\n root = root.left;\n } else { root = root.right; }\n }\n\n return successor;\n };\n\n\n /**\n * @param{Node} d\n * @return {Node|null}\n */\n Tree.prototype.prev = function prev (d) {\n var root = this._root;\n var predecessor = null;\n\n if (d.left !== null) {\n predecessor = d.left;\n while (predecessor.right) { predecessor = predecessor.right; }\n return predecessor;\n }\n\n var comparator = this._comparator;\n while (root) {\n var cmp = comparator(d.key, root.key);\n if (cmp === 0) { break; }\n else if (cmp < 0) { root = root.left; }\n else {\n predecessor = root;\n root = root.right;\n }\n }\n return predecessor;\n };\n\n\n /**\n * @return {SplayTree}\n */\n Tree.prototype.clear = function clear () {\n this._root = null;\n this._size = 0;\n return this;\n };\n\n\n /**\n * @return {NodeList}\n */\n Tree.prototype.toList = function toList$1 () {\n return toList(this._root);\n };\n\n\n /**\n * Bulk-load items. Both array have to be same size\n * @param{Array} keys\n * @param{Array}[values]\n * @param{Boolean} [presort=false] Pre-sort keys and values, using\n * tree's comparator. Sorting is done\n * in-place\n * @return {AVLTree}\n */\n Tree.prototype.load = function load (keys, values, presort) {\n if ( keys === void 0 ) keys = [];\n if ( values === void 0 ) values = [];\n if ( presort === void 0 ) presort = false;\n\n var size = keys.length;\n var comparator = this._comparator;\n\n // sort if needed\n if (presort) { sort(keys, values, 0, size - 1, comparator); }\n\n if (this._root === null) { // empty tree\n this._root = loadRecursive(this._root, keys, values, 0, size);\n this._size = size;\n } else { // that re-builds the whole tree from two in-order traversals\n var mergedList = mergeLists(this.toList(), createList(keys, values), comparator);\n size = this._size + size;\n this._root = sortedListToBST({ head: mergedList }, 0, size);\n }\n return this;\n };\n\n\n /**\n * @return {Boolean}\n */\n Tree.prototype.isEmpty = function isEmpty () { return this._root === null; };\n\n prototypeAccessors.size.get = function () { return this._size; };\n\n\n /**\n * @param{NodePrinter=} printNode\n * @return {String}\n */\n Tree.prototype.toString = function toString (printNode) {\n if ( printNode === void 0 ) printNode = function (n) { return n.key; };\n\n var out = [];\n printRow(this._root, '', true, function (v) { return out.push(v); }, printNode);\n return out.join('');\n };\n\n\n Tree.prototype.update = function update (key, newKey, newData) {\n var comparator = this._comparator;\n var ref = split(key, this._root, comparator);\n var left = ref.left;\n var right = ref.right;\n this._size--;\n if (comparator(key, newKey) < 0) {\n right = insert(newKey, newData, right, comparator, this);\n } else {\n left = insert(newKey, newData, left, comparator, this);\n }\n this._root = merge(left, right, comparator);\n };\n\n\n Tree.prototype.split = function split$1 (key) {\n return split(key, this._root, this._comparator);\n };\n\n Object.defineProperties( Tree.prototype, prototypeAccessors );\n\n\n function loadRecursive (parent, keys, values, start, end) {\n var size = end - start;\n if (size > 0) {\n var middle = start + Math.floor(size / 2);\n var key = keys[middle];\n var data = values[middle];\n var node = { key: key, data: data, parent: parent };\n node.left = loadRecursive(node, keys, values, start, middle);\n node.right = loadRecursive(node, keys, values, middle + 1, end);\n return node;\n }\n return null;\n }\n\n\n function createList(keys, values) {\n var head = { next: null };\n var p = head;\n for (var i = 0; i < keys.length; i++) {\n p = p.next = { key: keys[i], data: values[i] };\n }\n p.next = null;\n return head.next;\n }\n\n\n function toList (root) {\n var current = root;\n var Q = [], done = false;\n\n var head = { next: null };\n var p = head;\n\n while (!done) {\n if (current) {\n Q.push(current);\n current = current.left;\n } else {\n if (Q.length > 0) {\n current = p = p.next = Q.pop();\n current = current.right;\n } else { done = true; }\n }\n }\n p.next = null; // that'll work even if the tree was empty\n return head.next;\n }\n\n\n function sortedListToBST(list, start, end) {\n var size = end - start;\n if (size > 0) {\n var middle = start + Math.floor(size / 2);\n var left = sortedListToBST(list, start, middle);\n\n var root = list.head;\n root.left = left;\n\n list.head = list.head.next;\n\n root.right = sortedListToBST(list, middle + 1, end);\n return root;\n }\n return null;\n }\n\n\n function mergeLists (l1, l2, compare) {\n if ( compare === void 0 ) compare = function (a, b) { return a - b; };\n\n var head = {}; // dummy\n var p = head;\n\n var p1 = l1;\n var p2 = l2;\n\n while (p1 !== null && p2 !== null) {\n if (compare(p1.key, p2.key) < 0) {\n p.next = p1;\n p1 = p1.next;\n } else {\n p.next = p2;\n p2 = p2.next;\n }\n p = p.next;\n }\n\n if (p1 !== null) { p.next = p1; }\n else if (p2 !== null) { p.next = p2; }\n\n return head.next;\n }\n\n\n function sort(keys, values, left, right, compare) {\n if (left >= right) { return; }\n\n var pivot = keys[(left + right) >> 1];\n var i = left - 1;\n var j = right + 1;\n\n while (true) {\n do { i++; } while (compare(keys[i], pivot) < 0);\n do { j--; } while (compare(keys[j], pivot) > 0);\n if (i >= j) { break; }\n\n var tmp = keys[i];\n keys[i] = keys[j];\n keys[j] = tmp;\n\n tmp = values[i];\n values[i] = values[j];\n values[j] = tmp;\n }\n\n sort(keys, values, left, j, compare);\n sort(keys, values, j + 1, right, compare);\n }\n\n return Tree;\n\n})));\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n scriptExports = scriptExports || {}\n\n // ES6 modules interop\n var type = typeof scriptExports.default\n if (type === 'object' || type === 'function') {\n scriptExports = scriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of \n","class Operation {\n constructor () {\n this.types = {\n INTERSECTION: 0,\n UNION: 1,\n XOR: 2,\n DIFFERENCE: 3\n }\n }\n\n register (type, numMultiPolys) {\n this.type = type\n this.numMultiPolys = numMultiPolys\n }\n}\n\n// global to register details about the operation on\nconst operation = new Operation()\n\nexport default operation\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('div',{attrs:{\"id\":\"map\"}},[_c('div',{staticClass:\"control leaflet-bar\"},[_c('h4',[_vm._v(\"Input Data\")]),_vm._v(\" \"),_c('select',{on:{\"change\":_vm.setInput}},[_c('option',[_vm._v(\"Asia\")]),_vm._v(\" \"),_c('option',[_vm._v(\"Almost Parallel Segments\")]),_vm._v(\" \"),_c('option',[_vm._v(\"Saw & Cheese\")])]),_vm._v(\" \"),_c('br'),_c('br'),_vm._v(\" \"),_vm._l((_vm.operations),function(operation){return _c('div',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedOperation),expression:\"selectedOperation\"}],attrs:{\"type\":\"radio\",\"name\":\"some\"},domProps:{\"value\":operation,\"checked\":_vm._q(_vm.selectedOperation,operation)},on:{\"change\":[function($event){_vm.selectedOperation=operation},_vm.setOperation]}}),_vm._v(\" \"+_vm._s(operation)+\"\\n \")])}),_vm._v(\" \"),_c('h4',[_vm._v(\"Performance\")]),_vm._v(\" \"),_c('p',[_vm._v(\"polygon-clipping \"+_vm._s(_vm.performance)+\" m/s \"),_c('br'),_vm._v(\"\\n martinez \"+_vm._s(_vm.martinezPerf)+\" m/s \"),_c('br'),_vm._v(\"\\n jsts \"+_vm._s(_vm.jstsPerf)+\" m/s \"),_c('br')])],2)])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import operation from './operation'\nimport SweepEvent from './sweep-event'\nimport { isInBbox, getBboxOverlap, getUniqueCorners } from './bbox'\nimport { cmp, cmpPoints } from './flp'\nimport { crossProduct, compareVectorAngles, intersection, perpendicular } from './vector'\n\nexport default class Segment {\n static compare (a, b) {\n if (a === b) return 0\n\n const alx = a.leftSE.point.x\n const aly = a.leftSE.point.y\n const blx = b.leftSE.point.x\n const bly = b.leftSE.point.y\n const arx = a.rightSE.point.x\n const brx = b.rightSE.point.x\n\n // check if they're even in the same vertical plane\n if (cmp(brx, alx) < 0) return 1\n if (cmp(arx, blx) < 0) return -1\n\n const cmpLeft = a.comparePoint(b.leftSE.point)\n const cmpLX = cmp(alx, blx)\n\n // are a and b colinear?\n if (\n cmpLeft === 0 &&\n a.comparePoint(b.rightSE.point) === 0 &&\n b.comparePoint(a.leftSE.point) === 0 &&\n b.comparePoint(a.rightSE.point) === 0\n ) {\n // colinear segments with non-matching left-endpoints, consider\n // the more-left endpoint to be earlier\n if (cmpLX !== 0) return cmpLX\n\n // colinear segments with matching left-endpoints, fall back\n // on creation order of segments as a tie-breaker\n // NOTE: we do not use segment length to break a tie here, because\n // when segments are split their length changes\n if (a.ringIn.id !== b.ringIn.id) {\n return a.ringIn.id < b.ringIn.id ? -1 : 1\n }\n } else {\n // not colinear\n\n // if the our left endpoints are not in the same vertical line,\n // consider a vertical line at the rightmore of the two left endpoints,\n // consider the segment that intersects lower with that line to be earlier\n if (cmpLX < 0) return cmpLeft === 1 ? -1 : 1\n if (cmpLX > 0) return b.comparePoint(a.leftSE.point) === 1 ? 1 : -1\n\n // if our left endpoints match, consider the segment\n // that angles more downward to be earlier\n const cmpLY = cmp(aly, bly)\n if (cmpLY === 0) {\n // special case verticals due to rounding errors\n // part of https://github.com/mfogel/polygon-clipping/issues/29\n if (a.isVertical !== b.isVertical) return a.isVertical ? 1 : -1\n else return a.comparePoint(b.rightSE.point) > 0 ? -1 : 1\n }\n\n // left endpoints are in the same vertical line but don't overlap exactly,\n // lower means ealier\n return cmpLY\n }\n\n throw new Error(\n `Segment comparison (from [${a.leftSE.point.x}, ${a.leftSE.point.y}])` +\n ` -> to [${a.rightSE.point.x}, ${a.rightSE.point.y}]) failed... ` +\n ` segments equal but not identical?`\n )\n }\n\n constructor (leftSE, rightSE, ringIn) {\n this.leftSE = leftSE\n if (leftSE !== null) leftSE.segment = this\n this.rightSE = rightSE\n if (rightSE !== null) rightSE.segment = this\n this.ringIn = ringIn\n this.ringOut = null\n this.coincidents = [this]\n this._clearCache()\n }\n\n static fromRing(point1, point2, ring) {\n let leftSE, rightSE\n const ptCmp = cmpPoints(point1, point2)\n if (ptCmp < 0) {\n leftSE = new SweepEvent(point1)\n rightSE = new SweepEvent(point2)\n } else if (ptCmp > 0) {\n leftSE = new SweepEvent(point2)\n rightSE = new SweepEvent(point1)\n } else {\n throw new Error(\n `Tried to create degenerate segment at [${point1.x}, ${point2.y}]`\n )\n }\n return new Segment(leftSE, rightSE, ring)\n }\n\n get bbox () {\n const y1 = this.leftSE.point.y\n const y2 = this.rightSE.point.y\n return {\n ll: { x: this.leftSE.point.x, y: y1 < y2 ? y1 : y2 },\n ur: { x: this.rightSE.point.x, y: y1 > y2 ? y1 : y2 }\n }\n }\n\n /* A vector from the left point to the right */\n get vector () {\n return {\n x: this.rightSE.point.x - this.leftSE.point.x,\n y: this.rightSE.point.y - this.leftSE.point.y\n }\n }\n\n get isVertical () {\n return cmp(this.leftSE.point.x, this.rightSE.point.x) === 0\n }\n\n swapEvents () {\n const tmp = this.leftSE\n this.leftSE = this.rightSE\n this.rightSE = tmp\n }\n\n getOtherSE (se) {\n if (se === this.leftSE) return this.rightSE\n if (se === this.rightSE) return this.leftSE\n throw new Error('may only be called by own sweep events')\n }\n\n isAnEndpoint (point) {\n return (\n cmpPoints(point, this.leftSE.point) === 0 ||\n cmpPoints(point, this.rightSE.point) === 0\n )\n }\n\n isPointOn (point) {\n return isInBbox(this.bbox, point) && this.comparePoint(point) === 0\n }\n\n /* Compare this segment with a point. Return value indicates\n * 1: point is below segment\n * 0: point is colinear to segment\n * -1: point is above segment */\n comparePoint (point) {\n if (this.isAnEndpoint(point)) return 0\n const v1 = this.vector\n const v2 = perpendicular(v1)\n const interPt = intersection(this.leftSE.point, v1, point, v2)\n\n const cmpY = cmp(point.y, interPt.y)\n if (cmpY !== 0) return cmpY\n return cmp(interPt.x, point.x)\n }\n\n /**\n * Given another segment, returns an array of intersection points\n * between the two segments. The returned array can contain:\n * * zero points: no intersection b/t segments\n * * one point: segments intersect once\n * * two points: segments overlap. Endpoints of overlap returned.\n * Will be ordered as sweep line would encounter them.\n */\n getIntersections (other) {\n // If bboxes don't overlap, there can't be any intersections\n const bboxOverlap = getBboxOverlap(this.bbox, other.bbox)\n if (bboxOverlap === null) return []\n\n // The general algorithim doesn't handle overlapping colinear segments.\n // Overlapping colinear segments, if present, will have intersections\n // of one pair of opposing corners of the bbox overlap. Thus we just\n // manually check those coordinates.\n //\n // Note this also handles the cases of a collapsed bbox (just one point)\n // and semi-collapsed bbox (a vertical or horizontal line) as well.\n //\n // In addition, in the case of a T-intersection, this ensures that the\n // interseciton returned matches exactly an endpoint - no rounding error.\n const intersections = []\n const bboxCorners = getUniqueCorners(bboxOverlap)\n for (let i = 0, iMax = bboxCorners.length; i < iMax; i++) {\n const point = bboxCorners[i]\n // test if this point is an intersection\n if (\n (this.isAnEndpoint(point) && other.isPointOn(point)) ||\n (other.isAnEndpoint(point) && this.isPointOn(point))\n ) {\n intersections.push(point)\n }\n }\n if (intersections.length > 0) return intersections\n\n // general case of one intersection between non-overlapping segments\n const pt = intersection(this.leftSE.point, this.vector, other.leftSE.point, other.vector)\n if (pt !== null && isInBbox(bboxOverlap, pt)) return [pt]\n return []\n }\n\n /**\n * Split the given segment and all of its coincidents into multiple segments\n * on the given points.\n * * Each existing segment will retain its leftSE and a new rightSE will be\n * generated for it.\n * * A new segment will be generated which will adopt the original segment's\n * rightSE, and a new leftSE will be generated for it.\n * * New segments will be marked coincident as needed.\n * * If there are more than two points given to split on, new segments\n * in the middle will be generated with new leftSE and rightSE's.\n * * An array of the newly generated SweepEvents will be returned.\n */\n split (points) {\n // sort them and unique-ify them\n points.sort(cmpPoints)\n const newPts = []\n for (var i = 0; i < points.length; i++) {\n if (i === 0 || cmpPoints(points[i - 1], points[i]) !== 0) newPts.push(points[i])\n }\n points = newPts\n\n for (let i = 0, iMax = points.length; i < iMax; i++) {\n const pt = points[i]\n if (this.isAnEndpoint(pt)) {\n throw new Error(\n `Cannot split segment upon endpoint at [${pt.x}, ${pt.y}]`\n )\n }\n }\n\n const point = points.shift()\n const newSegments = []\n const newEvents = []\n for (let i = 0, iMax = this.coincidents.length; i < iMax; i++) {\n const thisSeg = this.coincidents[i]\n const newLeftSE = new SweepEvent(point)\n const newRightSE = new SweepEvent(point)\n newSegments.push(new Segment(newLeftSE, thisSeg.rightSE, thisSeg.ringIn))\n thisSeg.rightSE = newRightSE\n thisSeg.rightSE.segment = thisSeg\n newEvents.push(newRightSE)\n newEvents.push(newLeftSE)\n }\n\n for (let i = 1, iMax = newSegments.length; i < iMax; i++) {\n newSegments[i].registerCoincident(newSegments[i-1])\n }\n\n if (points.length > 0) {\n const moreNewEvents = newSegments[0].split(points)\n for (let i = 0, iMax = moreNewEvents.length; i < iMax; i++) {\n newEvents.push(moreNewEvents[i])\n }\n }\n return newEvents\n }\n\n registerPrev (other) {\n this.prev = other\n this._clearCache()\n }\n\n registerRingOut (ring) {\n this.ringOut = ring\n }\n\n registerCoincident (other) {\n if (this.coincidents == other.coincidents) return // already coincident\n const otherCoincidents = other.coincidents\n for (let i = 0, iMax = otherCoincidents.length; i < iMax; i++) {\n const seg = otherCoincidents[i]\n this.coincidents.push(seg)\n seg.coincidents = this.coincidents\n }\n // put the 'winner' at the front. arbitrary: winner has lowest ringId\n this.coincidents.sort((a, b) => a.ringIn.id - b.ringIn.id)\n }\n\n /* The first segment previous segment chain that is in the result */\n get prevInResult () {\n const key = 'prevInResult'\n if (this._cache[key] === undefined) this._cache[key] = this[`_${key}`]()\n return this._cache[key]\n }\n\n _prevInResult () {\n let prev = this.prev\n while (prev && !prev.isInResult) prev = prev.prev\n return prev\n }\n\n get prevNotCoincident () {\n const key = 'prevNotCoincident'\n if (this._cache[key] === undefined) this._cache[key] = this[`_${key}`]()\n return this._cache[key]\n }\n\n _prevNotCoincident () {\n // iterating backwards from next to prev\n let next = this\n let prev = this.prev\n while (prev && next.coincidents === prev.coincidents) {\n next = prev\n prev = prev.prev\n }\n return prev\n }\n\n /* Does the sweep line, when it intersects this segment, enter the ring? */\n get sweepLineEntersRing () {\n const key = 'sweepLineEntersRing'\n if (this._cache[key] === undefined) this._cache[key] = this[`_${key}`]()\n return this._cache[key]\n }\n\n _sweepLineEntersRing () {\n // opposite of previous segment on the same ring\n let prev = this.prevNotCoincident\n while (prev) {\n for (let i = 0, iMax = prev.coincidents.length; i < iMax; i++) {\n const seg = prev.coincidents[i]\n if (seg.ringIn === this.ringIn) return !seg.sweepLineEntersRing\n }\n prev = prev.prevNotCoincident\n }\n return true\n }\n\n /* Does the sweep line, when it intersects this segment, enter the polygon? */\n get sweepLineEntersPoly () {\n if (!this.isValidEdgeForPoly) return false\n return this.ringIn.isExterior === this.sweepLineEntersRing\n }\n\n /* Does the sweep line, when it intersects this segment, exit the polygon? */\n get sweepLineExitsPoly () {\n if (!this.isValidEdgeForPoly) return false\n return this.ringIn.isExterior !== this.sweepLineEntersRing\n }\n\n /* Array of input rings this segment is inside of (not on boundary) */\n get ringsInsideOf () {\n const key = 'ringsInsideOf'\n if (this._cache[key] === undefined) this._cache[key] = this[`_${key}`]()\n return this._cache[key]\n }\n\n _ringsInsideOf () {\n if (!this.prev) return []\n\n // coincidents always share the same rings. Return same array to save mem\n if (this.coincidents === this.prev.coincidents) {\n return this.prev.ringsInsideOf\n }\n\n let rings = []\n let prevRingsInsideOf = this.prev.ringsInsideOf\n let prevRingsEntering = this.prev.getRingsEntering()\n let ringsExiting = this.getRingsExiting()\n\n // rings our prev was inside of all count, except those we're exiting\n for (let i = 0, iMax = prevRingsInsideOf.length; i < iMax; i++) {\n const ring = prevRingsInsideOf[i]\n if (!ringsExiting.includes(ring)) rings.push(ring)\n }\n\n // rings our prev was entering of all count, except those we're exiting\n for (let i = 0, iMax = prevRingsEntering.length; i < iMax; i++) {\n const ring = prevRingsEntering[i]\n if (!ringsExiting.includes(ring)) rings.push(ring)\n }\n\n return rings\n }\n\n /* Array of input rings this segment is on boundary of */\n getRingsOnEdgeOf () {\n const rings = []\n for (let i = 0, iMax = this.coincidents.length; i < iMax; i++) {\n rings.push(this.coincidents[i].ringIn)\n }\n return rings\n }\n\n /* Array of input rings this segment is on boundary of,\n * and for which the sweep line enters when intersecting there */\n getRingsEntering () {\n const rings = []\n for (let i = 0, iMax = this.coincidents.length; i < iMax; i++) {\n const segment = this.coincidents[i]\n if (!segment.sweepLineEntersRing) continue\n rings.push(segment.ringIn)\n }\n return rings\n }\n\n /* Array of input rings this segment is on boundary of,\n * and for which the sweep line exits when intersecting there */\n getRingsExiting () {\n const rings = []\n for (let i = 0, iMax = this.coincidents.length; i < iMax; i++) {\n const segment = this.coincidents[i]\n if (segment.sweepLineEntersRing) continue\n rings.push(segment.ringIn)\n }\n return rings\n }\n\n getRingsEnteringAndExiting () {\n const ringsEntering = []\n const ringsExiting = []\n\n for (let i = 0, iMax = this.coincidents.length; i < iMax; i++) {\n const segment = this.coincidents[i]\n if (segment.sweepLineEntersRing) ringsEntering.push(segment.ringIn)\n else ringsExiting.push(segment.ringIn)\n } \n\n return [ringsEntering, ringsExiting]\n }\n\n /* Is this segment valid on our own polygon? (ie not outside exterior ring) */\n get isValidEdgeForPoly () {\n const key = 'isValidEdgeForPoly'\n if (this._cache[key] === undefined) this._cache[key] = this[`_${key}`]()\n return this._cache[key]\n }\n\n _isValidEdgeForPoly () {\n // SLER: sweep line entering orientation\n let sameSLER\n let diffSLER\n const rings = this.getRingsEnteringAndExiting()\n if (this.sweepLineEntersRing) {\n sameSLER = rings[0]\n diffSLER = rings[1]\n } else {\n diffSLER = rings[0]\n sameSLER = rings[1]\n }\n return this.ringIn.isValid(sameSLER, diffSLER, this.ringsInsideOf)\n }\n\n /* Array of multipolys this segment is inside of */\n getMultiPolysInsideOf () {\n const mps = []\n for (let i = 0, iMax = this.ringsInsideOf.length; i < iMax; i++) {\n const poly = this.ringsInsideOf[i].poly\n if (mps.includes(poly.multiPoly)) continue\n if (!poly.isInside(this.getRingsOnEdgeOf(), this.ringsInsideOf)) continue\n mps.push(poly.multiPoly)\n }\n return mps\n }\n\n /* Combine the above two functions for efficient looping */\n getMultiPolysSLPEntersAndExits (multiPolysInsideOf) {\n const mpsEnters = multiPolysInsideOf.slice(0)\n const mpsExits = multiPolysInsideOf.slice(0)\n for (let i = 0, iMax = this.coincidents.length; i < iMax; i++) {\n const seg = this.coincidents[i]\n const mp = seg.ringIn.poly.multiPoly\n if (seg.sweepLineEntersPoly) {\n if (!mpsEnters.includes(mp)) mpsEnters.push(mp)\n } else if (seg.sweepLineExitsPoly) {\n if (!mpsExits.includes(mp)) mpsExits.push(mp) \n }\n }\n return [mpsEnters, mpsExits]\n }\n\n /* Is this segment part of the final result? */\n get isInResult () {\n const key = 'isInResult'\n if (this._cache[key] === undefined) this._cache[key] = this[`_${key}`]()\n return this._cache[key]\n }\n\n _isInResult () {\n // if it's not the coincidence winner, it's not in the resul\n if (this !== this.coincidents[0]) return false\n\n const multiPolysInsideOf = this.getMultiPolysInsideOf()\n const getMPS = this.getMultiPolysSLPEntersAndExits(multiPolysInsideOf)\n const multiPolysSLPEnters = getMPS[0]\n const multiPolysSLPExits = getMPS[1]\n\n switch (operation.type) {\n case operation.types.UNION:\n // UNION - included iff:\n // * On one side of us there is 0 poly interiors AND\n // * On the other side there is 1 or more.\n const noEnters = multiPolysSLPEnters.length === 0\n const noExits = multiPolysSLPExits.length === 0\n return noEnters !== noExits\n\n case operation.types.INTERSECTION:\n // INTERSECTION - included iff:\n // * on one side of us all multipolys are rep. with poly interiors AND\n // * on the other side of us, not all multipolys are repsented\n // with poly interiors\n let least\n let most\n if (multiPolysSLPEnters.length < multiPolysSLPExits.length) {\n least = multiPolysSLPEnters.length\n most = multiPolysSLPExits.length\n } else {\n least = multiPolysSLPExits.length\n most = multiPolysSLPEnters.length\n }\n return most === operation.numMultiPolys && least < most\n\n case operation.types.XOR:\n // XOR - included iff:\n // * the difference between the number of multipolys represented\n // with poly interiors on our two sides is an odd number\n const diff = Math.abs(\n multiPolysSLPEnters.length - multiPolysSLPExits.length\n )\n return diff % 2 === 1\n\n case operation.types.DIFFERENCE:\n // DIFFERENCE included iff:\n // * on exactly one side, we have just the subject\n const isJustSubject = mps => mps.length === 1 && mps[0].isSubject\n return (\n isJustSubject(multiPolysSLPEnters) !==\n isJustSubject(multiPolysSLPExits)\n )\n\n default:\n throw new Error(`Unrecognized operation type found ${operation.type}`)\n }\n }\n\n _clearCache () {\n this._cache = {}\n }\n}\n","/**\n * splaytree v2.0.2\n * Fast Splay tree for Node and browser\n *\n * @author Alexander Milevski \n * @license MIT\n * @preserve\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global.SplayTree = factory());\n}(this, (function () { 'use strict';\n\n /* follows \"An implementation of top-down splaying\"\n * by D. Sleator March 1992\n */\n\n /**\n * @typedef {*} Key\n */\n\n\n /**\n * @typedef {*} Value\n */\n\n\n /**\n * @typedef {function(node:Node):void} Visitor\n */\n\n\n /**\n * @typedef {function(a:Key, b:Key):number} Comparator\n */\n\n\n /**\n * @param {function(node:Node):string} NodePrinter\n */\n\n\n /**\n * @typedef {Object} Node\n * @property {Key} Key\n * @property {Value=} data\n * @property {Node} left\n * @property {Node} right\n */\n\n var Node = function Node (key, data) {\n this.key = key;\n this.data = data;\n this.left = null;\n this.right= null;\n };\n\n function DEFAULT_COMPARE (a, b) { return a > b ? 1 : a < b ? -1 : 0; }\n\n\n /**\n * Simple top down splay, not requiring i to be in the tree t.\n * @param {Key} i\n * @param {Node?} t\n * @param {Comparator} comparator\n */\n function splay (i, t, comparator) {\n if (t === null) { return t; }\n var l, r, y;\n var N = new Node();\n l = r = N;\n\n while (true) {\n var cmp = comparator(i, t.key);\n //if (i < t.key) {\n if (cmp < 0) {\n if (t.left === null) { break; }\n //if (i < t.left.key) {\n if (comparator(i, t.left.key) < 0) {\n y = t.left; /* rotate right */\n t.left = y.right;\n y.right = t;\n t = y;\n if (t.left === null) { break; }\n }\n r.left = t; /* link right */\n r = t;\n t = t.left;\n //} else if (i > t.key) {\n } else if (cmp > 0) {\n if (t.right === null) { break; }\n //if (i > t.right.key) {\n if (comparator(i, t.right.key) > 0) {\n y = t.right; /* rotate left */\n t.right = y.left;\n y.left = t;\n t = y;\n if (t.right === null) { break; }\n }\n l.right = t; /* link left */\n l = t;\n t = t.right;\n } else {\n break;\n }\n }\n /* assemble */\n l.right = t.left;\n r.left = t.right;\n t.left = N.right;\n t.right = N.left;\n return t;\n }\n\n\n /**\n * @param {Key} i\n * @param {Value} data\n * @param {Comparator} comparator\n * @param {Tree} tree\n * @return {Node} root\n */\n function insert (i, data, t, comparator, tree) {\n var node = new Node(i, data);\n\n tree._size++;\n\n if (t === null) {\n node.left = node.right = null;\n return node;\n }\n\n t = splay(i, t, comparator);\n var cmp = comparator(i, t.key);\n if (cmp < 0) {\n node.left = t.left;\n node.right = t;\n t.left = null;\n } else if (cmp >= 0) {\n node.right = t.right;\n node.left = t;\n t.right = null;\n }\n return node;\n }\n\n\n /**\n * Insert i into the tree t, unless it's already there.\n * @param {Key} i\n * @param {Value} data\n * @param {Comparator} comparator\n * @param {Tree} tree\n * @return {Node} root\n */\n function add (i, data, t, comparator, tree) {\n var node = new Node(i, data);\n\n if (t === null) {\n node.left = node.right = null;\n tree._size++;\n return node;\n }\n\n t = splay(i, t, comparator);\n var cmp = comparator(i, t.key);\n if (cmp === 0) { return t; }\n else {\n if (cmp < 0) {\n node.left = t.left;\n node.right = t;\n t.left = null;\n } else if (cmp > 0) {\n node.right = t.right;\n node.left = t;\n t.right = null;\n }\n tree._size++;\n return node;\n }\n }\n\n\n /**\n * Deletes i from the tree if it's there\n * @param {Key} i\n * @param {Tree} tree\n * @param {Comparator} comparator\n * @param {Tree} tree\n * @return {Node} new root\n */\n function remove (i, t, comparator, tree) {\n var x;\n if (t === null) { return null; }\n t = splay(i, t, comparator);\n if (i === t.key) { /* found it */\n if (t.left === null) {\n x = t.right;\n } else {\n x = splay(i, t.left, comparator);\n x.right = t.right;\n }\n tree._size--;\n return x;\n }\n return t; /* It wasn't there */\n }\n\n\n function split (key, v, comparator) {\n var left, right;\n if (v === null) {\n left = right = null;\n } else {\n v = splay(key, v, comparator);\n\n var cmp = comparator(v.key, key);\n if (cmp === 0) {\n left = v.left;\n right = v.right;\n } else if (cmp < 0) {\n right = v.right;\n v.right = null;\n left = v;\n } else {\n left = v.left;\n v.left = null;\n right = v;\n }\n }\n return { left: left, right: right };\n }\n\n\n function merge (left, right, comparator) {\n if (right === null) { return left; }\n if (left === null) { return right; }\n\n right = splay(left.key, right, comparator);\n right.left = left;\n return right;\n }\n\n\n /**\n * Prints level of the tree\n * @param {Node} root\n * @param {String} prefix\n * @param {Boolean} isTail\n * @param {Array} out\n * @param {Function(node:Node):String} printNode\n */\n function printRow (root, prefix, isTail, out, printNode) {\n if (root) {\n out((\"\" + prefix + (isTail ? '└── ' : '├── ') + (printNode(root)) + \"\\n\"));\n var indent = prefix + (isTail ? ' ' : '│ ');\n if (root.left) { printRow(root.left, indent, false, out, printNode); }\n if (root.right) { printRow(root.right, indent, true, out, printNode); }\n }\n }\n\n\n var Tree = function Tree (comparator) {\n if ( comparator === void 0 ) comparator = DEFAULT_COMPARE;\n\n this._comparator = comparator;\n this._root = null;\n this._size = 0;\n };\n\n var prototypeAccessors = { size: { configurable: true } };\n\n\n /**\n * Inserts a key, allows duplicates\n * @param{Key} key\n * @param{Value=} data\n * @return {Node|null}\n */\n Tree.prototype.insert = function insert$1 (key, data) {\n return this._root = insert(key, data, this._root, this._comparator, this);\n };\n\n\n /**\n * Adds a key, if it is not present in the tree\n * @param{Key} key\n * @param{Value=} data\n * @return {Node|null}\n */\n Tree.prototype.add = function add$1 (key, data) {\n return this._root = add(key, data, this._root, this._comparator, this);\n };\n\n\n /**\n * @param{Key} key\n * @return {Node|null}\n */\n Tree.prototype.remove = function remove$1 (key) {\n this._root = remove(key, this._root, this._comparator, this);\n };\n\n\n /**\n * Removes and returns the node with smallest key\n * @return {?Node}\n */\n Tree.prototype.pop = function pop () {\n var node = this._root;\n if (node) {\n while (node.left) { node = node.left; }\n this._root = splay(node.key,this._root, this._comparator);\n this._root = remove(node.key, this._root, this._comparator, this);\n return { key: node.key, data: node.data };\n }\n return null;\n };\n\n\n /**\n * @param{Key} key\n * @return {Node|null}\n */\n Tree.prototype.findStatic = function findStatic (key) {\n var current = this._root;\n var compare = this._comparator;\n while (current) {\n var cmp = compare(key, current.key);\n if (cmp === 0) { return current; }\n else if (cmp < 0) { current = current.left; }\n else { current = current.right; }\n }\n return null;\n };\n\n\n /**\n * @param{Key} key\n * @return {Node|null}\n */\n Tree.prototype.find = function find (key) {\n if (this._root) {\n this._root = splay(key, this._root, this._comparator);\n if (this._comparator(key, this._root.key) !== 0) { return null; }\n }\n return this._root;\n };\n\n\n /**\n * @param{Key} key\n * @return {Boolean}\n */\n Tree.prototype.contains = function contains (key) {\n var current = this._root;\n var compare = this._comparator;\n while (current) {\n var cmp = compare(key, current.key);\n if (cmp === 0) { return true; }\n else if (cmp < 0) { current = current.left; }\n else { current = current.right; }\n }\n return false;\n };\n\n\n /**\n * @param{Visitor} visitor\n * @param{*=} ctx\n * @return {SplayTree}\n */\n Tree.prototype.forEach = function forEach (visitor, ctx) {\n var current = this._root;\n var Q = [];/* Initialize stack s */\n var done = false;\n\n while (!done) {\n if (current !==null) {\n Q.push(current);\n current = current.left;\n } else {\n if (Q.length !== 0) {\n current = Q.pop();\n visitor.call(ctx, current);\n\n current = current.right;\n } else { done = true; }\n }\n }\n return this;\n };\n\n\n /**\n * Walk key range from `low` to `high`. Stops if `fn` returns a value.\n * @param{Key} low\n * @param{Key} high\n * @param{Function} fn\n * @param{*?} ctx\n * @return {SplayTree}\n */\n Tree.prototype.range = function range (low, high, fn, ctx) {\n var this$1 = this;\n\n var Q = [];\n var compare = this._comparator;\n var node = this._root, cmp;\n\n while (Q.length !== 0 || node) {\n if (node) {\n Q.push(node);\n node = node.left;\n } else {\n node = Q.pop();\n cmp = compare(node.key, high);\n if (cmp > 0) {\n break;\n } else if (compare(node.key, low) >= 0) {\n if (fn.call(ctx, node)) { return this$1; } // stop if smth is returned\n }\n node = node.right;\n }\n }\n return this;\n };\n\n\n /**\n * Returns array of keys\n * @return {Array}\n */\n Tree.prototype.keys = function keys () {\n var keys = [];\n this.forEach(function (ref) {\n var key = ref.key;\n\n return keys.push(key);\n });\n return keys;\n };\n\n\n /**\n * Returns array of all the data in the nodes\n * @return {Array}\n */\n Tree.prototype.values = function values () {\n var values = [];\n this.forEach(function (ref) {\n var data = ref.data;\n\n return values.push(data);\n });\n return values;\n };\n\n\n /**\n * @return {Key|null}\n */\n Tree.prototype.min = function min () {\n if (this._root) { return this.minNode(this._root).key; }\n return null;\n };\n\n\n /**\n * @return {Key|null}\n */\n Tree.prototype.max = function max () {\n if (this._root) { return this.maxNode(this._root).key; }\n return null;\n };\n\n\n /**\n * @return {Node|null}\n */\n Tree.prototype.minNode = function minNode (t) {\n if ( t === void 0 ) t = this._root;\n\n if (t) { while (t.left) { t = t.left; } }\n return t;\n };\n\n\n /**\n * @return {Node|null}\n */\n Tree.prototype.maxNode = function maxNode (t) {\n if ( t === void 0 ) t = this._root;\n\n if (t) { while (t.right) { t = t.right; } }\n return t;\n };\n\n\n /**\n * Returns node at given index\n * @param{number} index\n * @return {?Node}\n */\n Tree.prototype.at = function at (index) {\n var current = this._root, done = false, i = 0;\n var Q = [];\n\n while (!done) {\n if (current) {\n Q.push(current);\n current = current.left;\n } else {\n if (Q.length > 0) {\n current = Q.pop();\n if (i === index) { return current; }\n i++;\n current = current.right;\n } else { done = true; }\n }\n }\n return null;\n };\n\n\n /**\n * @param{Node} d\n * @return {Node|null}\n */\n Tree.prototype.next = function next (d) {\n var root = this._root;\n var successor = null;\n\n if (d.right) {\n successor = d.right;\n while (successor.left) { successor = successor.left; }\n return successor;\n }\n\n var comparator = this._comparator;\n while (root) {\n var cmp = comparator(d.key, root.key);\n if (cmp === 0) { break; }\n else if (cmp < 0) {\n successor = root;\n root = root.left;\n } else { root = root.right; }\n }\n\n return successor;\n };\n\n\n /**\n * @param{Node} d\n * @return {Node|null}\n */\n Tree.prototype.prev = function prev (d) {\n var root = this._root;\n var predecessor = null;\n\n if (d.left !== null) {\n predecessor = d.left;\n while (predecessor.right) { predecessor = predecessor.right; }\n return predecessor;\n }\n\n var comparator = this._comparator;\n while (root) {\n var cmp = comparator(d.key, root.key);\n if (cmp === 0) { break; }\n else if (cmp < 0) { root = root.left; }\n else {\n predecessor = root;\n root = root.right;\n }\n }\n return predecessor;\n };\n\n\n /**\n * @return {SplayTree}\n */\n Tree.prototype.clear = function clear () {\n this._root = null;\n this._size = 0;\n return this;\n };\n\n\n /**\n * @return {NodeList}\n */\n Tree.prototype.toList = function toList$1 () {\n return toList(this._root);\n };\n\n\n /**\n * Bulk-load items. Both array have to be same size\n * @param{Array} keys\n * @param{Array}[values]\n * @param{Boolean} [presort=false] Pre-sort keys and values, using\n * tree's comparator. Sorting is done\n * in-place\n * @return {AVLTree}\n */\n Tree.prototype.load = function load (keys, values, presort) {\n if ( keys === void 0 ) keys = [];\n if ( values === void 0 ) values = [];\n if ( presort === void 0 ) presort = false;\n\n var size = keys.length;\n var comparator = this._comparator;\n\n // sort if needed\n if (presort) { sort(keys, values, 0, size - 1, comparator); }\n\n if (this._root === null) { // empty tree\n this._root = loadRecursive(this._root, keys, values, 0, size);\n this._size = size;\n } else { // that re-builds the whole tree from two in-order traversals\n var mergedList = mergeLists(this.toList(), createList(keys, values), comparator);\n size = this._size + size;\n this._root = sortedListToBST({ head: mergedList }, 0, size);\n }\n return this;\n };\n\n\n /**\n * @return {Boolean}\n */\n Tree.prototype.isEmpty = function isEmpty () { return this._root === null; };\n\n prototypeAccessors.size.get = function () { return this._size; };\n\n\n /**\n * @param{NodePrinter=} printNode\n * @return {String}\n */\n Tree.prototype.toString = function toString (printNode) {\n if ( printNode === void 0 ) printNode = function (n) { return n.key; };\n\n var out = [];\n printRow(this._root, '', true, function (v) { return out.push(v); }, printNode);\n return out.join('');\n };\n\n\n Tree.prototype.update = function update (key, newKey, newData) {\n var comparator = this._comparator;\n var ref = split(key, this._root, comparator);\n var left = ref.left;\n var right = ref.right;\n this._size--;\n if (comparator(key, newKey) < 0) {\n right = insert(newKey, newData, right, comparator, this);\n } else {\n left = insert(newKey, newData, left, comparator, this);\n }\n this._root = merge(left, right, comparator);\n };\n\n\n Tree.prototype.split = function split$1 (key) {\n return split(key, this._root, this._comparator);\n };\n\n Object.defineProperties( Tree.prototype, prototypeAccessors );\n\n\n function loadRecursive (parent, keys, values, start, end) {\n var size = end - start;\n if (size > 0) {\n var middle = start + Math.floor(size / 2);\n var key = keys[middle];\n var data = values[middle];\n var node = { key: key, data: data, parent: parent };\n node.left = loadRecursive(node, keys, values, start, middle);\n node.right = loadRecursive(node, keys, values, middle + 1, end);\n return node;\n }\n return null;\n }\n\n\n function createList(keys, values) {\n var head = { next: null };\n var p = head;\n for (var i = 0; i < keys.length; i++) {\n p = p.next = { key: keys[i], data: values[i] };\n }\n p.next = null;\n return head.next;\n }\n\n\n function toList (root) {\n var current = root;\n var Q = [], done = false;\n\n var head = { next: null };\n var p = head;\n\n while (!done) {\n if (current) {\n Q.push(current);\n current = current.left;\n } else {\n if (Q.length > 0) {\n current = p = p.next = Q.pop();\n current = current.right;\n } else { done = true; }\n }\n }\n p.next = null; // that'll work even if the tree was empty\n return head.next;\n }\n\n\n function sortedListToBST(list, start, end) {\n var size = end - start;\n if (size > 0) {\n var middle = start + Math.floor(size / 2);\n var left = sortedListToBST(list, start, middle);\n\n var root = list.head;\n root.left = left;\n\n list.head = list.head.next;\n\n root.right = sortedListToBST(list, middle + 1, end);\n return root;\n }\n return null;\n }\n\n\n function mergeLists (l1, l2, compare) {\n if ( compare === void 0 ) compare = function (a, b) { return a - b; };\n\n var head = {}; // dummy\n var p = head;\n\n var p1 = l1;\n var p2 = l2;\n\n while (p1 !== null && p2 !== null) {\n if (compare(p1.key, p2.key) < 0) {\n p.next = p1;\n p1 = p1.next;\n } else {\n p.next = p2;\n p2 = p2.next;\n }\n p = p.next;\n }\n\n if (p1 !== null) { p.next = p1; }\n else if (p2 !== null) { p.next = p2; }\n\n return head.next;\n }\n\n\n function sort(keys, values, left, right, compare) {\n if (left >= right) { return; }\n\n var pivot = keys[(left + right) >> 1];\n var i = left - 1;\n var j = right + 1;\n\n while (true) {\n do { i++; } while (compare(keys[i], pivot) < 0);\n do { j--; } while (compare(keys[j], pivot) > 0);\n if (i >= j) { break; }\n\n var tmp = keys[i];\n keys[i] = keys[j];\n keys[j] = tmp;\n\n tmp = values[i];\n values[i] = values[j];\n values[j] = tmp;\n }\n\n sort(keys, values, left, j, compare);\n sort(keys, values, j + 1, right, compare);\n }\n\n return Tree;\n\n})));\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n scriptExports = scriptExports || {}\n\n // ES6 modules interop\n var type = typeof scriptExports.default\n if (type === 'object' || type === 'function') {\n scriptExports = scriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of