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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.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","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.cjs.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","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]}