angry-pixel 2.1.8 → 2.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../packages/engine/src/config/dependencyTypes.ts","../../../packages/engine/src/utils/ioc/container.ts","../../../packages/engine/src/utils/collisions2d/broadPhase/IBroadPhaseResolver.ts","../../../node_modules/tslib/tslib.es6.js","../../../packages/engine/src/utils/math/Vector2.ts","../../../packages/engine/src/utils/math/Rectangle.ts","../../../packages/engine/src/utils/math/utils.ts","../../../packages/engine/src/utils/collisions2d/broadPhase/QuadTree.ts","../../../packages/engine/src/utils/collisions2d/broadPhase/SpartialGrid.ts","../../../packages/engine/src/utils/collisions2d/Shape.ts","../../../packages/engine/src/utils/collisions2d/method/AABBMethod.ts","../../../packages/engine/src/utils/collisions2d/method/CollisionMethod.ts","../../../packages/engine/src/utils/collisions2d/method/SatMethod.ts","../../../packages/engine/src/utils/collisions2d/resolver/AABBResolver.ts","../../../packages/engine/src/utils/collisions2d/resolver/CircumferenceAABBResolver.ts","../../../packages/engine/src/utils/collisions2d/resolver/CircumferenceResolver.ts","../../../packages/engine/src/utils/collisions2d/resolver/SatResolver.ts","../../../packages/engine/src/utils/collisions2d/CollisionRepository.ts","../../../packages/engine/src/utils/ecs/utils.ts","../../../packages/engine/src/utils/ecs/EntityManager.ts","../../../packages/engine/src/utils/ecs/SystemManager.ts","../../../packages/engine/src/utils/input/GamepadController.ts","../../../packages/engine/src/utils/input/Keyboard.ts","../../../packages/engine/src/utils/input/Mouse.ts","../../../packages/engine/src/utils/input/TouchScreen.ts","../../../packages/engine/src/manager/InputManager.ts","../../../packages/engine/src/manager/TimeManager.ts","../../../packages/engine/src/manager/AssetManager.ts","../../../packages/engine/src/component/gameLogic/AudioPlayer.ts","../../../packages/engine/src/config/systemTypes.ts","../../../packages/engine/src/system/gameLogic/AudioPlayerSystem.ts","../../../packages/engine/src/system/SystemGroup.ts","../../../packages/engine/src/component/gameLogic/Transform.ts","../../../packages/engine/src/component/render2d/Camera.ts","../../../packages/engine/src/utils/webgl/ContextManager.ts","../../../packages/engine/src/utils/webgl/FontAtlasFactory.ts","../../../packages/engine/src/utils/webgl/program/ProgramFactory.ts","../../../packages/engine/src/utils/webgl/program/ProgramManager.ts","../../../packages/engine/src/utils/webgl/shader/vertexShader.ts","../../../packages/engine/src/utils/webgl/shader/fragmentShader.ts","../../../packages/engine/src/utils/webgl/shader/legacy/vertexShader.ts","../../../packages/engine/src/utils/webgl/shader/legacy/fragmentShader.ts","../../../packages/engine/src/utils/webgl/program/ShaderLoader.ts","../../../node_modules/gl-matrix/esm/common.js","../../../node_modules/gl-matrix/esm/mat4.js","../../../packages/engine/src/utils/webgl/renderer/utils.ts","../../../packages/engine/src/utils/webgl/renderer/CanvasColorRenderer.ts","../../../packages/engine/src/utils/webgl/renderer/Renderer.ts","../../../packages/engine/src/utils/webgl/renderer/GeometricRenderer.ts","../../../packages/engine/src/utils/webgl/renderer/MaskRenderer.ts","../../../packages/engine/src/utils/webgl/renderer/DarknessRenderer.ts","../../../packages/engine/src/utils/webgl/renderer/SpriteRenderer.ts","../../../packages/engine/src/utils/webgl/renderer/TextRenderer.ts","../../../packages/engine/src/utils/webgl/renderer/TilemapRenderer.ts","../../../packages/engine/src/utils/webgl/renderer/VideoRenderer.ts","../../../packages/engine/src/utils/webgl/texture/TextureFactory.ts","../../../packages/engine/src/utils/webgl/texture/TextureManager.ts","../../../packages/engine/src/utils/webgl/WebGLManager.ts","../../../packages/engine/src/component/render2d/VideoRenderer.ts","../../../packages/engine/src/system/render2d/VideoRendererSystem.ts","../../../packages/engine/src/manager/SceneManager.ts","../../../packages/engine/src/component/gameLogic/Button.ts","../../../packages/engine/src/system/gameLogic/ButtonSystem.ts","../../../packages/engine/src/component/gameLogic/TiledWrapper.ts","../../../packages/engine/src/component/render2d/TilemapRenderer.ts","../../../packages/engine/src/system/gameLogic/TiledWrapperSystem.ts","../../../packages/engine/src/system/gameLogic/TilemapPreProcessingSystem.ts","../../../packages/engine/src/system/gameLogic/TransformSystem.ts","../../../packages/engine/src/system/input/GamepadSystem.ts","../../../packages/engine/src/system/input/KeyboardSystem.ts","../../../packages/engine/src/system/input/MouseSystem.ts","../../../packages/engine/src/system/input/TouchScreenSystem.ts","../../../packages/engine/src/component/gameLogic/Animator.ts","../../../packages/engine/src/component/render2d/SpriteRenderer.ts","../../../packages/engine/src/system/render2d/AnimatorSystem.ts","../../../packages/engine/src/system/render2d/CameraSystem.ts","../../../packages/engine/src/system/render2d/ClearScreenSystem.ts","../../../packages/engine/src/component/physics2d/BallCollider.ts","../../../packages/engine/src/component/physics2d/BoxCollider.ts","../../../packages/engine/src/component/physics2d/EdgeCollider.ts","../../../packages/engine/src/component/physics2d/PolygonCollider.ts","../../../packages/engine/src/component/physics2d/TilemapCollider.ts","../../../packages/engine/src/system/debug/DebugColliderRenderSystem.ts","../../../packages/engine/src/system/render2d/CullingSystem.ts","../../../packages/engine/src/component/render2d/MaskRenderer.ts","../../../packages/engine/src/system/render2d/MaskRendererSystem.ts","../../../packages/engine/src/system/render2d/RenderSystem.ts","../../../packages/engine/src/component/render2d/LightRenderer.ts","../../../packages/engine/src/component/render2d/DarknessRenderer.ts","../../../packages/engine/src/system/render2d/DarknessLightRendererSystem.ts","../../../packages/engine/src/system/render2d/SpriteRendererSystem.ts","../../../packages/engine/src/component/render2d/TextRenderer.ts","../../../packages/engine/src/system/render2d/TextRendererSystem.ts","../../../packages/engine/src/system/render2d/TilemapRendererSystem.ts","../../../packages/engine/src/component/physics2d/RigidBody.ts","../../../packages/engine/src/system/physics2d/ApplyVelocitySystem.ts","../../../packages/engine/src/system/physics2d/collider/BaseUpdateColliderShapeSystem.ts","../../../packages/engine/src/system/physics2d/collider/UpdateBallColliderShapeSystem.ts","../../../packages/engine/src/system/physics2d/collider/UpdateBoxColliderShapeSystem.ts","../../../packages/engine/src/system/physics2d/collider/UpdateEdgeColliderShapeSystem.ts","../../../packages/engine/src/system/physics2d/collider/UpdatePolygonColliderShapeSystem.ts","../../../packages/engine/src/system/physics2d/collider/UpdateTilemapColliderShapeSystem.ts","../../../packages/engine/src/system/physics2d/ResolveCollisionSystem.ts","../../../packages/engine/src/system/physics2d/ApplyRepositionSystem.ts","../../../packages/engine/src/system/physics2d/collider/UpdateCollidersAfterRepositionSystem.ts","../../../packages/engine/src/system/debug/DebugMousePositionSystem.ts","../../../packages/engine/src/config/systemsByGroup.ts","../../../packages/engine/src/manager/LoopManager.ts","../../../packages/engine/src/system/CreateSystemService.ts","../../../packages/engine/src/manager/RenderManager.ts","../../../packages/engine/src/config/bootstrap.ts","../../../packages/engine/src/system/GameSystem.ts","../../../packages/engine/src/utils/misc/audio.ts","../../../packages/engine/src/index.ts","../../../packages/engine/src/Game.ts","../../../packages/engine/src/utils/misc/decorator.ts"],"sourcesContent":[null,null,null,"/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"/**\n * Common utilities\n * @module glMatrix\n */\n// Configuration Constants\nexport var EPSILON = 0.000001;\nexport var ARRAY_TYPE = typeof Float32Array !== 'undefined' ? Float32Array : Array;\nexport var RANDOM = Math.random;\n/**\n * Sets the type of array used when creating new vectors and matrices\n *\n * @param {Float32ArrayConstructor | ArrayConstructor} type Array type, such as Float32Array or Array\n */\n\nexport function setMatrixArrayType(type) {\n ARRAY_TYPE = type;\n}\nvar degree = Math.PI / 180;\n/**\n * Convert Degree To Radian\n *\n * @param {Number} a Angle in Degrees\n */\n\nexport function toRadian(a) {\n return a * degree;\n}\n/**\n * Tests whether or not the arguments have approximately the same value, within an absolute\n * or relative tolerance of glMatrix.EPSILON (an absolute tolerance is used for values less\n * than or equal to 1.0, and a relative tolerance is used for larger values)\n *\n * @param {Number} a The first number to test.\n * @param {Number} b The second number to test.\n * @returns {Boolean} True if the numbers are approximately equal, false otherwise.\n */\n\nexport function equals(a, b) {\n return Math.abs(a - b) <= EPSILON * Math.max(1.0, Math.abs(a), Math.abs(b));\n}\nif (!Math.hypot) Math.hypot = function () {\n var y = 0,\n i = arguments.length;\n\n while (i--) {\n y += arguments[i] * arguments[i];\n }\n\n return Math.sqrt(y);\n};","import * as glMatrix from \"./common.js\";\n/**\n * 4x4 Matrix<br>Format: column-major, when typed out it looks like row-major<br>The matrices are being post multiplied.\n * @module mat4\n */\n\n/**\n * Creates a new identity mat4\n *\n * @returns {mat4} a new 4x4 matrix\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(16);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n }\n\n out[0] = 1;\n out[5] = 1;\n out[10] = 1;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a new mat4 initialized with values from an existing matrix\n *\n * @param {ReadonlyMat4} a matrix to clone\n * @returns {mat4} a new 4x4 matrix\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(16);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\n * Copy the values from one mat4 to another\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\n * Create a new mat4 with the given values\n *\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m03 Component in column 0, row 3 position (index 3)\n * @param {Number} m10 Component in column 1, row 0 position (index 4)\n * @param {Number} m11 Component in column 1, row 1 position (index 5)\n * @param {Number} m12 Component in column 1, row 2 position (index 6)\n * @param {Number} m13 Component in column 1, row 3 position (index 7)\n * @param {Number} m20 Component in column 2, row 0 position (index 8)\n * @param {Number} m21 Component in column 2, row 1 position (index 9)\n * @param {Number} m22 Component in column 2, row 2 position (index 10)\n * @param {Number} m23 Component in column 2, row 3 position (index 11)\n * @param {Number} m30 Component in column 3, row 0 position (index 12)\n * @param {Number} m31 Component in column 3, row 1 position (index 13)\n * @param {Number} m32 Component in column 3, row 2 position (index 14)\n * @param {Number} m33 Component in column 3, row 3 position (index 15)\n * @returns {mat4} A new mat4\n */\n\nexport function fromValues(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n var out = new glMatrix.ARRAY_TYPE(16);\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m03;\n out[4] = m10;\n out[5] = m11;\n out[6] = m12;\n out[7] = m13;\n out[8] = m20;\n out[9] = m21;\n out[10] = m22;\n out[11] = m23;\n out[12] = m30;\n out[13] = m31;\n out[14] = m32;\n out[15] = m33;\n return out;\n}\n/**\n * Set the components of a mat4 to the given values\n *\n * @param {mat4} out the receiving matrix\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m03 Component in column 0, row 3 position (index 3)\n * @param {Number} m10 Component in column 1, row 0 position (index 4)\n * @param {Number} m11 Component in column 1, row 1 position (index 5)\n * @param {Number} m12 Component in column 1, row 2 position (index 6)\n * @param {Number} m13 Component in column 1, row 3 position (index 7)\n * @param {Number} m20 Component in column 2, row 0 position (index 8)\n * @param {Number} m21 Component in column 2, row 1 position (index 9)\n * @param {Number} m22 Component in column 2, row 2 position (index 10)\n * @param {Number} m23 Component in column 2, row 3 position (index 11)\n * @param {Number} m30 Component in column 3, row 0 position (index 12)\n * @param {Number} m31 Component in column 3, row 1 position (index 13)\n * @param {Number} m32 Component in column 3, row 2 position (index 14)\n * @param {Number} m33 Component in column 3, row 3 position (index 15)\n * @returns {mat4} out\n */\n\nexport function set(out, m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m03;\n out[4] = m10;\n out[5] = m11;\n out[6] = m12;\n out[7] = m13;\n out[8] = m20;\n out[9] = m21;\n out[10] = m22;\n out[11] = m23;\n out[12] = m30;\n out[13] = m31;\n out[14] = m32;\n out[15] = m33;\n return out;\n}\n/**\n * Set a mat4 to the identity matrix\n *\n * @param {mat4} out the receiving matrix\n * @returns {mat4} out\n */\n\nexport function identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Transpose the values of a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function transpose(out, a) {\n // If we are transposing ourselves we can skip a few steps but have to cache some values\n if (out === a) {\n var a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a12 = a[6],\n a13 = a[7];\n var a23 = a[11];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a01;\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a02;\n out[9] = a12;\n out[11] = a[14];\n out[12] = a03;\n out[13] = a13;\n out[14] = a23;\n } else {\n out[0] = a[0];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a[1];\n out[5] = a[5];\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a[2];\n out[9] = a[6];\n out[10] = a[10];\n out[11] = a[14];\n out[12] = a[3];\n out[13] = a[7];\n out[14] = a[11];\n out[15] = a[15];\n }\n\n return out;\n}\n/**\n * Inverts a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function invert(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n\n if (!det) {\n return null;\n }\n\n det = 1.0 / det;\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det;\n out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det;\n out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det;\n out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det;\n out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det;\n out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det;\n out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det;\n return out;\n}\n/**\n * Calculates the adjugate of a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function adjoint(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n out[0] = a11 * (a22 * a33 - a23 * a32) - a21 * (a12 * a33 - a13 * a32) + a31 * (a12 * a23 - a13 * a22);\n out[1] = -(a01 * (a22 * a33 - a23 * a32) - a21 * (a02 * a33 - a03 * a32) + a31 * (a02 * a23 - a03 * a22));\n out[2] = a01 * (a12 * a33 - a13 * a32) - a11 * (a02 * a33 - a03 * a32) + a31 * (a02 * a13 - a03 * a12);\n out[3] = -(a01 * (a12 * a23 - a13 * a22) - a11 * (a02 * a23 - a03 * a22) + a21 * (a02 * a13 - a03 * a12));\n out[4] = -(a10 * (a22 * a33 - a23 * a32) - a20 * (a12 * a33 - a13 * a32) + a30 * (a12 * a23 - a13 * a22));\n out[5] = a00 * (a22 * a33 - a23 * a32) - a20 * (a02 * a33 - a03 * a32) + a30 * (a02 * a23 - a03 * a22);\n out[6] = -(a00 * (a12 * a33 - a13 * a32) - a10 * (a02 * a33 - a03 * a32) + a30 * (a02 * a13 - a03 * a12));\n out[7] = a00 * (a12 * a23 - a13 * a22) - a10 * (a02 * a23 - a03 * a22) + a20 * (a02 * a13 - a03 * a12);\n out[8] = a10 * (a21 * a33 - a23 * a31) - a20 * (a11 * a33 - a13 * a31) + a30 * (a11 * a23 - a13 * a21);\n out[9] = -(a00 * (a21 * a33 - a23 * a31) - a20 * (a01 * a33 - a03 * a31) + a30 * (a01 * a23 - a03 * a21));\n out[10] = a00 * (a11 * a33 - a13 * a31) - a10 * (a01 * a33 - a03 * a31) + a30 * (a01 * a13 - a03 * a11);\n out[11] = -(a00 * (a11 * a23 - a13 * a21) - a10 * (a01 * a23 - a03 * a21) + a20 * (a01 * a13 - a03 * a11));\n out[12] = -(a10 * (a21 * a32 - a22 * a31) - a20 * (a11 * a32 - a12 * a31) + a30 * (a11 * a22 - a12 * a21));\n out[13] = a00 * (a21 * a32 - a22 * a31) - a20 * (a01 * a32 - a02 * a31) + a30 * (a01 * a22 - a02 * a21);\n out[14] = -(a00 * (a11 * a32 - a12 * a31) - a10 * (a01 * a32 - a02 * a31) + a30 * (a01 * a12 - a02 * a11));\n out[15] = a00 * (a11 * a22 - a12 * a21) - a10 * (a01 * a22 - a02 * a21) + a20 * (a01 * a12 - a02 * a11);\n return out;\n}\n/**\n * Calculates the determinant of a mat4\n *\n * @param {ReadonlyMat4} a the source matrix\n * @returns {Number} determinant of a\n */\n\nexport function determinant(a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n return b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n}\n/**\n * Multiplies two mat4s\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\n\nexport function multiply(out, a, b) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15]; // Cache only the current line of the second matrix\n\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3];\n out[0] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[1] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[2] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[3] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[4];\n b1 = b[5];\n b2 = b[6];\n b3 = b[7];\n out[4] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[5] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[6] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[7] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[8];\n b1 = b[9];\n b2 = b[10];\n b3 = b[11];\n out[8] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[9] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[10] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[11] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[12];\n b1 = b[13];\n b2 = b[14];\n b3 = b[15];\n out[12] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[13] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[14] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n return out;\n}\n/**\n * Translate a mat4 by the given vector\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to translate\n * @param {ReadonlyVec3} v vector to translate by\n * @returns {mat4} out\n */\n\nexport function translate(out, a, v) {\n var x = v[0],\n y = v[1],\n z = v[2];\n var a00, a01, a02, a03;\n var a10, a11, a12, a13;\n var a20, a21, a22, a23;\n\n if (a === out) {\n out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];\n out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];\n out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];\n out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];\n } else {\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11];\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n out[3] = a03;\n out[4] = a10;\n out[5] = a11;\n out[6] = a12;\n out[7] = a13;\n out[8] = a20;\n out[9] = a21;\n out[10] = a22;\n out[11] = a23;\n out[12] = a00 * x + a10 * y + a20 * z + a[12];\n out[13] = a01 * x + a11 * y + a21 * z + a[13];\n out[14] = a02 * x + a12 * y + a22 * z + a[14];\n out[15] = a03 * x + a13 * y + a23 * z + a[15];\n }\n\n return out;\n}\n/**\n * Scales the mat4 by the dimensions in the given vec3 not using vectorization\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to scale\n * @param {ReadonlyVec3} v the vec3 to scale the matrix by\n * @returns {mat4} out\n **/\n\nexport function scale(out, a, v) {\n var x = v[0],\n y = v[1],\n z = v[2];\n out[0] = a[0] * x;\n out[1] = a[1] * x;\n out[2] = a[2] * x;\n out[3] = a[3] * x;\n out[4] = a[4] * y;\n out[5] = a[5] * y;\n out[6] = a[6] * y;\n out[7] = a[7] * y;\n out[8] = a[8] * z;\n out[9] = a[9] * z;\n out[10] = a[10] * z;\n out[11] = a[11] * z;\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\n * Rotates a mat4 by the given angle around the given axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @param {ReadonlyVec3} axis the axis to rotate around\n * @returns {mat4} out\n */\n\nexport function rotate(out, a, rad, axis) {\n var x = axis[0],\n y = axis[1],\n z = axis[2];\n var len = Math.hypot(x, y, z);\n var s, c, t;\n var a00, a01, a02, a03;\n var a10, a11, a12, a13;\n var a20, a21, a22, a23;\n var b00, b01, b02;\n var b10, b11, b12;\n var b20, b21, b22;\n\n if (len < glMatrix.EPSILON) {\n return null;\n }\n\n len = 1 / len;\n x *= len;\n y *= len;\n z *= len;\n s = Math.sin(rad);\n c = Math.cos(rad);\n t = 1 - c;\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11]; // Construct the elements of the rotation matrix\n\n b00 = x * x * t + c;\n b01 = y * x * t + z * s;\n b02 = z * x * t - y * s;\n b10 = x * y * t - z * s;\n b11 = y * y * t + c;\n b12 = z * y * t + x * s;\n b20 = x * z * t + y * s;\n b21 = y * z * t - x * s;\n b22 = z * z * t + c; // Perform rotation-specific matrix multiplication\n\n out[0] = a00 * b00 + a10 * b01 + a20 * b02;\n out[1] = a01 * b00 + a11 * b01 + a21 * b02;\n out[2] = a02 * b00 + a12 * b01 + a22 * b02;\n out[3] = a03 * b00 + a13 * b01 + a23 * b02;\n out[4] = a00 * b10 + a10 * b11 + a20 * b12;\n out[5] = a01 * b10 + a11 * b11 + a21 * b12;\n out[6] = a02 * b10 + a12 * b11 + a22 * b12;\n out[7] = a03 * b10 + a13 * b11 + a23 * b12;\n out[8] = a00 * b20 + a10 * b21 + a20 * b22;\n out[9] = a01 * b20 + a11 * b21 + a21 * b22;\n out[10] = a02 * b20 + a12 * b21 + a22 * b22;\n out[11] = a03 * b20 + a13 * b21 + a23 * b22;\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged last row\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n\n return out;\n}\n/**\n * Rotates a matrix by the given angle around the X axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function rotateX(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a10 = a[4];\n var a11 = a[5];\n var a12 = a[6];\n var a13 = a[7];\n var a20 = a[8];\n var a21 = a[9];\n var a22 = a[10];\n var a23 = a[11];\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged rows\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n\n out[4] = a10 * c + a20 * s;\n out[5] = a11 * c + a21 * s;\n out[6] = a12 * c + a22 * s;\n out[7] = a13 * c + a23 * s;\n out[8] = a20 * c - a10 * s;\n out[9] = a21 * c - a11 * s;\n out[10] = a22 * c - a12 * s;\n out[11] = a23 * c - a13 * s;\n return out;\n}\n/**\n * Rotates a matrix by the given angle around the Y axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function rotateY(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a00 = a[0];\n var a01 = a[1];\n var a02 = a[2];\n var a03 = a[3];\n var a20 = a[8];\n var a21 = a[9];\n var a22 = a[10];\n var a23 = a[11];\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged rows\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n\n out[0] = a00 * c - a20 * s;\n out[1] = a01 * c - a21 * s;\n out[2] = a02 * c - a22 * s;\n out[3] = a03 * c - a23 * s;\n out[8] = a00 * s + a20 * c;\n out[9] = a01 * s + a21 * c;\n out[10] = a02 * s + a22 * c;\n out[11] = a03 * s + a23 * c;\n return out;\n}\n/**\n * Rotates a matrix by the given angle around the Z axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function rotateZ(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a00 = a[0];\n var a01 = a[1];\n var a02 = a[2];\n var a03 = a[3];\n var a10 = a[4];\n var a11 = a[5];\n var a12 = a[6];\n var a13 = a[7];\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged last row\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n\n out[0] = a00 * c + a10 * s;\n out[1] = a01 * c + a11 * s;\n out[2] = a02 * c + a12 * s;\n out[3] = a03 * c + a13 * s;\n out[4] = a10 * c - a00 * s;\n out[5] = a11 * c - a01 * s;\n out[6] = a12 * c - a02 * s;\n out[7] = a13 * c - a03 * s;\n return out;\n}\n/**\n * Creates a matrix from a vector translation\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, dest, vec);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {ReadonlyVec3} v Translation vector\n * @returns {mat4} out\n */\n\nexport function fromTranslation(out, v) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a vector scaling\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.scale(dest, dest, vec);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {ReadonlyVec3} v Scaling vector\n * @returns {mat4} out\n */\n\nexport function fromScaling(out, v) {\n out[0] = v[0];\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = v[1];\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = v[2];\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a given angle around a given axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotate(dest, dest, rad, axis);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @param {ReadonlyVec3} axis the axis to rotate around\n * @returns {mat4} out\n */\n\nexport function fromRotation(out, rad, axis) {\n var x = axis[0],\n y = axis[1],\n z = axis[2];\n var len = Math.hypot(x, y, z);\n var s, c, t;\n\n if (len < glMatrix.EPSILON) {\n return null;\n }\n\n len = 1 / len;\n x *= len;\n y *= len;\n z *= len;\n s = Math.sin(rad);\n c = Math.cos(rad);\n t = 1 - c; // Perform rotation-specific matrix multiplication\n\n out[0] = x * x * t + c;\n out[1] = y * x * t + z * s;\n out[2] = z * x * t - y * s;\n out[3] = 0;\n out[4] = x * y * t - z * s;\n out[5] = y * y * t + c;\n out[6] = z * y * t + x * s;\n out[7] = 0;\n out[8] = x * z * t + y * s;\n out[9] = y * z * t - x * s;\n out[10] = z * z * t + c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from the given angle around the X axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotateX(dest, dest, rad);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function fromXRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = c;\n out[6] = s;\n out[7] = 0;\n out[8] = 0;\n out[9] = -s;\n out[10] = c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from the given angle around the Y axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotateY(dest, dest, rad);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function fromYRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = c;\n out[1] = 0;\n out[2] = -s;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = s;\n out[9] = 0;\n out[10] = c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from the given angle around the Z axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotateZ(dest, dest, rad);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function fromZRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = c;\n out[1] = s;\n out[2] = 0;\n out[3] = 0;\n out[4] = -s;\n out[5] = c;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a quaternion rotation and vector translation\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, vec);\n * let quatMat = mat4.create();\n * quat4.toMat4(quat, quatMat);\n * mat4.multiply(dest, quatMat);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @param {ReadonlyVec3} v Translation vector\n * @returns {mat4} out\n */\n\nexport function fromRotationTranslation(out, q, v) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - (yy + zz);\n out[1] = xy + wz;\n out[2] = xz - wy;\n out[3] = 0;\n out[4] = xy - wz;\n out[5] = 1 - (xx + zz);\n out[6] = yz + wx;\n out[7] = 0;\n out[8] = xz + wy;\n out[9] = yz - wx;\n out[10] = 1 - (xx + yy);\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\n * Creates a new mat4 from a dual quat.\n *\n * @param {mat4} out Matrix\n * @param {ReadonlyQuat2} a Dual Quaternion\n * @returns {mat4} mat4 receiving operation result\n */\n\nexport function fromQuat2(out, a) {\n var translation = new glMatrix.ARRAY_TYPE(3);\n var bx = -a[0],\n by = -a[1],\n bz = -a[2],\n bw = a[3],\n ax = a[4],\n ay = a[5],\n az = a[6],\n aw = a[7];\n var magnitude = bx * bx + by * by + bz * bz + bw * bw; //Only scale if it makes sense\n\n if (magnitude > 0) {\n translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2 / magnitude;\n translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2 / magnitude;\n translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2 / magnitude;\n } else {\n translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2;\n translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2;\n translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2;\n }\n\n fromRotationTranslation(out, a, translation);\n return out;\n}\n/**\n * Returns the translation vector component of a transformation\n * matrix. If a matrix is built with fromRotationTranslation,\n * the returned vector will be the same as the translation vector\n * originally supplied.\n * @param {vec3} out Vector to receive translation component\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\n * @return {vec3} out\n */\n\nexport function getTranslation(out, mat) {\n out[0] = mat[12];\n out[1] = mat[13];\n out[2] = mat[14];\n return out;\n}\n/**\n * Returns the scaling factor component of a transformation\n * matrix. If a matrix is built with fromRotationTranslationScale\n * with a normalized Quaternion paramter, the returned vector will be\n * the same as the scaling vector\n * originally supplied.\n * @param {vec3} out Vector to receive scaling factor component\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\n * @return {vec3} out\n */\n\nexport function getScaling(out, mat) {\n var m11 = mat[0];\n var m12 = mat[1];\n var m13 = mat[2];\n var m21 = mat[4];\n var m22 = mat[5];\n var m23 = mat[6];\n var m31 = mat[8];\n var m32 = mat[9];\n var m33 = mat[10];\n out[0] = Math.hypot(m11, m12, m13);\n out[1] = Math.hypot(m21, m22, m23);\n out[2] = Math.hypot(m31, m32, m33);\n return out;\n}\n/**\n * Returns a quaternion representing the rotational component\n * of a transformation matrix. If a matrix is built with\n * fromRotationTranslation, the returned quaternion will be the\n * same as the quaternion originally supplied.\n * @param {quat} out Quaternion to receive the rotation component\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\n * @return {quat} out\n */\n\nexport function getRotation(out, mat) {\n var scaling = new glMatrix.ARRAY_TYPE(3);\n getScaling(scaling, mat);\n var is1 = 1 / scaling[0];\n var is2 = 1 / scaling[1];\n var is3 = 1 / scaling[2];\n var sm11 = mat[0] * is1;\n var sm12 = mat[1] * is2;\n var sm13 = mat[2] * is3;\n var sm21 = mat[4] * is1;\n var sm22 = mat[5] * is2;\n var sm23 = mat[6] * is3;\n var sm31 = mat[8] * is1;\n var sm32 = mat[9] * is2;\n var sm33 = mat[10] * is3;\n var trace = sm11 + sm22 + sm33;\n var S = 0;\n\n if (trace > 0) {\n S = Math.sqrt(trace + 1.0) * 2;\n out[3] = 0.25 * S;\n out[0] = (sm23 - sm32) / S;\n out[1] = (sm31 - sm13) / S;\n out[2] = (sm12 - sm21) / S;\n } else if (sm11 > sm22 && sm11 > sm33) {\n S = Math.sqrt(1.0 + sm11 - sm22 - sm33) * 2;\n out[3] = (sm23 - sm32) / S;\n out[0] = 0.25 * S;\n out[1] = (sm12 + sm21) / S;\n out[2] = (sm31 + sm13) / S;\n } else if (sm22 > sm33) {\n S = Math.sqrt(1.0 + sm22 - sm11 - sm33) * 2;\n out[3] = (sm31 - sm13) / S;\n out[0] = (sm12 + sm21) / S;\n out[1] = 0.25 * S;\n out[2] = (sm23 + sm32) / S;\n } else {\n S = Math.sqrt(1.0 + sm33 - sm11 - sm22) * 2;\n out[3] = (sm12 - sm21) / S;\n out[0] = (sm31 + sm13) / S;\n out[1] = (sm23 + sm32) / S;\n out[2] = 0.25 * S;\n }\n\n return out;\n}\n/**\n * Creates a matrix from a quaternion rotation, vector translation and vector scale\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, vec);\n * let quatMat = mat4.create();\n * quat4.toMat4(quat, quatMat);\n * mat4.multiply(dest, quatMat);\n * mat4.scale(dest, scale)\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @param {ReadonlyVec3} v Translation vector\n * @param {ReadonlyVec3} s Scaling vector\n * @returns {mat4} out\n */\n\nexport function fromRotationTranslationScale(out, q, v, s) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n var sx = s[0];\n var sy = s[1];\n var sz = s[2];\n out[0] = (1 - (yy + zz)) * sx;\n out[1] = (xy + wz) * sx;\n out[2] = (xz - wy) * sx;\n out[3] = 0;\n out[4] = (xy - wz) * sy;\n out[5] = (1 - (xx + zz)) * sy;\n out[6] = (yz + wx) * sy;\n out[7] = 0;\n out[8] = (xz + wy) * sz;\n out[9] = (yz - wx) * sz;\n out[10] = (1 - (xx + yy)) * sz;\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a quaternion rotation, vector translation and vector scale, rotating and scaling around the given origin\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, vec);\n * mat4.translate(dest, origin);\n * let quatMat = mat4.create();\n * quat4.toMat4(quat, quatMat);\n * mat4.multiply(dest, quatMat);\n * mat4.scale(dest, scale)\n * mat4.translate(dest, negativeOrigin);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @param {ReadonlyVec3} v Translation vector\n * @param {ReadonlyVec3} s Scaling vector\n * @param {ReadonlyVec3} o The origin vector around which to scale and rotate\n * @returns {mat4} out\n */\n\nexport function fromRotationTranslationScaleOrigin(out, q, v, s, o) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n var sx = s[0];\n var sy = s[1];\n var sz = s[2];\n var ox = o[0];\n var oy = o[1];\n var oz = o[2];\n var out0 = (1 - (yy + zz)) * sx;\n var out1 = (xy + wz) * sx;\n var out2 = (xz - wy) * sx;\n var out4 = (xy - wz) * sy;\n var out5 = (1 - (xx + zz)) * sy;\n var out6 = (yz + wx) * sy;\n var out8 = (xz + wy) * sz;\n var out9 = (yz - wx) * sz;\n var out10 = (1 - (xx + yy)) * sz;\n out[0] = out0;\n out[1] = out1;\n out[2] = out2;\n out[3] = 0;\n out[4] = out4;\n out[5] = out5;\n out[6] = out6;\n out[7] = 0;\n out[8] = out8;\n out[9] = out9;\n out[10] = out10;\n out[11] = 0;\n out[12] = v[0] + ox - (out0 * ox + out4 * oy + out8 * oz);\n out[13] = v[1] + oy - (out1 * ox + out5 * oy + out9 * oz);\n out[14] = v[2] + oz - (out2 * ox + out6 * oy + out10 * oz);\n out[15] = 1;\n return out;\n}\n/**\n * Calculates a 4x4 matrix from the given quaternion\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {ReadonlyQuat} q Quaternion to create matrix from\n *\n * @returns {mat4} out\n */\n\nexport function fromQuat(out, q) {\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var yx = y * x2;\n var yy = y * y2;\n var zx = z * x2;\n var zy = z * y2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - yy - zz;\n out[1] = yx + wz;\n out[2] = zx - wy;\n out[3] = 0;\n out[4] = yx - wz;\n out[5] = 1 - xx - zz;\n out[6] = zy + wx;\n out[7] = 0;\n out[8] = zx + wy;\n out[9] = zy - wx;\n out[10] = 1 - xx - yy;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Generates a frustum matrix with the given bounds\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {Number} left Left bound of the frustum\n * @param {Number} right Right bound of the frustum\n * @param {Number} bottom Bottom bound of the frustum\n * @param {Number} top Top bound of the frustum\n * @param {Number} near Near bound of the frustum\n * @param {Number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function frustum(out, left, right, bottom, top, near, far) {\n var rl = 1 / (right - left);\n var tb = 1 / (top - bottom);\n var nf = 1 / (near - far);\n out[0] = near * 2 * rl;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = near * 2 * tb;\n out[6] = 0;\n out[7] = 0;\n out[8] = (right + left) * rl;\n out[9] = (top + bottom) * tb;\n out[10] = (far + near) * nf;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[14] = far * near * 2 * nf;\n out[15] = 0;\n return out;\n}\n/**\n * Generates a perspective projection matrix with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [-1, 1],\n * which matches WebGL/OpenGL's clip volume.\n * Passing null/undefined/no value for far will generate infinite projection matrix.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} fovy Vertical field of view in radians\n * @param {number} aspect Aspect ratio. typically viewport width/height\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum, can be null or Infinity\n * @returns {mat4} out\n */\n\nexport function perspectiveNO(out, fovy, aspect, near, far) {\n var f = 1.0 / Math.tan(fovy / 2),\n nf;\n out[0] = f / aspect;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = f;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[15] = 0;\n\n if (far != null && far !== Infinity) {\n nf = 1 / (near - far);\n out[10] = (far + near) * nf;\n out[14] = 2 * far * near * nf;\n } else {\n out[10] = -1;\n out[14] = -2 * near;\n }\n\n return out;\n}\n/**\n * Alias for {@link mat4.perspectiveNO}\n * @function\n */\n\nexport var perspective = perspectiveNO;\n/**\n * Generates a perspective projection matrix suitable for WebGPU with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [0, 1],\n * which matches WebGPU/Vulkan/DirectX/Metal's clip volume.\n * Passing null/undefined/no value for far will generate infinite projection matrix.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} fovy Vertical field of view in radians\n * @param {number} aspect Aspect ratio. typically viewport width/height\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum, can be null or Infinity\n * @returns {mat4} out\n */\n\nexport function perspectiveZO(out, fovy, aspect, near, far) {\n var f = 1.0 / Math.tan(fovy / 2),\n nf;\n out[0] = f / aspect;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = f;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[15] = 0;\n\n if (far != null && far !== Infinity) {\n nf = 1 / (near - far);\n out[10] = far * nf;\n out[14] = far * near * nf;\n } else {\n out[10] = -1;\n out[14] = -near;\n }\n\n return out;\n}\n/**\n * Generates a perspective projection matrix with the given field of view.\n * This is primarily useful for generating projection matrices to be used\n * with the still experiemental WebVR API.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {Object} fov Object containing the following values: upDegrees, downDegrees, leftDegrees, rightDegrees\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function perspectiveFromFieldOfView(out, fov, near, far) {\n var upTan = Math.tan(fov.upDegrees * Math.PI / 180.0);\n var downTan = Math.tan(fov.downDegrees * Math.PI / 180.0);\n var leftTan = Math.tan(fov.leftDegrees * Math.PI / 180.0);\n var rightTan = Math.tan(fov.rightDegrees * Math.PI / 180.0);\n var xScale = 2.0 / (leftTan + rightTan);\n var yScale = 2.0 / (upTan + downTan);\n out[0] = xScale;\n out[1] = 0.0;\n out[2] = 0.0;\n out[3] = 0.0;\n out[4] = 0.0;\n out[5] = yScale;\n out[6] = 0.0;\n out[7] = 0.0;\n out[8] = -((leftTan - rightTan) * xScale * 0.5);\n out[9] = (upTan - downTan) * yScale * 0.5;\n out[10] = far / (near - far);\n out[11] = -1.0;\n out[12] = 0.0;\n out[13] = 0.0;\n out[14] = far * near / (near - far);\n out[15] = 0.0;\n return out;\n}\n/**\n * Generates a orthogonal projection matrix with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [-1, 1],\n * which matches WebGL/OpenGL's clip volume.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} left Left bound of the frustum\n * @param {number} right Right bound of the frustum\n * @param {number} bottom Bottom bound of the frustum\n * @param {number} top Top bound of the frustum\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function orthoNO(out, left, right, bottom, top, near, far) {\n var lr = 1 / (left - right);\n var bt = 1 / (bottom - top);\n var nf = 1 / (near - far);\n out[0] = -2 * lr;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = -2 * bt;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 2 * nf;\n out[11] = 0;\n out[12] = (left + right) * lr;\n out[13] = (top + bottom) * bt;\n out[14] = (far + near) * nf;\n out[15] = 1;\n return out;\n}\n/**\n * Alias for {@link mat4.orthoNO}\n * @function\n */\n\nexport var ortho = orthoNO;\n/**\n * Generates a orthogonal projection matrix with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [0, 1],\n * which matches WebGPU/Vulkan/DirectX/Metal's clip volume.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} left Left bound of the frustum\n * @param {number} right Right bound of the frustum\n * @param {number} bottom Bottom bound of the frustum\n * @param {number} top Top bound of the frustum\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function orthoZO(out, left, right, bottom, top, near, far) {\n var lr = 1 / (left - right);\n var bt = 1 / (bottom - top);\n var nf = 1 / (near - far);\n out[0] = -2 * lr;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = -2 * bt;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = nf;\n out[11] = 0;\n out[12] = (left + right) * lr;\n out[13] = (top + bottom) * bt;\n out[14] = near * nf;\n out[15] = 1;\n return out;\n}\n/**\n * Generates a look-at matrix with the given eye position, focal point, and up axis.\n * If you want a matrix that actually makes an object look at another object, you should use targetTo instead.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {ReadonlyVec3} eye Position of the viewer\n * @param {ReadonlyVec3} center Point the viewer is looking at\n * @param {ReadonlyVec3} up vec3 pointing up\n * @returns {mat4} out\n */\n\nexport function lookAt(out, eye, center, up) {\n var x0, x1, x2, y0, y1, y2, z0, z1, z2, len;\n var eyex = eye[0];\n var eyey = eye[1];\n var eyez = eye[2];\n var upx = up[0];\n var upy = up[1];\n var upz = up[2];\n var centerx = center[0];\n var centery = center[1];\n var centerz = center[2];\n\n if (Math.abs(eyex - centerx) < glMatrix.EPSILON && Math.abs(eyey - centery) < glMatrix.EPSILON && Math.abs(eyez - centerz) < glMatrix.EPSILON) {\n return identity(out);\n }\n\n z0 = eyex - centerx;\n z1 = eyey - centery;\n z2 = eyez - centerz;\n len = 1 / Math.hypot(z0, z1, z2);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n x0 = upy * z2 - upz * z1;\n x1 = upz * z0 - upx * z2;\n x2 = upx * z1 - upy * z0;\n len = Math.hypot(x0, x1, x2);\n\n if (!len) {\n x0 = 0;\n x1 = 0;\n x2 = 0;\n } else {\n len = 1 / len;\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n\n y0 = z1 * x2 - z2 * x1;\n y1 = z2 * x0 - z0 * x2;\n y2 = z0 * x1 - z1 * x0;\n len = Math.hypot(y0, y1, y2);\n\n if (!len) {\n y0 = 0;\n y1 = 0;\n y2 = 0;\n } else {\n len = 1 / len;\n y0 *= len;\n y1 *= len;\n y2 *= len;\n }\n\n out[0] = x0;\n out[1] = y0;\n out[2] = z0;\n out[3] = 0;\n out[4] = x1;\n out[5] = y1;\n out[6] = z1;\n out[7] = 0;\n out[8] = x2;\n out[9] = y2;\n out[10] = z2;\n out[11] = 0;\n out[12] = -(x0 * eyex + x1 * eyey + x2 * eyez);\n out[13] = -(y0 * eyex + y1 * eyey + y2 * eyez);\n out[14] = -(z0 * eyex + z1 * eyey + z2 * eyez);\n out[15] = 1;\n return out;\n}\n/**\n * Generates a matrix that makes something look at something else.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {ReadonlyVec3} eye Position of the viewer\n * @param {ReadonlyVec3} center Point the viewer is looking at\n * @param {ReadonlyVec3} up vec3 pointing up\n * @returns {mat4} out\n */\n\nexport function targetTo(out, eye, target, up) {\n var eyex = eye[0],\n eyey = eye[1],\n eyez = eye[2],\n upx = up[0],\n upy = up[1],\n upz = up[2];\n var z0 = eyex - target[0],\n z1 = eyey - target[1],\n z2 = eyez - target[2];\n var len = z0 * z0 + z1 * z1 + z2 * z2;\n\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n }\n\n var x0 = upy * z2 - upz * z1,\n x1 = upz * z0 - upx * z2,\n x2 = upx * z1 - upy * z0;\n len = x0 * x0 + x1 * x1 + x2 * x2;\n\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n\n out[0] = x0;\n out[1] = x1;\n out[2] = x2;\n out[3] = 0;\n out[4] = z1 * x2 - z2 * x1;\n out[5] = z2 * x0 - z0 * x2;\n out[6] = z0 * x1 - z1 * x0;\n out[7] = 0;\n out[8] = z0;\n out[9] = z1;\n out[10] = z2;\n out[11] = 0;\n out[12] = eyex;\n out[13] = eyey;\n out[14] = eyez;\n out[15] = 1;\n return out;\n}\n/**\n * Returns a string representation of a mat4\n *\n * @param {ReadonlyMat4} a matrix to represent as a string\n * @returns {String} string representation of the matrix\n */\n\nexport function str(a) {\n return \"mat4(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \", \" + a[4] + \", \" + a[5] + \", \" + a[6] + \", \" + a[7] + \", \" + a[8] + \", \" + a[9] + \", \" + a[10] + \", \" + a[11] + \", \" + a[12] + \", \" + a[13] + \", \" + a[14] + \", \" + a[15] + \")\";\n}\n/**\n * Returns Frobenius norm of a mat4\n *\n * @param {ReadonlyMat4} a the matrix to calculate Frobenius norm of\n * @returns {Number} Frobenius norm\n */\n\nexport function frob(a) {\n return Math.hypot(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]);\n}\n/**\n * Adds two mat4's\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n out[4] = a[4] + b[4];\n out[5] = a[5] + b[5];\n out[6] = a[6] + b[6];\n out[7] = a[7] + b[7];\n out[8] = a[8] + b[8];\n out[9] = a[9] + b[9];\n out[10] = a[10] + b[10];\n out[11] = a[11] + b[11];\n out[12] = a[12] + b[12];\n out[13] = a[13] + b[13];\n out[14] = a[14] + b[14];\n out[15] = a[15] + b[15];\n return out;\n}\n/**\n * Subtracts matrix b from matrix a\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n out[4] = a[4] - b[4];\n out[5] = a[5] - b[5];\n out[6] = a[6] - b[6];\n out[7] = a[7] - b[7];\n out[8] = a[8] - b[8];\n out[9] = a[9] - b[9];\n out[10] = a[10] - b[10];\n out[11] = a[11] - b[11];\n out[12] = a[12] - b[12];\n out[13] = a[13] - b[13];\n out[14] = a[14] - b[14];\n out[15] = a[15] - b[15];\n return out;\n}\n/**\n * Multiply each element of the matrix by a scalar.\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to scale\n * @param {Number} b amount to scale the matrix's elements by\n * @returns {mat4} out\n */\n\nexport function multiplyScalar(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n out[4] = a[4] * b;\n out[5] = a[5] * b;\n out[6] = a[6] * b;\n out[7] = a[7] * b;\n out[8] = a[8] * b;\n out[9] = a[9] * b;\n out[10] = a[10] * b;\n out[11] = a[11] * b;\n out[12] = a[12] * b;\n out[13] = a[13] * b;\n out[14] = a[14] * b;\n out[15] = a[15] * b;\n return out;\n}\n/**\n * Adds two mat4's after multiplying each element of the second operand by a scalar value.\n *\n * @param {mat4} out the receiving vector\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @param {Number} scale the amount to scale b's elements by before adding\n * @returns {mat4} out\n */\n\nexport function multiplyScalarAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n out[4] = a[4] + b[4] * scale;\n out[5] = a[5] + b[5] * scale;\n out[6] = a[6] + b[6] * scale;\n out[7] = a[7] + b[7] * scale;\n out[8] = a[8] + b[8] * scale;\n out[9] = a[9] + b[9] * scale;\n out[10] = a[10] + b[10] * scale;\n out[11] = a[11] + b[11] * scale;\n out[12] = a[12] + b[12] * scale;\n out[13] = a[13] + b[13] * scale;\n out[14] = a[14] + b[14] * scale;\n out[15] = a[15] + b[15] * scale;\n return out;\n}\n/**\n * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyMat4} a The first matrix.\n * @param {ReadonlyMat4} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5] && a[6] === b[6] && a[7] === b[7] && a[8] === b[8] && a[9] === b[9] && a[10] === b[10] && a[11] === b[11] && a[12] === b[12] && a[13] === b[13] && a[14] === b[14] && a[15] === b[15];\n}\n/**\n * Returns whether or not the matrices have approximately the same elements in the same position.\n *\n * @param {ReadonlyMat4} a The first matrix.\n * @param {ReadonlyMat4} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3];\n var a4 = a[4],\n a5 = a[5],\n a6 = a[6],\n a7 = a[7];\n var a8 = a[8],\n a9 = a[9],\n a10 = a[10],\n a11 = a[11];\n var a12 = a[12],\n a13 = a[13],\n a14 = a[14],\n a15 = a[15];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3];\n var b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7];\n var b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11];\n var b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) && Math.abs(a4 - b4) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) && Math.abs(a5 - b5) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5)) && Math.abs(a6 - b6) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a6), Math.abs(b6)) && Math.abs(a7 - b7) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a7), Math.abs(b7)) && Math.abs(a8 - b8) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a8), Math.abs(b8)) && Math.abs(a9 - b9) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a9), Math.abs(b9)) && Math.abs(a10 - b10) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a10), Math.abs(b10)) && Math.abs(a11 - b11) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a11), Math.abs(b11)) && Math.abs(a12 - b12) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a12), Math.abs(b12)) && Math.abs(a13 - b13) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a13), Math.abs(b13)) && Math.abs(a14 - b14) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a14), Math.abs(b14)) && Math.abs(a15 - b15) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a15), Math.abs(b15));\n}\n/**\n * Alias for {@link mat4.multiply}\n * @function\n */\n\nexport var mul = multiply;\n/**\n * Alias for {@link mat4.subtract}\n * @function\n */\n\nexport var sub = subtract;",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["DEPENDENCY_TYPES","AssetManager","Symbol","for","CanvasElement","CollisionRepository","CollisionBroadphaseResolver","CollisionResolutionMethod","CollisionAABBResolver","CollisionCircumferenceAABBResolver","CollisionCircumferenceResolver","CollisionSatResolver","CollisionMatrix","CreateSystemService","EntityManager","GameConfig","InputManager","LoopManager","RenderManager","SceneManager","SystemManager","TimeManager","WebGLManager","Container","constructor","this","instances","Map","types","add","type","name","prototype","__ioc_injectable","Error","set","dependency","get","has","toString","instance","_a","__ioc_inject_constructor","map","inject","_b","__ioc_inject_prop","forEach","prop","injectable","target","propertyKey","parameterIndex","undefined","push","BroadPhaseMethods","__decorate","decorators","key","desc","d","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__param","paramIndex","decorator","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","exports","SuppressedError","Vector2","x","y","_x","_y","magnitude","Math","sqrt","pow","direction","_direction","unit","copy","vector","equals","clone","distance","out","a","b","subtract","normal","scale","scalar","dot","cross","round","floor","ceil","Rectangle","width","height","_position","_center","x1","y1","position","center","rectangle","rect","intersects","contains","object","clamp","min","max","fixedRound","decimals","range","start","end","steps","between","QuadTree","QuadTree_1","bounds","depth","rects","children","minArea","maxArea","update","shapes","clear","resize","id","boundingBox","insert","child","Infinity","box","size","subdivide","halfWidth","halfHeight","retrieve","neighbors","retrieveFromNode","indexOf","cell","subdivisions","SpartialGrid","area","grid","coordinates","x0","y0","updateSubdivisions","cellWidth","cellHeight","updateCoordinates","ids","Set","Array","from","Polygon","vertexModel","_vertexModel","vertices","projectionAxes","rotation","collider","entity","ignoreCollisionsWithLayers","layer","radius","updateCollisions","Circumference","AABBMethod","AABBResolver","circumferenceAABBResolver","circumferenceResolver","findCollision","shapeA","shapeB","CollisionMethods","SatMethod","satResolver","resolutionDirection","boxA","boxB","overlapX","overlapY","checkOverlapForLines","sign","preventContainment","minOverlap","penetration","abs","minSep","maxSep","CircumferenceAABBResolver","closestPoint","invert","CircumferenceResolver","SatResolver","projA","projB","smallestAxis","cache","setCircumferenceAxis","axes","pa","some","setCircumferenceVertices","projectShapeOntoAxis","currentOverlap","invertAxis","mins","maxs","projection","shape","axis","vertex","s","collisions","findCollisionsForCollider","filter","localCollider","findCollisionsForColliderAndLayer","remoteCollider","findAll","persist","collision","removeAll","deepClone","Node","FontFace","Date","getTime","item","k","v","proto","getPrototypeOf","create","keys","lastEntityId","lastComponentTypeId","entities","components","disabledEntities","manuallyDisabledEntities","disabledComponents","parentEntities","childEntities","createEntity","parent","component","addComponent","setParent","createEntityFromArchetype","enabled","createComponentsFromArchetype","disableEntity","disableComponent","removeEntity","getChildren","row","delete","getParent","removeAllEntities","preserveComponentType","search","entitiesToPreserve","isEntity","isEntityEnabled","enableEntity","disableEntitiesByComponent","componentType","getComponentTypeId","enableEntitiesByComponent","oldParent","removeParent","removeChild","componentName","hasComponent","getComponent","getComponents","entityComponent","updateComponentData","updateCallback","getEntityForComponent","removeComponent","arg1","arg2","isComponentEnabled","enableComponent","getComponentFromParent","current","includeDisabled","searchEntitiesByComponents","componentTypes","first","toCompare","splice","searchInChildren","includes","__ecs_type_id","systems","findSystemIndex","systemType","findIndex","system","addSystem","group","hasSystem","getSystem","index","groupHasSystems","enableSystem","onCreate","onEnabled","disableSystem","onDisabled","setExecutionOrder","removeSystem","onDestroy","disableAllSystems","onUpdate","GamepadController","buttons","_dpadAxes","_leftStickAxes","_rightStickAxes","dpadAxes","dpadRight","dpadLeft","dpadUp","dpadDown","leftStickAxes","leftStickHorizontal","leftStickVertical","rightStickAxes","rightStickHorizontal","rightStickVertical","bottomFace","rightFace","leftFace","topFace","leftShoulder","rightShoulder","leftTrigger","rightTrigger","back","leftStickButton","rightStickButton","anyButtonPressed","values","find","vibrate","duration","weakMagnitude","strongMagnitude","startDelay","vibrationInput","Keyboard","pressedKeys","isPressed","keyCode","orPressed","keyCodes","reduce","andPressed","isPressedReturn","returnTrue","returnFalse","orPressedReturn","andPressedReturn","Mouse","leftButtonPressed","scrollButtonPressed","rightButtonPressed","positionInViewport","hasMoved","wheelScroll","TouchScreen","touching","interactions","keyboard","mouse","touchScreen","gamepads","allowedPhysicsFramerates","AssetType","deltaTime","unscaledDeltaTime","timeScale","physicsDeltaTime","unscaledPhysicsDeltaTime","renderDeltaTime","browserDeltaTime","physicsFramerate","entityManager","maxDeltaTime","thenForGame","thenForPhysics","thenForRender","lastIntervalId","intervals","join","fixedGameFramerate","fixedGameDeltaTime","parseFloat","toFixed","fixedPhysicsFramerate","fixedPhysicsDeltaTime","updateForRender","time","updateForGame","updateForPhysics","updateIntervals","intervalId","interval","intervalHealthCheck","executeImmediately","timer","delay","useTimeScale","callback","times","clearInterval","entityRef","componentRef","setInterval","clearAllIntervals","assets","getAssetsLoaded","prev","asset","loaded","loadImage","url","getImage","image","Image","crossOrigin","src","createAsset","complete","addEventListener","loadAudio","getAudio","audio","Audio","loadFont","family","getFont","font","Font","document","fonts","load","loadVideo","getVideo","video","createElement","playsInline","Video","loadJson","getJson","Json","response","fetch","json","element","disc","deleteAssetIfExists","AudioPlayer","playing","state","paused","stopped","options","action","stopOnSceneTransition","fixedToTimeScale","loop","volume","_currentAudioSource","_playPromisePendind","_playAfterUserInput","assign","play","audioSource","pause","stop","SYSTEM_TYPES","AudioPlayerSystem","ButtonSystem","TiledWrapperSystem","TilemapPreProcessingSystem","TransformSystem","GamepadSystem","KeyboardSystem","MouseSystem","TouchScreenSystem","UpdateBallColliderShapeSystem","UpdateBoxColliderShapeSystem","UpdateEdgeColliderShapeSystem","UpdatePolygonColliderShapeSystem","UpdateTilemapColliderShapeSystem","UpdateCollidersAfterRepositionSystem","ApplyRepositionSystem","ApplyVelocitySystem","ResolveCollisionSystem","AnimatorSystem","CameraSystem","ClearScreenSystem","CullingSystem","MaskRendererSystem","RenderSystem","DarknessLightRendererSystem","SpriteRendererSystem","TextRendererSystem","TilemapRendererSystem","VideoRendererSystem","DebugColliderRenderSystem","DebugMousePositionSystem","userInputEventNames","inputManager","timeManager","canPlay","userInputErrorCatched","userInputEventHandler","eventName","window","removeEventListener","hidden","catchUserInput","checkGamepad","gp","audioPlayer","currentTime","playbackRate","catch","SystemGroup","addSystemGroup","__system_group","Transform","ignoreParentPosition","ignoreParentScale","ignoreParentRotation","localPosition","localScale","localRotation","_awake","_parent","defaultRenderLayer","debugRenderLayer","Camera","layers","zoom","debug","_renderData","WebGLContextVersion","ContextManager","canvas","contextVersion","getContextVersion","gl","getContext","WebGL2","LegacyWebGL","FontAtlasFactory","fontAtlas","hasFontAtlas","getId","getFontAtlas","getOrCreate","charRanges","fontSize","spacing","chars","j","String","fromCharCode","renderAtlas","JSON","stringify","FontAtlas","ctx","clearRect","textBaseline","fillStyle","fillText","glyphs","measureText","gridSize","ProgramFactory","shaderLoader","vertexShaderSource","fragmentShaderSource","program","createProgram","vertexShader","VERTEX_SHADER","fragmentShader","FRAGMENT_SHADER","attachShader","linkProgram","status","LINK_STATUS","getProgramParameter","error","getProgramInfoLog","deleteProgram","ProgramManager","programFactory","loadProgram","positionCoordsAttr","getAttribLocation","texCoordsAttr","modelMatrixUniform","getUniformLocation","projectionMatrixUniform","textureMatrixUniform","renderTextureUniform","textureUniform","solidColorUniform","useTintColorUniform","tintColorUniform","useMaskColorUniform","maskColorUniform","maskColorMixUniform","alphaUniform","renderLightUniform","numLightsUniform","useProgram","blendFunc","SRC_ALPHA","ONE_MINUS_SRC_ALPHA","ShaderLoader","source","shader","createShader","shaderSource","compileShader","COMPILE_STATUS","getShaderParameter","getShaderInfoLog","deleteShader","ARRAY_TYPE","Float32Array","glMatrix.ARRAY_TYPE","identity","translate","a00","a01","a02","a03","a10","a11","a12","a13","a20","a21","a22","a23","z","rotateZ","rad","sin","cos","hypot","ortho","left","right","bottom","top","near","far","lr","bt","nf","setProjectionMatrix","projectionMatrix","cameraZoom","cameraPosition","mat4.identity","mat4.ortho","mat4.scale","mat4.translate","hexToRgba","hex","exec","parseInt","g","CanvasColorRenderer","render","hexColor","rgb","clearColor","COLOR_BUFFER_BIT","RenderDataType","GeometricShape","MaskShape","GeometricRenderer","programManager","mat4.create","modelMatrix","textureMatrix","circumferencePositionBuffer","createBuffer","linesPositionBuffer","angle","PI","bindBuffer","ARRAY_BUFFER","bufferData","STATIC_DRAW","renderData","cameraData","lastRender","disableVertexAttribArray","renderLines","LINE_LOOP","Line","LINES","renderCircumference","mode","DYNAMIC_DRAW","enableVertexAttribArray","vertexAttribPointer","FLOAT","mat4.rotateZ","uniformMatrix4fv","uniform1i","color","uniform4f","uniform1f","drawArrays","lastShape","Geometric","Mask","rectanglePositionBuffer","polygonPositionBuffer","renderRectangle","renderPolygon","opacity","enable","BLEND","disable","TRIANGLES","TRIANGLE_FAN","CIRCUMFERENCE_VERTICES","positionBuffer","Darkness","lights","light","entries","uniform2f","smooth","intensity","textureManager","tiledPosVertices","tiledTexVertices","lastTexture","textureBuffer","tiledPositionBuffer","tiledTextureBuffer","lastDrawMode","Sprite","tiled","getTiledPositionVertices","getTiledTextureVertices","flipHorizontally","flipVertically","slice","naturalWidth","naturalHeight","texture","getOrCreateTextureFromImage","bindTexture","TEXTURE_2D","tintColor","maskColor","_c","maskColorMix","_d","TextOrientation","fontAtlasFactory","Text","posVertices","texVertices","textSize","modelPosition","shadowPosition","shadow","text","textureAtlas","generateTextVertices","offset","shadowRenderData","setPositionFromOrientation","getOrCreateTextureFromCanvas","letterSpacing","lineHeight","maxWidth","letter","glyph","letterWidth","gx","gy","u1","v1","u2","v2","orientation","Center","RightCenter","RightUp","TilemapOrientation","tileset","tileWidth","tileHeight","texMargin","texSpacing","texWidth","texHeight","texCorrection","tiles","acc","tile","processTileset","generateVertices","tilemap","flipHorizontal","flipVertical","Tilemap","margin","correction","_e","_f","_g","tilesetTile","tilemapTile","px","py","tx","ty","videoWidth","videoHeight","getOrCreateTextureFromVideo","readyState","HTMLMediaElement","HAVE_CURRENT_DATA","texImage2D","RGBA","UNSIGNED_BYTE","TextureFactory","createFromImage","createTexture","createFromSource","createFromCanvas","createPixelTexture","Uint8Array","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","TEXTURE_MIN_FILTER","LINEAR","TEXTURE_MAG_FILTER","NEAREST","textureId","TextureManager","textureFactory","textures","createTextureFromImage","createTextureFromCanvas","createTextureFromVideo","renderers","contextManager","fontFactoryAtlas","SpriteRenderer","TextRenderer","TilemapRenderer","MaskRenderer","VideoRenderer","DarknessRenderer","canvasColorRenderer","renderCanvasColor","_currentVideoSrc","videoSource","renderManager","assetManager","scaledOffset","videoRenderer","transform","checkVideoState","translateRenderPosition","addRenderData","translatedAngle","atan2","ended","systemManager","systemFactory","scenes","_loadingScene","_sceneLoadedThisFrame","preserveEntitiesWithComponent","addScene","sceneType","openingScene","scene","openingSceneName","loadScene","sceneNameToBeLoaded","loadOpeningScene","loadingScene","sceneLoadedThisFrame","currentSceneName","destroyCurrentScene","loadAssets","registerSystems","createEntities","PreGameLogic","createSystemIfNotExists","Button","touchEnabled","pressed","mouseOver","ButtonShape","scaled","pressedLastFrame","button","isMouseOverButton","resolveTouchAndRectangle","resolveTouchAndCircumference","onClick","onPressed","isMouseOverRectangleButton","isMouseOverCircumferenceButton","TiledWrapper","data","chunks","_processed","tiledWrapper","tilemapRenderer","l","layerToRender","infinite","chunkSize","chunksToData","dataToChunks","cx","cy","chunk","tix","tiy","t","sort","getBranchLength","parentEntity","translateChild","updateTransform","eventHandler","gamepadConnected","gamepad","gamepadDisconected","connected","getGamepadsFromBrowser","gpc","vibrationActuator","playEffect","vibrating","finally","navigator","getGamepads","webkitGetGamepads","event","code","lastPositionInViewport","updatePosition","updateButtonDown","updateButtonUp","handleWheelEvent","onFocusOut","focus","preventDefault","stopPropagation","offsetX","clientWidth","offsetY","clientHeight","wheelEvent","deltaX","deltaY","targetTouches","clientX","offsetLeft","clientY","offsetTop","radiusX","radiusY","Animator","animations","speed","reset","currentFrame","_currentAnimation","_assetsReady","animator","processAssets","animation","spriteRenderer","renderSprite","isArray","fps","frames","frame","padding","camera","addCameraData","webGLManager","gameConfig","canvasColor","BallCollider","physics","BoxCollider","EdgeCollider","PolygonCollider","TilemapCollider","composite","colliders","collidersColor","collisionMethod","SAT","AABB","viewport","culledRenderData","getCameraData","setViewport","getRenderData","isInViewPort","applyCullingInTiles","setRenderData","setObjectForResizeable","setObjectForMask","setObjectForGeometric","setObjectForText","setObjectForTilemap","rotatedWidth","rotatedHeight","split","line","Number","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","maskRenderer","removeCameraData","removeRenderData","LightRenderer","_boundingBox","lightRenderers","updateLightRendererBoundingBox","darknessRenderer","updatDarknessRendererBoundingBox","lightRenderer","scaledRadius","scaledWidth","scaledHeight","defaultTextureAtlasOptions","textRenderer","crop","croppedText","croppedHeight","newLines","lines","word","currentLine","newLine","renderDataFactory","realWidth","realHeight","RigidBodyType","RigidBody","Dynamic","velocity","gravity","acceleration","transformSystem","Kinematic","displacement","totalAcceleration","scaledAcceleration","scaledVelocity","BaseUpdateColliderShapeSystem","auxMin","auxMax","auxScaledOffset","updatePositionAndVertices","translatePosition","auxAngle","updateBoundingBox","updateCircumferenceBoundingBox","updatePolygonBoundingBox","updateProjectionAxes","super","ballCollider","boxCollider","edgeCollider","polygonCollider","tilemapCollider","useEdges","useBoxes","needsCollider","generateRectangleVertices","getNeighbors","neighbor","hVertices","vVertices","hasTile","createEdge","broadPhaseResolver","collisionMatrix","collisionResolutionMethod","collisionRepository","colliderTypes","narrowPhase","broadPhase","remote","local","isResolved","resolution","localEntity","remoteEntity","maxCorrection","rigidBody","dynamicBodies","defaultFontSize","positionInCameraViewport","positionInWorldspace","renderDataPerCamera","mousePosition","createRenderData","textColor","updateRenderDataPosition","textPosition","systemsByGroup","Physics","Render","sceneManager","running","gameLoopAccumulator","enableSystems","requestAnimationLoop","performance","now","asyncPhysicsLoop","gameLogicIteration","renderIteration","requestAnimationFrame","GameLogic","GamePreRender","physicsIntervalId","physicsIteration","GamePhysics","container","lastSystemTypeId","setDefaultValues","containerNode","HTMLElement","headless","_h","collisionBroadPhaseMethod","_j","_k","_l","createCanvas","tabIndex","appendChild","setupManagers","setupEngineSystems","headlessFilter","setupPhysicsDependencies","setupExternalDependencies","config","dependencies","GameSystem","BuiltInDependencyIdentifiers","bootstrap","addDependencyType","dependencyType","addDependencyInstance","dependencyInstance","addSystems","degrees","console","warn","radians","random","prefix","padStart"],"mappings":"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","x_google_ignoreList":[3,43,44]}
1
+ {"version":3,"file":"index.js","sources":["../../../packages/collisions/dist/broadPhase/IBroadPhaseResolver.js","../../../packages/math/dist/Vector2.js","../../../packages/math/dist/Rectangle.js","../../../packages/math/dist/utils.js","../../../packages/ioc/dist/container.js","../../../packages/collisions/dist/symbols.js","../../../packages/collisions/dist/broadPhase/QuadTree.js","../../../packages/collisions/dist/broadPhase/SpartialGrid.js","../../../packages/collisions/dist/Shape.js","../../../packages/collisions/dist/method/AABBMethod.js","../../../packages/collisions/dist/method/CollisionMethod.js","../../../packages/collisions/dist/method/SatMethod.js","../../../packages/collisions/dist/resolver/AABBResolver.js","../../../packages/collisions/dist/resolver/CircumferenceAABBResolver.js","../../../packages/collisions/dist/resolver/CircumferenceResolver.js","../../../packages/collisions/dist/resolver/SatResolver.js","../../../packages/collisions/dist/CollisionRepository.js","../../../packages/ecs/dist/utils.js","../../../packages/ecs/dist/symbols.js","../../../packages/ecs/dist/EntityManager.js","../../../packages/ecs/dist/SystemManager.js","../../../packages/webgl/dist/ContextManager.js","../../../packages/webgl/dist/FontAtlasFactory.js","../../../packages/webgl/dist/program/ProgramFactory.js","../../../packages/webgl/dist/program/ProgramManager.js","../../../packages/webgl/dist/shader/vertexShader.js","../../../packages/webgl/dist/shader/fragmentShader.js","../../../packages/webgl/dist/shader/legacy/vertexShader.js","../../../packages/webgl/dist/shader/legacy/fragmentShader.js","../../../packages/webgl/dist/program/ShaderLoader.js","../../../node_modules/gl-matrix/esm/common.js","../../../node_modules/gl-matrix/esm/mat4.js","../../../packages/webgl/dist/renderer/utils.js","../../../packages/webgl/dist/renderer/CanvasColorRenderer.js","../../../packages/webgl/dist/renderer/Renderer.js","../../../packages/webgl/dist/renderer/GeometricRenderer.js","../../../packages/webgl/dist/renderer/MaskRenderer.js","../../../packages/webgl/dist/renderer/DarknessRenderer.js","../../../packages/webgl/dist/renderer/SpriteRenderer.js","../../../packages/webgl/dist/renderer/TextRenderer.js","../../../packages/webgl/dist/renderer/TilemapRenderer.js","../../../packages/webgl/dist/renderer/VideoRenderer.js","../../../packages/webgl/dist/texture/TextureFactory.js","../../../packages/webgl/dist/texture/TextureManager.js","../../../packages/webgl/dist/symbols.js","../../../packages/webgl/dist/WebGLManager.js","../../../packages/engine/src/config/dependencySymbols.ts","../../../node_modules/tslib/tslib.es6.js","../../../packages/engine/src/utils/input/GamepadController.ts","../../../packages/engine/src/utils/input/Keyboard.ts","../../../packages/engine/src/utils/input/Mouse.ts","../../../packages/engine/src/utils/input/TouchScreen.ts","../../../packages/engine/src/manager/InputManager.ts","../../../packages/engine/src/manager/TimeManager.ts","../../../packages/engine/src/manager/AssetManager.ts","../../../packages/engine/src/component/gameLogic/AudioPlayer.ts","../../../packages/engine/src/config/systemSymbols.ts","../../../packages/engine/src/system/gameLogic/AudioPlayerSystem.ts","../../../packages/engine/src/system/SystemGroup.ts","../../../packages/engine/src/component/gameLogic/Transform.ts","../../../packages/engine/src/component/render2d/Camera.ts","../../../packages/engine/src/component/render2d/VideoRenderer.ts","../../../packages/engine/src/system/render2d/VideoRendererSystem.ts","../../../packages/engine/src/manager/SceneManager.ts","../../../packages/engine/src/component/gameLogic/Button.ts","../../../packages/engine/src/system/gameLogic/ButtonSystem.ts","../../../packages/engine/src/component/gameLogic/TiledWrapper.ts","../../../packages/engine/src/component/render2d/TilemapRenderer.ts","../../../packages/engine/src/system/gameLogic/TiledWrapperSystem.ts","../../../packages/engine/src/system/gameLogic/TilemapPreProcessingSystem.ts","../../../packages/engine/src/system/gameLogic/TransformSystem.ts","../../../packages/engine/src/system/input/GamepadSystem.ts","../../../packages/engine/src/system/input/KeyboardSystem.ts","../../../packages/engine/src/system/input/MouseSystem.ts","../../../packages/engine/src/system/input/TouchScreenSystem.ts","../../../packages/engine/src/component/gameLogic/Animator.ts","../../../packages/engine/src/component/render2d/SpriteRenderer.ts","../../../packages/engine/src/system/render2d/AnimatorSystem.ts","../../../packages/engine/src/system/render2d/CameraSystem.ts","../../../packages/engine/src/system/render2d/ClearScreenSystem.ts","../../../packages/engine/src/component/physics2d/BallCollider.ts","../../../packages/engine/src/component/physics2d/BoxCollider.ts","../../../packages/engine/src/component/physics2d/EdgeCollider.ts","../../../packages/engine/src/component/physics2d/PolygonCollider.ts","../../../packages/engine/src/component/physics2d/TilemapCollider.ts","../../../packages/engine/src/system/debug/DebugColliderRenderSystem.ts","../../../packages/engine/src/system/render2d/CullingSystem.ts","../../../packages/engine/src/component/render2d/MaskRenderer.ts","../../../packages/engine/src/system/render2d/MaskRendererSystem.ts","../../../packages/engine/src/system/render2d/RenderSystem.ts","../../../packages/engine/src/component/render2d/LightRenderer.ts","../../../packages/engine/src/component/render2d/DarknessRenderer.ts","../../../packages/engine/src/system/render2d/DarknessLightRendererSystem.ts","../../../packages/engine/src/system/render2d/SpriteRendererSystem.ts","../../../packages/engine/src/component/render2d/TextRenderer.ts","../../../packages/engine/src/system/render2d/TextRendererSystem.ts","../../../packages/engine/src/system/render2d/TilemapRendererSystem.ts","../../../packages/engine/src/component/physics2d/RigidBody.ts","../../../packages/engine/src/system/physics2d/ApplyVelocitySystem.ts","../../../packages/engine/src/system/physics2d/collider/BaseUpdateColliderShapeSystem.ts","../../../packages/engine/src/system/physics2d/collider/UpdateBallColliderShapeSystem.ts","../../../packages/engine/src/system/physics2d/collider/UpdateBoxColliderShapeSystem.ts","../../../packages/engine/src/system/physics2d/collider/UpdateEdgeColliderShapeSystem.ts","../../../packages/engine/src/system/physics2d/collider/UpdatePolygonColliderShapeSystem.ts","../../../packages/engine/src/system/physics2d/collider/UpdateTilemapColliderShapeSystem.ts","../../../packages/engine/src/system/physics2d/ResolveCollisionSystem.ts","../../../packages/engine/src/system/physics2d/ApplyRepositionSystem.ts","../../../packages/engine/src/system/physics2d/collider/UpdateCollidersAfterRepositionSystem.ts","../../../packages/engine/src/system/debug/DebugMousePositionSystem.ts","../../../packages/engine/src/system/debug/DebugTextRendererSystem.ts","../../../packages/engine/src/config/systemsByGroup.ts","../../../packages/engine/src/manager/LoopManager.ts","../../../packages/engine/src/system/CreateSystemService.ts","../../../packages/engine/src/manager/RenderManager.ts","../../../packages/engine/src/config/bootstrap.ts","../../../packages/engine/src/system/GameSystem.ts","../../../packages/engine/src/utils/misc/audio.ts","../../../packages/engine/src/index.ts","../../../packages/engine/src/Game.ts","../../../packages/engine/src/utils/misc/decorator.ts"],"sourcesContent":["/**\n * Broad phase collision methods\n * - QuadTree: Stores the shapes in an incremental quad tree.\n * - SpartialGrid: Stores the shapes in an incremental spartial grid.\n * @category Config\n * @public\n */\nexport var BroadPhaseMethods;\n(function (BroadPhaseMethods) {\n BroadPhaseMethods[BroadPhaseMethods[\"QuadTree\"] = 0] = \"QuadTree\";\n BroadPhaseMethods[BroadPhaseMethods[\"SpartialGrid\"] = 1] = \"SpartialGrid\";\n})(BroadPhaseMethods || (BroadPhaseMethods = {}));\n//# sourceMappingURL=IBroadPhaseResolver.js.map","/**\n * Represents a two-dimensional vector with x and y components.\\\n * Provides static methods for common vector operations\n * like addition, subtraction, scaling, dot product, cross product, normalization and more.\\\n * Used throughout the engine for storing 2D positions, directions, velocities and other vector quantities.\n * @category Math\n * @public\n * @example\n * ```js\n * const v1 = new Vector2(2, 1);\n * const v2 = new Vector2(3, 2);\n * const v3 = new Vector2(); // zero vector\n *\n * Vector2.add(v3, v1, v2);\n * v3.x // 5\n * v3.y // 3\n * ```\n */\nexport class Vector2 {\n constructor(x = 0, y = 0) {\n this._x = x;\n this._y = y;\n }\n get x() {\n return this._x;\n }\n set x(x) {\n this._x = x;\n }\n get y() {\n return this._y;\n }\n set y(y) {\n this._y = y;\n }\n /**\n * Get the magnitude of the vector\n *\n * @returns The magnitude of the vector\n */\n get magnitude() {\n return Math.sqrt(Math.pow(this._x, 2) + Math.pow(this._y, 2));\n }\n /**\n * Get the direction as an unit vector\n *\n * @returns The direction vector\n */\n get direction() {\n if (!this._direction)\n this._direction = new Vector2();\n return Vector2.unit(this._direction, this);\n }\n /**\n * Set the vector\n *\n * @param x The x value\n * @param y The y value\n */\n set(x, y) {\n this._x = x;\n this._y = y;\n }\n /**\n * Copy the target vector properties\n *\n * @param vector The vector to copy from\n */\n copy(vector) {\n this.set(vector.x, vector.y);\n }\n /**\n * Compare if two vector are equals\n *\n * @param vector The vector to compare\n * @returns True if the vectors are equals, false if not\n */\n equals(vector) {\n return this._x === vector.x && this._y === vector.y;\n }\n /**\n * Colne a vector into a new instace\n *\n * @returns The cloned vector\n */\n clone() {\n return new Vector2(this._x, this._y);\n }\n /**\n * Get the distance with another vector\n *\n * @param vector The vector to compare\n * @returns The magnitude of the distance\n */\n distance(vector) {\n return Math.sqrt(Math.pow((this._x - vector.x), 2) + Math.pow((this._y - vector.y), 2));\n }\n /**\n * Calculates a + b\n * @param out The output vector\n * @param a The first operand\n * @param b The second operand\n * @returns The output vector\n * @example\n * ```js\n * const v1 = new Vector2(2, 1);\n * const v2 = new Vector2(3, 2);\n * const v3 = Vector2.add(new Vector2(), v1, v2);\n * v3.x // 5\n * v3.y // 3\n * ```\n */\n static add(out, a, b) {\n out.set(a.x + b.x, a.y + b.y);\n return out;\n }\n /**\n * Calculates a - b\n *\n * @param out The output vector\n * @param a The first operand\n * @param b The second operand\n * @returns The output vector\n * @example\n * ```js\n * const v1 = new Vector2(3, 2);\n * const v2 = new Vector2(2, 1);\n * const v3 = Vector2.subtract(new Vector2(), v1, v2);\n * v3.x // 1\n * v3.y // 1\n * ```\n */\n static subtract(out, a, b) {\n out.set(a.x - b.x, a.y - b.y);\n return out;\n }\n /**\n * Returns the unit vector\n *\n * @param out The output vector\n * @param a The vector to get the unit\n * @returns The output vector\n * @example\n * ```js\n * const v1 = new Vector2(3, 0);\n * const v2 = Vector2.unit(new Vector2(), v1);\n * v2.x // 1\n * v2.y // 0\n * ```\n */\n static unit(out, a) {\n a.magnitude === 0 ? out.set(0, 0) : out.set(a.x / a.magnitude, a.y / a.magnitude);\n return out;\n }\n /**\n * Normalize a vector\n *\n * @param out The output vector\n * @param a The vector to normalize\n * @returns The output vector\n * @example\n * ```js\n * const v1 = new Vector2(0, 2);\n * const v2 = Vector2.normal(new Vector2(), v1);\n * v2.x // -2\n * v2.y // 0\n * ```\n */\n static normal(out, a) {\n out.set(-a.y, a.x);\n return this.unit(out, out);\n }\n /**\n * Scale a vector\n *\n * @param out The output vector\n * @param a The vector to scale\n * @param scalar The scalar value\n * @returns The output vector\n * @example\n * ```js\n * const v1 = new Vector2(3, 2);\n * const v2 = Vector2.scale(new Vector2(), v1, 2);\n * v2.x // 6\n * v2.y // 4\n * ```\n */\n static scale(out, a, scalar) {\n out.set(a.x * scalar, a.y * scalar);\n return out;\n }\n /**\n * Calculates the dot product of two vectors and returns a scalar value\n *\n * @param a The first operand\n * @param b The second operand\n * @returns The dot product result\n * @example\n * ```js\n * const v1 = new Vector2(3, 2);\n * const v2 = new Vector2(2, 1);\n * Vector2.dot(v1, v2); // 8\n * ```\n */\n static dot(a, b) {\n return a.x * b.x + a.y * b.y;\n }\n /**\n * Calculates the cross product of two vectors and returns a scalar value\n *\n * @param a The first operand\n * @param b The second operand\n * @returns The cross produc result\n * @example\n * ```js\n * const v1 = new Vector2(3, 2);\n * const v2 = new Vector2(2, 1);\n * Vector2.cross(v1, v2); // -1\n * ```\n */\n static cross(a, b) {\n return a.x * b.y - a.y * b.x;\n }\n /**\n * Rounds a vector\n *\n * @param a The vector to round\n * @returns The output vector\n * @example\n * ```js\n * const v1 = new Vector2(3.9, 2.2);\n * const v2 = Vector2.round(new Vector2(), v1);\n * v2.x // 4\n * v2.y // 2\n * ```\n * @example\n * ```js\n * const v1 = new Vector2(3.9, 2.2);\n * Vector2.round(v1, v1);\n * v1.x // 4\n * v1.y // 2\n * ```\n */\n static round(out, a) {\n out.set(Math.round(a.x), Math.round(a.y));\n return out;\n }\n /**\n * Floors a vector\n *\n * @param a The vector to floor\n * @returns The output vector\n * @example\n * ```js\n * const v1 = new Vector2(3.9, 2.2);\n * const v2 = Vector2.floor(new Vector2(), v1);\n * v2.x // 3\n * v2.y // 2\n * ```\n * @example\n * ```js\n * const v1 = new Vector2(3.9, 2.2);\n * Vector2.floor(v1, v1);\n * v1.x // 3\n * v1.y // 2\n * ```\n */\n static floor(out, a) {\n out.set(Math.floor(a.x), Math.floor(a.y));\n return out;\n }\n /**\n * Ceils a vector\n *\n * @param a The vector to ceil\n * @returns The output vector\n * @example\n * ```js\n * const v1 = new Vector2(3.9, 2.2);\n * const v2 = Vector2.ceil(new Vector2(), v1);\n * v2.x // 4\n * v2.y // 3\n * ```\n * @example\n * ```js\n * const v1 = new Vector2(3.9, 2.2);\n * Vector2.ceil(v1, v1);\n * v1.x // 4\n * v1.y // 3\n * ```\n */\n static ceil(out, a) {\n out.set(Math.ceil(a.x), Math.ceil(a.y));\n return out;\n }\n toString() {\n return `(${this._x}, ${this._y})`;\n }\n}\n//# sourceMappingURL=Vector2.js.map","import { Vector2 } from \"./Vector2\";\n/**\n * Represents an axis-aligned bounding rectangle (AABR) defined by position, width and height.\n * The position represents the bottom-left corner of the rectangle.\\\n * Provides methods and properties for manipulating and querying the rectangle's geometry.\n * @category Math\n * @public\n * @example\n * ```js\n * const rect = new Rectangle(0, 0, 100, 100);\n * rect.width // 100\n * rect.height // 100\n *\n * rect.x // 0\n * rect.y // 0\n *\n * rect.x1 // 100\n * rect.y1 // 100\n *\n * rect.center // { x: 50, y: 50 }\n *\n * rect.intersects(new Rectangle(50, 50, 100, 100)) // true\n *\n * rect.contains(new Vector2(50, 50)) // true\n *\n * rect.contains(new Rectangle(100, 100, 100, 100)) // false\n *\n * rect.toString() // \"(0, 0, 100, 100)\"\n * ```\n */\nexport class Rectangle {\n constructor(x = 0, y = 0, width = 0, height = 0) {\n this.width = 0;\n this.height = 0;\n this._position = new Vector2();\n this._center = new Vector2();\n this.set(x, y, width, height);\n }\n get x() {\n return this._position.x;\n }\n set x(value) {\n this._position.set(value, this._position.y);\n }\n get y() {\n return this._position.y;\n }\n set y(value) {\n this._position.set(this._position.x, value);\n }\n get x1() {\n return this._position.x + this.width;\n }\n get y1() {\n return this._position.y + this.height;\n }\n get position() {\n return this._position;\n }\n set position(position) {\n this._position.set(position.x, position.y);\n }\n get center() {\n this._center.set(this.x + this.width / 2, this.y + this.height / 2);\n return this._center;\n }\n /**\n * Set the rectangle\n *\n * @param x\n * @param y\n * @param width\n * @param height\n */\n set(x, y, width, height) {\n this._position.set(x, y);\n this.width = width;\n this.height = height;\n }\n /**\n * Compare if two rectangles are equals\n *\n * @param rectangle The rectangle to compare\n * @returns TRUE if the rectangles are equals, FALSE if not\n */\n equals(rectangle) {\n return (this.position.equals(rectangle.position) &&\n this.width === rectangle.width &&\n this.height === rectangle.height);\n }\n /**\n * Copy the target rectangle properties\n *\n * @param rect The rectangle to copy from\n */\n copy(rect) {\n this.set(rect.x, rect.y, rect.width, rect.height);\n }\n /**\n * Check if the target rectangle is overlapping\n *\n * @param rect The target rectangle\n * @returns TRUE or FALSE\n */\n intersects(rect) {\n return !(this.x1 < rect.x || this.x > rect.x1 || this.y1 < rect.y || this.y > rect.y1);\n }\n contains(object) {\n if (object instanceof Rectangle) {\n return object.x1 <= this.x1 && object.x >= this.x && object.y1 <= this.y1 && object.y >= this.y;\n }\n else if (object instanceof Vector2) {\n return !(object.x < this.x || object.y < this.y || object.x >= this.x1 || object.y >= this.y1);\n }\n return false;\n }\n toString() {\n return `(${this.position.x}, ${this.position.y}, ${this.width}, ${this.height})`;\n }\n}\n//# sourceMappingURL=Rectangle.js.map","/**\n * Constrains a number to be within a specified range by clamping it between a minimum and maximum value.\\\n * If the value is less than the minimum, returns the minimum. If greater than the maximum, returns the maximum.\\\n * Otherwise returns the original value unchanged.\n * @category Math\n * @public\n * @param value number to clamp\n * @param min min value\n * @param max max value\n * @returns clamped value\n * @example\n * ```js\n * clamp(10, 0, 5); // 5\n * clamp(10, 0, 15); // 10\n * ```\n */\nexport const clamp = (value, min, max) => Math.min(max, Math.max(min, value));\n/**\n * Returns a random integer number between the given minimum (inclusive) and maximum (inclusive) values.\\\n * Uses Math.random() internally to generate the random number, then rounds and scales it to fit the desired range.\n * @category Math\n * @public\n * @param min min value\n * @param max max value\n * @returns the random int value\n * @example\n * ```js\n * randomInt(0, 10); // 5\n * ```\n */\nexport const randomInt = (min, max) => Math.round(Math.random() * (max - min)) + min;\n/**\n * Returns a random floating point number between the given minimum (inclusive) and maximum (inclusive) values.\\\n * Uses Math.random() internally to generate the random number and can be rounded to a specified number of decimal places.\n * @category Math\n * @public\n * @param min min value\n * @param max max value\n * @returns the random float value\n * @example\n * ```js\n * randomFloat(0, 10); // 5.23\n * randomFloat(0, 10, 4); // 5.2345\n * ```\n */\nexport const randomFloat = (min, max, decimals = 2) => fixedRound(Math.random() * (max - min) + min, decimals);\n/**\n * Rounds a floating point number to a specified number of decimal places.\\\n * Uses Math.round() internally to avoid floating point precision errors that can occur with direct decimal arithmetic.\\\n * For example, 5.2345 rounded to 2 decimal places becomes 5.23.\n * @category Math\n * @public\n * @param value the value to round\n * @param decimals the number of decimals\n * @returns the rounded value\n * @example\n * ```js\n * fixedRound(5.2345, 2); // 5.23\n * ```\n */\nexport const fixedRound = (value, decimals) => Math.round(value * Math.pow(10, decimals)) / Math.pow(10, decimals);\n/**\n * Generates an array containing a sequence of numbers from start to end (inclusive) with optional step size.\\\n * For example, range(0,5) produces [0,1,2,3,4,5] and range(0,10,2) produces [0,2,4,6,8,10].\\\n * Useful for creating numeric sequences and iteration ranges.\n * @category Math\n * @public\n * @param start the starting value\n * @param end the end value\n * @param steps the steps to move\n * @returns number range\n * @example\n * ```js\n * range(0, 5); // [0, 1, 2, 3, 4, 5]\n * range(0, 10, 2); // [0, 2, 4, 6, 8, 10]\n * ```\n */\nexport const range = (start, end, steps = 1) => {\n const range = [];\n for (let i = start; i <= end; i += steps) {\n range.push(i);\n }\n return range;\n};\n/**\n * Checks if a number falls within a specified range (inclusive of both minimum and maximum bounds).\\\n * Returns true if the value is greater than or equal to the minimum and less than or equal to the maximum.\\\n * Useful for range checking, input validation, and boundary testing.\n * @category Math\n * @public\n * @param value number to compare\n * @param min min value\n * @param max max value\n * @returns true if the number is between the min and the max, false instead\n * @example\n * ```js\n * between(5, 0, 10); // true\n * between(5, 0, 4); // false\n * ```\n */\nexport const between = (value, min, max) => {\n return value >= min && value <= max;\n};\n/**\n * Converts an angle from radians to degrees by multiplying by (180/π).\\\n * Useful for converting between angular measurement systems and displaying angles in a more human-readable format.\n * @param radians\n * @returns degrees\n * @category Math\n * @public\n * @example\n * ```js\n * radiansToDegrees(Math.PI); // 180\n * ```\n */\nexport const radiansToDegrees = (radians) => radians * (180 / Math.PI);\n/**\n * Converts an angle from degrees to radians by multiplying by (π/180).\\\n * Useful for converting between angular measurement systems and performing trigonometric calculations.\n * @param degrees\n * @returns radians\n * @category Math\n * @public\n * @example\n * ```js\n * degreesToRadians(180); // 3.141592653589793\n * ```\n */\nexport const degreesToRadians = (degrees) => degrees * (Math.PI / 180);\n/**\n * Converts RGB color values to a hexadecimal color string.\\\n * Takes red, green and blue color components (0-255) and returns a hex color code.\\\n * Useful for converting between color formats and generating color strings for CSS/HTML.\n * @param rgb\n * @param prefix default is \"#\"\n * @returns string\n * @public\n * @category Math\n * @example\n * ```js\n * // default prefix \"#\"\n * rgbToHex({ r: 255, g: 255, b: 255 }); // #ffffff\n * ```\n * @example\n * ```js\n * // no prefix\n * rgbToHex({ r: 0, g: 255, b: 0 }, \"\"); // 00ff00\n * ```\n */\nexport const rgbToHex = ({ r, g, b }, prefix = \"#\") => {\n const hex = (x) => x.toString(16).padStart(2, \"0\");\n return `${prefix}${hex(r)}${hex(g)}${hex(b)}`;\n};\n//# sourceMappingURL=utils.js.map","export class Container {\n constructor() {\n this.instances = new Map();\n this.types = new Map();\n }\n add(type, name) {\n if (!name && !type.prototype.__ioc_injectable) {\n throw new Error(`Type ${type.name} is not injectable`);\n }\n this.types.set(name !== null && name !== void 0 ? name : type.prototype.__ioc_injectable, type);\n return this;\n }\n set(name, dependency) {\n this.instances.set(name, dependency);\n return this;\n }\n get(name) {\n var _a, _b;\n if (!this.instances.has(name)) {\n const type = this.types.get(name);\n if (!type)\n throw new Error(`${name.toString()} is not a valid type`);\n // constructor params\n const instance = new type(...((_a = type.prototype.__ioc_inject_constructor) !== null && _a !== void 0 ? _a : []).map((inject) => this.get(inject)));\n // class props\n ((_b = type.prototype.__ioc_inject_prop) !== null && _b !== void 0 ? _b : []).forEach(([prop, dependency]) => (instance[prop] = this.get(dependency)));\n this.instances.set(name, instance);\n }\n return this.instances.get(name);\n }\n has(name) {\n return this.types.has(name) || this.instances.has(name);\n }\n}\n/**\n * Decorator to mark a class as an injectable dependency that can be managed by the IoC container.\\\n * Injectable classes can be automatically instantiated and have their dependencies resolved when requested through the container.\\\n * This enables dependency injection and inversion of control.\n * @param name the name to identify the dependency\n * @public\n * @category Decorators\n * @example\n * ```typescript\n * @injectable(\"SomeDependency\")\n * class SomeDependency {}\n * ```\n */\nexport function injectable(name) {\n return function (target) {\n if (!target.prototype.__ioc_injectable || target.prototype.__ioc_injectable !== name) {\n target.prototype.__ioc_injectable = name;\n }\n };\n}\n/**\n * Decorator to mark a property or constructor parameter as a dependency that should be automatically injected by the IoC container.\\\n * When applied to a property or constructor parameter, the container will resolve and inject the specified dependency at runtime.\n * @param name the name to identify the dependency\n * @public\n * @category Decorators\n * @example\n * ```typescript\n * class SomeClass {\n * private anotherDependency: DependencyType;\n *\n * constructor(@inject(\"AnotherDependency\") anotherDependency: DependencyType) {\n * this.anotherDependency = anotherDependency;\n * }\n * }\n * ```\n * @example\n * ```typescript\n * class SomeClass {\n * @inject(\"AnotherDependency\") private anotherDependency: DependencyType;\n * }\n * ```\n */\nexport function inject(name) {\n return function (target, propertyKey, parameterIndex) {\n if (parameterIndex !== undefined) {\n // constructor param\n if (!target.prototype.__ioc_inject_constructor)\n target.prototype.__ioc_inject_constructor = [];\n target.prototype.__ioc_inject_constructor[parameterIndex] = name;\n }\n else if (propertyKey !== undefined) {\n // class prop\n if (!target.constructor.prototype.__ioc_inject_prop)\n target.constructor.prototype.__ioc_inject_prop = [];\n target.constructor.prototype.__ioc_inject_prop.push([propertyKey, name]);\n }\n };\n}\n//# sourceMappingURL=container.js.map","export const SYMBOLS = {\n CollisionRepository: Symbol.for(\"CollisionRepository\"),\n CollisionBroadphaseResolver: Symbol.for(\"CollisionBroadphaseResolver\"),\n CollisionResolutionMethod: Symbol.for(\"CollisionResolutionMethod\"),\n CollisionAABBResolver: Symbol.for(\"CollisionAABBResolver\"),\n CollisionCircumferenceAABBResolver: Symbol.for(\"CollisionCircumferenceAABBResolver\"),\n CollisionCircumferenceResolver: Symbol.for(\"CollisionCircumferenceResolver\"),\n CollisionSatResolver: Symbol.for(\"CollisionSatResolver\"),\n CollisionMatrix: Symbol.for(\"CollisionMatrix\"),\n};\n//# sourceMappingURL=symbols.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar QuadTree_1;\nimport { Rectangle, Vector2 } from \"@angry-pixel/math\";\nimport { injectable } from \"@angry-pixel/ioc\";\nimport { SYMBOLS } from \"../symbols\";\nconst MAX_DEPTH = 8;\nconst MAX_RECTS = 16;\nlet QuadTree = QuadTree_1 = class QuadTree {\n constructor(bounds = new Rectangle(), depth = 0) {\n this.rects = new Map();\n this.children = null;\n // cache\n this.minArea = new Vector2();\n this.maxArea = new Vector2();\n this.bounds = bounds;\n this.depth = depth;\n }\n update(shapes) {\n this.clear();\n if (shapes.length === 0)\n return;\n this.resize(shapes);\n shapes.forEach(({ id, boundingBox }) => this.insert(id, boundingBox));\n }\n clear() {\n this.rects.clear();\n if (this.children) {\n this.children.forEach((child) => child.clear());\n this.children = null;\n }\n }\n resize(shapes) {\n this.minArea.set(Infinity, Infinity);\n this.maxArea.set(-Infinity, -Infinity);\n shapes.forEach(({ boundingBox: box }) => {\n this.minArea.set(Math.min(box.x, this.minArea.x), Math.min(box.y, this.minArea.y));\n this.maxArea.set(Math.max(box.x1, this.maxArea.x), Math.max(box.y1, this.maxArea.y));\n });\n this.bounds.set(this.minArea.x, this.minArea.y, this.maxArea.x - this.minArea.x, this.maxArea.y - this.minArea.y);\n }\n insert(id, rect) {\n if (!this.children && this.rects.size >= MAX_RECTS && this.depth < MAX_DEPTH) {\n this.subdivide();\n this.rects.forEach((value, key) => this.children.forEach((child) => {\n if (child.bounds.intersects(value)) {\n child.insert(key, value);\n }\n }));\n this.rects.clear();\n }\n if (this.children) {\n this.children.forEach((child) => {\n if (child.bounds.intersects(rect)) {\n child.insert(id, rect);\n }\n });\n }\n else {\n this.rects.set(id, rect);\n }\n }\n subdivide() {\n const x = this.bounds.x;\n const y = this.bounds.y;\n const width = this.bounds.width;\n const height = this.bounds.height;\n const halfWidth = width / 2;\n const halfHeight = height / 2;\n this.children = [\n new QuadTree_1(new Rectangle(x, y, halfWidth, halfHeight), this.depth + 1),\n new QuadTree_1(new Rectangle(x + halfWidth, y, halfWidth, halfHeight), this.depth + 1),\n new QuadTree_1(new Rectangle(x, y + halfHeight, halfWidth, halfHeight), this.depth + 1),\n new QuadTree_1(new Rectangle(x + halfWidth, y + halfHeight, halfWidth, halfHeight), this.depth + 1),\n ];\n }\n retrieve(rect) {\n const neighbors = [];\n this.retrieveFromNode(rect, neighbors);\n return neighbors;\n }\n retrieveFromNode(rect, result) {\n if (this.children) {\n this.children.forEach((child) => {\n if (child.bounds.intersects(rect)) {\n child.retrieveFromNode(rect, result);\n }\n });\n }\n else {\n this.rects.forEach((value, key) => {\n if (value.intersects(rect) && result.indexOf(key) === -1) {\n result.push(key);\n }\n });\n }\n }\n};\nQuadTree = QuadTree_1 = __decorate([\n injectable(SYMBOLS.CollisionBroadphaseResolver)\n], QuadTree);\nexport { QuadTree };\n//# sourceMappingURL=QuadTree.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Rectangle, Vector2 } from \"@angry-pixel/math\";\nimport { injectable } from \"@angry-pixel/ioc\";\nimport { SYMBOLS } from \"../symbols\";\nconst MAX_COLLIDERS_PER_CELL = 16;\nconst cell = (value, min, width, subdivisions) => Math.min(((value - min) / width) | 0, subdivisions - 1);\nlet SpartialGrid = class SpartialGrid {\n constructor() {\n this.area = new Rectangle();\n this.grid = [];\n this.rects = new Map();\n this.subdivisions = 0;\n // cache\n this.minArea = new Vector2();\n this.maxArea = new Vector2();\n this.coordinates = { x0: 0, x1: 0, y0: 0, y1: 0 };\n }\n update(shapes) {\n this.clear();\n if (shapes.length === 0)\n return;\n this.resize(shapes);\n shapes.forEach(({ id, boundingBox }) => this.insert(id, boundingBox));\n }\n clear() {\n this.grid = [];\n this.rects.clear();\n }\n resize(shapes) {\n this.minArea.set(Infinity, Infinity);\n this.maxArea.set(-Infinity, -Infinity);\n shapes.forEach(({ boundingBox: box }) => {\n this.minArea.set(Math.min(box.x, this.minArea.x), Math.min(box.y, this.minArea.y));\n this.maxArea.set(Math.max(box.x1, this.maxArea.x), Math.max(box.y1, this.maxArea.y));\n });\n this.area.set(this.minArea.x, this.minArea.y, this.maxArea.x - this.minArea.x, this.maxArea.y - this.minArea.y);\n this.updateSubdivisions(shapes.length);\n }\n updateSubdivisions(length) {\n this.subdivisions = ((length / MAX_COLLIDERS_PER_CELL) | 0) + 1;\n this.cellWidth = Math.ceil(this.area.width / this.subdivisions);\n this.cellHeight = Math.ceil(this.area.height / this.subdivisions);\n this.grid = [];\n for (let x = 0; x < this.subdivisions; x++) {\n this.grid[x] = [];\n for (let y = 0; y < this.subdivisions; y++) {\n this.grid[x][y] = [];\n }\n }\n }\n insert(id, box) {\n this.updateCoordinates(box);\n for (let x = this.coordinates.x0; x <= this.coordinates.x1; x++) {\n for (let y = this.coordinates.y0; y <= this.coordinates.y1; y++) {\n this.grid[x][y].push(id);\n }\n }\n this.rects.set(id, box);\n }\n retrieve(box) {\n const ids = new Set();\n this.updateCoordinates(box);\n for (let x = this.coordinates.x0; x <= this.coordinates.x1; x++) {\n for (let y = this.coordinates.y0; y <= this.coordinates.y1; y++) {\n this.grid[x][y].forEach((id) => {\n if (this.rects.get(id).intersects(box)) {\n ids.add(id);\n }\n });\n }\n }\n return Array.from(ids);\n }\n updateCoordinates(area) {\n this.coordinates.x0 = cell(area.x, this.area.x, this.cellWidth, this.subdivisions);\n this.coordinates.x1 = cell(area.x1, this.area.x, this.cellWidth, this.subdivisions);\n this.coordinates.y0 = cell(area.y, this.area.y, this.cellHeight, this.subdivisions);\n this.coordinates.y1 = cell(area.y1, this.area.y, this.cellHeight, this.subdivisions);\n }\n};\nSpartialGrid = __decorate([\n injectable(SYMBOLS.CollisionBroadphaseResolver)\n], SpartialGrid);\nexport { SpartialGrid };\n//# sourceMappingURL=SpartialGrid.js.map","import { Rectangle, Vector2 } from \"@angry-pixel/math\";\n/** @internal */\nexport class Polygon {\n get vertexModel() {\n return this._vertexModel;\n }\n set vertexModel(vertexModel) {\n this._vertexModel = vertexModel;\n if (vertexModel.length === 2) {\n this.vertices = [new Vector2(), new Vector2()];\n this.projectionAxes = [new Vector2()];\n return;\n }\n this.vertices = [];\n this.projectionAxes = [];\n this._vertexModel.forEach(() => {\n this.vertices.push(new Vector2());\n this.projectionAxes.push(new Vector2());\n });\n }\n constructor(vertexModel, rotation = 0) {\n this.rotation = rotation;\n this.boundingBox = new Rectangle();\n this.collider = undefined;\n this.entity = undefined;\n this.id = undefined;\n this.ignoreCollisionsWithLayers = undefined;\n this.layer = undefined;\n this.position = new Vector2();\n this.projectionAxes = [];\n this.radius = 0;\n this.vertices = [];\n this.updateCollisions = true;\n this._vertexModel = [];\n this.vertexModel = vertexModel;\n }\n}\n/** @internal */\nexport class Circumference {\n constructor(radius) {\n this.radius = radius;\n this.boundingBox = new Rectangle();\n this.collider = undefined;\n this.entity = undefined;\n this.id = undefined;\n this.ignoreCollisionsWithLayers = undefined;\n this.layer = undefined;\n this.position = new Vector2();\n this.projectionAxes = [new Vector2()];\n this.rotation = 0;\n this.vertexModel = [];\n this.vertices = [new Vector2(), new Vector2()];\n this.updateCollisions = true;\n }\n}\n//# sourceMappingURL=Shape.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { inject, injectable } from \"@angry-pixel/ioc\";\nimport { SYMBOLS } from \"../symbols\";\nimport { Circumference, Polygon } from \"../Shape\";\nlet AABBMethod = class AABBMethod {\n constructor(AABBResolver, circumferenceAABBResolver, circumferenceResolver) {\n this.AABBResolver = AABBResolver;\n this.circumferenceAABBResolver = circumferenceAABBResolver;\n this.circumferenceResolver = circumferenceResolver;\n }\n findCollision(shapeA, shapeB) {\n if (shapeA instanceof Polygon && shapeB instanceof Polygon) {\n return this.AABBResolver.resolve(shapeA, shapeB);\n }\n else if (shapeA instanceof Circumference && shapeB instanceof Polygon) {\n return this.circumferenceAABBResolver.resolve(shapeA, shapeB);\n }\n else if (shapeA instanceof Polygon && shapeB instanceof Circumference) {\n return this.circumferenceAABBResolver.resolve(shapeB, shapeA, true);\n }\n else if (shapeA instanceof Circumference && shapeB instanceof Circumference) {\n return this.circumferenceResolver.resolve(shapeA, shapeB);\n }\n }\n};\nAABBMethod = __decorate([\n injectable(SYMBOLS.CollisionResolutionMethod),\n __param(0, inject(SYMBOLS.CollisionAABBResolver)),\n __param(1, inject(SYMBOLS.CollisionCircumferenceAABBResolver)),\n __param(2, inject(SYMBOLS.CollisionCircumferenceResolver))\n], AABBMethod);\nexport { AABBMethod };\n//# sourceMappingURL=AABBMethod.js.map","/**\n * Resolution phase collision methods\n * - AABB (axis-aligned bounding box): It only works with axis-aligned rectangles and lines and cimcurferences.\n * - SAT (Separation axis theorem): It works with every type of shape.\n * @category Config\n * @public\n */\nexport var CollisionMethods;\n(function (CollisionMethods) {\n CollisionMethods[CollisionMethods[\"AABB\"] = 0] = \"AABB\";\n CollisionMethods[CollisionMethods[\"SAT\"] = 1] = \"SAT\";\n})(CollisionMethods || (CollisionMethods = {}));\n//# sourceMappingURL=CollisionMethod.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { inject, injectable } from \"@angry-pixel/ioc\";\nimport { SYMBOLS } from \"../symbols\";\nimport { Circumference } from \"../Shape\";\nlet SatMethod = class SatMethod {\n constructor(circumferenceResolver, satResolver) {\n this.circumferenceResolver = circumferenceResolver;\n this.satResolver = satResolver;\n }\n findCollision(shapeA, shapeB) {\n if (shapeA instanceof Circumference && shapeB instanceof Circumference) {\n return this.circumferenceResolver.resolve(shapeA, shapeB);\n }\n else {\n return this.satResolver.resolve(shapeA, shapeB);\n }\n }\n};\nSatMethod = __decorate([\n injectable(SYMBOLS.CollisionResolutionMethod),\n __param(0, inject(SYMBOLS.CollisionCircumferenceResolver)),\n __param(1, inject(SYMBOLS.CollisionSatResolver))\n], SatMethod);\nexport { SatMethod };\n//# sourceMappingURL=SatMethod.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { injectable } from \"@angry-pixel/ioc\";\nimport { SYMBOLS } from \"../symbols\";\nimport { Vector2 } from \"@angry-pixel/math\";\nlet AABBResolver = class AABBResolver {\n constructor() {\n this.direction = new Vector2();\n this.resolutionDirection = new Vector2();\n }\n resolve({ boundingBox: boxA }, { boundingBox: boxB }) {\n this.overlapX = Math.min(boxA.x1, boxB.x1) - Math.max(boxA.x, boxB.x);\n this.overlapY = Math.min(boxA.y1, boxB.y1) - Math.max(boxA.y, boxB.y);\n if (this.overlapX < 0 || this.overlapY < 0)\n return undefined;\n this.checkOverlapForLines(boxA, boxB);\n this.direction.set(Math.sign(boxB.center.x - boxA.center.x), Math.sign(boxB.center.y - boxA.center.y));\n this.preventContainment(boxA, boxB);\n if (this.overlapY < this.overlapX) {\n this.minOverlap = this.overlapY;\n this.resolutionDirection.set(0, this.direction.y);\n }\n else {\n this.minOverlap = this.overlapX;\n this.resolutionDirection.set(this.direction.x, this.overlapY === this.overlapX ? this.direction.y : 0);\n }\n return {\n direction: Vector2.unit(new Vector2(), this.resolutionDirection),\n penetration: this.minOverlap,\n };\n }\n checkOverlapForLines(boxA, boxB) {\n if ((boxA.width === 0 || boxB.width === 0) && this.overlapX === 0) {\n this.overlapX = Math.min(Math.abs(boxA.x - boxB.x), Math.abs(boxA.x1 - boxB.x1));\n }\n if ((boxA.height === 0 || boxB.height === 0) && this.overlapY === 0) {\n this.overlapY = Math.min(Math.abs(boxA.y - boxB.y), Math.abs(boxA.y1 - boxB.y1));\n }\n }\n preventContainment(boxA, boxB) {\n if (this.overlapY > 0) {\n if ((boxA.y1 > boxB.y1 && boxA.y < boxB.y) || (boxA.y1 < boxB.y1 && boxA.y > boxB.y)) {\n const minSep = Math.abs(boxA.y - boxB.y);\n const maxSep = Math.abs(boxA.y1 - boxB.y1);\n this.overlapY += minSep < maxSep ? minSep : maxSep;\n }\n }\n if (this.overlapX > 0) {\n if ((boxA.x1 > boxB.x1 && boxA.x < boxB.x) || (boxA.x1 < boxB.x1 && boxA.x > boxB.x)) {\n const minSep = Math.abs(boxA.x - boxB.x);\n const maxSep = Math.abs(boxA.x1 - boxB.x1);\n this.overlapX += minSep < maxSep ? minSep : maxSep;\n }\n }\n }\n};\nAABBResolver = __decorate([\n injectable(SYMBOLS.CollisionAABBResolver)\n], AABBResolver);\nexport { AABBResolver };\n//# sourceMappingURL=AABBResolver.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { injectable } from \"@angry-pixel/ioc\";\nimport { SYMBOLS } from \"../symbols\";\nimport { clamp, Vector2 } from \"@angry-pixel/math\";\nlet CircumferenceAABBResolver = class CircumferenceAABBResolver {\n constructor() {\n this.closestPoint = new Vector2();\n this.distance = new Vector2();\n this.direction = new Vector2();\n }\n resolve(shapeA, shapeB, invert = false) {\n this.closestPoint.set(clamp(shapeA.position.x, shapeB.boundingBox.x, shapeB.boundingBox.x1), clamp(shapeA.position.y, shapeB.boundingBox.y, shapeB.boundingBox.y1));\n Vector2.subtract(this.distance, this.closestPoint, shapeA.position);\n if (this.distance.magnitude > shapeA.radius)\n return undefined;\n Vector2.unit(this.direction, this.distance);\n return {\n direction: invert ? Vector2.scale(new Vector2(), this.direction, -1) : this.direction.clone(),\n penetration: shapeA.radius - this.distance.magnitude,\n };\n }\n};\nCircumferenceAABBResolver = __decorate([\n injectable(SYMBOLS.CollisionCircumferenceAABBResolver)\n], CircumferenceAABBResolver);\nexport { CircumferenceAABBResolver };\n//# sourceMappingURL=CircumferenceAABBResolver.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { injectable } from \"@angry-pixel/ioc\";\nimport { SYMBOLS } from \"../symbols\";\nimport { Vector2 } from \"@angry-pixel/math\";\nlet CircumferenceResolver = class CircumferenceResolver {\n constructor() {\n this.distance = new Vector2();\n this.direction = new Vector2();\n }\n resolve(shapeA, shapeB) {\n Vector2.subtract(this.distance, shapeB.position, shapeA.position);\n if (this.distance.magnitude > shapeA.radius + shapeB.radius)\n return undefined;\n Vector2.unit(this.direction, this.distance);\n return {\n direction: this.direction.clone(),\n penetration: shapeA.radius + shapeB.radius - this.distance.magnitude,\n };\n }\n};\nCircumferenceResolver = __decorate([\n injectable(SYMBOLS.CollisionCircumferenceResolver)\n], CircumferenceResolver);\nexport { CircumferenceResolver };\n//# sourceMappingURL=CircumferenceResolver.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { injectable } from \"@angry-pixel/ioc\";\nimport { SYMBOLS } from \"../symbols\";\nimport { Vector2 } from \"@angry-pixel/math\";\nimport { Circumference } from \"../Shape\";\nlet SatResolver = class SatResolver {\n constructor() {\n this.projA = { min: 0, max: 0 };\n this.projB = { min: 0, max: 0 };\n this.smallestAxis = new Vector2();\n this.distance = new Vector2(Infinity, Infinity);\n this.cache = new Vector2();\n }\n resolve(shapeA, shapeB) {\n this.minOverlap = Infinity;\n if (shapeA instanceof Circumference)\n this.setCircumferenceAxis(shapeA, shapeB);\n else if (shapeB instanceof Circumference)\n this.setCircumferenceAxis(shapeB, shapeA);\n this.axes = [...shapeA.projectionAxes];\n shapeB.projectionAxes.forEach((pa) => (this.axes.some((a) => a.equals(pa)) ? undefined : this.axes.push(pa)));\n for (let i = 0; i < this.axes.length; i++) {\n if (shapeA instanceof Circumference)\n this.setCircumferenceVertices(shapeA, this.axes[i]);\n else if (shapeB instanceof Circumference)\n this.setCircumferenceVertices(shapeB, this.axes[i]);\n this.projectShapeOntoAxis(this.projA, shapeA, this.axes[i]);\n this.projectShapeOntoAxis(this.projB, shapeB, this.axes[i]);\n this.currentOverlap = Math.min(this.projA.max, this.projB.max) - Math.max(this.projA.min, this.projB.min);\n if (this.currentOverlap < 0)\n return undefined;\n this.invertAxis = true;\n // prevent containment\n if ((this.projA.max > this.projB.max && this.projA.min < this.projB.min) ||\n (this.projA.max < this.projB.max && this.projA.min > this.projB.min)) {\n const mins = Math.abs(this.projA.min - this.projB.min);\n const maxs = Math.abs(this.projA.max - this.projB.max);\n if (mins < maxs) {\n this.currentOverlap += mins;\n }\n else {\n this.currentOverlap += maxs;\n Vector2.scale(this.axes[i], this.axes[i], -1);\n this.invertAxis = false;\n }\n }\n if (this.currentOverlap < this.minOverlap) {\n this.minOverlap = this.currentOverlap;\n this.smallestAxis.copy(this.axes[i]);\n if (this.invertAxis && this.projA.max < this.projB.max) {\n Vector2.scale(this.smallestAxis, this.axes[i], -1);\n }\n }\n }\n return {\n direction: Vector2.scale(new Vector2(), this.smallestAxis, -1),\n penetration: this.minOverlap,\n };\n }\n projectShapeOntoAxis(projection, shape, axis) {\n projection.min = Infinity;\n projection.max = -Infinity;\n shape.vertices.forEach((vertex) => {\n projection.min = Math.min(Vector2.dot(axis, vertex), projection.min);\n projection.max = Math.max(Vector2.dot(axis, vertex), projection.max);\n });\n return projection;\n }\n setCircumferenceAxis(c, s) {\n this.distance.set(Infinity, Infinity);\n s.vertices.forEach((vertex) => {\n Vector2.subtract(this.cache, vertex, c.position);\n if (this.cache.magnitude < this.distance.magnitude) {\n this.distance.copy(this.cache);\n }\n });\n Vector2.unit(c.projectionAxes[0], this.distance);\n }\n setCircumferenceVertices(c, axis) {\n Vector2.add(c.vertices[0], c.position, Vector2.scale(this.cache, Vector2.unit(this.cache, axis), -c.radius));\n Vector2.add(c.vertices[1], c.position, Vector2.scale(this.cache, Vector2.unit(this.cache, axis), c.radius));\n }\n};\nSatResolver = __decorate([\n injectable(SYMBOLS.CollisionSatResolver)\n], SatResolver);\nexport { SatResolver };\n//# sourceMappingURL=SatResolver.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { injectable } from \"@angry-pixel/ioc\";\nimport { SYMBOLS } from \"./symbols\";\n/**\n * The CollisionRepository stores and manages collision data between colliders.\n * It provides methods for querying collisions by collider and layer,\n * and handles persisting/removing collision records.\n * @public\n * @category Collisions\n * @example\n * ```typescript\n * // Get all collisions for a collider\n * const collisions = collisionRepository.findCollisionsForCollider(playerCollider);\n *\n * // Get collisions between player and enemies\n * const enemyCollisions = collisionRepository.findCollisionsForColliderAndLayer(\n * playerCollider,\n * \"enemy\"\n * );\n *\n * // Get all current collisions\n * const allCollisions = collisionRepository.findAll();\n * ```\n */\nlet CollisionRepository = class CollisionRepository {\n constructor() {\n this.collisions = [];\n }\n /**\n * Searches for and returns a collection of collisions for the given collider\n * @param collider The local collider\n * @returns A collection of collisions\n */\n findCollisionsForCollider(collider) {\n return this.collisions.filter((c) => c.localCollider === collider);\n }\n /**\n * Searches for and returns a collection of collisions for the given collider and layer\n * @param collider The local collider\n * @param layer The collision layer\n * @returns A collection of collisions\n */\n findCollisionsForColliderAndLayer(collider, layer) {\n return this.collisions.filter((c) => c.localCollider === collider && c.remoteCollider.layer === layer);\n }\n /**\n * Returns all the collisions\n * @public\n * @returns A collection of collisions\n */\n findAll() {\n return this.collisions;\n }\n /** @internal */\n persist(collision) {\n this.collisions.push(collision);\n }\n /** @internal */\n removeAll() {\n this.collisions = [];\n }\n};\nCollisionRepository = __decorate([\n injectable(SYMBOLS.CollisionRepository)\n], CollisionRepository);\nexport { CollisionRepository };\n//# sourceMappingURL=CollisionRepository.js.map","export const deepClone = (value) => {\n if (value === null || typeof value !== \"object\") {\n return value; // primitives\n }\n // avoid cloning DOM elements\n if (typeof Node !== \"undefined\" && value instanceof Node) {\n return value;\n }\n // avoid cloning FontFace instances\n if (typeof FontFace !== \"undefined\" && value instanceof FontFace) {\n return value;\n }\n if (value instanceof Date) {\n return new Date(value.getTime());\n }\n if (value instanceof Array) {\n return value.map((item) => deepClone(item));\n }\n if (value instanceof Map) {\n const result = new Map();\n for (const [k, v] of value) {\n result.set(deepClone(k), deepClone(v));\n }\n return result;\n }\n if (value instanceof Set) {\n const result = new Set();\n for (const item of value) {\n result.add(deepClone(item));\n }\n return result;\n }\n // creates an empty object with the same prototype as the original value\n const proto = Object.getPrototypeOf(value);\n const clone = Object.create(proto);\n // clone all properties of the original value\n for (const key of Object.keys(value)) {\n clone[key] = deepClone(value[key]);\n }\n return clone;\n};\n/**\n * Creates a disabled component\n * @param component The component to disable\n * @returns The disabled component\n * @category Entity-Component-System\n * @public\n * @example\n * ```js\n * const disabledTransform = disableComponent(Transform);\n * ```\n */\nexport const disableComponent = (component) => ({\n enabled: false,\n component,\n});\n//# sourceMappingURL=utils.js.map","export const SYMBOLS = {\n EntityManager: Symbol.for(\"EntityManager\"),\n SystemManager: Symbol.for(\"SystemManager\"),\n};\n//# sourceMappingURL=symbols.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { injectable } from \"@angry-pixel/ioc\";\nimport { deepClone } from \"./utils\";\nimport { SYMBOLS } from \"./symbols\";\n/**\n * The EntityManager is responsible for managing the lifecycle and relationships of entities and components.\\\n * It provides methods for creating, reading, updating and deleting entities and their associated components.\\\n * Handles parent-child relationships between entities and enables/disables entities and components.\\\n * Acts as the central registry for all game objects and their behaviors.\n * @public\n * @category Entity-Component-System\n * @example\n * ```js\n * // Create an entity with components\n * const entity = entityManager.createEntity([\n * new Transform({position: new Vector2(100, 100)}),\n * new SpriteRenderer({sprite: \"player.png\"})\n * ]);\n *\n * // Get a component from an entity\n * const transform = entityManager.getComponent(entity, Transform);\n *\n * // Get all components from an entity\n * const components = entityManager.getComponents(entity);\n *\n * // Find entity by component\n * const entityWithSprite = entityManager.getEntityForComponent(spriteRenderer);\n *\n * // Update component data\n * entityManager.updateComponentData(entity, Transform, (component) => {\n * component.position = new Vector2(200, 200);\n * });\n *\n * // Create parent-child relationship\n * const child = entityManager.createEntity([Transform], parent);\n * // or if you already have the child entity\n * entityManager.setParent(child, parent);\n *\n * // Enable/disable entities\n * entityManager.disableEntity(entity);\n * entityManager.enableEntity(entity);\n *\n * // Remove components\n * entityManager.removeComponent(entity, SpriteRenderer);\n * entityManager.removeComponent(spriteRenderer);\n *\n * // Search for entities with specific components\n * const searchResult = entityManager.search(SpriteRenderer);\n * searchResult.forEach(({component, entity}) => {\n * // do something with the component and entity\n * })\n *\n * const searchResult = entityManager.search(Enemy, (component) => component.status === \"alive\");\n * searchResult.forEach(({component, entity}) => {\n * // do something with the component and entity\n * })\n * ```\n */\nlet EntityManager = class EntityManager {\n constructor() {\n this.lastEntityId = 0;\n this.lastComponentTypeId = 0;\n this.entities = new Set();\n this.components = new Map(); // componen type id -> entity id -> component\n this.disabledEntities = new Set();\n this.manuallyDisabledEntities = new Set();\n this.disabledComponents = new Map(); // entity -> set of component type id\n this.parentEntities = new Map(); // child entity -> parent entity\n this.childEntities = new Map(); // parent entity -> set of child entities\n }\n createEntity(components, parent) {\n const entity = this.lastEntityId++;\n if (components) {\n this.entities.add(entity);\n components.forEach((component) => this.addComponent(entity, component));\n if (parent)\n this.setParent(entity, parent);\n }\n return entity;\n }\n /**\n * Creates an Entity based on an Archetype.\\\n * Since the components are cloned, the archetype can be reused to create multiple entities.\n * @param archetype The archetype to create the entity from\n * @param parent The parent entity (optional)\n * @returns The created Entity\n * @public\n * @example\n * ```js\n * const archetype = {\n * components: [\n * new Transform({position: new Vector2(100, 100)}),\n * SpriteRenderer\n * ],\n * children: [childArchetype],\n * enabled: true\n * }\n * const entity = entityManager.createEntityFromArchetype(archetype);\n * ```\n */\n createEntityFromArchetype({ components, children, enabled }, parent) {\n const entity = this.lastEntityId++;\n this.entities.add(entity);\n this.createComponentsFromArchetype(components, entity);\n if (parent)\n this.setParent(entity, parent);\n if (children)\n children.forEach((child) => this.createEntityFromArchetype(child, entity));\n if (enabled === false)\n this.disableEntity(entity);\n return entity;\n }\n /**\n * Creates components from an archetype\n * @param components The components to create\n * @param entity The entity to create the components for\n * @private\n */\n createComponentsFromArchetype(components, entity) {\n components.forEach((component) => {\n let enabled = true;\n let instance;\n if (typeof component === \"object\" &&\n \"component\" in component &&\n \"enabled\" in component &&\n component.enabled === false) {\n enabled = false;\n component = component.component;\n }\n if (typeof component === \"object\") {\n instance = this.addComponent(entity, deepClone(component));\n }\n else if (typeof component === \"function\") {\n instance = this.addComponent(entity, component);\n }\n else {\n throw new Error(\"Invalid component type\");\n }\n if (!enabled)\n this.disableComponent(instance);\n });\n }\n /**\n * Removes an Entity and all its Components\n * @param entity The entity to remove\n * @public\n * @example\n * ```js\n * entityManager.removeEntity(entity);\n * ```\n */\n removeEntity(entity) {\n var _a;\n this.getChildren(entity).forEach((child) => this.removeEntity(child));\n this.components.forEach((row) => {\n if (row.has(entity))\n row.delete(entity);\n });\n this.disabledComponents.delete(entity);\n this.disabledEntities.delete(entity);\n this.manuallyDisabledEntities.delete(entity);\n const parent = this.getParent(entity);\n if (parent) {\n (_a = this.childEntities.get(parent)) === null || _a === void 0 ? void 0 : _a.delete(entity);\n }\n this.parentEntities.delete(entity);\n this.childEntities.delete(entity);\n this.entities.delete(entity);\n }\n /**\n * Removes all Entities and all their Components\n * @param preserveComponentType Optional component type to preserve entities that have this component\n * @public\n * @example\n * ```js\n * // Remove all entities\n * entityManager.removeAllEntities();\n *\n * // Remove all entities except those that have a SpriteRenderer component\n * entityManager.removeAllEntities(SpriteRenderer);\n * ```\n */\n removeAllEntities(preserveComponentType) {\n const result = preserveComponentType ? this.search(preserveComponentType) : [];\n if (result.length > 0) {\n const entitiesToPreserve = new Set(result.map(({ entity }) => entity));\n for (const entity of this.entities) {\n if (!entitiesToPreserve.has(entity))\n this.removeEntity(entity);\n }\n }\n else {\n this.components.clear();\n this.disabledComponents.clear();\n this.disabledEntities.clear();\n this.manuallyDisabledEntities.clear();\n this.lastEntityId = 0;\n this.entities.clear();\n this.parentEntities.clear();\n this.childEntities.clear();\n }\n }\n /**\n * If the Entity exists, returns TRUE, otherwise it returns FALSE\n * @param entity\n * @returns boolean\n * @example\n * ```js\n * const isEntity = entityManager.isEntity(entity);\n * ```\n */\n isEntity(entity) {\n return this.entities.has(entity);\n }\n /**\n * If the Entity is enabled, returns TRUE, otherwise it returns FALSE\n * @param entity The entity to verify\n * @returns boolean\n * @public\n * @example\n * ```js\n * const entityEnabled = entityManager.isEntityEnabled(entity);\n * ```\n */\n isEntityEnabled(entity) {\n return this.isEntity(entity) && !this.disabledEntities.has(entity);\n }\n /**\n * Enables an Entity.\\\n * The entity's components will be included in the `search` results\\\n * and therefore will be processed by their respective systems\\\n * (the engine built-in systems use the `search` method to retrieve the entities).\n * If the entity has children, they will also be enabled, except for those that have been manually disabled.\n * @param entity The entity to be enabled\n * @public\n * @example\n * ```js\n * entityManager.enableEntity(entity);\n * ```\n */\n enableEntity(entity) {\n if (this.disabledEntities.has(entity)) {\n this.disabledEntities.delete(entity);\n this.getChildren(entity).forEach((child) => {\n if (!this.manuallyDisabledEntities.has(child)) {\n this.enableEntity(child);\n }\n });\n }\n }\n /**\n * Disables an entity.\\\n * The entity's components will not be included in the `search` results\\\n * and therefore will not be processed by their respective systems\\\n * (the engine built-in systems use the `search` method to retrieve the entities).\n * If the entity has children, they will also be disabled.\n * @param entity The entity to be disabled\n * @public\n * @example\n * ```js\n * entityManager.disableEntity(entity);\n * ```\n */\n disableEntity(entity) {\n if (!this.disabledEntities.has(entity)) {\n this.disabledEntities.add(entity);\n this.getChildren(entity).forEach((child) => {\n if (this.disabledEntities.has(child)) {\n this.manuallyDisabledEntities.add(child);\n }\n else {\n this.disableEntity(child);\n }\n });\n }\n }\n /**\n * Disable all Entities that have a component of the given type\n * @param componentType The class of the component\n * @public\n * @example\n * ```js\n * entityManager.disableEntitiesByComponent(SpriteRenderer);\n * ```\n */\n disableEntitiesByComponent(componentType) {\n var _a, _b;\n for (const entity of (_b = (_a = this.components.get(this.getComponentTypeId(componentType))) === null || _a === void 0 ? void 0 : _a.keys()) !== null && _b !== void 0 ? _b : []) {\n this.disableEntity(entity);\n }\n }\n /**\n * Enable all Entities that have a component of the given type\n * @param componentType The class of the component\n * @public\n * @example\n * ```js\n * entityManager.enableEntitiesByComponent(SpriteRenderer);\n * ```\n */\n enableEntitiesByComponent(componentType) {\n var _a, _b;\n for (const entity of (_b = (_a = this.components.get(this.getComponentTypeId(componentType))) === null || _a === void 0 ? void 0 : _a.keys()) !== null && _b !== void 0 ? _b : []) {\n this.enableEntity(entity);\n }\n }\n /**\n * Sets a parent-child relationship between two entities\n * @param child The child entity\n * @param parent The parent entity\n * @public\n * @example\n * ```js\n * entityManager.setParent(child, parent);\n * ```\n */\n setParent(child, parent) {\n if (!this.isEntity(child) || !this.isEntity(parent)) {\n throw new Error(\"Both entities must exist to set a parent-child relationship.\");\n }\n if (this.parentEntities.has(child)) {\n const oldParent = this.parentEntities.get(child);\n if (oldParent === parent)\n return;\n this.childEntities.get(oldParent).delete(child);\n }\n this.parentEntities.set(child, parent);\n if (!this.childEntities.has(parent))\n this.childEntities.set(parent, new Set());\n this.childEntities.get(parent).add(child);\n }\n /**\n * Returns the parent entity of the child entity\n * @param child\n * @returns The parent entity\n * @public\n * @example\n * ```js\n * const parent = entityManager.getParent(child);\n * ```\n */\n getParent(child) {\n return this.parentEntities.get(child);\n }\n /**\n * Returns all child entities of the parent entity\n * @param parent\n * @returns A collection of child entities\n * @public\n * @example\n * ```js\n * const children = entityManager.getChildren(parent);\n * ```\n */\n getChildren(parent) {\n return Array.from(this.childEntities.get(parent) || []);\n }\n /**\n * Removes the parent-child relationship between two entities\n * @param child The child entity\n * @public\n * @example\n * ```js\n * entityManager.removeParent(child);\n * ```\n */\n removeParent(child) {\n const parent = this.parentEntities.get(child);\n if (parent) {\n this.parentEntities.delete(child);\n this.childEntities.get(parent).delete(child);\n }\n }\n /**\n * Removes a child entity from the parent entity\n * @param parent The parent entity\n * @param child The child entity\n * @public\n * @example\n * ```js\n * entityManager.removeChild(parent, child);\n * ```\n */\n removeChild(parent, child) {\n if (this.parentEntities.get(child) === parent) {\n this.parentEntities.delete(child);\n this.childEntities.get(parent).delete(child);\n }\n }\n addComponent(entity, component) {\n var _a;\n const id = this.getComponentTypeId(component);\n const instance = typeof component === \"object\" ? component : new component();\n if (!this.components.has(id))\n this.components.set(id, new Map());\n if (this.components.get(id).has(entity)) {\n const componentName = (_a = instance.constructor.componentName) !== null && _a !== void 0 ? _a : instance.constructor.name;\n throw new Error(`Entity ${entity} already has a component of type ${componentName}`);\n }\n this.components.get(id).set(entity, instance);\n return instance;\n }\n /**\n * Returns TRUE if the Entity has a component of the given type, otherwise it returns FALSE.\n * @param entity The entity to verify\n * @param componentType The class of the component\n * @returns boolean\n * @public\n * @example\n * ```js\n * const hasSpriteRenderer = entityManager.hasComponent(entity, SpriteRenderer);\n * ```\n */\n hasComponent(entity, componentType) {\n return this.getComponent(entity, componentType) !== undefined;\n }\n /**\n * Returns the component of the given type belonging to the entity\n * @param entity The entity\n * @param componentType The class of the component\n * @returns The instance of the component\n * @public\n * @example\n * ```js\n * const spriteRenderer = entityManager.getComponent(entity, SpriteRenderer);\n * ```\n */\n getComponent(entity, componentType) {\n var _a;\n return (_a = this.components.get(this.getComponentTypeId(componentType))) === null || _a === void 0 ? void 0 : _a.get(entity);\n }\n /**\n * Returns all the component belonging to the entity\n * @param entity The entity\n * @returns A collection of component instances\n * @public\n * @example\n * ```js\n * const components = entityManager.getComponents(entity);\n * ```\n */\n getComponents(entity) {\n const components = [];\n this.components.forEach((entityComponent) => entityComponent.forEach((c, e) => {\n if (entity === e)\n components.push(c);\n }));\n return components;\n }\n /**\n * Updates the data of a component instance\n * @param entity The entity\n * @param componentType The component type\n * @param updateCallback The callback to update the component\n * @public\n * @example\n * ```js\n * entityManager.updateComponentData(entity, Transform, (component) => {\n * component.position = new Vector2(100, 100);\n * });\n * ```\n */\n updateComponentData(entity, componentType, updateCallback) {\n const component = this.getComponent(entity, componentType);\n if (component)\n updateCallback(component);\n }\n /**\n * Searches for and returns an entity for the component instance\n * @param component The component instance\n * @returns The found Entity\n * @public\n * @example\n * ```js\n * const entity = entityManager.getEntityForComponent(spriteRenderer);\n * ```\n */\n getEntityForComponent(component) {\n const id = this.getComponentTypeId(component);\n if (this.components.has(id)) {\n for (const [e, c] of this.components.get(id)) {\n if (c === component)\n return e;\n }\n }\n return undefined;\n }\n removeComponent(arg1, arg2) {\n var _a;\n const id = this.getComponentTypeId(typeof arg1 === \"object\" ? arg1 : arg2);\n const entity = typeof arg1 === \"number\" ? arg1 : this.getEntityForComponent(arg1);\n if (entity !== undefined && ((_a = this.components.get(id)) === null || _a === void 0 ? void 0 : _a.has(entity)))\n this.components.get(id).delete(entity);\n }\n isComponentEnabled(arg1, arg2) {\n var _a;\n const id = this.getComponentTypeId(typeof arg1 === \"object\" ? arg1 : arg2);\n const entity = typeof arg1 === \"number\" ? arg1 : this.getEntityForComponent(arg1);\n return entity !== undefined && !((_a = this.disabledComponents.get(entity)) === null || _a === void 0 ? void 0 : _a.has(id));\n }\n disableComponent(arg1, arg2) {\n const entity = typeof arg1 === \"number\" ? arg1 : this.getEntityForComponent(arg1);\n const id = this.getComponentTypeId(typeof arg1 === \"object\" ? arg1 : arg2);\n if (entity == undefined)\n return;\n if (!this.disabledComponents.has(entity)) {\n this.disabledComponents.set(entity, new Set([id]));\n }\n else if (!this.disabledComponents.get(entity).has(id)) {\n this.disabledComponents.get(entity).add(id);\n }\n }\n enableComponent(arg1, arg2) {\n var _a;\n const entity = typeof arg1 === \"number\" ? arg1 : this.getEntityForComponent(arg1);\n const id = this.getComponentTypeId(typeof arg1 === \"object\" ? arg1 : arg2);\n if (entity !== undefined && ((_a = this.disabledComponents.get(entity)) === null || _a === void 0 ? void 0 : _a.has(id))) {\n this.disabledComponents.get(entity).delete(id);\n }\n }\n /**\n * Returns the component of a parent entity, if it exists.\n * @param parent The parent entity\n * @param componentType The component class to search\n * @returns The instance of the component\n * @public\n * @example\n * ```js\n * const spriteRenderer = entityManager.getComponentFromParent(parent, SpriteRenderer);\n * ```\n */\n getComponentFromParent(parent, componentType) {\n let current = parent;\n while (current) {\n const component = this.getComponent(current, componentType);\n if (component)\n return component;\n current = this.getParent(current);\n }\n return undefined;\n }\n search(componentType, arg1, arg2 = false) {\n const result = [];\n const id = this.getComponentTypeId(componentType);\n const includeDisabled = typeof arg1 === \"boolean\" ? arg1 : arg2;\n const filter = typeof arg1 === \"function\" ? arg1 : undefined;\n if (this.components.has(id)) {\n this.components.get(id).forEach((component, entity) => {\n if ((!filter || filter(component, entity)) &&\n (includeDisabled ||\n (this.isEntityEnabled(entity) && this.isComponentEnabled(entity, componentType))))\n result.push({ entity, component: component });\n });\n }\n return result;\n }\n /**\n * Performs an entity search given a collection of component types.\\\n * The entities found must have an instance of all the given component types.\\\n * This method returns a collection of Entities.\n * @param componentTypes A collection of component classes\n * @returns A collection of entities\n * @public\n * @example\n * ```js\n * const entities = entityManager.searchEntitiesByComponents([Transform, SpriteRenderer, Animator]);\n * ```\n */\n searchEntitiesByComponents(componentTypes) {\n const entities = [];\n let first = true;\n for (const componentType of componentTypes) {\n const id = this.getComponentTypeId(componentType);\n if (!id || !this.components.has(id))\n return [];\n if (first) {\n entities.push(...this.components.get(id).keys());\n first = false;\n continue;\n }\n const toCompare = new Set(this.components.get(id).keys());\n entities.forEach((e, i) => {\n if (!toCompare.has(e))\n entities.splice(i, 1);\n });\n }\n return entities;\n }\n /**\n * Performs a search for entities that have a component of the given type and are children of the parent entity.\\\n * This method returns a collection of objects of type SearchResult, which has the entity found, and the instance of the component.\\\n * The third argument determines if disabled entities or components are included in the search result,\\its default value is FALSE.\n * @param parent The parent entity\n * @param componentType The component class\n * @param includeDisabled TRUE to incluide disabled entities and components. Default is FALSE.\n * @returns SearchResult\n * @public\n * @example\n * ```js\n * const searchResult = entityManager.searchInChildren(parent, SpriteRenderer);\n * searchResult.forEach(({component, entity}) => {\n * // do something with the component and entity\n * })\n * ```\n * @example\n * ```js\n * const searchResult = entityManager.searchInChildren(parent, SpriteRenderer, true);\n * searchResult.forEach(({component, entity}) => {\n * // do something with the component and entity\n * })\n * ```\n */\n searchInChildren(parent, componentType, includeDisabled = false) {\n const children = this.getChildren(parent);\n return this.search(componentType, includeDisabled).filter(({ entity }) => children.includes(entity));\n }\n getComponentTypeId(component) {\n const prototype = typeof component === \"object\" ? component.constructor.prototype : component.prototype;\n if (prototype.__ecs_type_id === undefined) {\n prototype.__ecs_type_id = Number(`${++this.lastComponentTypeId}${(performance.now() * 1e5).toFixed(0)}`);\n }\n return prototype.__ecs_type_id;\n }\n};\nEntityManager = __decorate([\n injectable(SYMBOLS.EntityManager)\n], EntityManager);\nexport { EntityManager };\n//# sourceMappingURL=EntityManager.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { injectable } from \"@angry-pixel/ioc\";\nimport { SYMBOLS } from \"./symbols\";\n/**\n * The SystemManager is responsible for managing the lifecycle and execution of game systems.\\\n * It provides methods for adding, enabling, disabling and retrieving systems that operate on entities and components.\\\n * Systems are organized into groups to control their execution order and update frequency.\\\n * Acts as the central orchestrator for all game logic and behavior processing.\n * @public\n * @category Entity-Component-System\n */\nlet SystemManager = class SystemManager {\n constructor() {\n this.systems = []; // [system, group, enabled, created]\n }\n /**\n * @param systemType The system class\n * @returns the systen index\n */\n findSystemIndex(systemType) {\n return this.systems.findIndex((system) => system[0] instanceof systemType);\n }\n /**\n * Adds a new system instance linked to a group\n * @param system The system instance\n * @param group The system group\n * @internal\n */\n addSystem(system, group) {\n if (this.systems.some((system) => system[0] instanceof system.constructor)) {\n throw new Error(`SystemManager already has an instance of ${system.constructor.name}.`);\n }\n this.systems.push([system, group, false, false]);\n }\n /**\n * Returns TRUE if it has a system of the given type, otherwise it returns FALSE\n * @param systemType The system class\n * @returns boolean\n * @public\n * @example\n * ```js\n * const hasPlayerSystem = systemManager.hasSystem(PlayerSystem);\n * ```\n */\n hasSystem(systemType) {\n return this.systems.some((system) => system[0] instanceof systemType);\n }\n /**\n * Returns a system instance for the given type\n * @param systemType The system class\n * @returns The system instance\n * @internal\n */\n getSystem(systemType) {\n const index = this.findSystemIndex(systemType);\n return index !== -1 ? this.systems[index][0] : undefined;\n }\n /**\n * Returns TRUE wether the given group has systems\n * @param group The system group\n * @returns boolean\n * @internal\n */\n groupHasSystems(group) {\n return this.systems.filter((system) => system[1] === group).length > 0;\n }\n /**\n * Enables a system by its type.\\\n * The method `onEnabled` of the system will be called. If the system is enabled for the first time, the method `onCreate` will also be called.\n * @param systemType The system class\n * @public\n * @example\n * ```js\n * systemManager.enableSystem(PlayerSystem);\n * ```\n */\n enableSystem(systemType) {\n const index = this.findSystemIndex(systemType);\n if (index === -1 || this.systems[index][2] === true)\n return;\n const system = this.systems[index];\n if (system[3] === false) {\n system[3] = true;\n if (system[0].onCreate)\n system[0].onCreate();\n }\n system[2] = true;\n if (system[0].onEnabled)\n system[0].onEnabled();\n }\n /**\n * Disables a system by its type.\\\n * The method `onDisabled` of the system will be called.\n * @param systemType The system class\n * @public\n * @example\n * ```js\n * systemManager.disableSystem(PlayerSystem);\n * ```\n */\n disableSystem(systemType) {\n const index = this.findSystemIndex(systemType);\n if (index === -1 || this.systems[index][2] === false)\n return;\n const system = this.systems[index];\n system[2] = false;\n if (system[0].onDisabled)\n system[0].onDisabled();\n }\n /**\n * Set the execution priority of a system.\n * @param systemType The system class\n * @param position the priority number\n * @internal\n */\n setExecutionOrder(systemType, position) {\n const index = this.findSystemIndex(systemType);\n if (index === -1)\n throw new Error(`Cannot set execution order because ${systemType.name} is not a system.`);\n this.systems.splice(position, 0, this.systems.splice(index, 1)[0]);\n }\n /**\n * Removes a system by its type.\n * The method `onDestroy` of the system will be called.\n * @param systemType The system class\n * @internal\n */\n removeSystem(systemType) {\n const index = this.findSystemIndex(systemType);\n if (index === -1)\n return;\n const system = this.systems.splice(index, 1)[0][0];\n if (system.onDestroy)\n system.onDestroy();\n }\n /**\n * Disables all systems\n * @internal\n */\n disableAllSystems() {\n this.systems.forEach((system) => {\n if (system[2])\n this.disableSystem(system[0].constructor);\n });\n }\n /**\n * Call the method onUpdate for systems belonging to the given group\n * @param group The system group\n * @internal\n */\n update(group) {\n this.systems\n .filter((system) => system[1] === group && system[2] === true)\n .forEach((system) => system[0].onUpdate());\n }\n};\nSystemManager = __decorate([\n injectable(SYMBOLS.SystemManager)\n], SystemManager);\nexport { SystemManager };\n//# sourceMappingURL=SystemManager.js.map","export var WebGLContextVersion;\n(function (WebGLContextVersion) {\n WebGLContextVersion[\"LegacyWebGL\"] = \"webgl\";\n WebGLContextVersion[\"WebGL2\"] = \"webgl2\";\n})(WebGLContextVersion || (WebGLContextVersion = {}));\nexport class ContextManager {\n constructor(canvas) {\n this.canvas = canvas;\n this.contextVersion = this.getContextVersion();\n if (!this.contextVersion) {\n throw new Error(\"Your browser does not support WebGL.\");\n }\n this.gl = this.canvas.getContext(this.contextVersion);\n }\n getContextVersion() {\n return this.canvas.getContext(WebGLContextVersion.WebGL2) !== null\n ? WebGLContextVersion.WebGL2\n : this.canvas.getContext(WebGLContextVersion.LegacyWebGL) !== null\n ? WebGLContextVersion.LegacyWebGL\n : undefined;\n }\n}\n//# sourceMappingURL=ContextManager.js.map","export class FontAtlasFactory {\n constructor() {\n this.fontAtlas = new Map();\n }\n hasFontAtlas(options) {\n return this.fontAtlas.has(this.getId(options));\n }\n getFontAtlas(options) {\n return this.fontAtlas.get(this.getId(options));\n }\n getOrCreate(options) {\n var _a;\n return (_a = this.getFontAtlas(options)) !== null && _a !== void 0 ? _a : this.create(options);\n }\n create(options) {\n const { font, charRanges, fontSize, spacing } = options;\n this.chars = [];\n for (let i = 0; i < charRanges.length; i = i + 2) {\n for (let j = charRanges[i]; j <= charRanges[i + 1]; j++) {\n this.chars.push(String.fromCharCode(j));\n }\n }\n this.font = font instanceof FontFace ? font.family : font;\n this.fontSize = fontSize;\n this.spacing = spacing;\n this.id = this.getId(options);\n const fontAtlas = this.renderAtlas();\n this.fontAtlas.set(this.id, fontAtlas);\n return fontAtlas;\n }\n getId({ font, charRanges, fontSize, spacing }) {\n return JSON.stringify({\n font: font instanceof FontFace ? font.family : font,\n charRanges,\n fontSize,\n spacing,\n });\n }\n renderAtlas() {\n const fontAtlas = new FontAtlas(this.id, this.fontSize, Math.ceil(Math.sqrt(this.chars.length)), this.spacing);\n const ctx = fontAtlas.canvas.getContext(\"2d\");\n ctx.clearRect(0, 0, fontAtlas.canvas.width, fontAtlas.canvas.height);\n ctx.textBaseline = \"top\";\n ctx.fillStyle = \"#FFFFFF\";\n ctx.font = `${this.fontSize}px ${this.font}`;\n let x = 0;\n let y = 0;\n for (let i = 0; i < this.chars.length; i++) {\n ctx.fillText(this.chars[i], x, y);\n fontAtlas.glyphs.set(this.chars[i], {\n id: i,\n width: ctx.measureText(this.chars[i]).width,\n });\n if ((x += this.fontSize + this.spacing) > fontAtlas.canvas.width - this.fontSize) {\n x = 0;\n y += this.fontSize + this.spacing;\n }\n }\n return fontAtlas;\n }\n}\nexport class FontAtlas {\n constructor(id, fontSize, gridSize, spacing) {\n this.id = id;\n this.fontSize = fontSize;\n this.gridSize = gridSize;\n this.spacing = spacing;\n this.canvas = document.createElement(\"canvas\");\n this.glyphs = new Map();\n this.canvas.width = this.gridSize * (this.fontSize + this.spacing);\n this.canvas.height = this.canvas.width;\n }\n}\n//# sourceMappingURL=FontAtlasFactory.js.map","export class ProgramFactory {\n constructor(gl, shaderLoader) {\n this.gl = gl;\n this.shaderLoader = shaderLoader;\n }\n create(vertexShaderSource, fragmentShaderSource) {\n const program = this.gl.createProgram();\n const vertexShader = this.shaderLoader.load(this.gl.VERTEX_SHADER, vertexShaderSource);\n const fragmentShader = this.shaderLoader.load(this.gl.FRAGMENT_SHADER, fragmentShaderSource);\n this.gl.attachShader(program, vertexShader);\n this.gl.attachShader(program, fragmentShader);\n this.gl.linkProgram(program);\n const status = this.gl.LINK_STATUS;\n if (!this.gl.getProgramParameter(program, status)) {\n const error = this.gl.getProgramInfoLog(program);\n this.gl.deleteProgram(program);\n throw new Error(`Unable to initialize the Program: ${error}`);\n }\n return program;\n }\n}\n//# sourceMappingURL=ProgramFactory.js.map","import { WebGLContextVersion } from \"../ContextManager\";\nimport { fragmentShader } from \"../shader/fragmentShader\";\nimport { legacyFragmentShader } from \"../shader/legacy/fragmentShader\";\nimport { legacyVertexShader } from \"../shader/legacy/vertexShader\";\nimport { vertexShader } from \"../shader/vertexShader\";\nexport class ProgramManager {\n constructor(gl, contextVersion, programFactory) {\n this.gl = gl;\n this.contextVersion = contextVersion;\n this.programFactory = programFactory;\n }\n loadProgram() {\n this.program =\n this.contextVersion === WebGLContextVersion.WebGL2\n ? this.programFactory.create(vertexShader, fragmentShader)\n : this.programFactory.create(legacyVertexShader, legacyFragmentShader);\n this.positionCoordsAttr = this.gl.getAttribLocation(this.program, \"positionCoords\");\n this.texCoordsAttr = this.gl.getAttribLocation(this.program, \"textureCoords\");\n this.modelMatrixUniform = this.gl.getUniformLocation(this.program, \"modelMatrix\");\n this.projectionMatrixUniform = this.gl.getUniformLocation(this.program, \"projectionMatrix\");\n this.textureMatrixUniform = this.gl.getUniformLocation(this.program, \"textureMatrix\");\n this.renderTextureUniform = this.gl.getUniformLocation(this.program, \"u_renderTexture\");\n this.textureUniform = this.gl.getUniformLocation(this.program, \"u_texImage\");\n this.solidColorUniform = this.gl.getUniformLocation(this.program, \"u_solidColor\");\n this.useTintColorUniform = this.gl.getUniformLocation(this.program, \"u_useTintColor\");\n this.tintColorUniform = this.gl.getUniformLocation(this.program, \"u_tintColor\");\n this.useMaskColorUniform = this.gl.getUniformLocation(this.program, \"u_useMaskColor\");\n this.maskColorUniform = this.gl.getUniformLocation(this.program, \"u_maskColor\");\n this.maskColorMixUniform = this.gl.getUniformLocation(this.program, \"u_maskColorMix\");\n this.alphaUniform = this.gl.getUniformLocation(this.program, \"u_alpha\");\n this.renderLightUniform = this.gl.getUniformLocation(this.program, \"u_renderLight\");\n this.numLightsUniform = this.gl.getUniformLocation(this.program, \"u_numLights\");\n this.gl.useProgram(this.program);\n this.gl.blendFunc(this.gl.SRC_ALPHA, this.gl.ONE_MINUS_SRC_ALPHA);\n }\n}\n//# sourceMappingURL=ProgramManager.js.map","export const vertexShader = `#version 300 es\n\nin vec4 positionCoords;\nin vec2 textureCoords;\n\nuniform mat4 projectionMatrix;\nuniform mat4 modelMatrix;\nuniform mat4 textureMatrix;\n\nout vec2 texCoords;\n\nvoid main()\n{\n gl_Position = projectionMatrix * modelMatrix * positionCoords;\n texCoords = (textureMatrix * vec4(textureCoords, 0, 1)).xy;\n}`;\n//# sourceMappingURL=vertexShader.js.map","export const fragmentShader = `#version 300 es\nprecision highp float;\n\nin vec2 texCoords;\n\n// texture, mask and darkness\nuniform int u_renderTexture;\nuniform sampler2D u_texImage;\nuniform vec4 u_solidColor;\nuniform int u_useTintColor;\nuniform vec4 u_tintColor;\nuniform int u_useMaskColor;\nuniform vec4 u_maskColor;\nuniform float u_maskColorMix;\nuniform float u_alpha;\n\n// light\nstruct Light {\n vec2 position;\n float radius;\n float smoothMode;\n float intensity;\n};\n\nuniform int u_renderLight;\nuniform Light u_lights[64];\nuniform int u_numLights;\n\nout vec4 fragColor;\n\nvoid main()\n{\n if (u_renderTexture == 1) {\n vec4 texColor = texture(u_texImage, texCoords);\n\n if (texColor.a < 0.0001) {\n discard;\n }\n\n if (u_useTintColor == 1) {\n texColor = u_tintColor * texColor;\n }\n\n if (u_useMaskColor == 1) {\n texColor = mix(texColor, u_maskColor, clamp(u_maskColorMix, 0.0, 1.0));\n }\n\n fragColor = vec4(texColor.rgb, u_alpha * texColor.a); \n } else if (u_renderLight == 1) {\n vec2 fragCoord = gl_FragCoord.xy;\n float alpha = u_alpha;\n\n for (int i = 0; i < u_numLights; i++) {\n Light light = u_lights[i];\n float dist = distance(fragCoord, light.position);\n \n if (dist < light.radius) {\n alpha -= (light.smoothMode > 0.0 ? smoothstep(light.radius, 0.0, dist) : 1.0) * light.intensity;\n }\n }\n\n alpha = clamp(alpha, 0.0, u_alpha);\n\n fragColor = vec4(u_solidColor.rgb, alpha);\n } else {\n fragColor = vec4(u_solidColor.rgb, u_alpha);\n }\n}`;\n//# sourceMappingURL=fragmentShader.js.map","export const legacyVertexShader = `precision mediump float;\n\nattribute vec2 positionCoords;\nattribute vec2 textureCoords;\n\nvarying vec2 texCoords;\n\nuniform mat4 projectionMatrix;\nuniform mat4 modelMatrix;\nuniform mat4 textureMatrix;\n\nvoid main()\n{\n gl_Position = projectionMatrix * modelMatrix * vec4(positionCoords, 0, 1);\n texCoords = (textureMatrix * vec4(textureCoords, 0, 1)).xy;\n}`;\n//# sourceMappingURL=vertexShader.js.map","export const legacyFragmentShader = `precision mediump float;\n\nvarying vec2 texCoords;\n\n// texture, mask and darkness\nuniform int u_renderTexture;\nuniform sampler2D u_texImage;\nuniform vec4 u_solidColor;\nuniform int u_useTintColor;\nuniform vec4 u_tintColor;\nuniform int u_useMaskColor;\nuniform vec4 u_maskColor;\nuniform float u_maskColorMix;\nuniform float u_alpha;\n\n// light\nstruct Light {\n vec2 position;\n float radius;\n float smoothMode;\n float intensity;\n};\n\nuniform int u_renderLight;\nuniform Light u_lights[64];\nuniform int u_numLights;\n\nvoid main()\n{\n if (u_renderTexture == 1) {\n vec4 texColor = texture2D(u_texImage, texCoords);\n\n if (texColor.a < 0.0001) {\n discard;\n }\n\n if (u_useTintColor == 1) {\n texColor = u_tintColor * texColor;\n }\n\n if (u_useMaskColor == 1) {\n texColor = mix(texColor, u_maskColor, clamp(u_maskColorMix, 0.0, 1.0));\n }\n\n gl_FragColor = vec4(texColor.rgb, u_alpha * texColor.a);\n } else if (u_renderLight == 1) {\n vec2 fragCoord = gl_FragCoord.xy;\n float alpha = u_alpha;\n\n for (int i = 0; i < 64; i++) {\n if (u_lights[i].intensity == 0.0) continue; \n \n Light light = u_lights[i];\n float dist = distance(fragCoord, light.position);\n \n if (dist < light.radius) {\n alpha -= (light.smoothMode > 0.0 ? smoothstep(light.radius, 0.0, dist) : 1.0) * light.intensity;\n }\n }\n\n alpha = clamp(alpha, 0.0, u_alpha);\n\n gl_FragColor = vec4(u_solidColor.rgb, alpha);\n } else {\n gl_FragColor = vec4(u_solidColor.rgb, u_alpha);\n }\n}`;\n//# sourceMappingURL=fragmentShader.js.map","export class ShaderLoader {\n constructor(gl) {\n this.gl = gl;\n }\n load(type, source) {\n const shader = this.gl.createShader(type);\n this.gl.shaderSource(shader, source);\n this.gl.compileShader(shader);\n const status = this.gl.COMPILE_STATUS;\n if (!this.gl.getShaderParameter(shader, status)) {\n const error = this.gl.getShaderInfoLog(shader);\n this.gl.deleteShader(shader);\n throw new Error(`Unable to initialize the shader program: ${error}`);\n }\n return shader;\n }\n}\n//# sourceMappingURL=ShaderLoader.js.map","/**\n * Common utilities\n * @module glMatrix\n */\n// Configuration Constants\nexport var EPSILON = 0.000001;\nexport var ARRAY_TYPE = typeof Float32Array !== 'undefined' ? Float32Array : Array;\nexport var RANDOM = Math.random;\n/**\n * Sets the type of array used when creating new vectors and matrices\n *\n * @param {Float32ArrayConstructor | ArrayConstructor} type Array type, such as Float32Array or Array\n */\n\nexport function setMatrixArrayType(type) {\n ARRAY_TYPE = type;\n}\nvar degree = Math.PI / 180;\n/**\n * Convert Degree To Radian\n *\n * @param {Number} a Angle in Degrees\n */\n\nexport function toRadian(a) {\n return a * degree;\n}\n/**\n * Tests whether or not the arguments have approximately the same value, within an absolute\n * or relative tolerance of glMatrix.EPSILON (an absolute tolerance is used for values less\n * than or equal to 1.0, and a relative tolerance is used for larger values)\n *\n * @param {Number} a The first number to test.\n * @param {Number} b The second number to test.\n * @returns {Boolean} True if the numbers are approximately equal, false otherwise.\n */\n\nexport function equals(a, b) {\n return Math.abs(a - b) <= EPSILON * Math.max(1.0, Math.abs(a), Math.abs(b));\n}\nif (!Math.hypot) Math.hypot = function () {\n var y = 0,\n i = arguments.length;\n\n while (i--) {\n y += arguments[i] * arguments[i];\n }\n\n return Math.sqrt(y);\n};","import * as glMatrix from \"./common.js\";\n/**\n * 4x4 Matrix<br>Format: column-major, when typed out it looks like row-major<br>The matrices are being post multiplied.\n * @module mat4\n */\n\n/**\n * Creates a new identity mat4\n *\n * @returns {mat4} a new 4x4 matrix\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(16);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n }\n\n out[0] = 1;\n out[5] = 1;\n out[10] = 1;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a new mat4 initialized with values from an existing matrix\n *\n * @param {ReadonlyMat4} a matrix to clone\n * @returns {mat4} a new 4x4 matrix\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(16);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\n * Copy the values from one mat4 to another\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\n * Create a new mat4 with the given values\n *\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m03 Component in column 0, row 3 position (index 3)\n * @param {Number} m10 Component in column 1, row 0 position (index 4)\n * @param {Number} m11 Component in column 1, row 1 position (index 5)\n * @param {Number} m12 Component in column 1, row 2 position (index 6)\n * @param {Number} m13 Component in column 1, row 3 position (index 7)\n * @param {Number} m20 Component in column 2, row 0 position (index 8)\n * @param {Number} m21 Component in column 2, row 1 position (index 9)\n * @param {Number} m22 Component in column 2, row 2 position (index 10)\n * @param {Number} m23 Component in column 2, row 3 position (index 11)\n * @param {Number} m30 Component in column 3, row 0 position (index 12)\n * @param {Number} m31 Component in column 3, row 1 position (index 13)\n * @param {Number} m32 Component in column 3, row 2 position (index 14)\n * @param {Number} m33 Component in column 3, row 3 position (index 15)\n * @returns {mat4} A new mat4\n */\n\nexport function fromValues(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n var out = new glMatrix.ARRAY_TYPE(16);\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m03;\n out[4] = m10;\n out[5] = m11;\n out[6] = m12;\n out[7] = m13;\n out[8] = m20;\n out[9] = m21;\n out[10] = m22;\n out[11] = m23;\n out[12] = m30;\n out[13] = m31;\n out[14] = m32;\n out[15] = m33;\n return out;\n}\n/**\n * Set the components of a mat4 to the given values\n *\n * @param {mat4} out the receiving matrix\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m03 Component in column 0, row 3 position (index 3)\n * @param {Number} m10 Component in column 1, row 0 position (index 4)\n * @param {Number} m11 Component in column 1, row 1 position (index 5)\n * @param {Number} m12 Component in column 1, row 2 position (index 6)\n * @param {Number} m13 Component in column 1, row 3 position (index 7)\n * @param {Number} m20 Component in column 2, row 0 position (index 8)\n * @param {Number} m21 Component in column 2, row 1 position (index 9)\n * @param {Number} m22 Component in column 2, row 2 position (index 10)\n * @param {Number} m23 Component in column 2, row 3 position (index 11)\n * @param {Number} m30 Component in column 3, row 0 position (index 12)\n * @param {Number} m31 Component in column 3, row 1 position (index 13)\n * @param {Number} m32 Component in column 3, row 2 position (index 14)\n * @param {Number} m33 Component in column 3, row 3 position (index 15)\n * @returns {mat4} out\n */\n\nexport function set(out, m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m03;\n out[4] = m10;\n out[5] = m11;\n out[6] = m12;\n out[7] = m13;\n out[8] = m20;\n out[9] = m21;\n out[10] = m22;\n out[11] = m23;\n out[12] = m30;\n out[13] = m31;\n out[14] = m32;\n out[15] = m33;\n return out;\n}\n/**\n * Set a mat4 to the identity matrix\n *\n * @param {mat4} out the receiving matrix\n * @returns {mat4} out\n */\n\nexport function identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Transpose the values of a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function transpose(out, a) {\n // If we are transposing ourselves we can skip a few steps but have to cache some values\n if (out === a) {\n var a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a12 = a[6],\n a13 = a[7];\n var a23 = a[11];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a01;\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a02;\n out[9] = a12;\n out[11] = a[14];\n out[12] = a03;\n out[13] = a13;\n out[14] = a23;\n } else {\n out[0] = a[0];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a[1];\n out[5] = a[5];\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a[2];\n out[9] = a[6];\n out[10] = a[10];\n out[11] = a[14];\n out[12] = a[3];\n out[13] = a[7];\n out[14] = a[11];\n out[15] = a[15];\n }\n\n return out;\n}\n/**\n * Inverts a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function invert(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n\n if (!det) {\n return null;\n }\n\n det = 1.0 / det;\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det;\n out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det;\n out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det;\n out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det;\n out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det;\n out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det;\n out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det;\n return out;\n}\n/**\n * Calculates the adjugate of a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function adjoint(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n out[0] = a11 * (a22 * a33 - a23 * a32) - a21 * (a12 * a33 - a13 * a32) + a31 * (a12 * a23 - a13 * a22);\n out[1] = -(a01 * (a22 * a33 - a23 * a32) - a21 * (a02 * a33 - a03 * a32) + a31 * (a02 * a23 - a03 * a22));\n out[2] = a01 * (a12 * a33 - a13 * a32) - a11 * (a02 * a33 - a03 * a32) + a31 * (a02 * a13 - a03 * a12);\n out[3] = -(a01 * (a12 * a23 - a13 * a22) - a11 * (a02 * a23 - a03 * a22) + a21 * (a02 * a13 - a03 * a12));\n out[4] = -(a10 * (a22 * a33 - a23 * a32) - a20 * (a12 * a33 - a13 * a32) + a30 * (a12 * a23 - a13 * a22));\n out[5] = a00 * (a22 * a33 - a23 * a32) - a20 * (a02 * a33 - a03 * a32) + a30 * (a02 * a23 - a03 * a22);\n out[6] = -(a00 * (a12 * a33 - a13 * a32) - a10 * (a02 * a33 - a03 * a32) + a30 * (a02 * a13 - a03 * a12));\n out[7] = a00 * (a12 * a23 - a13 * a22) - a10 * (a02 * a23 - a03 * a22) + a20 * (a02 * a13 - a03 * a12);\n out[8] = a10 * (a21 * a33 - a23 * a31) - a20 * (a11 * a33 - a13 * a31) + a30 * (a11 * a23 - a13 * a21);\n out[9] = -(a00 * (a21 * a33 - a23 * a31) - a20 * (a01 * a33 - a03 * a31) + a30 * (a01 * a23 - a03 * a21));\n out[10] = a00 * (a11 * a33 - a13 * a31) - a10 * (a01 * a33 - a03 * a31) + a30 * (a01 * a13 - a03 * a11);\n out[11] = -(a00 * (a11 * a23 - a13 * a21) - a10 * (a01 * a23 - a03 * a21) + a20 * (a01 * a13 - a03 * a11));\n out[12] = -(a10 * (a21 * a32 - a22 * a31) - a20 * (a11 * a32 - a12 * a31) + a30 * (a11 * a22 - a12 * a21));\n out[13] = a00 * (a21 * a32 - a22 * a31) - a20 * (a01 * a32 - a02 * a31) + a30 * (a01 * a22 - a02 * a21);\n out[14] = -(a00 * (a11 * a32 - a12 * a31) - a10 * (a01 * a32 - a02 * a31) + a30 * (a01 * a12 - a02 * a11));\n out[15] = a00 * (a11 * a22 - a12 * a21) - a10 * (a01 * a22 - a02 * a21) + a20 * (a01 * a12 - a02 * a11);\n return out;\n}\n/**\n * Calculates the determinant of a mat4\n *\n * @param {ReadonlyMat4} a the source matrix\n * @returns {Number} determinant of a\n */\n\nexport function determinant(a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n return b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n}\n/**\n * Multiplies two mat4s\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\n\nexport function multiply(out, a, b) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15]; // Cache only the current line of the second matrix\n\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3];\n out[0] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[1] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[2] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[3] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[4];\n b1 = b[5];\n b2 = b[6];\n b3 = b[7];\n out[4] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[5] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[6] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[7] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[8];\n b1 = b[9];\n b2 = b[10];\n b3 = b[11];\n out[8] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[9] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[10] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[11] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[12];\n b1 = b[13];\n b2 = b[14];\n b3 = b[15];\n out[12] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[13] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[14] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n return out;\n}\n/**\n * Translate a mat4 by the given vector\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to translate\n * @param {ReadonlyVec3} v vector to translate by\n * @returns {mat4} out\n */\n\nexport function translate(out, a, v) {\n var x = v[0],\n y = v[1],\n z = v[2];\n var a00, a01, a02, a03;\n var a10, a11, a12, a13;\n var a20, a21, a22, a23;\n\n if (a === out) {\n out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];\n out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];\n out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];\n out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];\n } else {\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11];\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n out[3] = a03;\n out[4] = a10;\n out[5] = a11;\n out[6] = a12;\n out[7] = a13;\n out[8] = a20;\n out[9] = a21;\n out[10] = a22;\n out[11] = a23;\n out[12] = a00 * x + a10 * y + a20 * z + a[12];\n out[13] = a01 * x + a11 * y + a21 * z + a[13];\n out[14] = a02 * x + a12 * y + a22 * z + a[14];\n out[15] = a03 * x + a13 * y + a23 * z + a[15];\n }\n\n return out;\n}\n/**\n * Scales the mat4 by the dimensions in the given vec3 not using vectorization\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to scale\n * @param {ReadonlyVec3} v the vec3 to scale the matrix by\n * @returns {mat4} out\n **/\n\nexport function scale(out, a, v) {\n var x = v[0],\n y = v[1],\n z = v[2];\n out[0] = a[0] * x;\n out[1] = a[1] * x;\n out[2] = a[2] * x;\n out[3] = a[3] * x;\n out[4] = a[4] * y;\n out[5] = a[5] * y;\n out[6] = a[6] * y;\n out[7] = a[7] * y;\n out[8] = a[8] * z;\n out[9] = a[9] * z;\n out[10] = a[10] * z;\n out[11] = a[11] * z;\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\n * Rotates a mat4 by the given angle around the given axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @param {ReadonlyVec3} axis the axis to rotate around\n * @returns {mat4} out\n */\n\nexport function rotate(out, a, rad, axis) {\n var x = axis[0],\n y = axis[1],\n z = axis[2];\n var len = Math.hypot(x, y, z);\n var s, c, t;\n var a00, a01, a02, a03;\n var a10, a11, a12, a13;\n var a20, a21, a22, a23;\n var b00, b01, b02;\n var b10, b11, b12;\n var b20, b21, b22;\n\n if (len < glMatrix.EPSILON) {\n return null;\n }\n\n len = 1 / len;\n x *= len;\n y *= len;\n z *= len;\n s = Math.sin(rad);\n c = Math.cos(rad);\n t = 1 - c;\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11]; // Construct the elements of the rotation matrix\n\n b00 = x * x * t + c;\n b01 = y * x * t + z * s;\n b02 = z * x * t - y * s;\n b10 = x * y * t - z * s;\n b11 = y * y * t + c;\n b12 = z * y * t + x * s;\n b20 = x * z * t + y * s;\n b21 = y * z * t - x * s;\n b22 = z * z * t + c; // Perform rotation-specific matrix multiplication\n\n out[0] = a00 * b00 + a10 * b01 + a20 * b02;\n out[1] = a01 * b00 + a11 * b01 + a21 * b02;\n out[2] = a02 * b00 + a12 * b01 + a22 * b02;\n out[3] = a03 * b00 + a13 * b01 + a23 * b02;\n out[4] = a00 * b10 + a10 * b11 + a20 * b12;\n out[5] = a01 * b10 + a11 * b11 + a21 * b12;\n out[6] = a02 * b10 + a12 * b11 + a22 * b12;\n out[7] = a03 * b10 + a13 * b11 + a23 * b12;\n out[8] = a00 * b20 + a10 * b21 + a20 * b22;\n out[9] = a01 * b20 + a11 * b21 + a21 * b22;\n out[10] = a02 * b20 + a12 * b21 + a22 * b22;\n out[11] = a03 * b20 + a13 * b21 + a23 * b22;\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged last row\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n\n return out;\n}\n/**\n * Rotates a matrix by the given angle around the X axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function rotateX(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a10 = a[4];\n var a11 = a[5];\n var a12 = a[6];\n var a13 = a[7];\n var a20 = a[8];\n var a21 = a[9];\n var a22 = a[10];\n var a23 = a[11];\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged rows\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n\n out[4] = a10 * c + a20 * s;\n out[5] = a11 * c + a21 * s;\n out[6] = a12 * c + a22 * s;\n out[7] = a13 * c + a23 * s;\n out[8] = a20 * c - a10 * s;\n out[9] = a21 * c - a11 * s;\n out[10] = a22 * c - a12 * s;\n out[11] = a23 * c - a13 * s;\n return out;\n}\n/**\n * Rotates a matrix by the given angle around the Y axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function rotateY(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a00 = a[0];\n var a01 = a[1];\n var a02 = a[2];\n var a03 = a[3];\n var a20 = a[8];\n var a21 = a[9];\n var a22 = a[10];\n var a23 = a[11];\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged rows\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n\n out[0] = a00 * c - a20 * s;\n out[1] = a01 * c - a21 * s;\n out[2] = a02 * c - a22 * s;\n out[3] = a03 * c - a23 * s;\n out[8] = a00 * s + a20 * c;\n out[9] = a01 * s + a21 * c;\n out[10] = a02 * s + a22 * c;\n out[11] = a03 * s + a23 * c;\n return out;\n}\n/**\n * Rotates a matrix by the given angle around the Z axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function rotateZ(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a00 = a[0];\n var a01 = a[1];\n var a02 = a[2];\n var a03 = a[3];\n var a10 = a[4];\n var a11 = a[5];\n var a12 = a[6];\n var a13 = a[7];\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged last row\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n\n out[0] = a00 * c + a10 * s;\n out[1] = a01 * c + a11 * s;\n out[2] = a02 * c + a12 * s;\n out[3] = a03 * c + a13 * s;\n out[4] = a10 * c - a00 * s;\n out[5] = a11 * c - a01 * s;\n out[6] = a12 * c - a02 * s;\n out[7] = a13 * c - a03 * s;\n return out;\n}\n/**\n * Creates a matrix from a vector translation\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, dest, vec);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {ReadonlyVec3} v Translation vector\n * @returns {mat4} out\n */\n\nexport function fromTranslation(out, v) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a vector scaling\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.scale(dest, dest, vec);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {ReadonlyVec3} v Scaling vector\n * @returns {mat4} out\n */\n\nexport function fromScaling(out, v) {\n out[0] = v[0];\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = v[1];\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = v[2];\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a given angle around a given axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotate(dest, dest, rad, axis);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @param {ReadonlyVec3} axis the axis to rotate around\n * @returns {mat4} out\n */\n\nexport function fromRotation(out, rad, axis) {\n var x = axis[0],\n y = axis[1],\n z = axis[2];\n var len = Math.hypot(x, y, z);\n var s, c, t;\n\n if (len < glMatrix.EPSILON) {\n return null;\n }\n\n len = 1 / len;\n x *= len;\n y *= len;\n z *= len;\n s = Math.sin(rad);\n c = Math.cos(rad);\n t = 1 - c; // Perform rotation-specific matrix multiplication\n\n out[0] = x * x * t + c;\n out[1] = y * x * t + z * s;\n out[2] = z * x * t - y * s;\n out[3] = 0;\n out[4] = x * y * t - z * s;\n out[5] = y * y * t + c;\n out[6] = z * y * t + x * s;\n out[7] = 0;\n out[8] = x * z * t + y * s;\n out[9] = y * z * t - x * s;\n out[10] = z * z * t + c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from the given angle around the X axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotateX(dest, dest, rad);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function fromXRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = c;\n out[6] = s;\n out[7] = 0;\n out[8] = 0;\n out[9] = -s;\n out[10] = c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from the given angle around the Y axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotateY(dest, dest, rad);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function fromYRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = c;\n out[1] = 0;\n out[2] = -s;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = s;\n out[9] = 0;\n out[10] = c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from the given angle around the Z axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotateZ(dest, dest, rad);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function fromZRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = c;\n out[1] = s;\n out[2] = 0;\n out[3] = 0;\n out[4] = -s;\n out[5] = c;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a quaternion rotation and vector translation\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, vec);\n * let quatMat = mat4.create();\n * quat4.toMat4(quat, quatMat);\n * mat4.multiply(dest, quatMat);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @param {ReadonlyVec3} v Translation vector\n * @returns {mat4} out\n */\n\nexport function fromRotationTranslation(out, q, v) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - (yy + zz);\n out[1] = xy + wz;\n out[2] = xz - wy;\n out[3] = 0;\n out[4] = xy - wz;\n out[5] = 1 - (xx + zz);\n out[6] = yz + wx;\n out[7] = 0;\n out[8] = xz + wy;\n out[9] = yz - wx;\n out[10] = 1 - (xx + yy);\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\n * Creates a new mat4 from a dual quat.\n *\n * @param {mat4} out Matrix\n * @param {ReadonlyQuat2} a Dual Quaternion\n * @returns {mat4} mat4 receiving operation result\n */\n\nexport function fromQuat2(out, a) {\n var translation = new glMatrix.ARRAY_TYPE(3);\n var bx = -a[0],\n by = -a[1],\n bz = -a[2],\n bw = a[3],\n ax = a[4],\n ay = a[5],\n az = a[6],\n aw = a[7];\n var magnitude = bx * bx + by * by + bz * bz + bw * bw; //Only scale if it makes sense\n\n if (magnitude > 0) {\n translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2 / magnitude;\n translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2 / magnitude;\n translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2 / magnitude;\n } else {\n translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2;\n translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2;\n translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2;\n }\n\n fromRotationTranslation(out, a, translation);\n return out;\n}\n/**\n * Returns the translation vector component of a transformation\n * matrix. If a matrix is built with fromRotationTranslation,\n * the returned vector will be the same as the translation vector\n * originally supplied.\n * @param {vec3} out Vector to receive translation component\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\n * @return {vec3} out\n */\n\nexport function getTranslation(out, mat) {\n out[0] = mat[12];\n out[1] = mat[13];\n out[2] = mat[14];\n return out;\n}\n/**\n * Returns the scaling factor component of a transformation\n * matrix. If a matrix is built with fromRotationTranslationScale\n * with a normalized Quaternion paramter, the returned vector will be\n * the same as the scaling vector\n * originally supplied.\n * @param {vec3} out Vector to receive scaling factor component\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\n * @return {vec3} out\n */\n\nexport function getScaling(out, mat) {\n var m11 = mat[0];\n var m12 = mat[1];\n var m13 = mat[2];\n var m21 = mat[4];\n var m22 = mat[5];\n var m23 = mat[6];\n var m31 = mat[8];\n var m32 = mat[9];\n var m33 = mat[10];\n out[0] = Math.hypot(m11, m12, m13);\n out[1] = Math.hypot(m21, m22, m23);\n out[2] = Math.hypot(m31, m32, m33);\n return out;\n}\n/**\n * Returns a quaternion representing the rotational component\n * of a transformation matrix. If a matrix is built with\n * fromRotationTranslation, the returned quaternion will be the\n * same as the quaternion originally supplied.\n * @param {quat} out Quaternion to receive the rotation component\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\n * @return {quat} out\n */\n\nexport function getRotation(out, mat) {\n var scaling = new glMatrix.ARRAY_TYPE(3);\n getScaling(scaling, mat);\n var is1 = 1 / scaling[0];\n var is2 = 1 / scaling[1];\n var is3 = 1 / scaling[2];\n var sm11 = mat[0] * is1;\n var sm12 = mat[1] * is2;\n var sm13 = mat[2] * is3;\n var sm21 = mat[4] * is1;\n var sm22 = mat[5] * is2;\n var sm23 = mat[6] * is3;\n var sm31 = mat[8] * is1;\n var sm32 = mat[9] * is2;\n var sm33 = mat[10] * is3;\n var trace = sm11 + sm22 + sm33;\n var S = 0;\n\n if (trace > 0) {\n S = Math.sqrt(trace + 1.0) * 2;\n out[3] = 0.25 * S;\n out[0] = (sm23 - sm32) / S;\n out[1] = (sm31 - sm13) / S;\n out[2] = (sm12 - sm21) / S;\n } else if (sm11 > sm22 && sm11 > sm33) {\n S = Math.sqrt(1.0 + sm11 - sm22 - sm33) * 2;\n out[3] = (sm23 - sm32) / S;\n out[0] = 0.25 * S;\n out[1] = (sm12 + sm21) / S;\n out[2] = (sm31 + sm13) / S;\n } else if (sm22 > sm33) {\n S = Math.sqrt(1.0 + sm22 - sm11 - sm33) * 2;\n out[3] = (sm31 - sm13) / S;\n out[0] = (sm12 + sm21) / S;\n out[1] = 0.25 * S;\n out[2] = (sm23 + sm32) / S;\n } else {\n S = Math.sqrt(1.0 + sm33 - sm11 - sm22) * 2;\n out[3] = (sm12 - sm21) / S;\n out[0] = (sm31 + sm13) / S;\n out[1] = (sm23 + sm32) / S;\n out[2] = 0.25 * S;\n }\n\n return out;\n}\n/**\n * Creates a matrix from a quaternion rotation, vector translation and vector scale\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, vec);\n * let quatMat = mat4.create();\n * quat4.toMat4(quat, quatMat);\n * mat4.multiply(dest, quatMat);\n * mat4.scale(dest, scale)\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @param {ReadonlyVec3} v Translation vector\n * @param {ReadonlyVec3} s Scaling vector\n * @returns {mat4} out\n */\n\nexport function fromRotationTranslationScale(out, q, v, s) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n var sx = s[0];\n var sy = s[1];\n var sz = s[2];\n out[0] = (1 - (yy + zz)) * sx;\n out[1] = (xy + wz) * sx;\n out[2] = (xz - wy) * sx;\n out[3] = 0;\n out[4] = (xy - wz) * sy;\n out[5] = (1 - (xx + zz)) * sy;\n out[6] = (yz + wx) * sy;\n out[7] = 0;\n out[8] = (xz + wy) * sz;\n out[9] = (yz - wx) * sz;\n out[10] = (1 - (xx + yy)) * sz;\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a quaternion rotation, vector translation and vector scale, rotating and scaling around the given origin\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, vec);\n * mat4.translate(dest, origin);\n * let quatMat = mat4.create();\n * quat4.toMat4(quat, quatMat);\n * mat4.multiply(dest, quatMat);\n * mat4.scale(dest, scale)\n * mat4.translate(dest, negativeOrigin);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @param {ReadonlyVec3} v Translation vector\n * @param {ReadonlyVec3} s Scaling vector\n * @param {ReadonlyVec3} o The origin vector around which to scale and rotate\n * @returns {mat4} out\n */\n\nexport function fromRotationTranslationScaleOrigin(out, q, v, s, o) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n var sx = s[0];\n var sy = s[1];\n var sz = s[2];\n var ox = o[0];\n var oy = o[1];\n var oz = o[2];\n var out0 = (1 - (yy + zz)) * sx;\n var out1 = (xy + wz) * sx;\n var out2 = (xz - wy) * sx;\n var out4 = (xy - wz) * sy;\n var out5 = (1 - (xx + zz)) * sy;\n var out6 = (yz + wx) * sy;\n var out8 = (xz + wy) * sz;\n var out9 = (yz - wx) * sz;\n var out10 = (1 - (xx + yy)) * sz;\n out[0] = out0;\n out[1] = out1;\n out[2] = out2;\n out[3] = 0;\n out[4] = out4;\n out[5] = out5;\n out[6] = out6;\n out[7] = 0;\n out[8] = out8;\n out[9] = out9;\n out[10] = out10;\n out[11] = 0;\n out[12] = v[0] + ox - (out0 * ox + out4 * oy + out8 * oz);\n out[13] = v[1] + oy - (out1 * ox + out5 * oy + out9 * oz);\n out[14] = v[2] + oz - (out2 * ox + out6 * oy + out10 * oz);\n out[15] = 1;\n return out;\n}\n/**\n * Calculates a 4x4 matrix from the given quaternion\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {ReadonlyQuat} q Quaternion to create matrix from\n *\n * @returns {mat4} out\n */\n\nexport function fromQuat(out, q) {\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var yx = y * x2;\n var yy = y * y2;\n var zx = z * x2;\n var zy = z * y2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - yy - zz;\n out[1] = yx + wz;\n out[2] = zx - wy;\n out[3] = 0;\n out[4] = yx - wz;\n out[5] = 1 - xx - zz;\n out[6] = zy + wx;\n out[7] = 0;\n out[8] = zx + wy;\n out[9] = zy - wx;\n out[10] = 1 - xx - yy;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Generates a frustum matrix with the given bounds\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {Number} left Left bound of the frustum\n * @param {Number} right Right bound of the frustum\n * @param {Number} bottom Bottom bound of the frustum\n * @param {Number} top Top bound of the frustum\n * @param {Number} near Near bound of the frustum\n * @param {Number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function frustum(out, left, right, bottom, top, near, far) {\n var rl = 1 / (right - left);\n var tb = 1 / (top - bottom);\n var nf = 1 / (near - far);\n out[0] = near * 2 * rl;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = near * 2 * tb;\n out[6] = 0;\n out[7] = 0;\n out[8] = (right + left) * rl;\n out[9] = (top + bottom) * tb;\n out[10] = (far + near) * nf;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[14] = far * near * 2 * nf;\n out[15] = 0;\n return out;\n}\n/**\n * Generates a perspective projection matrix with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [-1, 1],\n * which matches WebGL/OpenGL's clip volume.\n * Passing null/undefined/no value for far will generate infinite projection matrix.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} fovy Vertical field of view in radians\n * @param {number} aspect Aspect ratio. typically viewport width/height\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum, can be null or Infinity\n * @returns {mat4} out\n */\n\nexport function perspectiveNO(out, fovy, aspect, near, far) {\n var f = 1.0 / Math.tan(fovy / 2),\n nf;\n out[0] = f / aspect;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = f;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[15] = 0;\n\n if (far != null && far !== Infinity) {\n nf = 1 / (near - far);\n out[10] = (far + near) * nf;\n out[14] = 2 * far * near * nf;\n } else {\n out[10] = -1;\n out[14] = -2 * near;\n }\n\n return out;\n}\n/**\n * Alias for {@link mat4.perspectiveNO}\n * @function\n */\n\nexport var perspective = perspectiveNO;\n/**\n * Generates a perspective projection matrix suitable for WebGPU with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [0, 1],\n * which matches WebGPU/Vulkan/DirectX/Metal's clip volume.\n * Passing null/undefined/no value for far will generate infinite projection matrix.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} fovy Vertical field of view in radians\n * @param {number} aspect Aspect ratio. typically viewport width/height\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum, can be null or Infinity\n * @returns {mat4} out\n */\n\nexport function perspectiveZO(out, fovy, aspect, near, far) {\n var f = 1.0 / Math.tan(fovy / 2),\n nf;\n out[0] = f / aspect;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = f;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[15] = 0;\n\n if (far != null && far !== Infinity) {\n nf = 1 / (near - far);\n out[10] = far * nf;\n out[14] = far * near * nf;\n } else {\n out[10] = -1;\n out[14] = -near;\n }\n\n return out;\n}\n/**\n * Generates a perspective projection matrix with the given field of view.\n * This is primarily useful for generating projection matrices to be used\n * with the still experiemental WebVR API.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {Object} fov Object containing the following values: upDegrees, downDegrees, leftDegrees, rightDegrees\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function perspectiveFromFieldOfView(out, fov, near, far) {\n var upTan = Math.tan(fov.upDegrees * Math.PI / 180.0);\n var downTan = Math.tan(fov.downDegrees * Math.PI / 180.0);\n var leftTan = Math.tan(fov.leftDegrees * Math.PI / 180.0);\n var rightTan = Math.tan(fov.rightDegrees * Math.PI / 180.0);\n var xScale = 2.0 / (leftTan + rightTan);\n var yScale = 2.0 / (upTan + downTan);\n out[0] = xScale;\n out[1] = 0.0;\n out[2] = 0.0;\n out[3] = 0.0;\n out[4] = 0.0;\n out[5] = yScale;\n out[6] = 0.0;\n out[7] = 0.0;\n out[8] = -((leftTan - rightTan) * xScale * 0.5);\n out[9] = (upTan - downTan) * yScale * 0.5;\n out[10] = far / (near - far);\n out[11] = -1.0;\n out[12] = 0.0;\n out[13] = 0.0;\n out[14] = far * near / (near - far);\n out[15] = 0.0;\n return out;\n}\n/**\n * Generates a orthogonal projection matrix with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [-1, 1],\n * which matches WebGL/OpenGL's clip volume.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} left Left bound of the frustum\n * @param {number} right Right bound of the frustum\n * @param {number} bottom Bottom bound of the frustum\n * @param {number} top Top bound of the frustum\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function orthoNO(out, left, right, bottom, top, near, far) {\n var lr = 1 / (left - right);\n var bt = 1 / (bottom - top);\n var nf = 1 / (near - far);\n out[0] = -2 * lr;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = -2 * bt;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 2 * nf;\n out[11] = 0;\n out[12] = (left + right) * lr;\n out[13] = (top + bottom) * bt;\n out[14] = (far + near) * nf;\n out[15] = 1;\n return out;\n}\n/**\n * Alias for {@link mat4.orthoNO}\n * @function\n */\n\nexport var ortho = orthoNO;\n/**\n * Generates a orthogonal projection matrix with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [0, 1],\n * which matches WebGPU/Vulkan/DirectX/Metal's clip volume.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} left Left bound of the frustum\n * @param {number} right Right bound of the frustum\n * @param {number} bottom Bottom bound of the frustum\n * @param {number} top Top bound of the frustum\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function orthoZO(out, left, right, bottom, top, near, far) {\n var lr = 1 / (left - right);\n var bt = 1 / (bottom - top);\n var nf = 1 / (near - far);\n out[0] = -2 * lr;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = -2 * bt;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = nf;\n out[11] = 0;\n out[12] = (left + right) * lr;\n out[13] = (top + bottom) * bt;\n out[14] = near * nf;\n out[15] = 1;\n return out;\n}\n/**\n * Generates a look-at matrix with the given eye position, focal point, and up axis.\n * If you want a matrix that actually makes an object look at another object, you should use targetTo instead.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {ReadonlyVec3} eye Position of the viewer\n * @param {ReadonlyVec3} center Point the viewer is looking at\n * @param {ReadonlyVec3} up vec3 pointing up\n * @returns {mat4} out\n */\n\nexport function lookAt(out, eye, center, up) {\n var x0, x1, x2, y0, y1, y2, z0, z1, z2, len;\n var eyex = eye[0];\n var eyey = eye[1];\n var eyez = eye[2];\n var upx = up[0];\n var upy = up[1];\n var upz = up[2];\n var centerx = center[0];\n var centery = center[1];\n var centerz = center[2];\n\n if (Math.abs(eyex - centerx) < glMatrix.EPSILON && Math.abs(eyey - centery) < glMatrix.EPSILON && Math.abs(eyez - centerz) < glMatrix.EPSILON) {\n return identity(out);\n }\n\n z0 = eyex - centerx;\n z1 = eyey - centery;\n z2 = eyez - centerz;\n len = 1 / Math.hypot(z0, z1, z2);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n x0 = upy * z2 - upz * z1;\n x1 = upz * z0 - upx * z2;\n x2 = upx * z1 - upy * z0;\n len = Math.hypot(x0, x1, x2);\n\n if (!len) {\n x0 = 0;\n x1 = 0;\n x2 = 0;\n } else {\n len = 1 / len;\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n\n y0 = z1 * x2 - z2 * x1;\n y1 = z2 * x0 - z0 * x2;\n y2 = z0 * x1 - z1 * x0;\n len = Math.hypot(y0, y1, y2);\n\n if (!len) {\n y0 = 0;\n y1 = 0;\n y2 = 0;\n } else {\n len = 1 / len;\n y0 *= len;\n y1 *= len;\n y2 *= len;\n }\n\n out[0] = x0;\n out[1] = y0;\n out[2] = z0;\n out[3] = 0;\n out[4] = x1;\n out[5] = y1;\n out[6] = z1;\n out[7] = 0;\n out[8] = x2;\n out[9] = y2;\n out[10] = z2;\n out[11] = 0;\n out[12] = -(x0 * eyex + x1 * eyey + x2 * eyez);\n out[13] = -(y0 * eyex + y1 * eyey + y2 * eyez);\n out[14] = -(z0 * eyex + z1 * eyey + z2 * eyez);\n out[15] = 1;\n return out;\n}\n/**\n * Generates a matrix that makes something look at something else.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {ReadonlyVec3} eye Position of the viewer\n * @param {ReadonlyVec3} center Point the viewer is looking at\n * @param {ReadonlyVec3} up vec3 pointing up\n * @returns {mat4} out\n */\n\nexport function targetTo(out, eye, target, up) {\n var eyex = eye[0],\n eyey = eye[1],\n eyez = eye[2],\n upx = up[0],\n upy = up[1],\n upz = up[2];\n var z0 = eyex - target[0],\n z1 = eyey - target[1],\n z2 = eyez - target[2];\n var len = z0 * z0 + z1 * z1 + z2 * z2;\n\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n }\n\n var x0 = upy * z2 - upz * z1,\n x1 = upz * z0 - upx * z2,\n x2 = upx * z1 - upy * z0;\n len = x0 * x0 + x1 * x1 + x2 * x2;\n\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n\n out[0] = x0;\n out[1] = x1;\n out[2] = x2;\n out[3] = 0;\n out[4] = z1 * x2 - z2 * x1;\n out[5] = z2 * x0 - z0 * x2;\n out[6] = z0 * x1 - z1 * x0;\n out[7] = 0;\n out[8] = z0;\n out[9] = z1;\n out[10] = z2;\n out[11] = 0;\n out[12] = eyex;\n out[13] = eyey;\n out[14] = eyez;\n out[15] = 1;\n return out;\n}\n/**\n * Returns a string representation of a mat4\n *\n * @param {ReadonlyMat4} a matrix to represent as a string\n * @returns {String} string representation of the matrix\n */\n\nexport function str(a) {\n return \"mat4(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \", \" + a[4] + \", \" + a[5] + \", \" + a[6] + \", \" + a[7] + \", \" + a[8] + \", \" + a[9] + \", \" + a[10] + \", \" + a[11] + \", \" + a[12] + \", \" + a[13] + \", \" + a[14] + \", \" + a[15] + \")\";\n}\n/**\n * Returns Frobenius norm of a mat4\n *\n * @param {ReadonlyMat4} a the matrix to calculate Frobenius norm of\n * @returns {Number} Frobenius norm\n */\n\nexport function frob(a) {\n return Math.hypot(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]);\n}\n/**\n * Adds two mat4's\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n out[4] = a[4] + b[4];\n out[5] = a[5] + b[5];\n out[6] = a[6] + b[6];\n out[7] = a[7] + b[7];\n out[8] = a[8] + b[8];\n out[9] = a[9] + b[9];\n out[10] = a[10] + b[10];\n out[11] = a[11] + b[11];\n out[12] = a[12] + b[12];\n out[13] = a[13] + b[13];\n out[14] = a[14] + b[14];\n out[15] = a[15] + b[15];\n return out;\n}\n/**\n * Subtracts matrix b from matrix a\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n out[4] = a[4] - b[4];\n out[5] = a[5] - b[5];\n out[6] = a[6] - b[6];\n out[7] = a[7] - b[7];\n out[8] = a[8] - b[8];\n out[9] = a[9] - b[9];\n out[10] = a[10] - b[10];\n out[11] = a[11] - b[11];\n out[12] = a[12] - b[12];\n out[13] = a[13] - b[13];\n out[14] = a[14] - b[14];\n out[15] = a[15] - b[15];\n return out;\n}\n/**\n * Multiply each element of the matrix by a scalar.\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to scale\n * @param {Number} b amount to scale the matrix's elements by\n * @returns {mat4} out\n */\n\nexport function multiplyScalar(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n out[4] = a[4] * b;\n out[5] = a[5] * b;\n out[6] = a[6] * b;\n out[7] = a[7] * b;\n out[8] = a[8] * b;\n out[9] = a[9] * b;\n out[10] = a[10] * b;\n out[11] = a[11] * b;\n out[12] = a[12] * b;\n out[13] = a[13] * b;\n out[14] = a[14] * b;\n out[15] = a[15] * b;\n return out;\n}\n/**\n * Adds two mat4's after multiplying each element of the second operand by a scalar value.\n *\n * @param {mat4} out the receiving vector\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @param {Number} scale the amount to scale b's elements by before adding\n * @returns {mat4} out\n */\n\nexport function multiplyScalarAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n out[4] = a[4] + b[4] * scale;\n out[5] = a[5] + b[5] * scale;\n out[6] = a[6] + b[6] * scale;\n out[7] = a[7] + b[7] * scale;\n out[8] = a[8] + b[8] * scale;\n out[9] = a[9] + b[9] * scale;\n out[10] = a[10] + b[10] * scale;\n out[11] = a[11] + b[11] * scale;\n out[12] = a[12] + b[12] * scale;\n out[13] = a[13] + b[13] * scale;\n out[14] = a[14] + b[14] * scale;\n out[15] = a[15] + b[15] * scale;\n return out;\n}\n/**\n * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyMat4} a The first matrix.\n * @param {ReadonlyMat4} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5] && a[6] === b[6] && a[7] === b[7] && a[8] === b[8] && a[9] === b[9] && a[10] === b[10] && a[11] === b[11] && a[12] === b[12] && a[13] === b[13] && a[14] === b[14] && a[15] === b[15];\n}\n/**\n * Returns whether or not the matrices have approximately the same elements in the same position.\n *\n * @param {ReadonlyMat4} a The first matrix.\n * @param {ReadonlyMat4} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3];\n var a4 = a[4],\n a5 = a[5],\n a6 = a[6],\n a7 = a[7];\n var a8 = a[8],\n a9 = a[9],\n a10 = a[10],\n a11 = a[11];\n var a12 = a[12],\n a13 = a[13],\n a14 = a[14],\n a15 = a[15];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3];\n var b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7];\n var b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11];\n var b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) && Math.abs(a4 - b4) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) && Math.abs(a5 - b5) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5)) && Math.abs(a6 - b6) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a6), Math.abs(b6)) && Math.abs(a7 - b7) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a7), Math.abs(b7)) && Math.abs(a8 - b8) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a8), Math.abs(b8)) && Math.abs(a9 - b9) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a9), Math.abs(b9)) && Math.abs(a10 - b10) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a10), Math.abs(b10)) && Math.abs(a11 - b11) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a11), Math.abs(b11)) && Math.abs(a12 - b12) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a12), Math.abs(b12)) && Math.abs(a13 - b13) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a13), Math.abs(b13)) && Math.abs(a14 - b14) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a14), Math.abs(b14)) && Math.abs(a15 - b15) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a15), Math.abs(b15));\n}\n/**\n * Alias for {@link mat4.multiply}\n * @function\n */\n\nexport var mul = multiply;\n/**\n * Alias for {@link mat4.subtract}\n * @function\n */\n\nexport var sub = subtract;","import { mat4 } from \"gl-matrix\";\nexport const setProjectionMatrix = (projectionMatrix, gl, cameraZoom, cameraPosition) => {\n projectionMatrix = mat4.identity(projectionMatrix);\n mat4.ortho(projectionMatrix, -gl.canvas.width / 2, gl.canvas.width / 2, -gl.canvas.height / 2, gl.canvas.height / 2, -1, 1);\n mat4.scale(projectionMatrix, projectionMatrix, [cameraZoom !== null && cameraZoom !== void 0 ? cameraZoom : 1, cameraZoom !== null && cameraZoom !== void 0 ? cameraZoom : 1, 1]);\n mat4.translate(projectionMatrix, projectionMatrix, [-cameraPosition.x, -cameraPosition.y, 0]);\n};\nexport const hexToRgba = (hex) => {\n const result = /^#?([a-f\\d]{2})?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result\n ? {\n r: parseInt(result[2], 16) / 256,\n g: parseInt(result[3], 16) / 256,\n b: parseInt(result[4], 16) / 256,\n a: result[1] !== undefined ? parseInt(result[1], 16) / 256 : 1,\n }\n : null;\n};\n//# sourceMappingURL=utils.js.map","import { hexToRgba } from \"./utils\";\nexport class CanvasColorRenderer {\n constructor(gl) {\n this.gl = gl;\n }\n render(hexColor) {\n const rgb = hexToRgba(hexColor);\n this.gl.clearColor(rgb.r, rgb.g, rgb.b, rgb.a);\n this.gl.clear(this.gl.COLOR_BUFFER_BIT);\n }\n}\n//# sourceMappingURL=CanvasColorRenderer.js.map","export var RenderDataType;\n(function (RenderDataType) {\n RenderDataType[RenderDataType[\"Sprite\"] = 0] = \"Sprite\";\n RenderDataType[RenderDataType[\"Text\"] = 1] = \"Text\";\n RenderDataType[RenderDataType[\"Tilemap\"] = 2] = \"Tilemap\";\n RenderDataType[RenderDataType[\"Mask\"] = 3] = \"Mask\";\n RenderDataType[RenderDataType[\"Geometric\"] = 4] = \"Geometric\";\n RenderDataType[RenderDataType[\"Video\"] = 5] = \"Video\";\n RenderDataType[RenderDataType[\"Darkness\"] = 6] = \"Darkness\";\n})(RenderDataType || (RenderDataType = {}));\n//# sourceMappingURL=Renderer.js.map","import { mat4 } from \"gl-matrix\";\nimport { RenderDataType } from \"./Renderer\";\nimport { range } from \"@angry-pixel/math\";\nimport { hexToRgba, setProjectionMatrix } from \"./utils\";\nconst CIRCUMFERENCE_VERTICES = 60;\nexport var GeometricShape;\n(function (GeometricShape) {\n GeometricShape[GeometricShape[\"Polygon\"] = 0] = \"Polygon\";\n GeometricShape[GeometricShape[\"Circumference\"] = 1] = \"Circumference\";\n GeometricShape[GeometricShape[\"Line\"] = 2] = \"Line\";\n})(GeometricShape || (GeometricShape = {}));\nexport class GeometricRenderer {\n constructor(gl, programManager) {\n this.gl = gl;\n this.programManager = programManager;\n this.projectionMatrix = mat4.create();\n this.modelMatrix = mat4.create();\n this.textureMatrix = mat4.create();\n this.circumferencePositionBuffer = this.gl.createBuffer();\n this.linesPositionBuffer = this.gl.createBuffer();\n // circumference position buffer\n const angle = (2 * Math.PI) / CIRCUMFERENCE_VERTICES;\n const vertices = new Float32Array(range(1, CIRCUMFERENCE_VERTICES, 1).reduce((v, i) => [...v, Math.cos(i * angle), Math.sin(i * angle)], []));\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.circumferencePositionBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, vertices, this.gl.STATIC_DRAW);\n }\n render(renderData, cameraData, lastRender) {\n this.gl.disableVertexAttribArray(this.programManager.texCoordsAttr);\n switch (renderData.shape) {\n case GeometricShape.Polygon:\n this.renderLines(renderData, cameraData, this.gl.LINE_LOOP);\n break;\n case GeometricShape.Line:\n this.renderLines(renderData, cameraData, this.gl.LINES);\n break;\n case GeometricShape.Circumference:\n this.renderCircumference(renderData, cameraData, lastRender);\n break;\n default:\n return false;\n }\n return true;\n }\n renderLines(renderData, cameraData, mode) {\n var _a;\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.linesPositionBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, new Float32Array(renderData.vertexModel.reduce((a, v) => [...a, v.x, v.y], [])), this.gl.DYNAMIC_DRAW);\n this.gl.enableVertexAttribArray(this.programManager.positionCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.positionCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n this.modelMatrix = mat4.identity(this.modelMatrix);\n mat4.translate(this.modelMatrix, this.modelMatrix, [renderData.position.x, renderData.position.y, 0]);\n mat4.rotateZ(this.modelMatrix, this.modelMatrix, (_a = renderData.rotation) !== null && _a !== void 0 ? _a : 0);\n setProjectionMatrix(this.projectionMatrix, this.gl, cameraData.zoom, cameraData.position);\n this.gl.uniformMatrix4fv(this.programManager.projectionMatrixUniform, false, this.projectionMatrix);\n this.gl.uniformMatrix4fv(this.programManager.modelMatrixUniform, false, this.modelMatrix);\n this.gl.uniformMatrix4fv(this.programManager.textureMatrixUniform, false, this.textureMatrix);\n this.gl.uniform1i(this.programManager.renderTextureUniform, 0);\n const { r, g, b, a } = hexToRgba(renderData.color);\n this.gl.uniform4f(this.programManager.solidColorUniform, r, g, b, a);\n this.gl.uniform1f(this.programManager.alphaUniform, 1);\n this.gl.drawArrays(mode, 0, renderData.vertexModel.length);\n this.lastShape = \"polygon\";\n }\n renderCircumference(renderData, cameraData, lastRender) {\n if (lastRender !== RenderDataType.Geometric || this.lastShape !== \"circumference\") {\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.circumferencePositionBuffer);\n this.gl.enableVertexAttribArray(this.programManager.positionCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.positionCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n }\n this.modelMatrix = mat4.identity(this.modelMatrix);\n mat4.translate(this.modelMatrix, this.modelMatrix, [renderData.position.x, renderData.position.y, 0]);\n mat4.scale(this.modelMatrix, this.modelMatrix, [renderData.radius, renderData.radius, 1]);\n setProjectionMatrix(this.projectionMatrix, this.gl, cameraData.zoom, cameraData.position);\n this.gl.uniformMatrix4fv(this.programManager.projectionMatrixUniform, false, this.projectionMatrix);\n this.gl.uniformMatrix4fv(this.programManager.modelMatrixUniform, false, this.modelMatrix);\n this.gl.uniformMatrix4fv(this.programManager.textureMatrixUniform, false, this.textureMatrix);\n this.gl.uniform1i(this.programManager.renderTextureUniform, 0);\n const { r, g, b, a } = hexToRgba(renderData.color);\n this.gl.uniform4f(this.programManager.solidColorUniform, r, g, b, a);\n this.gl.uniform1f(this.programManager.alphaUniform, 1);\n this.gl.drawArrays(this.gl.LINE_LOOP, 0, CIRCUMFERENCE_VERTICES);\n this.lastShape = \"circumference\";\n }\n}\n//# sourceMappingURL=GeometricRenderer.js.map","import { mat4 } from \"gl-matrix\";\nimport { hexToRgba, setProjectionMatrix } from \"./utils\";\nimport { RenderDataType } from \"./Renderer\";\n/**\n * Mask shape: Rectangle or Circumference.\n * @category Components Configuration\n * @public\n */\nexport var MaskShape;\n(function (MaskShape) {\n MaskShape[MaskShape[\"Rectangle\"] = 0] = \"Rectangle\";\n MaskShape[MaskShape[\"Circumference\"] = 1] = \"Circumference\";\n MaskShape[MaskShape[\"Polygon\"] = 2] = \"Polygon\";\n})(MaskShape || (MaskShape = {}));\nconst CIRCUMFERENCE_VERTICES = 60;\nexport class MaskRenderer {\n constructor(gl, programManager) {\n this.gl = gl;\n this.programManager = programManager;\n this.type = RenderDataType.Mask;\n this.projectionMatrix = mat4.create();\n this.modelMatrix = mat4.create();\n this.textureMatrix = mat4.create();\n this.circumferencePositionBuffer = this.gl.createBuffer();\n this.rectanglePositionBuffer = this.gl.createBuffer();\n this.polygonPositionBuffer = this.gl.createBuffer();\n // circumference position buffer\n const angle = (2 * Math.PI) / CIRCUMFERENCE_VERTICES;\n const vertices = [0, 0];\n for (let i = 0; i <= CIRCUMFERENCE_VERTICES; i++) {\n vertices.push(Math.cos(i * angle), Math.sin(i * angle));\n }\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.circumferencePositionBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, new Float32Array(vertices), this.gl.STATIC_DRAW);\n // rectangle position buffer\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.rectanglePositionBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, new Float32Array([-0.5, -0.5, -0.5, 0.5, 0.5, -0.5, 0.5, -0.5, -0.5, 0.5, 0.5, 0.5]), this.gl.STATIC_DRAW);\n }\n render(renderData, cameraData, lastRender) {\n this.gl.disableVertexAttribArray(this.programManager.texCoordsAttr);\n if (renderData.shape === MaskShape.Rectangle) {\n this.renderRectangle(renderData, cameraData, lastRender);\n }\n else if (renderData.shape === MaskShape.Circumference) {\n this.renderCircumference(renderData, cameraData, lastRender);\n }\n else if (renderData.shape === MaskShape.Polygon) {\n this.renderPolygon(renderData, cameraData, lastRender);\n }\n this.lastShape = renderData.shape;\n return true;\n }\n renderRectangle(renderData, cameraData, lastRender) {\n var _a, _b;\n if (lastRender !== RenderDataType.Mask || this.lastShape !== MaskShape.Rectangle) {\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.rectanglePositionBuffer);\n this.gl.enableVertexAttribArray(this.programManager.positionCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.positionCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n }\n this.modelMatrix = mat4.identity(this.modelMatrix);\n mat4.translate(this.modelMatrix, this.modelMatrix, [renderData.position.x, renderData.position.y, 0]);\n mat4.rotateZ(this.modelMatrix, this.modelMatrix, (_a = renderData.rotation) !== null && _a !== void 0 ? _a : 0);\n mat4.scale(this.modelMatrix, this.modelMatrix, [renderData.width, renderData.height, 1]);\n setProjectionMatrix(this.projectionMatrix, this.gl, cameraData.zoom, cameraData.position);\n this.gl.uniformMatrix4fv(this.programManager.projectionMatrixUniform, false, this.projectionMatrix);\n this.gl.uniformMatrix4fv(this.programManager.modelMatrixUniform, false, this.modelMatrix);\n this.gl.uniformMatrix4fv(this.programManager.textureMatrixUniform, false, this.textureMatrix);\n if (renderData.opacity >= 0 && renderData.opacity < 1) {\n this.gl.enable(this.gl.BLEND);\n }\n else {\n this.gl.disable(this.gl.BLEND);\n }\n this.gl.uniform1i(this.programManager.renderTextureUniform, 0);\n const { r, g, b, a } = hexToRgba(renderData.color);\n this.gl.uniform4f(this.programManager.solidColorUniform, r, g, b, a);\n this.gl.uniform1f(this.programManager.alphaUniform, (_b = renderData.opacity) !== null && _b !== void 0 ? _b : 1);\n this.gl.drawArrays(this.gl.TRIANGLES, 0, 6);\n }\n renderCircumference(renderData, cameraData, lastRender) {\n var _a, _b;\n if (lastRender !== RenderDataType.Mask || this.lastShape !== MaskShape.Circumference) {\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.circumferencePositionBuffer);\n this.gl.enableVertexAttribArray(this.programManager.positionCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.positionCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n }\n this.modelMatrix = mat4.identity(this.modelMatrix);\n mat4.translate(this.modelMatrix, this.modelMatrix, [renderData.position.x, renderData.position.y, 0]);\n mat4.rotateZ(this.modelMatrix, this.modelMatrix, (_a = renderData.rotation) !== null && _a !== void 0 ? _a : 0);\n mat4.scale(this.modelMatrix, this.modelMatrix, [renderData.radius, renderData.radius, 1]);\n setProjectionMatrix(this.projectionMatrix, this.gl, cameraData.zoom, cameraData.position);\n this.gl.uniformMatrix4fv(this.programManager.projectionMatrixUniform, false, this.projectionMatrix);\n this.gl.uniformMatrix4fv(this.programManager.modelMatrixUniform, false, this.modelMatrix);\n this.gl.uniformMatrix4fv(this.programManager.textureMatrixUniform, false, this.textureMatrix);\n if (renderData.opacity >= 0 && renderData.opacity < 1) {\n this.gl.enable(this.gl.BLEND);\n }\n else {\n this.gl.disable(this.gl.BLEND);\n }\n this.gl.uniform1i(this.programManager.renderTextureUniform, 0);\n const { r, g, b, a } = hexToRgba(renderData.color);\n this.gl.uniform4f(this.programManager.solidColorUniform, r, g, b, a);\n this.gl.uniform1f(this.programManager.alphaUniform, (_b = renderData.opacity) !== null && _b !== void 0 ? _b : 1);\n this.gl.drawArrays(this.gl.TRIANGLE_FAN, 0, CIRCUMFERENCE_VERTICES + 2);\n }\n renderPolygon(renderData, cameraData, lastRender) {\n var _a, _b;\n if (lastRender !== RenderDataType.Mask || this.lastShape !== MaskShape.Polygon) {\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.polygonPositionBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, new Float32Array(renderData.vertices.reduce((a, v) => [...a, v.x, v.y], [0, 0])), this.gl.DYNAMIC_DRAW);\n this.gl.enableVertexAttribArray(this.programManager.positionCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.positionCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n }\n this.modelMatrix = mat4.identity(this.modelMatrix);\n mat4.translate(this.modelMatrix, this.modelMatrix, [renderData.position.x, renderData.position.y, 0]);\n mat4.rotateZ(this.modelMatrix, this.modelMatrix, (_a = renderData.rotation) !== null && _a !== void 0 ? _a : 0);\n setProjectionMatrix(this.projectionMatrix, this.gl, cameraData.zoom, cameraData.position);\n this.gl.uniformMatrix4fv(this.programManager.projectionMatrixUniform, false, this.projectionMatrix);\n this.gl.uniformMatrix4fv(this.programManager.modelMatrixUniform, false, this.modelMatrix);\n this.gl.uniformMatrix4fv(this.programManager.textureMatrixUniform, false, this.textureMatrix);\n if (renderData.opacity >= 0 && renderData.opacity < 1) {\n this.gl.enable(this.gl.BLEND);\n }\n else {\n this.gl.disable(this.gl.BLEND);\n }\n this.gl.uniform1i(this.programManager.renderTextureUniform, 0);\n const { r, g, b, a } = hexToRgba(renderData.color);\n this.gl.uniform4f(this.programManager.solidColorUniform, r, g, b, a);\n this.gl.uniform1f(this.programManager.alphaUniform, (_b = renderData.opacity) !== null && _b !== void 0 ? _b : 1);\n this.gl.drawArrays(this.gl.TRIANGLE_FAN, 0, renderData.vertices.length + 1);\n }\n}\n//# sourceMappingURL=MaskRenderer.js.map","import { mat4 } from \"gl-matrix\";\nimport { RenderDataType } from \"./Renderer\";\nimport { hexToRgba, setProjectionMatrix } from \"./utils\";\nexport class DarknessRenderer {\n constructor(gl, programManager) {\n this.gl = gl;\n this.programManager = programManager;\n this.projectionMatrix = mat4.create();\n this.modelMatrix = mat4.create();\n this.textureMatrix = mat4.create();\n this.positionBuffer = this.gl.createBuffer();\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.positionBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, new Float32Array([-0.5, -0.5, -0.5, 0.5, 0.5, -0.5, 0.5, -0.5, -0.5, 0.5, 0.5, 0.5]), this.gl.STATIC_DRAW);\n }\n render(renderData, cameraData, lastRender) {\n var _a, _b;\n if (lastRender !== RenderDataType.Darkness) {\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.positionBuffer);\n this.gl.enableVertexAttribArray(this.programManager.positionCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.positionCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n this.gl.disableVertexAttribArray(this.programManager.texCoordsAttr);\n }\n this.modelMatrix = mat4.identity(this.modelMatrix);\n mat4.translate(this.modelMatrix, this.modelMatrix, [renderData.position.x, renderData.position.y, 0]);\n mat4.rotateZ(this.modelMatrix, this.modelMatrix, (_a = renderData.rotation) !== null && _a !== void 0 ? _a : 0);\n mat4.scale(this.modelMatrix, this.modelMatrix, [renderData.width, renderData.height, 1]);\n setProjectionMatrix(this.projectionMatrix, this.gl, cameraData.zoom, cameraData.position);\n this.gl.uniformMatrix4fv(this.programManager.projectionMatrixUniform, false, this.projectionMatrix);\n this.gl.uniformMatrix4fv(this.programManager.modelMatrixUniform, false, this.modelMatrix);\n this.gl.uniformMatrix4fv(this.programManager.textureMatrixUniform, false, this.textureMatrix);\n this.gl.enable(this.gl.BLEND);\n this.gl.uniform1i(this.programManager.renderTextureUniform, 0);\n this.gl.uniform1i(this.programManager.renderLightUniform, 1);\n const { r, g, b, a } = hexToRgba(renderData.color);\n this.gl.uniform4f(this.programManager.solidColorUniform, r, g, b, a);\n this.gl.uniform1f(this.programManager.alphaUniform, (_b = renderData.opacity) !== null && _b !== void 0 ? _b : 1);\n this.gl.uniform1i(this.programManager.numLightsUniform, renderData.lights.length);\n for (const [i, light] of renderData.lights.entries()) {\n if (i >= 64)\n break; // 64 is the max lights allowed\n this.gl.uniform2f(this.gl.getUniformLocation(this.programManager.program, `u_lights[${i}].position`), this.gl.canvas.width / 2 + (light.position.x - cameraData.position.x) * cameraData.zoom, this.gl.canvas.height / 2 + (light.position.y - cameraData.position.y) * cameraData.zoom);\n this.gl.uniform1f(this.gl.getUniformLocation(this.programManager.program, `u_lights[${i}].radius`), light.radius * cameraData.zoom);\n this.gl.uniform1f(this.gl.getUniformLocation(this.programManager.program, `u_lights[${i}].smoothMode`), light.smooth ? 1 : 0);\n this.gl.uniform1f(this.gl.getUniformLocation(this.programManager.program, `u_lights[${i}].intensity`), Math.max(0, Math.min(1, light.intensity)));\n }\n this.gl.drawArrays(this.gl.TRIANGLES, 0, 6);\n this.gl.uniform1i(this.programManager.renderLightUniform, 0);\n return true;\n }\n}\n//# sourceMappingURL=DarknessRenderer.js.map","import { mat4 } from \"gl-matrix\";\nimport { hexToRgba, setProjectionMatrix } from \"./utils\";\nimport { RenderDataType } from \"./Renderer\";\nexport class SpriteRenderer {\n constructor(gl, programManager, textureManager) {\n this.gl = gl;\n this.programManager = programManager;\n this.textureManager = textureManager;\n this.tiledPosVertices = new Map();\n this.tiledTexVertices = new Map();\n this.lastTexture = null;\n this.isTiled = false;\n this.projectionMatrix = mat4.create();\n this.modelMatrix = mat4.create();\n this.textureMatrix = mat4.create();\n this.positionBuffer = this.gl.createBuffer();\n this.textureBuffer = this.gl.createBuffer();\n this.tiledPositionBuffer = this.gl.createBuffer();\n this.tiledTextureBuffer = this.gl.createBuffer();\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.positionBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, new Float32Array([-0.5, -0.5, -0.5, 0.5, 0.5, -0.5, 0.5, -0.5, -0.5, 0.5, 0.5, 0.5]), this.gl.STATIC_DRAW);\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.textureBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, new Float32Array([0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0]), this.gl.STATIC_DRAW);\n this.lastDrawMode = \"sprite\";\n }\n render(renderData, cameraData, lastRender) {\n var _a, _b, _c, _d;\n this.isTiled = renderData.tiled && (renderData.tiled.x > 1 || renderData.tiled.y > 1);\n if (!this.isTiled && (lastRender !== RenderDataType.Sprite || this.lastDrawMode !== \"sprite\")) {\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.positionBuffer);\n this.gl.enableVertexAttribArray(this.programManager.positionCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.positionCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.textureBuffer);\n this.gl.enableVertexAttribArray(this.programManager.texCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.texCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n }\n else if (this.isTiled) {\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.tiledPositionBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, this.getTiledPositionVertices(renderData.tiled), this.gl.DYNAMIC_DRAW);\n this.gl.enableVertexAttribArray(this.programManager.positionCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.positionCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.tiledTextureBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, this.getTiledTextureVertices(renderData.tiled), this.gl.DYNAMIC_DRAW);\n this.gl.enableVertexAttribArray(this.programManager.texCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.texCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n }\n this.lastDrawMode = this.isTiled ? \"tiled\" : \"sprite\";\n this.modelMatrix = mat4.identity(this.modelMatrix);\n mat4.translate(this.modelMatrix, this.modelMatrix, [renderData.position.x, renderData.position.y, 0]);\n mat4.rotateZ(this.modelMatrix, this.modelMatrix, (_a = renderData.rotation) !== null && _a !== void 0 ? _a : 0);\n mat4.scale(this.modelMatrix, this.modelMatrix, [\n renderData.width * (renderData.flipHorizontally ? -1 : 1),\n renderData.height * (renderData.flipVertically ? -1 : 1),\n 1,\n ]);\n this.textureMatrix = mat4.identity(this.textureMatrix);\n if (renderData.slice) {\n mat4.translate(this.textureMatrix, this.textureMatrix, [\n renderData.slice.x / renderData.image.naturalWidth,\n renderData.slice.y / renderData.image.naturalHeight,\n 0,\n ]);\n mat4.scale(this.textureMatrix, this.textureMatrix, [\n renderData.slice.width / renderData.image.naturalWidth,\n renderData.slice.height / renderData.image.naturalHeight,\n 1,\n ]);\n }\n setProjectionMatrix(this.projectionMatrix, this.gl, cameraData.zoom, cameraData.position);\n this.gl.uniformMatrix4fv(this.programManager.projectionMatrixUniform, false, this.projectionMatrix);\n this.gl.uniformMatrix4fv(this.programManager.modelMatrixUniform, false, this.modelMatrix);\n this.gl.uniformMatrix4fv(this.programManager.textureMatrixUniform, false, this.textureMatrix);\n this.gl.enable(this.gl.BLEND);\n const texture = this.textureManager.getOrCreateTextureFromImage(renderData.image, renderData.smooth);\n if (this.lastTexture !== texture || lastRender !== renderData.type) {\n this.gl.bindTexture(this.gl.TEXTURE_2D, texture);\n this.gl.uniform1i(this.programManager.textureUniform, 0);\n this.lastTexture = texture;\n }\n this.gl.uniform1i(this.programManager.renderTextureUniform, 1);\n this.gl.uniform1f(this.programManager.alphaUniform, (_b = renderData.opacity) !== null && _b !== void 0 ? _b : 1);\n this.gl.uniform1i(this.programManager.useTintColorUniform, renderData.tintColor ? 1 : 0);\n if (renderData.tintColor) {\n const { r, g, b, a } = hexToRgba(renderData.tintColor);\n this.gl.uniform4f(this.programManager.tintColorUniform, r, g, b, a);\n }\n this.gl.uniform1i(this.programManager.useMaskColorUniform, renderData.maskColor ? 1 : 0);\n if (renderData.maskColor) {\n const { r, g, b } = hexToRgba(renderData.maskColor);\n this.gl.uniform4f(this.programManager.maskColorUniform, r, g, b, (_c = renderData.opacity) !== null && _c !== void 0 ? _c : 1);\n this.gl.uniform1f(this.programManager.maskColorMixUniform, (_d = renderData.maskColorMix) !== null && _d !== void 0 ? _d : 1);\n }\n if (this.isTiled) {\n this.gl.drawArrays(this.gl.TRIANGLES, 0, renderData.tiled.x * renderData.tiled.y * 6);\n }\n else {\n this.gl.drawArrays(this.gl.TRIANGLES, 0, 6);\n }\n return true;\n }\n getTiledPositionVertices(tiled) {\n const key = tiled.toString();\n if (!this.tiledPosVertices.has(key)) {\n const vertices = [];\n for (let x = -tiled.x / 2; x < tiled.x / 2; x++) {\n for (let y = -tiled.y / 2; y < tiled.y / 2; y++) {\n vertices.push(x, y, x, y + 1, x + 1, y, x + 1, y, x, y + 1, x + 1, y + 1);\n }\n }\n this.tiledPosVertices.set(key, new Float32Array(vertices));\n }\n return this.tiledPosVertices.get(key);\n }\n getTiledTextureVertices(tiled) {\n const key = tiled.toString();\n if (!this.tiledTexVertices.has(key)) {\n const vertices = [];\n for (let i = 0; i < tiled.x * tiled.y; i++) {\n vertices.push(0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0);\n }\n this.tiledTexVertices.set(key, new Float32Array(vertices));\n }\n return this.tiledTexVertices.get(key);\n }\n}\n//# sourceMappingURL=SpriteRenderer.js.map","import { mat4 } from \"gl-matrix\";\nimport { Vector2 } from \"@angry-pixel/math\";\nimport { RenderDataType } from \"./Renderer\";\nimport { hexToRgba, setProjectionMatrix } from \"./utils\";\n/**\n * Alignment of the text.\n * @category Components Configuration\n * @public\n */\nexport var TextAlignment;\n(function (TextAlignment) {\n TextAlignment[TextAlignment[\"Center\"] = 0] = \"Center\";\n TextAlignment[TextAlignment[\"Right\"] = 1] = \"Right\";\n TextAlignment[TextAlignment[\"Left\"] = 2] = \"Left\";\n})(TextAlignment || (TextAlignment = {}));\nexport class TextRenderer {\n constructor(gl, programManager, textureManager, fontAtlasFactory) {\n this.gl = gl;\n this.programManager = programManager;\n this.textureManager = textureManager;\n this.fontAtlasFactory = fontAtlasFactory;\n this.type = RenderDataType.Text;\n this.posVertices = [];\n this.texVertices = [];\n // cache\n this.lastTexture = null;\n this.shadowPosition = new Vector2();\n this.projectionMatrix = mat4.create();\n this.modelMatrix = mat4.create();\n this.textureMatrix = mat4.create();\n this.positionBuffer = this.gl.createBuffer();\n this.textureBuffer = this.gl.createBuffer();\n }\n render(renderData, cameraData, lastRender, shadow = false) {\n var _a;\n if (!renderData.text)\n return false;\n const fontAtlas = this.fontAtlasFactory.getOrCreate(Object.assign({ font: renderData.font }, renderData.textureAtlas));\n // If we are render the shadow text, we dont need to recalculate the vertices or re-enable buffers\n if (!shadow) {\n this.generateTextVertices(fontAtlas, renderData);\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.positionBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, new Float32Array(this.posVertices), this.gl.DYNAMIC_DRAW);\n this.gl.enableVertexAttribArray(this.programManager.positionCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.positionCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.textureBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, new Float32Array(this.texVertices), this.gl.DYNAMIC_DRAW);\n this.gl.enableVertexAttribArray(this.programManager.texCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.texCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n }\n if (renderData.shadow) {\n const { color, offset, opacity } = renderData.shadow;\n const shadowRenderData = Object.assign(Object.assign({}, renderData), { color,\n opacity, position: Vector2.add(this.shadowPosition, renderData.position, offset) });\n shadowRenderData.shadow = undefined;\n this.render(shadowRenderData, cameraData, lastRender, true);\n lastRender = RenderDataType.Text;\n }\n this.modelMatrix = mat4.identity(this.modelMatrix);\n mat4.translate(this.modelMatrix, this.modelMatrix, [renderData.position.x, renderData.position.y, 0]);\n mat4.rotateZ(this.modelMatrix, this.modelMatrix, (_a = renderData.rotation) !== null && _a !== void 0 ? _a : 0);\n mat4.scale(this.modelMatrix, this.modelMatrix, [\n renderData.fontSize * (renderData.flipHorizontally ? -1 : 1),\n renderData.fontSize * (renderData.flipVertically ? -1 : 1),\n 1,\n ]);\n this.textureMatrix = mat4.identity(this.textureMatrix);\n setProjectionMatrix(this.projectionMatrix, this.gl, cameraData.zoom, cameraData.position);\n this.gl.uniformMatrix4fv(this.programManager.projectionMatrixUniform, false, this.projectionMatrix);\n this.gl.uniformMatrix4fv(this.programManager.modelMatrixUniform, false, this.modelMatrix);\n this.gl.uniformMatrix4fv(this.programManager.textureMatrixUniform, false, this.textureMatrix);\n this.gl.enable(this.gl.BLEND);\n const texture = this.textureManager.getOrCreateTextureFromCanvas(fontAtlas.id, fontAtlas.canvas, renderData.smooth);\n if (this.lastTexture !== texture || lastRender !== RenderDataType.Text) {\n this.gl.bindTexture(this.gl.TEXTURE_2D, texture);\n this.gl.uniform1i(this.programManager.textureUniform, 0);\n this.lastTexture = texture;\n }\n this.gl.uniform1i(this.programManager.useMaskColorUniform, 0);\n this.gl.uniform1i(this.programManager.renderTextureUniform, 1);\n this.gl.uniform1f(this.programManager.alphaUniform, renderData.opacity);\n const { r, g, b, a } = hexToRgba(renderData.color);\n this.gl.uniform1i(this.programManager.useTintColorUniform, 1);\n this.gl.uniform4f(this.programManager.tintColorUniform, r, g, b, a);\n this.gl.drawArrays(this.gl.TRIANGLES, 0, this.posVertices.length / 2);\n return true;\n }\n generateTextVertices(fontAtlas, renderData) {\n this.posVertices = [];\n this.texVertices = [];\n // TODO: cache this\n const processedText = this.preProcessText(fontAtlas, renderData);\n const letterSpacing = renderData.letterSpacing / renderData.fontSize;\n const lineHeight = renderData.lineHeight / renderData.fontSize;\n const height = renderData.boundingBox.height / renderData.fontSize;\n const width = renderData.boundingBox.width / renderData.fontSize;\n let y = height / 2;\n for (const line of processedText) {\n const { text, width: lineWidth } = line;\n let x = renderData.alignment === TextAlignment.Center\n ? -lineWidth / 2\n : renderData.alignment === TextAlignment.Left\n ? -width / 2\n : width / 2 - lineWidth;\n for (const letter of text) {\n const glyph = fontAtlas.glyphs.get(letter);\n if (glyph) {\n const letterWidth = glyph.width / fontAtlas.fontSize;\n // prettier-ignore\n this.posVertices.push(x, y - 1, x + letterWidth, y - 1, x, y, x, y, x + letterWidth, y - 1, x + letterWidth, y);\n const gx = (glyph.id % fontAtlas.gridSize) * (fontAtlas.fontSize + fontAtlas.spacing);\n const gy = ((glyph.id / fontAtlas.gridSize) | 0) * (fontAtlas.fontSize + fontAtlas.spacing);\n const u1 = gx / fontAtlas.canvas.width;\n const v1 = gy / fontAtlas.canvas.height;\n const u2 = (gx + glyph.width) / fontAtlas.canvas.width;\n const v2 = (gy + fontAtlas.fontSize) / fontAtlas.canvas.height;\n // prettier-ignore\n this.texVertices.push(u1, v2, u2, v2, u1, v1, u1, v1, u2, v2, u2, v1);\n x += letterWidth + letterSpacing;\n }\n }\n x = -width / 2;\n y -= lineHeight;\n }\n }\n preProcessText(fontAtlas, { text, fontSize, letterSpacing, lineHeight, boundingBox: { width, height } }) {\n const result = [];\n // Normalize\n letterSpacing /= fontSize;\n lineHeight /= fontSize;\n width /= fontSize;\n height /= fontSize;\n const spaceWidth = fontAtlas.glyphs.get(\" \").width / fontAtlas.fontSize + letterSpacing;\n let currentHeight = 0;\n const lines = text.split(\"\\n\");\n for (const line of lines) {\n let newLine = [];\n let lineWidth = 0;\n currentHeight += lineHeight;\n const words = line.split(\" \");\n for (const word of words) {\n if (currentHeight > height)\n return result;\n const firstWord = newLine.length === 0;\n let wordWidth = 0;\n for (const letter of word) {\n const glyph = fontAtlas.glyphs.get(letter);\n if (glyph)\n wordWidth += glyph.width / fontAtlas.fontSize + letterSpacing;\n }\n wordWidth -= letterSpacing;\n if (!firstWord)\n wordWidth += spaceWidth;\n if (firstWord && wordWidth >= width) {\n result.push({ width: wordWidth, text: word });\n currentHeight += lineHeight;\n }\n else if (lineWidth + wordWidth === width) {\n newLine.push(word);\n result.push({ width: lineWidth + wordWidth, text: newLine.join(\" \") });\n newLine = [];\n lineWidth = 0;\n currentHeight += lineHeight;\n }\n else if (lineWidth + wordWidth > width) {\n result.push({ width: lineWidth, text: newLine.join(\" \") });\n newLine = [word];\n lineWidth = wordWidth - spaceWidth;\n currentHeight += lineHeight;\n }\n else {\n lineWidth += wordWidth;\n newLine.push(word);\n }\n }\n if (newLine.length > 0) {\n result.push({ width: lineWidth, text: newLine.join(\" \") });\n }\n }\n return result;\n }\n}\n//# sourceMappingURL=TextRenderer.js.map","import { mat4 } from \"gl-matrix\";\nimport { Vector2 } from \"@angry-pixel/math\";\nimport { RenderDataType } from \"./Renderer\";\nimport { hexToRgba, setProjectionMatrix } from \"./utils\";\n/**\n * Direction in which the tilemap will be rendered.\n * @internal\n */\nexport var TilemapOrientation;\n(function (TilemapOrientation) {\n TilemapOrientation[TilemapOrientation[\"Center\"] = 0] = \"Center\";\n TilemapOrientation[TilemapOrientation[\"RightUp\"] = 1] = \"RightUp\";\n TilemapOrientation[TilemapOrientation[\"RightDown\"] = 2] = \"RightDown\";\n TilemapOrientation[TilemapOrientation[\"RightCenter\"] = 3] = \"RightCenter\";\n})(TilemapOrientation || (TilemapOrientation = {}));\nexport class TilemapRenderer {\n constructor(gl, programManager, textureManager) {\n this.gl = gl;\n this.programManager = programManager;\n this.textureManager = textureManager;\n this.posVertices = [];\n this.texVertices = [];\n // cache\n this.lastTexture = null;\n this.tileset = {\n width: 0,\n tileWidth: 0,\n tileHeight: 0,\n texMargin: new Vector2(),\n texSpacing: new Vector2(),\n texWidth: 0,\n texHeight: 0,\n texCorrection: new Vector2(),\n };\n this.projectionMatrix = mat4.create();\n this.modelMatrix = mat4.create();\n this.textureMatrix = mat4.create();\n this.positionBuffer = this.gl.createBuffer();\n this.textureBuffer = this.gl.createBuffer();\n }\n render(renderData, cameraData, lastRender) {\n var _a, _b, _c, _d;\n if (renderData.tiles.reduce((acc, tile) => acc + tile, 0) === 0)\n return false;\n this.processTileset(renderData);\n this.generateVertices(renderData);\n if (this.posVertices.length === 0)\n return false;\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.positionBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, new Float32Array(this.posVertices), this.gl.DYNAMIC_DRAW);\n this.gl.enableVertexAttribArray(this.programManager.positionCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.positionCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.textureBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, new Float32Array(this.texVertices), this.gl.DYNAMIC_DRAW);\n this.gl.enableVertexAttribArray(this.programManager.texCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.texCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n this.modelMatrix = mat4.identity(this.modelMatrix);\n mat4.translate(this.modelMatrix, this.modelMatrix, [renderData.position.x, renderData.position.y, 0]);\n mat4.rotateZ(this.modelMatrix, this.modelMatrix, (_a = renderData.rotation) !== null && _a !== void 0 ? _a : 0);\n mat4.scale(this.modelMatrix, this.modelMatrix, [\n renderData.tilemap.tileWidth * (renderData.flipHorizontal ? -1 : 1),\n renderData.tilemap.tileHeight * (renderData.flipVertical ? -1 : 1),\n 1,\n ]);\n this.textureMatrix = mat4.identity(this.textureMatrix);\n mat4.scale(this.textureMatrix, this.textureMatrix, [\n this.tileset.tileWidth / renderData.tileset.image.naturalWidth,\n this.tileset.tileHeight / renderData.tileset.image.naturalHeight,\n 1,\n ]);\n setProjectionMatrix(this.projectionMatrix, this.gl, cameraData.zoom, cameraData.position);\n this.gl.uniformMatrix4fv(this.programManager.projectionMatrixUniform, false, this.projectionMatrix);\n this.gl.uniformMatrix4fv(this.programManager.modelMatrixUniform, false, this.modelMatrix);\n this.gl.uniformMatrix4fv(this.programManager.textureMatrixUniform, false, this.textureMatrix);\n this.gl.enable(this.gl.BLEND);\n const texture = this.textureManager.getOrCreateTextureFromImage(renderData.tileset.image, renderData.smooth);\n if (this.lastTexture !== texture || lastRender !== RenderDataType.Tilemap) {\n this.gl.bindTexture(this.gl.TEXTURE_2D, texture);\n this.gl.uniform1i(this.programManager.textureUniform, 0);\n this.lastTexture = texture;\n }\n this.gl.uniform1i(this.programManager.renderTextureUniform, 1);\n this.gl.uniform1f(this.programManager.alphaUniform, (_b = renderData.opacity) !== null && _b !== void 0 ? _b : 1);\n this.gl.uniform1i(this.programManager.useTintColorUniform, renderData.tintColor ? 1 : 0);\n if (renderData.tintColor) {\n const { r, g, b, a } = hexToRgba(renderData.tintColor);\n this.gl.uniform4f(this.programManager.tintColorUniform, r, g, b, a);\n }\n this.gl.uniform1i(this.programManager.useMaskColorUniform, renderData.maskColor ? 1 : 0);\n if (renderData.maskColor) {\n const { r, g, b } = hexToRgba(renderData.maskColor);\n this.gl.uniform4f(this.programManager.maskColorUniform, r, g, b, (_c = renderData.opacity) !== null && _c !== void 0 ? _c : 1);\n this.gl.uniform1f(this.programManager.maskColorMixUniform, (_d = renderData.maskColorMix) !== null && _d !== void 0 ? _d : 1);\n }\n this.gl.drawArrays(this.gl.TRIANGLES, 0, this.posVertices.length / 2);\n return true;\n }\n processTileset({ tileset }) {\n var _a, _b, _c, _d, _e, _f, _g;\n tileset.margin = (_a = tileset.margin) !== null && _a !== void 0 ? _a : new Vector2();\n tileset.spacing = (_b = tileset.spacing) !== null && _b !== void 0 ? _b : new Vector2();\n tileset.correction = (_c = tileset.correction) !== null && _c !== void 0 ? _c : new Vector2();\n this.tileset.width = tileset.width;\n this.tileset.tileWidth = tileset.tileWidth + ((_d = tileset.margin.x) !== null && _d !== void 0 ? _d : 0) + ((_e = tileset.spacing.x) !== null && _e !== void 0 ? _e : 0);\n this.tileset.tileHeight = tileset.tileHeight + ((_f = tileset.margin.y) !== null && _f !== void 0 ? _f : 0) + ((_g = tileset.spacing.y) !== null && _g !== void 0 ? _g : 0);\n this.tileset.texMargin.set(tileset.margin.x / this.tileset.tileWidth, tileset.margin.y / this.tileset.tileHeight);\n this.tileset.texSpacing.set(tileset.spacing.x / this.tileset.tileWidth, tileset.spacing.y / this.tileset.tileHeight);\n this.tileset.texCorrection.set(tileset.correction.x / this.tileset.tileWidth, tileset.correction.y / this.tileset.tileHeight);\n this.tileset.texWidth =\n 1 - this.tileset.texMargin.x - this.tileset.texSpacing.x - 2 * this.tileset.texCorrection.x;\n this.tileset.texHeight =\n 1 - this.tileset.texMargin.y - this.tileset.texSpacing.y - 2 * this.tileset.texCorrection.y;\n }\n generateVertices({ tiles, tilemap }) {\n this.posVertices = [];\n this.texVertices = [];\n const height = Math.floor(tiles.length / tilemap.width);\n tiles.forEach((tilesetTile, tilemapTile) => {\n if (tilesetTile === 0)\n return;\n const px = (tilemapTile % tilemap.width) - tilemap.width / 2;\n const py = height / 2 - Math.floor(tilemapTile / tilemap.width);\n // prettier-ignore\n this.posVertices.push(px, py - 1, px + 1, py - 1, px, py, px, py, px + 1, py - 1, px + 1, py);\n const tx = ((tilesetTile - 1) % this.tileset.width) + this.tileset.texMargin.x + this.tileset.texCorrection.x;\n const ty = Math.floor((tilesetTile - 1) / this.tileset.width) +\n this.tileset.texMargin.y +\n this.tileset.texCorrection.y;\n // prettier-ignore\n this.texVertices.push(tx, ty + this.tileset.texHeight, tx + this.tileset.texWidth, ty + this.tileset.texHeight, tx, ty, tx, ty, tx + this.tileset.texWidth, ty + this.tileset.texHeight, tx + this.tileset.texWidth, ty);\n });\n }\n}\n//# sourceMappingURL=TilemapRenderer.js.map","import { mat4 } from \"gl-matrix\";\nimport { RenderDataType } from \"./Renderer\";\nimport { hexToRgba, setProjectionMatrix } from \"./utils\";\nexport class VideoRenderer {\n constructor(gl, programManager, textureManager) {\n this.gl = gl;\n this.programManager = programManager;\n this.textureManager = textureManager;\n this.lastTexture = null;\n this.projectionMatrix = mat4.create();\n this.modelMatrix = mat4.create();\n this.textureMatrix = mat4.create();\n this.positionBuffer = this.gl.createBuffer();\n this.textureBuffer = this.gl.createBuffer();\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.positionBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, new Float32Array([-0.5, -0.5, -0.5, 0.5, 0.5, -0.5, 0.5, -0.5, -0.5, 0.5, 0.5, 0.5]), this.gl.STATIC_DRAW);\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.textureBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, new Float32Array([0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0]), this.gl.STATIC_DRAW);\n }\n render(renderData, cameraData, lastRender) {\n var _a, _b, _c, _d;\n if (lastRender !== RenderDataType.Video) {\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.positionBuffer);\n this.gl.enableVertexAttribArray(this.programManager.positionCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.positionCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.textureBuffer);\n this.gl.enableVertexAttribArray(this.programManager.texCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.texCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n }\n this.modelMatrix = mat4.identity(this.modelMatrix);\n mat4.translate(this.modelMatrix, this.modelMatrix, [renderData.position.x, renderData.position.y, 0]);\n mat4.rotateZ(this.modelMatrix, this.modelMatrix, (_a = renderData.rotation) !== null && _a !== void 0 ? _a : 0);\n mat4.scale(this.modelMatrix, this.modelMatrix, [\n renderData.width * (renderData.flipHorizontal ? -1 : 1),\n renderData.height * (renderData.flipVertical ? -1 : 1),\n 1,\n ]);\n this.textureMatrix = mat4.identity(this.textureMatrix);\n if (renderData.slice) {\n mat4.translate(this.textureMatrix, this.textureMatrix, [\n renderData.slice.x / renderData.video.videoWidth,\n renderData.slice.y / renderData.video.videoHeight,\n 0,\n ]);\n mat4.scale(this.textureMatrix, this.textureMatrix, [\n renderData.slice.width / renderData.video.videoWidth,\n renderData.slice.height / renderData.video.videoHeight,\n 1,\n ]);\n }\n setProjectionMatrix(this.projectionMatrix, this.gl, cameraData.zoom, cameraData.position);\n this.gl.uniformMatrix4fv(this.programManager.projectionMatrixUniform, false, this.projectionMatrix);\n this.gl.uniformMatrix4fv(this.programManager.modelMatrixUniform, false, this.modelMatrix);\n this.gl.uniformMatrix4fv(this.programManager.textureMatrixUniform, false, this.textureMatrix);\n this.gl.enable(this.gl.BLEND);\n const texture = this.textureManager.getOrCreateTextureFromVideo(renderData.video);\n if (this.lastTexture !== texture || lastRender !== RenderDataType.Video) {\n this.gl.bindTexture(this.gl.TEXTURE_2D, texture);\n this.gl.uniform1i(this.programManager.textureUniform, 0);\n this.lastTexture = texture;\n }\n if (renderData.video.readyState >= HTMLMediaElement.HAVE_CURRENT_DATA) {\n this.gl.texImage2D(this.gl.TEXTURE_2D, 0, this.gl.RGBA, this.gl.RGBA, this.gl.UNSIGNED_BYTE, renderData.video);\n }\n this.gl.uniform1i(this.programManager.renderTextureUniform, 1);\n this.gl.uniform1f(this.programManager.alphaUniform, (_b = renderData.opacity) !== null && _b !== void 0 ? _b : 1);\n this.gl.uniform1i(this.programManager.useTintColorUniform, renderData.tintColor ? 1 : 0);\n if (renderData.tintColor) {\n const { r, g, b, a } = hexToRgba(renderData.tintColor);\n this.gl.uniform4f(this.programManager.tintColorUniform, r, g, b, a);\n }\n this.gl.uniform1i(this.programManager.useMaskColorUniform, renderData.maskColor ? 1 : 0);\n if (renderData.maskColor) {\n const { r, g, b } = hexToRgba(renderData.maskColor);\n this.gl.uniform4f(this.programManager.maskColorUniform, r, g, b, (_c = renderData.opacity) !== null && _c !== void 0 ? _c : 1);\n this.gl.uniform1f(this.programManager.maskColorMixUniform, (_d = renderData.maskColorMix) !== null && _d !== void 0 ? _d : 1);\n }\n this.gl.drawArrays(this.gl.TRIANGLES, 0, 6);\n return true;\n }\n}\n//# sourceMappingURL=VideoRenderer.js.map","export class TextureFactory {\n constructor(gl) {\n this.gl = gl;\n }\n createFromImage(image, smooth = false, texture = null) {\n texture = texture !== null && texture !== void 0 ? texture : this.gl.createTexture();\n if (image.naturalWidth) {\n this.createFromSource(image, texture, smooth);\n }\n else {\n image.addEventListener(\"load\", () => this.createFromSource(image, texture, smooth));\n }\n return texture;\n }\n createFromCanvas(canvas, smooth = false, texture = null) {\n texture = texture !== null && texture !== void 0 ? texture : this.gl.createTexture();\n this.createFromSource(canvas, texture, smooth);\n return texture;\n }\n createPixelTexture() {\n const texture = this.gl.createTexture();\n this.gl.bindTexture(this.gl.TEXTURE_2D, texture);\n this.gl.texImage2D(this.gl.TEXTURE_2D, 0, this.gl.RGBA, 1, 1, 0, this.gl.RGBA, this.gl.UNSIGNED_BYTE, new Uint8Array([0, 0, 0, 255]));\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_WRAP_S, this.gl.CLAMP_TO_EDGE);\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_WRAP_T, this.gl.CLAMP_TO_EDGE);\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_MIN_FILTER, this.gl.LINEAR);\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_MAG_FILTER, this.gl.LINEAR);\n this.gl.bindTexture(this.gl.TEXTURE_2D, null);\n return texture;\n }\n createFromSource(source, texture, smooth = false) {\n this.gl.bindTexture(this.gl.TEXTURE_2D, texture);\n this.gl.texImage2D(this.gl.TEXTURE_2D, 0, this.gl.RGBA, this.gl.RGBA, this.gl.UNSIGNED_BYTE, source);\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_WRAP_S, this.gl.CLAMP_TO_EDGE);\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_WRAP_T, this.gl.CLAMP_TO_EDGE);\n // LINEAR === smooth pixels, NEAREST === crisp pixels,\n if (smooth) {\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_MIN_FILTER, this.gl.LINEAR);\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_MAG_FILTER, this.gl.LINEAR);\n }\n else {\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_MIN_FILTER, this.gl.NEAREST);\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_MAG_FILTER, this.gl.NEAREST);\n }\n this.gl.bindTexture(this.gl.TEXTURE_2D, null);\n }\n}\n//# sourceMappingURL=TextureFactory.js.map","const textureId = (name, smooth) => `${smooth ? \"_smooth_\" : \"\"}${name}`;\nexport class TextureManager {\n constructor(textureFactory) {\n this.textureFactory = textureFactory;\n this.textures = new Map();\n }\n getOrCreateTextureFromImage(image, smooth = false) {\n var _a;\n return (_a = this.textures.get(textureId(image.src, smooth))) !== null && _a !== void 0 ? _a : this.createTextureFromImage(image, smooth);\n }\n createTextureFromImage(image, smooth = false) {\n const texture = this.textureFactory.createFromImage(image, smooth);\n this.textures.set(textureId(image.src, smooth), texture);\n return texture;\n }\n getOrCreateTextureFromCanvas(name, canvas, smooth = false) {\n var _a;\n return (_a = this.textures.get(textureId(name, smooth))) !== null && _a !== void 0 ? _a : this.createTextureFromCanvas(name, canvas, smooth);\n }\n createTextureFromCanvas(name, canvas, smooth = false) {\n const texture = this.textureFactory.createFromCanvas(canvas, smooth);\n this.textures.set(textureId(name, smooth), texture);\n return texture;\n }\n getOrCreateTextureFromVideo(video) {\n var _a;\n return (_a = this.textures.get(video.src)) !== null && _a !== void 0 ? _a : this.createTextureFromVideo(video);\n }\n createTextureFromVideo(video) {\n const texture = this.textureFactory.createPixelTexture();\n this.textures.set(video.src, texture);\n return texture;\n }\n}\n//# sourceMappingURL=TextureManager.js.map","export const SYMBOLS = {\n CanvasElement: Symbol.for(\"CanvasElement\"),\n WebGLManager: Symbol.for(\"WebGLManager\"),\n};\n//# sourceMappingURL=symbols.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { inject, injectable } from \"@angry-pixel/ioc\";\nimport { ContextManager } from \"./ContextManager\";\nimport { FontAtlasFactory } from \"./FontAtlasFactory\";\nimport { ProgramFactory } from \"./program/ProgramFactory\";\nimport { ProgramManager } from \"./program/ProgramManager\";\nimport { ShaderLoader } from \"./program/ShaderLoader\";\nimport { CanvasColorRenderer } from \"./renderer/CanvasColorRenderer\";\nimport { GeometricRenderer } from \"./renderer/GeometricRenderer\";\nimport { MaskRenderer } from \"./renderer/MaskRenderer\";\nimport { RenderDataType } from \"./renderer/Renderer\";\nimport { DarknessRenderer } from \"./renderer/DarknessRenderer\";\nimport { SpriteRenderer } from \"./renderer/SpriteRenderer\";\nimport { TextRenderer } from \"./renderer/TextRenderer\";\nimport { TilemapRenderer } from \"./renderer/TilemapRenderer\";\nimport { VideoRenderer } from \"./renderer/VideoRenderer\";\nimport { TextureFactory } from \"./texture/TextureFactory\";\nimport { TextureManager } from \"./texture/TextureManager\";\nimport { SYMBOLS } from \"./symbols\";\nlet WebGLManager = class WebGLManager {\n constructor(canvas) {\n this.renderers = new Map();\n const contextManager = new ContextManager(canvas);\n const gl = contextManager.gl;\n const contextVersion = contextManager.contextVersion;\n const programManager = new ProgramManager(gl, contextVersion, new ProgramFactory(gl, new ShaderLoader(gl)));\n const textureManager = new TextureManager(new TextureFactory(gl));\n const fontFactoryAtlas = new FontAtlasFactory();\n this.renderers.set(RenderDataType.Sprite, new SpriteRenderer(gl, programManager, textureManager));\n this.renderers.set(RenderDataType.Text, new TextRenderer(gl, programManager, textureManager, fontFactoryAtlas));\n this.renderers.set(RenderDataType.Tilemap, new TilemapRenderer(gl, programManager, textureManager));\n this.renderers.set(RenderDataType.Geometric, new GeometricRenderer(gl, programManager));\n this.renderers.set(RenderDataType.Mask, new MaskRenderer(gl, programManager));\n this.renderers.set(RenderDataType.Video, new VideoRenderer(gl, programManager, textureManager));\n this.renderers.set(RenderDataType.Darkness, new DarknessRenderer(gl, programManager));\n this.canvasColorRenderer = new CanvasColorRenderer(gl);\n programManager.loadProgram();\n }\n render(renderData, cameraData) {\n if (this.renderers.get(renderData.type).render(renderData, cameraData, this.lastRender)) {\n this.lastRender = renderData.type;\n }\n }\n renderCanvasColor(hexColor) {\n this.canvasColorRenderer.render(hexColor);\n }\n};\nWebGLManager = __decorate([\n injectable(SYMBOLS.WebGLManager),\n __param(0, inject(SYMBOLS.CanvasElement))\n], WebGLManager);\nexport { WebGLManager };\n//# sourceMappingURL=WebGLManager.js.map",null,"/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["BroadPhaseMethods","exports","Vector2","constructor","x","y","this","_x","_y","magnitude","Math","sqrt","pow","direction","_direction","unit","set","copy","vector","equals","clone","distance","add","out","a","b","subtract","normal","scale","scalar","dot","cross","round","floor","ceil","toString","Rectangle","width","height","_position","_center","value","x1","y1","position","center","rectangle","rect","intersects","contains","object","clamp","min","max","fixedRound","decimals","range","start","end","steps","i","push","between","Container","instances","Map","types","type","name","prototype","__ioc_injectable","Error","dependency","get","_a","_b","has","instance","__ioc_inject_constructor","map","inject","__ioc_inject_prop","forEach","prop","injectable","target","propertyKey","parameterIndex","undefined","SYMBOLS","CollisionRepository","Symbol","for","CollisionBroadphaseResolver","CollisionResolutionMethod","CollisionAABBResolver","CollisionCircumferenceAABBResolver","CollisionCircumferenceResolver","CollisionSatResolver","CollisionMatrix","QuadTree_1","__decorate","decorators","key","desc","d","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","QuadTree","bounds","depth","rects","children","minArea","maxArea","update","shapes","clear","resize","id","boundingBox","insert","child","Infinity","box","size","subdivide","halfWidth","halfHeight","retrieve","neighbors","retrieveFromNode","result","indexOf","cell","subdivisions","SpartialGrid","area","grid","coordinates","x0","y0","updateSubdivisions","cellWidth","cellHeight","updateCoordinates","ids","Set","Array","from","Polygon","vertexModel","_vertexModel","vertices","projectionAxes","rotation","collider","entity","ignoreCollisionsWithLayers","layer","radius","updateCollisions","Circumference","__param","paramIndex","decorator","AABBMethod","AABBResolver","circumferenceAABBResolver","circumferenceResolver","findCollision","shapeA","shapeB","resolve","CollisionMethods","SatMethod","satResolver","resolutionDirection","boxA","boxB","overlapX","overlapY","checkOverlapForLines","sign","preventContainment","minOverlap","penetration","abs","minSep","maxSep","CircumferenceAABBResolver","closestPoint","invert","CircumferenceResolver","SatResolver","projA","projB","smallestAxis","cache","setCircumferenceAxis","axes","pa","some","setCircumferenceVertices","projectShapeOntoAxis","currentOverlap","invertAxis","mins","maxs","projection","shape","axis","vertex","s","collisions","findCollisionsForCollider","filter","localCollider","findCollisionsForColliderAndLayer","remoteCollider","findAll","persist","collision","removeAll","deepClone","Node","FontFace","Date","getTime","item","k","v","proto","getPrototypeOf","create","keys","EntityManager","SystemManager","lastEntityId","lastComponentTypeId","entities","components","disabledEntities","manuallyDisabledEntities","disabledComponents","parentEntities","childEntities","createEntity","parent","component","addComponent","setParent","createEntityFromArchetype","enabled","createComponentsFromArchetype","disableEntity","disableComponent","removeEntity","getChildren","row","delete","getParent","removeAllEntities","preserveComponentType","search","entitiesToPreserve","isEntity","isEntityEnabled","enableEntity","disableEntitiesByComponent","componentType","getComponentTypeId","enableEntitiesByComponent","oldParent","removeParent","removeChild","componentName","hasComponent","getComponent","getComponents","entityComponent","e","updateComponentData","updateCallback","getEntityForComponent","removeComponent","arg1","arg2","isComponentEnabled","enableComponent","getComponentFromParent","current","includeDisabled","searchEntitiesByComponents","componentTypes","first","toCompare","splice","searchInChildren","includes","__ecs_type_id","Number","performance","now","toFixed","WebGLContextVersion","systems","findSystemIndex","systemType","findIndex","system","addSystem","group","hasSystem","getSystem","index","groupHasSystems","enableSystem","onCreate","onEnabled","disableSystem","onDisabled","setExecutionOrder","removeSystem","onDestroy","disableAllSystems","onUpdate","ContextManager","canvas","contextVersion","getContextVersion","gl","getContext","WebGL2","LegacyWebGL","FontAtlasFactory","fontAtlas","hasFontAtlas","options","getId","getFontAtlas","getOrCreate","font","charRanges","fontSize","spacing","chars","j","String","fromCharCode","family","renderAtlas","JSON","stringify","FontAtlas","ctx","clearRect","textBaseline","fillStyle","fillText","glyphs","measureText","gridSize","document","createElement","ProgramFactory","shaderLoader","vertexShaderSource","fragmentShaderSource","program","createProgram","vertexShader","load","VERTEX_SHADER","fragmentShader","FRAGMENT_SHADER","attachShader","linkProgram","status","LINK_STATUS","getProgramParameter","error","getProgramInfoLog","deleteProgram","ProgramManager","programFactory","loadProgram","positionCoordsAttr","getAttribLocation","texCoordsAttr","modelMatrixUniform","getUniformLocation","projectionMatrixUniform","textureMatrixUniform","renderTextureUniform","textureUniform","solidColorUniform","useTintColorUniform","tintColorUniform","useMaskColorUniform","maskColorUniform","maskColorMixUniform","alphaUniform","renderLightUniform","numLightsUniform","useProgram","blendFunc","SRC_ALPHA","ONE_MINUS_SRC_ALPHA","ShaderLoader","source","shader","createShader","shaderSource","compileShader","COMPILE_STATUS","getShaderParameter","getShaderInfoLog","deleteShader","ARRAY_TYPE","Float32Array","glMatrix.ARRAY_TYPE","identity","translate","a00","a01","a02","a03","a10","a11","a12","a13","a20","a21","a22","a23","z","rotateZ","rad","sin","cos","hypot","ortho","left","right","bottom","top","near","far","lr","bt","nf","setProjectionMatrix","projectionMatrix","cameraZoom","cameraPosition","mat4.identity","mat4.ortho","mat4.scale","mat4.translate","hexToRgba","hex","exec","parseInt","g","CanvasColorRenderer","render","hexColor","rgb","clearColor","COLOR_BUFFER_BIT","RenderDataType","GeometricShape","MaskShape","GeometricRenderer","programManager","mat4.create","modelMatrix","textureMatrix","circumferencePositionBuffer","createBuffer","linesPositionBuffer","angle","PI","reduce","bindBuffer","ARRAY_BUFFER","bufferData","STATIC_DRAW","renderData","cameraData","lastRender","disableVertexAttribArray","renderLines","LINE_LOOP","Line","LINES","renderCircumference","mode","DYNAMIC_DRAW","enableVertexAttribArray","vertexAttribPointer","FLOAT","mat4.rotateZ","zoom","uniformMatrix4fv","uniform1i","color","uniform4f","uniform1f","drawArrays","lastShape","Geometric","MaskRenderer$1","Mask","rectanglePositionBuffer","polygonPositionBuffer","renderRectangle","renderPolygon","opacity","enable","BLEND","disable","TRIANGLES","TRIANGLE_FAN","CIRCUMFERENCE_VERTICES","DarknessRenderer$1","positionBuffer","Darkness","lights","light","entries","uniform2f","smooth","intensity","SpriteRenderer$1","textureManager","tiledPosVertices","tiledTexVertices","lastTexture","isTiled","textureBuffer","tiledPositionBuffer","tiledTextureBuffer","lastDrawMode","_c","_d","tiled","Sprite","getTiledPositionVertices","getTiledTextureVertices","flipHorizontally","flipVertically","slice","image","naturalWidth","naturalHeight","texture","getOrCreateTextureFromImage","bindTexture","TEXTURE_2D","tintColor","maskColor","maskColorMix","TextAlignment","TextRenderer$1","fontAtlasFactory","Text","posVertices","texVertices","shadowPosition","shadow","text","assign","textureAtlas","generateTextVertices","offset","shadowRenderData","getOrCreateTextureFromCanvas","processedText","preProcessText","letterSpacing","lineHeight","line","lineWidth","alignment","Center","Left","letter","glyph","letterWidth","gx","gy","u1","v1","u2","v2","spaceWidth","currentHeight","lines","split","newLine","words","word","firstWord","wordWidth","join","TilemapOrientation","TilemapRenderer$1","tileset","tileWidth","tileHeight","texMargin","texSpacing","texWidth","texHeight","texCorrection","tiles","acc","tile","processTileset","generateVertices","tilemap","flipHorizontal","flipVertical","Tilemap","_e","_f","_g","margin","correction","tilesetTile","tilemapTile","px","py","tx","ty","VideoRenderer$1","Video","video","videoWidth","videoHeight","getOrCreateTextureFromVideo","readyState","HTMLMediaElement","HAVE_CURRENT_DATA","texImage2D","RGBA","UNSIGNED_BYTE","TextureFactory","createFromImage","createTexture","createFromSource","addEventListener","createFromCanvas","createPixelTexture","Uint8Array","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","TEXTURE_MIN_FILTER","LINEAR","TEXTURE_MAG_FILTER","NEAREST","textureId","TextureManager","textureFactory","textures","src","createTextureFromImage","createTextureFromCanvas","createTextureFromVideo","CanvasElement","WebGLManager","renderers","contextManager","fontFactoryAtlas","SpriteRenderer","TextRenderer","TilemapRenderer","MaskRenderer","VideoRenderer","DarknessRenderer","canvasColorRenderer","renderCanvasColor","AssetManager","CreateSystemService","GameConfig","InputManager","LoopManager","RenderManager","SceneManager","TimeManager","COLLISION_SYMBOLS","ECS_SYMBOLS","WEBGL_SYMBOLS","__awaiter","thisArg","_arguments","P","generator","Promise","reject","fulfilled","step","next","rejected","done","then","apply","SuppressedError","GamepadController","buttons","_dpadAxes","_leftStickAxes","_rightStickAxes","dpadAxes","dpadRight","dpadLeft","dpadUp","dpadDown","leftStickAxes","leftStickHorizontal","leftStickVertical","rightStickAxes","rightStickHorizontal","rightStickVertical","bottomFace","rightFace","leftFace","topFace","leftShoulder","rightShoulder","leftTrigger","rightTrigger","back","leftStickButton","rightStickButton","anyButtonPressed","values","find","vibrate","duration","weakMagnitude","strongMagnitude","startDelay","vibrationInput","Keyboard","pressedKeys","isPressed","keyCode","orPressed","keyCodes","andPressed","isPressedReturn","returnTrue","returnFalse","orPressedReturn","andPressedReturn","Mouse","leftButtonPressed","scrollButtonPressed","rightButtonPressed","positionInViewport","hasMoved","wheelScroll","TouchScreen","touching","interactions","keyboard","mouse","touchScreen","gamepads","allowedPhysicsFramerates","AssetType","deltaTime","unscaledDeltaTime","timeScale","physicsDeltaTime","unscaledPhysicsDeltaTime","renderDeltaTime","browserDeltaTime","physicsFramerate","entityManager","maxDeltaTime","thenForGame","thenForPhysics","thenForRender","lastIntervalId","intervals","fixedGameFramerate","fixedGameDeltaTime","parseFloat","fixedPhysicsFramerate","fixedPhysicsDeltaTime","updateForRender","time","updateForGame","updateForPhysics","updateIntervals","intervalId","interval","intervalHealthCheck","executeImmediately","timer","delay","useTimeScale","callback","times","clearInterval","entityRef","componentRef","setInterval","clearAllIntervals","assets","getAssetsLoaded","prev","asset","loaded","loadImage","url","getImage","Image","crossOrigin","createAsset","complete","loadAudio","getAudio","audio","Audio","loadFont","getFont","Font","fonts","loadVideo","getVideo","playsInline","loadJson","getJson","Json","response","fetch","json","element","disc","deleteAssetIfExists","AudioPlayer","playing","state","paused","stopped","action","stopOnSceneTransition","fixedToTimeScale","loop","volume","_currentAudioSource","_playPromisePendind","_playAfterUserInput","play","audioSource","pause","stop","SYSTEM_SYMBOLS","AudioPlayerSystem","ButtonSystem","TiledWrapperSystem","TilemapPreProcessingSystem","TransformSystem","GamepadSystem","KeyboardSystem","MouseSystem","TouchScreenSystem","UpdateBallColliderShapeSystem","UpdateBoxColliderShapeSystem","UpdateEdgeColliderShapeSystem","UpdatePolygonColliderShapeSystem","UpdateTilemapColliderShapeSystem","UpdateCollidersAfterRepositionSystem","ApplyRepositionSystem","ApplyVelocitySystem","ResolveCollisionSystem","AnimatorSystem","CameraSystem","ClearScreenSystem","CullingSystem","MaskRendererSystem","RenderSystem","DarknessLightRendererSystem","SpriteRendererSystem","TextRendererSystem","TilemapRendererSystem","VideoRendererSystem","DebugColliderRenderSystem","DebugMousePositionSystem","DebugTextRendererSystem","userInputEventNames","inputManager","timeManager","canPlay","userInputErrorCatched","userInputEventHandler","eventName","window","removeEventListener","hidden","catchUserInput","checkGamepad","gp","audioPlayer","currentTime","playbackRate","catch","SystemGroup","addSystemGroup","__system_group","Transform","ignoreParentPosition","ignoreParentScale","ignoreParentRotation","localPosition","localScale","localRotation","_awake","_parent","defaultRenderLayer","debugRenderLayer","Camera","layers","debug","_renderData","_currentVideoSrc","videoSource","renderManager","assetManager","scaledOffset","videoRenderer","transform","checkVideoState","translateRenderPosition","addRenderData","translatedAngle","atan2","ended","systemManager","systemFactory","scenes","_loadingScene","_sceneLoadedThisFrame","preserveEntitiesWithComponent","addScene","sceneType","openingScene","scene","openingSceneName","loadScene","sceneNameToBeLoaded","loadOpeningScene","loadingScene","sceneLoadedThisFrame","currentSceneName","destroyCurrentScene","loadAssets","registerSystems","createEntities","PreGameLogic","createSystemIfNotExists","Button","touchEnabled","pressed","mouseOver","ButtonShape","scaled","pressedLastFrame","button","isMouseOverButton","resolveTouchAndRectangle","resolveTouchAndCircumference","onClick","onPressed","isMouseOverRectangleButton","isMouseOverCircumferenceButton","TiledWrapper","data","chunks","_processed","tiledWrapper","tilemapRenderer","l","layerToRender","infinite","chunkSize","chunksToData","dataToChunks","cx","cy","chunk","tix","tiy","t","sort","getBranchLength","parentEntity","translateChild","updateTransform","eventHandler","gamepadConnected","gamepad","gamepadDisconected","connected","getGamepadsFromBrowser","gpc","vibrationActuator","playEffect","vibrating","finally","navigator","getGamepads","webkitGetGamepads","event","code","lastPositionInViewport","updatePosition","updateButtonDown","updateButtonUp","handleWheelEvent","onFocusOut","focus","preventDefault","stopPropagation","offsetX","clientWidth","offsetY","clientHeight","wheelEvent","deltaX","deltaY","targetTouches","clientX","offsetLeft","clientY","offsetTop","radiusX","radiusY","Animator","animations","speed","reset","currentFrame","_currentAnimation","_assetsReady","animator","processAssets","animation","spriteRenderer","renderSprite","isArray","fps","frames","frame","padding","camera","addCameraData","webGLManager","gameConfig","canvasColor","BallCollider","physics","BoxCollider","EdgeCollider","PolygonCollider","TilemapCollider","composite","colliders","collidersColor","collisionMethod","SAT","AABB","viewport","culledRenderData","getCameraData","setViewport","getRenderData","isInViewPort","applyCullingInTiles","setRenderData","setObjectForResizeable","setObjectForMask","setObjectForGeometric","setObjectForText","setObjectForTilemap","rotatedWidth","rotatedHeight","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","maskRenderer","removeCameraData","removeRenderData","LightRenderer","_boundingBox","lightRenderers","updateLightRendererBoundingBox","darknessRenderer","updatDarknessRendererBoundingBox","lightRenderer","scaledRadius","scaledWidth","scaledHeight","defaultTextureAtlasOptions","textRenderer","renderDataFactory","orientation","realWidth","realHeight","RigidBodyType","RigidBody","Dynamic","velocity","gravity","acceleration","transformSystem","Kinematic","displacement","totalAcceleration","scaledAcceleration","scaledVelocity","BaseUpdateColliderShapeSystem","auxMin","auxMax","auxScaledOffset","updatePositionAndVertices","translatePosition","auxAngle","updateBoundingBox","updateCircumferenceBoundingBox","updatePolygonBoundingBox","updateProjectionAxes","super","ballCollider","boxCollider","edgeCollider","polygonCollider","tilemapCollider","useEdges","useBoxes","needsCollider","generateRectangleVertices","getNeighbors","neighbor","hVertices","vVertices","hasTile","createEdge","broadPhaseResolver","collisionMatrix","collisionResolutionMethod","collisionRepository","colliderTypes","narrowPhase","broadPhase","remote","local","isResolved","resolution","localEntity","remoteEntity","maxCorrection","rigidBody","dynamicBodies","defaultFontSize","positionInCameraViewport","positionInWorldspace","renderDataPerCamera","mousePosition","createRenderData","textColor","updateRenderDataPosition","textPosition","Right","textRendererBoundingBoxes","textBoxColor","systemsByGroup","Physics","Render","sceneManager","running","gameLoopAccumulator","enableSystems","requestAnimationLoop","asyncPhysicsLoop","gameLogicIteration","renderIteration","requestAnimationFrame","GameLogic","GamePreRender","physicsIntervalId","physicsIteration","GamePhysics","container","lastSystemTypeId","setDefaultValues","containerNode","HTMLElement","headless","_h","_j","collisionBroadPhaseMethod","_k","_l","_m","createCanvas","tabIndex","appendChild","setupManagers","setupEngineSystems","headlessFilter","setupPhysicsDependencies","setupExternalDependencies","config","dependencies","GameSystem","ENGINE_SYMBOLS","bootstrap","addDependencyType","dependencyType","addDependencyInstance","dependencyInstance","addSystems","degrees","console","warn","radians","random","prefix","padStart"],"mappings":"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","x_google_ignoreList":[30,31,47]}