// All material copyright Esri, All Rights Reserved, unless otherwise specified. // See https://js.arcgis.com/4.30/esri/copyright.txt for details. //>>built define(["exports","./quickselect"],function(D,E){function u(a,b){if(!(this instanceof u))return new u(a,b);this._maxEntries=Math.max(4,a||9);this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries));b&&("function"===typeof b?this.toBBox=b:this._initFormat(b));this.clear()}function p(a,b){r(a,0,a.children.length,b,a)}function r(a,b,c,e,d){d||=q(null);d.minX=Infinity;d.minY=Infinity;d.maxX=-Infinity;d.maxY=-Infinity;for(var g;b=a.minX&&b.maxY>=a.minY}function q(a){return{children:a, height:1,leaf:!0,minX:Infinity,minY:Infinity,maxX:-Infinity,maxY:-Infinity}}function C(a,b,c,e,d){for(var g=[b,c],f;g.length;)c=g.pop(),b=g.pop(),c-b<=e||(f=b+Math.ceil((c-b)/e/2)*e,E.quickselect(a,f,b,c,d),g.push(b,f,f,c))}u.prototype={all:function(){return this._all(this.data,[])},search:function(a){var b=this.data,c=[],e=this.toBBox;if(!w(a,b))return c;for(var d=[],g,f,h,k;b;){g=0;for(f=b.children.length;gthis._maxEntries)this._split(e,b),b--;else break;this._adjustParentBBoxes(c, e,b)},_split:function(a,b){var c=a[b],e=c.children.length,d=this._minEntries;this._chooseSplitAxis(c,d,e);e=this._chooseSplitIndex(c,d,e);e=q(c.children.splice(e,c.children.length-e));e.height=c.height;e.leaf=c.leaf;p(c,this.toBBox);p(e,this.toBBox);b?a[b-1].children.push(e):this._splitRoot(c,e)},_splitRoot:function(a,b){this.data=q([a,b]);this.data.height=a.height+1;this.data.leaf=!1;p(this.data,this.toBBox)},_chooseSplitIndex:function(a,b,c){var e,d;var g=d=Infinity;for(e=b;e<=c-b;e++){var f=r(a, 0,e,this.toBBox);var h=r(a,e,c,this.toBBox);var k=Math.max(0,Math.min(f.maxX,h.maxX)-Math.max(f.minX,h.minX))*Math.max(0,Math.min(f.maxY,h.maxY)-Math.max(f.minY,h.minY));f=y(f)+y(h);if(k=b;h--)k=a.children[h],t(g,a.leaf?e(k):k),f+=v(g);return f},_adjustParentBBoxes:function(a,b,c){for(;0<=c;c--)t(b[c],a)},_condense:function(a){for(var b=a.length-1,c;0<=b;b--)0===a[b].children.length?0