angry-pixel 2.1.8 → 2.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.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/Game.ts","../../../packages/engine/src/system/GameSystem.ts","../../../packages/engine/src/utils/misc/decorator.ts","../../../packages/engine/src/utils/misc/audio.ts","../../../packages/engine/src/index.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","randomInt","random","randomFloat","decimals","fixedRound","range","start","end","steps","between","radiansToDegrees","radians","PI","degreesToRadians","degrees","rgbToHex","g","prefix","hex","padStart","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","disableComponent","component","enabled","lastEntityId","lastComponentTypeId","entities","components","disabledEntities","manuallyDisabledEntities","disabledComponents","parentEntities","childEntities","createEntity","parent","addComponent","setParent","createEntityFromArchetype","createComponentsFromArchetype","disableEntity","removeEntity","getChildren","row","delete","getParent","removeAllEntities","preserveComponentType","search","entitiesToPreserve","isEntity","isEntityEnabled","enableEntity","disableEntitiesByComponent","componentType","getComponentTypeId","enableEntitiesByComponent","oldParent","removeParent","removeChild","componentName","hasComponent","getComponent","getComponents","entityComponent","updateComponentData","updateCallback","getEntityForComponent","removeComponent","arg1","arg2","isComponentEnabled","enableComponent","getComponentFromParent","current","includeDisabled","searchEntitiesByComponents","componentTypes","first","toCompare","splice","searchInChildren","includes","__ecs_type_id","systems","findSystemIndex","systemType","findIndex","system","addSystem","group","hasSystem","getSystem","index","groupHasSystems","enableSystem","onCreate","onEnabled","disableSystem","onDisabled","setExecutionOrder","removeSystem","onDestroy","disableAllSystems","onUpdate","GamepadController","buttons","_dpadAxes","_leftStickAxes","_rightStickAxes","dpadAxes","dpadRight","dpadLeft","dpadUp","dpadDown","leftStickAxes","leftStickHorizontal","leftStickVertical","rightStickAxes","rightStickHorizontal","rightStickVertical","bottomFace","rightFace","leftFace","topFace","leftShoulder","rightShoulder","leftTrigger","rightTrigger","back","leftStickButton","rightStickButton","anyButtonPressed","values","find","vibrate","duration","weakMagnitude","strongMagnitude","startDelay","vibrationInput","Keyboard","pressedKeys","isPressed","keyCode","orPressed","keyCodes","reduce","andPressed","isPressedReturn","returnTrue","returnFalse","orPressedReturn","andPressedReturn","Mouse","leftButtonPressed","scrollButtonPressed","rightButtonPressed","positionInViewport","hasMoved","wheelScroll","TouchScreen","touching","interactions","keyboard","mouse","touchScreen","gamepads","allowedPhysicsFramerates","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","AssetType","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","gameLogicSystem","addSystemGroup","GameLogic","gamePhysicsSystem","GamePhysics","gamePreRenderSystem","GamePreRender","__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","exec","parseInt","CanvasColorRenderer","render","hexColor","rgb","clearColor","COLOR_BUFFER_BIT","RenderDataType","GeometricShape","MaskShape","GeometricRenderer","programManager","mat4.create","modelMatrix","textureMatrix","circumferencePositionBuffer","createBuffer","linesPositionBuffer","angle","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","Scene","addSystems","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","Animation","padding","frames","fps","animator","processAssets","animation","spriteRenderer","renderSprite","isArray","frame","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","physicsIntervalId","physicsIteration","container","lastSystemTypeId","setDefaultValues","containerNode","HTMLElement","headless","_h","collisionBroadPhaseMethod","_j","_k","_l","createCanvas","tabIndex","appendChild","setupManagers","setupEngineSystems","headlessFilter","setupPhysicsDependencies","setupExternalDependencies","config","dependencies","Game","bootstrap","addDependencyType","dependencyType","addDependencyInstance","dependencyInstance","GameSystem","playSfx","console","warn","stopSfx","BuiltInDependencyIdentifiers"],"mappings":"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","x_google_ignoreList":[3,43,44]}
1
+ {"version":3,"file":"index.esm.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/Game.ts","../../../packages/engine/src/system/GameSystem.ts","../../../packages/engine/src/utils/misc/decorator.ts","../../../packages/engine/src/utils/misc/audio.ts","../../../packages/engine/src/index.ts"],"sourcesContent":["/**\n * Broad phase collision methods\n * - QuadTree: Stores the shapes in an incremental quad tree.\n * - SpartialGrid: Stores the shapes in an incremental spartial grid.\n * @category Config\n * @public\n */\nexport var BroadPhaseMethods;\n(function (BroadPhaseMethods) {\n BroadPhaseMethods[BroadPhaseMethods[\"QuadTree\"] = 0] = \"QuadTree\";\n BroadPhaseMethods[BroadPhaseMethods[\"SpartialGrid\"] = 1] = \"SpartialGrid\";\n})(BroadPhaseMethods || (BroadPhaseMethods = {}));\n//# sourceMappingURL=IBroadPhaseResolver.js.map","/**\n * Represents a two-dimensional vector with x and y components.\\\n * Provides static methods for common vector operations\n * like addition, subtraction, scaling, dot product, cross product, normalization and more.\\\n * Used throughout the engine for storing 2D positions, directions, velocities and other vector quantities.\n * @category Math\n * @public\n * @example\n * ```js\n * const v1 = new Vector2(2, 1);\n * const v2 = new Vector2(3, 2);\n * const v3 = new Vector2(); // zero vector\n *\n * Vector2.add(v3, v1, v2);\n * v3.x // 5\n * v3.y // 3\n * ```\n */\nexport class Vector2 {\n constructor(x = 0, y = 0) {\n this._x = x;\n this._y = y;\n }\n get x() {\n return this._x;\n }\n set x(x) {\n this._x = x;\n }\n get y() {\n return this._y;\n }\n set y(y) {\n this._y = y;\n }\n /**\n * Get the magnitude of the vector\n *\n * @returns The magnitude of the vector\n */\n get magnitude() {\n return Math.sqrt(Math.pow(this._x, 2) + Math.pow(this._y, 2));\n }\n /**\n * Get the direction as an unit vector\n *\n * @returns The direction vector\n */\n get direction() {\n if (!this._direction)\n this._direction = new Vector2();\n return Vector2.unit(this._direction, this);\n }\n /**\n * Set the vector\n *\n * @param x The x value\n * @param y The y value\n */\n set(x, y) {\n this._x = x;\n this._y = y;\n }\n /**\n * Copy the target vector properties\n *\n * @param vector The vector to copy from\n */\n copy(vector) {\n this.set(vector.x, vector.y);\n }\n /**\n * Compare if two vector are equals\n *\n * @param vector The vector to compare\n * @returns True if the vectors are equals, false if not\n */\n equals(vector) {\n return this._x === vector.x && this._y === vector.y;\n }\n /**\n * Colne a vector into a new instace\n *\n * @returns The cloned vector\n */\n clone() {\n return new Vector2(this._x, this._y);\n }\n /**\n * Get the distance with another vector\n *\n * @param vector The vector to compare\n * @returns The magnitude of the distance\n */\n distance(vector) {\n return Math.sqrt(Math.pow((this._x - vector.x), 2) + Math.pow((this._y - vector.y), 2));\n }\n /**\n * Calculates a + b\n * @param out The output vector\n * @param a The first operand\n * @param b The second operand\n * @returns The output vector\n * @example\n * ```js\n * const v1 = new Vector2(2, 1);\n * const v2 = new Vector2(3, 2);\n * const v3 = Vector2.add(new Vector2(), v1, v2);\n * v3.x // 5\n * v3.y // 3\n * ```\n */\n static add(out, a, b) {\n out.set(a.x + b.x, a.y + b.y);\n return out;\n }\n /**\n * Calculates a - b\n *\n * @param out The output vector\n * @param a The first operand\n * @param b The second operand\n * @returns The output vector\n * @example\n * ```js\n * const v1 = new Vector2(3, 2);\n * const v2 = new Vector2(2, 1);\n * const v3 = Vector2.subtract(new Vector2(), v1, v2);\n * v3.x // 1\n * v3.y // 1\n * ```\n */\n static subtract(out, a, b) {\n out.set(a.x - b.x, a.y - b.y);\n return out;\n }\n /**\n * Returns the unit vector\n *\n * @param out The output vector\n * @param a The vector to get the unit\n * @returns The output vector\n * @example\n * ```js\n * const v1 = new Vector2(3, 0);\n * const v2 = Vector2.unit(new Vector2(), v1);\n * v2.x // 1\n * v2.y // 0\n * ```\n */\n static unit(out, a) {\n a.magnitude === 0 ? out.set(0, 0) : out.set(a.x / a.magnitude, a.y / a.magnitude);\n return out;\n }\n /**\n * Normalize a vector\n *\n * @param out The output vector\n * @param a The vector to normalize\n * @returns The output vector\n * @example\n * ```js\n * const v1 = new Vector2(0, 2);\n * const v2 = Vector2.normal(new Vector2(), v1);\n * v2.x // -2\n * v2.y // 0\n * ```\n */\n static normal(out, a) {\n out.set(-a.y, a.x);\n return this.unit(out, out);\n }\n /**\n * Scale a vector\n *\n * @param out The output vector\n * @param a The vector to scale\n * @param scalar The scalar value\n * @returns The output vector\n * @example\n * ```js\n * const v1 = new Vector2(3, 2);\n * const v2 = Vector2.scale(new Vector2(), v1, 2);\n * v2.x // 6\n * v2.y // 4\n * ```\n */\n static scale(out, a, scalar) {\n out.set(a.x * scalar, a.y * scalar);\n return out;\n }\n /**\n * Calculates the dot product of two vectors and returns a scalar value\n *\n * @param a The first operand\n * @param b The second operand\n * @returns The dot product result\n * @example\n * ```js\n * const v1 = new Vector2(3, 2);\n * const v2 = new Vector2(2, 1);\n * Vector2.dot(v1, v2); // 8\n * ```\n */\n static dot(a, b) {\n return a.x * b.x + a.y * b.y;\n }\n /**\n * Calculates the cross product of two vectors and returns a scalar value\n *\n * @param a The first operand\n * @param b The second operand\n * @returns The cross produc result\n * @example\n * ```js\n * const v1 = new Vector2(3, 2);\n * const v2 = new Vector2(2, 1);\n * Vector2.cross(v1, v2); // -1\n * ```\n */\n static cross(a, b) {\n return a.x * b.y - a.y * b.x;\n }\n /**\n * Rounds a vector\n *\n * @param a The vector to round\n * @returns The output vector\n * @example\n * ```js\n * const v1 = new Vector2(3.9, 2.2);\n * const v2 = Vector2.round(new Vector2(), v1);\n * v2.x // 4\n * v2.y // 2\n * ```\n * @example\n * ```js\n * const v1 = new Vector2(3.9, 2.2);\n * Vector2.round(v1, v1);\n * v1.x // 4\n * v1.y // 2\n * ```\n */\n static round(out, a) {\n out.set(Math.round(a.x), Math.round(a.y));\n return out;\n }\n /**\n * Floors a vector\n *\n * @param a The vector to floor\n * @returns The output vector\n * @example\n * ```js\n * const v1 = new Vector2(3.9, 2.2);\n * const v2 = Vector2.floor(new Vector2(), v1);\n * v2.x // 3\n * v2.y // 2\n * ```\n * @example\n * ```js\n * const v1 = new Vector2(3.9, 2.2);\n * Vector2.floor(v1, v1);\n * v1.x // 3\n * v1.y // 2\n * ```\n */\n static floor(out, a) {\n out.set(Math.floor(a.x), Math.floor(a.y));\n return out;\n }\n /**\n * Ceils a vector\n *\n * @param a The vector to ceil\n * @returns The output vector\n * @example\n * ```js\n * const v1 = new Vector2(3.9, 2.2);\n * const v2 = Vector2.ceil(new Vector2(), v1);\n * v2.x // 4\n * v2.y // 3\n * ```\n * @example\n * ```js\n * const v1 = new Vector2(3.9, 2.2);\n * Vector2.ceil(v1, v1);\n * v1.x // 4\n * v1.y // 3\n * ```\n */\n static ceil(out, a) {\n out.set(Math.ceil(a.x), Math.ceil(a.y));\n return out;\n }\n toString() {\n return `(${this._x}, ${this._y})`;\n }\n}\n//# sourceMappingURL=Vector2.js.map","import { Vector2 } from \"./Vector2\";\n/**\n * Represents an axis-aligned bounding rectangle (AABR) defined by position, width and height.\n * The position represents the bottom-left corner of the rectangle.\\\n * Provides methods and properties for manipulating and querying the rectangle's geometry.\n * @category Math\n * @public\n * @example\n * ```js\n * const rect = new Rectangle(0, 0, 100, 100);\n * rect.width // 100\n * rect.height // 100\n *\n * rect.x // 0\n * rect.y // 0\n *\n * rect.x1 // 100\n * rect.y1 // 100\n *\n * rect.center // { x: 50, y: 50 }\n *\n * rect.intersects(new Rectangle(50, 50, 100, 100)) // true\n *\n * rect.contains(new Vector2(50, 50)) // true\n *\n * rect.contains(new Rectangle(100, 100, 100, 100)) // false\n *\n * rect.toString() // \"(0, 0, 100, 100)\"\n * ```\n */\nexport class Rectangle {\n constructor(x = 0, y = 0, width = 0, height = 0) {\n this.width = 0;\n this.height = 0;\n this._position = new Vector2();\n this._center = new Vector2();\n this.set(x, y, width, height);\n }\n get x() {\n return this._position.x;\n }\n set x(value) {\n this._position.set(value, this._position.y);\n }\n get y() {\n return this._position.y;\n }\n set y(value) {\n this._position.set(this._position.x, value);\n }\n get x1() {\n return this._position.x + this.width;\n }\n get y1() {\n return this._position.y + this.height;\n }\n get position() {\n return this._position;\n }\n set position(position) {\n this._position.set(position.x, position.y);\n }\n get center() {\n this._center.set(this.x + this.width / 2, this.y + this.height / 2);\n return this._center;\n }\n /**\n * Set the rectangle\n *\n * @param x\n * @param y\n * @param width\n * @param height\n */\n set(x, y, width, height) {\n this._position.set(x, y);\n this.width = width;\n this.height = height;\n }\n /**\n * Compare if two rectangles are equals\n *\n * @param rectangle The rectangle to compare\n * @returns TRUE if the rectangles are equals, FALSE if not\n */\n equals(rectangle) {\n return (this.position.equals(rectangle.position) &&\n this.width === rectangle.width &&\n this.height === rectangle.height);\n }\n /**\n * Copy the target rectangle properties\n *\n * @param rect The rectangle to copy from\n */\n copy(rect) {\n this.set(rect.x, rect.y, rect.width, rect.height);\n }\n /**\n * Check if the target rectangle is overlapping\n *\n * @param rect The target rectangle\n * @returns TRUE or FALSE\n */\n intersects(rect) {\n return !(this.x1 < rect.x || this.x > rect.x1 || this.y1 < rect.y || this.y > rect.y1);\n }\n contains(object) {\n if (object instanceof Rectangle) {\n return object.x1 <= this.x1 && object.x >= this.x && object.y1 <= this.y1 && object.y >= this.y;\n }\n else if (object instanceof Vector2) {\n return !(object.x < this.x || object.y < this.y || object.x >= this.x1 || object.y >= this.y1);\n }\n return false;\n }\n toString() {\n return `(${this.position.x}, ${this.position.y}, ${this.width}, ${this.height})`;\n }\n}\n//# sourceMappingURL=Rectangle.js.map","/**\n * Constrains a number to be within a specified range by clamping it between a minimum and maximum value.\\\n * If the value is less than the minimum, returns the minimum. If greater than the maximum, returns the maximum.\\\n * Otherwise returns the original value unchanged.\n * @category Math\n * @public\n * @param value number to clamp\n * @param min min value\n * @param max max value\n * @returns clamped value\n * @example\n * ```js\n * clamp(10, 0, 5); // 5\n * clamp(10, 0, 15); // 10\n * ```\n */\nexport const clamp = (value, min, max) => Math.min(max, Math.max(min, value));\n/**\n * Returns a random integer number between the given minimum (inclusive) and maximum (inclusive) values.\\\n * Uses Math.random() internally to generate the random number, then rounds and scales it to fit the desired range.\n * @category Math\n * @public\n * @param min min value\n * @param max max value\n * @returns the random int value\n * @example\n * ```js\n * randomInt(0, 10); // 5\n * ```\n */\nexport const randomInt = (min, max) => Math.round(Math.random() * (max - min)) + min;\n/**\n * Returns a random floating point number between the given minimum (inclusive) and maximum (inclusive) values.\\\n * Uses Math.random() internally to generate the random number and can be rounded to a specified number of decimal places.\n * @category Math\n * @public\n * @param min min value\n * @param max max value\n * @returns the random float value\n * @example\n * ```js\n * randomFloat(0, 10); // 5.23\n * randomFloat(0, 10, 4); // 5.2345\n * ```\n */\nexport const randomFloat = (min, max, decimals = 2) => fixedRound(Math.random() * (max - min) + min, decimals);\n/**\n * Rounds a floating point number to a specified number of decimal places.\\\n * Uses Math.round() internally to avoid floating point precision errors that can occur with direct decimal arithmetic.\\\n * For example, 5.2345 rounded to 2 decimal places becomes 5.23.\n * @category Math\n * @public\n * @param value the value to round\n * @param decimals the number of decimals\n * @returns the rounded value\n * @example\n * ```js\n * fixedRound(5.2345, 2); // 5.23\n * ```\n */\nexport const fixedRound = (value, decimals) => Math.round(value * Math.pow(10, decimals)) / Math.pow(10, decimals);\n/**\n * Generates an array containing a sequence of numbers from start to end (inclusive) with optional step size.\\\n * For example, range(0,5) produces [0,1,2,3,4,5] and range(0,10,2) produces [0,2,4,6,8,10].\\\n * Useful for creating numeric sequences and iteration ranges.\n * @category Math\n * @public\n * @param start the starting value\n * @param end the end value\n * @param steps the steps to move\n * @returns number range\n * @example\n * ```js\n * range(0, 5); // [0, 1, 2, 3, 4, 5]\n * range(0, 10, 2); // [0, 2, 4, 6, 8, 10]\n * ```\n */\nexport const range = (start, end, steps = 1) => {\n const range = [];\n for (let i = start; i <= end; i += steps) {\n range.push(i);\n }\n return range;\n};\n/**\n * Checks if a number falls within a specified range (inclusive of both minimum and maximum bounds).\\\n * Returns true if the value is greater than or equal to the minimum and less than or equal to the maximum.\\\n * Useful for range checking, input validation, and boundary testing.\n * @category Math\n * @public\n * @param value number to compare\n * @param min min value\n * @param max max value\n * @returns true if the number is between the min and the max, false instead\n * @example\n * ```js\n * between(5, 0, 10); // true\n * between(5, 0, 4); // false\n * ```\n */\nexport const between = (value, min, max) => {\n return value >= min && value <= max;\n};\n/**\n * Converts an angle from radians to degrees by multiplying by (180/π).\\\n * Useful for converting between angular measurement systems and displaying angles in a more human-readable format.\n * @param radians\n * @returns degrees\n * @category Math\n * @public\n * @example\n * ```js\n * radiansToDegrees(Math.PI); // 180\n * ```\n */\nexport const radiansToDegrees = (radians) => radians * (180 / Math.PI);\n/**\n * Converts an angle from degrees to radians by multiplying by (π/180).\\\n * Useful for converting between angular measurement systems and performing trigonometric calculations.\n * @param degrees\n * @returns radians\n * @category Math\n * @public\n * @example\n * ```js\n * degreesToRadians(180); // 3.141592653589793\n * ```\n */\nexport const degreesToRadians = (degrees) => degrees * (Math.PI / 180);\n/**\n * Converts RGB color values to a hexadecimal color string.\\\n * Takes red, green and blue color components (0-255) and returns a hex color code.\\\n * Useful for converting between color formats and generating color strings for CSS/HTML.\n * @param rgb\n * @param prefix default is \"#\"\n * @returns string\n * @public\n * @category Math\n * @example\n * ```js\n * // default prefix \"#\"\n * rgbToHex({ r: 255, g: 255, b: 255 }); // #ffffff\n * ```\n * @example\n * ```js\n * // no prefix\n * rgbToHex({ r: 0, g: 255, b: 0 }, \"\"); // 00ff00\n * ```\n */\nexport const rgbToHex = ({ r, g, b }, prefix = \"#\") => {\n const hex = (x) => x.toString(16).padStart(2, \"0\");\n return `${prefix}${hex(r)}${hex(g)}${hex(b)}`;\n};\n//# sourceMappingURL=utils.js.map","export class Container {\n constructor() {\n this.instances = new Map();\n this.types = new Map();\n }\n add(type, name) {\n if (!name && !type.prototype.__ioc_injectable) {\n throw new Error(`Type ${type.name} is not injectable`);\n }\n this.types.set(name !== null && name !== void 0 ? name : type.prototype.__ioc_injectable, type);\n return this;\n }\n set(name, dependency) {\n this.instances.set(name, dependency);\n return this;\n }\n get(name) {\n var _a, _b;\n if (!this.instances.has(name)) {\n const type = this.types.get(name);\n if (!type)\n throw new Error(`${name.toString()} is not a valid type`);\n // constructor params\n const instance = new type(...((_a = type.prototype.__ioc_inject_constructor) !== null && _a !== void 0 ? _a : []).map((inject) => this.get(inject)));\n // class props\n ((_b = type.prototype.__ioc_inject_prop) !== null && _b !== void 0 ? _b : []).forEach(([prop, dependency]) => (instance[prop] = this.get(dependency)));\n this.instances.set(name, instance);\n }\n return this.instances.get(name);\n }\n has(name) {\n return this.types.has(name) || this.instances.has(name);\n }\n}\n/**\n * Decorator to mark a class as an injectable dependency that can be managed by the IoC container.\\\n * Injectable classes can be automatically instantiated and have their dependencies resolved when requested through the container.\\\n * This enables dependency injection and inversion of control.\n * @param name the name to identify the dependency\n * @public\n * @category Decorators\n * @example\n * ```typescript\n * @injectable(\"SomeDependency\")\n * class SomeDependency {}\n * ```\n */\nexport function injectable(name) {\n return function (target) {\n if (!target.prototype.__ioc_injectable || target.prototype.__ioc_injectable !== name) {\n target.prototype.__ioc_injectable = name;\n }\n };\n}\n/**\n * Decorator to mark a property or constructor parameter as a dependency that should be automatically injected by the IoC container.\\\n * When applied to a property or constructor parameter, the container will resolve and inject the specified dependency at runtime.\n * @param name the name to identify the dependency\n * @public\n * @category Decorators\n * @example\n * ```typescript\n * class SomeClass {\n * private anotherDependency: DependencyType;\n *\n * constructor(@inject(\"AnotherDependency\") anotherDependency: DependencyType) {\n * this.anotherDependency = anotherDependency;\n * }\n * }\n * ```\n * @example\n * ```typescript\n * class SomeClass {\n * @inject(\"AnotherDependency\") private anotherDependency: DependencyType;\n * }\n * ```\n */\nexport function inject(name) {\n return function (target, propertyKey, parameterIndex) {\n if (parameterIndex !== undefined) {\n // constructor param\n if (!target.prototype.__ioc_inject_constructor)\n target.prototype.__ioc_inject_constructor = [];\n target.prototype.__ioc_inject_constructor[parameterIndex] = name;\n }\n else if (propertyKey !== undefined) {\n // class prop\n if (!target.constructor.prototype.__ioc_inject_prop)\n target.constructor.prototype.__ioc_inject_prop = [];\n target.constructor.prototype.__ioc_inject_prop.push([propertyKey, name]);\n }\n };\n}\n//# sourceMappingURL=container.js.map","export const SYMBOLS = {\n CollisionRepository: Symbol.for(\"CollisionRepository\"),\n CollisionBroadphaseResolver: Symbol.for(\"CollisionBroadphaseResolver\"),\n CollisionResolutionMethod: Symbol.for(\"CollisionResolutionMethod\"),\n CollisionAABBResolver: Symbol.for(\"CollisionAABBResolver\"),\n CollisionCircumferenceAABBResolver: Symbol.for(\"CollisionCircumferenceAABBResolver\"),\n CollisionCircumferenceResolver: Symbol.for(\"CollisionCircumferenceResolver\"),\n CollisionSatResolver: Symbol.for(\"CollisionSatResolver\"),\n CollisionMatrix: Symbol.for(\"CollisionMatrix\"),\n};\n//# sourceMappingURL=symbols.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar QuadTree_1;\nimport { Rectangle, Vector2 } from \"@angry-pixel/math\";\nimport { injectable } from \"@angry-pixel/ioc\";\nimport { SYMBOLS } from \"../symbols\";\nconst MAX_DEPTH = 8;\nconst MAX_RECTS = 16;\nlet QuadTree = QuadTree_1 = class QuadTree {\n constructor(bounds = new Rectangle(), depth = 0) {\n this.rects = new Map();\n this.children = null;\n // cache\n this.minArea = new Vector2();\n this.maxArea = new Vector2();\n this.bounds = bounds;\n this.depth = depth;\n }\n update(shapes) {\n this.clear();\n if (shapes.length === 0)\n return;\n this.resize(shapes);\n shapes.forEach(({ id, boundingBox }) => this.insert(id, boundingBox));\n }\n clear() {\n this.rects.clear();\n if (this.children) {\n this.children.forEach((child) => child.clear());\n this.children = null;\n }\n }\n resize(shapes) {\n this.minArea.set(Infinity, Infinity);\n this.maxArea.set(-Infinity, -Infinity);\n shapes.forEach(({ boundingBox: box }) => {\n this.minArea.set(Math.min(box.x, this.minArea.x), Math.min(box.y, this.minArea.y));\n this.maxArea.set(Math.max(box.x1, this.maxArea.x), Math.max(box.y1, this.maxArea.y));\n });\n this.bounds.set(this.minArea.x, this.minArea.y, this.maxArea.x - this.minArea.x, this.maxArea.y - this.minArea.y);\n }\n insert(id, rect) {\n if (!this.children && this.rects.size >= MAX_RECTS && this.depth < MAX_DEPTH) {\n this.subdivide();\n this.rects.forEach((value, key) => this.children.forEach((child) => {\n if (child.bounds.intersects(value)) {\n child.insert(key, value);\n }\n }));\n this.rects.clear();\n }\n if (this.children) {\n this.children.forEach((child) => {\n if (child.bounds.intersects(rect)) {\n child.insert(id, rect);\n }\n });\n }\n else {\n this.rects.set(id, rect);\n }\n }\n subdivide() {\n const x = this.bounds.x;\n const y = this.bounds.y;\n const width = this.bounds.width;\n const height = this.bounds.height;\n const halfWidth = width / 2;\n const halfHeight = height / 2;\n this.children = [\n new QuadTree_1(new Rectangle(x, y, halfWidth, halfHeight), this.depth + 1),\n new QuadTree_1(new Rectangle(x + halfWidth, y, halfWidth, halfHeight), this.depth + 1),\n new QuadTree_1(new Rectangle(x, y + halfHeight, halfWidth, halfHeight), this.depth + 1),\n new QuadTree_1(new Rectangle(x + halfWidth, y + halfHeight, halfWidth, halfHeight), this.depth + 1),\n ];\n }\n retrieve(rect) {\n const neighbors = [];\n this.retrieveFromNode(rect, neighbors);\n return neighbors;\n }\n retrieveFromNode(rect, result) {\n if (this.children) {\n this.children.forEach((child) => {\n if (child.bounds.intersects(rect)) {\n child.retrieveFromNode(rect, result);\n }\n });\n }\n else {\n this.rects.forEach((value, key) => {\n if (value.intersects(rect) && result.indexOf(key) === -1) {\n result.push(key);\n }\n });\n }\n }\n};\nQuadTree = QuadTree_1 = __decorate([\n injectable(SYMBOLS.CollisionBroadphaseResolver)\n], QuadTree);\nexport { QuadTree };\n//# sourceMappingURL=QuadTree.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Rectangle, Vector2 } from \"@angry-pixel/math\";\nimport { injectable } from \"@angry-pixel/ioc\";\nimport { SYMBOLS } from \"../symbols\";\nconst MAX_COLLIDERS_PER_CELL = 16;\nconst cell = (value, min, width, subdivisions) => Math.min(((value - min) / width) | 0, subdivisions - 1);\nlet SpartialGrid = class SpartialGrid {\n constructor() {\n this.area = new Rectangle();\n this.grid = [];\n this.rects = new Map();\n this.subdivisions = 0;\n // cache\n this.minArea = new Vector2();\n this.maxArea = new Vector2();\n this.coordinates = { x0: 0, x1: 0, y0: 0, y1: 0 };\n }\n update(shapes) {\n this.clear();\n if (shapes.length === 0)\n return;\n this.resize(shapes);\n shapes.forEach(({ id, boundingBox }) => this.insert(id, boundingBox));\n }\n clear() {\n this.grid = [];\n this.rects.clear();\n }\n resize(shapes) {\n this.minArea.set(Infinity, Infinity);\n this.maxArea.set(-Infinity, -Infinity);\n shapes.forEach(({ boundingBox: box }) => {\n this.minArea.set(Math.min(box.x, this.minArea.x), Math.min(box.y, this.minArea.y));\n this.maxArea.set(Math.max(box.x1, this.maxArea.x), Math.max(box.y1, this.maxArea.y));\n });\n this.area.set(this.minArea.x, this.minArea.y, this.maxArea.x - this.minArea.x, this.maxArea.y - this.minArea.y);\n this.updateSubdivisions(shapes.length);\n }\n updateSubdivisions(length) {\n this.subdivisions = ((length / MAX_COLLIDERS_PER_CELL) | 0) + 1;\n this.cellWidth = Math.ceil(this.area.width / this.subdivisions);\n this.cellHeight = Math.ceil(this.area.height / this.subdivisions);\n this.grid = [];\n for (let x = 0; x < this.subdivisions; x++) {\n this.grid[x] = [];\n for (let y = 0; y < this.subdivisions; y++) {\n this.grid[x][y] = [];\n }\n }\n }\n insert(id, box) {\n this.updateCoordinates(box);\n for (let x = this.coordinates.x0; x <= this.coordinates.x1; x++) {\n for (let y = this.coordinates.y0; y <= this.coordinates.y1; y++) {\n this.grid[x][y].push(id);\n }\n }\n this.rects.set(id, box);\n }\n retrieve(box) {\n const ids = new Set();\n this.updateCoordinates(box);\n for (let x = this.coordinates.x0; x <= this.coordinates.x1; x++) {\n for (let y = this.coordinates.y0; y <= this.coordinates.y1; y++) {\n this.grid[x][y].forEach((id) => {\n if (this.rects.get(id).intersects(box)) {\n ids.add(id);\n }\n });\n }\n }\n return Array.from(ids);\n }\n updateCoordinates(area) {\n this.coordinates.x0 = cell(area.x, this.area.x, this.cellWidth, this.subdivisions);\n this.coordinates.x1 = cell(area.x1, this.area.x, this.cellWidth, this.subdivisions);\n this.coordinates.y0 = cell(area.y, this.area.y, this.cellHeight, this.subdivisions);\n this.coordinates.y1 = cell(area.y1, this.area.y, this.cellHeight, this.subdivisions);\n }\n};\nSpartialGrid = __decorate([\n injectable(SYMBOLS.CollisionBroadphaseResolver)\n], SpartialGrid);\nexport { SpartialGrid };\n//# sourceMappingURL=SpartialGrid.js.map","import { Rectangle, Vector2 } from \"@angry-pixel/math\";\n/** @internal */\nexport class Polygon {\n get vertexModel() {\n return this._vertexModel;\n }\n set vertexModel(vertexModel) {\n this._vertexModel = vertexModel;\n if (vertexModel.length === 2) {\n this.vertices = [new Vector2(), new Vector2()];\n this.projectionAxes = [new Vector2()];\n return;\n }\n this.vertices = [];\n this.projectionAxes = [];\n this._vertexModel.forEach(() => {\n this.vertices.push(new Vector2());\n this.projectionAxes.push(new Vector2());\n });\n }\n constructor(vertexModel, rotation = 0) {\n this.rotation = rotation;\n this.boundingBox = new Rectangle();\n this.collider = undefined;\n this.entity = undefined;\n this.id = undefined;\n this.ignoreCollisionsWithLayers = undefined;\n this.layer = undefined;\n this.position = new Vector2();\n this.projectionAxes = [];\n this.radius = 0;\n this.vertices = [];\n this.updateCollisions = true;\n this._vertexModel = [];\n this.vertexModel = vertexModel;\n }\n}\n/** @internal */\nexport class Circumference {\n constructor(radius) {\n this.radius = radius;\n this.boundingBox = new Rectangle();\n this.collider = undefined;\n this.entity = undefined;\n this.id = undefined;\n this.ignoreCollisionsWithLayers = undefined;\n this.layer = undefined;\n this.position = new Vector2();\n this.projectionAxes = [new Vector2()];\n this.rotation = 0;\n this.vertexModel = [];\n this.vertices = [new Vector2(), new Vector2()];\n this.updateCollisions = true;\n }\n}\n//# sourceMappingURL=Shape.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { inject, injectable } from \"@angry-pixel/ioc\";\nimport { SYMBOLS } from \"../symbols\";\nimport { Circumference, Polygon } from \"../Shape\";\nlet AABBMethod = class AABBMethod {\n constructor(AABBResolver, circumferenceAABBResolver, circumferenceResolver) {\n this.AABBResolver = AABBResolver;\n this.circumferenceAABBResolver = circumferenceAABBResolver;\n this.circumferenceResolver = circumferenceResolver;\n }\n findCollision(shapeA, shapeB) {\n if (shapeA instanceof Polygon && shapeB instanceof Polygon) {\n return this.AABBResolver.resolve(shapeA, shapeB);\n }\n else if (shapeA instanceof Circumference && shapeB instanceof Polygon) {\n return this.circumferenceAABBResolver.resolve(shapeA, shapeB);\n }\n else if (shapeA instanceof Polygon && shapeB instanceof Circumference) {\n return this.circumferenceAABBResolver.resolve(shapeB, shapeA, true);\n }\n else if (shapeA instanceof Circumference && shapeB instanceof Circumference) {\n return this.circumferenceResolver.resolve(shapeA, shapeB);\n }\n }\n};\nAABBMethod = __decorate([\n injectable(SYMBOLS.CollisionResolutionMethod),\n __param(0, inject(SYMBOLS.CollisionAABBResolver)),\n __param(1, inject(SYMBOLS.CollisionCircumferenceAABBResolver)),\n __param(2, inject(SYMBOLS.CollisionCircumferenceResolver))\n], AABBMethod);\nexport { AABBMethod };\n//# sourceMappingURL=AABBMethod.js.map","/**\n * Resolution phase collision methods\n * - AABB (axis-aligned bounding box): It only works with axis-aligned rectangles and lines and cimcurferences.\n * - SAT (Separation axis theorem): It works with every type of shape.\n * @category Config\n * @public\n */\nexport var CollisionMethods;\n(function (CollisionMethods) {\n CollisionMethods[CollisionMethods[\"AABB\"] = 0] = \"AABB\";\n CollisionMethods[CollisionMethods[\"SAT\"] = 1] = \"SAT\";\n})(CollisionMethods || (CollisionMethods = {}));\n//# sourceMappingURL=CollisionMethod.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { inject, injectable } from \"@angry-pixel/ioc\";\nimport { SYMBOLS } from \"../symbols\";\nimport { Circumference } from \"../Shape\";\nlet SatMethod = class SatMethod {\n constructor(circumferenceResolver, satResolver) {\n this.circumferenceResolver = circumferenceResolver;\n this.satResolver = satResolver;\n }\n findCollision(shapeA, shapeB) {\n if (shapeA instanceof Circumference && shapeB instanceof Circumference) {\n return this.circumferenceResolver.resolve(shapeA, shapeB);\n }\n else {\n return this.satResolver.resolve(shapeA, shapeB);\n }\n }\n};\nSatMethod = __decorate([\n injectable(SYMBOLS.CollisionResolutionMethod),\n __param(0, inject(SYMBOLS.CollisionCircumferenceResolver)),\n __param(1, inject(SYMBOLS.CollisionSatResolver))\n], SatMethod);\nexport { SatMethod };\n//# sourceMappingURL=SatMethod.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { injectable } from \"@angry-pixel/ioc\";\nimport { SYMBOLS } from \"../symbols\";\nimport { Vector2 } from \"@angry-pixel/math\";\nlet AABBResolver = class AABBResolver {\n constructor() {\n this.direction = new Vector2();\n this.resolutionDirection = new Vector2();\n }\n resolve({ boundingBox: boxA }, { boundingBox: boxB }) {\n this.overlapX = Math.min(boxA.x1, boxB.x1) - Math.max(boxA.x, boxB.x);\n this.overlapY = Math.min(boxA.y1, boxB.y1) - Math.max(boxA.y, boxB.y);\n if (this.overlapX < 0 || this.overlapY < 0)\n return undefined;\n this.checkOverlapForLines(boxA, boxB);\n this.direction.set(Math.sign(boxB.center.x - boxA.center.x), Math.sign(boxB.center.y - boxA.center.y));\n this.preventContainment(boxA, boxB);\n if (this.overlapY < this.overlapX) {\n this.minOverlap = this.overlapY;\n this.resolutionDirection.set(0, this.direction.y);\n }\n else {\n this.minOverlap = this.overlapX;\n this.resolutionDirection.set(this.direction.x, this.overlapY === this.overlapX ? this.direction.y : 0);\n }\n return {\n direction: Vector2.unit(new Vector2(), this.resolutionDirection),\n penetration: this.minOverlap,\n };\n }\n checkOverlapForLines(boxA, boxB) {\n if ((boxA.width === 0 || boxB.width === 0) && this.overlapX === 0) {\n this.overlapX = Math.min(Math.abs(boxA.x - boxB.x), Math.abs(boxA.x1 - boxB.x1));\n }\n if ((boxA.height === 0 || boxB.height === 0) && this.overlapY === 0) {\n this.overlapY = Math.min(Math.abs(boxA.y - boxB.y), Math.abs(boxA.y1 - boxB.y1));\n }\n }\n preventContainment(boxA, boxB) {\n if (this.overlapY > 0) {\n if ((boxA.y1 > boxB.y1 && boxA.y < boxB.y) || (boxA.y1 < boxB.y1 && boxA.y > boxB.y)) {\n const minSep = Math.abs(boxA.y - boxB.y);\n const maxSep = Math.abs(boxA.y1 - boxB.y1);\n this.overlapY += minSep < maxSep ? minSep : maxSep;\n }\n }\n if (this.overlapX > 0) {\n if ((boxA.x1 > boxB.x1 && boxA.x < boxB.x) || (boxA.x1 < boxB.x1 && boxA.x > boxB.x)) {\n const minSep = Math.abs(boxA.x - boxB.x);\n const maxSep = Math.abs(boxA.x1 - boxB.x1);\n this.overlapX += minSep < maxSep ? minSep : maxSep;\n }\n }\n }\n};\nAABBResolver = __decorate([\n injectable(SYMBOLS.CollisionAABBResolver)\n], AABBResolver);\nexport { AABBResolver };\n//# sourceMappingURL=AABBResolver.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { injectable } from \"@angry-pixel/ioc\";\nimport { SYMBOLS } from \"../symbols\";\nimport { clamp, Vector2 } from \"@angry-pixel/math\";\nlet CircumferenceAABBResolver = class CircumferenceAABBResolver {\n constructor() {\n this.closestPoint = new Vector2();\n this.distance = new Vector2();\n this.direction = new Vector2();\n }\n resolve(shapeA, shapeB, invert = false) {\n this.closestPoint.set(clamp(shapeA.position.x, shapeB.boundingBox.x, shapeB.boundingBox.x1), clamp(shapeA.position.y, shapeB.boundingBox.y, shapeB.boundingBox.y1));\n Vector2.subtract(this.distance, this.closestPoint, shapeA.position);\n if (this.distance.magnitude > shapeA.radius)\n return undefined;\n Vector2.unit(this.direction, this.distance);\n return {\n direction: invert ? Vector2.scale(new Vector2(), this.direction, -1) : this.direction.clone(),\n penetration: shapeA.radius - this.distance.magnitude,\n };\n }\n};\nCircumferenceAABBResolver = __decorate([\n injectable(SYMBOLS.CollisionCircumferenceAABBResolver)\n], CircumferenceAABBResolver);\nexport { CircumferenceAABBResolver };\n//# sourceMappingURL=CircumferenceAABBResolver.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { injectable } from \"@angry-pixel/ioc\";\nimport { SYMBOLS } from \"../symbols\";\nimport { Vector2 } from \"@angry-pixel/math\";\nlet CircumferenceResolver = class CircumferenceResolver {\n constructor() {\n this.distance = new Vector2();\n this.direction = new Vector2();\n }\n resolve(shapeA, shapeB) {\n Vector2.subtract(this.distance, shapeB.position, shapeA.position);\n if (this.distance.magnitude > shapeA.radius + shapeB.radius)\n return undefined;\n Vector2.unit(this.direction, this.distance);\n return {\n direction: this.direction.clone(),\n penetration: shapeA.radius + shapeB.radius - this.distance.magnitude,\n };\n }\n};\nCircumferenceResolver = __decorate([\n injectable(SYMBOLS.CollisionCircumferenceResolver)\n], CircumferenceResolver);\nexport { CircumferenceResolver };\n//# sourceMappingURL=CircumferenceResolver.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { injectable } from \"@angry-pixel/ioc\";\nimport { SYMBOLS } from \"../symbols\";\nimport { Vector2 } from \"@angry-pixel/math\";\nimport { Circumference } from \"../Shape\";\nlet SatResolver = class SatResolver {\n constructor() {\n this.projA = { min: 0, max: 0 };\n this.projB = { min: 0, max: 0 };\n this.smallestAxis = new Vector2();\n this.distance = new Vector2(Infinity, Infinity);\n this.cache = new Vector2();\n }\n resolve(shapeA, shapeB) {\n this.minOverlap = Infinity;\n if (shapeA instanceof Circumference)\n this.setCircumferenceAxis(shapeA, shapeB);\n else if (shapeB instanceof Circumference)\n this.setCircumferenceAxis(shapeB, shapeA);\n this.axes = [...shapeA.projectionAxes];\n shapeB.projectionAxes.forEach((pa) => (this.axes.some((a) => a.equals(pa)) ? undefined : this.axes.push(pa)));\n for (let i = 0; i < this.axes.length; i++) {\n if (shapeA instanceof Circumference)\n this.setCircumferenceVertices(shapeA, this.axes[i]);\n else if (shapeB instanceof Circumference)\n this.setCircumferenceVertices(shapeB, this.axes[i]);\n this.projectShapeOntoAxis(this.projA, shapeA, this.axes[i]);\n this.projectShapeOntoAxis(this.projB, shapeB, this.axes[i]);\n this.currentOverlap = Math.min(this.projA.max, this.projB.max) - Math.max(this.projA.min, this.projB.min);\n if (this.currentOverlap < 0)\n return undefined;\n this.invertAxis = true;\n // prevent containment\n if ((this.projA.max > this.projB.max && this.projA.min < this.projB.min) ||\n (this.projA.max < this.projB.max && this.projA.min > this.projB.min)) {\n const mins = Math.abs(this.projA.min - this.projB.min);\n const maxs = Math.abs(this.projA.max - this.projB.max);\n if (mins < maxs) {\n this.currentOverlap += mins;\n }\n else {\n this.currentOverlap += maxs;\n Vector2.scale(this.axes[i], this.axes[i], -1);\n this.invertAxis = false;\n }\n }\n if (this.currentOverlap < this.minOverlap) {\n this.minOverlap = this.currentOverlap;\n this.smallestAxis.copy(this.axes[i]);\n if (this.invertAxis && this.projA.max < this.projB.max) {\n Vector2.scale(this.smallestAxis, this.axes[i], -1);\n }\n }\n }\n return {\n direction: Vector2.scale(new Vector2(), this.smallestAxis, -1),\n penetration: this.minOverlap,\n };\n }\n projectShapeOntoAxis(projection, shape, axis) {\n projection.min = Infinity;\n projection.max = -Infinity;\n shape.vertices.forEach((vertex) => {\n projection.min = Math.min(Vector2.dot(axis, vertex), projection.min);\n projection.max = Math.max(Vector2.dot(axis, vertex), projection.max);\n });\n return projection;\n }\n setCircumferenceAxis(c, s) {\n this.distance.set(Infinity, Infinity);\n s.vertices.forEach((vertex) => {\n Vector2.subtract(this.cache, vertex, c.position);\n if (this.cache.magnitude < this.distance.magnitude) {\n this.distance.copy(this.cache);\n }\n });\n Vector2.unit(c.projectionAxes[0], this.distance);\n }\n setCircumferenceVertices(c, axis) {\n Vector2.add(c.vertices[0], c.position, Vector2.scale(this.cache, Vector2.unit(this.cache, axis), -c.radius));\n Vector2.add(c.vertices[1], c.position, Vector2.scale(this.cache, Vector2.unit(this.cache, axis), c.radius));\n }\n};\nSatResolver = __decorate([\n injectable(SYMBOLS.CollisionSatResolver)\n], SatResolver);\nexport { SatResolver };\n//# sourceMappingURL=SatResolver.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { injectable } from \"@angry-pixel/ioc\";\nimport { SYMBOLS } from \"./symbols\";\n/**\n * The CollisionRepository stores and manages collision data between colliders.\n * It provides methods for querying collisions by collider and layer,\n * and handles persisting/removing collision records.\n * @public\n * @category Collisions\n * @example\n * ```typescript\n * // Get all collisions for a collider\n * const collisions = collisionRepository.findCollisionsForCollider(playerCollider);\n *\n * // Get collisions between player and enemies\n * const enemyCollisions = collisionRepository.findCollisionsForColliderAndLayer(\n * playerCollider,\n * \"enemy\"\n * );\n *\n * // Get all current collisions\n * const allCollisions = collisionRepository.findAll();\n * ```\n */\nlet CollisionRepository = class CollisionRepository {\n constructor() {\n this.collisions = [];\n }\n /**\n * Searches for and returns a collection of collisions for the given collider\n * @param collider The local collider\n * @returns A collection of collisions\n */\n findCollisionsForCollider(collider) {\n return this.collisions.filter((c) => c.localCollider === collider);\n }\n /**\n * Searches for and returns a collection of collisions for the given collider and layer\n * @param collider The local collider\n * @param layer The collision layer\n * @returns A collection of collisions\n */\n findCollisionsForColliderAndLayer(collider, layer) {\n return this.collisions.filter((c) => c.localCollider === collider && c.remoteCollider.layer === layer);\n }\n /**\n * Returns all the collisions\n * @public\n * @returns A collection of collisions\n */\n findAll() {\n return this.collisions;\n }\n /** @internal */\n persist(collision) {\n this.collisions.push(collision);\n }\n /** @internal */\n removeAll() {\n this.collisions = [];\n }\n};\nCollisionRepository = __decorate([\n injectable(SYMBOLS.CollisionRepository)\n], CollisionRepository);\nexport { CollisionRepository };\n//# sourceMappingURL=CollisionRepository.js.map","export const deepClone = (value) => {\n if (value === null || typeof value !== \"object\") {\n return value; // primitives\n }\n // avoid cloning DOM elements\n if (typeof Node !== \"undefined\" && value instanceof Node) {\n return value;\n }\n // avoid cloning FontFace instances\n if (typeof FontFace !== \"undefined\" && value instanceof FontFace) {\n return value;\n }\n if (value instanceof Date) {\n return new Date(value.getTime());\n }\n if (value instanceof Array) {\n return value.map((item) => deepClone(item));\n }\n if (value instanceof Map) {\n const result = new Map();\n for (const [k, v] of value) {\n result.set(deepClone(k), deepClone(v));\n }\n return result;\n }\n if (value instanceof Set) {\n const result = new Set();\n for (const item of value) {\n result.add(deepClone(item));\n }\n return result;\n }\n // creates an empty object with the same prototype as the original value\n const proto = Object.getPrototypeOf(value);\n const clone = Object.create(proto);\n // clone all properties of the original value\n for (const key of Object.keys(value)) {\n clone[key] = deepClone(value[key]);\n }\n return clone;\n};\n/**\n * Creates a disabled component\n * @param component The component to disable\n * @returns The disabled component\n * @category Entity-Component-System\n * @public\n * @example\n * ```js\n * const disabledTransform = disableComponent(Transform);\n * ```\n */\nexport const disableComponent = (component) => ({\n enabled: false,\n component,\n});\n//# sourceMappingURL=utils.js.map","export const SYMBOLS = {\n EntityManager: Symbol.for(\"EntityManager\"),\n SystemManager: Symbol.for(\"SystemManager\"),\n};\n//# sourceMappingURL=symbols.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { injectable } from \"@angry-pixel/ioc\";\nimport { deepClone } from \"./utils\";\nimport { SYMBOLS } from \"./symbols\";\n/**\n * The EntityManager is responsible for managing the lifecycle and relationships of entities and components.\\\n * It provides methods for creating, reading, updating and deleting entities and their associated components.\\\n * Handles parent-child relationships between entities and enables/disables entities and components.\\\n * Acts as the central registry for all game objects and their behaviors.\n * @public\n * @category Entity-Component-System\n * @example\n * ```js\n * // Create an entity with components\n * const entity = entityManager.createEntity([\n * new Transform({position: new Vector2(100, 100)}),\n * new SpriteRenderer({sprite: \"player.png\"})\n * ]);\n *\n * // Get a component from an entity\n * const transform = entityManager.getComponent(entity, Transform);\n *\n * // Get all components from an entity\n * const components = entityManager.getComponents(entity);\n *\n * // Find entity by component\n * const entityWithSprite = entityManager.getEntityForComponent(spriteRenderer);\n *\n * // Update component data\n * entityManager.updateComponentData(entity, Transform, (component) => {\n * component.position = new Vector2(200, 200);\n * });\n *\n * // Create parent-child relationship\n * const child = entityManager.createEntity([Transform], parent);\n * // or if you already have the child entity\n * entityManager.setParent(child, parent);\n *\n * // Enable/disable entities\n * entityManager.disableEntity(entity);\n * entityManager.enableEntity(entity);\n *\n * // Remove components\n * entityManager.removeComponent(entity, SpriteRenderer);\n * entityManager.removeComponent(spriteRenderer);\n *\n * // Search for entities with specific components\n * const searchResult = entityManager.search(SpriteRenderer);\n * searchResult.forEach(({component, entity}) => {\n * // do something with the component and entity\n * })\n *\n * const searchResult = entityManager.search(Enemy, (component) => component.status === \"alive\");\n * searchResult.forEach(({component, entity}) => {\n * // do something with the component and entity\n * })\n * ```\n */\nlet EntityManager = class EntityManager {\n constructor() {\n this.lastEntityId = 0;\n this.lastComponentTypeId = 0;\n this.entities = new Set();\n this.components = new Map(); // componen type id -> entity id -> component\n this.disabledEntities = new Set();\n this.manuallyDisabledEntities = new Set();\n this.disabledComponents = new Map(); // entity -> set of component type id\n this.parentEntities = new Map(); // child entity -> parent entity\n this.childEntities = new Map(); // parent entity -> set of child entities\n }\n createEntity(components, parent) {\n const entity = this.lastEntityId++;\n if (components) {\n this.entities.add(entity);\n components.forEach((component) => this.addComponent(entity, component));\n if (parent)\n this.setParent(entity, parent);\n }\n return entity;\n }\n /**\n * Creates an Entity based on an Archetype.\\\n * Since the components are cloned, the archetype can be reused to create multiple entities.\n * @param archetype The archetype to create the entity from\n * @param parent The parent entity (optional)\n * @returns The created Entity\n * @public\n * @example\n * ```js\n * const archetype = {\n * components: [\n * new Transform({position: new Vector2(100, 100)}),\n * SpriteRenderer\n * ],\n * children: [childArchetype],\n * enabled: true\n * }\n * const entity = entityManager.createEntityFromArchetype(archetype);\n * ```\n */\n createEntityFromArchetype({ components, children, enabled }, parent) {\n const entity = this.lastEntityId++;\n this.entities.add(entity);\n this.createComponentsFromArchetype(components, entity);\n if (parent)\n this.setParent(entity, parent);\n if (children)\n children.forEach((child) => this.createEntityFromArchetype(child, entity));\n if (enabled === false)\n this.disableEntity(entity);\n return entity;\n }\n /**\n * Creates components from an archetype\n * @param components The components to create\n * @param entity The entity to create the components for\n * @private\n */\n createComponentsFromArchetype(components, entity) {\n components.forEach((component) => {\n let enabled = true;\n let instance;\n if (typeof component === \"object\" &&\n \"component\" in component &&\n \"enabled\" in component &&\n component.enabled === false) {\n enabled = false;\n component = component.component;\n }\n if (typeof component === \"object\") {\n instance = this.addComponent(entity, deepClone(component));\n }\n else if (typeof component === \"function\") {\n instance = this.addComponent(entity, component);\n }\n else {\n throw new Error(\"Invalid component type\");\n }\n if (!enabled)\n this.disableComponent(instance);\n });\n }\n /**\n * Removes an Entity and all its Components\n * @param entity The entity to remove\n * @public\n * @example\n * ```js\n * entityManager.removeEntity(entity);\n * ```\n */\n removeEntity(entity) {\n var _a;\n this.getChildren(entity).forEach((child) => this.removeEntity(child));\n this.components.forEach((row) => {\n if (row.has(entity))\n row.delete(entity);\n });\n this.disabledComponents.delete(entity);\n this.disabledEntities.delete(entity);\n this.manuallyDisabledEntities.delete(entity);\n const parent = this.getParent(entity);\n if (parent) {\n (_a = this.childEntities.get(parent)) === null || _a === void 0 ? void 0 : _a.delete(entity);\n }\n this.parentEntities.delete(entity);\n this.childEntities.delete(entity);\n this.entities.delete(entity);\n }\n /**\n * Removes all Entities and all their Components\n * @param preserveComponentType Optional component type to preserve entities that have this component\n * @public\n * @example\n * ```js\n * // Remove all entities\n * entityManager.removeAllEntities();\n *\n * // Remove all entities except those that have a SpriteRenderer component\n * entityManager.removeAllEntities(SpriteRenderer);\n * ```\n */\n removeAllEntities(preserveComponentType) {\n const result = preserveComponentType ? this.search(preserveComponentType) : [];\n if (result.length > 0) {\n const entitiesToPreserve = new Set(result.map(({ entity }) => entity));\n for (const entity of this.entities) {\n if (!entitiesToPreserve.has(entity))\n this.removeEntity(entity);\n }\n }\n else {\n this.components.clear();\n this.disabledComponents.clear();\n this.disabledEntities.clear();\n this.manuallyDisabledEntities.clear();\n this.lastEntityId = 0;\n this.entities.clear();\n this.parentEntities.clear();\n this.childEntities.clear();\n }\n }\n /**\n * If the Entity exists, returns TRUE, otherwise it returns FALSE\n * @param entity\n * @returns boolean\n * @example\n * ```js\n * const isEntity = entityManager.isEntity(entity);\n * ```\n */\n isEntity(entity) {\n return this.entities.has(entity);\n }\n /**\n * If the Entity is enabled, returns TRUE, otherwise it returns FALSE\n * @param entity The entity to verify\n * @returns boolean\n * @public\n * @example\n * ```js\n * const entityEnabled = entityManager.isEntityEnabled(entity);\n * ```\n */\n isEntityEnabled(entity) {\n return this.isEntity(entity) && !this.disabledEntities.has(entity);\n }\n /**\n * Enables an Entity.\\\n * The entity's components will be included in the `search` results\\\n * and therefore will be processed by their respective systems\\\n * (the engine built-in systems use the `search` method to retrieve the entities).\n * If the entity has children, they will also be enabled, except for those that have been manually disabled.\n * @param entity The entity to be enabled\n * @public\n * @example\n * ```js\n * entityManager.enableEntity(entity);\n * ```\n */\n enableEntity(entity) {\n if (this.disabledEntities.has(entity)) {\n this.disabledEntities.delete(entity);\n this.getChildren(entity).forEach((child) => {\n if (!this.manuallyDisabledEntities.has(child)) {\n this.enableEntity(child);\n }\n });\n }\n }\n /**\n * Disables an entity.\\\n * The entity's components will not be included in the `search` results\\\n * and therefore will not be processed by their respective systems\\\n * (the engine built-in systems use the `search` method to retrieve the entities).\n * If the entity has children, they will also be disabled.\n * @param entity The entity to be disabled\n * @public\n * @example\n * ```js\n * entityManager.disableEntity(entity);\n * ```\n */\n disableEntity(entity) {\n if (!this.disabledEntities.has(entity)) {\n this.disabledEntities.add(entity);\n this.getChildren(entity).forEach((child) => {\n if (this.disabledEntities.has(child)) {\n this.manuallyDisabledEntities.add(child);\n }\n else {\n this.disableEntity(child);\n }\n });\n }\n }\n /**\n * Disable all Entities that have a component of the given type\n * @param componentType The class of the component\n * @public\n * @example\n * ```js\n * entityManager.disableEntitiesByComponent(SpriteRenderer);\n * ```\n */\n disableEntitiesByComponent(componentType) {\n var _a, _b;\n for (const entity of (_b = (_a = this.components.get(this.getComponentTypeId(componentType))) === null || _a === void 0 ? void 0 : _a.keys()) !== null && _b !== void 0 ? _b : []) {\n this.disableEntity(entity);\n }\n }\n /**\n * Enable all Entities that have a component of the given type\n * @param componentType The class of the component\n * @public\n * @example\n * ```js\n * entityManager.enableEntitiesByComponent(SpriteRenderer);\n * ```\n */\n enableEntitiesByComponent(componentType) {\n var _a, _b;\n for (const entity of (_b = (_a = this.components.get(this.getComponentTypeId(componentType))) === null || _a === void 0 ? void 0 : _a.keys()) !== null && _b !== void 0 ? _b : []) {\n this.enableEntity(entity);\n }\n }\n /**\n * Sets a parent-child relationship between two entities\n * @param child The child entity\n * @param parent The parent entity\n * @public\n * @example\n * ```js\n * entityManager.setParent(child, parent);\n * ```\n */\n setParent(child, parent) {\n if (!this.isEntity(child) || !this.isEntity(parent)) {\n throw new Error(\"Both entities must exist to set a parent-child relationship.\");\n }\n if (this.parentEntities.has(child)) {\n const oldParent = this.parentEntities.get(child);\n if (oldParent === parent)\n return;\n this.childEntities.get(oldParent).delete(child);\n }\n this.parentEntities.set(child, parent);\n if (!this.childEntities.has(parent))\n this.childEntities.set(parent, new Set());\n this.childEntities.get(parent).add(child);\n }\n /**\n * Returns the parent entity of the child entity\n * @param child\n * @returns The parent entity\n * @public\n * @example\n * ```js\n * const parent = entityManager.getParent(child);\n * ```\n */\n getParent(child) {\n return this.parentEntities.get(child);\n }\n /**\n * Returns all child entities of the parent entity\n * @param parent\n * @returns A collection of child entities\n * @public\n * @example\n * ```js\n * const children = entityManager.getChildren(parent);\n * ```\n */\n getChildren(parent) {\n return Array.from(this.childEntities.get(parent) || []);\n }\n /**\n * Removes the parent-child relationship between two entities\n * @param child The child entity\n * @public\n * @example\n * ```js\n * entityManager.removeParent(child);\n * ```\n */\n removeParent(child) {\n const parent = this.parentEntities.get(child);\n if (parent) {\n this.parentEntities.delete(child);\n this.childEntities.get(parent).delete(child);\n }\n }\n /**\n * Removes a child entity from the parent entity\n * @param parent The parent entity\n * @param child The child entity\n * @public\n * @example\n * ```js\n * entityManager.removeChild(parent, child);\n * ```\n */\n removeChild(parent, child) {\n if (this.parentEntities.get(child) === parent) {\n this.parentEntities.delete(child);\n this.childEntities.get(parent).delete(child);\n }\n }\n addComponent(entity, component) {\n var _a;\n const id = this.getComponentTypeId(component);\n const instance = typeof component === \"object\" ? component : new component();\n if (!this.components.has(id))\n this.components.set(id, new Map());\n if (this.components.get(id).has(entity)) {\n const componentName = (_a = instance.constructor.componentName) !== null && _a !== void 0 ? _a : instance.constructor.name;\n throw new Error(`Entity ${entity} already has a component of type ${componentName}`);\n }\n this.components.get(id).set(entity, instance);\n return instance;\n }\n /**\n * Returns TRUE if the Entity has a component of the given type, otherwise it returns FALSE.\n * @param entity The entity to verify\n * @param componentType The class of the component\n * @returns boolean\n * @public\n * @example\n * ```js\n * const hasSpriteRenderer = entityManager.hasComponent(entity, SpriteRenderer);\n * ```\n */\n hasComponent(entity, componentType) {\n return this.getComponent(entity, componentType) !== undefined;\n }\n /**\n * Returns the component of the given type belonging to the entity\n * @param entity The entity\n * @param componentType The class of the component\n * @returns The instance of the component\n * @public\n * @example\n * ```js\n * const spriteRenderer = entityManager.getComponent(entity, SpriteRenderer);\n * ```\n */\n getComponent(entity, componentType) {\n var _a;\n return (_a = this.components.get(this.getComponentTypeId(componentType))) === null || _a === void 0 ? void 0 : _a.get(entity);\n }\n /**\n * Returns all the component belonging to the entity\n * @param entity The entity\n * @returns A collection of component instances\n * @public\n * @example\n * ```js\n * const components = entityManager.getComponents(entity);\n * ```\n */\n getComponents(entity) {\n const components = [];\n this.components.forEach((entityComponent) => entityComponent.forEach((c, e) => {\n if (entity === e)\n components.push(c);\n }));\n return components;\n }\n /**\n * Updates the data of a component instance\n * @param entity The entity\n * @param componentType The component type\n * @param updateCallback The callback to update the component\n * @public\n * @example\n * ```js\n * entityManager.updateComponentData(entity, Transform, (component) => {\n * component.position = new Vector2(100, 100);\n * });\n * ```\n */\n updateComponentData(entity, componentType, updateCallback) {\n const component = this.getComponent(entity, componentType);\n if (component)\n updateCallback(component);\n }\n /**\n * Searches for and returns an entity for the component instance\n * @param component The component instance\n * @returns The found Entity\n * @public\n * @example\n * ```js\n * const entity = entityManager.getEntityForComponent(spriteRenderer);\n * ```\n */\n getEntityForComponent(component) {\n const id = this.getComponentTypeId(component);\n if (this.components.has(id)) {\n for (const [e, c] of this.components.get(id)) {\n if (c === component)\n return e;\n }\n }\n return undefined;\n }\n removeComponent(arg1, arg2) {\n var _a;\n const id = this.getComponentTypeId(typeof arg1 === \"object\" ? arg1 : arg2);\n const entity = typeof arg1 === \"number\" ? arg1 : this.getEntityForComponent(arg1);\n if (entity !== undefined && ((_a = this.components.get(id)) === null || _a === void 0 ? void 0 : _a.has(entity)))\n this.components.get(id).delete(entity);\n }\n isComponentEnabled(arg1, arg2) {\n var _a;\n const id = this.getComponentTypeId(typeof arg1 === \"object\" ? arg1 : arg2);\n const entity = typeof arg1 === \"number\" ? arg1 : this.getEntityForComponent(arg1);\n return entity !== undefined && !((_a = this.disabledComponents.get(entity)) === null || _a === void 0 ? void 0 : _a.has(id));\n }\n disableComponent(arg1, arg2) {\n const entity = typeof arg1 === \"number\" ? arg1 : this.getEntityForComponent(arg1);\n const id = this.getComponentTypeId(typeof arg1 === \"object\" ? arg1 : arg2);\n if (entity == undefined)\n return;\n if (!this.disabledComponents.has(entity)) {\n this.disabledComponents.set(entity, new Set([id]));\n }\n else if (!this.disabledComponents.get(entity).has(id)) {\n this.disabledComponents.get(entity).add(id);\n }\n }\n enableComponent(arg1, arg2) {\n var _a;\n const entity = typeof arg1 === \"number\" ? arg1 : this.getEntityForComponent(arg1);\n const id = this.getComponentTypeId(typeof arg1 === \"object\" ? arg1 : arg2);\n if (entity !== undefined && ((_a = this.disabledComponents.get(entity)) === null || _a === void 0 ? void 0 : _a.has(id))) {\n this.disabledComponents.get(entity).delete(id);\n }\n }\n /**\n * Returns the component of a parent entity, if it exists.\n * @param parent The parent entity\n * @param componentType The component class to search\n * @returns The instance of the component\n * @public\n * @example\n * ```js\n * const spriteRenderer = entityManager.getComponentFromParent(parent, SpriteRenderer);\n * ```\n */\n getComponentFromParent(parent, componentType) {\n let current = parent;\n while (current) {\n const component = this.getComponent(current, componentType);\n if (component)\n return component;\n current = this.getParent(current);\n }\n return undefined;\n }\n search(componentType, arg1, arg2 = false) {\n const result = [];\n const id = this.getComponentTypeId(componentType);\n const includeDisabled = typeof arg1 === \"boolean\" ? arg1 : arg2;\n const filter = typeof arg1 === \"function\" ? arg1 : undefined;\n if (this.components.has(id)) {\n this.components.get(id).forEach((component, entity) => {\n if ((!filter || filter(component, entity)) &&\n (includeDisabled ||\n (this.isEntityEnabled(entity) && this.isComponentEnabled(entity, componentType))))\n result.push({ entity, component: component });\n });\n }\n return result;\n }\n /**\n * Performs an entity search given a collection of component types.\\\n * The entities found must have an instance of all the given component types.\\\n * This method returns a collection of Entities.\n * @param componentTypes A collection of component classes\n * @returns A collection of entities\n * @public\n * @example\n * ```js\n * const entities = entityManager.searchEntitiesByComponents([Transform, SpriteRenderer, Animator]);\n * ```\n */\n searchEntitiesByComponents(componentTypes) {\n const entities = [];\n let first = true;\n for (const componentType of componentTypes) {\n const id = this.getComponentTypeId(componentType);\n if (!id || !this.components.has(id))\n return [];\n if (first) {\n entities.push(...this.components.get(id).keys());\n first = false;\n continue;\n }\n const toCompare = new Set(this.components.get(id).keys());\n entities.forEach((e, i) => {\n if (!toCompare.has(e))\n entities.splice(i, 1);\n });\n }\n return entities;\n }\n /**\n * Performs a search for entities that have a component of the given type and are children of the parent entity.\\\n * This method returns a collection of objects of type SearchResult, which has the entity found, and the instance of the component.\\\n * The third argument determines if disabled entities or components are included in the search result,\\its default value is FALSE.\n * @param parent The parent entity\n * @param componentType The component class\n * @param includeDisabled TRUE to incluide disabled entities and components. Default is FALSE.\n * @returns SearchResult\n * @public\n * @example\n * ```js\n * const searchResult = entityManager.searchInChildren(parent, SpriteRenderer);\n * searchResult.forEach(({component, entity}) => {\n * // do something with the component and entity\n * })\n * ```\n * @example\n * ```js\n * const searchResult = entityManager.searchInChildren(parent, SpriteRenderer, true);\n * searchResult.forEach(({component, entity}) => {\n * // do something with the component and entity\n * })\n * ```\n */\n searchInChildren(parent, componentType, includeDisabled = false) {\n const children = this.getChildren(parent);\n return this.search(componentType, includeDisabled).filter(({ entity }) => children.includes(entity));\n }\n getComponentTypeId(component) {\n const prototype = typeof component === \"object\" ? component.constructor.prototype : component.prototype;\n if (prototype.__ecs_type_id === undefined) {\n prototype.__ecs_type_id = Number(`${++this.lastComponentTypeId}${(performance.now() * 1e5).toFixed(0)}`);\n }\n return prototype.__ecs_type_id;\n }\n};\nEntityManager = __decorate([\n injectable(SYMBOLS.EntityManager)\n], EntityManager);\nexport { EntityManager };\n//# sourceMappingURL=EntityManager.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { injectable } from \"@angry-pixel/ioc\";\nimport { SYMBOLS } from \"./symbols\";\n/**\n * The SystemManager is responsible for managing the lifecycle and execution of game systems.\\\n * It provides methods for adding, enabling, disabling and retrieving systems that operate on entities and components.\\\n * Systems are organized into groups to control their execution order and update frequency.\\\n * Acts as the central orchestrator for all game logic and behavior processing.\n * @public\n * @category Entity-Component-System\n */\nlet SystemManager = class SystemManager {\n constructor() {\n this.systems = []; // [system, group, enabled, created]\n }\n /**\n * @param systemType The system class\n * @returns the systen index\n */\n findSystemIndex(systemType) {\n return this.systems.findIndex((system) => system[0] instanceof systemType);\n }\n /**\n * Adds a new system instance linked to a group\n * @param system The system instance\n * @param group The system group\n * @internal\n */\n addSystem(system, group) {\n if (this.systems.some((system) => system[0] instanceof system.constructor)) {\n throw new Error(`SystemManager already has an instance of ${system.constructor.name}.`);\n }\n this.systems.push([system, group, false, false]);\n }\n /**\n * Returns TRUE if it has a system of the given type, otherwise it returns FALSE\n * @param systemType The system class\n * @returns boolean\n * @public\n * @example\n * ```js\n * const hasPlayerSystem = systemManager.hasSystem(PlayerSystem);\n * ```\n */\n hasSystem(systemType) {\n return this.systems.some((system) => system[0] instanceof systemType);\n }\n /**\n * Returns a system instance for the given type\n * @param systemType The system class\n * @returns The system instance\n * @internal\n */\n getSystem(systemType) {\n const index = this.findSystemIndex(systemType);\n return index !== -1 ? this.systems[index][0] : undefined;\n }\n /**\n * Returns TRUE wether the given group has systems\n * @param group The system group\n * @returns boolean\n * @internal\n */\n groupHasSystems(group) {\n return this.systems.filter((system) => system[1] === group).length > 0;\n }\n /**\n * Enables a system by its type.\\\n * The method `onEnabled` of the system will be called. If the system is enabled for the first time, the method `onCreate` will also be called.\n * @param systemType The system class\n * @public\n * @example\n * ```js\n * systemManager.enableSystem(PlayerSystem);\n * ```\n */\n enableSystem(systemType) {\n const index = this.findSystemIndex(systemType);\n if (index === -1 || this.systems[index][2] === true)\n return;\n const system = this.systems[index];\n if (system[3] === false) {\n system[3] = true;\n if (system[0].onCreate)\n system[0].onCreate();\n }\n system[2] = true;\n if (system[0].onEnabled)\n system[0].onEnabled();\n }\n /**\n * Disables a system by its type.\\\n * The method `onDisabled` of the system will be called.\n * @param systemType The system class\n * @public\n * @example\n * ```js\n * systemManager.disableSystem(PlayerSystem);\n * ```\n */\n disableSystem(systemType) {\n const index = this.findSystemIndex(systemType);\n if (index === -1 || this.systems[index][2] === false)\n return;\n const system = this.systems[index];\n system[2] = false;\n if (system[0].onDisabled)\n system[0].onDisabled();\n }\n /**\n * Set the execution priority of a system.\n * @param systemType The system class\n * @param position the priority number\n * @internal\n */\n setExecutionOrder(systemType, position) {\n const index = this.findSystemIndex(systemType);\n if (index === -1)\n throw new Error(`Cannot set execution order because ${systemType.name} is not a system.`);\n this.systems.splice(position, 0, this.systems.splice(index, 1)[0]);\n }\n /**\n * Removes a system by its type.\n * The method `onDestroy` of the system will be called.\n * @param systemType The system class\n * @internal\n */\n removeSystem(systemType) {\n const index = this.findSystemIndex(systemType);\n if (index === -1)\n return;\n const system = this.systems.splice(index, 1)[0][0];\n if (system.onDestroy)\n system.onDestroy();\n }\n /**\n * Disables all systems\n * @internal\n */\n disableAllSystems() {\n this.systems.forEach((system) => {\n if (system[2])\n this.disableSystem(system[0].constructor);\n });\n }\n /**\n * Call the method onUpdate for systems belonging to the given group\n * @param group The system group\n * @internal\n */\n update(group) {\n this.systems\n .filter((system) => system[1] === group && system[2] === true)\n .forEach((system) => system[0].onUpdate());\n }\n};\nSystemManager = __decorate([\n injectable(SYMBOLS.SystemManager)\n], SystemManager);\nexport { SystemManager };\n//# sourceMappingURL=SystemManager.js.map","export var WebGLContextVersion;\n(function (WebGLContextVersion) {\n WebGLContextVersion[\"LegacyWebGL\"] = \"webgl\";\n WebGLContextVersion[\"WebGL2\"] = \"webgl2\";\n})(WebGLContextVersion || (WebGLContextVersion = {}));\nexport class ContextManager {\n constructor(canvas) {\n this.canvas = canvas;\n this.contextVersion = this.getContextVersion();\n if (!this.contextVersion) {\n throw new Error(\"Your browser does not support WebGL.\");\n }\n this.gl = this.canvas.getContext(this.contextVersion);\n }\n getContextVersion() {\n return this.canvas.getContext(WebGLContextVersion.WebGL2) !== null\n ? WebGLContextVersion.WebGL2\n : this.canvas.getContext(WebGLContextVersion.LegacyWebGL) !== null\n ? WebGLContextVersion.LegacyWebGL\n : undefined;\n }\n}\n//# sourceMappingURL=ContextManager.js.map","export class FontAtlasFactory {\n constructor() {\n this.fontAtlas = new Map();\n }\n hasFontAtlas(options) {\n return this.fontAtlas.has(this.getId(options));\n }\n getFontAtlas(options) {\n return this.fontAtlas.get(this.getId(options));\n }\n getOrCreate(options) {\n var _a;\n return (_a = this.getFontAtlas(options)) !== null && _a !== void 0 ? _a : this.create(options);\n }\n create(options) {\n const { font, charRanges, fontSize, spacing } = options;\n this.chars = [];\n for (let i = 0; i < charRanges.length; i = i + 2) {\n for (let j = charRanges[i]; j <= charRanges[i + 1]; j++) {\n this.chars.push(String.fromCharCode(j));\n }\n }\n this.font = font instanceof FontFace ? font.family : font;\n this.fontSize = fontSize;\n this.spacing = spacing;\n this.id = this.getId(options);\n const fontAtlas = this.renderAtlas();\n this.fontAtlas.set(this.id, fontAtlas);\n return fontAtlas;\n }\n getId({ font, charRanges, fontSize, spacing }) {\n return JSON.stringify({\n font: font instanceof FontFace ? font.family : font,\n charRanges,\n fontSize,\n spacing,\n });\n }\n renderAtlas() {\n const fontAtlas = new FontAtlas(this.id, this.fontSize, Math.ceil(Math.sqrt(this.chars.length)), this.spacing);\n const ctx = fontAtlas.canvas.getContext(\"2d\");\n ctx.clearRect(0, 0, fontAtlas.canvas.width, fontAtlas.canvas.height);\n ctx.textBaseline = \"top\";\n ctx.fillStyle = \"#FFFFFF\";\n ctx.font = `${this.fontSize}px ${this.font}`;\n let x = 0;\n let y = 0;\n for (let i = 0; i < this.chars.length; i++) {\n ctx.fillText(this.chars[i], x, y);\n fontAtlas.glyphs.set(this.chars[i], {\n id: i,\n width: ctx.measureText(this.chars[i]).width,\n });\n if ((x += this.fontSize + this.spacing) > fontAtlas.canvas.width - this.fontSize) {\n x = 0;\n y += this.fontSize + this.spacing;\n }\n }\n return fontAtlas;\n }\n}\nexport class FontAtlas {\n constructor(id, fontSize, gridSize, spacing) {\n this.id = id;\n this.fontSize = fontSize;\n this.gridSize = gridSize;\n this.spacing = spacing;\n this.canvas = document.createElement(\"canvas\");\n this.glyphs = new Map();\n this.canvas.width = this.gridSize * (this.fontSize + this.spacing);\n this.canvas.height = this.canvas.width;\n }\n}\n//# sourceMappingURL=FontAtlasFactory.js.map","export class ProgramFactory {\n constructor(gl, shaderLoader) {\n this.gl = gl;\n this.shaderLoader = shaderLoader;\n }\n create(vertexShaderSource, fragmentShaderSource) {\n const program = this.gl.createProgram();\n const vertexShader = this.shaderLoader.load(this.gl.VERTEX_SHADER, vertexShaderSource);\n const fragmentShader = this.shaderLoader.load(this.gl.FRAGMENT_SHADER, fragmentShaderSource);\n this.gl.attachShader(program, vertexShader);\n this.gl.attachShader(program, fragmentShader);\n this.gl.linkProgram(program);\n const status = this.gl.LINK_STATUS;\n if (!this.gl.getProgramParameter(program, status)) {\n const error = this.gl.getProgramInfoLog(program);\n this.gl.deleteProgram(program);\n throw new Error(`Unable to initialize the Program: ${error}`);\n }\n return program;\n }\n}\n//# sourceMappingURL=ProgramFactory.js.map","import { WebGLContextVersion } from \"../ContextManager\";\nimport { fragmentShader } from \"../shader/fragmentShader\";\nimport { legacyFragmentShader } from \"../shader/legacy/fragmentShader\";\nimport { legacyVertexShader } from \"../shader/legacy/vertexShader\";\nimport { vertexShader } from \"../shader/vertexShader\";\nexport class ProgramManager {\n constructor(gl, contextVersion, programFactory) {\n this.gl = gl;\n this.contextVersion = contextVersion;\n this.programFactory = programFactory;\n }\n loadProgram() {\n this.program =\n this.contextVersion === WebGLContextVersion.WebGL2\n ? this.programFactory.create(vertexShader, fragmentShader)\n : this.programFactory.create(legacyVertexShader, legacyFragmentShader);\n this.positionCoordsAttr = this.gl.getAttribLocation(this.program, \"positionCoords\");\n this.texCoordsAttr = this.gl.getAttribLocation(this.program, \"textureCoords\");\n this.modelMatrixUniform = this.gl.getUniformLocation(this.program, \"modelMatrix\");\n this.projectionMatrixUniform = this.gl.getUniformLocation(this.program, \"projectionMatrix\");\n this.textureMatrixUniform = this.gl.getUniformLocation(this.program, \"textureMatrix\");\n this.renderTextureUniform = this.gl.getUniformLocation(this.program, \"u_renderTexture\");\n this.textureUniform = this.gl.getUniformLocation(this.program, \"u_texImage\");\n this.solidColorUniform = this.gl.getUniformLocation(this.program, \"u_solidColor\");\n this.useTintColorUniform = this.gl.getUniformLocation(this.program, \"u_useTintColor\");\n this.tintColorUniform = this.gl.getUniformLocation(this.program, \"u_tintColor\");\n this.useMaskColorUniform = this.gl.getUniformLocation(this.program, \"u_useMaskColor\");\n this.maskColorUniform = this.gl.getUniformLocation(this.program, \"u_maskColor\");\n this.maskColorMixUniform = this.gl.getUniformLocation(this.program, \"u_maskColorMix\");\n this.alphaUniform = this.gl.getUniformLocation(this.program, \"u_alpha\");\n this.renderLightUniform = this.gl.getUniformLocation(this.program, \"u_renderLight\");\n this.numLightsUniform = this.gl.getUniformLocation(this.program, \"u_numLights\");\n this.gl.useProgram(this.program);\n this.gl.blendFunc(this.gl.SRC_ALPHA, this.gl.ONE_MINUS_SRC_ALPHA);\n }\n}\n//# sourceMappingURL=ProgramManager.js.map","export const vertexShader = `#version 300 es\n\nin vec4 positionCoords;\nin vec2 textureCoords;\n\nuniform mat4 projectionMatrix;\nuniform mat4 modelMatrix;\nuniform mat4 textureMatrix;\n\nout vec2 texCoords;\n\nvoid main()\n{\n gl_Position = projectionMatrix * modelMatrix * positionCoords;\n texCoords = (textureMatrix * vec4(textureCoords, 0, 1)).xy;\n}`;\n//# sourceMappingURL=vertexShader.js.map","export const fragmentShader = `#version 300 es\nprecision highp float;\n\nin vec2 texCoords;\n\n// texture, mask and darkness\nuniform int u_renderTexture;\nuniform sampler2D u_texImage;\nuniform vec4 u_solidColor;\nuniform int u_useTintColor;\nuniform vec4 u_tintColor;\nuniform int u_useMaskColor;\nuniform vec4 u_maskColor;\nuniform float u_maskColorMix;\nuniform float u_alpha;\n\n// light\nstruct Light {\n vec2 position;\n float radius;\n float smoothMode;\n float intensity;\n};\n\nuniform int u_renderLight;\nuniform Light u_lights[64];\nuniform int u_numLights;\n\nout vec4 fragColor;\n\nvoid main()\n{\n if (u_renderTexture == 1) {\n vec4 texColor = texture(u_texImage, texCoords);\n\n if (texColor.a < 0.0001) {\n discard;\n }\n\n if (u_useTintColor == 1) {\n texColor = u_tintColor * texColor;\n }\n\n if (u_useMaskColor == 1) {\n texColor = mix(texColor, u_maskColor, clamp(u_maskColorMix, 0.0, 1.0));\n }\n\n fragColor = vec4(texColor.rgb, u_alpha * texColor.a); \n } else if (u_renderLight == 1) {\n vec2 fragCoord = gl_FragCoord.xy;\n float alpha = u_alpha;\n\n for (int i = 0; i < u_numLights; i++) {\n Light light = u_lights[i];\n float dist = distance(fragCoord, light.position);\n \n if (dist < light.radius) {\n alpha -= (light.smoothMode > 0.0 ? smoothstep(light.radius, 0.0, dist) : 1.0) * light.intensity;\n }\n }\n\n alpha = clamp(alpha, 0.0, u_alpha);\n\n fragColor = vec4(u_solidColor.rgb, alpha);\n } else {\n fragColor = vec4(u_solidColor.rgb, u_alpha);\n }\n}`;\n//# sourceMappingURL=fragmentShader.js.map","export const legacyVertexShader = `precision mediump float;\n\nattribute vec2 positionCoords;\nattribute vec2 textureCoords;\n\nvarying vec2 texCoords;\n\nuniform mat4 projectionMatrix;\nuniform mat4 modelMatrix;\nuniform mat4 textureMatrix;\n\nvoid main()\n{\n gl_Position = projectionMatrix * modelMatrix * vec4(positionCoords, 0, 1);\n texCoords = (textureMatrix * vec4(textureCoords, 0, 1)).xy;\n}`;\n//# sourceMappingURL=vertexShader.js.map","export const legacyFragmentShader = `precision mediump float;\n\nvarying vec2 texCoords;\n\n// texture, mask and darkness\nuniform int u_renderTexture;\nuniform sampler2D u_texImage;\nuniform vec4 u_solidColor;\nuniform int u_useTintColor;\nuniform vec4 u_tintColor;\nuniform int u_useMaskColor;\nuniform vec4 u_maskColor;\nuniform float u_maskColorMix;\nuniform float u_alpha;\n\n// light\nstruct Light {\n vec2 position;\n float radius;\n float smoothMode;\n float intensity;\n};\n\nuniform int u_renderLight;\nuniform Light u_lights[64];\nuniform int u_numLights;\n\nvoid main()\n{\n if (u_renderTexture == 1) {\n vec4 texColor = texture2D(u_texImage, texCoords);\n\n if (texColor.a < 0.0001) {\n discard;\n }\n\n if (u_useTintColor == 1) {\n texColor = u_tintColor * texColor;\n }\n\n if (u_useMaskColor == 1) {\n texColor = mix(texColor, u_maskColor, clamp(u_maskColorMix, 0.0, 1.0));\n }\n\n gl_FragColor = vec4(texColor.rgb, u_alpha * texColor.a);\n } else if (u_renderLight == 1) {\n vec2 fragCoord = gl_FragCoord.xy;\n float alpha = u_alpha;\n\n for (int i = 0; i < 64; i++) {\n if (u_lights[i].intensity == 0.0) continue; \n \n Light light = u_lights[i];\n float dist = distance(fragCoord, light.position);\n \n if (dist < light.radius) {\n alpha -= (light.smoothMode > 0.0 ? smoothstep(light.radius, 0.0, dist) : 1.0) * light.intensity;\n }\n }\n\n alpha = clamp(alpha, 0.0, u_alpha);\n\n gl_FragColor = vec4(u_solidColor.rgb, alpha);\n } else {\n gl_FragColor = vec4(u_solidColor.rgb, u_alpha);\n }\n}`;\n//# sourceMappingURL=fragmentShader.js.map","export class ShaderLoader {\n constructor(gl) {\n this.gl = gl;\n }\n load(type, source) {\n const shader = this.gl.createShader(type);\n this.gl.shaderSource(shader, source);\n this.gl.compileShader(shader);\n const status = this.gl.COMPILE_STATUS;\n if (!this.gl.getShaderParameter(shader, status)) {\n const error = this.gl.getShaderInfoLog(shader);\n this.gl.deleteShader(shader);\n throw new Error(`Unable to initialize the shader program: ${error}`);\n }\n return shader;\n }\n}\n//# sourceMappingURL=ShaderLoader.js.map","/**\n * Common utilities\n * @module glMatrix\n */\n// Configuration Constants\nexport var EPSILON = 0.000001;\nexport var ARRAY_TYPE = typeof Float32Array !== 'undefined' ? Float32Array : Array;\nexport var RANDOM = Math.random;\n/**\n * Sets the type of array used when creating new vectors and matrices\n *\n * @param {Float32ArrayConstructor | ArrayConstructor} type Array type, such as Float32Array or Array\n */\n\nexport function setMatrixArrayType(type) {\n ARRAY_TYPE = type;\n}\nvar degree = Math.PI / 180;\n/**\n * Convert Degree To Radian\n *\n * @param {Number} a Angle in Degrees\n */\n\nexport function toRadian(a) {\n return a * degree;\n}\n/**\n * Tests whether or not the arguments have approximately the same value, within an absolute\n * or relative tolerance of glMatrix.EPSILON (an absolute tolerance is used for values less\n * than or equal to 1.0, and a relative tolerance is used for larger values)\n *\n * @param {Number} a The first number to test.\n * @param {Number} b The second number to test.\n * @returns {Boolean} True if the numbers are approximately equal, false otherwise.\n */\n\nexport function equals(a, b) {\n return Math.abs(a - b) <= EPSILON * Math.max(1.0, Math.abs(a), Math.abs(b));\n}\nif (!Math.hypot) Math.hypot = function () {\n var y = 0,\n i = arguments.length;\n\n while (i--) {\n y += arguments[i] * arguments[i];\n }\n\n return Math.sqrt(y);\n};","import * as glMatrix from \"./common.js\";\n/**\n * 4x4 Matrix<br>Format: column-major, when typed out it looks like row-major<br>The matrices are being post multiplied.\n * @module mat4\n */\n\n/**\n * Creates a new identity mat4\n *\n * @returns {mat4} a new 4x4 matrix\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(16);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n }\n\n out[0] = 1;\n out[5] = 1;\n out[10] = 1;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a new mat4 initialized with values from an existing matrix\n *\n * @param {ReadonlyMat4} a matrix to clone\n * @returns {mat4} a new 4x4 matrix\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(16);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\n * Copy the values from one mat4 to another\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\n * Create a new mat4 with the given values\n *\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m03 Component in column 0, row 3 position (index 3)\n * @param {Number} m10 Component in column 1, row 0 position (index 4)\n * @param {Number} m11 Component in column 1, row 1 position (index 5)\n * @param {Number} m12 Component in column 1, row 2 position (index 6)\n * @param {Number} m13 Component in column 1, row 3 position (index 7)\n * @param {Number} m20 Component in column 2, row 0 position (index 8)\n * @param {Number} m21 Component in column 2, row 1 position (index 9)\n * @param {Number} m22 Component in column 2, row 2 position (index 10)\n * @param {Number} m23 Component in column 2, row 3 position (index 11)\n * @param {Number} m30 Component in column 3, row 0 position (index 12)\n * @param {Number} m31 Component in column 3, row 1 position (index 13)\n * @param {Number} m32 Component in column 3, row 2 position (index 14)\n * @param {Number} m33 Component in column 3, row 3 position (index 15)\n * @returns {mat4} A new mat4\n */\n\nexport function fromValues(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n var out = new glMatrix.ARRAY_TYPE(16);\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m03;\n out[4] = m10;\n out[5] = m11;\n out[6] = m12;\n out[7] = m13;\n out[8] = m20;\n out[9] = m21;\n out[10] = m22;\n out[11] = m23;\n out[12] = m30;\n out[13] = m31;\n out[14] = m32;\n out[15] = m33;\n return out;\n}\n/**\n * Set the components of a mat4 to the given values\n *\n * @param {mat4} out the receiving matrix\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m03 Component in column 0, row 3 position (index 3)\n * @param {Number} m10 Component in column 1, row 0 position (index 4)\n * @param {Number} m11 Component in column 1, row 1 position (index 5)\n * @param {Number} m12 Component in column 1, row 2 position (index 6)\n * @param {Number} m13 Component in column 1, row 3 position (index 7)\n * @param {Number} m20 Component in column 2, row 0 position (index 8)\n * @param {Number} m21 Component in column 2, row 1 position (index 9)\n * @param {Number} m22 Component in column 2, row 2 position (index 10)\n * @param {Number} m23 Component in column 2, row 3 position (index 11)\n * @param {Number} m30 Component in column 3, row 0 position (index 12)\n * @param {Number} m31 Component in column 3, row 1 position (index 13)\n * @param {Number} m32 Component in column 3, row 2 position (index 14)\n * @param {Number} m33 Component in column 3, row 3 position (index 15)\n * @returns {mat4} out\n */\n\nexport function set(out, m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m03;\n out[4] = m10;\n out[5] = m11;\n out[6] = m12;\n out[7] = m13;\n out[8] = m20;\n out[9] = m21;\n out[10] = m22;\n out[11] = m23;\n out[12] = m30;\n out[13] = m31;\n out[14] = m32;\n out[15] = m33;\n return out;\n}\n/**\n * Set a mat4 to the identity matrix\n *\n * @param {mat4} out the receiving matrix\n * @returns {mat4} out\n */\n\nexport function identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Transpose the values of a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function transpose(out, a) {\n // If we are transposing ourselves we can skip a few steps but have to cache some values\n if (out === a) {\n var a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a12 = a[6],\n a13 = a[7];\n var a23 = a[11];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a01;\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a02;\n out[9] = a12;\n out[11] = a[14];\n out[12] = a03;\n out[13] = a13;\n out[14] = a23;\n } else {\n out[0] = a[0];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a[1];\n out[5] = a[5];\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a[2];\n out[9] = a[6];\n out[10] = a[10];\n out[11] = a[14];\n out[12] = a[3];\n out[13] = a[7];\n out[14] = a[11];\n out[15] = a[15];\n }\n\n return out;\n}\n/**\n * Inverts a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function invert(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n\n if (!det) {\n return null;\n }\n\n det = 1.0 / det;\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det;\n out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det;\n out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det;\n out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det;\n out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det;\n out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det;\n out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det;\n return out;\n}\n/**\n * Calculates the adjugate of a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function adjoint(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n out[0] = a11 * (a22 * a33 - a23 * a32) - a21 * (a12 * a33 - a13 * a32) + a31 * (a12 * a23 - a13 * a22);\n out[1] = -(a01 * (a22 * a33 - a23 * a32) - a21 * (a02 * a33 - a03 * a32) + a31 * (a02 * a23 - a03 * a22));\n out[2] = a01 * (a12 * a33 - a13 * a32) - a11 * (a02 * a33 - a03 * a32) + a31 * (a02 * a13 - a03 * a12);\n out[3] = -(a01 * (a12 * a23 - a13 * a22) - a11 * (a02 * a23 - a03 * a22) + a21 * (a02 * a13 - a03 * a12));\n out[4] = -(a10 * (a22 * a33 - a23 * a32) - a20 * (a12 * a33 - a13 * a32) + a30 * (a12 * a23 - a13 * a22));\n out[5] = a00 * (a22 * a33 - a23 * a32) - a20 * (a02 * a33 - a03 * a32) + a30 * (a02 * a23 - a03 * a22);\n out[6] = -(a00 * (a12 * a33 - a13 * a32) - a10 * (a02 * a33 - a03 * a32) + a30 * (a02 * a13 - a03 * a12));\n out[7] = a00 * (a12 * a23 - a13 * a22) - a10 * (a02 * a23 - a03 * a22) + a20 * (a02 * a13 - a03 * a12);\n out[8] = a10 * (a21 * a33 - a23 * a31) - a20 * (a11 * a33 - a13 * a31) + a30 * (a11 * a23 - a13 * a21);\n out[9] = -(a00 * (a21 * a33 - a23 * a31) - a20 * (a01 * a33 - a03 * a31) + a30 * (a01 * a23 - a03 * a21));\n out[10] = a00 * (a11 * a33 - a13 * a31) - a10 * (a01 * a33 - a03 * a31) + a30 * (a01 * a13 - a03 * a11);\n out[11] = -(a00 * (a11 * a23 - a13 * a21) - a10 * (a01 * a23 - a03 * a21) + a20 * (a01 * a13 - a03 * a11));\n out[12] = -(a10 * (a21 * a32 - a22 * a31) - a20 * (a11 * a32 - a12 * a31) + a30 * (a11 * a22 - a12 * a21));\n out[13] = a00 * (a21 * a32 - a22 * a31) - a20 * (a01 * a32 - a02 * a31) + a30 * (a01 * a22 - a02 * a21);\n out[14] = -(a00 * (a11 * a32 - a12 * a31) - a10 * (a01 * a32 - a02 * a31) + a30 * (a01 * a12 - a02 * a11));\n out[15] = a00 * (a11 * a22 - a12 * a21) - a10 * (a01 * a22 - a02 * a21) + a20 * (a01 * a12 - a02 * a11);\n return out;\n}\n/**\n * Calculates the determinant of a mat4\n *\n * @param {ReadonlyMat4} a the source matrix\n * @returns {Number} determinant of a\n */\n\nexport function determinant(a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n return b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n}\n/**\n * Multiplies two mat4s\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\n\nexport function multiply(out, a, b) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15]; // Cache only the current line of the second matrix\n\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3];\n out[0] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[1] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[2] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[3] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[4];\n b1 = b[5];\n b2 = b[6];\n b3 = b[7];\n out[4] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[5] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[6] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[7] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[8];\n b1 = b[9];\n b2 = b[10];\n b3 = b[11];\n out[8] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[9] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[10] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[11] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[12];\n b1 = b[13];\n b2 = b[14];\n b3 = b[15];\n out[12] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[13] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[14] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n return out;\n}\n/**\n * Translate a mat4 by the given vector\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to translate\n * @param {ReadonlyVec3} v vector to translate by\n * @returns {mat4} out\n */\n\nexport function translate(out, a, v) {\n var x = v[0],\n y = v[1],\n z = v[2];\n var a00, a01, a02, a03;\n var a10, a11, a12, a13;\n var a20, a21, a22, a23;\n\n if (a === out) {\n out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];\n out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];\n out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];\n out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];\n } else {\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11];\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n out[3] = a03;\n out[4] = a10;\n out[5] = a11;\n out[6] = a12;\n out[7] = a13;\n out[8] = a20;\n out[9] = a21;\n out[10] = a22;\n out[11] = a23;\n out[12] = a00 * x + a10 * y + a20 * z + a[12];\n out[13] = a01 * x + a11 * y + a21 * z + a[13];\n out[14] = a02 * x + a12 * y + a22 * z + a[14];\n out[15] = a03 * x + a13 * y + a23 * z + a[15];\n }\n\n return out;\n}\n/**\n * Scales the mat4 by the dimensions in the given vec3 not using vectorization\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to scale\n * @param {ReadonlyVec3} v the vec3 to scale the matrix by\n * @returns {mat4} out\n **/\n\nexport function scale(out, a, v) {\n var x = v[0],\n y = v[1],\n z = v[2];\n out[0] = a[0] * x;\n out[1] = a[1] * x;\n out[2] = a[2] * x;\n out[3] = a[3] * x;\n out[4] = a[4] * y;\n out[5] = a[5] * y;\n out[6] = a[6] * y;\n out[7] = a[7] * y;\n out[8] = a[8] * z;\n out[9] = a[9] * z;\n out[10] = a[10] * z;\n out[11] = a[11] * z;\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\n * Rotates a mat4 by the given angle around the given axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @param {ReadonlyVec3} axis the axis to rotate around\n * @returns {mat4} out\n */\n\nexport function rotate(out, a, rad, axis) {\n var x = axis[0],\n y = axis[1],\n z = axis[2];\n var len = Math.hypot(x, y, z);\n var s, c, t;\n var a00, a01, a02, a03;\n var a10, a11, a12, a13;\n var a20, a21, a22, a23;\n var b00, b01, b02;\n var b10, b11, b12;\n var b20, b21, b22;\n\n if (len < glMatrix.EPSILON) {\n return null;\n }\n\n len = 1 / len;\n x *= len;\n y *= len;\n z *= len;\n s = Math.sin(rad);\n c = Math.cos(rad);\n t = 1 - c;\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11]; // Construct the elements of the rotation matrix\n\n b00 = x * x * t + c;\n b01 = y * x * t + z * s;\n b02 = z * x * t - y * s;\n b10 = x * y * t - z * s;\n b11 = y * y * t + c;\n b12 = z * y * t + x * s;\n b20 = x * z * t + y * s;\n b21 = y * z * t - x * s;\n b22 = z * z * t + c; // Perform rotation-specific matrix multiplication\n\n out[0] = a00 * b00 + a10 * b01 + a20 * b02;\n out[1] = a01 * b00 + a11 * b01 + a21 * b02;\n out[2] = a02 * b00 + a12 * b01 + a22 * b02;\n out[3] = a03 * b00 + a13 * b01 + a23 * b02;\n out[4] = a00 * b10 + a10 * b11 + a20 * b12;\n out[5] = a01 * b10 + a11 * b11 + a21 * b12;\n out[6] = a02 * b10 + a12 * b11 + a22 * b12;\n out[7] = a03 * b10 + a13 * b11 + a23 * b12;\n out[8] = a00 * b20 + a10 * b21 + a20 * b22;\n out[9] = a01 * b20 + a11 * b21 + a21 * b22;\n out[10] = a02 * b20 + a12 * b21 + a22 * b22;\n out[11] = a03 * b20 + a13 * b21 + a23 * b22;\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged last row\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n\n return out;\n}\n/**\n * Rotates a matrix by the given angle around the X axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function rotateX(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a10 = a[4];\n var a11 = a[5];\n var a12 = a[6];\n var a13 = a[7];\n var a20 = a[8];\n var a21 = a[9];\n var a22 = a[10];\n var a23 = a[11];\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged rows\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n\n out[4] = a10 * c + a20 * s;\n out[5] = a11 * c + a21 * s;\n out[6] = a12 * c + a22 * s;\n out[7] = a13 * c + a23 * s;\n out[8] = a20 * c - a10 * s;\n out[9] = a21 * c - a11 * s;\n out[10] = a22 * c - a12 * s;\n out[11] = a23 * c - a13 * s;\n return out;\n}\n/**\n * Rotates a matrix by the given angle around the Y axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function rotateY(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a00 = a[0];\n var a01 = a[1];\n var a02 = a[2];\n var a03 = a[3];\n var a20 = a[8];\n var a21 = a[9];\n var a22 = a[10];\n var a23 = a[11];\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged rows\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n\n out[0] = a00 * c - a20 * s;\n out[1] = a01 * c - a21 * s;\n out[2] = a02 * c - a22 * s;\n out[3] = a03 * c - a23 * s;\n out[8] = a00 * s + a20 * c;\n out[9] = a01 * s + a21 * c;\n out[10] = a02 * s + a22 * c;\n out[11] = a03 * s + a23 * c;\n return out;\n}\n/**\n * Rotates a matrix by the given angle around the Z axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function rotateZ(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a00 = a[0];\n var a01 = a[1];\n var a02 = a[2];\n var a03 = a[3];\n var a10 = a[4];\n var a11 = a[5];\n var a12 = a[6];\n var a13 = a[7];\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged last row\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n\n out[0] = a00 * c + a10 * s;\n out[1] = a01 * c + a11 * s;\n out[2] = a02 * c + a12 * s;\n out[3] = a03 * c + a13 * s;\n out[4] = a10 * c - a00 * s;\n out[5] = a11 * c - a01 * s;\n out[6] = a12 * c - a02 * s;\n out[7] = a13 * c - a03 * s;\n return out;\n}\n/**\n * Creates a matrix from a vector translation\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, dest, vec);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {ReadonlyVec3} v Translation vector\n * @returns {mat4} out\n */\n\nexport function fromTranslation(out, v) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a vector scaling\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.scale(dest, dest, vec);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {ReadonlyVec3} v Scaling vector\n * @returns {mat4} out\n */\n\nexport function fromScaling(out, v) {\n out[0] = v[0];\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = v[1];\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = v[2];\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a given angle around a given axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotate(dest, dest, rad, axis);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @param {ReadonlyVec3} axis the axis to rotate around\n * @returns {mat4} out\n */\n\nexport function fromRotation(out, rad, axis) {\n var x = axis[0],\n y = axis[1],\n z = axis[2];\n var len = Math.hypot(x, y, z);\n var s, c, t;\n\n if (len < glMatrix.EPSILON) {\n return null;\n }\n\n len = 1 / len;\n x *= len;\n y *= len;\n z *= len;\n s = Math.sin(rad);\n c = Math.cos(rad);\n t = 1 - c; // Perform rotation-specific matrix multiplication\n\n out[0] = x * x * t + c;\n out[1] = y * x * t + z * s;\n out[2] = z * x * t - y * s;\n out[3] = 0;\n out[4] = x * y * t - z * s;\n out[5] = y * y * t + c;\n out[6] = z * y * t + x * s;\n out[7] = 0;\n out[8] = x * z * t + y * s;\n out[9] = y * z * t - x * s;\n out[10] = z * z * t + c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from the given angle around the X axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotateX(dest, dest, rad);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function fromXRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = c;\n out[6] = s;\n out[7] = 0;\n out[8] = 0;\n out[9] = -s;\n out[10] = c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from the given angle around the Y axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotateY(dest, dest, rad);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function fromYRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = c;\n out[1] = 0;\n out[2] = -s;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = s;\n out[9] = 0;\n out[10] = c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from the given angle around the Z axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotateZ(dest, dest, rad);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function fromZRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = c;\n out[1] = s;\n out[2] = 0;\n out[3] = 0;\n out[4] = -s;\n out[5] = c;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a quaternion rotation and vector translation\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, vec);\n * let quatMat = mat4.create();\n * quat4.toMat4(quat, quatMat);\n * mat4.multiply(dest, quatMat);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @param {ReadonlyVec3} v Translation vector\n * @returns {mat4} out\n */\n\nexport function fromRotationTranslation(out, q, v) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - (yy + zz);\n out[1] = xy + wz;\n out[2] = xz - wy;\n out[3] = 0;\n out[4] = xy - wz;\n out[5] = 1 - (xx + zz);\n out[6] = yz + wx;\n out[7] = 0;\n out[8] = xz + wy;\n out[9] = yz - wx;\n out[10] = 1 - (xx + yy);\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\n * Creates a new mat4 from a dual quat.\n *\n * @param {mat4} out Matrix\n * @param {ReadonlyQuat2} a Dual Quaternion\n * @returns {mat4} mat4 receiving operation result\n */\n\nexport function fromQuat2(out, a) {\n var translation = new glMatrix.ARRAY_TYPE(3);\n var bx = -a[0],\n by = -a[1],\n bz = -a[2],\n bw = a[3],\n ax = a[4],\n ay = a[5],\n az = a[6],\n aw = a[7];\n var magnitude = bx * bx + by * by + bz * bz + bw * bw; //Only scale if it makes sense\n\n if (magnitude > 0) {\n translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2 / magnitude;\n translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2 / magnitude;\n translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2 / magnitude;\n } else {\n translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2;\n translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2;\n translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2;\n }\n\n fromRotationTranslation(out, a, translation);\n return out;\n}\n/**\n * Returns the translation vector component of a transformation\n * matrix. If a matrix is built with fromRotationTranslation,\n * the returned vector will be the same as the translation vector\n * originally supplied.\n * @param {vec3} out Vector to receive translation component\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\n * @return {vec3} out\n */\n\nexport function getTranslation(out, mat) {\n out[0] = mat[12];\n out[1] = mat[13];\n out[2] = mat[14];\n return out;\n}\n/**\n * Returns the scaling factor component of a transformation\n * matrix. If a matrix is built with fromRotationTranslationScale\n * with a normalized Quaternion paramter, the returned vector will be\n * the same as the scaling vector\n * originally supplied.\n * @param {vec3} out Vector to receive scaling factor component\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\n * @return {vec3} out\n */\n\nexport function getScaling(out, mat) {\n var m11 = mat[0];\n var m12 = mat[1];\n var m13 = mat[2];\n var m21 = mat[4];\n var m22 = mat[5];\n var m23 = mat[6];\n var m31 = mat[8];\n var m32 = mat[9];\n var m33 = mat[10];\n out[0] = Math.hypot(m11, m12, m13);\n out[1] = Math.hypot(m21, m22, m23);\n out[2] = Math.hypot(m31, m32, m33);\n return out;\n}\n/**\n * Returns a quaternion representing the rotational component\n * of a transformation matrix. If a matrix is built with\n * fromRotationTranslation, the returned quaternion will be the\n * same as the quaternion originally supplied.\n * @param {quat} out Quaternion to receive the rotation component\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\n * @return {quat} out\n */\n\nexport function getRotation(out, mat) {\n var scaling = new glMatrix.ARRAY_TYPE(3);\n getScaling(scaling, mat);\n var is1 = 1 / scaling[0];\n var is2 = 1 / scaling[1];\n var is3 = 1 / scaling[2];\n var sm11 = mat[0] * is1;\n var sm12 = mat[1] * is2;\n var sm13 = mat[2] * is3;\n var sm21 = mat[4] * is1;\n var sm22 = mat[5] * is2;\n var sm23 = mat[6] * is3;\n var sm31 = mat[8] * is1;\n var sm32 = mat[9] * is2;\n var sm33 = mat[10] * is3;\n var trace = sm11 + sm22 + sm33;\n var S = 0;\n\n if (trace > 0) {\n S = Math.sqrt(trace + 1.0) * 2;\n out[3] = 0.25 * S;\n out[0] = (sm23 - sm32) / S;\n out[1] = (sm31 - sm13) / S;\n out[2] = (sm12 - sm21) / S;\n } else if (sm11 > sm22 && sm11 > sm33) {\n S = Math.sqrt(1.0 + sm11 - sm22 - sm33) * 2;\n out[3] = (sm23 - sm32) / S;\n out[0] = 0.25 * S;\n out[1] = (sm12 + sm21) / S;\n out[2] = (sm31 + sm13) / S;\n } else if (sm22 > sm33) {\n S = Math.sqrt(1.0 + sm22 - sm11 - sm33) * 2;\n out[3] = (sm31 - sm13) / S;\n out[0] = (sm12 + sm21) / S;\n out[1] = 0.25 * S;\n out[2] = (sm23 + sm32) / S;\n } else {\n S = Math.sqrt(1.0 + sm33 - sm11 - sm22) * 2;\n out[3] = (sm12 - sm21) / S;\n out[0] = (sm31 + sm13) / S;\n out[1] = (sm23 + sm32) / S;\n out[2] = 0.25 * S;\n }\n\n return out;\n}\n/**\n * Creates a matrix from a quaternion rotation, vector translation and vector scale\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, vec);\n * let quatMat = mat4.create();\n * quat4.toMat4(quat, quatMat);\n * mat4.multiply(dest, quatMat);\n * mat4.scale(dest, scale)\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @param {ReadonlyVec3} v Translation vector\n * @param {ReadonlyVec3} s Scaling vector\n * @returns {mat4} out\n */\n\nexport function fromRotationTranslationScale(out, q, v, s) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n var sx = s[0];\n var sy = s[1];\n var sz = s[2];\n out[0] = (1 - (yy + zz)) * sx;\n out[1] = (xy + wz) * sx;\n out[2] = (xz - wy) * sx;\n out[3] = 0;\n out[4] = (xy - wz) * sy;\n out[5] = (1 - (xx + zz)) * sy;\n out[6] = (yz + wx) * sy;\n out[7] = 0;\n out[8] = (xz + wy) * sz;\n out[9] = (yz - wx) * sz;\n out[10] = (1 - (xx + yy)) * sz;\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a quaternion rotation, vector translation and vector scale, rotating and scaling around the given origin\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, vec);\n * mat4.translate(dest, origin);\n * let quatMat = mat4.create();\n * quat4.toMat4(quat, quatMat);\n * mat4.multiply(dest, quatMat);\n * mat4.scale(dest, scale)\n * mat4.translate(dest, negativeOrigin);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @param {ReadonlyVec3} v Translation vector\n * @param {ReadonlyVec3} s Scaling vector\n * @param {ReadonlyVec3} o The origin vector around which to scale and rotate\n * @returns {mat4} out\n */\n\nexport function fromRotationTranslationScaleOrigin(out, q, v, s, o) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n var sx = s[0];\n var sy = s[1];\n var sz = s[2];\n var ox = o[0];\n var oy = o[1];\n var oz = o[2];\n var out0 = (1 - (yy + zz)) * sx;\n var out1 = (xy + wz) * sx;\n var out2 = (xz - wy) * sx;\n var out4 = (xy - wz) * sy;\n var out5 = (1 - (xx + zz)) * sy;\n var out6 = (yz + wx) * sy;\n var out8 = (xz + wy) * sz;\n var out9 = (yz - wx) * sz;\n var out10 = (1 - (xx + yy)) * sz;\n out[0] = out0;\n out[1] = out1;\n out[2] = out2;\n out[3] = 0;\n out[4] = out4;\n out[5] = out5;\n out[6] = out6;\n out[7] = 0;\n out[8] = out8;\n out[9] = out9;\n out[10] = out10;\n out[11] = 0;\n out[12] = v[0] + ox - (out0 * ox + out4 * oy + out8 * oz);\n out[13] = v[1] + oy - (out1 * ox + out5 * oy + out9 * oz);\n out[14] = v[2] + oz - (out2 * ox + out6 * oy + out10 * oz);\n out[15] = 1;\n return out;\n}\n/**\n * Calculates a 4x4 matrix from the given quaternion\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {ReadonlyQuat} q Quaternion to create matrix from\n *\n * @returns {mat4} out\n */\n\nexport function fromQuat(out, q) {\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var yx = y * x2;\n var yy = y * y2;\n var zx = z * x2;\n var zy = z * y2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - yy - zz;\n out[1] = yx + wz;\n out[2] = zx - wy;\n out[3] = 0;\n out[4] = yx - wz;\n out[5] = 1 - xx - zz;\n out[6] = zy + wx;\n out[7] = 0;\n out[8] = zx + wy;\n out[9] = zy - wx;\n out[10] = 1 - xx - yy;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Generates a frustum matrix with the given bounds\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {Number} left Left bound of the frustum\n * @param {Number} right Right bound of the frustum\n * @param {Number} bottom Bottom bound of the frustum\n * @param {Number} top Top bound of the frustum\n * @param {Number} near Near bound of the frustum\n * @param {Number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function frustum(out, left, right, bottom, top, near, far) {\n var rl = 1 / (right - left);\n var tb = 1 / (top - bottom);\n var nf = 1 / (near - far);\n out[0] = near * 2 * rl;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = near * 2 * tb;\n out[6] = 0;\n out[7] = 0;\n out[8] = (right + left) * rl;\n out[9] = (top + bottom) * tb;\n out[10] = (far + near) * nf;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[14] = far * near * 2 * nf;\n out[15] = 0;\n return out;\n}\n/**\n * Generates a perspective projection matrix with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [-1, 1],\n * which matches WebGL/OpenGL's clip volume.\n * Passing null/undefined/no value for far will generate infinite projection matrix.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} fovy Vertical field of view in radians\n * @param {number} aspect Aspect ratio. typically viewport width/height\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum, can be null or Infinity\n * @returns {mat4} out\n */\n\nexport function perspectiveNO(out, fovy, aspect, near, far) {\n var f = 1.0 / Math.tan(fovy / 2),\n nf;\n out[0] = f / aspect;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = f;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[15] = 0;\n\n if (far != null && far !== Infinity) {\n nf = 1 / (near - far);\n out[10] = (far + near) * nf;\n out[14] = 2 * far * near * nf;\n } else {\n out[10] = -1;\n out[14] = -2 * near;\n }\n\n return out;\n}\n/**\n * Alias for {@link mat4.perspectiveNO}\n * @function\n */\n\nexport var perspective = perspectiveNO;\n/**\n * Generates a perspective projection matrix suitable for WebGPU with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [0, 1],\n * which matches WebGPU/Vulkan/DirectX/Metal's clip volume.\n * Passing null/undefined/no value for far will generate infinite projection matrix.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} fovy Vertical field of view in radians\n * @param {number} aspect Aspect ratio. typically viewport width/height\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum, can be null or Infinity\n * @returns {mat4} out\n */\n\nexport function perspectiveZO(out, fovy, aspect, near, far) {\n var f = 1.0 / Math.tan(fovy / 2),\n nf;\n out[0] = f / aspect;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = f;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[15] = 0;\n\n if (far != null && far !== Infinity) {\n nf = 1 / (near - far);\n out[10] = far * nf;\n out[14] = far * near * nf;\n } else {\n out[10] = -1;\n out[14] = -near;\n }\n\n return out;\n}\n/**\n * Generates a perspective projection matrix with the given field of view.\n * This is primarily useful for generating projection matrices to be used\n * with the still experiemental WebVR API.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {Object} fov Object containing the following values: upDegrees, downDegrees, leftDegrees, rightDegrees\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function perspectiveFromFieldOfView(out, fov, near, far) {\n var upTan = Math.tan(fov.upDegrees * Math.PI / 180.0);\n var downTan = Math.tan(fov.downDegrees * Math.PI / 180.0);\n var leftTan = Math.tan(fov.leftDegrees * Math.PI / 180.0);\n var rightTan = Math.tan(fov.rightDegrees * Math.PI / 180.0);\n var xScale = 2.0 / (leftTan + rightTan);\n var yScale = 2.0 / (upTan + downTan);\n out[0] = xScale;\n out[1] = 0.0;\n out[2] = 0.0;\n out[3] = 0.0;\n out[4] = 0.0;\n out[5] = yScale;\n out[6] = 0.0;\n out[7] = 0.0;\n out[8] = -((leftTan - rightTan) * xScale * 0.5);\n out[9] = (upTan - downTan) * yScale * 0.5;\n out[10] = far / (near - far);\n out[11] = -1.0;\n out[12] = 0.0;\n out[13] = 0.0;\n out[14] = far * near / (near - far);\n out[15] = 0.0;\n return out;\n}\n/**\n * Generates a orthogonal projection matrix with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [-1, 1],\n * which matches WebGL/OpenGL's clip volume.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} left Left bound of the frustum\n * @param {number} right Right bound of the frustum\n * @param {number} bottom Bottom bound of the frustum\n * @param {number} top Top bound of the frustum\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function orthoNO(out, left, right, bottom, top, near, far) {\n var lr = 1 / (left - right);\n var bt = 1 / (bottom - top);\n var nf = 1 / (near - far);\n out[0] = -2 * lr;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = -2 * bt;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 2 * nf;\n out[11] = 0;\n out[12] = (left + right) * lr;\n out[13] = (top + bottom) * bt;\n out[14] = (far + near) * nf;\n out[15] = 1;\n return out;\n}\n/**\n * Alias for {@link mat4.orthoNO}\n * @function\n */\n\nexport var ortho = orthoNO;\n/**\n * Generates a orthogonal projection matrix with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [0, 1],\n * which matches WebGPU/Vulkan/DirectX/Metal's clip volume.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} left Left bound of the frustum\n * @param {number} right Right bound of the frustum\n * @param {number} bottom Bottom bound of the frustum\n * @param {number} top Top bound of the frustum\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function orthoZO(out, left, right, bottom, top, near, far) {\n var lr = 1 / (left - right);\n var bt = 1 / (bottom - top);\n var nf = 1 / (near - far);\n out[0] = -2 * lr;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = -2 * bt;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = nf;\n out[11] = 0;\n out[12] = (left + right) * lr;\n out[13] = (top + bottom) * bt;\n out[14] = near * nf;\n out[15] = 1;\n return out;\n}\n/**\n * Generates a look-at matrix with the given eye position, focal point, and up axis.\n * If you want a matrix that actually makes an object look at another object, you should use targetTo instead.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {ReadonlyVec3} eye Position of the viewer\n * @param {ReadonlyVec3} center Point the viewer is looking at\n * @param {ReadonlyVec3} up vec3 pointing up\n * @returns {mat4} out\n */\n\nexport function lookAt(out, eye, center, up) {\n var x0, x1, x2, y0, y1, y2, z0, z1, z2, len;\n var eyex = eye[0];\n var eyey = eye[1];\n var eyez = eye[2];\n var upx = up[0];\n var upy = up[1];\n var upz = up[2];\n var centerx = center[0];\n var centery = center[1];\n var centerz = center[2];\n\n if (Math.abs(eyex - centerx) < glMatrix.EPSILON && Math.abs(eyey - centery) < glMatrix.EPSILON && Math.abs(eyez - centerz) < glMatrix.EPSILON) {\n return identity(out);\n }\n\n z0 = eyex - centerx;\n z1 = eyey - centery;\n z2 = eyez - centerz;\n len = 1 / Math.hypot(z0, z1, z2);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n x0 = upy * z2 - upz * z1;\n x1 = upz * z0 - upx * z2;\n x2 = upx * z1 - upy * z0;\n len = Math.hypot(x0, x1, x2);\n\n if (!len) {\n x0 = 0;\n x1 = 0;\n x2 = 0;\n } else {\n len = 1 / len;\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n\n y0 = z1 * x2 - z2 * x1;\n y1 = z2 * x0 - z0 * x2;\n y2 = z0 * x1 - z1 * x0;\n len = Math.hypot(y0, y1, y2);\n\n if (!len) {\n y0 = 0;\n y1 = 0;\n y2 = 0;\n } else {\n len = 1 / len;\n y0 *= len;\n y1 *= len;\n y2 *= len;\n }\n\n out[0] = x0;\n out[1] = y0;\n out[2] = z0;\n out[3] = 0;\n out[4] = x1;\n out[5] = y1;\n out[6] = z1;\n out[7] = 0;\n out[8] = x2;\n out[9] = y2;\n out[10] = z2;\n out[11] = 0;\n out[12] = -(x0 * eyex + x1 * eyey + x2 * eyez);\n out[13] = -(y0 * eyex + y1 * eyey + y2 * eyez);\n out[14] = -(z0 * eyex + z1 * eyey + z2 * eyez);\n out[15] = 1;\n return out;\n}\n/**\n * Generates a matrix that makes something look at something else.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {ReadonlyVec3} eye Position of the viewer\n * @param {ReadonlyVec3} center Point the viewer is looking at\n * @param {ReadonlyVec3} up vec3 pointing up\n * @returns {mat4} out\n */\n\nexport function targetTo(out, eye, target, up) {\n var eyex = eye[0],\n eyey = eye[1],\n eyez = eye[2],\n upx = up[0],\n upy = up[1],\n upz = up[2];\n var z0 = eyex - target[0],\n z1 = eyey - target[1],\n z2 = eyez - target[2];\n var len = z0 * z0 + z1 * z1 + z2 * z2;\n\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n }\n\n var x0 = upy * z2 - upz * z1,\n x1 = upz * z0 - upx * z2,\n x2 = upx * z1 - upy * z0;\n len = x0 * x0 + x1 * x1 + x2 * x2;\n\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n\n out[0] = x0;\n out[1] = x1;\n out[2] = x2;\n out[3] = 0;\n out[4] = z1 * x2 - z2 * x1;\n out[5] = z2 * x0 - z0 * x2;\n out[6] = z0 * x1 - z1 * x0;\n out[7] = 0;\n out[8] = z0;\n out[9] = z1;\n out[10] = z2;\n out[11] = 0;\n out[12] = eyex;\n out[13] = eyey;\n out[14] = eyez;\n out[15] = 1;\n return out;\n}\n/**\n * Returns a string representation of a mat4\n *\n * @param {ReadonlyMat4} a matrix to represent as a string\n * @returns {String} string representation of the matrix\n */\n\nexport function str(a) {\n return \"mat4(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \", \" + a[4] + \", \" + a[5] + \", \" + a[6] + \", \" + a[7] + \", \" + a[8] + \", \" + a[9] + \", \" + a[10] + \", \" + a[11] + \", \" + a[12] + \", \" + a[13] + \", \" + a[14] + \", \" + a[15] + \")\";\n}\n/**\n * Returns Frobenius norm of a mat4\n *\n * @param {ReadonlyMat4} a the matrix to calculate Frobenius norm of\n * @returns {Number} Frobenius norm\n */\n\nexport function frob(a) {\n return Math.hypot(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]);\n}\n/**\n * Adds two mat4's\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n out[4] = a[4] + b[4];\n out[5] = a[5] + b[5];\n out[6] = a[6] + b[6];\n out[7] = a[7] + b[7];\n out[8] = a[8] + b[8];\n out[9] = a[9] + b[9];\n out[10] = a[10] + b[10];\n out[11] = a[11] + b[11];\n out[12] = a[12] + b[12];\n out[13] = a[13] + b[13];\n out[14] = a[14] + b[14];\n out[15] = a[15] + b[15];\n return out;\n}\n/**\n * Subtracts matrix b from matrix a\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n out[4] = a[4] - b[4];\n out[5] = a[5] - b[5];\n out[6] = a[6] - b[6];\n out[7] = a[7] - b[7];\n out[8] = a[8] - b[8];\n out[9] = a[9] - b[9];\n out[10] = a[10] - b[10];\n out[11] = a[11] - b[11];\n out[12] = a[12] - b[12];\n out[13] = a[13] - b[13];\n out[14] = a[14] - b[14];\n out[15] = a[15] - b[15];\n return out;\n}\n/**\n * Multiply each element of the matrix by a scalar.\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to scale\n * @param {Number} b amount to scale the matrix's elements by\n * @returns {mat4} out\n */\n\nexport function multiplyScalar(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n out[4] = a[4] * b;\n out[5] = a[5] * b;\n out[6] = a[6] * b;\n out[7] = a[7] * b;\n out[8] = a[8] * b;\n out[9] = a[9] * b;\n out[10] = a[10] * b;\n out[11] = a[11] * b;\n out[12] = a[12] * b;\n out[13] = a[13] * b;\n out[14] = a[14] * b;\n out[15] = a[15] * b;\n return out;\n}\n/**\n * Adds two mat4's after multiplying each element of the second operand by a scalar value.\n *\n * @param {mat4} out the receiving vector\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @param {Number} scale the amount to scale b's elements by before adding\n * @returns {mat4} out\n */\n\nexport function multiplyScalarAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n out[4] = a[4] + b[4] * scale;\n out[5] = a[5] + b[5] * scale;\n out[6] = a[6] + b[6] * scale;\n out[7] = a[7] + b[7] * scale;\n out[8] = a[8] + b[8] * scale;\n out[9] = a[9] + b[9] * scale;\n out[10] = a[10] + b[10] * scale;\n out[11] = a[11] + b[11] * scale;\n out[12] = a[12] + b[12] * scale;\n out[13] = a[13] + b[13] * scale;\n out[14] = a[14] + b[14] * scale;\n out[15] = a[15] + b[15] * scale;\n return out;\n}\n/**\n * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyMat4} a The first matrix.\n * @param {ReadonlyMat4} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5] && a[6] === b[6] && a[7] === b[7] && a[8] === b[8] && a[9] === b[9] && a[10] === b[10] && a[11] === b[11] && a[12] === b[12] && a[13] === b[13] && a[14] === b[14] && a[15] === b[15];\n}\n/**\n * Returns whether or not the matrices have approximately the same elements in the same position.\n *\n * @param {ReadonlyMat4} a The first matrix.\n * @param {ReadonlyMat4} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3];\n var a4 = a[4],\n a5 = a[5],\n a6 = a[6],\n a7 = a[7];\n var a8 = a[8],\n a9 = a[9],\n a10 = a[10],\n a11 = a[11];\n var a12 = a[12],\n a13 = a[13],\n a14 = a[14],\n a15 = a[15];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3];\n var b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7];\n var b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11];\n var b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) && Math.abs(a4 - b4) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) && Math.abs(a5 - b5) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5)) && Math.abs(a6 - b6) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a6), Math.abs(b6)) && Math.abs(a7 - b7) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a7), Math.abs(b7)) && Math.abs(a8 - b8) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a8), Math.abs(b8)) && Math.abs(a9 - b9) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a9), Math.abs(b9)) && Math.abs(a10 - b10) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a10), Math.abs(b10)) && Math.abs(a11 - b11) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a11), Math.abs(b11)) && Math.abs(a12 - b12) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a12), Math.abs(b12)) && Math.abs(a13 - b13) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a13), Math.abs(b13)) && Math.abs(a14 - b14) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a14), Math.abs(b14)) && Math.abs(a15 - b15) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a15), Math.abs(b15));\n}\n/**\n * Alias for {@link mat4.multiply}\n * @function\n */\n\nexport var mul = multiply;\n/**\n * Alias for {@link mat4.subtract}\n * @function\n */\n\nexport var sub = subtract;","import { mat4 } from \"gl-matrix\";\nexport const setProjectionMatrix = (projectionMatrix, gl, cameraZoom, cameraPosition) => {\n projectionMatrix = mat4.identity(projectionMatrix);\n mat4.ortho(projectionMatrix, -gl.canvas.width / 2, gl.canvas.width / 2, -gl.canvas.height / 2, gl.canvas.height / 2, -1, 1);\n mat4.scale(projectionMatrix, projectionMatrix, [cameraZoom !== null && cameraZoom !== void 0 ? cameraZoom : 1, cameraZoom !== null && cameraZoom !== void 0 ? cameraZoom : 1, 1]);\n mat4.translate(projectionMatrix, projectionMatrix, [-cameraPosition.x, -cameraPosition.y, 0]);\n};\nexport const hexToRgba = (hex) => {\n const result = /^#?([a-f\\d]{2})?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result\n ? {\n r: parseInt(result[2], 16) / 256,\n g: parseInt(result[3], 16) / 256,\n b: parseInt(result[4], 16) / 256,\n a: result[1] !== undefined ? parseInt(result[1], 16) / 256 : 1,\n }\n : null;\n};\n//# sourceMappingURL=utils.js.map","import { hexToRgba } from \"./utils\";\nexport class CanvasColorRenderer {\n constructor(gl) {\n this.gl = gl;\n }\n render(hexColor) {\n const rgb = hexToRgba(hexColor);\n this.gl.clearColor(rgb.r, rgb.g, rgb.b, rgb.a);\n this.gl.clear(this.gl.COLOR_BUFFER_BIT);\n }\n}\n//# sourceMappingURL=CanvasColorRenderer.js.map","export var RenderDataType;\n(function (RenderDataType) {\n RenderDataType[RenderDataType[\"Sprite\"] = 0] = \"Sprite\";\n RenderDataType[RenderDataType[\"Text\"] = 1] = \"Text\";\n RenderDataType[RenderDataType[\"Tilemap\"] = 2] = \"Tilemap\";\n RenderDataType[RenderDataType[\"Mask\"] = 3] = \"Mask\";\n RenderDataType[RenderDataType[\"Geometric\"] = 4] = \"Geometric\";\n RenderDataType[RenderDataType[\"Video\"] = 5] = \"Video\";\n RenderDataType[RenderDataType[\"Darkness\"] = 6] = \"Darkness\";\n})(RenderDataType || (RenderDataType = {}));\n//# sourceMappingURL=Renderer.js.map","import { mat4 } from \"gl-matrix\";\nimport { RenderDataType } from \"./Renderer\";\nimport { range } from \"@angry-pixel/math\";\nimport { hexToRgba, setProjectionMatrix } from \"./utils\";\nconst CIRCUMFERENCE_VERTICES = 60;\nexport var GeometricShape;\n(function (GeometricShape) {\n GeometricShape[GeometricShape[\"Polygon\"] = 0] = \"Polygon\";\n GeometricShape[GeometricShape[\"Circumference\"] = 1] = \"Circumference\";\n GeometricShape[GeometricShape[\"Line\"] = 2] = \"Line\";\n})(GeometricShape || (GeometricShape = {}));\nexport class GeometricRenderer {\n constructor(gl, programManager) {\n this.gl = gl;\n this.programManager = programManager;\n this.projectionMatrix = mat4.create();\n this.modelMatrix = mat4.create();\n this.textureMatrix = mat4.create();\n this.circumferencePositionBuffer = this.gl.createBuffer();\n this.linesPositionBuffer = this.gl.createBuffer();\n // circumference position buffer\n const angle = (2 * Math.PI) / CIRCUMFERENCE_VERTICES;\n const vertices = new Float32Array(range(1, CIRCUMFERENCE_VERTICES, 1).reduce((v, i) => [...v, Math.cos(i * angle), Math.sin(i * angle)], []));\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.circumferencePositionBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, vertices, this.gl.STATIC_DRAW);\n }\n render(renderData, cameraData, lastRender) {\n this.gl.disableVertexAttribArray(this.programManager.texCoordsAttr);\n switch (renderData.shape) {\n case GeometricShape.Polygon:\n this.renderLines(renderData, cameraData, this.gl.LINE_LOOP);\n break;\n case GeometricShape.Line:\n this.renderLines(renderData, cameraData, this.gl.LINES);\n break;\n case GeometricShape.Circumference:\n this.renderCircumference(renderData, cameraData, lastRender);\n break;\n default:\n return false;\n }\n return true;\n }\n renderLines(renderData, cameraData, mode) {\n var _a;\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.linesPositionBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, new Float32Array(renderData.vertexModel.reduce((a, v) => [...a, v.x, v.y], [])), this.gl.DYNAMIC_DRAW);\n this.gl.enableVertexAttribArray(this.programManager.positionCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.positionCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n this.modelMatrix = mat4.identity(this.modelMatrix);\n mat4.translate(this.modelMatrix, this.modelMatrix, [renderData.position.x, renderData.position.y, 0]);\n mat4.rotateZ(this.modelMatrix, this.modelMatrix, (_a = renderData.rotation) !== null && _a !== void 0 ? _a : 0);\n setProjectionMatrix(this.projectionMatrix, this.gl, cameraData.zoom, cameraData.position);\n this.gl.uniformMatrix4fv(this.programManager.projectionMatrixUniform, false, this.projectionMatrix);\n this.gl.uniformMatrix4fv(this.programManager.modelMatrixUniform, false, this.modelMatrix);\n this.gl.uniformMatrix4fv(this.programManager.textureMatrixUniform, false, this.textureMatrix);\n this.gl.uniform1i(this.programManager.renderTextureUniform, 0);\n const { r, g, b, a } = hexToRgba(renderData.color);\n this.gl.uniform4f(this.programManager.solidColorUniform, r, g, b, a);\n this.gl.uniform1f(this.programManager.alphaUniform, 1);\n this.gl.drawArrays(mode, 0, renderData.vertexModel.length);\n this.lastShape = \"polygon\";\n }\n renderCircumference(renderData, cameraData, lastRender) {\n if (lastRender !== RenderDataType.Geometric || this.lastShape !== \"circumference\") {\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.circumferencePositionBuffer);\n this.gl.enableVertexAttribArray(this.programManager.positionCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.positionCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n }\n this.modelMatrix = mat4.identity(this.modelMatrix);\n mat4.translate(this.modelMatrix, this.modelMatrix, [renderData.position.x, renderData.position.y, 0]);\n mat4.scale(this.modelMatrix, this.modelMatrix, [renderData.radius, renderData.radius, 1]);\n setProjectionMatrix(this.projectionMatrix, this.gl, cameraData.zoom, cameraData.position);\n this.gl.uniformMatrix4fv(this.programManager.projectionMatrixUniform, false, this.projectionMatrix);\n this.gl.uniformMatrix4fv(this.programManager.modelMatrixUniform, false, this.modelMatrix);\n this.gl.uniformMatrix4fv(this.programManager.textureMatrixUniform, false, this.textureMatrix);\n this.gl.uniform1i(this.programManager.renderTextureUniform, 0);\n const { r, g, b, a } = hexToRgba(renderData.color);\n this.gl.uniform4f(this.programManager.solidColorUniform, r, g, b, a);\n this.gl.uniform1f(this.programManager.alphaUniform, 1);\n this.gl.drawArrays(this.gl.LINE_LOOP, 0, CIRCUMFERENCE_VERTICES);\n this.lastShape = \"circumference\";\n }\n}\n//# sourceMappingURL=GeometricRenderer.js.map","import { mat4 } from \"gl-matrix\";\nimport { hexToRgba, setProjectionMatrix } from \"./utils\";\nimport { RenderDataType } from \"./Renderer\";\n/**\n * Mask shape: Rectangle or Circumference.\n * @category Components Configuration\n * @public\n */\nexport var MaskShape;\n(function (MaskShape) {\n MaskShape[MaskShape[\"Rectangle\"] = 0] = \"Rectangle\";\n MaskShape[MaskShape[\"Circumference\"] = 1] = \"Circumference\";\n MaskShape[MaskShape[\"Polygon\"] = 2] = \"Polygon\";\n})(MaskShape || (MaskShape = {}));\nconst CIRCUMFERENCE_VERTICES = 60;\nexport class MaskRenderer {\n constructor(gl, programManager) {\n this.gl = gl;\n this.programManager = programManager;\n this.type = RenderDataType.Mask;\n this.projectionMatrix = mat4.create();\n this.modelMatrix = mat4.create();\n this.textureMatrix = mat4.create();\n this.circumferencePositionBuffer = this.gl.createBuffer();\n this.rectanglePositionBuffer = this.gl.createBuffer();\n this.polygonPositionBuffer = this.gl.createBuffer();\n // circumference position buffer\n const angle = (2 * Math.PI) / CIRCUMFERENCE_VERTICES;\n const vertices = [0, 0];\n for (let i = 0; i <= CIRCUMFERENCE_VERTICES; i++) {\n vertices.push(Math.cos(i * angle), Math.sin(i * angle));\n }\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.circumferencePositionBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, new Float32Array(vertices), this.gl.STATIC_DRAW);\n // rectangle position buffer\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.rectanglePositionBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, new Float32Array([-0.5, -0.5, -0.5, 0.5, 0.5, -0.5, 0.5, -0.5, -0.5, 0.5, 0.5, 0.5]), this.gl.STATIC_DRAW);\n }\n render(renderData, cameraData, lastRender) {\n this.gl.disableVertexAttribArray(this.programManager.texCoordsAttr);\n if (renderData.shape === MaskShape.Rectangle) {\n this.renderRectangle(renderData, cameraData, lastRender);\n }\n else if (renderData.shape === MaskShape.Circumference) {\n this.renderCircumference(renderData, cameraData, lastRender);\n }\n else if (renderData.shape === MaskShape.Polygon) {\n this.renderPolygon(renderData, cameraData, lastRender);\n }\n this.lastShape = renderData.shape;\n return true;\n }\n renderRectangle(renderData, cameraData, lastRender) {\n var _a, _b;\n if (lastRender !== RenderDataType.Mask || this.lastShape !== MaskShape.Rectangle) {\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.rectanglePositionBuffer);\n this.gl.enableVertexAttribArray(this.programManager.positionCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.positionCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n }\n this.modelMatrix = mat4.identity(this.modelMatrix);\n mat4.translate(this.modelMatrix, this.modelMatrix, [renderData.position.x, renderData.position.y, 0]);\n mat4.rotateZ(this.modelMatrix, this.modelMatrix, (_a = renderData.rotation) !== null && _a !== void 0 ? _a : 0);\n mat4.scale(this.modelMatrix, this.modelMatrix, [renderData.width, renderData.height, 1]);\n setProjectionMatrix(this.projectionMatrix, this.gl, cameraData.zoom, cameraData.position);\n this.gl.uniformMatrix4fv(this.programManager.projectionMatrixUniform, false, this.projectionMatrix);\n this.gl.uniformMatrix4fv(this.programManager.modelMatrixUniform, false, this.modelMatrix);\n this.gl.uniformMatrix4fv(this.programManager.textureMatrixUniform, false, this.textureMatrix);\n if (renderData.opacity >= 0 && renderData.opacity < 1) {\n this.gl.enable(this.gl.BLEND);\n }\n else {\n this.gl.disable(this.gl.BLEND);\n }\n this.gl.uniform1i(this.programManager.renderTextureUniform, 0);\n const { r, g, b, a } = hexToRgba(renderData.color);\n this.gl.uniform4f(this.programManager.solidColorUniform, r, g, b, a);\n this.gl.uniform1f(this.programManager.alphaUniform, (_b = renderData.opacity) !== null && _b !== void 0 ? _b : 1);\n this.gl.drawArrays(this.gl.TRIANGLES, 0, 6);\n }\n renderCircumference(renderData, cameraData, lastRender) {\n var _a, _b;\n if (lastRender !== RenderDataType.Mask || this.lastShape !== MaskShape.Circumference) {\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.circumferencePositionBuffer);\n this.gl.enableVertexAttribArray(this.programManager.positionCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.positionCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n }\n this.modelMatrix = mat4.identity(this.modelMatrix);\n mat4.translate(this.modelMatrix, this.modelMatrix, [renderData.position.x, renderData.position.y, 0]);\n mat4.rotateZ(this.modelMatrix, this.modelMatrix, (_a = renderData.rotation) !== null && _a !== void 0 ? _a : 0);\n mat4.scale(this.modelMatrix, this.modelMatrix, [renderData.radius, renderData.radius, 1]);\n setProjectionMatrix(this.projectionMatrix, this.gl, cameraData.zoom, cameraData.position);\n this.gl.uniformMatrix4fv(this.programManager.projectionMatrixUniform, false, this.projectionMatrix);\n this.gl.uniformMatrix4fv(this.programManager.modelMatrixUniform, false, this.modelMatrix);\n this.gl.uniformMatrix4fv(this.programManager.textureMatrixUniform, false, this.textureMatrix);\n if (renderData.opacity >= 0 && renderData.opacity < 1) {\n this.gl.enable(this.gl.BLEND);\n }\n else {\n this.gl.disable(this.gl.BLEND);\n }\n this.gl.uniform1i(this.programManager.renderTextureUniform, 0);\n const { r, g, b, a } = hexToRgba(renderData.color);\n this.gl.uniform4f(this.programManager.solidColorUniform, r, g, b, a);\n this.gl.uniform1f(this.programManager.alphaUniform, (_b = renderData.opacity) !== null && _b !== void 0 ? _b : 1);\n this.gl.drawArrays(this.gl.TRIANGLE_FAN, 0, CIRCUMFERENCE_VERTICES + 2);\n }\n renderPolygon(renderData, cameraData, lastRender) {\n var _a, _b;\n if (lastRender !== RenderDataType.Mask || this.lastShape !== MaskShape.Polygon) {\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.polygonPositionBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, new Float32Array(renderData.vertices.reduce((a, v) => [...a, v.x, v.y], [0, 0])), this.gl.DYNAMIC_DRAW);\n this.gl.enableVertexAttribArray(this.programManager.positionCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.positionCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n }\n this.modelMatrix = mat4.identity(this.modelMatrix);\n mat4.translate(this.modelMatrix, this.modelMatrix, [renderData.position.x, renderData.position.y, 0]);\n mat4.rotateZ(this.modelMatrix, this.modelMatrix, (_a = renderData.rotation) !== null && _a !== void 0 ? _a : 0);\n setProjectionMatrix(this.projectionMatrix, this.gl, cameraData.zoom, cameraData.position);\n this.gl.uniformMatrix4fv(this.programManager.projectionMatrixUniform, false, this.projectionMatrix);\n this.gl.uniformMatrix4fv(this.programManager.modelMatrixUniform, false, this.modelMatrix);\n this.gl.uniformMatrix4fv(this.programManager.textureMatrixUniform, false, this.textureMatrix);\n if (renderData.opacity >= 0 && renderData.opacity < 1) {\n this.gl.enable(this.gl.BLEND);\n }\n else {\n this.gl.disable(this.gl.BLEND);\n }\n this.gl.uniform1i(this.programManager.renderTextureUniform, 0);\n const { r, g, b, a } = hexToRgba(renderData.color);\n this.gl.uniform4f(this.programManager.solidColorUniform, r, g, b, a);\n this.gl.uniform1f(this.programManager.alphaUniform, (_b = renderData.opacity) !== null && _b !== void 0 ? _b : 1);\n this.gl.drawArrays(this.gl.TRIANGLE_FAN, 0, renderData.vertices.length + 1);\n }\n}\n//# sourceMappingURL=MaskRenderer.js.map","import { mat4 } from \"gl-matrix\";\nimport { RenderDataType } from \"./Renderer\";\nimport { hexToRgba, setProjectionMatrix } from \"./utils\";\nexport class DarknessRenderer {\n constructor(gl, programManager) {\n this.gl = gl;\n this.programManager = programManager;\n this.projectionMatrix = mat4.create();\n this.modelMatrix = mat4.create();\n this.textureMatrix = mat4.create();\n this.positionBuffer = this.gl.createBuffer();\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.positionBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, new Float32Array([-0.5, -0.5, -0.5, 0.5, 0.5, -0.5, 0.5, -0.5, -0.5, 0.5, 0.5, 0.5]), this.gl.STATIC_DRAW);\n }\n render(renderData, cameraData, lastRender) {\n var _a, _b;\n if (lastRender !== RenderDataType.Darkness) {\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.positionBuffer);\n this.gl.enableVertexAttribArray(this.programManager.positionCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.positionCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n this.gl.disableVertexAttribArray(this.programManager.texCoordsAttr);\n }\n this.modelMatrix = mat4.identity(this.modelMatrix);\n mat4.translate(this.modelMatrix, this.modelMatrix, [renderData.position.x, renderData.position.y, 0]);\n mat4.rotateZ(this.modelMatrix, this.modelMatrix, (_a = renderData.rotation) !== null && _a !== void 0 ? _a : 0);\n mat4.scale(this.modelMatrix, this.modelMatrix, [renderData.width, renderData.height, 1]);\n setProjectionMatrix(this.projectionMatrix, this.gl, cameraData.zoom, cameraData.position);\n this.gl.uniformMatrix4fv(this.programManager.projectionMatrixUniform, false, this.projectionMatrix);\n this.gl.uniformMatrix4fv(this.programManager.modelMatrixUniform, false, this.modelMatrix);\n this.gl.uniformMatrix4fv(this.programManager.textureMatrixUniform, false, this.textureMatrix);\n this.gl.enable(this.gl.BLEND);\n this.gl.uniform1i(this.programManager.renderTextureUniform, 0);\n this.gl.uniform1i(this.programManager.renderLightUniform, 1);\n const { r, g, b, a } = hexToRgba(renderData.color);\n this.gl.uniform4f(this.programManager.solidColorUniform, r, g, b, a);\n this.gl.uniform1f(this.programManager.alphaUniform, (_b = renderData.opacity) !== null && _b !== void 0 ? _b : 1);\n this.gl.uniform1i(this.programManager.numLightsUniform, renderData.lights.length);\n for (const [i, light] of renderData.lights.entries()) {\n if (i >= 64)\n break; // 64 is the max lights allowed\n this.gl.uniform2f(this.gl.getUniformLocation(this.programManager.program, `u_lights[${i}].position`), this.gl.canvas.width / 2 + (light.position.x - cameraData.position.x) * cameraData.zoom, this.gl.canvas.height / 2 + (light.position.y - cameraData.position.y) * cameraData.zoom);\n this.gl.uniform1f(this.gl.getUniformLocation(this.programManager.program, `u_lights[${i}].radius`), light.radius * cameraData.zoom);\n this.gl.uniform1f(this.gl.getUniformLocation(this.programManager.program, `u_lights[${i}].smoothMode`), light.smooth ? 1 : 0);\n this.gl.uniform1f(this.gl.getUniformLocation(this.programManager.program, `u_lights[${i}].intensity`), Math.max(0, Math.min(1, light.intensity)));\n }\n this.gl.drawArrays(this.gl.TRIANGLES, 0, 6);\n this.gl.uniform1i(this.programManager.renderLightUniform, 0);\n return true;\n }\n}\n//# sourceMappingURL=DarknessRenderer.js.map","import { mat4 } from \"gl-matrix\";\nimport { hexToRgba, setProjectionMatrix } from \"./utils\";\nimport { RenderDataType } from \"./Renderer\";\nexport class SpriteRenderer {\n constructor(gl, programManager, textureManager) {\n this.gl = gl;\n this.programManager = programManager;\n this.textureManager = textureManager;\n this.tiledPosVertices = new Map();\n this.tiledTexVertices = new Map();\n this.lastTexture = null;\n this.isTiled = false;\n this.projectionMatrix = mat4.create();\n this.modelMatrix = mat4.create();\n this.textureMatrix = mat4.create();\n this.positionBuffer = this.gl.createBuffer();\n this.textureBuffer = this.gl.createBuffer();\n this.tiledPositionBuffer = this.gl.createBuffer();\n this.tiledTextureBuffer = this.gl.createBuffer();\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.positionBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, new Float32Array([-0.5, -0.5, -0.5, 0.5, 0.5, -0.5, 0.5, -0.5, -0.5, 0.5, 0.5, 0.5]), this.gl.STATIC_DRAW);\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.textureBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, new Float32Array([0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0]), this.gl.STATIC_DRAW);\n this.lastDrawMode = \"sprite\";\n }\n render(renderData, cameraData, lastRender) {\n var _a, _b, _c, _d;\n this.isTiled = renderData.tiled && (renderData.tiled.x > 1 || renderData.tiled.y > 1);\n if (!this.isTiled && (lastRender !== RenderDataType.Sprite || this.lastDrawMode !== \"sprite\")) {\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.positionBuffer);\n this.gl.enableVertexAttribArray(this.programManager.positionCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.positionCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.textureBuffer);\n this.gl.enableVertexAttribArray(this.programManager.texCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.texCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n }\n else if (this.isTiled) {\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.tiledPositionBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, this.getTiledPositionVertices(renderData.tiled), this.gl.DYNAMIC_DRAW);\n this.gl.enableVertexAttribArray(this.programManager.positionCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.positionCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.tiledTextureBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, this.getTiledTextureVertices(renderData.tiled), this.gl.DYNAMIC_DRAW);\n this.gl.enableVertexAttribArray(this.programManager.texCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.texCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n }\n this.lastDrawMode = this.isTiled ? \"tiled\" : \"sprite\";\n this.modelMatrix = mat4.identity(this.modelMatrix);\n mat4.translate(this.modelMatrix, this.modelMatrix, [renderData.position.x, renderData.position.y, 0]);\n mat4.rotateZ(this.modelMatrix, this.modelMatrix, (_a = renderData.rotation) !== null && _a !== void 0 ? _a : 0);\n mat4.scale(this.modelMatrix, this.modelMatrix, [\n renderData.width * (renderData.flipHorizontally ? -1 : 1),\n renderData.height * (renderData.flipVertically ? -1 : 1),\n 1,\n ]);\n this.textureMatrix = mat4.identity(this.textureMatrix);\n if (renderData.slice) {\n mat4.translate(this.textureMatrix, this.textureMatrix, [\n renderData.slice.x / renderData.image.naturalWidth,\n renderData.slice.y / renderData.image.naturalHeight,\n 0,\n ]);\n mat4.scale(this.textureMatrix, this.textureMatrix, [\n renderData.slice.width / renderData.image.naturalWidth,\n renderData.slice.height / renderData.image.naturalHeight,\n 1,\n ]);\n }\n setProjectionMatrix(this.projectionMatrix, this.gl, cameraData.zoom, cameraData.position);\n this.gl.uniformMatrix4fv(this.programManager.projectionMatrixUniform, false, this.projectionMatrix);\n this.gl.uniformMatrix4fv(this.programManager.modelMatrixUniform, false, this.modelMatrix);\n this.gl.uniformMatrix4fv(this.programManager.textureMatrixUniform, false, this.textureMatrix);\n this.gl.enable(this.gl.BLEND);\n const texture = this.textureManager.getOrCreateTextureFromImage(renderData.image, renderData.smooth);\n if (this.lastTexture !== texture || lastRender !== renderData.type) {\n this.gl.bindTexture(this.gl.TEXTURE_2D, texture);\n this.gl.uniform1i(this.programManager.textureUniform, 0);\n this.lastTexture = texture;\n }\n this.gl.uniform1i(this.programManager.renderTextureUniform, 1);\n this.gl.uniform1f(this.programManager.alphaUniform, (_b = renderData.opacity) !== null && _b !== void 0 ? _b : 1);\n this.gl.uniform1i(this.programManager.useTintColorUniform, renderData.tintColor ? 1 : 0);\n if (renderData.tintColor) {\n const { r, g, b, a } = hexToRgba(renderData.tintColor);\n this.gl.uniform4f(this.programManager.tintColorUniform, r, g, b, a);\n }\n this.gl.uniform1i(this.programManager.useMaskColorUniform, renderData.maskColor ? 1 : 0);\n if (renderData.maskColor) {\n const { r, g, b } = hexToRgba(renderData.maskColor);\n this.gl.uniform4f(this.programManager.maskColorUniform, r, g, b, (_c = renderData.opacity) !== null && _c !== void 0 ? _c : 1);\n this.gl.uniform1f(this.programManager.maskColorMixUniform, (_d = renderData.maskColorMix) !== null && _d !== void 0 ? _d : 1);\n }\n if (this.isTiled) {\n this.gl.drawArrays(this.gl.TRIANGLES, 0, renderData.tiled.x * renderData.tiled.y * 6);\n }\n else {\n this.gl.drawArrays(this.gl.TRIANGLES, 0, 6);\n }\n return true;\n }\n getTiledPositionVertices(tiled) {\n const key = tiled.toString();\n if (!this.tiledPosVertices.has(key)) {\n const vertices = [];\n for (let x = -tiled.x / 2; x < tiled.x / 2; x++) {\n for (let y = -tiled.y / 2; y < tiled.y / 2; y++) {\n vertices.push(x, y, x, y + 1, x + 1, y, x + 1, y, x, y + 1, x + 1, y + 1);\n }\n }\n this.tiledPosVertices.set(key, new Float32Array(vertices));\n }\n return this.tiledPosVertices.get(key);\n }\n getTiledTextureVertices(tiled) {\n const key = tiled.toString();\n if (!this.tiledTexVertices.has(key)) {\n const vertices = [];\n for (let i = 0; i < tiled.x * tiled.y; i++) {\n vertices.push(0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0);\n }\n this.tiledTexVertices.set(key, new Float32Array(vertices));\n }\n return this.tiledTexVertices.get(key);\n }\n}\n//# sourceMappingURL=SpriteRenderer.js.map","import { mat4 } from \"gl-matrix\";\nimport { Vector2 } from \"@angry-pixel/math\";\nimport { RenderDataType } from \"./Renderer\";\nimport { hexToRgba, setProjectionMatrix } from \"./utils\";\n/**\n * Alignment of the text.\n * @category Components Configuration\n * @public\n */\nexport var TextAlignment;\n(function (TextAlignment) {\n TextAlignment[TextAlignment[\"Center\"] = 0] = \"Center\";\n TextAlignment[TextAlignment[\"Right\"] = 1] = \"Right\";\n TextAlignment[TextAlignment[\"Left\"] = 2] = \"Left\";\n})(TextAlignment || (TextAlignment = {}));\nexport class TextRenderer {\n constructor(gl, programManager, textureManager, fontAtlasFactory) {\n this.gl = gl;\n this.programManager = programManager;\n this.textureManager = textureManager;\n this.fontAtlasFactory = fontAtlasFactory;\n this.type = RenderDataType.Text;\n this.posVertices = [];\n this.texVertices = [];\n // cache\n this.lastTexture = null;\n this.shadowPosition = new Vector2();\n this.projectionMatrix = mat4.create();\n this.modelMatrix = mat4.create();\n this.textureMatrix = mat4.create();\n this.positionBuffer = this.gl.createBuffer();\n this.textureBuffer = this.gl.createBuffer();\n }\n render(renderData, cameraData, lastRender, shadow = false) {\n var _a;\n if (!renderData.text)\n return false;\n const fontAtlas = this.fontAtlasFactory.getOrCreate(Object.assign({ font: renderData.font }, renderData.textureAtlas));\n // If we are render the shadow text, we dont need to recalculate the vertices or re-enable buffers\n if (!shadow) {\n this.generateTextVertices(fontAtlas, renderData);\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.positionBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, new Float32Array(this.posVertices), this.gl.DYNAMIC_DRAW);\n this.gl.enableVertexAttribArray(this.programManager.positionCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.positionCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.textureBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, new Float32Array(this.texVertices), this.gl.DYNAMIC_DRAW);\n this.gl.enableVertexAttribArray(this.programManager.texCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.texCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n }\n if (renderData.shadow) {\n const { color, offset, opacity } = renderData.shadow;\n const shadowRenderData = Object.assign(Object.assign({}, renderData), { color,\n opacity, position: Vector2.add(this.shadowPosition, renderData.position, offset) });\n shadowRenderData.shadow = undefined;\n this.render(shadowRenderData, cameraData, lastRender, true);\n lastRender = RenderDataType.Text;\n }\n this.modelMatrix = mat4.identity(this.modelMatrix);\n mat4.translate(this.modelMatrix, this.modelMatrix, [renderData.position.x, renderData.position.y, 0]);\n mat4.rotateZ(this.modelMatrix, this.modelMatrix, (_a = renderData.rotation) !== null && _a !== void 0 ? _a : 0);\n mat4.scale(this.modelMatrix, this.modelMatrix, [\n renderData.fontSize * (renderData.flipHorizontally ? -1 : 1),\n renderData.fontSize * (renderData.flipVertically ? -1 : 1),\n 1,\n ]);\n this.textureMatrix = mat4.identity(this.textureMatrix);\n setProjectionMatrix(this.projectionMatrix, this.gl, cameraData.zoom, cameraData.position);\n this.gl.uniformMatrix4fv(this.programManager.projectionMatrixUniform, false, this.projectionMatrix);\n this.gl.uniformMatrix4fv(this.programManager.modelMatrixUniform, false, this.modelMatrix);\n this.gl.uniformMatrix4fv(this.programManager.textureMatrixUniform, false, this.textureMatrix);\n this.gl.enable(this.gl.BLEND);\n const texture = this.textureManager.getOrCreateTextureFromCanvas(fontAtlas.id, fontAtlas.canvas, renderData.smooth);\n if (this.lastTexture !== texture || lastRender !== RenderDataType.Text) {\n this.gl.bindTexture(this.gl.TEXTURE_2D, texture);\n this.gl.uniform1i(this.programManager.textureUniform, 0);\n this.lastTexture = texture;\n }\n this.gl.uniform1i(this.programManager.useMaskColorUniform, 0);\n this.gl.uniform1i(this.programManager.renderTextureUniform, 1);\n this.gl.uniform1f(this.programManager.alphaUniform, renderData.opacity);\n const { r, g, b, a } = hexToRgba(renderData.color);\n this.gl.uniform1i(this.programManager.useTintColorUniform, 1);\n this.gl.uniform4f(this.programManager.tintColorUniform, r, g, b, a);\n this.gl.drawArrays(this.gl.TRIANGLES, 0, this.posVertices.length / 2);\n return true;\n }\n generateTextVertices(fontAtlas, renderData) {\n this.posVertices = [];\n this.texVertices = [];\n // TODO: cache this\n const processedText = this.preProcessText(fontAtlas, renderData);\n const letterSpacing = renderData.letterSpacing / renderData.fontSize;\n const lineHeight = renderData.lineHeight / renderData.fontSize;\n const height = renderData.boundingBox.height / renderData.fontSize;\n const width = renderData.boundingBox.width / renderData.fontSize;\n let y = height / 2;\n for (const line of processedText) {\n const { text, width: lineWidth } = line;\n let x = renderData.alignment === TextAlignment.Center\n ? -lineWidth / 2\n : renderData.alignment === TextAlignment.Left\n ? -width / 2\n : width / 2 - lineWidth;\n for (const letter of text) {\n const glyph = fontAtlas.glyphs.get(letter);\n if (glyph) {\n const letterWidth = glyph.width / fontAtlas.fontSize;\n // prettier-ignore\n this.posVertices.push(x, y - 1, x + letterWidth, y - 1, x, y, x, y, x + letterWidth, y - 1, x + letterWidth, y);\n const gx = (glyph.id % fontAtlas.gridSize) * (fontAtlas.fontSize + fontAtlas.spacing);\n const gy = ((glyph.id / fontAtlas.gridSize) | 0) * (fontAtlas.fontSize + fontAtlas.spacing);\n const u1 = gx / fontAtlas.canvas.width;\n const v1 = gy / fontAtlas.canvas.height;\n const u2 = (gx + glyph.width) / fontAtlas.canvas.width;\n const v2 = (gy + fontAtlas.fontSize) / fontAtlas.canvas.height;\n // prettier-ignore\n this.texVertices.push(u1, v2, u2, v2, u1, v1, u1, v1, u2, v2, u2, v1);\n x += letterWidth + letterSpacing;\n }\n }\n x = -width / 2;\n y -= lineHeight;\n }\n }\n preProcessText(fontAtlas, { text, fontSize, letterSpacing, lineHeight, boundingBox: { width, height } }) {\n const result = [];\n // Normalize\n letterSpacing /= fontSize;\n lineHeight /= fontSize;\n width /= fontSize;\n height /= fontSize;\n const spaceWidth = fontAtlas.glyphs.get(\" \").width / fontAtlas.fontSize + letterSpacing;\n let currentHeight = 0;\n const lines = text.split(\"\\n\");\n for (const line of lines) {\n let newLine = [];\n let lineWidth = 0;\n currentHeight += lineHeight;\n const words = line.split(\" \");\n for (const word of words) {\n if (currentHeight > height)\n return result;\n const firstWord = newLine.length === 0;\n let wordWidth = 0;\n for (const letter of word) {\n const glyph = fontAtlas.glyphs.get(letter);\n if (glyph)\n wordWidth += glyph.width / fontAtlas.fontSize + letterSpacing;\n }\n wordWidth -= letterSpacing;\n if (!firstWord)\n wordWidth += spaceWidth;\n if (firstWord && wordWidth >= width) {\n result.push({ width: wordWidth, text: word });\n currentHeight += lineHeight;\n }\n else if (lineWidth + wordWidth === width) {\n newLine.push(word);\n result.push({ width: lineWidth + wordWidth, text: newLine.join(\" \") });\n newLine = [];\n lineWidth = 0;\n currentHeight += lineHeight;\n }\n else if (lineWidth + wordWidth > width) {\n result.push({ width: lineWidth, text: newLine.join(\" \") });\n newLine = [word];\n lineWidth = wordWidth - spaceWidth;\n currentHeight += lineHeight;\n }\n else {\n lineWidth += wordWidth;\n newLine.push(word);\n }\n }\n if (newLine.length > 0) {\n result.push({ width: lineWidth, text: newLine.join(\" \") });\n }\n }\n return result;\n }\n}\n//# sourceMappingURL=TextRenderer.js.map","import { mat4 } from \"gl-matrix\";\nimport { Vector2 } from \"@angry-pixel/math\";\nimport { RenderDataType } from \"./Renderer\";\nimport { hexToRgba, setProjectionMatrix } from \"./utils\";\n/**\n * Direction in which the tilemap will be rendered.\n * @internal\n */\nexport var TilemapOrientation;\n(function (TilemapOrientation) {\n TilemapOrientation[TilemapOrientation[\"Center\"] = 0] = \"Center\";\n TilemapOrientation[TilemapOrientation[\"RightUp\"] = 1] = \"RightUp\";\n TilemapOrientation[TilemapOrientation[\"RightDown\"] = 2] = \"RightDown\";\n TilemapOrientation[TilemapOrientation[\"RightCenter\"] = 3] = \"RightCenter\";\n})(TilemapOrientation || (TilemapOrientation = {}));\nexport class TilemapRenderer {\n constructor(gl, programManager, textureManager) {\n this.gl = gl;\n this.programManager = programManager;\n this.textureManager = textureManager;\n this.posVertices = [];\n this.texVertices = [];\n // cache\n this.lastTexture = null;\n this.tileset = {\n width: 0,\n tileWidth: 0,\n tileHeight: 0,\n texMargin: new Vector2(),\n texSpacing: new Vector2(),\n texWidth: 0,\n texHeight: 0,\n texCorrection: new Vector2(),\n };\n this.projectionMatrix = mat4.create();\n this.modelMatrix = mat4.create();\n this.textureMatrix = mat4.create();\n this.positionBuffer = this.gl.createBuffer();\n this.textureBuffer = this.gl.createBuffer();\n }\n render(renderData, cameraData, lastRender) {\n var _a, _b, _c, _d;\n if (renderData.tiles.reduce((acc, tile) => acc + tile, 0) === 0)\n return false;\n this.processTileset(renderData);\n this.generateVertices(renderData);\n if (this.posVertices.length === 0)\n return false;\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.positionBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, new Float32Array(this.posVertices), this.gl.DYNAMIC_DRAW);\n this.gl.enableVertexAttribArray(this.programManager.positionCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.positionCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.textureBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, new Float32Array(this.texVertices), this.gl.DYNAMIC_DRAW);\n this.gl.enableVertexAttribArray(this.programManager.texCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.texCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n this.modelMatrix = mat4.identity(this.modelMatrix);\n mat4.translate(this.modelMatrix, this.modelMatrix, [renderData.position.x, renderData.position.y, 0]);\n mat4.rotateZ(this.modelMatrix, this.modelMatrix, (_a = renderData.rotation) !== null && _a !== void 0 ? _a : 0);\n mat4.scale(this.modelMatrix, this.modelMatrix, [\n renderData.tilemap.tileWidth * (renderData.flipHorizontal ? -1 : 1),\n renderData.tilemap.tileHeight * (renderData.flipVertical ? -1 : 1),\n 1,\n ]);\n this.textureMatrix = mat4.identity(this.textureMatrix);\n mat4.scale(this.textureMatrix, this.textureMatrix, [\n this.tileset.tileWidth / renderData.tileset.image.naturalWidth,\n this.tileset.tileHeight / renderData.tileset.image.naturalHeight,\n 1,\n ]);\n setProjectionMatrix(this.projectionMatrix, this.gl, cameraData.zoom, cameraData.position);\n this.gl.uniformMatrix4fv(this.programManager.projectionMatrixUniform, false, this.projectionMatrix);\n this.gl.uniformMatrix4fv(this.programManager.modelMatrixUniform, false, this.modelMatrix);\n this.gl.uniformMatrix4fv(this.programManager.textureMatrixUniform, false, this.textureMatrix);\n this.gl.enable(this.gl.BLEND);\n const texture = this.textureManager.getOrCreateTextureFromImage(renderData.tileset.image, renderData.smooth);\n if (this.lastTexture !== texture || lastRender !== RenderDataType.Tilemap) {\n this.gl.bindTexture(this.gl.TEXTURE_2D, texture);\n this.gl.uniform1i(this.programManager.textureUniform, 0);\n this.lastTexture = texture;\n }\n this.gl.uniform1i(this.programManager.renderTextureUniform, 1);\n this.gl.uniform1f(this.programManager.alphaUniform, (_b = renderData.opacity) !== null && _b !== void 0 ? _b : 1);\n this.gl.uniform1i(this.programManager.useTintColorUniform, renderData.tintColor ? 1 : 0);\n if (renderData.tintColor) {\n const { r, g, b, a } = hexToRgba(renderData.tintColor);\n this.gl.uniform4f(this.programManager.tintColorUniform, r, g, b, a);\n }\n this.gl.uniform1i(this.programManager.useMaskColorUniform, renderData.maskColor ? 1 : 0);\n if (renderData.maskColor) {\n const { r, g, b } = hexToRgba(renderData.maskColor);\n this.gl.uniform4f(this.programManager.maskColorUniform, r, g, b, (_c = renderData.opacity) !== null && _c !== void 0 ? _c : 1);\n this.gl.uniform1f(this.programManager.maskColorMixUniform, (_d = renderData.maskColorMix) !== null && _d !== void 0 ? _d : 1);\n }\n this.gl.drawArrays(this.gl.TRIANGLES, 0, this.posVertices.length / 2);\n return true;\n }\n processTileset({ tileset }) {\n var _a, _b, _c, _d, _e, _f, _g;\n tileset.margin = (_a = tileset.margin) !== null && _a !== void 0 ? _a : new Vector2();\n tileset.spacing = (_b = tileset.spacing) !== null && _b !== void 0 ? _b : new Vector2();\n tileset.correction = (_c = tileset.correction) !== null && _c !== void 0 ? _c : new Vector2();\n this.tileset.width = tileset.width;\n this.tileset.tileWidth = tileset.tileWidth + ((_d = tileset.margin.x) !== null && _d !== void 0 ? _d : 0) + ((_e = tileset.spacing.x) !== null && _e !== void 0 ? _e : 0);\n this.tileset.tileHeight = tileset.tileHeight + ((_f = tileset.margin.y) !== null && _f !== void 0 ? _f : 0) + ((_g = tileset.spacing.y) !== null && _g !== void 0 ? _g : 0);\n this.tileset.texMargin.set(tileset.margin.x / this.tileset.tileWidth, tileset.margin.y / this.tileset.tileHeight);\n this.tileset.texSpacing.set(tileset.spacing.x / this.tileset.tileWidth, tileset.spacing.y / this.tileset.tileHeight);\n this.tileset.texCorrection.set(tileset.correction.x / this.tileset.tileWidth, tileset.correction.y / this.tileset.tileHeight);\n this.tileset.texWidth =\n 1 - this.tileset.texMargin.x - this.tileset.texSpacing.x - 2 * this.tileset.texCorrection.x;\n this.tileset.texHeight =\n 1 - this.tileset.texMargin.y - this.tileset.texSpacing.y - 2 * this.tileset.texCorrection.y;\n }\n generateVertices({ tiles, tilemap }) {\n this.posVertices = [];\n this.texVertices = [];\n const height = Math.floor(tiles.length / tilemap.width);\n tiles.forEach((tilesetTile, tilemapTile) => {\n if (tilesetTile === 0)\n return;\n const px = (tilemapTile % tilemap.width) - tilemap.width / 2;\n const py = height / 2 - Math.floor(tilemapTile / tilemap.width);\n // prettier-ignore\n this.posVertices.push(px, py - 1, px + 1, py - 1, px, py, px, py, px + 1, py - 1, px + 1, py);\n const tx = ((tilesetTile - 1) % this.tileset.width) + this.tileset.texMargin.x + this.tileset.texCorrection.x;\n const ty = Math.floor((tilesetTile - 1) / this.tileset.width) +\n this.tileset.texMargin.y +\n this.tileset.texCorrection.y;\n // prettier-ignore\n this.texVertices.push(tx, ty + this.tileset.texHeight, tx + this.tileset.texWidth, ty + this.tileset.texHeight, tx, ty, tx, ty, tx + this.tileset.texWidth, ty + this.tileset.texHeight, tx + this.tileset.texWidth, ty);\n });\n }\n}\n//# sourceMappingURL=TilemapRenderer.js.map","import { mat4 } from \"gl-matrix\";\nimport { RenderDataType } from \"./Renderer\";\nimport { hexToRgba, setProjectionMatrix } from \"./utils\";\nexport class VideoRenderer {\n constructor(gl, programManager, textureManager) {\n this.gl = gl;\n this.programManager = programManager;\n this.textureManager = textureManager;\n this.lastTexture = null;\n this.projectionMatrix = mat4.create();\n this.modelMatrix = mat4.create();\n this.textureMatrix = mat4.create();\n this.positionBuffer = this.gl.createBuffer();\n this.textureBuffer = this.gl.createBuffer();\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.positionBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, new Float32Array([-0.5, -0.5, -0.5, 0.5, 0.5, -0.5, 0.5, -0.5, -0.5, 0.5, 0.5, 0.5]), this.gl.STATIC_DRAW);\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.textureBuffer);\n this.gl.bufferData(this.gl.ARRAY_BUFFER, new Float32Array([0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0]), this.gl.STATIC_DRAW);\n }\n render(renderData, cameraData, lastRender) {\n var _a, _b, _c, _d;\n if (lastRender !== RenderDataType.Video) {\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.positionBuffer);\n this.gl.enableVertexAttribArray(this.programManager.positionCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.positionCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.textureBuffer);\n this.gl.enableVertexAttribArray(this.programManager.texCoordsAttr);\n this.gl.vertexAttribPointer(this.programManager.texCoordsAttr, 2, this.gl.FLOAT, false, 0, 0);\n }\n this.modelMatrix = mat4.identity(this.modelMatrix);\n mat4.translate(this.modelMatrix, this.modelMatrix, [renderData.position.x, renderData.position.y, 0]);\n mat4.rotateZ(this.modelMatrix, this.modelMatrix, (_a = renderData.rotation) !== null && _a !== void 0 ? _a : 0);\n mat4.scale(this.modelMatrix, this.modelMatrix, [\n renderData.width * (renderData.flipHorizontal ? -1 : 1),\n renderData.height * (renderData.flipVertical ? -1 : 1),\n 1,\n ]);\n this.textureMatrix = mat4.identity(this.textureMatrix);\n if (renderData.slice) {\n mat4.translate(this.textureMatrix, this.textureMatrix, [\n renderData.slice.x / renderData.video.videoWidth,\n renderData.slice.y / renderData.video.videoHeight,\n 0,\n ]);\n mat4.scale(this.textureMatrix, this.textureMatrix, [\n renderData.slice.width / renderData.video.videoWidth,\n renderData.slice.height / renderData.video.videoHeight,\n 1,\n ]);\n }\n setProjectionMatrix(this.projectionMatrix, this.gl, cameraData.zoom, cameraData.position);\n this.gl.uniformMatrix4fv(this.programManager.projectionMatrixUniform, false, this.projectionMatrix);\n this.gl.uniformMatrix4fv(this.programManager.modelMatrixUniform, false, this.modelMatrix);\n this.gl.uniformMatrix4fv(this.programManager.textureMatrixUniform, false, this.textureMatrix);\n this.gl.enable(this.gl.BLEND);\n const texture = this.textureManager.getOrCreateTextureFromVideo(renderData.video);\n if (this.lastTexture !== texture || lastRender !== RenderDataType.Video) {\n this.gl.bindTexture(this.gl.TEXTURE_2D, texture);\n this.gl.uniform1i(this.programManager.textureUniform, 0);\n this.lastTexture = texture;\n }\n if (renderData.video.readyState >= HTMLMediaElement.HAVE_CURRENT_DATA) {\n this.gl.texImage2D(this.gl.TEXTURE_2D, 0, this.gl.RGBA, this.gl.RGBA, this.gl.UNSIGNED_BYTE, renderData.video);\n }\n this.gl.uniform1i(this.programManager.renderTextureUniform, 1);\n this.gl.uniform1f(this.programManager.alphaUniform, (_b = renderData.opacity) !== null && _b !== void 0 ? _b : 1);\n this.gl.uniform1i(this.programManager.useTintColorUniform, renderData.tintColor ? 1 : 0);\n if (renderData.tintColor) {\n const { r, g, b, a } = hexToRgba(renderData.tintColor);\n this.gl.uniform4f(this.programManager.tintColorUniform, r, g, b, a);\n }\n this.gl.uniform1i(this.programManager.useMaskColorUniform, renderData.maskColor ? 1 : 0);\n if (renderData.maskColor) {\n const { r, g, b } = hexToRgba(renderData.maskColor);\n this.gl.uniform4f(this.programManager.maskColorUniform, r, g, b, (_c = renderData.opacity) !== null && _c !== void 0 ? _c : 1);\n this.gl.uniform1f(this.programManager.maskColorMixUniform, (_d = renderData.maskColorMix) !== null && _d !== void 0 ? _d : 1);\n }\n this.gl.drawArrays(this.gl.TRIANGLES, 0, 6);\n return true;\n }\n}\n//# sourceMappingURL=VideoRenderer.js.map","export class TextureFactory {\n constructor(gl) {\n this.gl = gl;\n }\n createFromImage(image, smooth = false, texture = null) {\n texture = texture !== null && texture !== void 0 ? texture : this.gl.createTexture();\n if (image.naturalWidth) {\n this.createFromSource(image, texture, smooth);\n }\n else {\n image.addEventListener(\"load\", () => this.createFromSource(image, texture, smooth));\n }\n return texture;\n }\n createFromCanvas(canvas, smooth = false, texture = null) {\n texture = texture !== null && texture !== void 0 ? texture : this.gl.createTexture();\n this.createFromSource(canvas, texture, smooth);\n return texture;\n }\n createPixelTexture() {\n const texture = this.gl.createTexture();\n this.gl.bindTexture(this.gl.TEXTURE_2D, texture);\n this.gl.texImage2D(this.gl.TEXTURE_2D, 0, this.gl.RGBA, 1, 1, 0, this.gl.RGBA, this.gl.UNSIGNED_BYTE, new Uint8Array([0, 0, 0, 255]));\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_WRAP_S, this.gl.CLAMP_TO_EDGE);\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_WRAP_T, this.gl.CLAMP_TO_EDGE);\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_MIN_FILTER, this.gl.LINEAR);\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_MAG_FILTER, this.gl.LINEAR);\n this.gl.bindTexture(this.gl.TEXTURE_2D, null);\n return texture;\n }\n createFromSource(source, texture, smooth = false) {\n this.gl.bindTexture(this.gl.TEXTURE_2D, texture);\n this.gl.texImage2D(this.gl.TEXTURE_2D, 0, this.gl.RGBA, this.gl.RGBA, this.gl.UNSIGNED_BYTE, source);\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_WRAP_S, this.gl.CLAMP_TO_EDGE);\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_WRAP_T, this.gl.CLAMP_TO_EDGE);\n // LINEAR === smooth pixels, NEAREST === crisp pixels,\n if (smooth) {\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_MIN_FILTER, this.gl.LINEAR);\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_MAG_FILTER, this.gl.LINEAR);\n }\n else {\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_MIN_FILTER, this.gl.NEAREST);\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_MAG_FILTER, this.gl.NEAREST);\n }\n this.gl.bindTexture(this.gl.TEXTURE_2D, null);\n }\n}\n//# sourceMappingURL=TextureFactory.js.map","const textureId = (name, smooth) => `${smooth ? \"_smooth_\" : \"\"}${name}`;\nexport class TextureManager {\n constructor(textureFactory) {\n this.textureFactory = textureFactory;\n this.textures = new Map();\n }\n getOrCreateTextureFromImage(image, smooth = false) {\n var _a;\n return (_a = this.textures.get(textureId(image.src, smooth))) !== null && _a !== void 0 ? _a : this.createTextureFromImage(image, smooth);\n }\n createTextureFromImage(image, smooth = false) {\n const texture = this.textureFactory.createFromImage(image, smooth);\n this.textures.set(textureId(image.src, smooth), texture);\n return texture;\n }\n getOrCreateTextureFromCanvas(name, canvas, smooth = false) {\n var _a;\n return (_a = this.textures.get(textureId(name, smooth))) !== null && _a !== void 0 ? _a : this.createTextureFromCanvas(name, canvas, smooth);\n }\n createTextureFromCanvas(name, canvas, smooth = false) {\n const texture = this.textureFactory.createFromCanvas(canvas, smooth);\n this.textures.set(textureId(name, smooth), texture);\n return texture;\n }\n getOrCreateTextureFromVideo(video) {\n var _a;\n return (_a = this.textures.get(video.src)) !== null && _a !== void 0 ? _a : this.createTextureFromVideo(video);\n }\n createTextureFromVideo(video) {\n const texture = this.textureFactory.createPixelTexture();\n this.textures.set(video.src, texture);\n return texture;\n }\n}\n//# sourceMappingURL=TextureManager.js.map","export const SYMBOLS = {\n CanvasElement: Symbol.for(\"CanvasElement\"),\n WebGLManager: Symbol.for(\"WebGLManager\"),\n};\n//# sourceMappingURL=symbols.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { inject, injectable } from \"@angry-pixel/ioc\";\nimport { ContextManager } from \"./ContextManager\";\nimport { FontAtlasFactory } from \"./FontAtlasFactory\";\nimport { ProgramFactory } from \"./program/ProgramFactory\";\nimport { ProgramManager } from \"./program/ProgramManager\";\nimport { ShaderLoader } from \"./program/ShaderLoader\";\nimport { CanvasColorRenderer } from \"./renderer/CanvasColorRenderer\";\nimport { GeometricRenderer } from \"./renderer/GeometricRenderer\";\nimport { MaskRenderer } from \"./renderer/MaskRenderer\";\nimport { RenderDataType } from \"./renderer/Renderer\";\nimport { DarknessRenderer } from \"./renderer/DarknessRenderer\";\nimport { SpriteRenderer } from \"./renderer/SpriteRenderer\";\nimport { TextRenderer } from \"./renderer/TextRenderer\";\nimport { TilemapRenderer } from \"./renderer/TilemapRenderer\";\nimport { VideoRenderer } from \"./renderer/VideoRenderer\";\nimport { TextureFactory } from \"./texture/TextureFactory\";\nimport { TextureManager } from \"./texture/TextureManager\";\nimport { SYMBOLS } from \"./symbols\";\nlet WebGLManager = class WebGLManager {\n constructor(canvas) {\n this.renderers = new Map();\n const contextManager = new ContextManager(canvas);\n const gl = contextManager.gl;\n const contextVersion = contextManager.contextVersion;\n const programManager = new ProgramManager(gl, contextVersion, new ProgramFactory(gl, new ShaderLoader(gl)));\n const textureManager = new TextureManager(new TextureFactory(gl));\n const fontFactoryAtlas = new FontAtlasFactory();\n this.renderers.set(RenderDataType.Sprite, new SpriteRenderer(gl, programManager, textureManager));\n this.renderers.set(RenderDataType.Text, new TextRenderer(gl, programManager, textureManager, fontFactoryAtlas));\n this.renderers.set(RenderDataType.Tilemap, new TilemapRenderer(gl, programManager, textureManager));\n this.renderers.set(RenderDataType.Geometric, new GeometricRenderer(gl, programManager));\n this.renderers.set(RenderDataType.Mask, new MaskRenderer(gl, programManager));\n this.renderers.set(RenderDataType.Video, new VideoRenderer(gl, programManager, textureManager));\n this.renderers.set(RenderDataType.Darkness, new DarknessRenderer(gl, programManager));\n this.canvasColorRenderer = new CanvasColorRenderer(gl);\n programManager.loadProgram();\n }\n render(renderData, cameraData) {\n if (this.renderers.get(renderData.type).render(renderData, cameraData, this.lastRender)) {\n this.lastRender = renderData.type;\n }\n }\n renderCanvasColor(hexColor) {\n this.canvasColorRenderer.render(hexColor);\n }\n};\nWebGLManager = __decorate([\n injectable(SYMBOLS.WebGLManager),\n __param(0, inject(SYMBOLS.CanvasElement))\n], WebGLManager);\nexport { WebGLManager };\n//# sourceMappingURL=WebGLManager.js.map",null,"/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["BroadPhaseMethods","Vector2","constructor","x","y","this","_x","_y","magnitude","Math","sqrt","pow","direction","_direction","unit","set","copy","vector","equals","clone","distance","add","out","a","b","subtract","normal","scale","scalar","dot","cross","round","floor","ceil","toString","Rectangle","width","height","_position","_center","value","x1","y1","position","center","rectangle","rect","intersects","contains","object","clamp","min","max","randomInt","random","randomFloat","decimals","fixedRound","range","start","end","steps","i","push","between","radiansToDegrees","radians","PI","degreesToRadians","degrees","rgbToHex","r","g","prefix","hex","padStart","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","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","disableComponent","component","enabled","EntityManager","SystemManager","lastEntityId","lastComponentTypeId","entities","components","disabledEntities","manuallyDisabledEntities","disabledComponents","parentEntities","childEntities","createEntity","parent","addComponent","setParent","createEntityFromArchetype","createComponentsFromArchetype","disableEntity","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","systems","findSystemIndex","systemType","findIndex","system","addSystem","group","hasSystem","getSystem","index","groupHasSystems","enableSystem","onCreate","onEnabled","disableSystem","onDisabled","setExecutionOrder","removeSystem","onDestroy","disableAllSystems","onUpdate","WebGLContextVersion","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","exec","parseInt","CanvasColorRenderer","render","hexColor","rgb","clearColor","COLOR_BUFFER_BIT","RenderDataType","GeometricShape","MaskShape","GeometricRenderer","programManager","mat4.create","modelMatrix","textureMatrix","circumferencePositionBuffer","createBuffer","linesPositionBuffer","angle","reduce","bindBuffer","ARRAY_BUFFER","bufferData","STATIC_DRAW","renderData","cameraData","lastRender","disableVertexAttribArray","renderLines","LINE_LOOP","Line","LINES","renderCircumference","mode","DYNAMIC_DRAW","enableVertexAttribArray","vertexAttribPointer","FLOAT","mat4.rotateZ","zoom","uniformMatrix4fv","uniform1i","color","uniform4f","uniform1f","drawArrays","lastShape","Geometric","MaskRenderer$1","Mask","rectanglePositionBuffer","polygonPositionBuffer","renderRectangle","renderPolygon","opacity","enable","BLEND","disable","TRIANGLES","TRIANGLE_FAN","CIRCUMFERENCE_VERTICES","DarknessRenderer$1","positionBuffer","Darkness","lights","light","entries","uniform2f","smooth","intensity","SpriteRenderer$1","textureManager","tiledPosVertices","tiledTexVertices","lastTexture","isTiled","textureBuffer","tiledPositionBuffer","tiledTextureBuffer","lastDrawMode","_c","_d","tiled","Sprite","getTiledPositionVertices","getTiledTextureVertices","flipHorizontally","flipVertically","slice","image","naturalWidth","naturalHeight","texture","getOrCreateTextureFromImage","bindTexture","TEXTURE_2D","tintColor","maskColor","maskColorMix","TextAlignment","TextRenderer$1","fontAtlasFactory","Text","posVertices","texVertices","shadowPosition","shadow","text","assign","textureAtlas","generateTextVertices","offset","shadowRenderData","getOrCreateTextureFromCanvas","processedText","preProcessText","letterSpacing","lineHeight","line","lineWidth","alignment","Center","Left","letter","glyph","letterWidth","gx","gy","u1","v1","u2","v2","spaceWidth","currentHeight","lines","split","newLine","words","word","firstWord","wordWidth","join","TilemapOrientation","TilemapRenderer$1","tileset","tileWidth","tileHeight","texMargin","texSpacing","texWidth","texHeight","texCorrection","tiles","acc","tile","processTileset","generateVertices","tilemap","flipHorizontal","flipVertical","Tilemap","_e","_f","_g","margin","correction","tilesetTile","tilemapTile","px","py","tx","ty","VideoRenderer$1","Video","video","videoWidth","videoHeight","getOrCreateTextureFromVideo","readyState","HTMLMediaElement","HAVE_CURRENT_DATA","texImage2D","RGBA","UNSIGNED_BYTE","TextureFactory","createFromImage","createTexture","createFromSource","addEventListener","createFromCanvas","createPixelTexture","Uint8Array","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","TEXTURE_MIN_FILTER","LINEAR","TEXTURE_MAG_FILTER","NEAREST","textureId","TextureManager","textureFactory","textures","src","createTextureFromImage","createTextureFromCanvas","createTextureFromVideo","CanvasElement","WebGLManager","renderers","contextManager","fontFactoryAtlas","SpriteRenderer","TextRenderer","TilemapRenderer","MaskRenderer","VideoRenderer","DarknessRenderer","canvasColorRenderer","renderCanvasColor","AssetManager","CreateSystemService","GameConfig","InputManager","LoopManager","RenderManager","SceneManager","TimeManager","COLLISION_SYMBOLS","ECS_SYMBOLS","WEBGL_SYMBOLS","__awaiter","thisArg","_arguments","P","generator","Promise","reject","fulfilled","step","next","rejected","done","then","apply","SuppressedError","GamepadController","buttons","_dpadAxes","_leftStickAxes","_rightStickAxes","dpadAxes","dpadRight","dpadLeft","dpadUp","dpadDown","leftStickAxes","leftStickHorizontal","leftStickVertical","rightStickAxes","rightStickHorizontal","rightStickVertical","bottomFace","rightFace","leftFace","topFace","leftShoulder","rightShoulder","leftTrigger","rightTrigger","back","leftStickButton","rightStickButton","anyButtonPressed","values","find","vibrate","duration","weakMagnitude","strongMagnitude","startDelay","vibrationInput","Keyboard","pressedKeys","isPressed","keyCode","orPressed","keyCodes","andPressed","isPressedReturn","returnTrue","returnFalse","orPressedReturn","andPressedReturn","Mouse","leftButtonPressed","scrollButtonPressed","rightButtonPressed","positionInViewport","hasMoved","wheelScroll","TouchScreen","touching","interactions","keyboard","mouse","touchScreen","gamepads","allowedPhysicsFramerates","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","AssetType","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","gameLogicSystem","addSystemGroup","GameLogic","gamePhysicsSystem","GamePhysics","gamePreRenderSystem","GamePreRender","__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","Scene","addSystems","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","Animation","padding","frames","fps","animator","processAssets","animation","spriteRenderer","renderSprite","isArray","frame","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","physicsIntervalId","physicsIteration","container","lastSystemTypeId","setDefaultValues","containerNode","HTMLElement","headless","_h","_j","collisionBroadPhaseMethod","_k","_l","_m","createCanvas","tabIndex","appendChild","setupManagers","setupEngineSystems","headlessFilter","setupPhysicsDependencies","setupExternalDependencies","config","dependencies","Game","bootstrap","addDependencyType","dependencyType","addDependencyInstance","dependencyInstance","GameSystem","playSfx","console","warn","stopSfx","ENGINE_SYMBOLS"],"mappings":"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","x_google_ignoreList":[30,31,47]}