From c8f4ed9308fffc01eec9f8b7dd3ea7a3fabdb572 Mon Sep 17 00:00:00 2001 From: Jacek Pietal Date: Wed, 18 Jan 2023 23:54:25 +0100 Subject: [PATCH] feat: improve speed by proper use of intersectAABB in checkCollision --- dist/demo/demo.bundle.js | 59 +++++++++++++++++++------------------- dist/system.d.ts | 6 ++-- dist/system.d.ts.map | 2 +- dist/system.js | 55 ++++++++++++++++++----------------- dist/system.js.map | 2 +- docs/classes/System.html | 27 ++++++++--------- docs/demo/demo.bundle.js | 59 +++++++++++++++++++------------------- package.json | 4 +-- src/demo/stress.js | 4 +-- src/system.ts | 62 +++++++++++++++++++++------------------- 10 files changed, 144 insertions(+), 136 deletions(-) diff --git a/dist/demo/demo.bundle.js b/dist/demo/demo.bundle.js index 563a2c95..96ad7238 100644 --- a/dist/demo/demo.bundle.js +++ b/dist/demo/demo.bundle.js @@ -990,9 +990,9 @@ class System extends base_system_1.BaseSystem { checkOne(body, callback) { // no need to check static body collision if (body.isStatic) { - return; + return false; } - this.search(body).some((candidate) => { + return this.search(body).some((candidate) => { if (candidate !== body && this.checkCollision(body, candidate)) { return callback(this.response); } @@ -1002,13 +1002,13 @@ class System extends base_system_1.BaseSystem { * check all colliders collisions with callback */ checkAll(callback) { - this.all().forEach((body) => { - this.checkOne(body, callback); + return this.all().some((body) => { + return this.checkOne(body, callback); }); } /** * get object potential colliders - * @deprecated + * @deprecated because it's slower to use than checkOne() or checkAll() */ getPotentials(body) { // filter here is required as collides with self @@ -1018,35 +1018,38 @@ class System extends base_system_1.BaseSystem { * check do 2 objects collide */ checkCollision(body, wall) { - // check bounding boxes without padding - if ((body.padding || wall.padding) && - !(0, utils_1.intersectAABB)(body.bbox, wall.bbox)) { + // check real bounding boxes (without padding) + if (body.bbox && wall.bbox && !(0, utils_1.intersectAABB)(body.bbox, wall.bbox)) { return false; } - this.state.collides = false; - this.response.clear(); + // proceed to sat.js checking const sat = (0, utils_1.getSATFunction)(body, wall); if (body.isConvex && wall.isConvex) { this.state.collides = sat(body, wall, this.response); } - else if (body.isConvex && !wall.isConvex) { - (0, utils_1.ensureConvex)(wall).forEach((convexWall) => { - this.test(sat, body, convexWall); - }); - } - else if (!body.isConvex && wall.isConvex) { - (0, utils_1.ensureConvex)(body).forEach((convexBody) => { - this.test(sat, convexBody, wall); - }); - } else { - const convexBodies = (0, utils_1.ensureConvex)(body); - const convexWalls = (0, utils_1.ensureConvex)(wall); - convexBodies.forEach((convexBody) => { - convexWalls.forEach((convexWall) => { - this.test(sat, convexBody, convexWall); + // this is required for this.test() to have clean state + this.state.collides = false; + this.response.clear(); + if (body.isConvex && !wall.isConvex) { + (0, utils_1.ensureConvex)(wall).forEach((convexWall) => { + this.test(sat, body, convexWall); }); - }); + } + else if (!body.isConvex && wall.isConvex) { + (0, utils_1.ensureConvex)(body).forEach((convexBody) => { + this.test(sat, convexBody, wall); + }); + } + else { + const convexBodies = (0, utils_1.ensureConvex)(body); + const convexWalls = (0, utils_1.ensureConvex)(wall); + convexBodies.forEach((convexBody) => { + convexWalls.forEach((convexWall) => { + this.test(sat, convexBody, convexWall); + }); + }); + } } // set proper response object bodies if (!body.isConvex || !wall.isConvex) { @@ -3635,7 +3638,7 @@ function random(min, max) { } class Stress { - constructor(count = 1500) { + constructor(count = 2000) { const size = Math.sqrt((width * height) / (count * 50)); this.physics = new System(); @@ -3729,8 +3732,6 @@ class Stress { this.bounce(a, b, overlapV); a.rotationSpeed = (seededRandom() - seededRandom()) * 0.1; a.setPosition(a.x - overlapV.x, a.y - overlapV.y); - - return true; }); // console.timeEnd("bodies separate"); } diff --git a/dist/system.d.ts b/dist/system.d.ts index 6f073ad1..06ee7c2a 100644 --- a/dist/system.d.ts +++ b/dist/system.d.ts @@ -39,14 +39,14 @@ export declare class System extends BaseSystem { /** * check one collider collisions with callback */ - checkOne(body: Body, callback: (response: Response) => void | boolean): void; + checkOne(body: Body, callback: (response: Response) => void | boolean): boolean; /** * check all colliders collisions with callback */ - checkAll(callback: (response: Response) => void | boolean): void; + checkAll(callback: (response: Response) => void | boolean): boolean; /** * get object potential colliders - * @deprecated + * @deprecated because it's slower to use than checkOne() or checkAll() */ getPotentials(body: Body): Body[]; /** diff --git a/dist/system.d.ts.map b/dist/system.d.ts.map index 4a11b29f..4765d2f8 100644 --- a/dist/system.d.ts.map +++ b/dist/system.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../src/system.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,cAAc,EACd,IAAI,EACJ,aAAa,EACb,QAAQ,EAER,YAAY,EAEZ,MAAM,EACP,MAAM,SAAS,CAAC;AAYjB;;GAEG;AACH,qBAAa,MAAO,SAAQ,UAAU;IACpC;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAkB;IAEpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAM;IAElC;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,cAAc,CAK7B;IAEF,OAAO,CAAC,GAAG,CAAQ;IAEnB;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,KAAK,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC;IASvE;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IA4B/B;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAI5B;;OAEG;IACH,MAAM,IAAI,IAAI;IASd;;OAEG;IACH,QAAQ,IAAI,IAAI;IAWhB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,GAAG,OAAO,GAAG,IAAI;IAa5E;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,GAAG,OAAO,GAAG,IAAI;IAMhE;;;OAGG;IACH,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE;IAKjC;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO;IA0D/C;;OAEG;IACH,OAAO,CACL,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,aAAa,GAAE,CAAC,YAAY,EAAE,IAAI,KAAK,OAAoB,GAC1D,aAAa;IAsChB,KAAK;IAOL;;OAEG;IACH,QAAQ,CACN,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,EACtE,EAAE,QAAQ,EAAE,GAAE;QAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAA;KAAc,GAC9C,IAAI,GAAG,SAAS;IAiBnB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC;IAezC;;OAEG;IACH,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI;CAyBhE"} \ No newline at end of file +{"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../src/system.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,cAAc,EACd,IAAI,EACJ,aAAa,EACb,QAAQ,EAER,YAAY,EAEZ,MAAM,EACP,MAAM,SAAS,CAAC;AAYjB;;GAEG;AACH,qBAAa,MAAO,SAAQ,UAAU;IACpC;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAkB;IAEpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAM;IAElC;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,cAAc,CAK7B;IAEF,OAAO,CAAC,GAAG,CAAQ;IAEnB;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,KAAK,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC;IASvE;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IA4B/B;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAI5B;;OAEG;IACH,MAAM,IAAI,IAAI;IASd;;OAEG;IACH,QAAQ,IAAI,IAAI;IAWhB;;OAEG;IACH,QAAQ,CACN,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,GAAG,OAAO,GAC/C,OAAO;IAaV;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,GAAG,OAAO,GAAG,OAAO;IAMnE;;;OAGG;IACH,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE;IAKjC;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO;IA2D/C;;OAEG;IACH,OAAO,CACL,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,aAAa,GAAE,CAAC,YAAY,EAAE,IAAI,KAAK,OAAoB,GAC1D,aAAa;IAsChB,KAAK;IAOL;;OAEG;IACH,QAAQ,CACN,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,EACtE,EAAE,QAAQ,EAAE,GAAE;QAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAA;KAAc,GAC9C,IAAI,GAAG,SAAS;IAiBnB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC;IAezC;;OAEG;IACH,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI;CAyBhE"} \ No newline at end of file diff --git a/dist/system.js b/dist/system.js index aad5b885..fe5b7518 100644 --- a/dist/system.js +++ b/dist/system.js @@ -95,9 +95,9 @@ class System extends base_system_1.BaseSystem { checkOne(body, callback) { // no need to check static body collision if (body.isStatic) { - return; + return false; } - this.search(body).some((candidate) => { + return this.search(body).some((candidate) => { if (candidate !== body && this.checkCollision(body, candidate)) { return callback(this.response); } @@ -107,13 +107,13 @@ class System extends base_system_1.BaseSystem { * check all colliders collisions with callback */ checkAll(callback) { - this.all().forEach((body) => { - this.checkOne(body, callback); + return this.all().some((body) => { + return this.checkOne(body, callback); }); } /** * get object potential colliders - * @deprecated + * @deprecated because it's slower to use than checkOne() or checkAll() */ getPotentials(body) { // filter here is required as collides with self @@ -123,35 +123,38 @@ class System extends base_system_1.BaseSystem { * check do 2 objects collide */ checkCollision(body, wall) { - // check bounding boxes without padding - if ((body.padding || wall.padding) && - !(0, utils_1.intersectAABB)(body.bbox, wall.bbox)) { + // check real bounding boxes (without padding) + if (body.bbox && wall.bbox && !(0, utils_1.intersectAABB)(body.bbox, wall.bbox)) { return false; } - this.state.collides = false; - this.response.clear(); + // proceed to sat.js checking const sat = (0, utils_1.getSATFunction)(body, wall); if (body.isConvex && wall.isConvex) { this.state.collides = sat(body, wall, this.response); } - else if (body.isConvex && !wall.isConvex) { - (0, utils_1.ensureConvex)(wall).forEach((convexWall) => { - this.test(sat, body, convexWall); - }); - } - else if (!body.isConvex && wall.isConvex) { - (0, utils_1.ensureConvex)(body).forEach((convexBody) => { - this.test(sat, convexBody, wall); - }); - } else { - const convexBodies = (0, utils_1.ensureConvex)(body); - const convexWalls = (0, utils_1.ensureConvex)(wall); - convexBodies.forEach((convexBody) => { - convexWalls.forEach((convexWall) => { - this.test(sat, convexBody, convexWall); + // this is required for this.test() to have clean state + this.state.collides = false; + this.response.clear(); + if (body.isConvex && !wall.isConvex) { + (0, utils_1.ensureConvex)(wall).forEach((convexWall) => { + this.test(sat, body, convexWall); }); - }); + } + else if (!body.isConvex && wall.isConvex) { + (0, utils_1.ensureConvex)(body).forEach((convexBody) => { + this.test(sat, convexBody, wall); + }); + } + else { + const convexBodies = (0, utils_1.ensureConvex)(body); + const convexWalls = (0, utils_1.ensureConvex)(wall); + convexBodies.forEach((convexBody) => { + convexWalls.forEach((convexWall) => { + this.test(sat, convexBody, convexWall); + }); + }); + } } // set proper response object bodies if (!body.isConvex || !wall.isConvex) { diff --git a/dist/system.js.map b/dist/system.js.map index 9cddc384..b8a66aa6 100644 --- a/dist/system.js.map +++ b/dist/system.js.map @@ -1 +1 @@ -{"version":3,"file":"system.js","sourceRoot":"","sources":["../src/system.ts"],"names":[],"mappings":";;;AAEA,+CAA2C;AAC3C,wCAAqC;AACrC,mCAWiB;AACjB,mCASiB;AAEjB;;GAEG;AACH,MAAa,MAAO,SAAQ,wBAAU;IAAtC;;QACE;;WAEG;QACH,aAAQ,GAAa,IAAI,gBAAQ,EAAE,CAAC;QAEpC,WAAM,GAAyB,EAAE,CAAC;QAElC;;WAEG;QACO,UAAK,GAAmB;YAChC,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI,iBAAS,EAAE;SAC1B,CAAC;IAqSJ,CAAC;IAjSC;;OAEG;IACH,MAAM,CAAC,IAAU,EAAE,MAAsC;QACvD,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACrC;QACD,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QAExB,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAU;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAEjC,8CAA8C;QAC9C,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAA,iBAAS,EAAC,IAAI,CAAC,EAAE;YACnC,OAAO,IAAI,CAAC;SACb;QAED,yCAAyC;QACzC,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC1B;QAED,+BAA+B;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;QAE1C,oDAAoD;QACpD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QAE7B,0CAA0C;QAC1C,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,IAAU;QACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,IAAU,EAAE,EAAE;YAChC,iDAAiD;YACjD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aACnB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAY,EAAE,EAAE;YAC1C,yDAAyD;YACzD,IAAI,CAAC,CAAC,SAAS,EAAE;gBACf,OAAO,IAAI,CAAC;aACb;YAED,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,IAAU,EAAE,QAAgD;QACnE,yCAAyC;QACzC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO;SACR;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,SAAe,EAAE,EAAE;YACzC,IAAI,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE;gBAC9D,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAChC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,QAAgD;QACvD,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,IAAU,EAAE,EAAE;YAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,IAAU;QACtB,gDAAgD;QAChD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC;IACrE,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,IAAU,EAAE,IAAU;QACnC,uCAAuC;QACvC,IACE,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;YAC9B,CAAC,IAAA,qBAAa,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EACpC;YACA,OAAO,KAAK,CAAC;SACd;QAED,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAEtB,MAAM,GAAG,GAAiB,IAAA,sBAAc,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAErD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;SACtD;aAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC1C,IAAA,oBAAY,EAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,UAAgB,EAAE,EAAE;gBAC9C,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC1C,IAAA,oBAAY,EAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,UAAgB,EAAE,EAAE;gBAC9C,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,MAAM,YAAY,GAAG,IAAA,oBAAY,EAAC,IAAI,CAAC,CAAC;YACxC,MAAM,WAAW,GAAG,IAAA,oBAAY,EAAC,IAAI,CAAC,CAAC;YAEvC,YAAY,CAAC,OAAO,CAAC,CAAC,UAAgB,EAAE,EAAE;gBACxC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAgB,EAAE,EAAE;oBACvC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;gBACzC,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;QAED,oCAAoC;QACpC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACpC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC;YAEvB,6EAA6E;YAC7E,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACvB,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAC7C,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,CAAC;gBACpE,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;aACtD;YAED,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ;gBAChC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;gBACjB,CAAC,CAAC,IAAA,iBAAS,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ;gBAChC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;gBACjB,CAAC,CAAC,IAAA,iBAAS,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SAC3B;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,OAAO,CACL,KAAa,EACb,GAAW,EACX,gBAAiD,GAAG,EAAE,CAAC,IAAI;QAE3D,IAAI,WAAW,GAAG,QAAQ,CAAC;QAC3B,IAAI,MAAM,GAAkB,IAAI,CAAC;QAEjC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,GAAG,GAAG,IAAI,WAAI,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;SACtD;aAAM;YACL,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;SACpB;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC1C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE;gBAC5B,OAAO,KAAK,CAAC;aACd;YAED,MAAM,MAAM,GACV,QAAQ,CAAC,IAAI,KAAK,aAAK,CAAC,MAAM;gBAC5B,CAAC,CAAC,IAAA,2BAAmB,EAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC;gBACzC,CAAC,CAAC,IAAA,4BAAoB,EAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAE/C,MAAM,CAAC,OAAO,CAAC,CAAC,KAAa,EAAE,EAAE;gBAC/B,MAAM,aAAa,GAAW,IAAA,gBAAQ,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAErD,IAAI,aAAa,GAAG,WAAW,EAAE;oBAC/B,WAAW,GAAG,aAAa,CAAC;oBAC5B,MAAM,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;iBAC9B;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEtB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK;QACH,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QAEjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,QAAQ,CACN,IAAsE,EACtE,EAAE,QAAQ,KAA4B,IAAI,CAAC,IAAI;QAE/C,OAAO,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACpC,IAAI,CAAC,IAAI,EAAE;gBACT,OAAO,KAAK,CAAC;aACd;YAED,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE;gBAC5C,OAAO,IAAI,CAAC;aACb;YAED,yCAAyC;YACzC,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aAC3B;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,IAAkB;QACzB,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;YACtC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CACrD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EACrB,IAAI,CACL,CAAC;aACH;QACH,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAErB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACO,IAAI,CAAC,GAAiB,EAAE,IAAU,EAAE,IAAU;QACtD,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEhD,IAAI,QAAQ,EAAE;YACZ,4BAA4B;YAC5B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACxB,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,iBAAS,EAAE,CAAC;aACvC;YAED,4BAA4B;YAC5B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SACjD;QAED,mDAAmD;QACnD,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACxD,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAExD,wCAAwC;QACxC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAEtD,kBAAkB;QAClB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;CACF;AArTD,wBAqTC"} \ No newline at end of file +{"version":3,"file":"system.js","sourceRoot":"","sources":["../src/system.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/docs/classes/System.html b/docs/classes/System.html index b4cb87cd..823d4d43 100644 --- a/docs/classes/System.html +++ b/docs/classes/System.html @@ -150,7 +150,7 @@

Returns

Returns boolean | void

-

Returns void

Returns boolean

+
  • Defined in src/system.ts:167
  • Returns boolean | void

    -

    Returns void

    @@ -226,7 +226,7 @@
    +
  • Defined in src/system.ts:271
  • +
  • Defined in src/system.ts:301
  • +
  • Defined in src/system.ts:159
  • Returns RaycastResult

    +
  • Defined in src/system.ts:229
  • Returns void

    +
  • Defined in src/system.ts:319
  • Returns undefined | Body

    +
  • Defined in src/system.ts:281