{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-mpm-debugging/src/mpm-debugger/src/external/aabb.js"],"names":["Vector2","Invalid","Valid","AABB","minPt","maxPt","Min","Zero","copy","Max","Validity","prototype","clear","set","expandToInclude","pt","x","y","contains","containsAABB","other","intersects","box","overlapX","overlapY","getSize","sub","getMiddle","add","mulFloat","getTopLeft","getTopRight","getBottomLeft","getBottomRight","subdivide","min","middle","max","i"],"mappings":";;;;;;AAAOA,U;;;;;;;;;;;;;;;;;;;;AAEN,OAAIC,UAAU,IAAd;;;;;;;;;;;;;;AACA,OAAIC,QAAQ,KAAZ;;;;;;;;;;;;;;;AAEA,OAAIC,OAAO,UAASC,KAAT,EAAgBC,KAAhB,EAAuB;AACjC,SAAKC,GAAL,GAAWF,SAASJ,QAAQO,IAAR,CAAaC,IAAb,EAApB;AACA,SAAKC,GAAL,GAAWJ,SAASL,QAAQO,IAAR,CAAaC,IAAb,EAApB;AACA,SAAKE,QAAL,GAAgB,OAAON,KAAP,KAAiB,WAAjB,GAA+BH,OAA/B,GAAyCC,KAAzD;AACA,IAJD;;;;;;;;;;;;;;;AAMAC,QAAKQ,SAAL,CAAeC,KAAf,GAAuB,YAAW;AACjC,SAAKN,GAAL,CAASO,GAAT,CAAab,QAAQO,IAArB;AACA,SAAKE,GAAL,CAASI,GAAT,CAAab,QAAQO,IAArB;AACA,SAAKG,QAAL,GAAgBT,OAAhB;AACA,IAJD;;AAMAE,QAAKQ,SAAL,CAAeG,eAAf,GAAiC,UAASC,EAAT,EAAa;AAC7C,QAAI,KAAKL,QAAL,IAAiBR,KAArB,EAA4B;AAC3B,SAAIa,GAAGC,CAAH,GAAO,KAAKV,GAAL,CAASU,CAApB,EAAuB;AACtB,WAAKV,GAAL,CAASU,CAAT,GAAaD,GAAGC,CAAhB;AACA,MAFD,MAEO,IAAID,GAAGC,CAAH,GAAO,KAAKP,GAAL,CAASO,CAApB,EAAuB;AAC7B,WAAKP,GAAL,CAASO,CAAT,GAAaD,GAAGC,CAAhB;AACA;;AAED,SAAID,GAAGE,CAAH,GAAO,KAAKX,GAAL,CAASW,CAApB,EAAuB;AACtB,WAAKX,GAAL,CAASW,CAAT,GAAaF,GAAGE,CAAhB;AACA,MAFD,MAEO,IAAIF,GAAGE,CAAH,GAAO,KAAKR,GAAL,CAASQ,CAApB,EAAuB;AAC7B,WAAKR,GAAL,CAASQ,CAAT,GAAaF,GAAGE,CAAhB;AACA;AACD,KAZD,MAYO;AACN,UAAKX,GAAL,CAASO,GAAT,CAAaE,EAAb;AACA,UAAKN,GAAL,CAASI,GAAT,CAAaE,EAAb;AACA,UAAKL,QAAL,GAAgBR,KAAhB;AACA;AACD,IAlBD;;AAoBAC,QAAKQ,SAAL,CAAeO,QAAf,GAA0B,UAASH,EAAT,EAAa;AACtC,QAAI,KAAKL,QAAL,IAAiBT,OAArB,EAA8B;AAAE,YAAO,KAAP;AAAe;;AAE/C,WAASc,GAAGC,CAAH,IAAQ,KAAKV,GAAL,CAASU,CAAlB,IAAyBD,GAAGC,CAAH,IAAQ,KAAKP,GAAL,CAASO,CAA1C,IAAiDD,GAAGE,CAAH,IAAQ,KAAKX,GAAL,CAASW,CAAlE,IAAyEF,GAAGE,CAAH,IAAQ,KAAKR,GAAL,CAASQ,CAAlG;AACA,IAJD;;AAMAd,QAAKQ,SAAL,CAAeQ,YAAf,GAA8B,UAASC,KAAT,EAAgB;AAC7C,QAAI,KAAKV,QAAL,IAAiBT,OAArB,EAA8B;AAAE,YAAO,KAAP;AAAe;AAC/C,QAAImB,MAAMV,QAAN,IAAkBT,OAAtB,EAA+B;AAAE,YAAO,KAAP;AAAe;;AAEhD,WAAQmB,MAAMd,GAAN,CAAUU,CAAV,IAAe,KAAKV,GAAL,CAASU,CAAzB,IACLI,MAAMX,GAAN,CAAUO,CAAV,IAAe,KAAKP,GAAL,CAASO,CADnB,IAELI,MAAMd,GAAN,CAAUW,CAAV,IAAe,KAAKX,GAAL,CAASW,CAFnB,IAGLG,MAAMX,GAAN,CAAUQ,CAAV,IAAe,KAAKR,GAAL,CAASQ,CAH1B;AAIA,IARD;;AAUAd,QAAKQ,SAAL,CAAeU,UAAf,GAA4B,UAASC,GAAT,EAAc;AACxC,QAAIC,WAAa,KAAKjB,GAAL,CAASU,CAAT,IAAcM,IAAIb,GAAJ,CAAQO,CAAvB,IAA8B,KAAKP,GAAL,CAASO,CAAT,IAAcM,IAAIhB,GAAJ,CAAQU,CAApE;AACA,QAAIQ,WAAa,KAAKlB,GAAL,CAASW,CAAT,IAAcK,IAAIb,GAAJ,CAAQQ,CAAvB,IAA8B,KAAKR,GAAL,CAASQ,CAAT,IAAcK,IAAIhB,GAAJ,CAAQW,CAApE;;AAEA,WAAQM,YAAYC,QAApB;AACD,IALD;;AAOArB,QAAKQ,SAAL,CAAec,OAAf,GAAyB,YAAW;AAAE,WAAO,KAAKhB,GAAL,CAASiB,GAAT,CAAa,KAAKpB,GAAlB,CAAP;AAAgC,IAAtE;;AAEAH,QAAKQ,SAAL,CAAegB,SAAf,GAA2B,YAAW;AACrC,WAAO,KAAKrB,GAAL,CAASsB,GAAT,CAAa,KAAKnB,GAAL,CAASiB,GAAT,CAAa,KAAKpB,GAAlB,EAAuBuB,QAAvB,CAAgC,GAAhC,CAAb,CAAP;AACA,IAFD;AAGA1B,QAAKQ,SAAL,CAAemB,UAAf,GAA4B,YAAW;AACtC,WAAO,KAAKxB,GAAZ;AACA,IAFD;AAGAH,QAAKQ,SAAL,CAAeoB,WAAf,GAA6B,YAAW;AACvC,WAAO,IAAI/B,OAAJ,CAAY,KAAKS,GAAL,CAASO,CAArB,EAAwB,KAAKV,GAAL,CAASW,CAAjC,CAAP;AACA,IAFD;AAGAd,QAAKQ,SAAL,CAAeqB,aAAf,GAA+B,YAAW;AACzC,WAAO,IAAIhC,OAAJ,CAAY,KAAKM,GAAL,CAASU,CAArB,EAAwB,KAAKP,GAAL,CAASQ,CAAjC,CAAP;AACA,IAFD;AAGAd,QAAKQ,SAAL,CAAesB,cAAf,GAAgC,YAAW;AAC1C,WAAO,KAAKxB,GAAZ;AACA,IAFD;AAGAN,QAAKQ,SAAL,CAAeuB,SAAf,GAA2B,YAAW;AACrC,QAAIC,MAAM,KAAK7B,GAAf;AAAA,QACC8B,SAAS,KAAKT,SAAL,EADV;AAAA,QAECU,MAAM,KAAK5B,GAFZ;;AAIA,QAAI6B,IAAI,IAAInC,IAAJ,CAASgC,GAAT,EAAcC,MAAd,CAAR;AACA,WAAO,CACH,IAAIjC,IAAJ,CAASgC,GAAT,EAAcC,MAAd,CADG,EAEH,IAAIjC,IAAJ,CAAS,IAAIH,OAAJ,CAAYoC,OAAOpB,CAAnB,EAAsBmB,IAAIlB,CAA1B,CAAT,EAAuC,IAAIjB,OAAJ,CAAYqC,IAAIrB,CAAhB,EAAmBoB,OAAOnB,CAA1B,CAAvC,CAFG,EAGH,IAAId,IAAJ,CAAS,IAAIH,OAAJ,CAAYmC,IAAInB,CAAhB,EAAmBoB,OAAOnB,CAA1B,CAAT,EAAuC,IAAIjB,OAAJ,CAAYoC,OAAOpB,CAAnB,EAAsBqB,IAAIpB,CAA1B,CAAvC,CAHG,EAIH,IAAId,IAAJ,CAASiC,MAAT,EAAiBC,GAAjB,CAJG,CAAP;AAMA,IAZD;;sBAcelC,I","file":"aabb.js","sourcesContent":["import Vector2 from \"./vector2.js\";\n\n\tvar Invalid = true;\n\tvar Valid = false;\n\n\tvar AABB = function(minPt, maxPt) {\n\t\tthis.Min = minPt || Vector2.Zero.copy();\n\t\tthis.Max = maxPt || Vector2.Zero.copy();\n\t\tthis.Validity = typeof minPt === \"undefined\" ? Invalid : Valid;\n\t};\t\n\n\tAABB.prototype.clear = function() {\n\t\tthis.Min.set(Vector2.Zero);\n\t\tthis.Max.set(Vector2.Zero);\n\t\tthis.Validity = Invalid;\n\t};\t\n\n\tAABB.prototype.expandToInclude = function(pt) {\n\t\tif (this.Validity == Valid) {\n\t\t\tif (pt.x < this.Min.x) {\n\t\t\t\tthis.Min.x = pt.x;\n\t\t\t} else if (pt.x > this.Max.x) {\n\t\t\t\tthis.Max.x = pt.x;\n\t\t\t}\n\t\t\t\n\t\t\tif (pt.y < this.Min.y) {\n\t\t\t\tthis.Min.y = pt.y;\n\t\t\t} else if (pt.y > this.Max.y) {\n\t\t\t\tthis.Max.y = pt.y;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.Min.set(pt);\n\t\t\tthis.Max.set(pt);\n\t\t\tthis.Validity = Valid;\n\t\t};\n\t};\t\n\n\tAABB.prototype.contains = function(pt) {\n\t\tif (this.Validity == Invalid) { return false; };\n\n\t\treturn ((pt.x >= this.Min.x) && (pt.x <= this.Max.x) && (pt.y >= this.Min.y) && (pt.y <= this.Max.y));\n\t};\n\t\n\tAABB.prototype.containsAABB = function(other) {\n\t\tif (this.Validity == Invalid) { return false; };\n\t\tif (other.Validity == Invalid) { return false; };\n\t\t\n\t\treturn (other.Min.x >= this.Min.x) &&\n\t\t\t(other.Max.x <= this.Max.x) &&\n\t\t\t(other.Min.y >= this.Min.y) &&\n\t\t\t(other.Max.y <= this.Max.y);\n\t};\n\t\n\tAABB.prototype.intersects = function(box) {\n\t\t\tvar overlapX = ((this.Min.x <= box.Max.x) && (this.Max.x >= box.Min.x));\n\t\t\tvar overlapY = ((this.Min.y <= box.Max.y) && (this.Max.y >= box.Min.y));\n\t\t\t\n\t\t\treturn (overlapX && overlapY);\n\t};\t\n\n\tAABB.prototype.getSize = function() { return this.Max.sub(this.Min); };\n\n\tAABB.prototype.getMiddle = function() {\n\t\treturn this.Min.add(this.Max.sub(this.Min).mulFloat(0.5));\n\t};\n\tAABB.prototype.getTopLeft = function() {\n\t\treturn this.Min;\n\t};\n\tAABB.prototype.getTopRight = function() {\n\t\treturn new Vector2(this.Max.x, this.Min.y);\n\t};\n\tAABB.prototype.getBottomLeft = function() {\n\t\treturn new Vector2(this.Min.x, this.Max.y);\n\t};\n\tAABB.prototype.getBottomRight = function() {\n\t\treturn this.Max;\n\t};\n\tAABB.prototype.subdivide = function() {\n\t\tvar min = this.Min,\n\t\t\tmiddle = this.getMiddle(),\n\t\t\tmax = this.Max;\n\t\t\n\t\tvar i = new AABB(min, middle);\n\t\treturn [\n\t\t    new AABB(min, middle),\n\t\t    new AABB(new Vector2(middle.x, min.y), new Vector2(max.x, middle.y)),\n\t\t    new AABB(new Vector2(min.x, middle.y), new Vector2(middle.x, max.y)),\n\t\t    new AABB(middle, max)\n\t\t];\n\t};\n\n\texport default AABB;\n"]}