angry-pixel 2.1.7 → 2.1.9

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","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 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 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 (lineWidth + wordWidth === width) {\n lineWidth += wordWidth;\n newLine.push(word);\n result.push({ width: lineWidth, 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 + spaceWidth;\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","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]}