{"version":3,"file":"index.mjs","sources":["../playcanvas-stable.min.js","../__modules__.js","../__settings__.js","../__loading__.js"],"sourcesContent":["/**\n * @license\n * PlayCanvas Engine v1.77.0 revision f90da0d (RELEASE)\n * Copyright 2011-2025 PlayCanvas Ltd. All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nconst TRACEID_RENDER_FRAME = 'RenderFrame';\nconst TRACEID_RENDER_FRAME_TIME = 'RenderFrameTime';\nconst TRACEID_RENDER_PASS = 'RenderPass';\nconst TRACEID_RENDER_PASS_DETAIL = 'RenderPassDetail';\nconst TRACEID_RENDER_ACTION = 'RenderAction';\nconst TRACEID_RENDER_TARGET_ALLOC = 'RenderTargetAlloc';\nconst TRACEID_TEXTURE_ALLOC = 'TextureAlloc';\nconst TRACEID_SHADER_ALLOC = 'ShaderAlloc';\nconst TRACEID_SHADER_COMPILE = 'ShaderCompile';\nconst TRACEID_VRAM_TEXTURE = 'VRAM.Texture';\nconst TRACEID_VRAM_VB = 'VRAM.Vb';\nconst TRACEID_VRAM_IB = 'VRAM.Ib';\nconst TRACEID_VRAM_SB = 'VRAM.Sb';\nconst TRACEID_BINDGROUP_ALLOC = 'BindGroupAlloc';\nconst TRACEID_BINDGROUPFORMAT_ALLOC = 'BindGroupFormatAlloc';\nconst TRACEID_RENDERPIPELINE_ALLOC = 'RenderPipelineAlloc';\nconst TRACEID_COMPUTEPIPELINE_ALLOC = 'ComputePipelineAlloc';\nconst TRACEID_PIPELINELAYOUT_ALLOC = 'PipelineLayoutAlloc';\nconst TRACE_ID_ELEMENT = 'Element';\nconst TRACEID_TEXTURES = 'Textures';\nconst TRACEID_RENDER_QUEUE = 'RenderQueue';\nconst TRACEID_GPU_TIMINGS = 'GpuTimings';\n\nconst version = '1.77.0';\nconst revision = 'f90da0d';\nconst config = {};\nconst common = {};\nconst apps = {};\nconst data$1 = {};\nconst typeofs = ['undefined', 'number', 'string', 'boolean'];\nconst objectTypes = {\n\t'[object Array]': 'array',\n\t'[object Object]': 'object',\n\t'[object Function]': 'function',\n\t'[object Date]': 'date',\n\t'[object RegExp]': 'regexp',\n\t'[object Float32Array]': 'float32array'\n};\nfunction type(obj) {\n\tif (obj === null) {\n\t\treturn 'null';\n\t}\n\tconst typeString = typeof obj;\n\tif (typeofs.includes(typeString)) {\n\t\treturn typeString;\n\t}\n\treturn objectTypes[Object.prototype.toString.call(obj)];\n}\nfunction extend(target, ex) {\n\tfor (const prop in ex) {\n\t\tconst copy = ex[prop];\n\t\tif (type(copy) === 'object') {\n\t\t\ttarget[prop] = extend({}, copy);\n\t\t} else if (type(copy) === 'array') {\n\t\t\ttarget[prop] = extend([], copy);\n\t\t} else {\n\t\t\ttarget[prop] = copy;\n\t\t}\n\t}\n\treturn target;\n}\n\nclass EventHandle {\n\tconstructor(handler, name, callback, scope, once = false) {\n\t\tthis.handler = void 0;\n\t\tthis.name = void 0;\n\t\tthis.callback = void 0;\n\t\tthis.scope = void 0;\n\t\tthis._once = void 0;\n\t\tthis._removed = false;\n\t\tthis.handler = handler;\n\t\tthis.name = name;\n\t\tthis.callback = callback;\n\t\tthis.scope = scope;\n\t\tthis._once = once;\n\t}\n\toff() {\n\t\tif (this._removed) return;\n\t\tthis.handler.offByHandle(this);\n\t}\n\ton(name, callback, scope = this) {\n\t\treturn this.handler._addCallback(name, callback, scope, false);\n\t}\n\tonce(name, callback, scope = this) {\n\t\treturn this.handler._addCallback(name, callback, scope, true);\n\t}\n\tset removed(value) {\n\t\tif (!value) return;\n\t\tthis._removed = true;\n\t}\n\tget removed() {\n\t\treturn this._removed;\n\t}\n}\n\nclass EventHandler {\n\tconstructor() {\n\t\tthis._callbacks = new Map();\n\t\tthis._callbackActive = new Map();\n\t}\n\tinitEventHandler() {\n\t\tthis._callbacks = new Map();\n\t\tthis._callbackActive = new Map();\n\t}\n\t_addCallback(name, callback, scope, once) {\n\t\tif (!this._callbacks.has(name)) {\n\t\t\tthis._callbacks.set(name, []);\n\t\t}\n\t\tif (this._callbackActive.has(name)) {\n\t\t\tconst callbackActive = this._callbackActive.get(name);\n\t\t\tif (callbackActive && callbackActive === this._callbacks.get(name)) {\n\t\t\t\tthis._callbackActive.set(name, callbackActive.slice());\n\t\t\t}\n\t\t}\n\t\tconst evt = new EventHandle(this, name, callback, scope, once);\n\t\tthis._callbacks.get(name).push(evt);\n\t\treturn evt;\n\t}\n\ton(name, callback, scope = this) {\n\t\treturn this._addCallback(name, callback, scope, false);\n\t}\n\tonce(name, callback, scope = this) {\n\t\treturn this._addCallback(name, callback, scope, true);\n\t}\n\toff(name, callback, scope) {\n\t\tif (name) {\n\t\t\tif (this._callbackActive.has(name) && this._callbackActive.get(name) === this._callbacks.get(name)) {\n\t\t\t\tthis._callbackActive.set(name, this._callbackActive.get(name).slice());\n\t\t\t}\n\t\t} else {\n\t\t\tfor (const [key, callbacks] of this._callbackActive) {\n\t\t\t\tif (!this._callbacks.has(key)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (this._callbacks.get(key) !== callbacks) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tthis._callbackActive.set(key, callbacks.slice());\n\t\t\t}\n\t\t}\n\t\tif (!name) {\n\t\t\tfor (const callbacks of this._callbacks.values()) {\n\t\t\t\tfor (let i = 0; i < callbacks.length; i++) {\n\t\t\t\t\tcallbacks[i].removed = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._callbacks.clear();\n\t\t} else if (!callback) {\n\t\t\tconst callbacks = this._callbacks.get(name);\n\t\t\tif (callbacks) {\n\t\t\t\tfor (let i = 0; i < callbacks.length; i++) {\n\t\t\t\t\tcallbacks[i].removed = true;\n\t\t\t\t}\n\t\t\t\tthis._callbacks.delete(name);\n\t\t\t}\n\t\t} else {\n\t\t\tconst callbacks = this._callbacks.get(name);\n\t\t\tif (!callbacks) {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tfor (let i = 0; i < callbacks.length; i++) {\n\t\t\t\tif (callbacks[i].callback !== callback) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (scope && callbacks[i].scope !== scope) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tcallbacks[i].removed = true;\n\t\t\t\tcallbacks.splice(i, 1);\n\t\t\t\ti--;\n\t\t\t}\n\t\t\tif (callbacks.length === 0) {\n\t\t\t\tthis._callbacks.delete(name);\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\toffByHandle(handle) {\n\t\tconst name = handle.name;\n\t\thandle.removed = true;\n\t\tif (this._callbackActive.has(name) && this._callbackActive.get(name) === this._callbacks.get(name)) {\n\t\t\tthis._callbackActive.set(name, this._callbackActive.get(name).slice());\n\t\t}\n\t\tconst callbacks = this._callbacks.get(name);\n\t\tif (!callbacks) {\n\t\t\treturn this;\n\t\t}\n\t\tconst ind = callbacks.indexOf(handle);\n\t\tif (ind !== -1) {\n\t\t\tcallbacks.splice(ind, 1);\n\t\t\tif (callbacks.length === 0) {\n\t\t\t\tthis._callbacks.delete(name);\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\tfire(name, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) {\n\t\tif (!name) {\n\t\t\treturn this;\n\t\t}\n\t\tconst callbacksInitial = this._callbacks.get(name);\n\t\tif (!callbacksInitial) {\n\t\t\treturn this;\n\t\t}\n\t\tlet callbacks;\n\t\tif (!this._callbackActive.has(name)) {\n\t\t\tthis._callbackActive.set(name, callbacksInitial);\n\t\t} else if (this._callbackActive.get(name) !== callbacksInitial) {\n\t\t\tcallbacks = callbacksInitial.slice();\n\t\t}\n\t\tfor (let i = 0; (callbacks || this._callbackActive.get(name)) && i < (callbacks || this._callbackActive.get(name)).length; i++) {\n\t\t\tconst evt = (callbacks || this._callbackActive.get(name))[i];\n\t\t\tif (!evt.callback) continue;\n\t\t\tevt.callback.call(evt.scope, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);\n\t\t\tif (evt._once) {\n\t\t\t\tconst existingCallback = this._callbacks.get(name);\n\t\t\t\tconst ind = existingCallback ? existingCallback.indexOf(evt) : -1;\n\t\t\t\tif (ind !== -1) {\n\t\t\t\t\tif (this._callbackActive.get(name) === existingCallback) {\n\t\t\t\t\t\tthis._callbackActive.set(name, this._callbackActive.get(name).slice());\n\t\t\t\t\t}\n\t\t\t\t\tconst _callbacks = this._callbacks.get(name);\n\t\t\t\t\tif (!_callbacks) continue;\n\t\t\t\t\t_callbacks[ind].removed = true;\n\t\t\t\t\t_callbacks.splice(ind, 1);\n\t\t\t\t\tif (_callbacks.length === 0) {\n\t\t\t\t\t\tthis._callbacks.delete(name);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (!callbacks) {\n\t\t\tthis._callbackActive.delete(name);\n\t\t}\n\t\treturn this;\n\t}\n\thasEvent(name) {\n\t\tvar _this$_callbacks$get;\n\t\treturn !!((_this$_callbacks$get = this._callbacks.get(name)) != null && _this$_callbacks$get.length);\n\t}\n}\n\nconst events = {\n\tattach(target) {\n\t\tconst ev = events;\n\t\ttarget._addCallback = ev._addCallback;\n\t\ttarget.on = ev.on;\n\t\ttarget.off = ev.off;\n\t\ttarget.fire = ev.fire;\n\t\ttarget.once = ev.once;\n\t\ttarget.hasEvent = ev.hasEvent;\n\t\tEventHandler.prototype.initEventHandler.call(target);\n\t\treturn target;\n\t},\n\t_addCallback: EventHandler.prototype._addCallback,\n\ton: EventHandler.prototype.on,\n\toff: EventHandler.prototype.off,\n\tfire: EventHandler.prototype.fire,\n\tonce: EventHandler.prototype.once,\n\thasEvent: EventHandler.prototype.hasEvent\n};\n\nconst guid = {\n\tcreate() {\n\t\treturn 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\n\t\t\tconst r = Math.random() * 16 | 0;\n\t\t\tconst v = c === 'x' ? r : r & 0x3 | 0x8;\n\t\t\treturn v.toString(16);\n\t\t});\n\t}\n};\n\nconst path = {\n\tdelimiter: '/',\n\tjoin(...sections) {\n\t\tlet result = sections[0];\n\t\tfor (let i = 0; i < sections.length - 1; i++) {\n\t\t\tconst one = sections[i];\n\t\t\tconst two = sections[i + 1];\n\t\t\tif (two[0] === path.delimiter) {\n\t\t\t\tresult = two;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (one && two && one[one.length - 1] !== path.delimiter && two[0] !== path.delimiter) {\n\t\t\t\tresult += path.delimiter + two;\n\t\t\t} else {\n\t\t\t\tresult += two;\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t},\n\tnormalize(pathname) {\n\t\tconst lead = pathname.startsWith(path.delimiter);\n\t\tconst trail = pathname.endsWith(path.delimiter);\n\t\tconst parts = pathname.split('/');\n\t\tlet result = '';\n\t\tlet cleaned = [];\n\t\tfor (let i = 0; i < parts.length; i++) {\n\t\t\tif (parts[i] === '') continue;\n\t\t\tif (parts[i] === '.') continue;\n\t\t\tif (parts[i] === '..' && cleaned.length > 0) {\n\t\t\t\tcleaned = cleaned.slice(0, cleaned.length - 2);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (i > 0) cleaned.push(path.delimiter);\n\t\t\tcleaned.push(parts[i]);\n\t\t}\n\t\tresult = cleaned.join('');\n\t\tif (!lead && result[0] === path.delimiter) {\n\t\t\tresult = result.slice(1);\n\t\t}\n\t\tif (trail && result[result.length - 1] !== path.delimiter) {\n\t\t\tresult += path.delimiter;\n\t\t}\n\t\treturn result;\n\t},\n\tsplit(pathname) {\n\t\tconst lastDelimiterIndex = pathname.lastIndexOf(path.delimiter);\n\t\tif (lastDelimiterIndex !== -1) {\n\t\t\treturn [pathname.substring(0, lastDelimiterIndex), pathname.substring(lastDelimiterIndex + 1)];\n\t\t}\n\t\treturn ['', pathname];\n\t},\n\tgetBasename(pathname) {\n\t\treturn path.split(pathname)[1];\n\t},\n\tgetDirectory(pathname) {\n\t\treturn path.split(pathname)[0];\n\t},\n\tgetExtension(pathname) {\n\t\tconst ext = pathname.split('?')[0].split('.').pop();\n\t\tif (ext !== pathname) {\n\t\t\treturn `.${ext}`;\n\t\t}\n\t\treturn '';\n\t},\n\tisRelativePath(pathname) {\n\t\treturn pathname.charAt(0) !== '/' && pathname.match(/:\\/\\//) === null;\n\t},\n\textractPath(pathname) {\n\t\tlet result = '';\n\t\tconst parts = pathname.split('/');\n\t\tlet i = 0;\n\t\tif (parts.length > 1) {\n\t\t\tif (path.isRelativePath(pathname)) {\n\t\t\t\tif (parts[0] === '.') {\n\t\t\t\t\tfor (i = 0; i < parts.length - 1; ++i) {\n\t\t\t\t\t\tresult += i === 0 ? parts[i] : `/${parts[i]}`;\n\t\t\t\t\t}\n\t\t\t\t} else if (parts[0] === '..') {\n\t\t\t\t\tfor (i = 0; i < parts.length - 1; ++i) {\n\t\t\t\t\t\tresult += i === 0 ? parts[i] : `/${parts[i]}`;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresult = '.';\n\t\t\t\t\tfor (i = 0; i < parts.length - 1; ++i) {\n\t\t\t\t\t\tresult += `/${parts[i]}`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (i = 0; i < parts.length - 1; ++i) {\n\t\t\t\t\tresult += i === 0 ? parts[i] : `/${parts[i]}`;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n};\n\nvar _ref, _ref2, _ref3;\nconst detectPassiveEvents = () => {\n\tlet result = false;\n\ttry {\n\t\tconst opts = Object.defineProperty({}, 'passive', {\n\t\t\tget: function () {\n\t\t\t\tresult = true;\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\twindow.addEventListener('testpassive', null, opts);\n\t\twindow.removeEventListener('testpassive', null, opts);\n\t} catch (e) {}\n\treturn result;\n};\nconst ua = typeof navigator !== 'undefined' ? navigator.userAgent : '';\nconst environment = typeof window !== 'undefined' ? 'browser' : typeof global !== 'undefined' ? 'node' : 'worker';\nconst platformName = /android/i.test(ua) ? 'android' : /ip(?:[ao]d|hone)/i.test(ua) ? 'ios' : /windows/i.test(ua) ? 'windows' : /mac os/i.test(ua) ? 'osx' : /linux/i.test(ua) ? 'linux' : /cros/i.test(ua) ? 'cros' : null;\nconst browserName = environment !== 'browser' ? null : /Chrome\\/|Chromium\\/|Edg.*\\//.test(ua) ? 'chrome' : /Safari\\//.test(ua) ? 'safari' : /Firefox\\//.test(ua) ? 'firefox' : 'other';\nconst xbox = /xbox/i.test(ua);\nconst touch = environment === 'browser' && ('ontouchstart' in window || 'maxTouchPoints' in navigator && navigator.maxTouchPoints > 0);\nconst gamepads = environment === 'browser' && (!!navigator.getGamepads || !!navigator.webkitGetGamepads);\nconst workers = typeof Worker !== 'undefined';\nconst passiveEvents = detectPassiveEvents();\nconst platform = {\n\tname: platformName,\n\tenvironment: environment,\n\tglobal: (_ref = (_ref2 = (_ref3 = typeof globalThis !== 'undefined' && globalThis) != null ? _ref3 : environment === 'browser' && window) != null ? _ref2 : environment === 'node' && global) != null ? _ref : environment === 'worker' && self,\n\tbrowser: environment === 'browser',\n\tworker: environment === 'worker',\n\tdesktop: ['windows', 'osx', 'linux', 'cros'].includes(platformName),\n\tmobile: ['android', 'ios'].includes(platformName),\n\tios: platformName === 'ios',\n\tandroid: platformName === 'android',\n\txbox: xbox,\n\tgamepads: gamepads,\n\ttouch: touch,\n\tworkers: workers,\n\tpassiveEvents: passiveEvents,\n\tbrowserName: browserName\n};\n\nconst ASCII_LOWERCASE = 'abcdefghijklmnopqrstuvwxyz';\nconst ASCII_UPPERCASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\nconst ASCII_LETTERS = ASCII_LOWERCASE + ASCII_UPPERCASE;\nconst HIGH_SURROGATE_BEGIN = 0xD800;\nconst HIGH_SURROGATE_END = 0xDBFF;\nconst LOW_SURROGATE_BEGIN = 0xDC00;\nconst LOW_SURROGATE_END = 0xDFFF;\nconst ZERO_WIDTH_JOINER = 0x200D;\nconst REGIONAL_INDICATOR_BEGIN = 0x1F1E6;\nconst REGIONAL_INDICATOR_END = 0x1F1FF;\nconst FITZPATRICK_MODIFIER_BEGIN = 0x1F3FB;\nconst FITZPATRICK_MODIFIER_END = 0x1F3FF;\nconst DIACRITICAL_MARKS_BEGIN = 0x20D0;\nconst DIACRITICAL_MARKS_END = 0x20FF;\nconst VARIATION_MODIFIER_BEGIN = 0xFE00;\nconst VARIATION_MODIFIER_END = 0xFE0F;\nfunction getCodePointData(string, i = 0) {\n\tconst size = string.length;\n\tif (i < 0 || i >= size) {\n\t\treturn null;\n\t}\n\tconst first = string.charCodeAt(i);\n\tif (size > 1 && first >= HIGH_SURROGATE_BEGIN && first <= HIGH_SURROGATE_END) {\n\t\tconst second = string.charCodeAt(i + 1);\n\t\tif (second >= LOW_SURROGATE_BEGIN && second <= LOW_SURROGATE_END) {\n\t\t\treturn {\n\t\t\t\tcode: (first - HIGH_SURROGATE_BEGIN) * 0x400 + second - LOW_SURROGATE_BEGIN + 0x10000,\n\t\t\t\tlong: true\n\t\t\t};\n\t\t}\n\t}\n\treturn {\n\t\tcode: first,\n\t\tlong: false\n\t};\n}\nfunction isCodeBetween(string, begin, end) {\n\tif (!string) {\n\t\treturn false;\n\t}\n\tconst codeData = getCodePointData(string);\n\tif (codeData) {\n\t\tconst code = codeData.code;\n\t\treturn code >= begin && code <= end;\n\t}\n\treturn false;\n}\nfunction numCharsToTakeForNextSymbol(string, index) {\n\tif (index === string.length - 1) {\n\t\treturn 1;\n\t}\n\tif (isCodeBetween(string[index], HIGH_SURROGATE_BEGIN, HIGH_SURROGATE_END)) {\n\t\tconst first = string.substring(index, index + 2);\n\t\tconst second = string.substring(index + 2, index + 4);\n\t\tif (isCodeBetween(second, FITZPATRICK_MODIFIER_BEGIN, FITZPATRICK_MODIFIER_END) || isCodeBetween(first, REGIONAL_INDICATOR_BEGIN, REGIONAL_INDICATOR_END) && isCodeBetween(second, REGIONAL_INDICATOR_BEGIN, REGIONAL_INDICATOR_END)) {\n\t\t\treturn 4;\n\t\t}\n\t\tif (isCodeBetween(second, VARIATION_MODIFIER_BEGIN, VARIATION_MODIFIER_END)) {\n\t\t\treturn 3;\n\t\t}\n\t\treturn 2;\n\t}\n\tif (isCodeBetween(string[index + 1], VARIATION_MODIFIER_BEGIN, VARIATION_MODIFIER_END)) {\n\t\treturn 2;\n\t}\n\treturn 1;\n}\nconst string = {\n\tASCII_LOWERCASE: ASCII_LOWERCASE,\n\tASCII_UPPERCASE: ASCII_UPPERCASE,\n\tASCII_LETTERS: ASCII_LETTERS,\n\tformat(s, ...args) {\n\t\tfor (let i = 0; i < args.length; i++) {\n\t\t\ts = s.replace(`{${i}}`, args[i]);\n\t\t}\n\t\treturn s;\n\t},\n\tgetCodePoint(string, i) {\n\t\tconst codePointData = getCodePointData(string, i);\n\t\treturn codePointData && codePointData.code;\n\t},\n\tgetCodePoints(string) {\n\t\tif (typeof string !== 'string') {\n\t\t\tthrow new TypeError('Not a string');\n\t\t}\n\t\tlet i = 0;\n\t\tconst arr = [];\n\t\tlet codePoint;\n\t\twhile (!!(codePoint = getCodePointData(string, i))) {\n\t\t\tarr.push(codePoint.code);\n\t\t\ti += codePoint.long ? 2 : 1;\n\t\t}\n\t\treturn arr;\n\t},\n\tgetSymbols(string) {\n\t\tif (typeof string !== 'string') {\n\t\t\tthrow new TypeError('Not a string');\n\t\t}\n\t\tlet index = 0;\n\t\tconst length = string.length;\n\t\tconst output = [];\n\t\tlet take = 0;\n\t\tlet ch;\n\t\twhile (index < length) {\n\t\t\ttake += numCharsToTakeForNextSymbol(string, index + take);\n\t\t\tch = string[index + take];\n\t\t\tif (isCodeBetween(ch, DIACRITICAL_MARKS_BEGIN, DIACRITICAL_MARKS_END)) {\n\t\t\t\tch = string[index + take++];\n\t\t\t}\n\t\t\tif (isCodeBetween(ch, VARIATION_MODIFIER_BEGIN, VARIATION_MODIFIER_END)) {\n\t\t\t\tch = string[index + take++];\n\t\t\t}\n\t\t\tif (ch && ch.charCodeAt(0) === ZERO_WIDTH_JOINER) {\n\t\t\t\tch = string[index + take++];\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst char = string.substring(index, index + take);\n\t\t\toutput.push(char);\n\t\t\tindex += take;\n\t\t\ttake = 0;\n\t\t}\n\t\treturn output;\n\t},\n\tfromCodePoint() {\n\t\tconst chars = [];\n\t\tlet current;\n\t\tlet codePoint;\n\t\tlet units;\n\t\tfor (let i = 0; i < arguments.length; ++i) {\n\t\t\tcurrent = Number(arguments[i]);\n\t\t\tcodePoint = current - 0x10000;\n\t\t\tunits = current > 0xFFFF ? [(codePoint >> 10) + 0xD800, codePoint % 0x400 + 0xDC00] : [current];\n\t\t\tchars.push(String.fromCharCode.apply(null, units));\n\t\t}\n\t\treturn chars.join('');\n\t}\n};\n\nclass IndexedList {\n\tconstructor() {\n\t\tthis._list = [];\n\t\tthis._index = {};\n\t}\n\tpush(key, item) {\n\t\tif (this._index[key]) {\n\t\t\tthrow Error(`Key already in index ${key}`);\n\t\t}\n\t\tconst location = this._list.push(item) - 1;\n\t\tthis._index[key] = location;\n\t}\n\thas(key) {\n\t\treturn this._index[key] !== undefined;\n\t}\n\tget(key) {\n\t\tconst location = this._index[key];\n\t\tif (location !== undefined) {\n\t\t\treturn this._list[location];\n\t\t}\n\t\treturn null;\n\t}\n\tremove(key) {\n\t\tconst location = this._index[key];\n\t\tif (location !== undefined) {\n\t\t\tthis._list.splice(location, 1);\n\t\t\tdelete this._index[key];\n\t\t\tfor (key in this._index) {\n\t\t\t\tconst idx = this._index[key];\n\t\t\t\tif (idx > location) {\n\t\t\t\t\tthis._index[key] = idx - 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tlist() {\n\t\treturn this._list;\n\t}\n\tclear() {\n\t\tthis._list.length = 0;\n\t\tfor (const prop in this._index) {\n\t\t\tdelete this._index[prop];\n\t\t}\n\t}\n}\n\nconst cachedResult = func => {\n\tconst uninitToken = {};\n\tlet result = uninitToken;\n\treturn () => {\n\t\tif (result === uninitToken) {\n\t\t\tresult = func();\n\t\t}\n\t\treturn result;\n\t};\n};\nclass Impl {\n\tstatic loadScript(url, callback) {\n\t\tconst s = document.createElement('script');\n\t\ts.setAttribute('src', url);\n\t\ts.onload = () => {\n\t\t\tcallback(null);\n\t\t};\n\t\ts.onerror = () => {\n\t\t\tcallback(`Failed to load script='${url}'`);\n\t\t};\n\t\tdocument.body.appendChild(s);\n\t}\n\tstatic loadWasm(moduleName, config, callback) {\n\t\tconst loadUrl = Impl.wasmSupported() && config.glueUrl && config.wasmUrl ? config.glueUrl : config.fallbackUrl;\n\t\tif (loadUrl) {\n\t\t\tImpl.loadScript(loadUrl, err => {\n\t\t\t\tif (err) {\n\t\t\t\t\tcallback(err, null);\n\t\t\t\t} else {\n\t\t\t\t\tconst module = window[moduleName];\n\t\t\t\t\twindow[moduleName] = undefined;\n\t\t\t\t\tmodule({\n\t\t\t\t\t\tlocateFile: () => config.wasmUrl,\n\t\t\t\t\t\tonAbort: () => {\n\t\t\t\t\t\t\tcallback('wasm module aborted.');\n\t\t\t\t\t\t}\n\t\t\t\t\t}).then(instance => {\n\t\t\t\t\t\tcallback(null, instance);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tcallback('No supported wasm modules found.', null);\n\t\t}\n\t}\n\tstatic getModule(name) {\n\t\tif (!Impl.modules.hasOwnProperty(name)) {\n\t\t\tImpl.modules[name] = {\n\t\t\t\tconfig: null,\n\t\t\t\tinitializing: false,\n\t\t\t\tinstance: null,\n\t\t\t\tcallbacks: []\n\t\t\t};\n\t\t}\n\t\treturn Impl.modules[name];\n\t}\n\tstatic initialize(moduleName, module) {\n\t\tif (module.initializing) {\n\t\t\treturn;\n\t\t}\n\t\tconst config = module.config;\n\t\tif (config.glueUrl || config.wasmUrl || config.fallbackUrl) {\n\t\t\tmodule.initializing = true;\n\t\t\tImpl.loadWasm(moduleName, config, (err, instance) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tif (config.errorHandler) {\n\t\t\t\t\t\tconfig.errorHandler(err);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.error(`failed to initialize module=${moduleName} error=${err}`);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tmodule.instance = instance;\n\t\t\t\t\tmodule.callbacks.forEach(callback => {\n\t\t\t\t\t\tcallback(instance);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n}\nImpl.modules = {};\nImpl.wasmSupported = cachedResult(() => {\n\ttry {\n\t\tif (typeof WebAssembly === 'object' && typeof WebAssembly.instantiate === 'function') {\n\t\t\tconst module = new WebAssembly.Module(Uint8Array.of(0x0, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00));\n\t\t\tif (module instanceof WebAssembly.Module) {\n\t\t\t\treturn new WebAssembly.Instance(module) instanceof WebAssembly.Instance;\n\t\t\t}\n\t\t}\n\t} catch (e) {}\n\treturn false;\n});\nclass WasmModule {\n\tstatic setConfig(moduleName, config) {\n\t\tconst module = Impl.getModule(moduleName);\n\t\tmodule.config = config;\n\t\tif (module.callbacks.length > 0) {\n\t\t\tImpl.initialize(moduleName, module);\n\t\t}\n\t}\n\tstatic getConfig(moduleName) {\n\t\tvar _Impl$modules;\n\t\treturn (_Impl$modules = Impl.modules) == null || (_Impl$modules = _Impl$modules[moduleName]) == null ? void 0 : _Impl$modules.config;\n\t}\n\tstatic getInstance(moduleName, callback) {\n\t\tconst module = Impl.getModule(moduleName);\n\t\tif (module.instance) {\n\t\t\tcallback(module.instance);\n\t\t} else {\n\t\t\tmodule.callbacks.push(callback);\n\t\t\tif (module.config) {\n\t\t\t\tImpl.initialize(moduleName, module);\n\t\t\t}\n\t\t}\n\t}\n}\n\nclass ReadStream {\n\tconstructor(arraybuffer) {\n\t\tthis.arraybuffer = void 0;\n\t\tthis.dataView = void 0;\n\t\tthis.offset = 0;\n\t\tthis.arraybuffer = arraybuffer;\n\t\tthis.dataView = new DataView(arraybuffer);\n\t}\n\tget remainingBytes() {\n\t\treturn this.dataView.byteLength - this.offset;\n\t}\n\treset(offset = 0) {\n\t\tthis.offset = offset;\n\t}\n\tskip(bytes) {\n\t\tthis.offset += bytes;\n\t}\n\talign(bytes) {\n\t\tthis.offset = this.offset + bytes - 1 & ~(bytes - 1);\n\t}\n\t_inc(amount) {\n\t\tthis.offset += amount;\n\t\treturn this.offset - amount;\n\t}\n\treadChar() {\n\t\treturn String.fromCharCode(this.dataView.getUint8(this.offset++));\n\t}\n\treadChars(numChars) {\n\t\tlet result = '';\n\t\tfor (let i = 0; i < numChars; ++i) {\n\t\t\tresult += this.readChar();\n\t\t}\n\t\treturn result;\n\t}\n\treadU8() {\n\t\treturn this.dataView.getUint8(this.offset++);\n\t}\n\treadU16() {\n\t\treturn this.dataView.getUint16(this._inc(2), true);\n\t}\n\treadU32() {\n\t\treturn this.dataView.getUint32(this._inc(4), true);\n\t}\n\treadU64() {\n\t\treturn this.readU32() + 2 ** 32 * this.readU32();\n\t}\n\treadU32be() {\n\t\treturn this.dataView.getUint32(this._inc(4), false);\n\t}\n\treadArray(result) {\n\t\tfor (let i = 0; i < result.length; ++i) {\n\t\t\tresult[i] = this.readU8();\n\t\t}\n\t}\n\treadLine() {\n\t\tconst view = this.dataView;\n\t\tlet result = '';\n\t\twhile (true) {\n\t\t\tif (this.offset >= view.byteLength) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tconst c = String.fromCharCode(this.readU8());\n\t\t\tif (c === '\\n') {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tresult += c;\n\t\t}\n\t\treturn result;\n\t}\n}\n\nclass SortedLoopArray {\n\tconstructor(args) {\n\t\tthis.items = [];\n\t\tthis.length = 0;\n\t\tthis.loopIndex = -1;\n\t\tthis._sortBy = void 0;\n\t\tthis._sortHandler = void 0;\n\t\tthis._sortBy = args.sortBy;\n\t\tthis._sortHandler = this._doSort.bind(this);\n\t}\n\t_binarySearch(item) {\n\t\tlet left = 0;\n\t\tlet right = this.items.length - 1;\n\t\tconst search = item[this._sortBy];\n\t\tlet middle;\n\t\tlet current;\n\t\twhile (left <= right) {\n\t\t\tmiddle = Math.floor((left + right) / 2);\n\t\t\tcurrent = this.items[middle][this._sortBy];\n\t\t\tif (current <= search) {\n\t\t\t\tleft = middle + 1;\n\t\t\t} else if (current > search) {\n\t\t\t\tright = middle - 1;\n\t\t\t}\n\t\t}\n\t\treturn left;\n\t}\n\t_doSort(a, b) {\n\t\tconst sortBy = this._sortBy;\n\t\treturn a[sortBy] - b[sortBy];\n\t}\n\tinsert(item) {\n\t\tconst index = this._binarySearch(item);\n\t\tthis.items.splice(index, 0, item);\n\t\tthis.length++;\n\t\tif (this.loopIndex >= index) {\n\t\t\tthis.loopIndex++;\n\t\t}\n\t}\n\tappend(item) {\n\t\tthis.items.push(item);\n\t\tthis.length++;\n\t}\n\tremove(item) {\n\t\tconst idx = this.items.indexOf(item);\n\t\tif (idx < 0) return;\n\t\tthis.items.splice(idx, 1);\n\t\tthis.length--;\n\t\tif (this.loopIndex >= idx) {\n\t\t\tthis.loopIndex--;\n\t\t}\n\t}\n\tsort() {\n\t\tconst current = this.loopIndex >= 0 ? this.items[this.loopIndex] : null;\n\t\tthis.items.sort(this._sortHandler);\n\t\tif (current !== null) {\n\t\t\tthis.loopIndex = this.items.indexOf(current);\n\t\t}\n\t}\n}\n\nclass Tags extends EventHandler {\n\tconstructor(parent) {\n\t\tsuper();\n\t\tthis._index = {};\n\t\tthis._list = [];\n\t\tthis._parent = parent;\n\t}\n\tadd(...args) {\n\t\tlet changed = false;\n\t\tconst tags = this._processArguments(args, true);\n\t\tif (!tags.length) {\n\t\t\treturn changed;\n\t\t}\n\t\tfor (let i = 0; i < tags.length; i++) {\n\t\t\tif (this._index[tags[i]]) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tchanged = true;\n\t\t\tthis._index[tags[i]] = true;\n\t\t\tthis._list.push(tags[i]);\n\t\t\tthis.fire('add', tags[i], this._parent);\n\t\t}\n\t\tif (changed) {\n\t\t\tthis.fire('change', this._parent);\n\t\t}\n\t\treturn changed;\n\t}\n\tremove(...args) {\n\t\tlet changed = false;\n\t\tif (!this._list.length) {\n\t\t\treturn changed;\n\t\t}\n\t\tconst tags = this._processArguments(args, true);\n\t\tif (!tags.length) {\n\t\t\treturn changed;\n\t\t}\n\t\tfor (let i = 0; i < tags.length; i++) {\n\t\t\tif (!this._index[tags[i]]) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tchanged = true;\n\t\t\tdelete this._index[tags[i]];\n\t\t\tthis._list.splice(this._list.indexOf(tags[i]), 1);\n\t\t\tthis.fire('remove', tags[i], this._parent);\n\t\t}\n\t\tif (changed) {\n\t\t\tthis.fire('change', this._parent);\n\t\t}\n\t\treturn changed;\n\t}\n\tclear() {\n\t\tif (!this._list.length) {\n\t\t\treturn;\n\t\t}\n\t\tconst tags = this._list.slice(0);\n\t\tthis._list = [];\n\t\tthis._index = {};\n\t\tfor (let i = 0; i < tags.length; i++) {\n\t\t\tthis.fire('remove', tags[i], this._parent);\n\t\t}\n\t\tthis.fire('change', this._parent);\n\t}\n\thas(...query) {\n\t\tif (!this._list.length) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this._has(this._processArguments(query));\n\t}\n\t_has(tags) {\n\t\tif (!this._list.length || !tags.length) {\n\t\t\treturn false;\n\t\t}\n\t\tfor (let i = 0; i < tags.length; i++) {\n\t\t\tif (tags[i].length === 1) {\n\t\t\t\tif (this._index[tags[i][0]]) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tlet multiple = true;\n\t\t\t\tfor (let t = 0; t < tags[i].length; t++) {\n\t\t\t\t\tif (this._index[tags[i][t]]) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tmultiple = false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (multiple) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\tlist() {\n\t\treturn this._list.slice(0);\n\t}\n\t_processArguments(args, flat) {\n\t\tconst tags = [];\n\t\tlet tmp = [];\n\t\tif (!args || !args.length) {\n\t\t\treturn tags;\n\t\t}\n\t\tfor (let i = 0; i < args.length; i++) {\n\t\t\tif (args[i] instanceof Array) {\n\t\t\t\tif (!flat) {\n\t\t\t\t\ttmp = [];\n\t\t\t\t}\n\t\t\t\tfor (let t = 0; t < args[i].length; t++) {\n\t\t\t\t\tif (typeof args[i][t] !== 'string') {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tif (flat) {\n\t\t\t\t\t\ttags.push(args[i][t]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttmp.push(args[i][t]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!flat && tmp.length) {\n\t\t\t\t\ttags.push(tmp);\n\t\t\t\t}\n\t\t\t} else if (typeof args[i] === 'string') {\n\t\t\t\tif (flat) {\n\t\t\t\t\ttags.push(args[i]);\n\t\t\t\t} else {\n\t\t\t\t\ttags.push([args[i]]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn tags;\n\t}\n\tget size() {\n\t\treturn this._list.length;\n\t}\n}\nTags.EVENT_ADD = 'add';\nTags.EVENT_REMOVE = 'remove';\nTags.EVENT_CHANGE = 'change';\n\nconst now = typeof window !== 'undefined' && window.performance && window.performance.now ? performance.now.bind(performance) : Date.now;\n\nfunction createURI(options) {\n\tlet s = '';\n\tif ((options.authority || options.scheme) && (options.host || options.hostpath)) {\n\t\tthrow new Error('Can\\'t have \\'scheme\\' or \\'authority\\' and \\'host\\' or \\'hostpath\\' option');\n\t}\n\tif (options.host && options.hostpath) {\n\t\tthrow new Error('Can\\'t have \\'host\\' and \\'hostpath\\' option');\n\t}\n\tif (options.path && options.hostpath) {\n\t\tthrow new Error('Can\\'t have \\'path\\' and \\'hostpath\\' option');\n\t}\n\tif (options.scheme) {\n\t\ts += `${options.scheme}:`;\n\t}\n\tif (options.authority) {\n\t\ts += `//${options.authority}`;\n\t}\n\tif (options.host) {\n\t\ts += options.host;\n\t}\n\tif (options.path) {\n\t\ts += options.path;\n\t}\n\tif (options.hostpath) {\n\t\ts += options.hostpath;\n\t}\n\tif (options.query) {\n\t\ts += `?${options.query}`;\n\t}\n\tif (options.fragment) {\n\t\ts += `#${options.fragment}`;\n\t}\n\treturn s;\n}\nconst re = /^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/;\nclass URI {\n\tconstructor(uri) {\n\t\tthis.scheme = void 0;\n\t\tthis.authority = void 0;\n\t\tthis.path = void 0;\n\t\tthis.query = void 0;\n\t\tthis.fragment = void 0;\n\t\tconst result = uri.match(re);\n\t\tthis.scheme = result[2];\n\t\tthis.authority = result[4];\n\t\tthis.path = result[5];\n\t\tthis.query = result[7];\n\t\tthis.fragment = result[9];\n\t}\n\ttoString() {\n\t\tlet s = '';\n\t\tif (this.scheme) {\n\t\t\ts += `${this.scheme}:`;\n\t\t}\n\t\tif (this.authority) {\n\t\t\ts += `//${this.authority}`;\n\t\t}\n\t\ts += this.path;\n\t\tif (this.query) {\n\t\t\ts += `?${this.query}`;\n\t\t}\n\t\tif (this.fragment) {\n\t\t\ts += `#${this.fragment}`;\n\t\t}\n\t\treturn s;\n\t}\n\tgetQuery() {\n\t\tconst result = {};\n\t\tif (this.query) {\n\t\t\tconst queryParams = decodeURIComponent(this.query).split('&');\n\t\t\tfor (const queryParam of queryParams) {\n\t\t\t\tconst pair = queryParam.split('=');\n\t\t\t\tresult[pair[0]] = pair[1];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\tsetQuery(params) {\n\t\tlet q = '';\n\t\tfor (const key in params) {\n\t\t\tif (params.hasOwnProperty(key)) {\n\t\t\t\tif (q !== '') {\n\t\t\t\t\tq += '&';\n\t\t\t\t}\n\t\t\t\tq += `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`;\n\t\t\t}\n\t\t}\n\t\tthis.query = q;\n\t}\n}\n\nclass Tracing {\n\tstatic set(channel, enabled = true) {}\n\tstatic get(channel) {\n\t\treturn Tracing._traceChannels.has(channel);\n\t}\n}\nTracing._traceChannels = new Set();\nTracing.stack = false;\n\nconst CURVE_LINEAR = 0;\nconst CURVE_SMOOTHSTEP = 1;\nconst CURVE_CATMULL = 2;\nconst CURVE_CARDINAL = 3;\nconst CURVE_SPLINE = 4;\nconst CURVE_STEP = 5;\n\nconst math = {\n\tDEG_TO_RAD: Math.PI / 180,\n\tRAD_TO_DEG: 180 / Math.PI,\n\tclamp(value, min, max) {\n\t\tif (value >= max) return max;\n\t\tif (value <= min) return min;\n\t\treturn value;\n\t},\n\tintToBytes24(i) {\n\t\tconst r = i >> 16 & 0xff;\n\t\tconst g = i >> 8 & 0xff;\n\t\tconst b = i & 0xff;\n\t\treturn [r, g, b];\n\t},\n\tintToBytes32(i) {\n\t\tconst r = i >> 24 & 0xff;\n\t\tconst g = i >> 16 & 0xff;\n\t\tconst b = i >> 8 & 0xff;\n\t\tconst a = i & 0xff;\n\t\treturn [r, g, b, a];\n\t},\n\tbytesToInt24(r, g, b) {\n\t\tif (r.length) {\n\t\t\tb = r[2];\n\t\t\tg = r[1];\n\t\t\tr = r[0];\n\t\t}\n\t\treturn r << 16 | g << 8 | b;\n\t},\n\tbytesToInt32(r, g, b, a) {\n\t\tif (r.length) {\n\t\t\ta = r[3];\n\t\t\tb = r[2];\n\t\t\tg = r[1];\n\t\t\tr = r[0];\n\t\t}\n\t\treturn (r << 24 | g << 16 | b << 8 | a) >>> 0;\n\t},\n\tlerp(a, b, alpha) {\n\t\treturn a + (b - a) * math.clamp(alpha, 0, 1);\n\t},\n\tlerpAngle(a, b, alpha) {\n\t\tif (b - a > 180) {\n\t\t\tb -= 360;\n\t\t}\n\t\tif (b - a < -180) {\n\t\t\tb += 360;\n\t\t}\n\t\treturn math.lerp(a, b, math.clamp(alpha, 0, 1));\n\t},\n\tpowerOfTwo(x) {\n\t\treturn x !== 0 && !(x & x - 1);\n\t},\n\tnextPowerOfTwo(val) {\n\t\tval--;\n\t\tval |= val >> 1;\n\t\tval |= val >> 2;\n\t\tval |= val >> 4;\n\t\tval |= val >> 8;\n\t\tval |= val >> 16;\n\t\tval++;\n\t\treturn val;\n\t},\n\tnearestPowerOfTwo(val) {\n\t\treturn Math.pow(2, Math.round(Math.log(val) / Math.log(2)));\n\t},\n\trandom(min, max) {\n\t\tconst diff = max - min;\n\t\treturn Math.random() * diff + min;\n\t},\n\tsmoothstep(min, max, x) {\n\t\tif (x <= min) return 0;\n\t\tif (x >= max) return 1;\n\t\tx = (x - min) / (max - min);\n\t\treturn x * x * (3 - 2 * x);\n\t},\n\tsmootherstep(min, max, x) {\n\t\tif (x <= min) return 0;\n\t\tif (x >= max) return 1;\n\t\tx = (x - min) / (max - min);\n\t\treturn x * x * x * (x * (x * 6 - 15) + 10);\n\t},\n\troundUp(numToRound, multiple) {\n\t\tif (multiple === 0) {\n\t\t\treturn numToRound;\n\t\t}\n\t\treturn Math.ceil(numToRound / multiple) * multiple;\n\t},\n\tbetween(num, a, b, inclusive) {\n\t\tconst min = Math.min(a, b);\n\t\tconst max = Math.max(a, b);\n\t\treturn inclusive ? num >= min && num <= max : num > min && num < max;\n\t}\n};\n\nvar _Color;\nclass Color {\n\tconstructor(r = 0, g = 0, b = 0, a = 1) {\n\t\tthis.r = void 0;\n\t\tthis.g = void 0;\n\t\tthis.b = void 0;\n\t\tthis.a = void 0;\n\t\tconst length = r.length;\n\t\tif (length === 3 || length === 4) {\n\t\t\tthis.r = r[0];\n\t\t\tthis.g = r[1];\n\t\t\tthis.b = r[2];\n\t\t\tthis.a = r[3] !== undefined ? r[3] : 1;\n\t\t} else {\n\t\t\tthis.r = r;\n\t\t\tthis.g = g;\n\t\t\tthis.b = b;\n\t\t\tthis.a = a;\n\t\t}\n\t}\n\tclone() {\n\t\tconst cstr = this.constructor;\n\t\treturn new cstr(this.r, this.g, this.b, this.a);\n\t}\n\tcopy(rhs) {\n\t\tthis.r = rhs.r;\n\t\tthis.g = rhs.g;\n\t\tthis.b = rhs.b;\n\t\tthis.a = rhs.a;\n\t\treturn this;\n\t}\n\tequals(rhs) {\n\t\treturn this.r === rhs.r && this.g === rhs.g && this.b === rhs.b && this.a === rhs.a;\n\t}\n\tset(r, g, b, a = 1) {\n\t\tthis.r = r;\n\t\tthis.g = g;\n\t\tthis.b = b;\n\t\tthis.a = a;\n\t\treturn this;\n\t}\n\tlerp(lhs, rhs, alpha) {\n\t\tthis.r = lhs.r + alpha * (rhs.r - lhs.r);\n\t\tthis.g = lhs.g + alpha * (rhs.g - lhs.g);\n\t\tthis.b = lhs.b + alpha * (rhs.b - lhs.b);\n\t\tthis.a = lhs.a + alpha * (rhs.a - lhs.a);\n\t\treturn this;\n\t}\n\tfromString(hex) {\n\t\tconst i = parseInt(hex.replace('#', '0x'), 16);\n\t\tlet bytes;\n\t\tif (hex.length > 7) {\n\t\t\tbytes = math.intToBytes32(i);\n\t\t} else {\n\t\t\tbytes = math.intToBytes24(i);\n\t\t\tbytes[3] = 255;\n\t\t}\n\t\tthis.set(bytes[0] / 255, bytes[1] / 255, bytes[2] / 255, bytes[3] / 255);\n\t\treturn this;\n\t}\n\tfromArray(arr, offset = 0) {\n\t\tvar _arr$offset, _arr, _arr2, _arr3;\n\t\tthis.r = (_arr$offset = arr[offset]) != null ? _arr$offset : this.r;\n\t\tthis.g = (_arr = arr[offset + 1]) != null ? _arr : this.g;\n\t\tthis.b = (_arr2 = arr[offset + 2]) != null ? _arr2 : this.b;\n\t\tthis.a = (_arr3 = arr[offset + 3]) != null ? _arr3 : this.a;\n\t\treturn this;\n\t}\n\ttoString(alpha) {\n\t\tlet s = `#${((1 << 24) + (Math.round(this.r * 255) << 16) + (Math.round(this.g * 255) << 8) + Math.round(this.b * 255)).toString(16).slice(1)}`;\n\t\tif (alpha === true) {\n\t\t\tconst a = Math.round(this.a * 255).toString(16);\n\t\t\tif (this.a < 16 / 255) {\n\t\t\t\ts += `0${a}`;\n\t\t\t} else {\n\t\t\t\ts += a;\n\t\t\t}\n\t\t}\n\t\treturn s;\n\t}\n\ttoArray(arr = [], offset = 0, alpha = true) {\n\t\tarr[offset] = this.r;\n\t\tarr[offset + 1] = this.g;\n\t\tarr[offset + 2] = this.b;\n\t\tif (alpha) {\n\t\t\tarr[offset + 3] = this.a;\n\t\t}\n\t\treturn arr;\n\t}\n}\n_Color = Color;\nColor.BLACK = Object.freeze(new _Color(0, 0, 0, 1));\nColor.BLUE = Object.freeze(new _Color(0, 0, 1, 1));\nColor.CYAN = Object.freeze(new _Color(0, 1, 1, 1));\nColor.GRAY = Object.freeze(new _Color(0.5, 0.5, 0.5, 1));\nColor.GREEN = Object.freeze(new _Color(0, 1, 0, 1));\nColor.MAGENTA = Object.freeze(new _Color(1, 0, 1, 1));\nColor.RED = Object.freeze(new _Color(1, 0, 0, 1));\nColor.WHITE = Object.freeze(new _Color(1, 1, 1, 1));\nColor.YELLOW = Object.freeze(new _Color(1, 1, 0, 1));\n\nclass CurveEvaluator {\n\tconstructor(curve, time = 0) {\n\t\tthis._curve = void 0;\n\t\tthis._left = -Infinity;\n\t\tthis._right = Infinity;\n\t\tthis._recip = 0;\n\t\tthis._p0 = 0;\n\t\tthis._p1 = 0;\n\t\tthis._m0 = 0;\n\t\tthis._m1 = 0;\n\t\tthis._curve = curve;\n\t\tthis._reset(time);\n\t}\n\tevaluate(time, forceReset = false) {\n\t\tif (forceReset || time < this._left || time >= this._right) {\n\t\t\tthis._reset(time);\n\t\t}\n\t\tlet result;\n\t\tconst type = this._curve.type;\n\t\tif (type === CURVE_STEP) {\n\t\t\tresult = this._p0;\n\t\t} else {\n\t\t\tconst t = this._recip === 0 ? 0 : (time - this._left) * this._recip;\n\t\t\tif (type === CURVE_LINEAR) {\n\t\t\t\tresult = math.lerp(this._p0, this._p1, t);\n\t\t\t} else if (type === CURVE_SMOOTHSTEP) {\n\t\t\t\tresult = math.lerp(this._p0, this._p1, t * t * (3 - 2 * t));\n\t\t\t} else {\n\t\t\t\tresult = this._evaluateHermite(this._p0, this._p1, this._m0, this._m1, t);\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\t_reset(time) {\n\t\tconst keys = this._curve.keys;\n\t\tconst len = keys.length;\n\t\tif (!len) {\n\t\t\tthis._left = -Infinity;\n\t\t\tthis._right = Infinity;\n\t\t\tthis._recip = 0;\n\t\t\tthis._p0 = this._p1 = this._m0 = this._m1 = 0;\n\t\t} else {\n\t\t\tif (time < keys[0][0]) {\n\t\t\t\tthis._left = -Infinity;\n\t\t\t\tthis._right = keys[0][0];\n\t\t\t\tthis._recip = 0;\n\t\t\t\tthis._p0 = this._p1 = keys[0][1];\n\t\t\t\tthis._m0 = this._m1 = 0;\n\t\t\t} else if (time >= keys[len - 1][0]) {\n\t\t\t\tthis._left = keys[len - 1][0];\n\t\t\t\tthis._right = Infinity;\n\t\t\t\tthis._recip = 0;\n\t\t\t\tthis._p0 = this._p1 = keys[len - 1][1];\n\t\t\t\tthis._m0 = this._m1 = 0;\n\t\t\t} else {\n\t\t\t\tlet index = 0;\n\t\t\t\twhile (time >= keys[index + 1][0]) {\n\t\t\t\t\tindex++;\n\t\t\t\t}\n\t\t\t\tthis._left = keys[index][0];\n\t\t\t\tthis._right = keys[index + 1][0];\n\t\t\t\tconst diff = 1.0 / (this._right - this._left);\n\t\t\t\tthis._recip = isFinite(diff) ? diff : 0;\n\t\t\t\tthis._p0 = keys[index][1];\n\t\t\t\tthis._p1 = keys[index + 1][1];\n\t\t\t\tif (this._isHermite()) {\n\t\t\t\t\tthis._calcTangents(keys, index);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t_isHermite() {\n\t\treturn this._curve.type === CURVE_CATMULL || this._curve.type === CURVE_CARDINAL || this._curve.type === CURVE_SPLINE;\n\t}\n\t_calcTangents(keys, index) {\n\t\tlet a;\n\t\tconst b = keys[index];\n\t\tconst c = keys[index + 1];\n\t\tlet d;\n\t\tif (index === 0) {\n\t\t\ta = [keys[0][0] + (keys[0][0] - keys[1][0]), keys[0][1] + (keys[0][1] - keys[1][1])];\n\t\t} else {\n\t\t\ta = keys[index - 1];\n\t\t}\n\t\tif (index === keys.length - 2) {\n\t\t\td = [keys[index + 1][0] + (keys[index + 1][0] - keys[index][0]), keys[index + 1][1] + (keys[index + 1][1] - keys[index][1])];\n\t\t} else {\n\t\t\td = keys[index + 2];\n\t\t}\n\t\tif (this._curve.type === CURVE_SPLINE) {\n\t\t\tconst s1_ = 2 * (c[0] - b[0]) / (c[0] - a[0]);\n\t\t\tconst s2_ = 2 * (c[0] - b[0]) / (d[0] - b[0]);\n\t\t\tthis._m0 = this._curve.tension * (isFinite(s1_) ? s1_ : 0) * (c[1] - a[1]);\n\t\t\tthis._m1 = this._curve.tension * (isFinite(s2_) ? s2_ : 0) * (d[1] - b[1]);\n\t\t} else {\n\t\t\tconst s1 = (c[0] - b[0]) / (b[0] - a[0]);\n\t\t\tconst s2 = (c[0] - b[0]) / (d[0] - c[0]);\n\t\t\tconst a_ = b[1] + (a[1] - b[1]) * (isFinite(s1) ? s1 : 0);\n\t\t\tconst d_ = c[1] + (d[1] - c[1]) * (isFinite(s2) ? s2 : 0);\n\t\t\tconst tension = this._curve.type === CURVE_CATMULL ? 0.5 : this._curve.tension;\n\t\t\tthis._m0 = tension * (c[1] - a_);\n\t\t\tthis._m1 = tension * (d_ - b[1]);\n\t\t}\n\t}\n\t_evaluateHermite(p0, p1, m0, m1, t) {\n\t\tconst t2 = t * t;\n\t\tconst twot = t + t;\n\t\tconst omt = 1 - t;\n\t\tconst omt2 = omt * omt;\n\t\treturn p0 * ((1 + twot) * omt2) + m0 * (t * omt2) + p1 * (t2 * (3 - twot)) + m1 * (t2 * (t - 1));\n\t}\n}\n\nclass Curve {\n\tconstructor(data) {\n\t\tthis.keys = [];\n\t\tthis.type = CURVE_SMOOTHSTEP;\n\t\tthis.tension = 0.5;\n\t\tthis._eval = new CurveEvaluator(this);\n\t\tif (data) {\n\t\t\tfor (let i = 0; i < data.length - 1; i += 2) {\n\t\t\t\tthis.keys.push([data[i], data[i + 1]]);\n\t\t\t}\n\t\t}\n\t\tthis.sort();\n\t}\n\tget length() {\n\t\treturn this.keys.length;\n\t}\n\tadd(time, value) {\n\t\tconst keys = this.keys;\n\t\tconst len = keys.length;\n\t\tlet i = 0;\n\t\tfor (; i < len; i++) {\n\t\t\tif (keys[i][0] > time) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tconst key = [time, value];\n\t\tthis.keys.splice(i, 0, key);\n\t\treturn key;\n\t}\n\tget(index) {\n\t\treturn this.keys[index];\n\t}\n\tsort() {\n\t\tthis.keys.sort((a, b) => a[0] - b[0]);\n\t}\n\tvalue(time) {\n\t\treturn this._eval.evaluate(time, true);\n\t}\n\tclosest(time) {\n\t\tconst keys = this.keys;\n\t\tconst length = keys.length;\n\t\tlet min = 2;\n\t\tlet result = null;\n\t\tfor (let i = 0; i < length; i++) {\n\t\t\tconst diff = Math.abs(time - keys[i][0]);\n\t\t\tif (min >= diff) {\n\t\t\t\tmin = diff;\n\t\t\t\tresult = keys[i];\n\t\t\t} else {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\tclone() {\n\t\tconst result = new this.constructor();\n\t\tresult.keys = this.keys.map(key => [...key]);\n\t\tresult.type = this.type;\n\t\tresult.tension = this.tension;\n\t\treturn result;\n\t}\n\tquantize(precision) {\n\t\tprecision = Math.max(precision, 2);\n\t\tconst values = new Float32Array(precision);\n\t\tconst step = 1.0 / (precision - 1);\n\t\tvalues[0] = this._eval.evaluate(0, true);\n\t\tfor (let i = 1; i < precision; i++) {\n\t\t\tvalues[i] = this._eval.evaluate(step * i);\n\t\t}\n\t\treturn values;\n\t}\n\tquantizeClamped(precision, min, max) {\n\t\tconst result = this.quantize(precision);\n\t\tfor (let i = 0; i < result.length; ++i) {\n\t\t\tresult[i] = Math.min(max, Math.max(min, result[i]));\n\t\t}\n\t\treturn result;\n\t}\n}\n\nclass CurveSet {\n\tconstructor() {\n\t\tthis.curves = [];\n\t\tthis._type = CURVE_SMOOTHSTEP;\n\t\tif (arguments.length > 1) {\n\t\t\tfor (let i = 0; i < arguments.length; i++) {\n\t\t\t\tthis.curves.push(new Curve(arguments[i]));\n\t\t\t}\n\t\t} else {\n\t\t\tif (arguments.length === 0) {\n\t\t\t\tthis.curves.push(new Curve());\n\t\t\t} else {\n\t\t\t\tconst arg = arguments[0];\n\t\t\t\tif (typeof arg === 'number') {\n\t\t\t\t\tfor (let i = 0; i < arg; i++) {\n\t\t\t\t\t\tthis.curves.push(new Curve());\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfor (let i = 0; i < arg.length; i++) {\n\t\t\t\t\t\tthis.curves.push(new Curve(arg[i]));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget length() {\n\t\treturn this.curves.length;\n\t}\n\tset type(value) {\n\t\tthis._type = value;\n\t\tfor (let i = 0; i < this.curves.length; i++) {\n\t\t\tthis.curves[i].type = value;\n\t\t}\n\t}\n\tget type() {\n\t\treturn this._type;\n\t}\n\tget(index) {\n\t\treturn this.curves[index];\n\t}\n\tvalue(time, result = []) {\n\t\tconst length = this.curves.length;\n\t\tresult.length = length;\n\t\tfor (let i = 0; i < length; i++) {\n\t\t\tresult[i] = this.curves[i].value(time);\n\t\t}\n\t\treturn result;\n\t}\n\tclone() {\n\t\tconst result = new this.constructor();\n\t\tresult.curves = [];\n\t\tfor (let i = 0; i < this.curves.length; i++) {\n\t\t\tresult.curves.push(this.curves[i].clone());\n\t\t}\n\t\tresult._type = this._type;\n\t\treturn result;\n\t}\n\tquantize(precision) {\n\t\tprecision = Math.max(precision, 2);\n\t\tconst numCurves = this.curves.length;\n\t\tconst values = new Float32Array(precision * numCurves);\n\t\tconst step = 1.0 / (precision - 1);\n\t\tfor (let c = 0; c < numCurves; c++) {\n\t\t\tconst ev = new CurveEvaluator(this.curves[c]);\n\t\t\tfor (let i = 0; i < precision; i++) {\n\t\t\t\tvalues[i * numCurves + c] = ev.evaluate(step * i);\n\t\t\t}\n\t\t}\n\t\treturn values;\n\t}\n\tquantizeClamped(precision, min, max) {\n\t\tconst result = this.quantize(precision);\n\t\tfor (let i = 0; i < result.length; ++i) {\n\t\t\tresult[i] = Math.min(max, Math.max(min, result[i]));\n\t\t}\n\t\treturn result;\n\t}\n}\n\nconst oneDiv255 = 1 / 255;\nconst floatView = new Float32Array(1);\nconst int32View = new Int32Array(floatView.buffer);\nclass FloatPacking {\n\tstatic float2Half(value) {\n\t\tfloatView[0] = value;\n\t\tconst x = int32View[0];\n\t\tlet bits = x >> 16 & 0x8000;\n\t\tlet m = x >> 12 & 0x07ff;\n\t\tconst e = x >> 23 & 0xff;\n\t\tif (e < 103) {\n\t\t\treturn bits;\n\t\t}\n\t\tif (e > 142) {\n\t\t\tbits |= 0x7c00;\n\t\t\tbits |= (e === 255 ? 0 : 1) && x & 0x007fffff;\n\t\t\treturn bits;\n\t\t}\n\t\tif (e < 113) {\n\t\t\tm |= 0x0800;\n\t\t\tbits |= (m >> 114 - e) + (m >> 113 - e & 1);\n\t\t\treturn bits;\n\t\t}\n\t\tbits |= e - 112 << 10 | m >> 1;\n\t\tbits += m & 1;\n\t\treturn bits;\n\t}\n\tstatic float2Bytes(value, array, offset, numBytes) {\n\t\tconst enc1 = 255.0 * value % 1;\n\t\tarray[offset + 0] = Math.round((value % 1 - oneDiv255 * enc1) * 255);\n\t\tif (numBytes > 1) {\n\t\t\tconst enc2 = 65025.0 * value % 1;\n\t\t\tarray[offset + 1] = Math.round((enc1 - oneDiv255 * enc2) * 255);\n\t\t\tif (numBytes > 2) {\n\t\t\t\tconst enc3 = 16581375.0 * value % 1;\n\t\t\t\tarray[offset + 2] = Math.round((enc2 - oneDiv255 * enc3) * 255);\n\t\t\t\tif (numBytes > 3) {\n\t\t\t\t\tarray[offset + 3] = Math.round(enc3 * 255);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tstatic float2BytesRange(value, array, offset, min, max, numBytes) {\n\t\tvalue = math.clamp((value - min) / (max - min), 0, 1);\n\t\tFloatPacking.float2Bytes(value, array, offset, numBytes);\n\t}\n\tstatic float2MantissaExponent(value, array, offset, numBytes) {\n\t\tconst exponent = Math.floor(Math.log2(Math.abs(value))) + 1;\n\t\tvalue /= Math.pow(2, exponent);\n\t\tFloatPacking.float2BytesRange(value, array, offset, -1, 1, numBytes - 1);\n\t\tarray[offset + numBytes - 1] = Math.round(exponent + 127);\n\t}\n}\n\nvar _Vec$2;\nclass Vec3 {\n\tconstructor(x = 0, y = 0, z = 0) {\n\t\tthis.x = void 0;\n\t\tthis.y = void 0;\n\t\tthis.z = void 0;\n\t\tif (x.length === 3) {\n\t\t\tthis.x = x[0];\n\t\t\tthis.y = x[1];\n\t\t\tthis.z = x[2];\n\t\t} else {\n\t\t\tthis.x = x;\n\t\t\tthis.y = y;\n\t\t\tthis.z = z;\n\t\t}\n\t}\n\tadd(rhs) {\n\t\tthis.x += rhs.x;\n\t\tthis.y += rhs.y;\n\t\tthis.z += rhs.z;\n\t\treturn this;\n\t}\n\tadd2(lhs, rhs) {\n\t\tthis.x = lhs.x + rhs.x;\n\t\tthis.y = lhs.y + rhs.y;\n\t\tthis.z = lhs.z + rhs.z;\n\t\treturn this;\n\t}\n\taddScalar(scalar) {\n\t\tthis.x += scalar;\n\t\tthis.y += scalar;\n\t\tthis.z += scalar;\n\t\treturn this;\n\t}\n\taddScaled(rhs, scalar) {\n\t\tthis.x += rhs.x * scalar;\n\t\tthis.y += rhs.y * scalar;\n\t\tthis.z += rhs.z * scalar;\n\t\treturn this;\n\t}\n\tclone() {\n\t\tconst cstr = this.constructor;\n\t\treturn new cstr(this.x, this.y, this.z);\n\t}\n\tcopy(rhs) {\n\t\tthis.x = rhs.x;\n\t\tthis.y = rhs.y;\n\t\tthis.z = rhs.z;\n\t\treturn this;\n\t}\n\tcross(lhs, rhs) {\n\t\tconst lx = lhs.x;\n\t\tconst ly = lhs.y;\n\t\tconst lz = lhs.z;\n\t\tconst rx = rhs.x;\n\t\tconst ry = rhs.y;\n\t\tconst rz = rhs.z;\n\t\tthis.x = ly * rz - ry * lz;\n\t\tthis.y = lz * rx - rz * lx;\n\t\tthis.z = lx * ry - rx * ly;\n\t\treturn this;\n\t}\n\tdistance(rhs) {\n\t\tconst x = this.x - rhs.x;\n\t\tconst y = this.y - rhs.y;\n\t\tconst z = this.z - rhs.z;\n\t\treturn Math.sqrt(x * x + y * y + z * z);\n\t}\n\tdiv(rhs) {\n\t\tthis.x /= rhs.x;\n\t\tthis.y /= rhs.y;\n\t\tthis.z /= rhs.z;\n\t\treturn this;\n\t}\n\tdiv2(lhs, rhs) {\n\t\tthis.x = lhs.x / rhs.x;\n\t\tthis.y = lhs.y / rhs.y;\n\t\tthis.z = lhs.z / rhs.z;\n\t\treturn this;\n\t}\n\tdivScalar(scalar) {\n\t\tthis.x /= scalar;\n\t\tthis.y /= scalar;\n\t\tthis.z /= scalar;\n\t\treturn this;\n\t}\n\tdot(rhs) {\n\t\treturn this.x * rhs.x + this.y * rhs.y + this.z * rhs.z;\n\t}\n\tequals(rhs) {\n\t\treturn this.x === rhs.x && this.y === rhs.y && this.z === rhs.z;\n\t}\n\tequalsApprox(rhs, epsilon = 1e-6) {\n\t\treturn Math.abs(this.x - rhs.x) < epsilon && Math.abs(this.y - rhs.y) < epsilon && Math.abs(this.z - rhs.z) < epsilon;\n\t}\n\tlength() {\n\t\treturn Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);\n\t}\n\tlengthSq() {\n\t\treturn this.x * this.x + this.y * this.y + this.z * this.z;\n\t}\n\tlerp(lhs, rhs, alpha) {\n\t\tthis.x = lhs.x + alpha * (rhs.x - lhs.x);\n\t\tthis.y = lhs.y + alpha * (rhs.y - lhs.y);\n\t\tthis.z = lhs.z + alpha * (rhs.z - lhs.z);\n\t\treturn this;\n\t}\n\tmul(rhs) {\n\t\tthis.x *= rhs.x;\n\t\tthis.y *= rhs.y;\n\t\tthis.z *= rhs.z;\n\t\treturn this;\n\t}\n\tmul2(lhs, rhs) {\n\t\tthis.x = lhs.x * rhs.x;\n\t\tthis.y = lhs.y * rhs.y;\n\t\tthis.z = lhs.z * rhs.z;\n\t\treturn this;\n\t}\n\tmulScalar(scalar) {\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\t\tthis.z *= scalar;\n\t\treturn this;\n\t}\n\tnormalize(src = this) {\n\t\tconst lengthSq = src.x * src.x + src.y * src.y + src.z * src.z;\n\t\tif (lengthSq > 0) {\n\t\t\tconst invLength = 1 / Math.sqrt(lengthSq);\n\t\t\tthis.x = src.x * invLength;\n\t\t\tthis.y = src.y * invLength;\n\t\t\tthis.z = src.z * invLength;\n\t\t}\n\t\treturn this;\n\t}\n\tfloor(src = this) {\n\t\tthis.x = Math.floor(src.x);\n\t\tthis.y = Math.floor(src.y);\n\t\tthis.z = Math.floor(src.z);\n\t\treturn this;\n\t}\n\tceil(src = this) {\n\t\tthis.x = Math.ceil(src.x);\n\t\tthis.y = Math.ceil(src.y);\n\t\tthis.z = Math.ceil(src.z);\n\t\treturn this;\n\t}\n\tround(src = this) {\n\t\tthis.x = Math.round(src.x);\n\t\tthis.y = Math.round(src.y);\n\t\tthis.z = Math.round(src.z);\n\t\treturn this;\n\t}\n\tmin(rhs) {\n\t\tif (rhs.x < this.x) this.x = rhs.x;\n\t\tif (rhs.y < this.y) this.y = rhs.y;\n\t\tif (rhs.z < this.z) this.z = rhs.z;\n\t\treturn this;\n\t}\n\tmax(rhs) {\n\t\tif (rhs.x > this.x) this.x = rhs.x;\n\t\tif (rhs.y > this.y) this.y = rhs.y;\n\t\tif (rhs.z > this.z) this.z = rhs.z;\n\t\treturn this;\n\t}\n\tproject(rhs) {\n\t\tconst a_dot_b = this.x * rhs.x + this.y * rhs.y + this.z * rhs.z;\n\t\tconst b_dot_b = rhs.x * rhs.x + rhs.y * rhs.y + rhs.z * rhs.z;\n\t\tconst s = a_dot_b / b_dot_b;\n\t\tthis.x = rhs.x * s;\n\t\tthis.y = rhs.y * s;\n\t\tthis.z = rhs.z * s;\n\t\treturn this;\n\t}\n\tset(x, y, z) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\t\treturn this;\n\t}\n\tsub(rhs) {\n\t\tthis.x -= rhs.x;\n\t\tthis.y -= rhs.y;\n\t\tthis.z -= rhs.z;\n\t\treturn this;\n\t}\n\tsub2(lhs, rhs) {\n\t\tthis.x = lhs.x - rhs.x;\n\t\tthis.y = lhs.y - rhs.y;\n\t\tthis.z = lhs.z - rhs.z;\n\t\treturn this;\n\t}\n\tsubScalar(scalar) {\n\t\tthis.x -= scalar;\n\t\tthis.y -= scalar;\n\t\tthis.z -= scalar;\n\t\treturn this;\n\t}\n\tfromArray(arr, offset = 0) {\n\t\tvar _arr$offset, _arr, _arr2;\n\t\tthis.x = (_arr$offset = arr[offset]) != null ? _arr$offset : this.x;\n\t\tthis.y = (_arr = arr[offset + 1]) != null ? _arr : this.y;\n\t\tthis.z = (_arr2 = arr[offset + 2]) != null ? _arr2 : this.z;\n\t\treturn this;\n\t}\n\ttoString() {\n\t\treturn `[${this.x}, ${this.y}, ${this.z}]`;\n\t}\n\ttoArray(arr = [], offset = 0) {\n\t\tarr[offset] = this.x;\n\t\tarr[offset + 1] = this.y;\n\t\tarr[offset + 2] = this.z;\n\t\treturn arr;\n\t}\n}\n_Vec$2 = Vec3;\nVec3.ZERO = Object.freeze(new _Vec$2(0, 0, 0));\nVec3.ONE = Object.freeze(new _Vec$2(1, 1, 1));\nVec3.UP = Object.freeze(new _Vec$2(0, 1, 0));\nVec3.DOWN = Object.freeze(new _Vec$2(0, -1, 0));\nVec3.RIGHT = Object.freeze(new _Vec$2(1, 0, 0));\nVec3.LEFT = Object.freeze(new _Vec$2(-1, 0, 0));\nVec3.FORWARD = Object.freeze(new _Vec$2(0, 0, -1));\nVec3.BACK = Object.freeze(new _Vec$2(0, 0, 1));\n\nvar _Mat$1;\nclass Mat3 {\n\tconstructor() {\n\t\tthis.data = new Float32Array(9);\n\t\tthis.data[0] = this.data[4] = this.data[8] = 1;\n\t}\n\tclone() {\n\t\tconst cstr = this.constructor;\n\t\treturn new cstr().copy(this);\n\t}\n\tcopy(rhs) {\n\t\tconst src = rhs.data;\n\t\tconst dst = this.data;\n\t\tdst[0] = src[0];\n\t\tdst[1] = src[1];\n\t\tdst[2] = src[2];\n\t\tdst[3] = src[3];\n\t\tdst[4] = src[4];\n\t\tdst[5] = src[5];\n\t\tdst[6] = src[6];\n\t\tdst[7] = src[7];\n\t\tdst[8] = src[8];\n\t\treturn this;\n\t}\n\tset(src) {\n\t\tconst dst = this.data;\n\t\tdst[0] = src[0];\n\t\tdst[1] = src[1];\n\t\tdst[2] = src[2];\n\t\tdst[3] = src[3];\n\t\tdst[4] = src[4];\n\t\tdst[5] = src[5];\n\t\tdst[6] = src[6];\n\t\tdst[7] = src[7];\n\t\tdst[8] = src[8];\n\t\treturn this;\n\t}\n\tgetX(x = new Vec3()) {\n\t\treturn x.set(this.data[0], this.data[1], this.data[2]);\n\t}\n\tgetY(y = new Vec3()) {\n\t\treturn y.set(this.data[3], this.data[4], this.data[5]);\n\t}\n\tgetZ(z = new Vec3()) {\n\t\treturn z.set(this.data[6], this.data[7], this.data[8]);\n\t}\n\tequals(rhs) {\n\t\tconst l = this.data;\n\t\tconst r = rhs.data;\n\t\treturn l[0] === r[0] && l[1] === r[1] && l[2] === r[2] && l[3] === r[3] && l[4] === r[4] && l[5] === r[5] && l[6] === r[6] && l[7] === r[7] && l[8] === r[8];\n\t}\n\tisIdentity() {\n\t\tconst m = this.data;\n\t\treturn m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 0 && m[4] === 1 && m[5] === 0 && m[6] === 0 && m[7] === 0 && m[8] === 1;\n\t}\n\tsetIdentity() {\n\t\tconst m = this.data;\n\t\tm[0] = 1;\n\t\tm[1] = 0;\n\t\tm[2] = 0;\n\t\tm[3] = 0;\n\t\tm[4] = 1;\n\t\tm[5] = 0;\n\t\tm[6] = 0;\n\t\tm[7] = 0;\n\t\tm[8] = 1;\n\t\treturn this;\n\t}\n\ttoString() {\n\t\treturn `[${this.data.join(', ')}]`;\n\t}\n\ttranspose(src = this) {\n\t\tconst s = src.data;\n\t\tconst t = this.data;\n\t\tif (s === t) {\n\t\t\tlet tmp;\n\t\t\ttmp = s[1];\n\t\t\tt[1] = s[3];\n\t\t\tt[3] = tmp;\n\t\t\ttmp = s[2];\n\t\t\tt[2] = s[6];\n\t\t\tt[6] = tmp;\n\t\t\ttmp = s[5];\n\t\t\tt[5] = s[7];\n\t\t\tt[7] = tmp;\n\t\t} else {\n\t\t\tt[0] = s[0];\n\t\t\tt[1] = s[3];\n\t\t\tt[2] = s[6];\n\t\t\tt[3] = s[1];\n\t\t\tt[4] = s[4];\n\t\t\tt[5] = s[7];\n\t\t\tt[6] = s[2];\n\t\t\tt[7] = s[5];\n\t\t\tt[8] = s[8];\n\t\t}\n\t\treturn this;\n\t}\n\tsetFromMat4(m) {\n\t\tconst src = m.data;\n\t\tconst dst = this.data;\n\t\tdst[0] = src[0];\n\t\tdst[1] = src[1];\n\t\tdst[2] = src[2];\n\t\tdst[3] = src[4];\n\t\tdst[4] = src[5];\n\t\tdst[5] = src[6];\n\t\tdst[6] = src[8];\n\t\tdst[7] = src[9];\n\t\tdst[8] = src[10];\n\t\treturn this;\n\t}\n\tsetFromQuat(r) {\n\t\tconst qx = r.x;\n\t\tconst qy = r.y;\n\t\tconst qz = r.z;\n\t\tconst qw = r.w;\n\t\tconst x2 = qx + qx;\n\t\tconst y2 = qy + qy;\n\t\tconst z2 = qz + qz;\n\t\tconst xx = qx * x2;\n\t\tconst xy = qx * y2;\n\t\tconst xz = qx * z2;\n\t\tconst yy = qy * y2;\n\t\tconst yz = qy * z2;\n\t\tconst zz = qz * z2;\n\t\tconst wx = qw * x2;\n\t\tconst wy = qw * y2;\n\t\tconst wz = qw * z2;\n\t\tconst m = this.data;\n\t\tm[0] = 1 - (yy + zz);\n\t\tm[1] = xy + wz;\n\t\tm[2] = xz - wy;\n\t\tm[3] = xy - wz;\n\t\tm[4] = 1 - (xx + zz);\n\t\tm[5] = yz + wx;\n\t\tm[6] = xz + wy;\n\t\tm[7] = yz - wx;\n\t\tm[8] = 1 - (xx + yy);\n\t\treturn this;\n\t}\n\tinvertMat4(src) {\n\t\tconst s = src.data;\n\t\tconst a0 = s[0];\n\t\tconst a1 = s[1];\n\t\tconst a2 = s[2];\n\t\tconst a4 = s[4];\n\t\tconst a5 = s[5];\n\t\tconst a6 = s[6];\n\t\tconst a8 = s[8];\n\t\tconst a9 = s[9];\n\t\tconst a10 = s[10];\n\t\tconst b11 = a10 * a5 - a6 * a9;\n\t\tconst b21 = -a10 * a1 + a2 * a9;\n\t\tconst b31 = a6 * a1 - a2 * a5;\n\t\tconst b12 = -a10 * a4 + a6 * a8;\n\t\tconst b22 = a10 * a0 - a2 * a8;\n\t\tconst b32 = -a6 * a0 + a2 * a4;\n\t\tconst b13 = a9 * a4 - a5 * a8;\n\t\tconst b23 = -a9 * a0 + a1 * a8;\n\t\tconst b33 = a5 * a0 - a1 * a4;\n\t\tconst det = a0 * b11 + a1 * b12 + a2 * b13;\n\t\tif (det === 0) {\n\t\t\tthis.setIdentity();\n\t\t} else {\n\t\t\tconst invDet = 1 / det;\n\t\t\tconst t = this.data;\n\t\t\tt[0] = b11 * invDet;\n\t\t\tt[1] = b21 * invDet;\n\t\t\tt[2] = b31 * invDet;\n\t\t\tt[3] = b12 * invDet;\n\t\t\tt[4] = b22 * invDet;\n\t\t\tt[5] = b32 * invDet;\n\t\t\tt[6] = b13 * invDet;\n\t\t\tt[7] = b23 * invDet;\n\t\t\tt[8] = b33 * invDet;\n\t\t}\n\t\treturn this;\n\t}\n\ttransformVector(vec, res = new Vec3()) {\n\t\tconst m = this.data;\n\t\tconst {\n\t\t\tx,\n\t\t\ty,\n\t\t\tz\n\t\t} = vec;\n\t\tres.x = x * m[0] + y * m[3] + z * m[6];\n\t\tres.y = x * m[1] + y * m[4] + z * m[7];\n\t\tres.z = x * m[2] + y * m[5] + z * m[8];\n\t\treturn res;\n\t}\n}\n_Mat$1 = Mat3;\nMat3.IDENTITY = Object.freeze(new _Mat$1());\nMat3.ZERO = Object.freeze(new _Mat$1().set([0, 0, 0, 0, 0, 0, 0, 0, 0]));\n\nvar _Vec$1;\nclass Vec2 {\n\tconstructor(x = 0, y = 0) {\n\t\tthis.x = void 0;\n\t\tthis.y = void 0;\n\t\tif (x.length === 2) {\n\t\t\tthis.x = x[0];\n\t\t\tthis.y = x[1];\n\t\t} else {\n\t\t\tthis.x = x;\n\t\t\tthis.y = y;\n\t\t}\n\t}\n\tadd(rhs) {\n\t\tthis.x += rhs.x;\n\t\tthis.y += rhs.y;\n\t\treturn this;\n\t}\n\tadd2(lhs, rhs) {\n\t\tthis.x = lhs.x + rhs.x;\n\t\tthis.y = lhs.y + rhs.y;\n\t\treturn this;\n\t}\n\taddScalar(scalar) {\n\t\tthis.x += scalar;\n\t\tthis.y += scalar;\n\t\treturn this;\n\t}\n\taddScaled(rhs, scalar) {\n\t\tthis.x += rhs.x * scalar;\n\t\tthis.y += rhs.y * scalar;\n\t\treturn this;\n\t}\n\tclone() {\n\t\tconst cstr = this.constructor;\n\t\treturn new cstr(this.x, this.y);\n\t}\n\tcopy(rhs) {\n\t\tthis.x = rhs.x;\n\t\tthis.y = rhs.y;\n\t\treturn this;\n\t}\n\tcross(rhs) {\n\t\treturn this.x * rhs.y - this.y * rhs.x;\n\t}\n\tdistance(rhs) {\n\t\tconst x = this.x - rhs.x;\n\t\tconst y = this.y - rhs.y;\n\t\treturn Math.sqrt(x * x + y * y);\n\t}\n\tdiv(rhs) {\n\t\tthis.x /= rhs.x;\n\t\tthis.y /= rhs.y;\n\t\treturn this;\n\t}\n\tdiv2(lhs, rhs) {\n\t\tthis.x = lhs.x / rhs.x;\n\t\tthis.y = lhs.y / rhs.y;\n\t\treturn this;\n\t}\n\tdivScalar(scalar) {\n\t\tthis.x /= scalar;\n\t\tthis.y /= scalar;\n\t\treturn this;\n\t}\n\tdot(rhs) {\n\t\treturn this.x * rhs.x + this.y * rhs.y;\n\t}\n\tequals(rhs) {\n\t\treturn this.x === rhs.x && this.y === rhs.y;\n\t}\n\tequalsApprox(rhs, epsilon = 1e-6) {\n\t\treturn Math.abs(this.x - rhs.x) < epsilon && Math.abs(this.y - rhs.y) < epsilon;\n\t}\n\tlength() {\n\t\treturn Math.sqrt(this.x * this.x + this.y * this.y);\n\t}\n\tlengthSq() {\n\t\treturn this.x * this.x + this.y * this.y;\n\t}\n\tlerp(lhs, rhs, alpha) {\n\t\tthis.x = lhs.x + alpha * (rhs.x - lhs.x);\n\t\tthis.y = lhs.y + alpha * (rhs.y - lhs.y);\n\t\treturn this;\n\t}\n\tmul(rhs) {\n\t\tthis.x *= rhs.x;\n\t\tthis.y *= rhs.y;\n\t\treturn this;\n\t}\n\tmul2(lhs, rhs) {\n\t\tthis.x = lhs.x * rhs.x;\n\t\tthis.y = lhs.y * rhs.y;\n\t\treturn this;\n\t}\n\tmulScalar(scalar) {\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\t\treturn this;\n\t}\n\tnormalize(src = this) {\n\t\tconst lengthSq = src.x * src.x + src.y * src.y;\n\t\tif (lengthSq > 0) {\n\t\t\tconst invLength = 1 / Math.sqrt(lengthSq);\n\t\t\tthis.x = src.x * invLength;\n\t\t\tthis.y = src.y * invLength;\n\t\t}\n\t\treturn this;\n\t}\n\trotate(degrees) {\n\t\tconst angle = Math.atan2(this.x, this.y) + degrees * math.DEG_TO_RAD;\n\t\tconst len = Math.sqrt(this.x * this.x + this.y * this.y);\n\t\tthis.x = Math.sin(angle) * len;\n\t\tthis.y = Math.cos(angle) * len;\n\t\treturn this;\n\t}\n\tangle() {\n\t\treturn Math.atan2(this.x, this.y) * math.RAD_TO_DEG;\n\t}\n\tangleTo(rhs) {\n\t\treturn Math.atan2(this.x * rhs.y + this.y * rhs.x, this.x * rhs.x + this.y * rhs.y) * math.RAD_TO_DEG;\n\t}\n\tfloor(src = this) {\n\t\tthis.x = Math.floor(src.x);\n\t\tthis.y = Math.floor(src.y);\n\t\treturn this;\n\t}\n\tceil(src = this) {\n\t\tthis.x = Math.ceil(src.x);\n\t\tthis.y = Math.ceil(src.y);\n\t\treturn this;\n\t}\n\tround(src = this) {\n\t\tthis.x = Math.round(src.x);\n\t\tthis.y = Math.round(src.y);\n\t\treturn this;\n\t}\n\tmin(rhs) {\n\t\tif (rhs.x < this.x) this.x = rhs.x;\n\t\tif (rhs.y < this.y) this.y = rhs.y;\n\t\treturn this;\n\t}\n\tmax(rhs) {\n\t\tif (rhs.x > this.x) this.x = rhs.x;\n\t\tif (rhs.y > this.y) this.y = rhs.y;\n\t\treturn this;\n\t}\n\tset(x, y) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\treturn this;\n\t}\n\tsub(rhs) {\n\t\tthis.x -= rhs.x;\n\t\tthis.y -= rhs.y;\n\t\treturn this;\n\t}\n\tsub2(lhs, rhs) {\n\t\tthis.x = lhs.x - rhs.x;\n\t\tthis.y = lhs.y - rhs.y;\n\t\treturn this;\n\t}\n\tsubScalar(scalar) {\n\t\tthis.x -= scalar;\n\t\tthis.y -= scalar;\n\t\treturn this;\n\t}\n\tfromArray(arr, offset = 0) {\n\t\tvar _arr$offset, _arr;\n\t\tthis.x = (_arr$offset = arr[offset]) != null ? _arr$offset : this.x;\n\t\tthis.y = (_arr = arr[offset + 1]) != null ? _arr : this.y;\n\t\treturn this;\n\t}\n\ttoString() {\n\t\treturn `[${this.x}, ${this.y}]`;\n\t}\n\ttoArray(arr = [], offset = 0) {\n\t\tarr[offset] = this.x;\n\t\tarr[offset + 1] = this.y;\n\t\treturn arr;\n\t}\n\tstatic angleRad(lhs, rhs) {\n\t\treturn Math.atan2(lhs.x * rhs.y - lhs.y * rhs.x, lhs.x * rhs.x + lhs.y * rhs.y);\n\t}\n}\n_Vec$1 = Vec2;\nVec2.ZERO = Object.freeze(new _Vec$1(0, 0));\nVec2.ONE = Object.freeze(new _Vec$1(1, 1));\nVec2.UP = Object.freeze(new _Vec$1(0, 1));\nVec2.DOWN = Object.freeze(new _Vec$1(0, -1));\nVec2.RIGHT = Object.freeze(new _Vec$1(1, 0));\nVec2.LEFT = Object.freeze(new _Vec$1(-1, 0));\n\nvar _Vec;\nclass Vec4 {\n\tconstructor(x = 0, y = 0, z = 0, w = 0) {\n\t\tthis.x = void 0;\n\t\tthis.y = void 0;\n\t\tthis.z = void 0;\n\t\tthis.w = void 0;\n\t\tif (x.length === 4) {\n\t\t\tthis.x = x[0];\n\t\t\tthis.y = x[1];\n\t\t\tthis.z = x[2];\n\t\t\tthis.w = x[3];\n\t\t} else {\n\t\t\tthis.x = x;\n\t\t\tthis.y = y;\n\t\t\tthis.z = z;\n\t\t\tthis.w = w;\n\t\t}\n\t}\n\tadd(rhs) {\n\t\tthis.x += rhs.x;\n\t\tthis.y += rhs.y;\n\t\tthis.z += rhs.z;\n\t\tthis.w += rhs.w;\n\t\treturn this;\n\t}\n\tadd2(lhs, rhs) {\n\t\tthis.x = lhs.x + rhs.x;\n\t\tthis.y = lhs.y + rhs.y;\n\t\tthis.z = lhs.z + rhs.z;\n\t\tthis.w = lhs.w + rhs.w;\n\t\treturn this;\n\t}\n\taddScalar(scalar) {\n\t\tthis.x += scalar;\n\t\tthis.y += scalar;\n\t\tthis.z += scalar;\n\t\tthis.w += scalar;\n\t\treturn this;\n\t}\n\taddScaled(rhs, scalar) {\n\t\tthis.x += rhs.x * scalar;\n\t\tthis.y += rhs.y * scalar;\n\t\tthis.z += rhs.z * scalar;\n\t\tthis.w += rhs.w * scalar;\n\t\treturn this;\n\t}\n\tclone() {\n\t\tconst cstr = this.constructor;\n\t\treturn new cstr(this.x, this.y, this.z, this.w);\n\t}\n\tcopy(rhs) {\n\t\tthis.x = rhs.x;\n\t\tthis.y = rhs.y;\n\t\tthis.z = rhs.z;\n\t\tthis.w = rhs.w;\n\t\treturn this;\n\t}\n\tdiv(rhs) {\n\t\tthis.x /= rhs.x;\n\t\tthis.y /= rhs.y;\n\t\tthis.z /= rhs.z;\n\t\tthis.w /= rhs.w;\n\t\treturn this;\n\t}\n\tdiv2(lhs, rhs) {\n\t\tthis.x = lhs.x / rhs.x;\n\t\tthis.y = lhs.y / rhs.y;\n\t\tthis.z = lhs.z / rhs.z;\n\t\tthis.w = lhs.w / rhs.w;\n\t\treturn this;\n\t}\n\tdivScalar(scalar) {\n\t\tthis.x /= scalar;\n\t\tthis.y /= scalar;\n\t\tthis.z /= scalar;\n\t\tthis.w /= scalar;\n\t\treturn this;\n\t}\n\tdot(rhs) {\n\t\treturn this.x * rhs.x + this.y * rhs.y + this.z * rhs.z + this.w * rhs.w;\n\t}\n\tequals(rhs) {\n\t\treturn this.x === rhs.x && this.y === rhs.y && this.z === rhs.z && this.w === rhs.w;\n\t}\n\tequalsApprox(rhs, epsilon = 1e-6) {\n\t\treturn Math.abs(this.x - rhs.x) < epsilon && Math.abs(this.y - rhs.y) < epsilon && Math.abs(this.z - rhs.z) < epsilon && Math.abs(this.w - rhs.w) < epsilon;\n\t}\n\tlength() {\n\t\treturn Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w);\n\t}\n\tlengthSq() {\n\t\treturn this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;\n\t}\n\tlerp(lhs, rhs, alpha) {\n\t\tthis.x = lhs.x + alpha * (rhs.x - lhs.x);\n\t\tthis.y = lhs.y + alpha * (rhs.y - lhs.y);\n\t\tthis.z = lhs.z + alpha * (rhs.z - lhs.z);\n\t\tthis.w = lhs.w + alpha * (rhs.w - lhs.w);\n\t\treturn this;\n\t}\n\tmul(rhs) {\n\t\tthis.x *= rhs.x;\n\t\tthis.y *= rhs.y;\n\t\tthis.z *= rhs.z;\n\t\tthis.w *= rhs.w;\n\t\treturn this;\n\t}\n\tmul2(lhs, rhs) {\n\t\tthis.x = lhs.x * rhs.x;\n\t\tthis.y = lhs.y * rhs.y;\n\t\tthis.z = lhs.z * rhs.z;\n\t\tthis.w = lhs.w * rhs.w;\n\t\treturn this;\n\t}\n\tmulScalar(scalar) {\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\t\tthis.z *= scalar;\n\t\tthis.w *= scalar;\n\t\treturn this;\n\t}\n\tnormalize(src = this) {\n\t\tconst lengthSq = src.x * src.x + src.y * src.y + src.z * src.z + src.w * src.w;\n\t\tif (lengthSq > 0) {\n\t\t\tconst invLength = 1 / Math.sqrt(lengthSq);\n\t\t\tthis.x = src.x * invLength;\n\t\t\tthis.y = src.y * invLength;\n\t\t\tthis.z = src.z * invLength;\n\t\t\tthis.w = src.w * invLength;\n\t\t}\n\t\treturn this;\n\t}\n\tfloor(src = this) {\n\t\tthis.x = Math.floor(src.x);\n\t\tthis.y = Math.floor(src.y);\n\t\tthis.z = Math.floor(src.z);\n\t\tthis.w = Math.floor(src.w);\n\t\treturn this;\n\t}\n\tceil(src = this) {\n\t\tthis.x = Math.ceil(src.x);\n\t\tthis.y = Math.ceil(src.y);\n\t\tthis.z = Math.ceil(src.z);\n\t\tthis.w = Math.ceil(src.w);\n\t\treturn this;\n\t}\n\tround(src = this) {\n\t\tthis.x = Math.round(src.x);\n\t\tthis.y = Math.round(src.y);\n\t\tthis.z = Math.round(src.z);\n\t\tthis.w = Math.round(src.w);\n\t\treturn this;\n\t}\n\tmin(rhs) {\n\t\tif (rhs.x < this.x) this.x = rhs.x;\n\t\tif (rhs.y < this.y) this.y = rhs.y;\n\t\tif (rhs.z < this.z) this.z = rhs.z;\n\t\tif (rhs.w < this.w) this.w = rhs.w;\n\t\treturn this;\n\t}\n\tmax(rhs) {\n\t\tif (rhs.x > this.x) this.x = rhs.x;\n\t\tif (rhs.y > this.y) this.y = rhs.y;\n\t\tif (rhs.z > this.z) this.z = rhs.z;\n\t\tif (rhs.w > this.w) this.w = rhs.w;\n\t\treturn this;\n\t}\n\tset(x, y, z, w) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\t\tthis.w = w;\n\t\treturn this;\n\t}\n\tsub(rhs) {\n\t\tthis.x -= rhs.x;\n\t\tthis.y -= rhs.y;\n\t\tthis.z -= rhs.z;\n\t\tthis.w -= rhs.w;\n\t\treturn this;\n\t}\n\tsub2(lhs, rhs) {\n\t\tthis.x = lhs.x - rhs.x;\n\t\tthis.y = lhs.y - rhs.y;\n\t\tthis.z = lhs.z - rhs.z;\n\t\tthis.w = lhs.w - rhs.w;\n\t\treturn this;\n\t}\n\tsubScalar(scalar) {\n\t\tthis.x -= scalar;\n\t\tthis.y -= scalar;\n\t\tthis.z -= scalar;\n\t\tthis.w -= scalar;\n\t\treturn this;\n\t}\n\tfromArray(arr, offset = 0) {\n\t\tvar _arr$offset, _arr, _arr2, _arr3;\n\t\tthis.x = (_arr$offset = arr[offset]) != null ? _arr$offset : this.x;\n\t\tthis.y = (_arr = arr[offset + 1]) != null ? _arr : this.y;\n\t\tthis.z = (_arr2 = arr[offset + 2]) != null ? _arr2 : this.z;\n\t\tthis.w = (_arr3 = arr[offset + 3]) != null ? _arr3 : this.w;\n\t\treturn this;\n\t}\n\ttoString() {\n\t\treturn `[${this.x}, ${this.y}, ${this.z}, ${this.w}]`;\n\t}\n\ttoArray(arr = [], offset = 0) {\n\t\tarr[offset] = this.x;\n\t\tarr[offset + 1] = this.y;\n\t\tarr[offset + 2] = this.z;\n\t\tarr[offset + 3] = this.w;\n\t\treturn arr;\n\t}\n}\n_Vec = Vec4;\nVec4.ZERO = Object.freeze(new _Vec(0, 0, 0, 0));\nVec4.ONE = Object.freeze(new _Vec(1, 1, 1, 1));\n\nvar _Mat;\nconst _halfSize$1 = new Vec2();\nconst x$1 = new Vec3();\nconst y = new Vec3();\nconst z = new Vec3();\nconst scale = new Vec3();\nclass Mat4 {\n\tconstructor() {\n\t\tthis.data = new Float32Array(16);\n\t\tthis.data[0] = this.data[5] = this.data[10] = this.data[15] = 1;\n\t}\n\tstatic _getPerspectiveHalfSize(halfSize, fov, aspect, znear, fovIsHorizontal) {\n\t\tif (fovIsHorizontal) {\n\t\t\thalfSize.x = znear * Math.tan(fov * Math.PI / 360);\n\t\t\thalfSize.y = halfSize.x / aspect;\n\t\t} else {\n\t\t\thalfSize.y = znear * Math.tan(fov * Math.PI / 360);\n\t\t\thalfSize.x = halfSize.y * aspect;\n\t\t}\n\t}\n\tadd2(lhs, rhs) {\n\t\tconst a = lhs.data,\n\t\t\tb = rhs.data,\n\t\t\tr = this.data;\n\t\tr[0] = a[0] + b[0];\n\t\tr[1] = a[1] + b[1];\n\t\tr[2] = a[2] + b[2];\n\t\tr[3] = a[3] + b[3];\n\t\tr[4] = a[4] + b[4];\n\t\tr[5] = a[5] + b[5];\n\t\tr[6] = a[6] + b[6];\n\t\tr[7] = a[7] + b[7];\n\t\tr[8] = a[8] + b[8];\n\t\tr[9] = a[9] + b[9];\n\t\tr[10] = a[10] + b[10];\n\t\tr[11] = a[11] + b[11];\n\t\tr[12] = a[12] + b[12];\n\t\tr[13] = a[13] + b[13];\n\t\tr[14] = a[14] + b[14];\n\t\tr[15] = a[15] + b[15];\n\t\treturn this;\n\t}\n\tadd(rhs) {\n\t\treturn this.add2(this, rhs);\n\t}\n\tclone() {\n\t\tconst cstr = this.constructor;\n\t\treturn new cstr().copy(this);\n\t}\n\tcopy(rhs) {\n\t\tconst src = rhs.data,\n\t\t\tdst = this.data;\n\t\tdst[0] = src[0];\n\t\tdst[1] = src[1];\n\t\tdst[2] = src[2];\n\t\tdst[3] = src[3];\n\t\tdst[4] = src[4];\n\t\tdst[5] = src[5];\n\t\tdst[6] = src[6];\n\t\tdst[7] = src[7];\n\t\tdst[8] = src[8];\n\t\tdst[9] = src[9];\n\t\tdst[10] = src[10];\n\t\tdst[11] = src[11];\n\t\tdst[12] = src[12];\n\t\tdst[13] = src[13];\n\t\tdst[14] = src[14];\n\t\tdst[15] = src[15];\n\t\treturn this;\n\t}\n\tequals(rhs) {\n\t\tconst l = this.data,\n\t\t\tr = rhs.data;\n\t\treturn l[0] === r[0] && l[1] === r[1] && l[2] === r[2] && l[3] === r[3] && l[4] === r[4] && l[5] === r[5] && l[6] === r[6] && l[7] === r[7] && l[8] === r[8] && l[9] === r[9] && l[10] === r[10] && l[11] === r[11] && l[12] === r[12] && l[13] === r[13] && l[14] === r[14] && l[15] === r[15];\n\t}\n\tisIdentity() {\n\t\tconst m = this.data;\n\t\treturn m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 0 && m[4] === 0 && m[5] === 1 && m[6] === 0 && m[7] === 0 && m[8] === 0 && m[9] === 0 && m[10] === 1 && m[11] === 0 && m[12] === 0 && m[13] === 0 && m[14] === 0 && m[15] === 1;\n\t}\n\tmul2(lhs, rhs) {\n\t\tconst a = lhs.data;\n\t\tconst b = rhs.data;\n\t\tconst r = this.data;\n\t\tconst a00 = a[0];\n\t\tconst a01 = a[1];\n\t\tconst a02 = a[2];\n\t\tconst a03 = a[3];\n\t\tconst a10 = a[4];\n\t\tconst a11 = a[5];\n\t\tconst a12 = a[6];\n\t\tconst a13 = a[7];\n\t\tconst a20 = a[8];\n\t\tconst a21 = a[9];\n\t\tconst a22 = a[10];\n\t\tconst a23 = a[11];\n\t\tconst a30 = a[12];\n\t\tconst a31 = a[13];\n\t\tconst a32 = a[14];\n\t\tconst a33 = a[15];\n\t\tlet b0, b1, b2, b3;\n\t\tb0 = b[0];\n\t\tb1 = b[1];\n\t\tb2 = b[2];\n\t\tb3 = b[3];\n\t\tr[0] = a00 * b0 + a10 * b1 + a20 * b2 + a30 * b3;\n\t\tr[1] = a01 * b0 + a11 * b1 + a21 * b2 + a31 * b3;\n\t\tr[2] = a02 * b0 + a12 * b1 + a22 * b2 + a32 * b3;\n\t\tr[3] = a03 * b0 + a13 * b1 + a23 * b2 + a33 * b3;\n\t\tb0 = b[4];\n\t\tb1 = b[5];\n\t\tb2 = b[6];\n\t\tb3 = b[7];\n\t\tr[4] = a00 * b0 + a10 * b1 + a20 * b2 + a30 * b3;\n\t\tr[5] = a01 * b0 + a11 * b1 + a21 * b2 + a31 * b3;\n\t\tr[6] = a02 * b0 + a12 * b1 + a22 * b2 + a32 * b3;\n\t\tr[7] = a03 * b0 + a13 * b1 + a23 * b2 + a33 * b3;\n\t\tb0 = b[8];\n\t\tb1 = b[9];\n\t\tb2 = b[10];\n\t\tb3 = b[11];\n\t\tr[8] = a00 * b0 + a10 * b1 + a20 * b2 + a30 * b3;\n\t\tr[9] = a01 * b0 + a11 * b1 + a21 * b2 + a31 * b3;\n\t\tr[10] = a02 * b0 + a12 * b1 + a22 * b2 + a32 * b3;\n\t\tr[11] = a03 * b0 + a13 * b1 + a23 * b2 + a33 * b3;\n\t\tb0 = b[12];\n\t\tb1 = b[13];\n\t\tb2 = b[14];\n\t\tb3 = b[15];\n\t\tr[12] = a00 * b0 + a10 * b1 + a20 * b2 + a30 * b3;\n\t\tr[13] = a01 * b0 + a11 * b1 + a21 * b2 + a31 * b3;\n\t\tr[14] = a02 * b0 + a12 * b1 + a22 * b2 + a32 * b3;\n\t\tr[15] = a03 * b0 + a13 * b1 + a23 * b2 + a33 * b3;\n\t\treturn this;\n\t}\n\tmulAffine2(lhs, rhs) {\n\t\tconst a = lhs.data;\n\t\tconst b = rhs.data;\n\t\tconst r = this.data;\n\t\tconst a00 = a[0];\n\t\tconst a01 = a[1];\n\t\tconst a02 = a[2];\n\t\tconst a10 = a[4];\n\t\tconst a11 = a[5];\n\t\tconst a12 = a[6];\n\t\tconst a20 = a[8];\n\t\tconst a21 = a[9];\n\t\tconst a22 = a[10];\n\t\tconst a30 = a[12];\n\t\tconst a31 = a[13];\n\t\tconst a32 = a[14];\n\t\tlet b0, b1, b2;\n\t\tb0 = b[0];\n\t\tb1 = b[1];\n\t\tb2 = b[2];\n\t\tr[0] = a00 * b0 + a10 * b1 + a20 * b2;\n\t\tr[1] = a01 * b0 + a11 * b1 + a21 * b2;\n\t\tr[2] = a02 * b0 + a12 * b1 + a22 * b2;\n\t\tr[3] = 0;\n\t\tb0 = b[4];\n\t\tb1 = b[5];\n\t\tb2 = b[6];\n\t\tr[4] = a00 * b0 + a10 * b1 + a20 * b2;\n\t\tr[5] = a01 * b0 + a11 * b1 + a21 * b2;\n\t\tr[6] = a02 * b0 + a12 * b1 + a22 * b2;\n\t\tr[7] = 0;\n\t\tb0 = b[8];\n\t\tb1 = b[9];\n\t\tb2 = b[10];\n\t\tr[8] = a00 * b0 + a10 * b1 + a20 * b2;\n\t\tr[9] = a01 * b0 + a11 * b1 + a21 * b2;\n\t\tr[10] = a02 * b0 + a12 * b1 + a22 * b2;\n\t\tr[11] = 0;\n\t\tb0 = b[12];\n\t\tb1 = b[13];\n\t\tb2 = b[14];\n\t\tr[12] = a00 * b0 + a10 * b1 + a20 * b2 + a30;\n\t\tr[13] = a01 * b0 + a11 * b1 + a21 * b2 + a31;\n\t\tr[14] = a02 * b0 + a12 * b1 + a22 * b2 + a32;\n\t\tr[15] = 1;\n\t\treturn this;\n\t}\n\tmul(rhs) {\n\t\treturn this.mul2(this, rhs);\n\t}\n\ttransformPoint(vec, res = new Vec3()) {\n\t\tconst m = this.data;\n\t\tconst {\n\t\t\tx,\n\t\t\ty,\n\t\t\tz\n\t\t} = vec;\n\t\tres.x = x * m[0] + y * m[4] + z * m[8] + m[12];\n\t\tres.y = x * m[1] + y * m[5] + z * m[9] + m[13];\n\t\tres.z = x * m[2] + y * m[6] + z * m[10] + m[14];\n\t\treturn res;\n\t}\n\ttransformVector(vec, res = new Vec3()) {\n\t\tconst m = this.data;\n\t\tconst {\n\t\t\tx,\n\t\t\ty,\n\t\t\tz\n\t\t} = vec;\n\t\tres.x = x * m[0] + y * m[4] + z * m[8];\n\t\tres.y = x * m[1] + y * m[5] + z * m[9];\n\t\tres.z = x * m[2] + y * m[6] + z * m[10];\n\t\treturn res;\n\t}\n\ttransformVec4(vec, res = new Vec4()) {\n\t\tconst m = this.data;\n\t\tconst {\n\t\t\tx,\n\t\t\ty,\n\t\t\tz,\n\t\t\tw\n\t\t} = vec;\n\t\tres.x = x * m[0] + y * m[4] + z * m[8] + w * m[12];\n\t\tres.y = x * m[1] + y * m[5] + z * m[9] + w * m[13];\n\t\tres.z = x * m[2] + y * m[6] + z * m[10] + w * m[14];\n\t\tres.w = x * m[3] + y * m[7] + z * m[11] + w * m[15];\n\t\treturn res;\n\t}\n\tsetLookAt(position, target, up) {\n\t\tz.sub2(position, target).normalize();\n\t\ty.copy(up).normalize();\n\t\tx$1.cross(y, z).normalize();\n\t\ty.cross(z, x$1);\n\t\tconst r = this.data;\n\t\tr[0] = x$1.x;\n\t\tr[1] = x$1.y;\n\t\tr[2] = x$1.z;\n\t\tr[3] = 0;\n\t\tr[4] = y.x;\n\t\tr[5] = y.y;\n\t\tr[6] = y.z;\n\t\tr[7] = 0;\n\t\tr[8] = z.x;\n\t\tr[9] = z.y;\n\t\tr[10] = z.z;\n\t\tr[11] = 0;\n\t\tr[12] = position.x;\n\t\tr[13] = position.y;\n\t\tr[14] = position.z;\n\t\tr[15] = 1;\n\t\treturn this;\n\t}\n\tsetFrustum(left, right, bottom, top, znear, zfar) {\n\t\tconst temp1 = 2 * znear;\n\t\tconst temp2 = right - left;\n\t\tconst temp3 = top - bottom;\n\t\tconst temp4 = zfar - znear;\n\t\tconst r = this.data;\n\t\tr[0] = temp1 / temp2;\n\t\tr[1] = 0;\n\t\tr[2] = 0;\n\t\tr[3] = 0;\n\t\tr[4] = 0;\n\t\tr[5] = temp1 / temp3;\n\t\tr[6] = 0;\n\t\tr[7] = 0;\n\t\tr[8] = (right + left) / temp2;\n\t\tr[9] = (top + bottom) / temp3;\n\t\tr[10] = (-zfar - znear) / temp4;\n\t\tr[11] = -1;\n\t\tr[12] = 0;\n\t\tr[13] = 0;\n\t\tr[14] = -temp1 * zfar / temp4;\n\t\tr[15] = 0;\n\t\treturn this;\n\t}\n\tsetPerspective(fov, aspect, znear, zfar, fovIsHorizontal) {\n\t\tMat4._getPerspectiveHalfSize(_halfSize$1, fov, aspect, znear, fovIsHorizontal);\n\t\treturn this.setFrustum(-_halfSize$1.x, _halfSize$1.x, -_halfSize$1.y, _halfSize$1.y, znear, zfar);\n\t}\n\tsetOrtho(left, right, bottom, top, near, far) {\n\t\tconst r = this.data;\n\t\tr[0] = 2 / (right - left);\n\t\tr[1] = 0;\n\t\tr[2] = 0;\n\t\tr[3] = 0;\n\t\tr[4] = 0;\n\t\tr[5] = 2 / (top - bottom);\n\t\tr[6] = 0;\n\t\tr[7] = 0;\n\t\tr[8] = 0;\n\t\tr[9] = 0;\n\t\tr[10] = -2 / (far - near);\n\t\tr[11] = 0;\n\t\tr[12] = -(right + left) / (right - left);\n\t\tr[13] = -(top + bottom) / (top - bottom);\n\t\tr[14] = -(far + near) / (far - near);\n\t\tr[15] = 1;\n\t\treturn this;\n\t}\n\tsetFromAxisAngle(axis, angle) {\n\t\tangle *= math.DEG_TO_RAD;\n\t\tconst {\n\t\t\tx,\n\t\t\ty,\n\t\t\tz\n\t\t} = axis;\n\t\tconst c = Math.cos(angle);\n\t\tconst s = Math.sin(angle);\n\t\tconst t = 1 - c;\n\t\tconst tx = t * x;\n\t\tconst ty = t * y;\n\t\tconst m = this.data;\n\t\tm[0] = tx * x + c;\n\t\tm[1] = tx * y + s * z;\n\t\tm[2] = tx * z - s * y;\n\t\tm[3] = 0;\n\t\tm[4] = tx * y - s * z;\n\t\tm[5] = ty * y + c;\n\t\tm[6] = ty * z + s * x;\n\t\tm[7] = 0;\n\t\tm[8] = tx * z + s * y;\n\t\tm[9] = ty * z - x * s;\n\t\tm[10] = t * z * z + c;\n\t\tm[11] = 0;\n\t\tm[12] = 0;\n\t\tm[13] = 0;\n\t\tm[14] = 0;\n\t\tm[15] = 1;\n\t\treturn this;\n\t}\n\tsetTranslate(x, y, z) {\n\t\tconst m = this.data;\n\t\tm[0] = 1;\n\t\tm[1] = 0;\n\t\tm[2] = 0;\n\t\tm[3] = 0;\n\t\tm[4] = 0;\n\t\tm[5] = 1;\n\t\tm[6] = 0;\n\t\tm[7] = 0;\n\t\tm[8] = 0;\n\t\tm[9] = 0;\n\t\tm[10] = 1;\n\t\tm[11] = 0;\n\t\tm[12] = x;\n\t\tm[13] = y;\n\t\tm[14] = z;\n\t\tm[15] = 1;\n\t\treturn this;\n\t}\n\tsetScale(x, y, z) {\n\t\tconst m = this.data;\n\t\tm[0] = x;\n\t\tm[1] = 0;\n\t\tm[2] = 0;\n\t\tm[3] = 0;\n\t\tm[4] = 0;\n\t\tm[5] = y;\n\t\tm[6] = 0;\n\t\tm[7] = 0;\n\t\tm[8] = 0;\n\t\tm[9] = 0;\n\t\tm[10] = z;\n\t\tm[11] = 0;\n\t\tm[12] = 0;\n\t\tm[13] = 0;\n\t\tm[14] = 0;\n\t\tm[15] = 1;\n\t\treturn this;\n\t}\n\tsetViewport(x, y, width, height) {\n\t\tconst m = this.data;\n\t\tm[0] = width * 0.5;\n\t\tm[1] = 0;\n\t\tm[2] = 0;\n\t\tm[3] = 0;\n\t\tm[4] = 0;\n\t\tm[5] = height * 0.5;\n\t\tm[6] = 0;\n\t\tm[7] = 0;\n\t\tm[8] = 0;\n\t\tm[9] = 0;\n\t\tm[10] = 0.5;\n\t\tm[11] = 0;\n\t\tm[12] = x + width * 0.5;\n\t\tm[13] = y + height * 0.5;\n\t\tm[14] = 0.5;\n\t\tm[15] = 1;\n\t\treturn this;\n\t}\n\tsetReflection(normal, distance) {\n\t\tconst a = normal.x;\n\t\tconst b = normal.y;\n\t\tconst c = normal.z;\n\t\tconst data = this.data;\n\t\tdata[0] = 1.0 - 2 * a * a;\n\t\tdata[1] = -2 * a * b;\n\t\tdata[2] = -2 * a * c;\n\t\tdata[3] = 0;\n\t\tdata[4] = -2 * a * b;\n\t\tdata[5] = 1.0 - 2 * b * b;\n\t\tdata[6] = -2 * b * c;\n\t\tdata[7] = 0;\n\t\tdata[8] = -2 * a * c;\n\t\tdata[9] = -2 * b * c;\n\t\tdata[10] = 1.0 - 2 * c * c;\n\t\tdata[11] = 0;\n\t\tdata[12] = -2 * a * distance;\n\t\tdata[13] = -2 * b * distance;\n\t\tdata[14] = -2 * c * distance;\n\t\tdata[15] = 1;\n\t\treturn this;\n\t}\n\tinvert(src = this) {\n\t\tconst s = src.data;\n\t\tconst a00 = s[0];\n\t\tconst a01 = s[1];\n\t\tconst a02 = s[2];\n\t\tconst a03 = s[3];\n\t\tconst a10 = s[4];\n\t\tconst a11 = s[5];\n\t\tconst a12 = s[6];\n\t\tconst a13 = s[7];\n\t\tconst a20 = s[8];\n\t\tconst a21 = s[9];\n\t\tconst a22 = s[10];\n\t\tconst a23 = s[11];\n\t\tconst a30 = s[12];\n\t\tconst a31 = s[13];\n\t\tconst a32 = s[14];\n\t\tconst a33 = s[15];\n\t\tconst b00 = a00 * a11 - a01 * a10;\n\t\tconst b01 = a00 * a12 - a02 * a10;\n\t\tconst b02 = a00 * a13 - a03 * a10;\n\t\tconst b03 = a01 * a12 - a02 * a11;\n\t\tconst b04 = a01 * a13 - a03 * a11;\n\t\tconst b05 = a02 * a13 - a03 * a12;\n\t\tconst b06 = a20 * a31 - a21 * a30;\n\t\tconst b07 = a20 * a32 - a22 * a30;\n\t\tconst b08 = a20 * a33 - a23 * a30;\n\t\tconst b09 = a21 * a32 - a22 * a31;\n\t\tconst b10 = a21 * a33 - a23 * a31;\n\t\tconst b11 = a22 * a33 - a23 * a32;\n\t\tconst det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n\t\tif (det === 0) {\n\t\t\tthis.setIdentity();\n\t\t} else {\n\t\t\tconst invDet = 1 / det;\n\t\t\tconst t = this.data;\n\t\t\tt[0] = (a11 * b11 - a12 * b10 + a13 * b09) * invDet;\n\t\t\tt[1] = (-a01 * b11 + a02 * b10 - a03 * b09) * invDet;\n\t\t\tt[2] = (a31 * b05 - a32 * b04 + a33 * b03) * invDet;\n\t\t\tt[3] = (-a21 * b05 + a22 * b04 - a23 * b03) * invDet;\n\t\t\tt[4] = (-a10 * b11 + a12 * b08 - a13 * b07) * invDet;\n\t\t\tt[5] = (a00 * b11 - a02 * b08 + a03 * b07) * invDet;\n\t\t\tt[6] = (-a30 * b05 + a32 * b02 - a33 * b01) * invDet;\n\t\t\tt[7] = (a20 * b05 - a22 * b02 + a23 * b01) * invDet;\n\t\t\tt[8] = (a10 * b10 - a11 * b08 + a13 * b06) * invDet;\n\t\t\tt[9] = (-a00 * b10 + a01 * b08 - a03 * b06) * invDet;\n\t\t\tt[10] = (a30 * b04 - a31 * b02 + a33 * b00) * invDet;\n\t\t\tt[11] = (-a20 * b04 + a21 * b02 - a23 * b00) * invDet;\n\t\t\tt[12] = (-a10 * b09 + a11 * b07 - a12 * b06) * invDet;\n\t\t\tt[13] = (a00 * b09 - a01 * b07 + a02 * b06) * invDet;\n\t\t\tt[14] = (-a30 * b03 + a31 * b01 - a32 * b00) * invDet;\n\t\t\tt[15] = (a20 * b03 - a21 * b01 + a22 * b00) * invDet;\n\t\t}\n\t\treturn this;\n\t}\n\tset(src) {\n\t\tconst dst = this.data;\n\t\tdst[0] = src[0];\n\t\tdst[1] = src[1];\n\t\tdst[2] = src[2];\n\t\tdst[3] = src[3];\n\t\tdst[4] = src[4];\n\t\tdst[5] = src[5];\n\t\tdst[6] = src[6];\n\t\tdst[7] = src[7];\n\t\tdst[8] = src[8];\n\t\tdst[9] = src[9];\n\t\tdst[10] = src[10];\n\t\tdst[11] = src[11];\n\t\tdst[12] = src[12];\n\t\tdst[13] = src[13];\n\t\tdst[14] = src[14];\n\t\tdst[15] = src[15];\n\t\treturn this;\n\t}\n\tsetIdentity() {\n\t\tconst m = this.data;\n\t\tm[0] = 1;\n\t\tm[1] = 0;\n\t\tm[2] = 0;\n\t\tm[3] = 0;\n\t\tm[4] = 0;\n\t\tm[5] = 1;\n\t\tm[6] = 0;\n\t\tm[7] = 0;\n\t\tm[8] = 0;\n\t\tm[9] = 0;\n\t\tm[10] = 1;\n\t\tm[11] = 0;\n\t\tm[12] = 0;\n\t\tm[13] = 0;\n\t\tm[14] = 0;\n\t\tm[15] = 1;\n\t\treturn this;\n\t}\n\tsetTRS(t, r, s) {\n\t\tconst qx = r.x;\n\t\tconst qy = r.y;\n\t\tconst qz = r.z;\n\t\tconst qw = r.w;\n\t\tconst sx = s.x;\n\t\tconst sy = s.y;\n\t\tconst sz = s.z;\n\t\tconst x2 = qx + qx;\n\t\tconst y2 = qy + qy;\n\t\tconst z2 = qz + qz;\n\t\tconst xx = qx * x2;\n\t\tconst xy = qx * y2;\n\t\tconst xz = qx * z2;\n\t\tconst yy = qy * y2;\n\t\tconst yz = qy * z2;\n\t\tconst zz = qz * z2;\n\t\tconst wx = qw * x2;\n\t\tconst wy = qw * y2;\n\t\tconst wz = qw * z2;\n\t\tconst m = this.data;\n\t\tm[0] = (1 - (yy + zz)) * sx;\n\t\tm[1] = (xy + wz) * sx;\n\t\tm[2] = (xz - wy) * sx;\n\t\tm[3] = 0;\n\t\tm[4] = (xy - wz) * sy;\n\t\tm[5] = (1 - (xx + zz)) * sy;\n\t\tm[6] = (yz + wx) * sy;\n\t\tm[7] = 0;\n\t\tm[8] = (xz + wy) * sz;\n\t\tm[9] = (yz - wx) * sz;\n\t\tm[10] = (1 - (xx + yy)) * sz;\n\t\tm[11] = 0;\n\t\tm[12] = t.x;\n\t\tm[13] = t.y;\n\t\tm[14] = t.z;\n\t\tm[15] = 1;\n\t\treturn this;\n\t}\n\ttranspose(src = this) {\n\t\tconst s = src.data;\n\t\tconst t = this.data;\n\t\tif (s === t) {\n\t\t\tlet tmp;\n\t\t\ttmp = s[1];\n\t\t\tt[1] = s[4];\n\t\t\tt[4] = tmp;\n\t\t\ttmp = s[2];\n\t\t\tt[2] = s[8];\n\t\t\tt[8] = tmp;\n\t\t\ttmp = s[3];\n\t\t\tt[3] = s[12];\n\t\t\tt[12] = tmp;\n\t\t\ttmp = s[6];\n\t\t\tt[6] = s[9];\n\t\t\tt[9] = tmp;\n\t\t\ttmp = s[7];\n\t\t\tt[7] = s[13];\n\t\t\tt[13] = tmp;\n\t\t\ttmp = s[11];\n\t\t\tt[11] = s[14];\n\t\t\tt[14] = tmp;\n\t\t} else {\n\t\t\tt[0] = s[0];\n\t\t\tt[1] = s[4];\n\t\t\tt[2] = s[8];\n\t\t\tt[3] = s[12];\n\t\t\tt[4] = s[1];\n\t\t\tt[5] = s[5];\n\t\t\tt[6] = s[9];\n\t\t\tt[7] = s[13];\n\t\t\tt[8] = s[2];\n\t\t\tt[9] = s[6];\n\t\t\tt[10] = s[10];\n\t\t\tt[11] = s[14];\n\t\t\tt[12] = s[3];\n\t\t\tt[13] = s[7];\n\t\t\tt[14] = s[11];\n\t\t\tt[15] = s[15];\n\t\t}\n\t\treturn this;\n\t}\n\tgetTranslation(t = new Vec3()) {\n\t\treturn t.set(this.data[12], this.data[13], this.data[14]);\n\t}\n\tgetX(x = new Vec3()) {\n\t\treturn x.set(this.data[0], this.data[1], this.data[2]);\n\t}\n\tgetY(y = new Vec3()) {\n\t\treturn y.set(this.data[4], this.data[5], this.data[6]);\n\t}\n\tgetZ(z = new Vec3()) {\n\t\treturn z.set(this.data[8], this.data[9], this.data[10]);\n\t}\n\tgetScale(scale = new Vec3()) {\n\t\tthis.getX(x$1);\n\t\tthis.getY(y);\n\t\tthis.getZ(z);\n\t\tscale.set(x$1.length(), y.length(), z.length());\n\t\treturn scale;\n\t}\n\tget scaleSign() {\n\t\tthis.getX(x$1);\n\t\tthis.getY(y);\n\t\tthis.getZ(z);\n\t\tx$1.cross(x$1, y);\n\t\treturn x$1.dot(z) < 0 ? -1 : 1;\n\t}\n\tsetFromEulerAngles(ex, ey, ez) {\n\t\tex *= math.DEG_TO_RAD;\n\t\tey *= math.DEG_TO_RAD;\n\t\tez *= math.DEG_TO_RAD;\n\t\tconst s1 = Math.sin(-ex);\n\t\tconst c1 = Math.cos(-ex);\n\t\tconst s2 = Math.sin(-ey);\n\t\tconst c2 = Math.cos(-ey);\n\t\tconst s3 = Math.sin(-ez);\n\t\tconst c3 = Math.cos(-ez);\n\t\tconst m = this.data;\n\t\tm[0] = c2 * c3;\n\t\tm[1] = -c2 * s3;\n\t\tm[2] = s2;\n\t\tm[3] = 0;\n\t\tm[4] = c1 * s3 + c3 * s1 * s2;\n\t\tm[5] = c1 * c3 - s1 * s2 * s3;\n\t\tm[6] = -c2 * s1;\n\t\tm[7] = 0;\n\t\tm[8] = s1 * s3 - c1 * c3 * s2;\n\t\tm[9] = c3 * s1 + c1 * s2 * s3;\n\t\tm[10] = c1 * c2;\n\t\tm[11] = 0;\n\t\tm[12] = 0;\n\t\tm[13] = 0;\n\t\tm[14] = 0;\n\t\tm[15] = 1;\n\t\treturn this;\n\t}\n\tgetEulerAngles(eulers = new Vec3()) {\n\t\tthis.getScale(scale);\n\t\tconst sx = scale.x;\n\t\tconst sy = scale.y;\n\t\tconst sz = scale.z;\n\t\tif (sx === 0 || sy === 0 || sz === 0) {\n\t\t\treturn eulers.set(0, 0, 0);\n\t\t}\n\t\tconst m = this.data;\n\t\tconst y = Math.asin(-m[2] / sx);\n\t\tconst halfPi = Math.PI * 0.5;\n\t\tlet x, z;\n\t\tif (y < halfPi) {\n\t\t\tif (y > -halfPi) {\n\t\t\t\tx = Math.atan2(m[6] / sy, m[10] / sz);\n\t\t\t\tz = Math.atan2(m[1] / sx, m[0] / sx);\n\t\t\t} else {\n\t\t\t\tz = 0;\n\t\t\t\tx = -Math.atan2(m[4] / sy, m[5] / sy);\n\t\t\t}\n\t\t} else {\n\t\t\tz = 0;\n\t\t\tx = Math.atan2(m[4] / sy, m[5] / sy);\n\t\t}\n\t\treturn eulers.set(x, y, z).mulScalar(math.RAD_TO_DEG);\n\t}\n\ttoString() {\n\t\treturn `[${this.data.join(', ')}]`;\n\t}\n}\n_Mat = Mat4;\nMat4.IDENTITY = Object.freeze(new _Mat());\nMat4.ZERO = Object.freeze(new _Mat().set([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]));\n\nvar _Quat;\nclass Quat {\n\tconstructor(x = 0, y = 0, z = 0, w = 1) {\n\t\tthis.x = void 0;\n\t\tthis.y = void 0;\n\t\tthis.z = void 0;\n\t\tthis.w = void 0;\n\t\tif (x.length === 4) {\n\t\t\tthis.x = x[0];\n\t\t\tthis.y = x[1];\n\t\t\tthis.z = x[2];\n\t\t\tthis.w = x[3];\n\t\t} else {\n\t\t\tthis.x = x;\n\t\t\tthis.y = y;\n\t\t\tthis.z = z;\n\t\t\tthis.w = w;\n\t\t}\n\t}\n\tclone() {\n\t\tconst cstr = this.constructor;\n\t\treturn new cstr(this.x, this.y, this.z, this.w);\n\t}\n\tconjugate(src = this) {\n\t\tthis.x = src.x * -1;\n\t\tthis.y = src.y * -1;\n\t\tthis.z = src.z * -1;\n\t\tthis.w = src.w;\n\t\treturn this;\n\t}\n\tcopy(rhs) {\n\t\tthis.x = rhs.x;\n\t\tthis.y = rhs.y;\n\t\tthis.z = rhs.z;\n\t\tthis.w = rhs.w;\n\t\treturn this;\n\t}\n\tequals(rhs) {\n\t\treturn this.x === rhs.x && this.y === rhs.y && this.z === rhs.z && this.w === rhs.w;\n\t}\n\tequalsApprox(rhs, epsilon = 1e-6) {\n\t\treturn Math.abs(this.x - rhs.x) < epsilon && Math.abs(this.y - rhs.y) < epsilon && Math.abs(this.z - rhs.z) < epsilon && Math.abs(this.w - rhs.w) < epsilon;\n\t}\n\tgetAxisAngle(axis) {\n\t\tlet rad = Math.acos(this.w) * 2;\n\t\tconst s = Math.sin(rad / 2);\n\t\tif (s !== 0) {\n\t\t\taxis.x = this.x / s;\n\t\t\taxis.y = this.y / s;\n\t\t\taxis.z = this.z / s;\n\t\t\tif (axis.x < 0 || axis.y < 0 || axis.z < 0) {\n\t\t\t\taxis.x *= -1;\n\t\t\t\taxis.y *= -1;\n\t\t\t\taxis.z *= -1;\n\t\t\t\trad *= -1;\n\t\t\t}\n\t\t} else {\n\t\t\taxis.x = 1;\n\t\t\taxis.y = 0;\n\t\t\taxis.z = 0;\n\t\t}\n\t\treturn rad * math.RAD_TO_DEG;\n\t}\n\tgetEulerAngles(eulers = new Vec3()) {\n\t\tlet x, y, z;\n\t\tconst qx = this.x;\n\t\tconst qy = this.y;\n\t\tconst qz = this.z;\n\t\tconst qw = this.w;\n\t\tconst a2 = 2 * (qw * qy - qx * qz);\n\t\tif (a2 <= -0.99999) {\n\t\t\tx = 2 * Math.atan2(qx, qw);\n\t\t\ty = -Math.PI / 2;\n\t\t\tz = 0;\n\t\t} else if (a2 >= 0.99999) {\n\t\t\tx = 2 * Math.atan2(qx, qw);\n\t\t\ty = Math.PI / 2;\n\t\t\tz = 0;\n\t\t} else {\n\t\t\tx = Math.atan2(2 * (qw * qx + qy * qz), 1 - 2 * (qx * qx + qy * qy));\n\t\t\ty = Math.asin(a2);\n\t\t\tz = Math.atan2(2 * (qw * qz + qx * qy), 1 - 2 * (qy * qy + qz * qz));\n\t\t}\n\t\treturn eulers.set(x, y, z).mulScalar(math.RAD_TO_DEG);\n\t}\n\tinvert(src = this) {\n\t\treturn this.conjugate(src).normalize();\n\t}\n\tlength() {\n\t\treturn Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w);\n\t}\n\tlengthSq() {\n\t\treturn this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;\n\t}\n\tmul(rhs) {\n\t\tconst q1x = this.x;\n\t\tconst q1y = this.y;\n\t\tconst q1z = this.z;\n\t\tconst q1w = this.w;\n\t\tconst q2x = rhs.x;\n\t\tconst q2y = rhs.y;\n\t\tconst q2z = rhs.z;\n\t\tconst q2w = rhs.w;\n\t\tthis.x = q1w * q2x + q1x * q2w + q1y * q2z - q1z * q2y;\n\t\tthis.y = q1w * q2y + q1y * q2w + q1z * q2x - q1x * q2z;\n\t\tthis.z = q1w * q2z + q1z * q2w + q1x * q2y - q1y * q2x;\n\t\tthis.w = q1w * q2w - q1x * q2x - q1y * q2y - q1z * q2z;\n\t\treturn this;\n\t}\n\tmulScalar(scalar, src = this) {\n\t\tthis.x = src.x * scalar;\n\t\tthis.y = src.y * scalar;\n\t\tthis.z = src.z * scalar;\n\t\tthis.w = src.w * scalar;\n\t\treturn this;\n\t}\n\tmul2(lhs, rhs) {\n\t\tconst q1x = lhs.x;\n\t\tconst q1y = lhs.y;\n\t\tconst q1z = lhs.z;\n\t\tconst q1w = lhs.w;\n\t\tconst q2x = rhs.x;\n\t\tconst q2y = rhs.y;\n\t\tconst q2z = rhs.z;\n\t\tconst q2w = rhs.w;\n\t\tthis.x = q1w * q2x + q1x * q2w + q1y * q2z - q1z * q2y;\n\t\tthis.y = q1w * q2y + q1y * q2w + q1z * q2x - q1x * q2z;\n\t\tthis.z = q1w * q2z + q1z * q2w + q1x * q2y - q1y * q2x;\n\t\tthis.w = q1w * q2w - q1x * q2x - q1y * q2y - q1z * q2z;\n\t\treturn this;\n\t}\n\tnormalize(src = this) {\n\t\tlet len = src.length();\n\t\tif (len === 0) {\n\t\t\tthis.x = this.y = this.z = 0;\n\t\t\tthis.w = 1;\n\t\t} else {\n\t\t\tlen = 1 / len;\n\t\t\tthis.x = src.x * len;\n\t\t\tthis.y = src.y * len;\n\t\t\tthis.z = src.z * len;\n\t\t\tthis.w = src.w * len;\n\t\t}\n\t\treturn this;\n\t}\n\tset(x, y, z, w) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\t\tthis.w = w;\n\t\treturn this;\n\t}\n\tsetFromAxisAngle(axis, angle) {\n\t\tangle *= 0.5 * math.DEG_TO_RAD;\n\t\tconst sa = Math.sin(angle);\n\t\tconst ca = Math.cos(angle);\n\t\tthis.x = sa * axis.x;\n\t\tthis.y = sa * axis.y;\n\t\tthis.z = sa * axis.z;\n\t\tthis.w = ca;\n\t\treturn this;\n\t}\n\tsetFromEulerAngles(ex, ey, ez) {\n\t\tif (ex instanceof Vec3) {\n\t\t\tconst vec = ex;\n\t\t\tex = vec.x;\n\t\t\tey = vec.y;\n\t\t\tez = vec.z;\n\t\t}\n\t\tconst halfToRad = 0.5 * math.DEG_TO_RAD;\n\t\tex *= halfToRad;\n\t\tey *= halfToRad;\n\t\tez *= halfToRad;\n\t\tconst sx = Math.sin(ex);\n\t\tconst cx = Math.cos(ex);\n\t\tconst sy = Math.sin(ey);\n\t\tconst cy = Math.cos(ey);\n\t\tconst sz = Math.sin(ez);\n\t\tconst cz = Math.cos(ez);\n\t\tthis.x = sx * cy * cz - cx * sy * sz;\n\t\tthis.y = cx * sy * cz + sx * cy * sz;\n\t\tthis.z = cx * cy * sz - sx * sy * cz;\n\t\tthis.w = cx * cy * cz + sx * sy * sz;\n\t\treturn this;\n\t}\n\tsetFromMat4(m) {\n\t\tconst d = m.data;\n\t\tlet m00 = d[0];\n\t\tlet m01 = d[1];\n\t\tlet m02 = d[2];\n\t\tlet m10 = d[4];\n\t\tlet m11 = d[5];\n\t\tlet m12 = d[6];\n\t\tlet m20 = d[8];\n\t\tlet m21 = d[9];\n\t\tlet m22 = d[10];\n\t\tlet l;\n\t\tl = m00 * m00 + m01 * m01 + m02 * m02;\n\t\tif (l === 0) return this.set(0, 0, 0, 1);\n\t\tl = 1 / Math.sqrt(l);\n\t\tm00 *= l;\n\t\tm01 *= l;\n\t\tm02 *= l;\n\t\tl = m10 * m10 + m11 * m11 + m12 * m12;\n\t\tif (l === 0) return this.set(0, 0, 0, 1);\n\t\tl = 1 / Math.sqrt(l);\n\t\tm10 *= l;\n\t\tm11 *= l;\n\t\tm12 *= l;\n\t\tl = m20 * m20 + m21 * m21 + m22 * m22;\n\t\tif (l === 0) return this.set(0, 0, 0, 1);\n\t\tl = 1 / Math.sqrt(l);\n\t\tm20 *= l;\n\t\tm21 *= l;\n\t\tm22 *= l;\n\t\tif (m22 < 0) {\n\t\t\tif (m00 > m11) {\n\t\t\t\tthis.set(1 + m00 - m11 - m22, m01 + m10, m20 + m02, m12 - m21);\n\t\t\t} else {\n\t\t\t\tthis.set(m01 + m10, 1 - m00 + m11 - m22, m12 + m21, m20 - m02);\n\t\t\t}\n\t\t} else {\n\t\t\tif (m00 < -m11) {\n\t\t\t\tthis.set(m20 + m02, m12 + m21, 1 - m00 - m11 + m22, m01 - m10);\n\t\t\t} else {\n\t\t\t\tthis.set(m12 - m21, m20 - m02, m01 - m10, 1 + m00 + m11 + m22);\n\t\t\t}\n\t\t}\n\t\treturn this.mulScalar(1.0 / this.length());\n\t}\n\tsetFromDirections(from, to) {\n\t\tconst dotProduct = 1 + from.dot(to);\n\t\tif (dotProduct < Number.EPSILON) {\n\t\t\tif (Math.abs(from.x) > Math.abs(from.y)) {\n\t\t\t\tthis.x = -from.z;\n\t\t\t\tthis.y = 0;\n\t\t\t\tthis.z = from.x;\n\t\t\t\tthis.w = 0;\n\t\t\t} else {\n\t\t\t\tthis.x = 0;\n\t\t\t\tthis.y = -from.z;\n\t\t\t\tthis.z = from.y;\n\t\t\t\tthis.w = 0;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.x = from.y * to.z - from.z * to.y;\n\t\t\tthis.y = from.z * to.x - from.x * to.z;\n\t\t\tthis.z = from.x * to.y - from.y * to.x;\n\t\t\tthis.w = dotProduct;\n\t\t}\n\t\treturn this.normalize();\n\t}\n\tslerp(lhs, rhs, alpha) {\n\t\tconst lx = lhs.x;\n\t\tconst ly = lhs.y;\n\t\tconst lz = lhs.z;\n\t\tconst lw = lhs.w;\n\t\tlet rx = rhs.x;\n\t\tlet ry = rhs.y;\n\t\tlet rz = rhs.z;\n\t\tlet rw = rhs.w;\n\t\tlet cosHalfTheta = lw * rw + lx * rx + ly * ry + lz * rz;\n\t\tif (cosHalfTheta < 0) {\n\t\t\trw = -rw;\n\t\t\trx = -rx;\n\t\t\try = -ry;\n\t\t\trz = -rz;\n\t\t\tcosHalfTheta = -cosHalfTheta;\n\t\t}\n\t\tif (Math.abs(cosHalfTheta) >= 1) {\n\t\t\tthis.w = lw;\n\t\t\tthis.x = lx;\n\t\t\tthis.y = ly;\n\t\t\tthis.z = lz;\n\t\t\treturn this;\n\t\t}\n\t\tconst halfTheta = Math.acos(cosHalfTheta);\n\t\tconst sinHalfTheta = Math.sqrt(1 - cosHalfTheta * cosHalfTheta);\n\t\tif (Math.abs(sinHalfTheta) < 0.001) {\n\t\t\tthis.w = lw * 0.5 + rw * 0.5;\n\t\t\tthis.x = lx * 0.5 + rx * 0.5;\n\t\t\tthis.y = ly * 0.5 + ry * 0.5;\n\t\t\tthis.z = lz * 0.5 + rz * 0.5;\n\t\t\treturn this;\n\t\t}\n\t\tconst ratioA = Math.sin((1 - alpha) * halfTheta) / sinHalfTheta;\n\t\tconst ratioB = Math.sin(alpha * halfTheta) / sinHalfTheta;\n\t\tthis.w = lw * ratioA + rw * ratioB;\n\t\tthis.x = lx * ratioA + rx * ratioB;\n\t\tthis.y = ly * ratioA + ry * ratioB;\n\t\tthis.z = lz * ratioA + rz * ratioB;\n\t\treturn this;\n\t}\n\ttransformVector(vec, res = new Vec3()) {\n\t\tconst x = vec.x,\n\t\t\ty = vec.y,\n\t\t\tz = vec.z;\n\t\tconst qx = this.x,\n\t\t\tqy = this.y,\n\t\t\tqz = this.z,\n\t\t\tqw = this.w;\n\t\tconst ix = qw * x + qy * z - qz * y;\n\t\tconst iy = qw * y + qz * x - qx * z;\n\t\tconst iz = qw * z + qx * y - qy * x;\n\t\tconst iw = -qx * x - qy * y - qz * z;\n\t\tres.x = ix * qw + iw * -qx + iy * -qz - iz * -qy;\n\t\tres.y = iy * qw + iw * -qy + iz * -qx - ix * -qz;\n\t\tres.z = iz * qw + iw * -qz + ix * -qy - iy * -qx;\n\t\treturn res;\n\t}\n\ttoString() {\n\t\treturn `[${this.x}, ${this.y}, ${this.z}, ${this.w}]`;\n\t}\n}\n_Quat = Quat;\nQuat.IDENTITY = Object.freeze(new _Quat(0, 0, 0, 1));\nQuat.ZERO = Object.freeze(new _Quat(0, 0, 0, 0));\n\nconst tmpVecA$1 = new Vec3();\nconst tmpVecB$1 = new Vec3();\nconst tmpVecC = new Vec3();\nconst tmpVecD = new Vec3();\nconst tmpVecE = new Vec3();\nclass BoundingBox {\n\tconstructor(center = new Vec3(), halfExtents = new Vec3(0.5, 0.5, 0.5)) {\n\t\tthis.center = void 0;\n\t\tthis.halfExtents = void 0;\n\t\tthis._min = new Vec3();\n\t\tthis._max = new Vec3();\n\t\tthis.center = center;\n\t\tthis.halfExtents = halfExtents;\n\t}\n\tadd(other) {\n\t\tconst tc = this.center;\n\t\tconst tcx = tc.x;\n\t\tconst tcy = tc.y;\n\t\tconst tcz = tc.z;\n\t\tconst th = this.halfExtents;\n\t\tconst thx = th.x;\n\t\tconst thy = th.y;\n\t\tconst thz = th.z;\n\t\tlet tminx = tcx - thx;\n\t\tlet tmaxx = tcx + thx;\n\t\tlet tminy = tcy - thy;\n\t\tlet tmaxy = tcy + thy;\n\t\tlet tminz = tcz - thz;\n\t\tlet tmaxz = tcz + thz;\n\t\tconst oc = other.center;\n\t\tconst ocx = oc.x;\n\t\tconst ocy = oc.y;\n\t\tconst ocz = oc.z;\n\t\tconst oh = other.halfExtents;\n\t\tconst ohx = oh.x;\n\t\tconst ohy = oh.y;\n\t\tconst ohz = oh.z;\n\t\tconst ominx = ocx - ohx;\n\t\tconst omaxx = ocx + ohx;\n\t\tconst ominy = ocy - ohy;\n\t\tconst omaxy = ocy + ohy;\n\t\tconst ominz = ocz - ohz;\n\t\tconst omaxz = ocz + ohz;\n\t\tif (ominx < tminx) tminx = ominx;\n\t\tif (omaxx > tmaxx) tmaxx = omaxx;\n\t\tif (ominy < tminy) tminy = ominy;\n\t\tif (omaxy > tmaxy) tmaxy = omaxy;\n\t\tif (ominz < tminz) tminz = ominz;\n\t\tif (omaxz > tmaxz) tmaxz = omaxz;\n\t\ttc.x = (tminx + tmaxx) * 0.5;\n\t\ttc.y = (tminy + tmaxy) * 0.5;\n\t\ttc.z = (tminz + tmaxz) * 0.5;\n\t\tth.x = (tmaxx - tminx) * 0.5;\n\t\tth.y = (tmaxy - tminy) * 0.5;\n\t\tth.z = (tmaxz - tminz) * 0.5;\n\t}\n\tcopy(src) {\n\t\tthis.center.copy(src.center);\n\t\tthis.halfExtents.copy(src.halfExtents);\n\t}\n\tclone() {\n\t\treturn new BoundingBox(this.center.clone(), this.halfExtents.clone());\n\t}\n\tintersects(other) {\n\t\tconst aMax = this.getMax();\n\t\tconst aMin = this.getMin();\n\t\tconst bMax = other.getMax();\n\t\tconst bMin = other.getMin();\n\t\treturn aMin.x <= bMax.x && aMax.x >= bMin.x && aMin.y <= bMax.y && aMax.y >= bMin.y && aMin.z <= bMax.z && aMax.z >= bMin.z;\n\t}\n\t_intersectsRay(ray, point) {\n\t\tconst tMin = tmpVecA$1.copy(this.getMin()).sub(ray.origin);\n\t\tconst tMax = tmpVecB$1.copy(this.getMax()).sub(ray.origin);\n\t\tconst dir = ray.direction;\n\t\tif (dir.x === 0) {\n\t\t\ttMin.x = tMin.x < 0 ? -Number.MAX_VALUE : Number.MAX_VALUE;\n\t\t\ttMax.x = tMax.x < 0 ? -Number.MAX_VALUE : Number.MAX_VALUE;\n\t\t} else {\n\t\t\ttMin.x /= dir.x;\n\t\t\ttMax.x /= dir.x;\n\t\t}\n\t\tif (dir.y === 0) {\n\t\t\ttMin.y = tMin.y < 0 ? -Number.MAX_VALUE : Number.MAX_VALUE;\n\t\t\ttMax.y = tMax.y < 0 ? -Number.MAX_VALUE : Number.MAX_VALUE;\n\t\t} else {\n\t\t\ttMin.y /= dir.y;\n\t\t\ttMax.y /= dir.y;\n\t\t}\n\t\tif (dir.z === 0) {\n\t\t\ttMin.z = tMin.z < 0 ? -Number.MAX_VALUE : Number.MAX_VALUE;\n\t\t\ttMax.z = tMax.z < 0 ? -Number.MAX_VALUE : Number.MAX_VALUE;\n\t\t} else {\n\t\t\ttMin.z /= dir.z;\n\t\t\ttMax.z /= dir.z;\n\t\t}\n\t\tconst realMin = tmpVecC.set(Math.min(tMin.x, tMax.x), Math.min(tMin.y, tMax.y), Math.min(tMin.z, tMax.z));\n\t\tconst realMax = tmpVecD.set(Math.max(tMin.x, tMax.x), Math.max(tMin.y, tMax.y), Math.max(tMin.z, tMax.z));\n\t\tconst minMax = Math.min(Math.min(realMax.x, realMax.y), realMax.z);\n\t\tconst maxMin = Math.max(Math.max(realMin.x, realMin.y), realMin.z);\n\t\tconst intersects = minMax >= maxMin && maxMin >= 0;\n\t\tif (intersects) {\n\t\t\tpoint.copy(ray.direction).mulScalar(maxMin).add(ray.origin);\n\t\t}\n\t\treturn intersects;\n\t}\n\t_fastIntersectsRay(ray) {\n\t\tconst diff = tmpVecA$1;\n\t\tconst cross = tmpVecB$1;\n\t\tconst prod = tmpVecC;\n\t\tconst absDiff = tmpVecD;\n\t\tconst absDir = tmpVecE;\n\t\tconst rayDir = ray.direction;\n\t\tdiff.sub2(ray.origin, this.center);\n\t\tabsDiff.set(Math.abs(diff.x), Math.abs(diff.y), Math.abs(diff.z));\n\t\tprod.mul2(diff, rayDir);\n\t\tif (absDiff.x > this.halfExtents.x && prod.x >= 0) {\n\t\t\treturn false;\n\t\t}\n\t\tif (absDiff.y > this.halfExtents.y && prod.y >= 0) {\n\t\t\treturn false;\n\t\t}\n\t\tif (absDiff.z > this.halfExtents.z && prod.z >= 0) {\n\t\t\treturn false;\n\t\t}\n\t\tabsDir.set(Math.abs(rayDir.x), Math.abs(rayDir.y), Math.abs(rayDir.z));\n\t\tcross.cross(rayDir, diff);\n\t\tcross.set(Math.abs(cross.x), Math.abs(cross.y), Math.abs(cross.z));\n\t\tif (cross.x > this.halfExtents.y * absDir.z + this.halfExtents.z * absDir.y) {\n\t\t\treturn false;\n\t\t}\n\t\tif (cross.y > this.halfExtents.x * absDir.z + this.halfExtents.z * absDir.x) {\n\t\t\treturn false;\n\t\t}\n\t\tif (cross.z > this.halfExtents.x * absDir.y + this.halfExtents.y * absDir.x) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\tintersectsRay(ray, point) {\n\t\tif (point) {\n\t\t\treturn this._intersectsRay(ray, point);\n\t\t}\n\t\treturn this._fastIntersectsRay(ray);\n\t}\n\tsetMinMax(min, max) {\n\t\tthis.center.add2(max, min).mulScalar(0.5);\n\t\tthis.halfExtents.sub2(max, min).mulScalar(0.5);\n\t}\n\tgetMin() {\n\t\treturn this._min.copy(this.center).sub(this.halfExtents);\n\t}\n\tgetMax() {\n\t\treturn this._max.copy(this.center).add(this.halfExtents);\n\t}\n\tcontainsPoint(point) {\n\t\tconst min = this.getMin();\n\t\tconst max = this.getMax();\n\t\tif (point.x < min.x || point.x > max.x || point.y < min.y || point.y > max.y || point.z < min.z || point.z > max.z) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\tsetFromTransformedAabb(aabb, m, ignoreScale = false) {\n\t\tconst ac = aabb.center;\n\t\tconst ar = aabb.halfExtents;\n\t\tconst d = m.data;\n\t\tlet mx0 = d[0];\n\t\tlet mx1 = d[4];\n\t\tlet mx2 = d[8];\n\t\tlet my0 = d[1];\n\t\tlet my1 = d[5];\n\t\tlet my2 = d[9];\n\t\tlet mz0 = d[2];\n\t\tlet mz1 = d[6];\n\t\tlet mz2 = d[10];\n\t\tif (ignoreScale) {\n\t\t\tlet lengthSq = mx0 * mx0 + mx1 * mx1 + mx2 * mx2;\n\t\t\tif (lengthSq > 0) {\n\t\t\t\tconst invLength = 1 / Math.sqrt(lengthSq);\n\t\t\t\tmx0 *= invLength;\n\t\t\t\tmx1 *= invLength;\n\t\t\t\tmx2 *= invLength;\n\t\t\t}\n\t\t\tlengthSq = my0 * my0 + my1 * my1 + my2 * my2;\n\t\t\tif (lengthSq > 0) {\n\t\t\t\tconst invLength = 1 / Math.sqrt(lengthSq);\n\t\t\t\tmy0 *= invLength;\n\t\t\t\tmy1 *= invLength;\n\t\t\t\tmy2 *= invLength;\n\t\t\t}\n\t\t\tlengthSq = mz0 * mz0 + mz1 * mz1 + mz2 * mz2;\n\t\t\tif (lengthSq > 0) {\n\t\t\t\tconst invLength = 1 / Math.sqrt(lengthSq);\n\t\t\t\tmz0 *= invLength;\n\t\t\t\tmz1 *= invLength;\n\t\t\t\tmz2 *= invLength;\n\t\t\t}\n\t\t}\n\t\tthis.center.set(d[12] + mx0 * ac.x + mx1 * ac.y + mx2 * ac.z, d[13] + my0 * ac.x + my1 * ac.y + my2 * ac.z, d[14] + mz0 * ac.x + mz1 * ac.y + mz2 * ac.z);\n\t\tthis.halfExtents.set(Math.abs(mx0) * ar.x + Math.abs(mx1) * ar.y + Math.abs(mx2) * ar.z, Math.abs(my0) * ar.x + Math.abs(my1) * ar.y + Math.abs(my2) * ar.z, Math.abs(mz0) * ar.x + Math.abs(mz1) * ar.y + Math.abs(mz2) * ar.z);\n\t}\n\tstatic computeMinMax(vertices, min, max, numVerts = vertices.length / 3) {\n\t\tif (numVerts > 0) {\n\t\t\tlet minx = vertices[0];\n\t\t\tlet miny = vertices[1];\n\t\t\tlet minz = vertices[2];\n\t\t\tlet maxx = minx;\n\t\t\tlet maxy = miny;\n\t\t\tlet maxz = minz;\n\t\t\tconst n = numVerts * 3;\n\t\t\tfor (let i = 3; i < n; i += 3) {\n\t\t\t\tconst x = vertices[i];\n\t\t\t\tconst y = vertices[i + 1];\n\t\t\t\tconst z = vertices[i + 2];\n\t\t\t\tif (x < minx) minx = x;\n\t\t\t\tif (y < miny) miny = y;\n\t\t\t\tif (z < minz) minz = z;\n\t\t\t\tif (x > maxx) maxx = x;\n\t\t\t\tif (y > maxy) maxy = y;\n\t\t\t\tif (z > maxz) maxz = z;\n\t\t\t}\n\t\t\tmin.set(minx, miny, minz);\n\t\t\tmax.set(maxx, maxy, maxz);\n\t\t}\n\t}\n\tcompute(vertices, numVerts) {\n\t\tBoundingBox.computeMinMax(vertices, tmpVecA$1, tmpVecB$1, numVerts);\n\t\tthis.setMinMax(tmpVecA$1, tmpVecB$1);\n\t}\n\tintersectsBoundingSphere(sphere) {\n\t\tconst sq = this._distanceToBoundingSphereSq(sphere);\n\t\tif (sq <= sphere.radius * sphere.radius) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\t_distanceToBoundingSphereSq(sphere) {\n\t\tconst boxMin = this.getMin();\n\t\tconst boxMax = this.getMax();\n\t\tlet sq = 0;\n\t\tconst axis = ['x', 'y', 'z'];\n\t\tfor (let i = 0; i < 3; ++i) {\n\t\t\tlet out = 0;\n\t\t\tconst pn = sphere.center[axis[i]];\n\t\t\tconst bMin = boxMin[axis[i]];\n\t\t\tconst bMax = boxMax[axis[i]];\n\t\t\tlet val = 0;\n\t\t\tif (pn < bMin) {\n\t\t\t\tval = bMin - pn;\n\t\t\t\tout += val * val;\n\t\t\t}\n\t\t\tif (pn > bMax) {\n\t\t\t\tval = pn - bMax;\n\t\t\t\tout += val * val;\n\t\t\t}\n\t\t\tsq += out;\n\t\t}\n\t\treturn sq;\n\t}\n\t_expand(expandMin, expandMax) {\n\t\ttmpVecA$1.add2(this.getMin(), expandMin);\n\t\ttmpVecB$1.add2(this.getMax(), expandMax);\n\t\tthis.setMinMax(tmpVecA$1, tmpVecB$1);\n\t}\n}\n\nconst tmpVecA = new Vec3();\nconst tmpVecB = new Vec3();\nclass BoundingSphere {\n\tconstructor(center = new Vec3(), radius = 0.5) {\n\t\tthis.center = void 0;\n\t\tthis.radius = void 0;\n\t\tthis.center = center;\n\t\tthis.radius = radius;\n\t}\n\tcontainsPoint(point) {\n\t\tconst lenSq = tmpVecA.sub2(point, this.center).lengthSq();\n\t\tconst r = this.radius;\n\t\treturn lenSq < r * r;\n\t}\n\tintersectsRay(ray, point) {\n\t\tconst m = tmpVecA.copy(ray.origin).sub(this.center);\n\t\tconst b = m.dot(tmpVecB.copy(ray.direction).normalize());\n\t\tconst c = m.dot(m) - this.radius * this.radius;\n\t\tif (c > 0 && b > 0) {\n\t\t\treturn false;\n\t\t}\n\t\tconst discr = b * b - c;\n\t\tif (discr < 0) {\n\t\t\treturn false;\n\t\t}\n\t\tconst t = Math.abs(-b - Math.sqrt(discr));\n\t\tif (point) {\n\t\t\tpoint.copy(ray.direction).mulScalar(t).add(ray.origin);\n\t\t}\n\t\treturn true;\n\t}\n\tintersectsBoundingSphere(sphere) {\n\t\ttmpVecA.sub2(sphere.center, this.center);\n\t\tconst totalRadius = sphere.radius + this.radius;\n\t\tif (tmpVecA.lengthSq() <= totalRadius * totalRadius) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n}\n\nclass Frustum {\n\tconstructor() {\n\t\tthis.planes = [];\n\t\tfor (let i = 0; i < 6; i++) {\n\t\t\tthis.planes[i] = [];\n\t\t}\n\t}\n\tsetFromMat4(matrix) {\n\t\tconst vpm = matrix.data;\n\t\tlet plane;\n\t\tconst planes = this.planes;\n\t\tplane = planes[0];\n\t\tplane[0] = vpm[3] - vpm[0];\n\t\tplane[1] = vpm[7] - vpm[4];\n\t\tplane[2] = vpm[11] - vpm[8];\n\t\tplane[3] = vpm[15] - vpm[12];\n\t\tlet t = Math.sqrt(plane[0] * plane[0] + plane[1] * plane[1] + plane[2] * plane[2]);\n\t\tplane[0] /= t;\n\t\tplane[1] /= t;\n\t\tplane[2] /= t;\n\t\tplane[3] /= t;\n\t\tplane = planes[1];\n\t\tplane[0] = vpm[3] + vpm[0];\n\t\tplane[1] = vpm[7] + vpm[4];\n\t\tplane[2] = vpm[11] + vpm[8];\n\t\tplane[3] = vpm[15] + vpm[12];\n\t\tt = Math.sqrt(plane[0] * plane[0] + plane[1] * plane[1] + plane[2] * plane[2]);\n\t\tplane[0] /= t;\n\t\tplane[1] /= t;\n\t\tplane[2] /= t;\n\t\tplane[3] /= t;\n\t\tplane = planes[2];\n\t\tplane[0] = vpm[3] + vpm[1];\n\t\tplane[1] = vpm[7] + vpm[5];\n\t\tplane[2] = vpm[11] + vpm[9];\n\t\tplane[3] = vpm[15] + vpm[13];\n\t\tt = Math.sqrt(plane[0] * plane[0] + plane[1] * plane[1] + plane[2] * plane[2]);\n\t\tplane[0] /= t;\n\t\tplane[1] /= t;\n\t\tplane[2] /= t;\n\t\tplane[3] /= t;\n\t\tplane = planes[3];\n\t\tplane[0] = vpm[3] - vpm[1];\n\t\tplane[1] = vpm[7] - vpm[5];\n\t\tplane[2] = vpm[11] - vpm[9];\n\t\tplane[3] = vpm[15] - vpm[13];\n\t\tt = Math.sqrt(plane[0] * plane[0] + plane[1] * plane[1] + plane[2] * plane[2]);\n\t\tplane[0] /= t;\n\t\tplane[1] /= t;\n\t\tplane[2] /= t;\n\t\tplane[3] /= t;\n\t\tplane = planes[4];\n\t\tplane[0] = vpm[3] - vpm[2];\n\t\tplane[1] = vpm[7] - vpm[6];\n\t\tplane[2] = vpm[11] - vpm[10];\n\t\tplane[3] = vpm[15] - vpm[14];\n\t\tt = Math.sqrt(plane[0] * plane[0] + plane[1] * plane[1] + plane[2] * plane[2]);\n\t\tplane[0] /= t;\n\t\tplane[1] /= t;\n\t\tplane[2] /= t;\n\t\tplane[3] /= t;\n\t\tplane = planes[5];\n\t\tplane[0] = vpm[3] + vpm[2];\n\t\tplane[1] = vpm[7] + vpm[6];\n\t\tplane[2] = vpm[11] + vpm[10];\n\t\tplane[3] = vpm[15] + vpm[14];\n\t\tt = Math.sqrt(plane[0] * plane[0] + plane[1] * plane[1] + plane[2] * plane[2]);\n\t\tplane[0] /= t;\n\t\tplane[1] /= t;\n\t\tplane[2] /= t;\n\t\tplane[3] /= t;\n\t}\n\tcontainsPoint(point) {\n\t\tlet p, plane;\n\t\tfor (p = 0; p < 6; p++) {\n\t\t\tplane = this.planes[p];\n\t\t\tif (plane[0] * point.x + plane[1] * point.y + plane[2] * point.z + plane[3] <= 0) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\tcontainsSphere(sphere) {\n\t\tlet c = 0;\n\t\tlet d;\n\t\tlet p;\n\t\tconst sr = sphere.radius;\n\t\tconst sc = sphere.center;\n\t\tconst scx = sc.x;\n\t\tconst scy = sc.y;\n\t\tconst scz = sc.z;\n\t\tconst planes = this.planes;\n\t\tlet plane;\n\t\tfor (p = 0; p < 6; p++) {\n\t\t\tplane = planes[p];\n\t\t\td = plane[0] * scx + plane[1] * scy + plane[2] * scz + plane[3];\n\t\t\tif (d <= -sr) {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\tif (d > sr) {\n\t\t\t\tc++;\n\t\t\t}\n\t\t}\n\t\treturn c === 6 ? 2 : 1;\n\t}\n}\n\nclass Ray {\n\tconstructor(origin, direction) {\n\t\tthis.origin = new Vec3();\n\t\tthis.direction = Vec3.FORWARD.clone();\n\t\tif (origin) {\n\t\t\tthis.origin.copy(origin);\n\t\t}\n\t\tif (direction) {\n\t\t\tthis.direction.copy(direction);\n\t\t}\n\t}\n\tset(origin, direction) {\n\t\tthis.origin.copy(origin);\n\t\tthis.direction.copy(direction);\n\t\treturn this;\n\t}\n\tcopy(src) {\n\t\treturn this.set(src.origin, src.direction);\n\t}\n\tclone() {\n\t\treturn new this.constructor(this.origin, this.direction);\n\t}\n}\n\nconst tmpRay = new Ray();\nconst tmpVec3$2 = new Vec3();\nconst tmpSphere = new BoundingSphere();\nconst tmpMat4$1 = new Mat4();\nclass OrientedBox {\n\tconstructor(worldTransform = new Mat4(), halfExtents = new Vec3(0.5, 0.5, 0.5)) {\n\t\tthis.halfExtents = void 0;\n\t\tthis._modelTransform = void 0;\n\t\tthis._worldTransform = void 0;\n\t\tthis._aabb = void 0;\n\t\tthis.halfExtents = halfExtents;\n\t\tthis._modelTransform = worldTransform.clone().invert();\n\t\tthis._worldTransform = worldTransform.clone();\n\t\tthis._aabb = new BoundingBox(new Vec3(), this.halfExtents);\n\t}\n\tset worldTransform(value) {\n\t\tthis._worldTransform.copy(value);\n\t\tthis._modelTransform.copy(value).invert();\n\t}\n\tget worldTransform() {\n\t\treturn this._worldTransform;\n\t}\n\tintersectsRay(ray, point) {\n\t\tthis._modelTransform.transformPoint(ray.origin, tmpRay.origin);\n\t\tthis._modelTransform.transformVector(ray.direction, tmpRay.direction);\n\t\tif (point) {\n\t\t\tconst result = this._aabb._intersectsRay(tmpRay, point);\n\t\t\ttmpMat4$1.copy(this._modelTransform).invert().transformPoint(point, point);\n\t\t\treturn result;\n\t\t}\n\t\treturn this._aabb._fastIntersectsRay(tmpRay);\n\t}\n\tcontainsPoint(point) {\n\t\tthis._modelTransform.transformPoint(point, tmpVec3$2);\n\t\treturn this._aabb.containsPoint(tmpVec3$2);\n\t}\n\tintersectsBoundingSphere(sphere) {\n\t\tthis._modelTransform.transformPoint(sphere.center, tmpSphere.center);\n\t\ttmpSphere.radius = sphere.radius;\n\t\tif (this._aabb.intersectsBoundingSphere(tmpSphere)) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n}\n\nclass Plane {\n\tconstructor(normal = Vec3.UP, distance = 0) {\n\t\tthis.normal = new Vec3();\n\t\tthis.distance = void 0;\n\t\tthis.normal.copy(normal);\n\t\tthis.distance = distance;\n\t}\n\tsetFromPointNormal(point, normal) {\n\t\tthis.normal.copy(normal);\n\t\tthis.distance = -this.normal.dot(point);\n\t\treturn this;\n\t}\n\tintersectsLine(start, end, point) {\n\t\tconst d = this.distance;\n\t\tconst d0 = this.normal.dot(start) + d;\n\t\tconst d1 = this.normal.dot(end) + d;\n\t\tconst t = d0 / (d0 - d1);\n\t\tconst intersects = t >= 0 && t <= 1;\n\t\tif (intersects && point) {\n\t\t\tpoint.lerp(start, end, t);\n\t\t}\n\t\treturn intersects;\n\t}\n\tintersectsRay(ray, point) {\n\t\tconst denominator = this.normal.dot(ray.direction);\n\t\tif (denominator === 0) {\n\t\t\treturn false;\n\t\t}\n\t\tconst t = -(this.normal.dot(ray.origin) + this.distance) / denominator;\n\t\tif (t >= 0 && point) {\n\t\t\tpoint.copy(ray.direction).mulScalar(t).add(ray.origin);\n\t\t}\n\t\treturn t >= 0;\n\t}\n\tcopy(src) {\n\t\tthis.normal.copy(src.normal);\n\t\tthis.distance = src.distance;\n\t\treturn this;\n\t}\n\tclone() {\n\t\tconst cstr = this.constructor;\n\t\treturn new cstr().copy(this);\n\t}\n}\n\nconst e1 = new Vec3();\nconst e2 = new Vec3();\nconst h = new Vec3();\nconst s = new Vec3();\nconst q$1 = new Vec3();\nconst EPSILON = 1e-6;\nclass Tri {\n\tconstructor(v0 = Vec3.ZERO, v1 = Vec3.ZERO, v2 = Vec3.ZERO) {\n\t\tthis.v0 = new Vec3();\n\t\tthis.v1 = new Vec3();\n\t\tthis.v2 = new Vec3();\n\t\tthis.set(v0, v1, v2);\n\t}\n\tset(v0, v1, v2) {\n\t\tthis.v0.copy(v0);\n\t\tthis.v1.copy(v1);\n\t\tthis.v2.copy(v2);\n\t\treturn this;\n\t}\n\tintersectsRay(ray, point) {\n\t\te1.sub2(this.v1, this.v0);\n\t\te2.sub2(this.v2, this.v0);\n\t\th.cross(ray.direction, e2);\n\t\tconst a = e1.dot(h);\n\t\tif (a > -EPSILON && a < EPSILON) {\n\t\t\treturn false;\n\t\t}\n\t\tconst f = 1 / a;\n\t\ts.sub2(ray.origin, this.v0);\n\t\tconst u = f * s.dot(h);\n\t\tif (u < 0 || u > 1) {\n\t\t\treturn false;\n\t\t}\n\t\tq$1.cross(s, e1);\n\t\tconst v = f * ray.direction.dot(q$1);\n\t\tif (v < 0 || u + v > 1) {\n\t\t\treturn false;\n\t\t}\n\t\tconst t = f * e2.dot(q$1);\n\t\tif (t > EPSILON) {\n\t\t\tif (point instanceof Vec3) {\n\t\t\t\tpoint.copy(ray.direction).mulScalar(t).add(ray.origin);\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\ttoString() {\n\t\treturn `[${this.v0.toString()}, ${this.v1.toString()}, ${this.v2.toString()}]`;\n\t}\n}\n\nconst DISTANCE_LINEAR = 'linear';\nconst DISTANCE_INVERSE = 'inverse';\nconst DISTANCE_EXPONENTIAL = 'exponential';\n\nconst ADDRESS_REPEAT = 0;\nconst ADDRESS_CLAMP_TO_EDGE = 1;\nconst ADDRESS_MIRRORED_REPEAT = 2;\nconst BLENDMODE_ZERO = 0;\nconst BLENDMODE_ONE = 1;\nconst BLENDMODE_SRC_COLOR = 2;\nconst BLENDMODE_ONE_MINUS_SRC_COLOR = 3;\nconst BLENDMODE_DST_COLOR = 4;\nconst BLENDMODE_ONE_MINUS_DST_COLOR = 5;\nconst BLENDMODE_SRC_ALPHA = 6;\nconst BLENDMODE_SRC_ALPHA_SATURATE = 7;\nconst BLENDMODE_ONE_MINUS_SRC_ALPHA = 8;\nconst BLENDMODE_DST_ALPHA = 9;\nconst BLENDMODE_ONE_MINUS_DST_ALPHA = 10;\nconst BLENDMODE_CONSTANT = 11;\nconst BLENDMODE_ONE_MINUS_CONSTANT = 12;\nconst BLENDEQUATION_ADD = 0;\nconst BLENDEQUATION_SUBTRACT = 1;\nconst BLENDEQUATION_REVERSE_SUBTRACT = 2;\nconst BLENDEQUATION_MIN = 3;\nconst BLENDEQUATION_MAX = 4;\nconst BUFFERUSAGE_READ = 0x0001;\nconst BUFFERUSAGE_WRITE = 0x0002;\nconst BUFFERUSAGE_COPY_SRC = 0x0004;\nconst BUFFERUSAGE_COPY_DST = 0x0008;\nconst BUFFERUSAGE_INDEX = 0x0010;\nconst BUFFERUSAGE_VERTEX = 0x0020;\nconst BUFFERUSAGE_UNIFORM = 0x0040;\nconst BUFFERUSAGE_STORAGE = 0x0080;\nconst BUFFERUSAGE_INDIRECT = 0x0100;\nconst BUFFER_STATIC = 0;\nconst BUFFER_DYNAMIC = 1;\nconst BUFFER_STREAM = 2;\nconst BUFFER_GPUDYNAMIC = 3;\nconst CLEARFLAG_COLOR = 1;\nconst CLEARFLAG_DEPTH = 2;\nconst CLEARFLAG_STENCIL = 4;\nconst CUBEFACE_POSX = 0;\nconst CUBEFACE_NEGX = 1;\nconst CUBEFACE_POSY = 2;\nconst CUBEFACE_NEGY = 3;\nconst CUBEFACE_POSZ = 4;\nconst CUBEFACE_NEGZ = 5;\nconst CULLFACE_NONE = 0;\nconst CULLFACE_BACK = 1;\nconst CULLFACE_FRONT = 2;\nconst CULLFACE_FRONTANDBACK = 3;\nconst FILTER_NEAREST = 0;\nconst FILTER_LINEAR = 1;\nconst FILTER_NEAREST_MIPMAP_NEAREST = 2;\nconst FILTER_NEAREST_MIPMAP_LINEAR = 3;\nconst FILTER_LINEAR_MIPMAP_NEAREST = 4;\nconst FILTER_LINEAR_MIPMAP_LINEAR = 5;\nconst FUNC_NEVER = 0;\nconst FUNC_LESS = 1;\nconst FUNC_EQUAL = 2;\nconst FUNC_LESSEQUAL = 3;\nconst FUNC_GREATER = 4;\nconst FUNC_NOTEQUAL = 5;\nconst FUNC_GREATEREQUAL = 6;\nconst FUNC_ALWAYS = 7;\nconst INDEXFORMAT_UINT8 = 0;\nconst INDEXFORMAT_UINT16 = 1;\nconst INDEXFORMAT_UINT32 = 2;\nconst PIXELFORMAT_A8 = 0;\nconst PIXELFORMAT_L8 = 1;\nconst PIXELFORMAT_LA8 = 2;\nconst PIXELFORMAT_RGB565 = 3;\nconst PIXELFORMAT_RGBA5551 = 4;\nconst PIXELFORMAT_RGBA4 = 5;\nconst PIXELFORMAT_RGB8 = 6;\nconst PIXELFORMAT_RGBA8 = 7;\nconst PIXELFORMAT_DXT1 = 8;\nconst PIXELFORMAT_DXT3 = 9;\nconst PIXELFORMAT_DXT5 = 10;\nconst PIXELFORMAT_RGB16F = 11;\nconst PIXELFORMAT_RGBA16F = 12;\nconst PIXELFORMAT_RGB32F = 13;\nconst PIXELFORMAT_RGBA32F = 14;\nconst PIXELFORMAT_R32F = 15;\nconst PIXELFORMAT_DEPTH = 16;\nconst PIXELFORMAT_DEPTHSTENCIL = 17;\nconst PIXELFORMAT_111110F = 18;\nconst PIXELFORMAT_SRGB = 19;\nconst PIXELFORMAT_SRGBA = 20;\nconst PIXELFORMAT_ETC1 = 21;\nconst PIXELFORMAT_ETC2_RGB = 22;\nconst PIXELFORMAT_ETC2_RGBA = 23;\nconst PIXELFORMAT_PVRTC_2BPP_RGB_1 = 24;\nconst PIXELFORMAT_PVRTC_2BPP_RGBA_1 = 25;\nconst PIXELFORMAT_PVRTC_4BPP_RGB_1 = 26;\nconst PIXELFORMAT_PVRTC_4BPP_RGBA_1 = 27;\nconst PIXELFORMAT_ASTC_4x4 = 28;\nconst PIXELFORMAT_ATC_RGB = 29;\nconst PIXELFORMAT_ATC_RGBA = 30;\nconst PIXELFORMAT_BGRA8 = 31;\nconst PIXELFORMAT_R8I = 32;\nconst PIXELFORMAT_R8U = 33;\nconst PIXELFORMAT_R16I = 34;\nconst PIXELFORMAT_R16U = 35;\nconst PIXELFORMAT_R32I = 36;\nconst PIXELFORMAT_R32U = 37;\nconst PIXELFORMAT_RG8I = 38;\nconst PIXELFORMAT_RG8U = 39;\nconst PIXELFORMAT_RG16I = 40;\nconst PIXELFORMAT_RG16U = 41;\nconst PIXELFORMAT_RG32I = 42;\nconst PIXELFORMAT_RG32U = 43;\nconst PIXELFORMAT_RGBA8I = 44;\nconst PIXELFORMAT_RGBA8U = 45;\nconst PIXELFORMAT_RGBA16I = 46;\nconst PIXELFORMAT_RGBA16U = 47;\nconst PIXELFORMAT_RGBA32I = 48;\nconst PIXELFORMAT_RGBA32U = 49;\nconst PIXELFORMAT_R16F = 50;\nconst PIXELFORMAT_RG16F = 51;\nconst pixelFormatInfo = new Map([[PIXELFORMAT_A8, {\n\tname: 'A8',\n\tsize: 1\n}], [PIXELFORMAT_L8, {\n\tname: 'L8',\n\tsize: 1\n}], [PIXELFORMAT_LA8, {\n\tname: 'LA8',\n\tsize: 2\n}], [PIXELFORMAT_RGB565, {\n\tname: 'RGB565',\n\tsize: 2\n}], [PIXELFORMAT_RGBA5551, {\n\tname: 'RGBA5551',\n\tsize: 2\n}], [PIXELFORMAT_RGBA4, {\n\tname: 'RGBA4',\n\tsize: 2\n}], [PIXELFORMAT_RGB8, {\n\tname: 'RGB8',\n\tsize: 4\n}], [PIXELFORMAT_RGBA8, {\n\tname: 'RGBA8',\n\tsize: 4\n}], [PIXELFORMAT_R16F, {\n\tname: 'R16F',\n\tsize: 2\n}], [PIXELFORMAT_RG16F, {\n\tname: 'RG16F',\n\tsize: 4\n}], [PIXELFORMAT_RGB16F, {\n\tname: 'RGB16F',\n\tsize: 8\n}], [PIXELFORMAT_RGBA16F, {\n\tname: 'RGBA16F',\n\tsize: 8\n}], [PIXELFORMAT_RGB32F, {\n\tname: 'RGB32F',\n\tsize: 16\n}], [PIXELFORMAT_RGBA32F, {\n\tname: 'RGBA32F',\n\tsize: 16\n}], [PIXELFORMAT_R32F, {\n\tname: 'R32F',\n\tsize: 4\n}], [PIXELFORMAT_DEPTH, {\n\tname: 'DEPTH',\n\tsize: 4\n}], [PIXELFORMAT_DEPTHSTENCIL, {\n\tname: 'DEPTHSTENCIL',\n\tsize: 4\n}], [PIXELFORMAT_111110F, {\n\tname: '111110F',\n\tsize: 4\n}], [PIXELFORMAT_SRGB, {\n\tname: 'SRGB',\n\tsize: 4\n}], [PIXELFORMAT_SRGBA, {\n\tname: 'SRGBA',\n\tsize: 4\n}], [PIXELFORMAT_BGRA8, {\n\tname: 'BGRA8',\n\tsize: 4\n}], [PIXELFORMAT_DXT1, {\n\tname: 'DXT1',\n\tblockSize: 8\n}], [PIXELFORMAT_DXT3, {\n\tname: 'DXT3',\n\tblockSize: 16\n}], [PIXELFORMAT_DXT5, {\n\tname: 'DXT5',\n\tblockSize: 16\n}], [PIXELFORMAT_ETC1, {\n\tname: 'ETC1',\n\tblockSize: 8\n}], [PIXELFORMAT_ETC2_RGB, {\n\tname: 'ETC2_RGB',\n\tblockSize: 8\n}], [PIXELFORMAT_ETC2_RGBA, {\n\tname: 'ETC2_RGBA',\n\tblockSize: 16\n}], [PIXELFORMAT_PVRTC_2BPP_RGB_1, {\n\tname: 'PVRTC_2BPP_RGB_1',\n\tblockSize: 8\n}], [PIXELFORMAT_PVRTC_2BPP_RGBA_1, {\n\tname: 'PVRTC_2BPP_RGBA_1',\n\tblockSize: 8\n}], [PIXELFORMAT_PVRTC_4BPP_RGB_1, {\n\tname: 'PVRTC_4BPP_RGB_1',\n\tblockSize: 8\n}], [PIXELFORMAT_PVRTC_4BPP_RGBA_1, {\n\tname: 'PVRTC_4BPP_RGBA_1',\n\tblockSize: 8\n}], [PIXELFORMAT_ASTC_4x4, {\n\tname: 'ASTC_4x4',\n\tblockSize: 16\n}], [PIXELFORMAT_ATC_RGB, {\n\tname: 'ATC_RGB',\n\tblockSize: 8\n}], [PIXELFORMAT_ATC_RGBA, {\n\tname: 'ATC_RGBA',\n\tblockSize: 16\n}], [PIXELFORMAT_R8I, {\n\tname: 'R8I',\n\tsize: 1,\n\tisInt: true\n}], [PIXELFORMAT_R8U, {\n\tname: 'R8U',\n\tsize: 1,\n\tisInt: true\n}], [PIXELFORMAT_R16I, {\n\tname: 'R16I',\n\tsize: 2,\n\tisInt: true\n}], [PIXELFORMAT_R16U, {\n\tname: 'R16U',\n\tsize: 2,\n\tisInt: true\n}], [PIXELFORMAT_R32I, {\n\tname: 'R32I',\n\tsize: 4,\n\tisInt: true\n}], [PIXELFORMAT_R32U, {\n\tname: 'R32U',\n\tsize: 4,\n\tisInt: true\n}], [PIXELFORMAT_RG8I, {\n\tname: 'RG8I',\n\tsize: 2,\n\tisInt: true\n}], [PIXELFORMAT_RG8U, {\n\tname: 'RG8U',\n\tsize: 2,\n\tisInt: true\n}], [PIXELFORMAT_RG16I, {\n\tname: 'RG16I',\n\tsize: 4,\n\tisInt: true\n}], [PIXELFORMAT_RG16U, {\n\tname: 'RG16U',\n\tsize: 4,\n\tisInt: true\n}], [PIXELFORMAT_RG32I, {\n\tname: 'RG32I',\n\tsize: 8,\n\tisInt: true\n}], [PIXELFORMAT_RG32U, {\n\tname: 'RG32U',\n\tsize: 8,\n\tisInt: true\n}], [PIXELFORMAT_RGBA8I, {\n\tname: 'RGBA8I',\n\tsize: 4,\n\tisInt: true\n}], [PIXELFORMAT_RGBA8U, {\n\tname: 'RGBA8U',\n\tsize: 4,\n\tisInt: true\n}], [PIXELFORMAT_RGBA16I, {\n\tname: 'RGBA16I',\n\tsize: 8,\n\tisInt: true\n}], [PIXELFORMAT_RGBA16U, {\n\tname: 'RGBA16U',\n\tsize: 8,\n\tisInt: true\n}], [PIXELFORMAT_RGBA32I, {\n\tname: 'RGBA32I',\n\tsize: 16,\n\tisInt: true\n}], [PIXELFORMAT_RGBA32U, {\n\tname: 'RGBA32U',\n\tsize: 16,\n\tisInt: true\n}]]);\nconst isCompressedPixelFormat = format => {\n\tvar _pixelFormatInfo$get;\n\treturn ((_pixelFormatInfo$get = pixelFormatInfo.get(format)) == null ? void 0 : _pixelFormatInfo$get.blockSize) !== undefined;\n};\nconst isIntegerPixelFormat = format => {\n\tvar _pixelFormatInfo$get2;\n\treturn ((_pixelFormatInfo$get2 = pixelFormatInfo.get(format)) == null ? void 0 : _pixelFormatInfo$get2.isInt) === true;\n};\nconst getPixelFormatArrayType = format => {\n\tswitch (format) {\n\t\tcase PIXELFORMAT_R32F:\n\t\tcase PIXELFORMAT_RGB32F:\n\t\tcase PIXELFORMAT_RGBA32F:\n\t\t\treturn Float32Array;\n\t\tcase PIXELFORMAT_R32I:\n\t\tcase PIXELFORMAT_RG32I:\n\t\tcase PIXELFORMAT_RGBA32I:\n\t\t\treturn Int32Array;\n\t\tcase PIXELFORMAT_R32U:\n\t\tcase PIXELFORMAT_RG32U:\n\t\tcase PIXELFORMAT_RGBA32U:\n\t\t\treturn Uint32Array;\n\t\tcase PIXELFORMAT_R16I:\n\t\tcase PIXELFORMAT_RG16I:\n\t\tcase PIXELFORMAT_RGBA16I:\n\t\t\treturn Int16Array;\n\t\tcase PIXELFORMAT_R16U:\n\t\tcase PIXELFORMAT_RG16U:\n\t\tcase PIXELFORMAT_RGBA16U:\n\t\tcase PIXELFORMAT_RGB565:\n\t\tcase PIXELFORMAT_RGBA5551:\n\t\tcase PIXELFORMAT_RGBA4:\n\t\tcase PIXELFORMAT_R16F:\n\t\tcase PIXELFORMAT_RG16F:\n\t\tcase PIXELFORMAT_RGB16F:\n\t\tcase PIXELFORMAT_RGBA16F:\n\t\t\treturn Uint16Array;\n\t\tcase PIXELFORMAT_R8I:\n\t\tcase PIXELFORMAT_RG8I:\n\t\tcase PIXELFORMAT_RGBA8I:\n\t\t\treturn Int8Array;\n\t\tdefault:\n\t\t\treturn Uint8Array;\n\t}\n};\nconst PRIMITIVE_POINTS = 0;\nconst PRIMITIVE_LINES = 1;\nconst PRIMITIVE_LINELOOP = 2;\nconst PRIMITIVE_LINESTRIP = 3;\nconst PRIMITIVE_TRIANGLES = 4;\nconst PRIMITIVE_TRISTRIP = 5;\nconst PRIMITIVE_TRIFAN = 6;\nconst SEMANTIC_POSITION = 'POSITION';\nconst SEMANTIC_NORMAL = 'NORMAL';\nconst SEMANTIC_TANGENT = 'TANGENT';\nconst SEMANTIC_BLENDWEIGHT = 'BLENDWEIGHT';\nconst SEMANTIC_BLENDINDICES = 'BLENDINDICES';\nconst SEMANTIC_COLOR = 'COLOR';\nconst SEMANTIC_TEXCOORD = 'TEXCOORD';\nconst SEMANTIC_TEXCOORD0 = 'TEXCOORD0';\nconst SEMANTIC_TEXCOORD1 = 'TEXCOORD1';\nconst SEMANTIC_TEXCOORD2 = 'TEXCOORD2';\nconst SEMANTIC_TEXCOORD3 = 'TEXCOORD3';\nconst SEMANTIC_TEXCOORD4 = 'TEXCOORD4';\nconst SEMANTIC_TEXCOORD5 = 'TEXCOORD5';\nconst SEMANTIC_TEXCOORD6 = 'TEXCOORD6';\nconst SEMANTIC_TEXCOORD7 = 'TEXCOORD7';\nconst SEMANTIC_ATTR = 'ATTR';\nconst SEMANTIC_ATTR0 = 'ATTR0';\nconst SEMANTIC_ATTR1 = 'ATTR1';\nconst SEMANTIC_ATTR2 = 'ATTR2';\nconst SEMANTIC_ATTR3 = 'ATTR3';\nconst SEMANTIC_ATTR4 = 'ATTR4';\nconst SEMANTIC_ATTR5 = 'ATTR5';\nconst SEMANTIC_ATTR6 = 'ATTR6';\nconst SEMANTIC_ATTR7 = 'ATTR7';\nconst SEMANTIC_ATTR8 = 'ATTR8';\nconst SEMANTIC_ATTR9 = 'ATTR9';\nconst SEMANTIC_ATTR10 = 'ATTR10';\nconst SEMANTIC_ATTR11 = 'ATTR11';\nconst SEMANTIC_ATTR12 = 'ATTR12';\nconst SEMANTIC_ATTR13 = 'ATTR13';\nconst SEMANTIC_ATTR14 = 'ATTR14';\nconst SEMANTIC_ATTR15 = 'ATTR15';\nconst SHADERTAG_MATERIAL = 1;\nconst STENCILOP_KEEP = 0;\nconst STENCILOP_ZERO = 1;\nconst STENCILOP_REPLACE = 2;\nconst STENCILOP_INCREMENT = 3;\nconst STENCILOP_INCREMENTWRAP = 4;\nconst STENCILOP_DECREMENT = 5;\nconst STENCILOP_DECREMENTWRAP = 6;\nconst STENCILOP_INVERT = 7;\nconst TEXTURELOCK_NONE = 0;\nconst TEXTURELOCK_READ = 1;\nconst TEXTURELOCK_WRITE = 2;\nconst TEXTURETYPE_DEFAULT = 'default';\nconst TEXTURETYPE_RGBM = 'rgbm';\nconst TEXTURETYPE_RGBE = 'rgbe';\nconst TEXTURETYPE_RGBP = 'rgbp';\nconst TEXTURETYPE_SWIZZLEGGGR = 'swizzleGGGR';\nconst TEXHINT_NONE = 0;\nconst TEXHINT_SHADOWMAP = 1;\nconst TEXHINT_ASSET = 2;\nconst TEXHINT_LIGHTMAP = 3;\nconst TEXTUREDIMENSION_1D = '1d';\nconst TEXTUREDIMENSION_2D = '2d';\nconst TEXTUREDIMENSION_2D_ARRAY = '2d-array';\nconst TEXTUREDIMENSION_CUBE = 'cube';\nconst TEXTUREDIMENSION_CUBE_ARRAY = 'cube-array';\nconst TEXTUREDIMENSION_3D = '3d';\nconst SAMPLETYPE_FLOAT = 0;\nconst SAMPLETYPE_UNFILTERABLE_FLOAT = 1;\nconst SAMPLETYPE_DEPTH = 2;\nconst SAMPLETYPE_INT = 3;\nconst SAMPLETYPE_UINT = 4;\nconst TEXTUREPROJECTION_NONE = 'none';\nconst TEXTUREPROJECTION_CUBE = 'cube';\nconst TEXTUREPROJECTION_EQUIRECT = 'equirect';\nconst TEXTUREPROJECTION_OCTAHEDRAL = 'octahedral';\nconst SHADERLANGUAGE_GLSL = 'glsl';\nconst SHADERLANGUAGE_WGSL = 'wgsl';\nconst TYPE_INT8 = 0;\nconst TYPE_UINT8 = 1;\nconst TYPE_INT16 = 2;\nconst TYPE_UINT16 = 3;\nconst TYPE_INT32 = 4;\nconst TYPE_UINT32 = 5;\nconst TYPE_FLOAT32 = 6;\nconst TYPE_FLOAT16 = 7;\nconst UNIFORMTYPE_BOOL = 0;\nconst UNIFORMTYPE_INT = 1;\nconst UNIFORMTYPE_FLOAT = 2;\nconst UNIFORMTYPE_VEC2 = 3;\nconst UNIFORMTYPE_VEC3 = 4;\nconst UNIFORMTYPE_VEC4 = 5;\nconst UNIFORMTYPE_IVEC2 = 6;\nconst UNIFORMTYPE_IVEC3 = 7;\nconst UNIFORMTYPE_IVEC4 = 8;\nconst UNIFORMTYPE_BVEC2 = 9;\nconst UNIFORMTYPE_BVEC3 = 10;\nconst UNIFORMTYPE_BVEC4 = 11;\nconst UNIFORMTYPE_MAT2 = 12;\nconst UNIFORMTYPE_MAT3 = 13;\nconst UNIFORMTYPE_MAT4 = 14;\nconst UNIFORMTYPE_TEXTURE2D = 15;\nconst UNIFORMTYPE_TEXTURECUBE = 16;\nconst UNIFORMTYPE_FLOATARRAY = 17;\nconst UNIFORMTYPE_TEXTURE2D_SHADOW = 18;\nconst UNIFORMTYPE_TEXTURECUBE_SHADOW = 19;\nconst UNIFORMTYPE_TEXTURE3D = 20;\nconst UNIFORMTYPE_VEC2ARRAY = 21;\nconst UNIFORMTYPE_VEC3ARRAY = 22;\nconst UNIFORMTYPE_VEC4ARRAY = 23;\nconst UNIFORMTYPE_MAT4ARRAY = 24;\nconst UNIFORMTYPE_TEXTURE2D_ARRAY = 25;\nconst UNIFORMTYPE_UINT = 26;\nconst UNIFORMTYPE_UVEC2 = 27;\nconst UNIFORMTYPE_UVEC3 = 28;\nconst UNIFORMTYPE_UVEC4 = 29;\nconst UNIFORMTYPE_INTARRAY = 30;\nconst UNIFORMTYPE_UINTARRAY = 31;\nconst UNIFORMTYPE_BOOLARRAY = 32;\nconst UNIFORMTYPE_IVEC2ARRAY = 33;\nconst UNIFORMTYPE_UVEC2ARRAY = 34;\nconst UNIFORMTYPE_BVEC2ARRAY = 35;\nconst UNIFORMTYPE_IVEC3ARRAY = 36;\nconst UNIFORMTYPE_UVEC3ARRAY = 37;\nconst UNIFORMTYPE_BVEC3ARRAY = 38;\nconst UNIFORMTYPE_IVEC4ARRAY = 39;\nconst UNIFORMTYPE_UVEC4ARRAY = 40;\nconst UNIFORMTYPE_BVEC4ARRAY = 41;\nconst UNIFORMTYPE_ITEXTURE2D = 42;\nconst UNIFORMTYPE_UTEXTURE2D = 43;\nconst UNIFORMTYPE_ITEXTURECUBE = 44;\nconst UNIFORMTYPE_UTEXTURECUBE = 45;\nconst UNIFORMTYPE_ITEXTURE3D = 46;\nconst UNIFORMTYPE_UTEXTURE3D = 47;\nconst UNIFORMTYPE_ITEXTURE2D_ARRAY = 48;\nconst UNIFORMTYPE_UTEXTURE2D_ARRAY = 49;\nconst uniformTypeToName = ['bool', 'int', 'float', 'vec2', 'vec3', 'vec4', 'ivec2', 'ivec3', 'ivec4', 'bvec2', 'bvec3', 'bvec4', 'mat2', 'mat3', 'mat4', 'sampler2D', 'samplerCube', '', 'sampler2DShadow', 'samplerCubeShadow', 'sampler3D', '', '', '', '', 'sampler2DArray', 'uint', 'uvec2', 'uvec3', 'uvec4', '', '', '', '', '', '', '', '', '', '', '', '', 'isampler2D', 'usampler2D', 'isamplerCube', 'usamplerCube', 'isampler3D', 'usampler3D', 'isampler2DArray', 'usampler2DArray'];\nconst uniformTypeToStorage = new Uint8Array([TYPE_INT32, TYPE_INT32, TYPE_FLOAT32, TYPE_FLOAT32, TYPE_FLOAT32, TYPE_FLOAT32, TYPE_INT32, TYPE_INT32, TYPE_INT32, TYPE_INT32, TYPE_INT32, TYPE_INT32, TYPE_FLOAT32, TYPE_FLOAT32, TYPE_FLOAT32, TYPE_INT32, TYPE_INT32, TYPE_FLOAT32, TYPE_INT32, TYPE_INT32, TYPE_INT32, TYPE_FLOAT32, TYPE_FLOAT32, TYPE_FLOAT32, TYPE_FLOAT32, TYPE_INT32, TYPE_UINT32, TYPE_UINT32, TYPE_UINT32, TYPE_UINT32, TYPE_INT32, TYPE_UINT32, TYPE_INT32, TYPE_INT32, TYPE_UINT32, TYPE_INT32, TYPE_INT32, TYPE_UINT32, TYPE_INT32, TYPE_INT32, TYPE_UINT32, TYPE_INT32, TYPE_INT32, TYPE_UINT32, TYPE_INT32, TYPE_UINT32, TYPE_INT32, TYPE_UINT32, TYPE_INT32, TYPE_UINT32]);\nconst DEVICETYPE_WEBGL1 = 'webgl1';\nconst DEVICETYPE_WEBGL2 = 'webgl2';\nconst DEVICETYPE_WEBGPU = 'webgpu';\nconst DEVICETYPE_NULL = 'null';\nconst SHADERSTAGE_VERTEX = 1;\nconst SHADERSTAGE_FRAGMENT = 2;\nconst SHADERSTAGE_COMPUTE = 4;\nconst BINDGROUP_MESH = 0;\nconst BINDGROUP_VIEW = 1;\nconst bindGroupNames = ['mesh', 'view'];\nconst UNIFORM_BUFFER_DEFAULT_SLOT_NAME = 'default';\nconst typedArrayTypes = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Uint16Array];\nconst typedArrayTypesByteSize = [1, 1, 2, 2, 4, 4, 4, 2];\nconst vertexTypesNames = ['INT8', 'UINT8', 'INT16', 'UINT16', 'INT32', 'UINT32', 'FLOAT32', 'FLOAT16'];\nconst typedArrayToType = {\n\t'Int8Array': TYPE_INT8,\n\t'Uint8Array': TYPE_UINT8,\n\t'Int16Array': TYPE_INT16,\n\t'Uint16Array': TYPE_UINT16,\n\t'Int32Array': TYPE_INT32,\n\t'Uint32Array': TYPE_UINT32,\n\t'Float32Array': TYPE_FLOAT32\n};\nconst typedArrayIndexFormats = [Uint8Array, Uint16Array, Uint32Array];\nconst typedArrayIndexFormatsByteSize = [1, 2, 4];\nconst semanticToLocation = {};\nsemanticToLocation[SEMANTIC_POSITION] = 0;\nsemanticToLocation[SEMANTIC_NORMAL] = 1;\nsemanticToLocation[SEMANTIC_BLENDWEIGHT] = 2;\nsemanticToLocation[SEMANTIC_BLENDINDICES] = 3;\nsemanticToLocation[SEMANTIC_COLOR] = 4;\nsemanticToLocation[SEMANTIC_TEXCOORD0] = 5;\nsemanticToLocation[SEMANTIC_TEXCOORD1] = 6;\nsemanticToLocation[SEMANTIC_TEXCOORD2] = 7;\nsemanticToLocation[SEMANTIC_TEXCOORD3] = 8;\nsemanticToLocation[SEMANTIC_TEXCOORD4] = 9;\nsemanticToLocation[SEMANTIC_TEXCOORD5] = 10;\nsemanticToLocation[SEMANTIC_TEXCOORD6] = 11;\nsemanticToLocation[SEMANTIC_TEXCOORD7] = 12;\nsemanticToLocation[SEMANTIC_TANGENT] = 13;\nsemanticToLocation[SEMANTIC_ATTR0] = 0;\nsemanticToLocation[SEMANTIC_ATTR1] = 1;\nsemanticToLocation[SEMANTIC_ATTR2] = 2;\nsemanticToLocation[SEMANTIC_ATTR3] = 3;\nsemanticToLocation[SEMANTIC_ATTR4] = 4;\nsemanticToLocation[SEMANTIC_ATTR5] = 5;\nsemanticToLocation[SEMANTIC_ATTR6] = 6;\nsemanticToLocation[SEMANTIC_ATTR7] = 7;\nsemanticToLocation[SEMANTIC_ATTR8] = 8;\nsemanticToLocation[SEMANTIC_ATTR9] = 9;\nsemanticToLocation[SEMANTIC_ATTR10] = 10;\nsemanticToLocation[SEMANTIC_ATTR11] = 11;\nsemanticToLocation[SEMANTIC_ATTR12] = 12;\nsemanticToLocation[SEMANTIC_ATTR13] = 13;\nsemanticToLocation[SEMANTIC_ATTR14] = 14;\nsemanticToLocation[SEMANTIC_ATTR15] = 15;\nconst CHUNKAPI_1_51 = '1.51';\nconst CHUNKAPI_1_55 = '1.55';\nconst CHUNKAPI_1_56 = '1.56';\nconst CHUNKAPI_1_57 = '1.57';\nconst CHUNKAPI_1_58 = '1.58';\nconst CHUNKAPI_1_60 = '1.60';\nconst CHUNKAPI_1_62 = '1.62';\nconst CHUNKAPI_1_65 = '1.65';\nconst CHUNKAPI_1_70 = '1.70';\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\n\nconst BitPacking = {\n\tset(storage, value, shift, mask = 1) {\n\t\tconst data = storage & ~(mask << shift);\n\t\treturn data | value << shift;\n\t},\n\tget(storage, shift, mask = 1) {\n\t\treturn storage >> shift & mask;\n\t},\n\tall(storage, shift, mask = 1) {\n\t\tconst shifted = mask << shift;\n\t\treturn (storage & shifted) === shifted;\n\t},\n\tany(storage, shift, mask = 1) {\n\t\treturn (storage & mask << shift) !== 0;\n\t}\n};\n\nvar _BlendState;\nconst opMask = 0b111;\nconst factorMask = 0b1111;\nconst colorOpShift = 0;\nconst colorSrcFactorShift = 3;\nconst colorDstFactorShift = 7;\nconst alphaOpShift = 11;\nconst alphaSrcFactorShift = 14;\nconst alphaDstFactorShift = 18;\nconst redWriteShift = 22;\nconst greenWriteShift = 23;\nconst blueWriteShift = 24;\nconst alphaWriteShift = 25;\nconst blendShift = 26;\nconst allWriteMasks = 0b1111;\nconst allWriteShift = redWriteShift;\nclass BlendState {\n\tconstructor(blend = false, colorOp = BLENDEQUATION_ADD, colorSrcFactor = BLENDMODE_ONE, colorDstFactor = BLENDMODE_ZERO, alphaOp, alphaSrcFactor, alphaDstFactor, redWrite = true, greenWrite = true, blueWrite = true, alphaWrite = true) {\n\t\tthis.target0 = 0;\n\t\tthis.setColorBlend(colorOp, colorSrcFactor, colorDstFactor);\n\t\tthis.setAlphaBlend(alphaOp != null ? alphaOp : colorOp, alphaSrcFactor != null ? alphaSrcFactor : colorSrcFactor, alphaDstFactor != null ? alphaDstFactor : colorDstFactor);\n\t\tthis.setColorWrite(redWrite, greenWrite, blueWrite, alphaWrite);\n\t\tthis.blend = blend;\n\t}\n\tset blend(value) {\n\t\tthis.target0 = BitPacking.set(this.target0, value ? 1 : 0, blendShift);\n\t}\n\tget blend() {\n\t\treturn BitPacking.all(this.target0, blendShift);\n\t}\n\tsetColorBlend(op, srcFactor, dstFactor) {\n\t\tthis.target0 = BitPacking.set(this.target0, op, colorOpShift, opMask);\n\t\tthis.target0 = BitPacking.set(this.target0, srcFactor, colorSrcFactorShift, factorMask);\n\t\tthis.target0 = BitPacking.set(this.target0, dstFactor, colorDstFactorShift, factorMask);\n\t}\n\tsetAlphaBlend(op, srcFactor, dstFactor) {\n\t\tthis.target0 = BitPacking.set(this.target0, op, alphaOpShift, opMask);\n\t\tthis.target0 = BitPacking.set(this.target0, srcFactor, alphaSrcFactorShift, factorMask);\n\t\tthis.target0 = BitPacking.set(this.target0, dstFactor, alphaDstFactorShift, factorMask);\n\t}\n\tsetColorWrite(redWrite, greenWrite, blueWrite, alphaWrite) {\n\t\tthis.redWrite = redWrite;\n\t\tthis.greenWrite = greenWrite;\n\t\tthis.blueWrite = blueWrite;\n\t\tthis.alphaWrite = alphaWrite;\n\t}\n\tget colorOp() {\n\t\treturn BitPacking.get(this.target0, colorOpShift, opMask);\n\t}\n\tget colorSrcFactor() {\n\t\treturn BitPacking.get(this.target0, colorSrcFactorShift, factorMask);\n\t}\n\tget colorDstFactor() {\n\t\treturn BitPacking.get(this.target0, colorDstFactorShift, factorMask);\n\t}\n\tget alphaOp() {\n\t\treturn BitPacking.get(this.target0, alphaOpShift, opMask);\n\t}\n\tget alphaSrcFactor() {\n\t\treturn BitPacking.get(this.target0, alphaSrcFactorShift, factorMask);\n\t}\n\tget alphaDstFactor() {\n\t\treturn BitPacking.get(this.target0, alphaDstFactorShift, factorMask);\n\t}\n\tset redWrite(value) {\n\t\tthis.target0 = BitPacking.set(this.target0, value ? 1 : 0, redWriteShift);\n\t}\n\tget redWrite() {\n\t\treturn BitPacking.all(this.target0, redWriteShift);\n\t}\n\tset greenWrite(value) {\n\t\tthis.target0 = BitPacking.set(this.target0, value ? 1 : 0, greenWriteShift);\n\t}\n\tget greenWrite() {\n\t\treturn BitPacking.all(this.target0, greenWriteShift);\n\t}\n\tset blueWrite(value) {\n\t\tthis.target0 = BitPacking.set(this.target0, value ? 1 : 0, blueWriteShift);\n\t}\n\tget blueWrite() {\n\t\treturn BitPacking.all(this.target0, blueWriteShift);\n\t}\n\tset alphaWrite(value) {\n\t\tthis.target0 = BitPacking.set(this.target0, value ? 1 : 0, alphaWriteShift);\n\t}\n\tget alphaWrite() {\n\t\treturn BitPacking.all(this.target0, alphaWriteShift);\n\t}\n\tget allWrite() {\n\t\treturn BitPacking.get(this.target0, allWriteShift, allWriteMasks);\n\t}\n\tcopy(rhs) {\n\t\tthis.target0 = rhs.target0;\n\t\treturn this;\n\t}\n\tclone() {\n\t\tconst clone = new this.constructor();\n\t\treturn clone.copy(this);\n\t}\n\tget key() {\n\t\treturn this.target0;\n\t}\n\tequals(rhs) {\n\t\treturn this.target0 === rhs.target0;\n\t}\n}\n_BlendState = BlendState;\nBlendState.NOBLEND = Object.freeze(new _BlendState());\nBlendState.NOWRITE = Object.freeze(new _BlendState(undefined, undefined, undefined, undefined, undefined, undefined, undefined, false, false, false, false));\nBlendState.ALPHABLEND = Object.freeze(new _BlendState(true, BLENDEQUATION_ADD, BLENDMODE_SRC_ALPHA, BLENDMODE_ONE_MINUS_SRC_ALPHA));\nBlendState.ADDBLEND = Object.freeze(new _BlendState(true, BLENDEQUATION_ADD, BLENDMODE_ONE, BLENDMODE_ONE));\n\nclass StringIds {\n\tconstructor() {\n\t\tthis.map = new Map();\n\t\tthis.id = 0;\n\t}\n\tget(name) {\n\t\tlet value = this.map.get(name);\n\t\tif (value === undefined) {\n\t\t\tvalue = this.id++;\n\t\t\tthis.map.set(name, value);\n\t\t}\n\t\treturn value;\n\t}\n}\n\nvar _DepthState;\nconst stringIds$4 = new StringIds();\nconst funcMask = 0b111;\nconst funcShift = 0;\nconst writeShift = 3;\nclass DepthState {\n\tconstructor(func = FUNC_LESSEQUAL, write = true) {\n\t\tthis.data = 0;\n\t\tthis._depthBias = 0;\n\t\tthis._depthBiasSlope = 0;\n\t\tthis.key = 0;\n\t\tthis.func = func;\n\t\tthis.write = write;\n\t}\n\tset test(value) {\n\t\tthis.func = value ? FUNC_LESSEQUAL : FUNC_ALWAYS;\n\t\tthis.updateKey();\n\t}\n\tget test() {\n\t\treturn this.func !== FUNC_ALWAYS;\n\t}\n\tset write(value) {\n\t\tthis.data = BitPacking.set(this.data, value ? 1 : 0, writeShift);\n\t\tthis.updateKey();\n\t}\n\tget write() {\n\t\treturn BitPacking.all(this.data, writeShift);\n\t}\n\tset func(value) {\n\t\tthis.data = BitPacking.set(this.data, value, funcShift, funcMask);\n\t\tthis.updateKey();\n\t}\n\tget func() {\n\t\treturn BitPacking.get(this.data, funcShift, funcMask);\n\t}\n\tset depthBias(value) {\n\t\tthis._depthBias = value;\n\t\tthis.updateKey();\n\t}\n\tget depthBias() {\n\t\treturn this._depthBias;\n\t}\n\tset depthBiasSlope(value) {\n\t\tthis._depthBiasSlope = value;\n\t\tthis.updateKey();\n\t}\n\tget depthBiasSlope() {\n\t\treturn this._depthBiasSlope;\n\t}\n\tcopy(rhs) {\n\t\tthis.data = rhs.data;\n\t\tthis._depthBias = rhs._depthBias;\n\t\tthis._depthBiasSlope = rhs._depthBiasSlope;\n\t\tthis.key = rhs.key;\n\t\treturn this;\n\t}\n\tclone() {\n\t\tconst clone = new this.constructor();\n\t\treturn clone.copy(this);\n\t}\n\tupdateKey() {\n\t\tconst {\n\t\t\tdata,\n\t\t\t_depthBias,\n\t\t\t_depthBiasSlope\n\t\t} = this;\n\t\tconst key = `${data}-${_depthBias}-${_depthBiasSlope}`;\n\t\tthis.key = stringIds$4.get(key);\n\t}\n\tequals(rhs) {\n\t\treturn this.key === rhs.key;\n\t}\n}\n_DepthState = DepthState;\nDepthState.DEFAULT = Object.freeze(new _DepthState());\nDepthState.NODEPTH = Object.freeze(new _DepthState(FUNC_ALWAYS, false));\nDepthState.WRITEDEPTH = Object.freeze(new _DepthState(FUNC_ALWAYS, true));\n\nclass Version {\n\tconstructor() {\n\t\tthis.globalId = 0;\n\t\tthis.revision = 0;\n\t}\n\tequals(other) {\n\t\treturn this.globalId === other.globalId && this.revision === other.revision;\n\t}\n\tcopy(other) {\n\t\tthis.globalId = other.globalId;\n\t\tthis.revision = other.revision;\n\t}\n\treset() {\n\t\tthis.globalId = 0;\n\t\tthis.revision = 0;\n\t}\n}\n\nlet idCounter = 0;\nclass VersionedObject {\n\tconstructor() {\n\t\tidCounter++;\n\t\tthis.version = new Version();\n\t\tthis.version.globalId = idCounter;\n\t}\n\tincrement() {\n\t\tthis.version.revision++;\n\t}\n}\n\nclass ScopeId {\n\tconstructor(name) {\n\t\tthis.name = name;\n\t\tthis.value = null;\n\t\tthis.versionObject = new VersionedObject();\n\t}\n\ttoJSON(key) {\n\t\treturn undefined;\n\t}\n\tsetValue(value) {\n\t\tthis.value = value;\n\t\tthis.versionObject.increment();\n\t}\n\tgetValue() {\n\t\treturn this.value;\n\t}\n}\n\nclass ScopeSpace {\n\tconstructor(name) {\n\t\tthis.name = name;\n\t\tthis.variables = new Map();\n\t}\n\tresolve(name) {\n\t\tif (!this.variables.has(name)) {\n\t\t\tthis.variables.set(name, new ScopeId(name));\n\t\t}\n\t\treturn this.variables.get(name);\n\t}\n\tremoveValue(value) {\n\t\tfor (const uniformName in this.variables) {\n\t\t\tconst uniform = this.variables[uniformName];\n\t\t\tif (uniform.value === value) {\n\t\t\t\tuniform.value = null;\n\t\t\t}\n\t\t}\n\t}\n}\n\nlet id$b = 0;\nclass VertexBuffer {\n\tconstructor(graphicsDevice, format, numVertices, options) {\n\t\tthis.usage = BUFFER_STATIC;\n\t\tlet initialData;\n\t\tif (typeof options === 'object') {\n\t\t\tvar _options$usage;\n\t\t\tthis.usage = (_options$usage = options.usage) != null ? _options$usage : BUFFER_STATIC;\n\t\t\tinitialData = options.data;\n\t\t} else if (arguments.length > 3) {\n\t\t\tvar _arguments$;\n\t\t\tthis.usage = (_arguments$ = arguments[3]) != null ? _arguments$ : BUFFER_STATIC;\n\t\t\tinitialData = arguments[4];\n\t\t}\n\t\tthis.device = graphicsDevice;\n\t\tthis.format = format;\n\t\tthis.numVertices = numVertices;\n\t\tthis.id = id$b++;\n\t\tthis.impl = graphicsDevice.createVertexBufferImpl(this, format, options);\n\t\tthis.numBytes = format.verticesByteSize ? format.verticesByteSize : format.size * numVertices;\n\t\tthis.adjustVramSizeTracking(graphicsDevice._vram, this.numBytes);\n\t\tif (initialData) {\n\t\t\tthis.setData(initialData);\n\t\t} else {\n\t\t\tthis.storage = new ArrayBuffer(this.numBytes);\n\t\t}\n\t\tthis.device.buffers.push(this);\n\t}\n\tdestroy() {\n\t\tconst device = this.device;\n\t\tconst idx = device.buffers.indexOf(this);\n\t\tif (idx !== -1) {\n\t\t\tdevice.buffers.splice(idx, 1);\n\t\t}\n\t\tif (this.impl.initialized) {\n\t\t\tthis.impl.destroy(device);\n\t\t\tthis.adjustVramSizeTracking(device._vram, -this.storage.byteLength);\n\t\t}\n\t}\n\tadjustVramSizeTracking(vram, size) {\n\t\tvram.vb += size;\n\t}\n\tloseContext() {\n\t\tthis.impl.loseContext();\n\t}\n\tgetFormat() {\n\t\treturn this.format;\n\t}\n\tgetUsage() {\n\t\treturn this.usage;\n\t}\n\tgetNumVertices() {\n\t\treturn this.numVertices;\n\t}\n\tlock() {\n\t\treturn this.storage;\n\t}\n\tunlock() {\n\t\tthis.impl.unlock(this);\n\t}\n\tsetData(data) {\n\t\tif (data.byteLength !== this.numBytes) {\n\t\t\treturn false;\n\t\t}\n\t\tthis.storage = data;\n\t\tthis.unlock();\n\t\treturn true;\n\t}\n}\n\nfunction hashCode(str) {\n\tlet hash = 0;\n\tfor (let i = 0, len = str.length; i < len; i++) {\n\t\thash = (hash << 5) - hash + str.charCodeAt(i);\n\t\thash |= 0;\n\t}\n\treturn hash;\n}\nfunction hash32Fnv1a(array) {\n\tconst prime = 16777619;\n\tlet hash = 2166136261;\n\tfor (let i = 0; i < array.length; i++) {\n\t\thash ^= array[i];\n\t\thash *= prime;\n\t}\n\treturn hash >>> 0;\n}\n\nclass DeviceCache {\n\tconstructor() {\n\t\tthis._cache = new Map();\n\t}\n\tget(device, onCreate) {\n\t\tif (!this._cache.has(device)) {\n\t\t\tthis._cache.set(device, onCreate());\n\t\t\tdevice.on('destroy', () => {\n\t\t\t\tthis.remove(device);\n\t\t\t});\n\t\t\tdevice.on('devicelost', () => {\n\t\t\t\tvar _this$_cache$get;\n\t\t\t\t(_this$_cache$get = this._cache.get(device)) == null || _this$_cache$get.loseContext == null || _this$_cache$get.loseContext(device);\n\t\t\t});\n\t\t}\n\t\treturn this._cache.get(device);\n\t}\n\tremove(device) {\n\t\tvar _this$_cache$get2;\n\t\t(_this$_cache$get2 = this._cache.get(device)) == null || _this$_cache$get2.destroy == null || _this$_cache$get2.destroy(device);\n\t\tthis._cache.delete(device);\n\t}\n}\n\nconst stringIds$3 = new StringIds();\nconst webgpuValidElementSizes = [2, 4, 8, 12, 16];\nconst deviceCache$2 = new DeviceCache();\nclass VertexFormat {\n\tconstructor(graphicsDevice, description, vertexCount) {\n\t\tthis.device = graphicsDevice;\n\t\tthis._elements = [];\n\t\tthis.hasUv0 = false;\n\t\tthis.hasUv1 = false;\n\t\tthis.hasColor = false;\n\t\tthis.hasTangents = false;\n\t\tthis.verticesByteSize = 0;\n\t\tthis.vertexCount = vertexCount;\n\t\tthis.interleaved = vertexCount === undefined;\n\t\tthis.instancing = false;\n\t\tthis.size = description.reduce((total, desc) => {\n\t\t\treturn total + Math.ceil(desc.components * typedArrayTypesByteSize[desc.type] / 4) * 4;\n\t\t}, 0);\n\t\tlet offset = 0,\n\t\t\telementSize;\n\t\tfor (let i = 0, len = description.length; i < len; i++) {\n\t\t\tvar _elementDesc$asInt, _elementDesc$normaliz;\n\t\t\tconst elementDesc = description[i];\n\t\t\telementSize = elementDesc.components * typedArrayTypesByteSize[elementDesc.type];\n\t\t\tif (vertexCount) {\n\t\t\t\toffset = math.roundUp(offset, elementSize);\n\t\t\t}\n\t\t\tconst asInt = (_elementDesc$asInt = elementDesc.asInt) != null ? _elementDesc$asInt : false;\n\t\t\tconst normalize = asInt ? false : (_elementDesc$normaliz = elementDesc.normalize) != null ? _elementDesc$normaliz : false;\n\t\t\tconst element = {\n\t\t\t\tname: elementDesc.semantic,\n\t\t\t\toffset: vertexCount ? offset : elementDesc.hasOwnProperty('offset') ? elementDesc.offset : offset,\n\t\t\t\tstride: vertexCount ? elementSize : elementDesc.hasOwnProperty('stride') ? elementDesc.stride : this.size,\n\t\t\t\tdataType: elementDesc.type,\n\t\t\t\tnumComponents: elementDesc.components,\n\t\t\t\tnormalize: normalize,\n\t\t\t\tsize: elementSize,\n\t\t\t\tasInt: asInt\n\t\t\t};\n\t\t\tthis._elements.push(element);\n\t\t\tif (vertexCount) {\n\t\t\t\toffset += elementSize * vertexCount;\n\t\t\t} else {\n\t\t\t\toffset += Math.ceil(elementSize / 4) * 4;\n\t\t\t}\n\t\t\tif (elementDesc.semantic === SEMANTIC_TEXCOORD0) {\n\t\t\t\tthis.hasUv0 = true;\n\t\t\t} else if (elementDesc.semantic === SEMANTIC_TEXCOORD1) {\n\t\t\t\tthis.hasUv1 = true;\n\t\t\t} else if (elementDesc.semantic === SEMANTIC_COLOR) {\n\t\t\t\tthis.hasColor = true;\n\t\t\t} else if (elementDesc.semantic === SEMANTIC_TANGENT) {\n\t\t\t\tthis.hasTangents = true;\n\t\t\t}\n\t\t}\n\t\tif (vertexCount) {\n\t\t\tthis.verticesByteSize = offset;\n\t\t}\n\t\tthis._evaluateHash();\n\t}\n\tget elements() {\n\t\treturn this._elements;\n\t}\n\tstatic getDefaultInstancingFormat(graphicsDevice) {\n\t\treturn deviceCache$2.get(graphicsDevice, () => {\n\t\t\treturn new VertexFormat(graphicsDevice, [{\n\t\t\t\tsemantic: SEMANTIC_ATTR12,\n\t\t\t\tcomponents: 4,\n\t\t\t\ttype: TYPE_FLOAT32\n\t\t\t}, {\n\t\t\t\tsemantic: SEMANTIC_ATTR13,\n\t\t\t\tcomponents: 4,\n\t\t\t\ttype: TYPE_FLOAT32\n\t\t\t}, {\n\t\t\t\tsemantic: SEMANTIC_ATTR14,\n\t\t\t\tcomponents: 4,\n\t\t\t\ttype: TYPE_FLOAT32\n\t\t\t}, {\n\t\t\t\tsemantic: SEMANTIC_ATTR15,\n\t\t\t\tcomponents: 4,\n\t\t\t\ttype: TYPE_FLOAT32\n\t\t\t}]);\n\t\t});\n\t}\n\tstatic isElementValid(graphicsDevice, elementDesc) {\n\t\tconst elementSize = elementDesc.components * typedArrayTypesByteSize[elementDesc.type];\n\t\tif (graphicsDevice.isWebGPU && !webgpuValidElementSizes.includes(elementSize)) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\tupdate() {\n\t\tthis._evaluateHash();\n\t}\n\t_evaluateHash() {\n\t\tconst stringElementsBatch = [];\n\t\tconst stringElementsRender = [];\n\t\tconst len = this._elements.length;\n\t\tfor (let i = 0; i < len; i++) {\n\t\t\tconst {\n\t\t\t\tname,\n\t\t\t\tdataType,\n\t\t\t\tnumComponents,\n\t\t\t\tnormalize,\n\t\t\t\toffset,\n\t\t\t\tstride,\n\t\t\t\tsize,\n\t\t\t\tasInt\n\t\t\t} = this._elements[i];\n\t\t\tconst stringElementBatch = name + dataType + numComponents + normalize + asInt;\n\t\t\tstringElementsBatch.push(stringElementBatch);\n\t\t\tconst stringElementRender = stringElementBatch + offset + stride + size;\n\t\t\tstringElementsRender.push(stringElementRender);\n\t\t}\n\t\tstringElementsBatch.sort();\n\t\tconst batchingString = stringElementsBatch.join();\n\t\tthis.batchingHash = hashCode(batchingString);\n\t\tthis.shaderProcessingHashString = batchingString;\n\t\tthis.renderingHashString = stringElementsRender.join('_');\n\t\tthis.renderingHash = stringIds$3.get(this.renderingHashString);\n\t}\n}\n\nvar _StencilParameters;\nconst stringIds$2 = new StringIds();\nclass StencilParameters {\n\tset func(value) {\n\t\tthis._func = value;\n\t\tthis._dirty = true;\n\t}\n\tget func() {\n\t\treturn this._func;\n\t}\n\tset ref(value) {\n\t\tthis._ref = value;\n\t\tthis._dirty = true;\n\t}\n\tget ref() {\n\t\treturn this._ref;\n\t}\n\tset fail(value) {\n\t\tthis._fail = value;\n\t\tthis._dirty = true;\n\t}\n\tget fail() {\n\t\treturn this._fail;\n\t}\n\tset zfail(value) {\n\t\tthis._zfail = value;\n\t\tthis._dirty = true;\n\t}\n\tget zfail() {\n\t\treturn this._zfail;\n\t}\n\tset zpass(value) {\n\t\tthis._zpass = value;\n\t\tthis._dirty = true;\n\t}\n\tget zpass() {\n\t\treturn this._zpass;\n\t}\n\tset readMask(value) {\n\t\tthis._readMask = value;\n\t\tthis._dirty = true;\n\t}\n\tget readMask() {\n\t\treturn this._readMask;\n\t}\n\tset writeMask(value) {\n\t\tthis._writeMask = value;\n\t\tthis._dirty = true;\n\t}\n\tget writeMask() {\n\t\treturn this._writeMask;\n\t}\n\tconstructor(options = {}) {\n\t\tvar _options$func, _options$ref, _options$readMask, _options$writeMask, _options$fail, _options$zfail, _options$zpass;\n\t\tthis._func = void 0;\n\t\tthis._ref = void 0;\n\t\tthis._fail = void 0;\n\t\tthis._zfail = void 0;\n\t\tthis._zpass = void 0;\n\t\tthis._readMask = void 0;\n\t\tthis._writeMask = void 0;\n\t\tthis._dirty = true;\n\t\tthis._key = void 0;\n\t\tthis._func = (_options$func = options.func) != null ? _options$func : FUNC_ALWAYS;\n\t\tthis._ref = (_options$ref = options.ref) != null ? _options$ref : 0;\n\t\tthis._readMask = (_options$readMask = options.readMask) != null ? _options$readMask : 0xFF;\n\t\tthis._writeMask = (_options$writeMask = options.writeMask) != null ? _options$writeMask : 0xFF;\n\t\tthis._fail = (_options$fail = options.fail) != null ? _options$fail : STENCILOP_KEEP;\n\t\tthis._zfail = (_options$zfail = options.zfail) != null ? _options$zfail : STENCILOP_KEEP;\n\t\tthis._zpass = (_options$zpass = options.zpass) != null ? _options$zpass : STENCILOP_KEEP;\n\t\tthis._evalKey();\n\t}\n\t_evalKey() {\n\t\tconst {\n\t\t\t_func,\n\t\t\t_ref,\n\t\t\t_fail,\n\t\t\t_zfail,\n\t\t\t_zpass,\n\t\t\t_readMask,\n\t\t\t_writeMask\n\t\t} = this;\n\t\tconst key = `${_func},${_ref},${_fail},${_zfail},${_zpass},${_readMask},${_writeMask}`;\n\t\tthis._key = stringIds$2.get(key);\n\t\tthis._dirty = false;\n\t}\n\tget key() {\n\t\tif (this._dirty) {\n\t\t\tthis._evalKey();\n\t\t}\n\t\treturn this._key;\n\t}\n\tcopy(rhs) {\n\t\tthis._func = rhs._func;\n\t\tthis._ref = rhs._ref;\n\t\tthis._readMask = rhs._readMask;\n\t\tthis._writeMask = rhs._writeMask;\n\t\tthis._fail = rhs._fail;\n\t\tthis._zfail = rhs._zfail;\n\t\tthis._zpass = rhs._zpass;\n\t\tthis._dirty = rhs._dirty;\n\t\tthis._key = rhs._key;\n\t\treturn this;\n\t}\n\tclone() {\n\t\tconst clone = new this.constructor();\n\t\treturn clone.copy(this);\n\t}\n}\n_StencilParameters = StencilParameters;\nStencilParameters.DEFAULT = Object.freeze(new _StencilParameters());\n\nclass GraphicsDevice extends EventHandler {\n\tconstructor(canvas, options) {\n\t\tvar _this$initOptions, _this$initOptions$dep, _this$initOptions2, _this$initOptions2$st, _this$initOptions3, _this$initOptions3$an, _this$initOptions4, _this$initOptions4$po;\n\t\tsuper();\n\t\tthis.canvas = void 0;\n\t\tthis.backBuffer = null;\n\t\tthis.backBufferSize = new Vec2();\n\t\tthis.backBufferFormat = void 0;\n\t\tthis.backBufferAntialias = false;\n\t\tthis.isWebGPU = false;\n\t\tthis.isWebGL1 = false;\n\t\tthis.isWebGL2 = false;\n\t\tthis.scope = void 0;\n\t\tthis.boneLimit = void 0;\n\t\tthis.maxAnisotropy = void 0;\n\t\tthis.maxCubeMapSize = void 0;\n\t\tthis.maxTextureSize = void 0;\n\t\tthis.maxVolumeSize = void 0;\n\t\tthis.maxColorAttachments = 1;\n\t\tthis.precision = void 0;\n\t\tthis.samples = void 0;\n\t\tthis.supportsStencil = void 0;\n\t\tthis.supportsMrt = false;\n\t\tthis.supportsVolumeTextures = false;\n\t\tthis.supportsCompute = false;\n\t\tthis.supportsStorageTextureRead = false;\n\t\tthis.renderTarget = null;\n\t\tthis.shaders = [];\n\t\tthis.textures = [];\n\t\tthis.targets = new Set();\n\t\tthis.renderVersion = 0;\n\t\tthis.renderPassIndex = void 0;\n\t\tthis.insideRenderPass = false;\n\t\tthis.supportsInstancing = void 0;\n\t\tthis.supportsUniformBuffers = false;\n\t\tthis.textureFloatRenderable = void 0;\n\t\tthis.textureHalfFloatRenderable = void 0;\n\t\tthis.textureFloatFilterable = false;\n\t\tthis.textureHalfFloatFilterable = false;\n\t\tthis.quadVertexBuffer = void 0;\n\t\tthis.blendState = new BlendState();\n\t\tthis.depthState = new DepthState();\n\t\tthis.stencilEnabled = false;\n\t\tthis.stencilFront = new StencilParameters();\n\t\tthis.stencilBack = new StencilParameters();\n\t\tthis.dynamicBuffers = void 0;\n\t\tthis.gpuProfiler = void 0;\n\t\tthis.defaultClearOptions = {\n\t\t\tcolor: [0, 0, 0, 1],\n\t\t\tdepth: 1,\n\t\t\tstencil: 0,\n\t\t\tflags: CLEARFLAG_COLOR | CLEARFLAG_DEPTH\n\t\t};\n\t\tthis.clientRect = {\n\t\t\twidth: 0,\n\t\t\theight: 0\n\t\t};\n\t\tthis.canvas = canvas;\n\t\tthis.initOptions = _extends({}, options);\n\t\t(_this$initOptions$dep = (_this$initOptions = this.initOptions).depth) != null ? _this$initOptions$dep : _this$initOptions.depth = true;\n\t\t(_this$initOptions2$st = (_this$initOptions2 = this.initOptions).stencil) != null ? _this$initOptions2$st : _this$initOptions2.stencil = true;\n\t\t(_this$initOptions3$an = (_this$initOptions3 = this.initOptions).antialias) != null ? _this$initOptions3$an : _this$initOptions3.antialias = true;\n\t\t(_this$initOptions4$po = (_this$initOptions4 = this.initOptions).powerPreference) != null ? _this$initOptions4$po : _this$initOptions4.powerPreference = 'high-performance';\n\t\tthis._maxPixelRatio = platform.browser ? Math.min(1, window.devicePixelRatio) : 1;\n\t\tthis.buffers = [];\n\t\tthis._vram = {\n\t\t\ttex: 0,\n\t\t\tvb: 0,\n\t\t\tib: 0,\n\t\t\tub: 0,\n\t\t\tsb: 0\n\t\t};\n\t\tthis._shaderStats = {\n\t\t\tvsCompiled: 0,\n\t\t\tfsCompiled: 0,\n\t\t\tlinked: 0,\n\t\t\tmaterialShaders: 0,\n\t\t\tcompileTime: 0\n\t\t};\n\t\tthis.initializeContextCaches();\n\t\tthis._drawCallsPerFrame = 0;\n\t\tthis._shaderSwitchesPerFrame = 0;\n\t\tthis._primsPerFrame = [];\n\t\tfor (let i = PRIMITIVE_POINTS; i <= PRIMITIVE_TRIFAN; i++) {\n\t\t\tthis._primsPerFrame[i] = 0;\n\t\t}\n\t\tthis._renderTargetCreationTime = 0;\n\t\tthis.scope = new ScopeSpace('Device');\n\t\tthis.textureBias = this.scope.resolve('textureBias');\n\t\tthis.textureBias.setValue(0.0);\n\t}\n\tpostInit() {\n\t\tconst vertexFormat = new VertexFormat(this, [{\n\t\t\tsemantic: SEMANTIC_POSITION,\n\t\t\tcomponents: 2,\n\t\t\ttype: TYPE_FLOAT32\n\t\t}]);\n\t\tconst positions = new Float32Array([-1, -1, 1, -1, -1, 1, 1, 1]);\n\t\tthis.quadVertexBuffer = new VertexBuffer(this, vertexFormat, 4, {\n\t\t\tdata: positions\n\t\t});\n\t}\n\tdestroy() {\n\t\tvar _this$quadVertexBuffe, _this$dynamicBuffers, _this$gpuProfiler;\n\t\tthis.fire('destroy');\n\t\t(_this$quadVertexBuffe = this.quadVertexBuffer) == null || _this$quadVertexBuffe.destroy();\n\t\tthis.quadVertexBuffer = null;\n\t\t(_this$dynamicBuffers = this.dynamicBuffers) == null || _this$dynamicBuffers.destroy();\n\t\tthis.dynamicBuffers = null;\n\t\t(_this$gpuProfiler = this.gpuProfiler) == null || _this$gpuProfiler.destroy();\n\t\tthis.gpuProfiler = null;\n\t}\n\tonDestroyShader(shader) {\n\t\tthis.fire('destroy:shader', shader);\n\t\tconst idx = this.shaders.indexOf(shader);\n\t\tif (idx !== -1) {\n\t\t\tthis.shaders.splice(idx, 1);\n\t\t}\n\t}\n\tpostDestroy() {\n\t\tthis.scope = null;\n\t\tthis.canvas = null;\n\t}\n\tloseContext() {\n\t\tvar _this$gpuProfiler2;\n\t\tthis.contextLost = true;\n\t\tthis.backBufferSize.set(-1, -1);\n\t\tfor (const texture of this.textures) {\n\t\t\ttexture.loseContext();\n\t\t}\n\t\tfor (const buffer of this.buffers) {\n\t\t\tbuffer.loseContext();\n\t\t}\n\t\tfor (const target of this.targets) {\n\t\t\ttarget.loseContext();\n\t\t}\n\t\t(_this$gpuProfiler2 = this.gpuProfiler) == null || _this$gpuProfiler2.loseContext();\n\t}\n\trestoreContext() {\n\t\tvar _this$gpuProfiler3;\n\t\tthis.contextLost = false;\n\t\tthis.initializeRenderState();\n\t\tthis.initializeContextCaches();\n\t\tfor (const buffer of this.buffers) {\n\t\t\tbuffer.unlock();\n\t\t}\n\t\t(_this$gpuProfiler3 = this.gpuProfiler) == null || _this$gpuProfiler3.restoreContext == null || _this$gpuProfiler3.restoreContext();\n\t}\n\ttoJSON(key) {\n\t\treturn undefined;\n\t}\n\tinitializeContextCaches() {\n\t\tthis.indexBuffer = null;\n\t\tthis.vertexBuffers = [];\n\t\tthis.shader = null;\n\t\tthis.shaderValid = undefined;\n\t\tthis.shaderAsyncCompile = false;\n\t\tthis.renderTarget = null;\n\t}\n\tinitializeRenderState() {\n\t\tthis.blendState = new BlendState();\n\t\tthis.depthState = new DepthState();\n\t\tthis.cullMode = CULLFACE_BACK;\n\t\tthis.vx = this.vy = this.vw = this.vh = 0;\n\t\tthis.sx = this.sy = this.sw = this.sh = 0;\n\t\tthis.blendColor = new Color(0, 0, 0, 0);\n\t}\n\tsetStencilState(stencilFront, stencilBack) {}\n\tsetBlendState(blendState) {}\n\tsetBlendColor(r, g, b, a) {}\n\tsetDepthState(depthState) {}\n\tsetCullMode(cullMode) {}\n\tsetRenderTarget(renderTarget) {\n\t\tthis.renderTarget = renderTarget;\n\t}\n\tsetIndexBuffer(indexBuffer) {\n\t\tthis.indexBuffer = indexBuffer;\n\t}\n\tsetVertexBuffer(vertexBuffer) {\n\t\tif (vertexBuffer) {\n\t\t\tthis.vertexBuffers.push(vertexBuffer);\n\t\t}\n\t}\n\tclearVertexBuffer() {\n\t\tthis.vertexBuffers.length = 0;\n\t}\n\tgetRenderTarget() {\n\t\treturn this.renderTarget;\n\t}\n\tinitRenderTarget(target) {\n\t\tif (target.initialized) return;\n\t\ttarget.init();\n\t\tthis.targets.add(target);\n\t}\n\t_isBrowserInterface(texture) {\n\t\treturn this._isImageBrowserInterface(texture) || this._isImageCanvasInterface(texture) || this._isImageVideoInterface(texture);\n\t}\n\t_isImageBrowserInterface(texture) {\n\t\treturn typeof ImageBitmap !== 'undefined' && texture instanceof ImageBitmap || typeof HTMLImageElement !== 'undefined' && texture instanceof HTMLImageElement;\n\t}\n\t_isImageCanvasInterface(texture) {\n\t\treturn typeof HTMLCanvasElement !== 'undefined' && texture instanceof HTMLCanvasElement;\n\t}\n\t_isImageVideoInterface(texture) {\n\t\treturn typeof HTMLVideoElement !== 'undefined' && texture instanceof HTMLVideoElement;\n\t}\n\tresizeCanvas(width, height) {\n\t\tconst pixelRatio = Math.min(this._maxPixelRatio, platform.browser ? window.devicePixelRatio : 1);\n\t\tconst w = Math.floor(width * pixelRatio);\n\t\tconst h = Math.floor(height * pixelRatio);\n\t\tif (w !== this.canvas.width || h !== this.canvas.height) {\n\t\t\tthis.setResolution(w, h);\n\t\t}\n\t}\n\tsetResolution(width, height) {\n\t\tthis.canvas.width = width;\n\t\tthis.canvas.height = height;\n\t\tthis.fire(GraphicsDevice.EVENT_RESIZE, width, height);\n\t}\n\tupdateClientRect() {\n\t\tif (platform.worker) {\n\t\t\tthis.clientRect.width = this.canvas.width;\n\t\t\tthis.clientRect.height = this.canvas.height;\n\t\t} else {\n\t\t\tconst rect = this.canvas.getBoundingClientRect();\n\t\t\tthis.clientRect.width = rect.width;\n\t\t\tthis.clientRect.height = rect.height;\n\t\t}\n\t}\n\tget width() {\n\t\treturn this.canvas.width;\n\t}\n\tget height() {\n\t\treturn this.canvas.height;\n\t}\n\tset fullscreen(fullscreen) {}\n\tget fullscreen() {\n\t\treturn false;\n\t}\n\tset maxPixelRatio(ratio) {\n\t\tthis._maxPixelRatio = ratio;\n\t}\n\tget maxPixelRatio() {\n\t\treturn this._maxPixelRatio;\n\t}\n\tget deviceType() {\n\t\treturn this._deviceType;\n\t}\n\tgetBoneLimit() {\n\t\treturn this.boneLimit;\n\t}\n\tsetBoneLimit(maxBones) {\n\t\tthis.boneLimit = maxBones;\n\t}\n\tstartRenderPass(renderPass) {}\n\tendRenderPass(renderPass) {}\n\tstartComputePass() {}\n\tendComputePass() {}\n\tframeStart() {\n\t\tthis.renderPassIndex = 0;\n\t\tthis.renderVersion++;\n\t}\n\tframeEnd() {}\n\tcomputeDispatch(computes) {}\n\tgetRenderableHdrFormat(formats = [PIXELFORMAT_111110F, PIXELFORMAT_RGBA16F, PIXELFORMAT_RGBA32F], filterable = true) {\n\t\tfor (let i = 0; i < formats.length; i++) {\n\t\t\tconst format = formats[i];\n\t\t\tswitch (format) {\n\t\t\t\tcase PIXELFORMAT_111110F:\n\t\t\t\t\t{\n\t\t\t\t\t\tif (this.textureRG11B10Renderable) {\n\t\t\t\t\t\t\treturn format;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase PIXELFORMAT_RGBA16F:\n\t\t\t\t\tif (this.textureHalfFloatRenderable && (!filterable || this.textureHalfFloatFilterable)) {\n\t\t\t\t\t\treturn format;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase PIXELFORMAT_RGBA32F:\n\t\t\t\t\tif (this.textureFloatRenderable && (!filterable || this.textureFloatFilterable)) {\n\t\t\t\t\t\treturn format;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}\n}\nGraphicsDevice.EVENT_RESIZE = 'resizecanvas';\n\nlet id$a = 0;\nclass RenderTarget {\n\tconstructor(options = {}) {\n\t\tvar _options$face, _this$_colorBuffer, _this$_depthBuffer, _options$samples, _options$autoResolve, _options$flipY;\n\t\tthis.name = void 0;\n\t\tthis._device = void 0;\n\t\tthis._colorBuffer = void 0;\n\t\tthis._colorBuffers = void 0;\n\t\tthis._depthBuffer = void 0;\n\t\tthis._depth = void 0;\n\t\tthis._stencil = void 0;\n\t\tthis._samples = void 0;\n\t\tthis.autoResolve = void 0;\n\t\tthis._face = void 0;\n\t\tthis.flipY = void 0;\n\t\tthis.id = id$a++;\n\t\tconst _arg2 = arguments[1];\n\t\tconst _arg3 = arguments[2];\n\t\tif (options instanceof GraphicsDevice) {\n\t\t\tthis._colorBuffer = _arg2;\n\t\t\toptions = _arg3;\n\t\t} else {\n\t\t\tthis._colorBuffer = options.colorBuffer;\n\t\t}\n\t\tif (this._colorBuffer) {\n\t\t\tthis._colorBuffers = [this._colorBuffer];\n\t\t}\n\t\tthis._depthBuffer = options.depthBuffer;\n\t\tthis._face = (_options$face = options.face) != null ? _options$face : 0;\n\t\tif (this._depthBuffer) {\n\t\t\tconst format = this._depthBuffer._format;\n\t\t\tif (format === PIXELFORMAT_DEPTH) {\n\t\t\t\tthis._depth = true;\n\t\t\t\tthis._stencil = false;\n\t\t\t} else if (format === PIXELFORMAT_DEPTHSTENCIL) {\n\t\t\t\tthis._depth = true;\n\t\t\t\tthis._stencil = true;\n\t\t\t} else {\n\t\t\t\tthis._depth = false;\n\t\t\t\tthis._stencil = false;\n\t\t\t}\n\t\t} else {\n\t\t\tvar _options$depth, _options$stencil;\n\t\t\tthis._depth = (_options$depth = options.depth) != null ? _options$depth : true;\n\t\t\tthis._stencil = (_options$stencil = options.stencil) != null ? _options$stencil : false;\n\t\t}\n\t\tif (options.colorBuffers) {\n\t\t\tif (!this._colorBuffers) {\n\t\t\t\tthis._colorBuffers = [...options.colorBuffers];\n\t\t\t\tthis._colorBuffer = options.colorBuffers[0];\n\t\t\t}\n\t\t}\n\t\tconst device = ((_this$_colorBuffer = this._colorBuffer) == null ? void 0 : _this$_colorBuffer.device) || ((_this$_depthBuffer = this._depthBuffer) == null ? void 0 : _this$_depthBuffer.device) || options.graphicsDevice;\n\t\tthis._device = device;\n\t\tconst {\n\t\t\tmaxSamples\n\t\t} = this._device;\n\t\tthis._samples = Math.min((_options$samples = options.samples) != null ? _options$samples : 1, maxSamples);\n\t\tif (device.isWebGPU) {\n\t\t\tthis._samples = this._samples > 1 ? maxSamples : 1;\n\t\t}\n\t\tthis.autoResolve = (_options$autoResolve = options.autoResolve) != null ? _options$autoResolve : true;\n\t\tthis.name = options.name;\n\t\tif (!this.name) {\n\t\t\tvar _this$_colorBuffer2;\n\t\t\tthis.name = (_this$_colorBuffer2 = this._colorBuffer) == null ? void 0 : _this$_colorBuffer2.name;\n\t\t}\n\t\tif (!this.name) {\n\t\t\tvar _this$_depthBuffer2;\n\t\t\tthis.name = (_this$_depthBuffer2 = this._depthBuffer) == null ? void 0 : _this$_depthBuffer2.name;\n\t\t}\n\t\tif (!this.name) {\n\t\t\tthis.name = 'Untitled';\n\t\t}\n\t\tthis.flipY = (_options$flipY = options.flipY) != null ? _options$flipY : false;\n\t\tthis.validateMrt();\n\t\tthis.impl = device.createRenderTargetImpl(this);\n\t}\n\tdestroy() {\n\t\tconst device = this._device;\n\t\tif (device) {\n\t\t\tdevice.targets.delete(this);\n\t\t\tif (device.renderTarget === this) {\n\t\t\t\tdevice.setRenderTarget(null);\n\t\t\t}\n\t\t\tthis.destroyFrameBuffers();\n\t\t}\n\t}\n\tdestroyFrameBuffers() {\n\t\tconst device = this._device;\n\t\tif (device) {\n\t\t\tthis.impl.destroy(device);\n\t\t}\n\t}\n\tdestroyTextureBuffers() {\n\t\tvar _this$_depthBuffer3, _this$_colorBuffers;\n\t\t(_this$_depthBuffer3 = this._depthBuffer) == null || _this$_depthBuffer3.destroy();\n\t\tthis._depthBuffer = null;\n\t\t(_this$_colorBuffers = this._colorBuffers) == null || _this$_colorBuffers.forEach(colorBuffer => {\n\t\t\tcolorBuffer.destroy();\n\t\t});\n\t\tthis._colorBuffers = null;\n\t\tthis._colorBuffer = null;\n\t}\n\tresize(width, height) {\n\t\tif (this.width !== width || this.height !== height) {\n\t\t\tvar _this$_depthBuffer4, _this$_colorBuffers2;\n\t\t\tconst device = this._device;\n\t\t\tthis.destroyFrameBuffers();\n\t\t\tif (device.renderTarget === this) {\n\t\t\t\tdevice.setRenderTarget(null);\n\t\t\t}\n\t\t\t(_this$_depthBuffer4 = this._depthBuffer) == null || _this$_depthBuffer4.resize(width, height);\n\t\t\t(_this$_colorBuffers2 = this._colorBuffers) == null || _this$_colorBuffers2.forEach(colorBuffer => {\n\t\t\t\tcolorBuffer.resize(width, height);\n\t\t\t});\n\t\t\tthis.validateMrt();\n\t\t\tthis.impl = device.createRenderTargetImpl(this);\n\t\t}\n\t}\n\tvalidateMrt() {}\n\tinit() {\n\t\tthis.impl.init(this._device, this);\n\t}\n\tget initialized() {\n\t\treturn this.impl.initialized;\n\t}\n\tget device() {\n\t\treturn this._device;\n\t}\n\tloseContext() {\n\t\tthis.impl.loseContext();\n\t}\n\tresolve(color = true, depth = !!this._depthBuffer) {\n\t\tif (this._device && this._samples > 1) {\n\t\t\tthis.impl.resolve(this._device, this, color, depth);\n\t\t}\n\t}\n\tcopy(source, color, depth) {\n\t\tif (!this._device) {\n\t\t\tif (source._device) {\n\t\t\t\tthis._device = source._device;\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\tconst success = this._device.copyRenderTarget(source, this, color, depth);\n\t\treturn success;\n\t}\n\tget samples() {\n\t\treturn this._samples;\n\t}\n\tget depth() {\n\t\treturn this._depth;\n\t}\n\tget stencil() {\n\t\treturn this._stencil;\n\t}\n\tget colorBuffer() {\n\t\treturn this._colorBuffer;\n\t}\n\tgetColorBuffer(index) {\n\t\tvar _this$_colorBuffers3;\n\t\treturn (_this$_colorBuffers3 = this._colorBuffers) == null ? void 0 : _this$_colorBuffers3[index];\n\t}\n\tget depthBuffer() {\n\t\treturn this._depthBuffer;\n\t}\n\tget face() {\n\t\treturn this._face;\n\t}\n\tget width() {\n\t\tvar _this$_colorBuffer3, _this$_depthBuffer5;\n\t\treturn ((_this$_colorBuffer3 = this._colorBuffer) == null ? void 0 : _this$_colorBuffer3.width) || ((_this$_depthBuffer5 = this._depthBuffer) == null ? void 0 : _this$_depthBuffer5.width) || this._device.width;\n\t}\n\tget height() {\n\t\tvar _this$_colorBuffer4, _this$_depthBuffer6;\n\t\treturn ((_this$_colorBuffer4 = this._colorBuffer) == null ? void 0 : _this$_colorBuffer4.height) || ((_this$_depthBuffer6 = this._depthBuffer) == null ? void 0 : _this$_depthBuffer6.height) || this._device.height;\n\t}\n}\n\nclass WebgpuBindGroup {\n\tconstructor() {\n\t\tthis.bindGroup = void 0;\n\t}\n\tupdate(bindGroup) {\n\t\tthis.destroy();\n\t\tconst device = bindGroup.device;\n\t\tconst descr = this.createDescriptor(device, bindGroup);\n\t\tthis.bindGroup = device.wgpu.createBindGroup(descr);\n\t}\n\tdestroy() {\n\t\tthis.bindGroup = null;\n\t}\n\tcreateDescriptor(device, bindGroup) {\n\t\tconst entries = [];\n\t\tconst format = bindGroup.format;\n\t\tconst uniformBufferFormats = bindGroup.format.uniformBufferFormats;\n\t\tbindGroup.uniformBuffers.forEach((ub, i) => {\n\t\t\tconst slot = uniformBufferFormats[i].slot;\n\t\t\tconst buffer = ub.persistent ? ub.impl.buffer : ub.allocation.gpuBuffer.buffer;\n\t\t\tentries.push({\n\t\t\t\tbinding: slot,\n\t\t\t\tresource: {\n\t\t\t\t\tbuffer: buffer,\n\t\t\t\t\toffset: 0,\n\t\t\t\t\tsize: ub.format.byteSize\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tconst textureFormats = bindGroup.format.textureFormats;\n\t\tbindGroup.textures.forEach((tex, textureIndex) => {\n\t\t\tconst wgpuTexture = tex.impl;\n\t\t\tconst textureFormat = format.textureFormats[textureIndex];\n\t\t\tconst slot = textureFormats[textureIndex].slot;\n\t\t\tconst view = wgpuTexture.getView(device);\n\t\t\tentries.push({\n\t\t\t\tbinding: slot,\n\t\t\t\tresource: view\n\t\t\t});\n\t\t\tif (textureFormat.hasSampler) {\n\t\t\t\tconst sampler = wgpuTexture.getSampler(device, textureFormat.sampleType);\n\t\t\t\tentries.push({\n\t\t\t\t\tbinding: slot + 1,\n\t\t\t\t\tresource: sampler\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\tconst storageTextureFormats = bindGroup.format.storageTextureFormats;\n\t\tbindGroup.storageTextures.forEach((tex, textureIndex) => {\n\t\t\tconst wgpuTexture = tex.impl;\n\t\t\tconst slot = storageTextureFormats[textureIndex].slot;\n\t\t\tconst view = wgpuTexture.getView(device);\n\t\t\tentries.push({\n\t\t\t\tbinding: slot,\n\t\t\t\tresource: view\n\t\t\t});\n\t\t});\n\t\tconst storageBufferFormats = bindGroup.format.storageBufferFormats;\n\t\tbindGroup.storageBuffers.forEach((buffer, bufferIndex) => {\n\t\t\tconst wgpuBuffer = buffer.impl.buffer;\n\t\t\tconst slot = storageBufferFormats[bufferIndex].slot;\n\t\t\tentries.push({\n\t\t\t\tbinding: slot,\n\t\t\t\tresource: {\n\t\t\t\t\tbuffer: wgpuBuffer\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tconst descr = {\n\t\t\tlayout: bindGroup.format.impl.bindGroupLayout,\n\t\t\tentries: entries\n\t\t};\n\t\treturn descr;\n\t}\n}\n\nclass WebgpuUtils {\n\tstatic shaderStage(stage) {\n\t\tlet ret = 0;\n\t\tif (stage & SHADERSTAGE_VERTEX) ret |= GPUShaderStage.VERTEX;\n\t\tif (stage & SHADERSTAGE_FRAGMENT) ret |= GPUShaderStage.FRAGMENT;\n\t\tif (stage & SHADERSTAGE_COMPUTE) ret |= GPUShaderStage.COMPUTE;\n\t\treturn ret;\n\t}\n}\n\nconst gpuTextureFormats = [];\ngpuTextureFormats[PIXELFORMAT_A8] = '';\ngpuTextureFormats[PIXELFORMAT_L8] = 'r8unorm';\ngpuTextureFormats[PIXELFORMAT_LA8] = 'rg8unorm';\ngpuTextureFormats[PIXELFORMAT_RGB565] = '';\ngpuTextureFormats[PIXELFORMAT_RGBA5551] = '';\ngpuTextureFormats[PIXELFORMAT_RGBA4] = '';\ngpuTextureFormats[PIXELFORMAT_RGB8] = 'rgba8unorm';\ngpuTextureFormats[PIXELFORMAT_RGBA8] = 'rgba8unorm';\ngpuTextureFormats[PIXELFORMAT_DXT1] = 'bc1-rgba-unorm';\ngpuTextureFormats[PIXELFORMAT_DXT3] = 'bc2-rgba-unorm';\ngpuTextureFormats[PIXELFORMAT_DXT5] = 'bc3-rgba-unorm';\ngpuTextureFormats[PIXELFORMAT_RGB16F] = '';\ngpuTextureFormats[PIXELFORMAT_RGBA16F] = 'rgba16float';\ngpuTextureFormats[PIXELFORMAT_R16F] = 'r16float';\ngpuTextureFormats[PIXELFORMAT_RG16F] = 'rg16float';\ngpuTextureFormats[PIXELFORMAT_RGB32F] = '';\ngpuTextureFormats[PIXELFORMAT_RGBA32F] = 'rgba32float';\ngpuTextureFormats[PIXELFORMAT_R32F] = 'r32float';\ngpuTextureFormats[PIXELFORMAT_DEPTH] = 'depth32float';\ngpuTextureFormats[PIXELFORMAT_DEPTHSTENCIL] = 'depth24plus-stencil8';\ngpuTextureFormats[PIXELFORMAT_111110F] = 'rg11b10ufloat';\ngpuTextureFormats[PIXELFORMAT_SRGB] = '';\ngpuTextureFormats[PIXELFORMAT_SRGBA] = '';\ngpuTextureFormats[PIXELFORMAT_ETC1] = '';\ngpuTextureFormats[PIXELFORMAT_ETC2_RGB] = 'etc2-rgb8unorm';\ngpuTextureFormats[PIXELFORMAT_ETC2_RGBA] = 'etc2-rgba8unorm';\ngpuTextureFormats[PIXELFORMAT_PVRTC_2BPP_RGB_1] = '';\ngpuTextureFormats[PIXELFORMAT_PVRTC_2BPP_RGBA_1] = '';\ngpuTextureFormats[PIXELFORMAT_PVRTC_4BPP_RGB_1] = '';\ngpuTextureFormats[PIXELFORMAT_PVRTC_4BPP_RGBA_1] = '';\ngpuTextureFormats[PIXELFORMAT_ASTC_4x4] = 'astc-4x4-unorm';\ngpuTextureFormats[PIXELFORMAT_ATC_RGB] = '';\ngpuTextureFormats[PIXELFORMAT_ATC_RGBA] = '';\ngpuTextureFormats[PIXELFORMAT_BGRA8] = 'bgra8unorm';\ngpuTextureFormats[PIXELFORMAT_R8I] = 'r8sint';\ngpuTextureFormats[PIXELFORMAT_R8U] = 'r8uint';\ngpuTextureFormats[PIXELFORMAT_R16I] = 'r16sint';\ngpuTextureFormats[PIXELFORMAT_R16U] = 'r16uint';\ngpuTextureFormats[PIXELFORMAT_R32I] = 'r32sint';\ngpuTextureFormats[PIXELFORMAT_R32U] = 'r32uint';\ngpuTextureFormats[PIXELFORMAT_RG8I] = 'rg8sint';\ngpuTextureFormats[PIXELFORMAT_RG8U] = 'rg8uint';\ngpuTextureFormats[PIXELFORMAT_RG16I] = 'rg16sint';\ngpuTextureFormats[PIXELFORMAT_RG16U] = 'rg16uint';\ngpuTextureFormats[PIXELFORMAT_RG32I] = 'rg32sint';\ngpuTextureFormats[PIXELFORMAT_RG32U] = 'rg32uint';\ngpuTextureFormats[PIXELFORMAT_RGBA8I] = 'rgba8sint';\ngpuTextureFormats[PIXELFORMAT_RGBA8U] = 'rgba8uint';\ngpuTextureFormats[PIXELFORMAT_RGBA16I] = 'rgba16sint';\ngpuTextureFormats[PIXELFORMAT_RGBA16U] = 'rgba16uint';\ngpuTextureFormats[PIXELFORMAT_RGBA32I] = 'rgba32sint';\ngpuTextureFormats[PIXELFORMAT_RGBA32U] = 'rgba32uint';\n\nconst samplerTypes = [];\nsamplerTypes[SAMPLETYPE_FLOAT] = 'filtering';\nsamplerTypes[SAMPLETYPE_UNFILTERABLE_FLOAT] = 'non-filtering';\nsamplerTypes[SAMPLETYPE_DEPTH] = 'comparison';\nsamplerTypes[SAMPLETYPE_INT] = 'comparison';\nsamplerTypes[SAMPLETYPE_UINT] = 'comparison';\nconst sampleTypes = [];\nsampleTypes[SAMPLETYPE_FLOAT] = 'float';\nsampleTypes[SAMPLETYPE_UNFILTERABLE_FLOAT] = 'unfilterable-float';\nsampleTypes[SAMPLETYPE_DEPTH] = 'depth';\nsampleTypes[SAMPLETYPE_INT] = 'sint';\nsampleTypes[SAMPLETYPE_UINT] = 'uint';\nconst stringIds$1 = new StringIds();\nclass WebgpuBindGroupFormat {\n\tconstructor(bindGroupFormat) {\n\t\tconst device = bindGroupFormat.device;\n\t\tconst {\n\t\t\tkey,\n\t\t\tdescr\n\t\t} = this.createDescriptor(bindGroupFormat);\n\t\tthis.key = stringIds$1.get(key);\n\t\tthis.bindGroupLayout = device.wgpu.createBindGroupLayout(descr);\n\t}\n\tdestroy() {\n\t\tthis.bindGroupLayout = null;\n\t}\n\tloseContext() {}\n\tcreateDescriptor(bindGroupFormat) {\n\t\tconst entries = [];\n\t\tlet key = '';\n\t\tbindGroupFormat.uniformBufferFormats.forEach(bufferFormat => {\n\t\t\tconst visibility = WebgpuUtils.shaderStage(bufferFormat.visibility);\n\t\t\tkey += `#${bufferFormat.slot}U:${visibility}`;\n\t\t\tentries.push({\n\t\t\t\tbinding: bufferFormat.slot,\n\t\t\t\tvisibility: visibility,\n\t\t\t\tbuffer: {\n\t\t\t\t\ttype: 'uniform',\n\t\t\t\t\thasDynamicOffset: true\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tbindGroupFormat.textureFormats.forEach(textureFormat => {\n\t\t\tconst visibility = WebgpuUtils.shaderStage(textureFormat.visibility);\n\t\t\tconst sampleType = textureFormat.sampleType;\n\t\t\tconst viewDimension = textureFormat.textureDimension;\n\t\t\tconst multisampled = false;\n\t\t\tconst gpuSampleType = sampleTypes[sampleType];\n\t\t\tkey += `#${textureFormat.slot}T:${visibility}-${gpuSampleType}-${viewDimension}-${multisampled}`;\n\t\t\tentries.push({\n\t\t\t\tbinding: textureFormat.slot,\n\t\t\t\tvisibility: visibility,\n\t\t\t\ttexture: {\n\t\t\t\t\tsampleType: gpuSampleType,\n\t\t\t\t\tviewDimension: viewDimension,\n\t\t\t\t\tmultisampled: multisampled\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (textureFormat.hasSampler) {\n\t\t\t\tconst gpuSamplerType = samplerTypes[sampleType];\n\t\t\t\tkey += `#${textureFormat.slot + 1}S:${visibility}-${gpuSamplerType}`;\n\t\t\t\tentries.push({\n\t\t\t\t\tbinding: textureFormat.slot + 1,\n\t\t\t\t\tvisibility: visibility,\n\t\t\t\t\tsampler: {\n\t\t\t\t\t\ttype: gpuSamplerType\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\tbindGroupFormat.storageTextureFormats.forEach(textureFormat => {\n\t\t\tconst {\n\t\t\t\tformat,\n\t\t\t\ttextureDimension\n\t\t\t} = textureFormat;\n\t\t\tconst {\n\t\t\t\tread,\n\t\t\t\twrite\n\t\t\t} = textureFormat;\n\t\t\tkey += `#${textureFormat.slot}ST:${format}-${textureDimension}-${read ? 'r1' : 'r0'}-${write ? 'w1' : 'w0'}`;\n\t\t\tentries.push({\n\t\t\t\tbinding: textureFormat.slot,\n\t\t\t\tvisibility: GPUShaderStage.COMPUTE,\n\t\t\t\tstorageTexture: {\n\t\t\t\t\taccess: read ? write ? 'read-write' : 'read-only' : 'write-only',\n\t\t\t\t\tformat: gpuTextureFormats[format],\n\t\t\t\t\tviewDimension: textureDimension\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tbindGroupFormat.storageBufferFormats.forEach(bufferFormat => {\n\t\t\tconst readOnly = bufferFormat.readOnly;\n\t\t\tconst visibility = WebgpuUtils.shaderStage(bufferFormat.visibility);\n\t\t\tkey += `#${bufferFormat.slot}SB:${visibility}-${readOnly ? 'ro' : 'rw'}`;\n\t\t\tentries.push({\n\t\t\t\tbinding: bufferFormat.slot,\n\t\t\t\tvisibility: visibility,\n\t\t\t\tbuffer: {\n\t\t\t\t\ttype: readOnly ? 'read-only-storage' : 'storage'\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tconst descr = {\n\t\t\tentries: entries\n\t\t};\n\t\treturn {\n\t\t\tkey,\n\t\t\tdescr\n\t\t};\n\t}\n}\n\nclass WebgpuBuffer {\n\tconstructor(usageFlags = 0) {\n\t\tthis.buffer = null;\n\t\tthis.usageFlags = 0;\n\t\tthis.usageFlags = usageFlags;\n\t}\n\tdestroy(device) {\n\t\tif (this.buffer) {\n\t\t\tthis.buffer.destroy();\n\t\t\tthis.buffer = null;\n\t\t}\n\t}\n\tget initialized() {\n\t\treturn !!this.buffer;\n\t}\n\tloseContext() {}\n\tallocate(device, size) {\n\t\tthis.buffer = device.wgpu.createBuffer({\n\t\t\tsize,\n\t\t\tusage: this.usageFlags\n\t\t});\n\t}\n\tunlock(device, storage) {\n\t\tvar _storage$byteOffset, _storage$buffer;\n\t\tconst wgpu = device.wgpu;\n\t\tif (!this.buffer) {\n\t\t\tconst size = storage.byteLength + 3 & ~3;\n\t\t\tthis.usageFlags |= GPUBufferUsage.COPY_DST;\n\t\t\tthis.allocate(device, size);\n\t\t}\n\t\tconst srcOffset = (_storage$byteOffset = storage.byteOffset) != null ? _storage$byteOffset : 0;\n\t\tconst srcData = new Uint8Array((_storage$buffer = storage.buffer) != null ? _storage$buffer : storage, srcOffset, storage.byteLength);\n\t\tconst data = new Uint8Array(this.buffer.size);\n\t\tdata.set(srcData);\n\t\twgpu.queue.writeBuffer(this.buffer, 0, data, 0, data.length);\n\t}\n\tread(device, offset, size, data) {\n\t\treturn device.readStorageBuffer(this, offset, size, data);\n\t}\n\twrite(device, bufferOffset, data, dataOffset, size) {\n\t\tdevice.writeStorageBuffer(this, bufferOffset, data, dataOffset, size);\n\t}\n\tclear(device, offset, size) {\n\t\tdevice.clearStorageBuffer(this, offset, size);\n\t}\n}\n\nclass WebgpuIndexBuffer extends WebgpuBuffer {\n\tconstructor(indexBuffer, options) {\n\t\tsuper(BUFFERUSAGE_INDEX | (options != null && options.storage ? BUFFERUSAGE_STORAGE : 0));\n\t\tthis.format = null;\n\t\tthis.format = indexBuffer.format === INDEXFORMAT_UINT16 ? 'uint16' : 'uint32';\n\t}\n\tunlock(indexBuffer) {\n\t\tconst device = indexBuffer.device;\n\t\tsuper.unlock(device, indexBuffer.storage);\n\t}\n}\n\nconst array = {\n\tequals(arr1, arr2) {\n\t\tif (arr1.length !== arr2.length) {\n\t\t\treturn false;\n\t\t}\n\t\tfor (let i = 0; i < arr1.length; i++) {\n\t\t\tif (arr1[i] !== arr2[i]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n};\n\nconst gpuVertexFormats = [];\ngpuVertexFormats[TYPE_INT8] = 'sint8';\ngpuVertexFormats[TYPE_UINT8] = 'uint8';\ngpuVertexFormats[TYPE_INT16] = 'sint16';\ngpuVertexFormats[TYPE_UINT16] = 'uint16';\ngpuVertexFormats[TYPE_INT32] = 'sint32';\ngpuVertexFormats[TYPE_UINT32] = 'uint32';\ngpuVertexFormats[TYPE_FLOAT32] = 'float32';\ngpuVertexFormats[TYPE_FLOAT16] = 'float16';\nconst gpuVertexFormatsNormalized = [];\ngpuVertexFormatsNormalized[TYPE_INT8] = 'snorm8';\ngpuVertexFormatsNormalized[TYPE_UINT8] = 'unorm8';\ngpuVertexFormatsNormalized[TYPE_INT16] = 'snorm16';\ngpuVertexFormatsNormalized[TYPE_UINT16] = 'unorm16';\ngpuVertexFormatsNormalized[TYPE_INT32] = 'sint32';\ngpuVertexFormatsNormalized[TYPE_UINT32] = 'uint32';\ngpuVertexFormatsNormalized[TYPE_FLOAT32] = 'float32';\ngpuVertexFormatsNormalized[TYPE_FLOAT16] = 'float16';\nclass WebgpuVertexBufferLayout {\n\tconstructor() {\n\t\tthis.cache = new Map();\n\t}\n\tget(vertexFormat0, vertexFormat1 = null) {\n\t\tconst key = this.getKey(vertexFormat0, vertexFormat1);\n\t\tlet layout = this.cache.get(key);\n\t\tif (!layout) {\n\t\t\tlayout = this.create(vertexFormat0, vertexFormat1);\n\t\t\tthis.cache.set(key, layout);\n\t\t}\n\t\treturn layout;\n\t}\n\tgetKey(vertexFormat0, vertexFormat1 = null) {\n\t\treturn `${vertexFormat0 == null ? void 0 : vertexFormat0.renderingHashString}-${vertexFormat1 == null ? void 0 : vertexFormat1.renderingHashString}`;\n\t}\n\tcreate(vertexFormat0, vertexFormat1) {\n\t\tconst layout = [];\n\t\tconst addFormat = format => {\n\t\t\tconst interleaved = format.interleaved;\n\t\t\tconst stepMode = format.instancing ? 'instance' : 'vertex';\n\t\t\tlet attributes = [];\n\t\t\tconst elementCount = format.elements.length;\n\t\t\tfor (let i = 0; i < elementCount; i++) {\n\t\t\t\tconst element = format.elements[i];\n\t\t\t\tconst location = semanticToLocation[element.name];\n\t\t\t\tconst formatTable = element.normalize ? gpuVertexFormatsNormalized : gpuVertexFormats;\n\t\t\t\tattributes.push({\n\t\t\t\t\tshaderLocation: location,\n\t\t\t\t\toffset: interleaved ? element.offset : 0,\n\t\t\t\t\tformat: `${formatTable[element.dataType]}${element.numComponents > 1 ? `x${element.numComponents}` : ''}`\n\t\t\t\t});\n\t\t\t\tif (!interleaved || i === elementCount - 1) {\n\t\t\t\t\tlayout.push({\n\t\t\t\t\t\tattributes: attributes,\n\t\t\t\t\t\tarrayStride: element.stride,\n\t\t\t\t\t\tstepMode: stepMode\n\t\t\t\t\t});\n\t\t\t\t\tattributes = [];\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tif (vertexFormat0) {\n\t\t\taddFormat(vertexFormat0);\n\t\t}\n\t\tif (vertexFormat1) {\n\t\t\taddFormat(vertexFormat1);\n\t\t}\n\t\treturn layout;\n\t}\n}\n\nclass WebgpuPipeline {\n\tconstructor(device) {\n\t\tthis.device = device;\n\t}\n\tgetPipelineLayout(bindGroupFormats) {\n\t\tconst bindGroupLayouts = [];\n\t\tbindGroupFormats.forEach(format => {\n\t\t\tbindGroupLayouts.push(format.bindGroupLayout);\n\t\t});\n\t\tconst descr = {\n\t\t\tbindGroupLayouts: bindGroupLayouts\n\t\t};\n\t\tconst pipelineLayout = this.device.wgpu.createPipelineLayout(descr);\n\t\treturn pipelineLayout;\n\t}\n}\n\nconst _primitiveTopology = ['point-list', 'line-list', undefined, 'line-strip', 'triangle-list', 'triangle-strip', undefined];\nconst _blendOperation = ['add', 'subtract', 'reverse-subtract', 'min', 'max'];\nconst _blendFactor = ['zero', 'one', 'src', 'one-minus-src', 'dst', 'one-minus-dst', 'src-alpha', 'src-alpha-saturated', 'one-minus-src-alpha', 'dst-alpha', 'one-minus-dst-alpha', 'constant', 'one-minus-constant'];\nconst _compareFunction = ['never', 'less', 'equal', 'less-equal', 'greater', 'not-equal', 'greater-equal', 'always'];\nconst _cullModes = ['none', 'back', 'front'];\nconst _stencilOps = ['keep', 'zero', 'replace', 'increment-clamp', 'increment-wrap', 'decrement-clamp', 'decrement-wrap', 'invert'];\nclass CacheEntry {\n\tconstructor() {\n\t\tthis.pipeline = void 0;\n\t\tthis.hashes = void 0;\n\t}\n}\nclass WebgpuRenderPipeline extends WebgpuPipeline {\n\tconstructor(device) {\n\t\tsuper(device);\n\t\tthis.lookupHashes = new Uint32Array(13);\n\t\tthis.vertexBufferLayout = new WebgpuVertexBufferLayout();\n\t\tthis.cache = new Map();\n\t}\n\tget(primitive, vertexFormat0, vertexFormat1, shader, renderTarget, bindGroupFormats, blendState, depthState, cullMode, stencilEnabled, stencilFront, stencilBack) {\n\t\tvar _vertexFormat0$render, _vertexFormat1$render, _bindGroupFormats$0$k, _bindGroupFormats$, _bindGroupFormats$1$k, _bindGroupFormats$2, _bindGroupFormats$2$k, _bindGroupFormats$3;\n\t\tconst lookupHashes = this.lookupHashes;\n\t\tlookupHashes[0] = primitive.type;\n\t\tlookupHashes[1] = shader.id;\n\t\tlookupHashes[2] = cullMode;\n\t\tlookupHashes[3] = depthState.key;\n\t\tlookupHashes[4] = blendState.key;\n\t\tlookupHashes[5] = (_vertexFormat0$render = vertexFormat0 == null ? void 0 : vertexFormat0.renderingHash) != null ? _vertexFormat0$render : 0;\n\t\tlookupHashes[6] = (_vertexFormat1$render = vertexFormat1 == null ? void 0 : vertexFormat1.renderingHash) != null ? _vertexFormat1$render : 0;\n\t\tlookupHashes[7] = renderTarget.impl.key;\n\t\tlookupHashes[8] = (_bindGroupFormats$0$k = (_bindGroupFormats$ = bindGroupFormats[0]) == null ? void 0 : _bindGroupFormats$.key) != null ? _bindGroupFormats$0$k : 0;\n\t\tlookupHashes[9] = (_bindGroupFormats$1$k = (_bindGroupFormats$2 = bindGroupFormats[1]) == null ? void 0 : _bindGroupFormats$2.key) != null ? _bindGroupFormats$1$k : 0;\n\t\tlookupHashes[10] = (_bindGroupFormats$2$k = (_bindGroupFormats$3 = bindGroupFormats[2]) == null ? void 0 : _bindGroupFormats$3.key) != null ? _bindGroupFormats$2$k : 0;\n\t\tlookupHashes[11] = stencilEnabled ? stencilFront.key : 0;\n\t\tlookupHashes[12] = stencilEnabled ? stencilBack.key : 0;\n\t\tconst hash = hash32Fnv1a(lookupHashes);\n\t\tlet cacheEntries = this.cache.get(hash);\n\t\tif (cacheEntries) {\n\t\t\tfor (let i = 0; i < cacheEntries.length; i++) {\n\t\t\t\tconst entry = cacheEntries[i];\n\t\t\t\tif (array.equals(entry.hashes, lookupHashes)) {\n\t\t\t\t\treturn entry.pipeline;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst primitiveTopology = _primitiveTopology[primitive.type];\n\t\tconst pipelineLayout = this.getPipelineLayout(bindGroupFormats);\n\t\tconst vertexBufferLayout = this.vertexBufferLayout.get(vertexFormat0, vertexFormat1);\n\t\tconst cacheEntry = new CacheEntry();\n\t\tcacheEntry.hashes = new Uint32Array(lookupHashes);\n\t\tcacheEntry.pipeline = this.create(primitiveTopology, shader, renderTarget, pipelineLayout, blendState, depthState, vertexBufferLayout, cullMode, stencilEnabled, stencilFront, stencilBack);\n\t\tif (cacheEntries) {\n\t\t\tcacheEntries.push(cacheEntry);\n\t\t} else {\n\t\t\tcacheEntries = [cacheEntry];\n\t\t}\n\t\tthis.cache.set(hash, cacheEntries);\n\t\treturn cacheEntry.pipeline;\n\t}\n\tgetBlend(blendState) {\n\t\tlet blend;\n\t\tif (blendState.blend) {\n\t\t\tblend = {\n\t\t\t\tcolor: {\n\t\t\t\t\toperation: _blendOperation[blendState.colorOp],\n\t\t\t\t\tsrcFactor: _blendFactor[blendState.colorSrcFactor],\n\t\t\t\t\tdstFactor: _blendFactor[blendState.colorDstFactor]\n\t\t\t\t},\n\t\t\t\talpha: {\n\t\t\t\t\toperation: _blendOperation[blendState.alphaOp],\n\t\t\t\t\tsrcFactor: _blendFactor[blendState.alphaSrcFactor],\n\t\t\t\t\tdstFactor: _blendFactor[blendState.alphaDstFactor]\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\treturn blend;\n\t}\n\tgetDepthStencil(depthState, renderTarget, stencilEnabled, stencilFront, stencilBack) {\n\t\tlet depthStencil;\n\t\tconst {\n\t\t\tdepth,\n\t\t\tstencil\n\t\t} = renderTarget;\n\t\tif (depth || stencil) {\n\t\t\tdepthStencil = {\n\t\t\t\tformat: renderTarget.impl.depthFormat\n\t\t\t};\n\t\t\tif (depth) {\n\t\t\t\tdepthStencil.depthWriteEnabled = depthState.write;\n\t\t\t\tdepthStencil.depthCompare = _compareFunction[depthState.func];\n\t\t\t\tdepthStencil.depthBias = depthState.depthBias;\n\t\t\t\tdepthStencil.depthBiasSlopeScale = depthState.depthBiasSlope;\n\t\t\t} else {\n\t\t\t\tdepthStencil.depthWriteEnabled = false;\n\t\t\t\tdepthStencil.depthCompare = 'always';\n\t\t\t}\n\t\t\tif (stencil && stencilEnabled) {\n\t\t\t\tdepthStencil.stencilReadMas = stencilFront.readMask;\n\t\t\t\tdepthStencil.stencilWriteMask = stencilFront.writeMask;\n\t\t\t\tdepthStencil.stencilFront = {\n\t\t\t\t\tcompare: _compareFunction[stencilFront.func],\n\t\t\t\t\tfailOp: _stencilOps[stencilFront.fail],\n\t\t\t\t\tpassOp: _stencilOps[stencilFront.zpass],\n\t\t\t\t\tdepthFailOp: _stencilOps[stencilFront.zfail]\n\t\t\t\t};\n\t\t\t\tdepthStencil.stencilBack = {\n\t\t\t\t\tcompare: _compareFunction[stencilBack.func],\n\t\t\t\t\tfailOp: _stencilOps[stencilBack.fail],\n\t\t\t\t\tpassOp: _stencilOps[stencilBack.zpass],\n\t\t\t\t\tdepthFailOp: _stencilOps[stencilBack.zfail]\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\treturn depthStencil;\n\t}\n\tcreate(primitiveTopology, shader, renderTarget, pipelineLayout, blendState, depthState, vertexBufferLayout, cullMode, stencilEnabled, stencilFront, stencilBack) {\n\t\tconst wgpu = this.device.wgpu;\n\t\tconst webgpuShader = shader.impl;\n\t\tconst descr = {\n\t\t\tvertex: {\n\t\t\t\tmodule: webgpuShader.getVertexShaderModule(),\n\t\t\t\tentryPoint: webgpuShader.vertexEntryPoint,\n\t\t\t\tbuffers: vertexBufferLayout\n\t\t\t},\n\t\t\tprimitive: {\n\t\t\t\ttopology: primitiveTopology,\n\t\t\t\tfrontFace: 'ccw',\n\t\t\t\tcullMode: _cullModes[cullMode]\n\t\t\t},\n\t\t\tdepthStencil: this.getDepthStencil(depthState, renderTarget, stencilEnabled, stencilFront, stencilBack),\n\t\t\tmultisample: {\n\t\t\t\tcount: renderTarget.samples\n\t\t\t},\n\t\t\tlayout: pipelineLayout\n\t\t};\n\t\tdescr.fragment = {\n\t\t\tmodule: webgpuShader.getFragmentShaderModule(),\n\t\t\tentryPoint: webgpuShader.fragmentEntryPoint,\n\t\t\ttargets: []\n\t\t};\n\t\tconst colorAttachments = renderTarget.impl.colorAttachments;\n\t\tif (colorAttachments.length > 0) {\n\t\t\tlet writeMask = 0;\n\t\t\tif (blendState.redWrite) writeMask |= GPUColorWrite.RED;\n\t\t\tif (blendState.greenWrite) writeMask |= GPUColorWrite.GREEN;\n\t\t\tif (blendState.blueWrite) writeMask |= GPUColorWrite.BLUE;\n\t\t\tif (blendState.alphaWrite) writeMask |= GPUColorWrite.ALPHA;\n\t\t\tconst blend = this.getBlend(blendState);\n\t\t\tcolorAttachments.forEach(attachment => {\n\t\t\t\tdescr.fragment.targets.push({\n\t\t\t\t\tformat: attachment.format,\n\t\t\t\t\twriteMask: writeMask,\n\t\t\t\t\tblend: blend\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\tconst pipeline = wgpu.createRenderPipeline(descr);\n\t\treturn pipeline;\n\t}\n}\n\nclass WebgpuComputePipeline extends WebgpuPipeline {\n\tget(shader, bindGroupFormat) {\n\t\tconst pipelineLayout = this.getPipelineLayout([bindGroupFormat.impl]);\n\t\tconst pipeline = this.create(shader, pipelineLayout);\n\t\treturn pipeline;\n\t}\n\tcreate(shader, pipelineLayout) {\n\t\tconst wgpu = this.device.wgpu;\n\t\tconst webgpuShader = shader.impl;\n\t\tconst descr = {\n\t\t\tcompute: {\n\t\t\t\tmodule: webgpuShader.getComputeShaderModule(),\n\t\t\t\tentryPoint: webgpuShader.computeEntryPoint\n\t\t\t},\n\t\t\tlayout: pipelineLayout\n\t\t};\n\t\tconst pipeline = wgpu.createComputePipeline(descr);\n\t\treturn pipeline;\n\t}\n}\n\nconst stringIds = new StringIds();\nclass ColorAttachment {\n\tconstructor() {\n\t\tthis.format = void 0;\n\t\tthis.multisampledBuffer = void 0;\n\t}\n\tdestroy() {\n\t\tvar _this$multisampledBuf;\n\t\t(_this$multisampledBuf = this.multisampledBuffer) == null || _this$multisampledBuf.destroy();\n\t\tthis.multisampledBuffer = null;\n\t}\n}\nclass WebgpuRenderTarget {\n\tconstructor(renderTarget) {\n\t\tthis.initialized = false;\n\t\tthis.key = void 0;\n\t\tthis.colorAttachments = [];\n\t\tthis.depthFormat = void 0;\n\t\tthis.hasStencil = void 0;\n\t\tthis.depthTexture = null;\n\t\tthis.depthTextureInternal = false;\n\t\tthis.assignedColorTexture = null;\n\t\tthis.renderPassDescriptor = {};\n\t\tthis.renderTarget = renderTarget;\n\t\tif (renderTarget._colorBuffers) {\n\t\t\trenderTarget._colorBuffers.forEach((colorBuffer, index) => {\n\t\t\t\tthis.setColorAttachment(index, undefined, colorBuffer.impl.format);\n\t\t\t});\n\t\t}\n\t\tthis.updateKey();\n\t}\n\tdestroy(device) {\n\t\tthis.initialized = false;\n\t\tif (this.depthTextureInternal) {\n\t\t\tvar _this$depthTexture;\n\t\t\t(_this$depthTexture = this.depthTexture) == null || _this$depthTexture.destroy();\n\t\t\tthis.depthTexture = null;\n\t\t}\n\t\tthis.assignedColorTexture = null;\n\t\tthis.colorAttachments.forEach(colorAttachment => {\n\t\t\tcolorAttachment.destroy();\n\t\t});\n\t\tthis.colorAttachments.length = 0;\n\t}\n\tupdateKey() {\n\t\tconst rt = this.renderTarget;\n\t\tlet key = `${rt.samples}:${rt.depth ? this.depthFormat : 'nodepth'}`;\n\t\tthis.colorAttachments.forEach(colorAttachment => {\n\t\t\tkey += `:${colorAttachment.format}`;\n\t\t});\n\t\tthis.key = stringIds.get(key);\n\t}\n\tsetDepthFormat(depthFormat) {\n\t\tthis.depthFormat = depthFormat;\n\t\tthis.hasStencil = depthFormat === 'depth24plus-stencil8';\n\t}\n\tassignColorTexture(gpuTexture) {\n\t\tthis.assignedColorTexture = gpuTexture;\n\t\tconst view = gpuTexture.createView();\n\t\tconst colorAttachment = this.renderPassDescriptor.colorAttachments[0];\n\t\tconst samples = this.renderTarget.samples;\n\t\tif (samples > 1) {\n\t\t\tcolorAttachment.resolveTarget = view;\n\t\t} else {\n\t\t\tcolorAttachment.view = view;\n\t\t}\n\t\tthis.setColorAttachment(0, undefined, gpuTexture.format);\n\t\tthis.updateKey();\n\t}\n\tsetColorAttachment(index, multisampledBuffer, format) {\n\t\tif (!this.colorAttachments[index]) {\n\t\t\tthis.colorAttachments[index] = new ColorAttachment();\n\t\t}\n\t\tif (multisampledBuffer) {\n\t\t\tthis.colorAttachments[index].multisampledBuffer = multisampledBuffer;\n\t\t}\n\t\tif (format) {\n\t\t\tthis.colorAttachments[index].format = format;\n\t\t}\n\t}\n\tinit(device, renderTarget) {\n\t\tvar _renderTarget$_colorB, _renderTarget$_colorB2;\n\t\tconst wgpu = device.wgpu;\n\t\tthis.initDepthStencil(wgpu, renderTarget);\n\t\tthis.renderPassDescriptor.colorAttachments = [];\n\t\tconst count = (_renderTarget$_colorB = (_renderTarget$_colorB2 = renderTarget._colorBuffers) == null ? void 0 : _renderTarget$_colorB2.length) != null ? _renderTarget$_colorB : 1;\n\t\tfor (let i = 0; i < count; ++i) {\n\t\t\tvar _this$colorAttachment;\n\t\t\tconst colorAttachment = this.initColor(wgpu, renderTarget, i);\n\t\t\tconst isDefaultFramebuffer = i === 0 && ((_this$colorAttachment = this.colorAttachments[0]) == null ? void 0 : _this$colorAttachment.format);\n\t\t\tif (colorAttachment.view || isDefaultFramebuffer) {\n\t\t\t\tthis.renderPassDescriptor.colorAttachments.push(colorAttachment);\n\t\t\t}\n\t\t}\n\t\tthis.initialized = true;\n\t}\n\tinitDepthStencil(wgpu, renderTarget) {\n\t\tconst {\n\t\t\tsamples,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tdepth,\n\t\t\tdepthBuffer\n\t\t} = renderTarget;\n\t\tif (depth || depthBuffer) {\n\t\t\tif (!depthBuffer) {\n\t\t\t\tthis.setDepthFormat('depth24plus-stencil8');\n\t\t\t\tconst depthTextureDesc = {\n\t\t\t\t\tsize: [width, height, 1],\n\t\t\t\t\tdimension: '2d',\n\t\t\t\t\tsampleCount: samples,\n\t\t\t\t\tformat: this.depthFormat,\n\t\t\t\t\tusage: GPUTextureUsage.RENDER_ATTACHMENT\n\t\t\t\t};\n\t\t\t\tif (samples > 1) {\n\t\t\t\t\tdepthTextureDesc.usage |= GPUTextureUsage.TEXTURE_BINDING;\n\t\t\t\t} else {\n\t\t\t\t\tdepthTextureDesc.usage |= GPUTextureUsage.COPY_SRC;\n\t\t\t\t}\n\t\t\t\tthis.depthTexture = wgpu.createTexture(depthTextureDesc);\n\t\t\t\tthis.depthTextureInternal = true;\n\t\t\t} else {\n\t\t\t\tthis.depthTexture = depthBuffer.impl.gpuTexture;\n\t\t\t\tthis.setDepthFormat(depthBuffer.impl.format);\n\t\t\t}\n\t\t\tthis.renderPassDescriptor.depthStencilAttachment = {\n\t\t\t\tview: this.depthTexture.createView()\n\t\t\t};\n\t\t}\n\t}\n\tinitColor(wgpu, renderTarget, index) {\n\t\tconst colorAttachment = {};\n\t\tconst {\n\t\t\tsamples,\n\t\t\twidth,\n\t\t\theight\n\t\t} = renderTarget;\n\t\tconst colorBuffer = renderTarget.getColorBuffer(index);\n\t\tlet colorView = null;\n\t\tif (colorBuffer) {\n\t\t\tconst mipLevelCount = 1;\n\t\t\tif (colorBuffer.cubemap) {\n\t\t\t\tcolorView = colorBuffer.impl.createView({\n\t\t\t\t\tdimension: '2d',\n\t\t\t\t\tbaseArrayLayer: renderTarget.face,\n\t\t\t\t\tarrayLayerCount: 1,\n\t\t\t\t\tmipLevelCount\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tcolorView = colorBuffer.impl.createView({\n\t\t\t\t\tmipLevelCount\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tif (samples > 1) {\n\t\t\tvar _this$colorAttachment2, _this$colorAttachment3;\n\t\t\tconst multisampledTextureDesc = {\n\t\t\t\tsize: [width, height, 1],\n\t\t\t\tdimension: '2d',\n\t\t\t\tsampleCount: samples,\n\t\t\t\tformat: (_this$colorAttachment2 = (_this$colorAttachment3 = this.colorAttachments[index]) == null ? void 0 : _this$colorAttachment3.format) != null ? _this$colorAttachment2 : colorBuffer.impl.format,\n\t\t\t\tusage: GPUTextureUsage.RENDER_ATTACHMENT\n\t\t\t};\n\t\t\tconst multisampledColorBuffer = wgpu.createTexture(multisampledTextureDesc);\n\t\t\tthis.setColorAttachment(index, multisampledColorBuffer, multisampledTextureDesc.format);\n\t\t\tcolorAttachment.view = multisampledColorBuffer.createView();\n\t\t\tcolorAttachment.resolveTarget = colorView;\n\t\t} else {\n\t\t\tcolorAttachment.view = colorView;\n\t\t}\n\t\treturn colorAttachment;\n\t}\n\tsetupForRenderPass(renderPass) {\n\t\tvar _this$renderPassDescr, _this$renderPassDescr2;\n\t\tconst count = (_this$renderPassDescr = (_this$renderPassDescr2 = this.renderPassDescriptor.colorAttachments) == null ? void 0 : _this$renderPassDescr2.length) != null ? _this$renderPassDescr : 0;\n\t\tfor (let i = 0; i < count; ++i) {\n\t\t\tconst colorAttachment = this.renderPassDescriptor.colorAttachments[i];\n\t\t\tconst colorOps = renderPass.colorArrayOps[i];\n\t\t\tcolorAttachment.clearValue = colorOps.clearValue;\n\t\t\tcolorAttachment.loadOp = colorOps.clear ? 'clear' : 'load';\n\t\t\tcolorAttachment.storeOp = colorOps.store ? 'store' : 'discard';\n\t\t}\n\t\tconst depthAttachment = this.renderPassDescriptor.depthStencilAttachment;\n\t\tif (depthAttachment) {\n\t\t\tdepthAttachment.depthClearValue = renderPass.depthStencilOps.clearDepthValue;\n\t\t\tdepthAttachment.depthLoadOp = renderPass.depthStencilOps.clearDepth ? 'clear' : 'load';\n\t\t\tdepthAttachment.depthStoreOp = renderPass.depthStencilOps.storeDepth ? 'store' : 'discard';\n\t\t\tdepthAttachment.depthReadOnly = false;\n\t\t\tif (this.hasStencil) {\n\t\t\t\tdepthAttachment.stencilClearValue = renderPass.depthStencilOps.clearStencilValue;\n\t\t\t\tdepthAttachment.stencilLoadOp = renderPass.depthStencilOps.clearStencil ? 'clear' : 'load';\n\t\t\t\tdepthAttachment.stencilStoreOp = renderPass.depthStencilOps.storeStencil ? 'store' : 'discard';\n\t\t\t\tdepthAttachment.stencilReadOnly = false;\n\t\t\t}\n\t\t}\n\t}\n\tloseContext() {\n\t\tthis.initialized = false;\n\t}\n\tresolve(device, target, color, depth) {}\n}\n\nconst uniformTypeToNumComponents = [];\nuniformTypeToNumComponents[UNIFORMTYPE_FLOAT] = 1;\nuniformTypeToNumComponents[UNIFORMTYPE_VEC2] = 2;\nuniformTypeToNumComponents[UNIFORMTYPE_VEC3] = 3;\nuniformTypeToNumComponents[UNIFORMTYPE_VEC4] = 4;\nuniformTypeToNumComponents[UNIFORMTYPE_INT] = 1;\nuniformTypeToNumComponents[UNIFORMTYPE_IVEC2] = 2;\nuniformTypeToNumComponents[UNIFORMTYPE_IVEC3] = 3;\nuniformTypeToNumComponents[UNIFORMTYPE_IVEC4] = 4;\nuniformTypeToNumComponents[UNIFORMTYPE_BOOL] = 1;\nuniformTypeToNumComponents[UNIFORMTYPE_BVEC2] = 2;\nuniformTypeToNumComponents[UNIFORMTYPE_BVEC3] = 3;\nuniformTypeToNumComponents[UNIFORMTYPE_BVEC4] = 4;\nuniformTypeToNumComponents[UNIFORMTYPE_MAT2] = 8;\nuniformTypeToNumComponents[UNIFORMTYPE_MAT3] = 12;\nuniformTypeToNumComponents[UNIFORMTYPE_MAT4] = 16;\nuniformTypeToNumComponents[UNIFORMTYPE_UINT] = 1;\nuniformTypeToNumComponents[UNIFORMTYPE_UVEC2] = 2;\nuniformTypeToNumComponents[UNIFORMTYPE_UVEC3] = 3;\nuniformTypeToNumComponents[UNIFORMTYPE_UVEC4] = 4;\nclass UniformFormat {\n\tget isArrayType() {\n\t\treturn this.count > 0;\n\t}\n\tconstructor(name, type, count = 0) {\n\t\tthis.name = void 0;\n\t\tthis.type = void 0;\n\t\tthis.byteSize = void 0;\n\t\tthis.offset = void 0;\n\t\tthis.scopeId = void 0;\n\t\tthis.count = void 0;\n\t\tthis.numComponents = void 0;\n\t\tthis.shortName = name;\n\t\tthis.name = count ? `${name}[0]` : name;\n\t\tthis.type = type;\n\t\tthis.numComponents = uniformTypeToNumComponents[type];\n\t\tthis.updateType = type;\n\t\tif (count > 0) {\n\t\t\tswitch (type) {\n\t\t\t\tcase UNIFORMTYPE_FLOAT:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_FLOATARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_INT:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_INTARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_UINT:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_UINTARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_BOOL:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_BOOLARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_VEC2:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_VEC2ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_IVEC2:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_IVEC2ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_UVEC2:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_UVEC2ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_BVEC2:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_BVEC2ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_VEC3:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_VEC3ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_IVEC3:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_IVEC3ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_UVEC3:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_UVEC3ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_BVEC3:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_BVEC3ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_VEC4:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_VEC4ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_IVEC4:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_IVEC4ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_UVEC4:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_UVEC4ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_BVEC4:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_BVEC4ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_MAT4:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_MAT4ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tthis.count = count;\n\t\tlet componentSize = this.numComponents;\n\t\tif (count) {\n\t\t\tcomponentSize = math.roundUp(componentSize, 4);\n\t\t}\n\t\tthis.byteSize = componentSize * 4;\n\t\tif (count) {\n\t\t\tthis.byteSize *= count;\n\t\t}\n\t}\n\tcalculateOffset(offset) {\n\t\tlet alignment = this.byteSize <= 8 ? this.byteSize : 16;\n\t\tif (this.count) {\n\t\t\talignment = 16;\n\t\t}\n\t\toffset = math.roundUp(offset, alignment);\n\t\tthis.offset = offset / 4;\n\t}\n}\nclass UniformBufferFormat {\n\tconstructor(graphicsDevice, uniforms) {\n\t\tthis.byteSize = 0;\n\t\tthis.map = new Map();\n\t\tthis.scope = graphicsDevice.scope;\n\t\tthis.uniforms = uniforms;\n\t\tlet offset = 0;\n\t\tfor (let i = 0; i < uniforms.length; i++) {\n\t\t\tconst uniform = uniforms[i];\n\t\t\tuniform.calculateOffset(offset);\n\t\t\toffset = uniform.offset * 4 + uniform.byteSize;\n\t\t\tuniform.scopeId = this.scope.resolve(uniform.name);\n\t\t\tthis.map.set(uniform.name, uniform);\n\t\t}\n\t\tthis.byteSize = math.roundUp(offset, 16);\n\t}\n\tget(name) {\n\t\treturn this.map.get(name);\n\t}\n\tgetShaderDeclaration(bindGroup, bindIndex) {\n\t\tconst name = bindGroupNames[bindGroup];\n\t\tlet code = `layout(set = ${bindGroup}, binding = ${bindIndex}, std140) uniform ub_${name} {\\n`;\n\t\tthis.uniforms.forEach(uniform => {\n\t\t\tconst typeString = uniformTypeToName[uniform.type];\n\t\t\tcode += `    ${typeString} ${uniform.shortName}${uniform.count ? `[${uniform.count}]` : ''};\\n`;\n\t\t});\n\t\treturn `${code}};\\n`;\n\t}\n}\n\nlet id$9 = 0;\nconst textureDimensionInfo = {\n\t[TEXTUREDIMENSION_2D]: 'texture2D',\n\t[TEXTUREDIMENSION_CUBE]: 'textureCube',\n\t[TEXTUREDIMENSION_3D]: 'texture3D',\n\t[TEXTUREDIMENSION_2D_ARRAY]: 'texture2DArray'\n};\nclass BindBaseFormat {\n\tconstructor(name, visibility) {\n\t\tthis.slot = -1;\n\t\tthis.scopeId = null;\n\t\tthis.name = name;\n\t\tthis.visibility = visibility;\n\t}\n}\nclass BindUniformBufferFormat extends BindBaseFormat {}\nclass BindStorageBufferFormat extends BindBaseFormat {\n\tconstructor(name, visibility, readOnly = false) {\n\t\tsuper(name, visibility);\n\t\tthis.readOnly = readOnly;\n\t}\n}\nclass BindTextureFormat extends BindBaseFormat {\n\tconstructor(name, visibility, textureDimension = TEXTUREDIMENSION_2D, sampleType = SAMPLETYPE_FLOAT, hasSampler = true) {\n\t\tsuper(name, visibility);\n\t\tthis.textureDimension = textureDimension;\n\t\tthis.sampleType = sampleType;\n\t\tthis.hasSampler = hasSampler;\n\t}\n}\nclass BindStorageTextureFormat extends BindBaseFormat {\n\tconstructor(name, format = PIXELFORMAT_RGBA8, textureDimension = TEXTUREDIMENSION_2D, write = true, read = false) {\n\t\tsuper(name, SHADERSTAGE_COMPUTE);\n\t\tthis.format = format;\n\t\tthis.textureDimension = textureDimension;\n\t\tthis.write = write;\n\t\tthis.read = read;\n\t}\n}\nclass BindGroupFormat {\n\tconstructor(graphicsDevice, formats) {\n\t\tthis.uniformBufferFormats = [];\n\t\tthis.textureFormats = [];\n\t\tthis.storageTextureFormats = [];\n\t\tthis.storageBufferFormats = [];\n\t\tthis.id = id$9++;\n\t\tlet slot = 0;\n\t\tformats.forEach(format => {\n\t\t\tformat.slot = slot++;\n\t\t\tif (format instanceof BindTextureFormat && format.hasSampler) {\n\t\t\t\tslot++;\n\t\t\t}\n\t\t\tif (format instanceof BindUniformBufferFormat) {\n\t\t\t\tthis.uniformBufferFormats.push(format);\n\t\t\t} else if (format instanceof BindTextureFormat) {\n\t\t\t\tthis.textureFormats.push(format);\n\t\t\t} else if (format instanceof BindStorageTextureFormat) {\n\t\t\t\tthis.storageTextureFormats.push(format);\n\t\t\t} else if (format instanceof BindStorageBufferFormat) {\n\t\t\t\tthis.storageBufferFormats.push(format);\n\t\t\t} else ;\n\t\t});\n\t\tthis.device = graphicsDevice;\n\t\tconst scope = graphicsDevice.scope;\n\t\tthis.bufferFormatsMap = new Map();\n\t\tthis.uniformBufferFormats.forEach((bf, i) => this.bufferFormatsMap.set(bf.name, i));\n\t\tthis.textureFormatsMap = new Map();\n\t\tthis.textureFormats.forEach((tf, i) => {\n\t\t\tthis.textureFormatsMap.set(tf.name, i);\n\t\t\ttf.scopeId = scope.resolve(tf.name);\n\t\t});\n\t\tthis.storageTextureFormatsMap = new Map();\n\t\tthis.storageTextureFormats.forEach((tf, i) => {\n\t\t\tthis.storageTextureFormatsMap.set(tf.name, i);\n\t\t\ttf.scopeId = scope.resolve(tf.name);\n\t\t});\n\t\tthis.storageBufferFormatsMap = new Map();\n\t\tthis.storageBufferFormats.forEach((bf, i) => {\n\t\t\tthis.storageBufferFormatsMap.set(bf.name, i);\n\t\t\tbf.scopeId = scope.resolve(bf.name);\n\t\t});\n\t\tthis.impl = graphicsDevice.createBindGroupFormatImpl(this);\n\t}\n\tdestroy() {\n\t\tthis.impl.destroy();\n\t}\n\tgetTexture(name) {\n\t\tconst index = this.textureFormatsMap.get(name);\n\t\tif (index !== undefined) {\n\t\t\treturn this.textureFormats[index];\n\t\t}\n\t\treturn null;\n\t}\n\tgetStorageTexture(name) {\n\t\tconst index = this.storageTextureFormatsMap.get(name);\n\t\tif (index !== undefined) {\n\t\t\treturn this.storageTextureFormats[index];\n\t\t}\n\t\treturn null;\n\t}\n\tgetShaderDeclarationTextures(bindGroup) {\n\t\tlet code = '';\n\t\tthis.textureFormats.forEach(format => {\n\t\t\tlet textureType = textureDimensionInfo[format.textureDimension];\n\t\t\tconst isArray = textureType === 'texture2DArray';\n\t\t\tconst sampleTypePrefix = format.sampleType === SAMPLETYPE_UINT ? 'u' : format.sampleType === SAMPLETYPE_INT ? 'i' : '';\n\t\t\ttextureType = `${sampleTypePrefix}${textureType}`;\n\t\t\tlet namePostfix = '';\n\t\t\tlet extraCode = '';\n\t\t\tif (isArray) {\n\t\t\t\tnamePostfix = '_texture';\n\t\t\t\textraCode = `#define ${format.name} ${sampleTypePrefix}sampler2DArray(${format.name}${namePostfix}, ${format.name}_sampler)\\n`;\n\t\t\t}\n\t\t\tcode += `layout(set = ${bindGroup}, binding = ${format.slot}) uniform ${textureType} ${format.name}${namePostfix};\\n`;\n\t\t\tif (format.hasSampler) {\n\t\t\t\tcode += `layout(set = ${bindGroup}, binding = ${format.slot + 1}) uniform sampler ${format.name}_sampler;\\n`;\n\t\t\t}\n\t\t\tcode += extraCode;\n\t\t});\n\t\treturn code;\n\t}\n\tloseContext() {}\n}\n\nconst KEYWORD$1 = /[ \\t]*(\\battribute\\b|\\bvarying\\b|\\buniform\\b)/g;\nconst KEYWORD_LINE = /(\\battribute\\b|\\bvarying\\b|\\bout\\b|\\buniform\\b)[ \\t]*([^;]+)(;+)/g;\nconst MARKER = '@@@';\nconst ARRAY_IDENTIFIER = /([\\w-]+)\\[(.*?)\\]/;\nconst precisionQualifiers = new Set(['highp', 'mediump', 'lowp']);\nconst shadowSamplers = new Set(['sampler2DShadow', 'samplerCubeShadow', 'sampler2DArrayShadow']);\nconst textureDimensions = {\n\tsampler2D: TEXTUREDIMENSION_2D,\n\tsampler3D: TEXTUREDIMENSION_3D,\n\tsamplerCube: TEXTUREDIMENSION_CUBE,\n\tsamplerCubeShadow: TEXTUREDIMENSION_CUBE,\n\tsampler2DShadow: TEXTUREDIMENSION_2D,\n\tsampler2DArray: TEXTUREDIMENSION_2D_ARRAY,\n\tsampler2DArrayShadow: TEXTUREDIMENSION_2D_ARRAY,\n\tisampler2D: TEXTUREDIMENSION_2D,\n\tusampler2D: TEXTUREDIMENSION_2D,\n\tisampler3D: TEXTUREDIMENSION_3D,\n\tusampler3D: TEXTUREDIMENSION_3D,\n\tisamplerCube: TEXTUREDIMENSION_CUBE,\n\tusamplerCube: TEXTUREDIMENSION_CUBE,\n\tisampler2DArray: TEXTUREDIMENSION_2D_ARRAY,\n\tusampler2DArray: TEXTUREDIMENSION_2D_ARRAY\n};\nclass UniformLine {\n\tconstructor(line, shader) {\n\t\tthis.line = line;\n\t\tconst words = line.trim().split(/\\s+/);\n\t\tif (precisionQualifiers.has(words[0])) {\n\t\t\tthis.precision = words.shift();\n\t\t}\n\t\tthis.type = words.shift();\n\t\tif (line.includes(',')) ;\n\t\tif (line.includes('[')) {\n\t\t\tconst rest = words.join(' ');\n\t\t\tconst match = ARRAY_IDENTIFIER.exec(rest);\n\t\t\tthis.name = match[1];\n\t\t\tthis.arraySize = Number(match[2]);\n\t\t\tif (isNaN(this.arraySize)) {\n\t\t\t\tshader.failed = true;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.name = words.shift();\n\t\t\tthis.arraySize = 0;\n\t\t}\n\t\tthis.isSampler = this.type.indexOf('sampler') !== -1;\n\t\tthis.isSignedInt = this.type.indexOf('isampler') !== -1;\n\t\tthis.isUnsignedInt = this.type.indexOf('usampler') !== -1;\n\t}\n}\nclass ShaderProcessor {\n\tstatic run(device, shaderDefinition, shader) {\n\t\tconst varyingMap = new Map();\n\t\tconst vertexExtracted = ShaderProcessor.extract(shaderDefinition.vshader);\n\t\tconst fragmentExtracted = ShaderProcessor.extract(shaderDefinition.fshader);\n\t\tconst attributesBlock = ShaderProcessor.processAttributes(vertexExtracted.attributes, shaderDefinition.attributes, shaderDefinition.processingOptions);\n\t\tconst vertexVaryingsBlock = ShaderProcessor.processVaryings(vertexExtracted.varyings, varyingMap, true);\n\t\tconst fragmentVaryingsBlock = ShaderProcessor.processVaryings(fragmentExtracted.varyings, varyingMap, false);\n\t\tconst outBlock = ShaderProcessor.processOuts(fragmentExtracted.outs);\n\t\tconst concatUniforms = vertexExtracted.uniforms.concat(fragmentExtracted.uniforms);\n\t\tconst uniforms = Array.from(new Set(concatUniforms));\n\t\tconst parsedUniforms = uniforms.map(line => new UniformLine(line, shader));\n\t\tconst uniformsData = ShaderProcessor.processUniforms(device, parsedUniforms, shaderDefinition.processingOptions, shader);\n\t\tconst vBlock = `${attributesBlock}\\n${vertexVaryingsBlock}\\n${uniformsData.code}`;\n\t\tconst vshader = vertexExtracted.src.replace(MARKER, vBlock);\n\t\tconst fBlock = `${fragmentVaryingsBlock}\\n${outBlock}\\n${uniformsData.code}`;\n\t\tconst fshader = fragmentExtracted.src.replace(MARKER, fBlock);\n\t\treturn {\n\t\t\tvshader: vshader,\n\t\t\tfshader: fshader,\n\t\t\tmeshUniformBufferFormat: uniformsData.meshUniformBufferFormat,\n\t\t\tmeshBindGroupFormat: uniformsData.meshBindGroupFormat\n\t\t};\n\t}\n\tstatic extract(src) {\n\t\tconst attributes = [];\n\t\tconst varyings = [];\n\t\tconst outs = [];\n\t\tconst uniforms = [];\n\t\tlet replacement = `${MARKER}\\n`;\n\t\tlet match;\n\t\twhile ((match = KEYWORD$1.exec(src)) !== null) {\n\t\t\tconst keyword = match[1];\n\t\t\tswitch (keyword) {\n\t\t\t\tcase 'attribute':\n\t\t\t\tcase 'varying':\n\t\t\t\tcase 'uniform':\n\t\t\t\tcase 'out':\n\t\t\t\t\t{\n\t\t\t\t\t\tKEYWORD_LINE.lastIndex = match.index;\n\t\t\t\t\t\tconst lineMatch = KEYWORD_LINE.exec(src);\n\t\t\t\t\t\tif (keyword === 'attribute') {\n\t\t\t\t\t\t\tattributes.push(lineMatch[2]);\n\t\t\t\t\t\t} else if (keyword === 'varying') {\n\t\t\t\t\t\t\tvaryings.push(lineMatch[2]);\n\t\t\t\t\t\t} else if (keyword === 'out') {\n\t\t\t\t\t\t\touts.push(lineMatch[2]);\n\t\t\t\t\t\t} else if (keyword === 'uniform') {\n\t\t\t\t\t\t\tuniforms.push(lineMatch[2]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsrc = ShaderProcessor.cutOut(src, match.index, KEYWORD_LINE.lastIndex, replacement);\n\t\t\t\t\t\tKEYWORD$1.lastIndex = match.index + replacement.length;\n\t\t\t\t\t\treplacement = '';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tsrc,\n\t\t\tattributes,\n\t\t\tvaryings,\n\t\t\touts,\n\t\t\tuniforms\n\t\t};\n\t}\n\tstatic processUniforms(device, uniforms, processingOptions, shader) {\n\t\tconst uniformLinesSamplers = [];\n\t\tconst uniformLinesNonSamplers = [];\n\t\tuniforms.forEach(uniform => {\n\t\t\tif (uniform.isSampler) {\n\t\t\t\tuniformLinesSamplers.push(uniform);\n\t\t\t} else {\n\t\t\t\tuniformLinesNonSamplers.push(uniform);\n\t\t\t}\n\t\t});\n\t\tconst meshUniforms = [];\n\t\tuniformLinesNonSamplers.forEach(uniform => {\n\t\t\tif (!processingOptions.hasUniform(uniform.name)) {\n\t\t\t\tconst uniformType = uniformTypeToName.indexOf(uniform.type);\n\t\t\t\tconst uniformFormat = new UniformFormat(uniform.name, uniformType, uniform.arraySize);\n\t\t\t\tmeshUniforms.push(uniformFormat);\n\t\t\t}\n\t\t});\n\t\tconst meshUniformBufferFormat = meshUniforms.length ? new UniformBufferFormat(device, meshUniforms) : null;\n\t\tconst uniformBufferFormats = [];\n\t\tif (meshUniformBufferFormat) {\n\t\t\tuniformBufferFormats.push(new BindUniformBufferFormat(UNIFORM_BUFFER_DEFAULT_SLOT_NAME, SHADERSTAGE_VERTEX | SHADERSTAGE_FRAGMENT));\n\t\t}\n\t\tconst textureFormats = [];\n\t\tuniformLinesSamplers.forEach(uniform => {\n\t\t\tif (!processingOptions.hasTexture(uniform.name)) {\n\t\t\t\tlet sampleType = SAMPLETYPE_FLOAT;\n\t\t\t\tif (uniform.isSignedInt) {\n\t\t\t\t\tsampleType = SAMPLETYPE_INT;\n\t\t\t\t} else if (uniform.isUnsignedInt) {\n\t\t\t\t\tsampleType = SAMPLETYPE_UINT;\n\t\t\t\t} else {\n\t\t\t\t\tif (uniform.precision === 'highp') {\n\t\t\t\t\t\tsampleType = SAMPLETYPE_UNFILTERABLE_FLOAT;\n\t\t\t\t\t}\n\t\t\t\t\tif (shadowSamplers.has(uniform.type)) {\n\t\t\t\t\t\tsampleType = SAMPLETYPE_DEPTH;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst dimension = textureDimensions[uniform.type];\n\t\t\t\ttextureFormats.push(new BindTextureFormat(uniform.name, SHADERSTAGE_VERTEX | SHADERSTAGE_FRAGMENT, dimension, sampleType));\n\t\t\t}\n\t\t});\n\t\tconst meshBindGroupFormat = new BindGroupFormat(device, [...uniformBufferFormats, ...textureFormats]);\n\t\tlet code = '';\n\t\tprocessingOptions.uniformFormats.forEach((format, bindGroupIndex) => {\n\t\t\tif (format) {\n\t\t\t\tcode += format.getShaderDeclaration(bindGroupIndex, 0);\n\t\t\t}\n\t\t});\n\t\tif (meshUniformBufferFormat) {\n\t\t\tcode += meshUniformBufferFormat.getShaderDeclaration(BINDGROUP_MESH, 0);\n\t\t}\n\t\tprocessingOptions.bindGroupFormats.forEach((format, bindGroupIndex) => {\n\t\t\tif (format) {\n\t\t\t\tcode += format.getShaderDeclarationTextures(bindGroupIndex);\n\t\t\t}\n\t\t});\n\t\tcode += meshBindGroupFormat.getShaderDeclarationTextures(BINDGROUP_MESH);\n\t\treturn {\n\t\t\tcode,\n\t\t\tmeshUniformBufferFormat,\n\t\t\tmeshBindGroupFormat\n\t\t};\n\t}\n\tstatic processVaryings(varyingLines, varyingMap, isVertex) {\n\t\tlet block = '';\n\t\tconst op = isVertex ? 'out' : 'in';\n\t\tvaryingLines.forEach((line, index) => {\n\t\t\tconst words = ShaderProcessor.splitToWords(line);\n\t\t\tconst type = words[0];\n\t\t\tconst name = words[1];\n\t\t\tif (isVertex) {\n\t\t\t\tvaryingMap.set(name, index);\n\t\t\t} else {\n\t\t\t\tindex = varyingMap.get(name);\n\t\t\t}\n\t\t\tblock += `layout(location = ${index}) ${op} ${type} ${name};\\n`;\n\t\t});\n\t\treturn block;\n\t}\n\tstatic processOuts(outsLines) {\n\t\tlet block = '';\n\t\toutsLines.forEach((line, index) => {\n\t\t\tblock += `layout(location = ${index}) out ${line};\\n`;\n\t\t});\n\t\treturn block;\n\t}\n\tstatic getTypeCount(type) {\n\t\tconst lastChar = type.substring(type.length - 1);\n\t\tconst num = parseInt(lastChar, 10);\n\t\treturn isNaN(num) ? 1 : num;\n\t}\n\tstatic processAttributes(attributeLines, shaderDefinitionAttributes, processingOptions) {\n\t\tlet block = '';\n\t\tattributeLines.forEach(line => {\n\t\t\tconst words = ShaderProcessor.splitToWords(line);\n\t\t\tlet type = words[0];\n\t\t\tlet name = words[1];\n\t\t\tif (shaderDefinitionAttributes.hasOwnProperty(name)) {\n\t\t\t\tconst semantic = shaderDefinitionAttributes[name];\n\t\t\t\tconst location = semanticToLocation[semantic];\n\t\t\t\tlet copyCode;\n\t\t\t\tconst element = processingOptions.getVertexElement(semantic);\n\t\t\t\tif (element) {\n\t\t\t\t\tconst dataType = element.dataType;\n\t\t\t\t\tif (dataType !== TYPE_FLOAT32 && dataType !== TYPE_FLOAT16 && !element.normalize && !element.asInt) {\n\t\t\t\t\t\tconst attribNumElements = ShaderProcessor.getTypeCount(type);\n\t\t\t\t\t\tconst newName = `_private_${name}`;\n\t\t\t\t\t\tcopyCode = `vec${attribNumElements} ${name} = vec${attribNumElements}(${newName});\\n`;\n\t\t\t\t\t\tname = newName;\n\t\t\t\t\t\tconst isSignedType = dataType === TYPE_INT8 || dataType === TYPE_INT16 || dataType === TYPE_INT32;\n\t\t\t\t\t\tif (attribNumElements === 1) {\n\t\t\t\t\t\t\ttype = isSignedType ? 'int' : 'uint';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttype = isSignedType ? `ivec${attribNumElements}` : `uvec${attribNumElements}`;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tblock += `layout(location = ${location}) in ${type} ${name};\\n`;\n\t\t\t\tif (copyCode) {\n\t\t\t\t\tblock += copyCode;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn block;\n\t}\n\tstatic splitToWords(line) {\n\t\tline = line.replace(/\\s+/g, ' ').trim();\n\t\treturn line.split(' ');\n\t}\n\tstatic cutOut(src, start, end, replacement) {\n\t\treturn src.substring(0, start) + replacement + src.substring(end);\n\t}\n}\n\nclass WebgpuShader {\n\tconstructor(shader) {\n\t\tthis._vertexCode = null;\n\t\tthis._fragmentCode = null;\n\t\tthis._computeCode = null;\n\t\tthis.vertexEntryPoint = 'main';\n\t\tthis.fragmentEntryPoint = 'main';\n\t\tthis.computeEntryPoint = 'main';\n\t\tthis.shader = shader;\n\t\tconst definition = shader.definition;\n\t\tif (definition.shaderLanguage === SHADERLANGUAGE_WGSL) {\n\t\t\tvar _definition$vshader, _definition$fshader, _definition$cshader;\n\t\t\tthis._vertexCode = (_definition$vshader = definition.vshader) != null ? _definition$vshader : null;\n\t\t\tthis._fragmentCode = (_definition$fshader = definition.fshader) != null ? _definition$fshader : null;\n\t\t\tthis._computeCode = (_definition$cshader = definition.cshader) != null ? _definition$cshader : null;\n\t\t\tthis.meshUniformBufferFormat = definition.meshUniformBufferFormat;\n\t\t\tthis.meshBindGroupFormat = definition.meshBindGroupFormat;\n\t\t\tthis.computeUniformBufferFormats = definition.computeUniformBufferFormats;\n\t\t\tthis.computeBindGroupFormat = definition.computeBindGroupFormat;\n\t\t\tthis.vertexEntryPoint = 'vertexMain';\n\t\t\tthis.fragmentEntryPoint = 'fragmentMain';\n\t\t\tshader.ready = true;\n\t\t} else {\n\t\t\tif (definition.processingOptions) {\n\t\t\t\tthis.process();\n\t\t\t}\n\t\t}\n\t}\n\tdestroy(shader) {\n\t\tthis._vertexCode = null;\n\t\tthis._fragmentCode = null;\n\t}\n\tcreateShaderModule(code, shaderType) {\n\t\tconst device = this.shader.device;\n\t\tconst wgpu = device.wgpu;\n\t\tconst shaderModule = wgpu.createShaderModule({\n\t\t\tcode: code\n\t\t});\n\t\treturn shaderModule;\n\t}\n\tgetVertexShaderModule() {\n\t\treturn this.createShaderModule(this._vertexCode, 'Vertex');\n\t}\n\tgetFragmentShaderModule() {\n\t\treturn this.createShaderModule(this._fragmentCode, 'Fragment');\n\t}\n\tgetComputeShaderModule() {\n\t\treturn this.createShaderModule(this._computeCode, 'Compute');\n\t}\n\tprocess() {\n\t\tconst shader = this.shader;\n\t\tconst processed = ShaderProcessor.run(shader.device, shader.definition, shader);\n\t\tthis._vertexCode = this.transpile(processed.vshader, 'vertex', shader.definition.vshader);\n\t\tthis._fragmentCode = this.transpile(processed.fshader, 'fragment', shader.definition.fshader);\n\t\tif (!(this._vertexCode && this._fragmentCode)) {\n\t\t\tshader.failed = true;\n\t\t} else {\n\t\t\tshader.ready = true;\n\t\t}\n\t\tshader.meshUniformBufferFormat = processed.meshUniformBufferFormat;\n\t\tshader.meshBindGroupFormat = processed.meshBindGroupFormat;\n\t}\n\ttranspile(src, shaderType, originalSrc) {\n\t\ttry {\n\t\t\tconst spirv = this.shader.device.glslang.compileGLSL(src, shaderType);\n\t\t\treturn this.shader.device.twgsl.convertSpirV2WGSL(spirv);\n\t\t} catch (err) {\n\t\t\tconsole.error(`Failed to transpile webgl ${shaderType} shader [${this.shader.label}] to WebGPU: [${err.message}] while rendering ${void 0}`, {\n\t\t\t\tprocessed: src,\n\t\t\t\toriginal: originalSrc,\n\t\t\t\tshader: this.shader\n\t\t\t});\n\t\t}\n\t}\n\tget vertexCode() {\n\t\treturn this._vertexCode;\n\t}\n\tget fragmentCode() {\n\t\treturn this._fragmentCode;\n\t}\n\tloseContext() {}\n\trestoreContext(device, shader) {}\n}\n\nclass TextureUtils {\n\tstatic calcLevelDimension(dimension, mipLevel) {\n\t\treturn Math.max(dimension >> mipLevel, 1);\n\t}\n\tstatic calcMipLevelsCount(width, height, depth = 1) {\n\t\treturn 1 + Math.floor(Math.log2(Math.max(width, height, depth)));\n\t}\n\tstatic calcLevelGpuSize(width, height, depth, format) {\n\t\tvar _pixelFormatInfo$get$, _pixelFormatInfo$get, _formatInfo$blockSize;\n\t\tconst formatInfo = pixelFormatInfo.get(format);\n\t\tconst pixelSize = (_pixelFormatInfo$get$ = (_pixelFormatInfo$get = pixelFormatInfo.get(format)) == null ? void 0 : _pixelFormatInfo$get.size) != null ? _pixelFormatInfo$get$ : 0;\n\t\tif (pixelSize > 0) {\n\t\t\treturn width * height * depth * pixelSize;\n\t\t}\n\t\tconst blockSize = (_formatInfo$blockSize = formatInfo.blockSize) != null ? _formatInfo$blockSize : 0;\n\t\tlet blockWidth = Math.floor((width + 3) / 4);\n\t\tconst blockHeight = Math.floor((height + 3) / 4);\n\t\tconst blockDepth = Math.floor((depth + 3) / 4);\n\t\tif (format === PIXELFORMAT_PVRTC_2BPP_RGB_1 || format === PIXELFORMAT_PVRTC_2BPP_RGBA_1) {\n\t\t\tblockWidth = Math.max(Math.floor(blockWidth / 2), 1);\n\t\t}\n\t\treturn blockWidth * blockHeight * blockDepth * blockSize;\n\t}\n\tstatic calcGpuSize(width, height, depth, format, mipmaps, cubemap) {\n\t\tlet result = 0;\n\t\twhile (1) {\n\t\t\tresult += TextureUtils.calcLevelGpuSize(width, height, depth, format);\n\t\t\tif (!mipmaps || width === 1 && height === 1 && depth === 1) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\twidth = Math.max(width >> 1, 1);\n\t\t\theight = Math.max(height >> 1, 1);\n\t\t\tdepth = Math.max(depth >> 1, 1);\n\t\t}\n\t\treturn result * (cubemap ? 6 : 1);\n\t}\n}\n\nconst gpuAddressModes = [];\ngpuAddressModes[ADDRESS_REPEAT] = 'repeat';\ngpuAddressModes[ADDRESS_CLAMP_TO_EDGE] = 'clamp-to-edge';\ngpuAddressModes[ADDRESS_MIRRORED_REPEAT] = 'mirror-repeat';\nconst gpuFilterModes = [];\ngpuFilterModes[FILTER_NEAREST] = {\n\tlevel: 'nearest',\n\tmip: 'nearest'\n};\ngpuFilterModes[FILTER_LINEAR] = {\n\tlevel: 'linear',\n\tmip: 'nearest'\n};\ngpuFilterModes[FILTER_NEAREST_MIPMAP_NEAREST] = {\n\tlevel: 'nearest',\n\tmip: 'nearest'\n};\ngpuFilterModes[FILTER_NEAREST_MIPMAP_LINEAR] = {\n\tlevel: 'nearest',\n\tmip: 'linear'\n};\ngpuFilterModes[FILTER_LINEAR_MIPMAP_NEAREST] = {\n\tlevel: 'linear',\n\tmip: 'nearest'\n};\ngpuFilterModes[FILTER_LINEAR_MIPMAP_LINEAR] = {\n\tlevel: 'linear',\n\tmip: 'linear'\n};\nconst dummyUse = thingOne => {};\nclass WebgpuTexture {\n\tconstructor(texture) {\n\t\tthis.gpuTexture = void 0;\n\t\tthis.view = void 0;\n\t\tthis.samplers = [];\n\t\tthis.descr = void 0;\n\t\tthis.format = void 0;\n\t\tthis.texture = texture;\n\t\tthis.format = gpuTextureFormats[texture.format];\n\t\tthis.create(texture.device);\n\t}\n\tcreate(device) {\n\t\tconst texture = this.texture;\n\t\tconst wgpu = device.wgpu;\n\t\tconst mipLevelCount = texture.requiredMipLevels;\n\t\tthis.descr = {\n\t\t\tsize: {\n\t\t\t\twidth: texture.width,\n\t\t\t\theight: texture.height,\n\t\t\t\tdepthOrArrayLayers: texture.cubemap ? 6 : texture.array ? texture.arrayLength : 1\n\t\t\t},\n\t\t\tformat: this.format,\n\t\t\tmipLevelCount: mipLevelCount,\n\t\t\tsampleCount: 1,\n\t\t\tdimension: texture.volume ? '3d' : '2d',\n\t\t\tusage: GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_DST | GPUTextureUsage.COPY_SRC | (isCompressedPixelFormat(texture.format) ? 0 : GPUTextureUsage.RENDER_ATTACHMENT) | (texture.storage ? GPUTextureUsage.STORAGE_BINDING : 0)\n\t\t};\n\t\tthis.gpuTexture = wgpu.createTexture(this.descr);\n\t\tlet viewDescr;\n\t\tif (this.texture.format === PIXELFORMAT_DEPTHSTENCIL) {\n\t\t\tviewDescr = {\n\t\t\t\tformat: 'depth24plus',\n\t\t\t\taspect: 'depth-only'\n\t\t\t};\n\t\t}\n\t\tthis.view = this.createView(viewDescr);\n\t}\n\tdestroy(device) {}\n\tpropertyChanged(flag) {\n\t\tthis.samplers.length = 0;\n\t}\n\tgetView(device) {\n\t\tthis.uploadImmediate(device, this.texture);\n\t\treturn this.view;\n\t}\n\tcreateView(viewDescr) {\n\t\tvar _options$format, _options$dimension, _options$aspect, _options$baseMipLevel, _options$mipLevelCoun, _options$baseArrayLay, _options$arrayLayerCo;\n\t\tconst options = viewDescr != null ? viewDescr : {};\n\t\tconst textureDescr = this.descr;\n\t\tconst texture = this.texture;\n\t\tconst defaultViewDimension = () => {\n\t\t\tif (texture.cubemap) return 'cube';\n\t\t\tif (texture.volume) return '3d';\n\t\t\tif (texture.array) return '2d-array';\n\t\t\treturn '2d';\n\t\t};\n\t\tconst descr = {\n\t\t\tformat: (_options$format = options.format) != null ? _options$format : textureDescr.format,\n\t\t\tdimension: (_options$dimension = options.dimension) != null ? _options$dimension : defaultViewDimension(),\n\t\t\taspect: (_options$aspect = options.aspect) != null ? _options$aspect : 'all',\n\t\t\tbaseMipLevel: (_options$baseMipLevel = options.baseMipLevel) != null ? _options$baseMipLevel : 0,\n\t\t\tmipLevelCount: (_options$mipLevelCoun = options.mipLevelCount) != null ? _options$mipLevelCoun : textureDescr.mipLevelCount,\n\t\t\tbaseArrayLayer: (_options$baseArrayLay = options.baseArrayLayer) != null ? _options$baseArrayLay : 0,\n\t\t\tarrayLayerCount: (_options$arrayLayerCo = options.arrayLayerCount) != null ? _options$arrayLayerCo : textureDescr.depthOrArrayLayers\n\t\t};\n\t\tconst view = this.gpuTexture.createView(descr);\n\t\treturn view;\n\t}\n\tgetSampler(device, sampleType) {\n\t\tlet sampler = this.samplers[sampleType];\n\t\tif (!sampler) {\n\t\t\tconst texture = this.texture;\n\t\t\tconst descr = {\n\t\t\t\taddressModeU: gpuAddressModes[texture.addressU],\n\t\t\t\taddressModeV: gpuAddressModes[texture.addressV],\n\t\t\t\taddressModeW: gpuAddressModes[texture.addressW]\n\t\t\t};\n\t\t\tif (!sampleType && texture.compareOnRead) {\n\t\t\t\tsampleType = SAMPLETYPE_DEPTH;\n\t\t\t}\n\t\t\tif (sampleType === SAMPLETYPE_DEPTH || sampleType === SAMPLETYPE_INT || sampleType === SAMPLETYPE_UINT) {\n\t\t\t\tdescr.compare = 'less';\n\t\t\t\tdescr.magFilter = 'linear';\n\t\t\t\tdescr.minFilter = 'linear';\n\t\t\t} else if (sampleType === SAMPLETYPE_UNFILTERABLE_FLOAT) {\n\t\t\t\tdescr.magFilter = 'nearest';\n\t\t\t\tdescr.minFilter = 'nearest';\n\t\t\t\tdescr.mipmapFilter = 'nearest';\n\t\t\t} else {\n\t\t\t\tconst forceNearest = !device.textureFloatFilterable && (texture.format === PIXELFORMAT_RGBA32F || texture.format === PIXELFORMAT_RGBA16F);\n\t\t\t\tif (forceNearest || this.texture.format === PIXELFORMAT_DEPTHSTENCIL || isIntegerPixelFormat(this.texture.format)) {\n\t\t\t\t\tdescr.magFilter = 'nearest';\n\t\t\t\t\tdescr.minFilter = 'nearest';\n\t\t\t\t\tdescr.mipmapFilter = 'nearest';\n\t\t\t\t} else {\n\t\t\t\t\tdescr.magFilter = gpuFilterModes[texture.magFilter].level;\n\t\t\t\t\tdescr.minFilter = gpuFilterModes[texture.minFilter].level;\n\t\t\t\t\tdescr.mipmapFilter = gpuFilterModes[texture.minFilter].mip;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst allLinear = descr.minFilter === 'linear' && descr.magFilter === 'linear' && descr.mipmapFilter === 'linear';\n\t\t\tdescr.maxAnisotropy = allLinear ? math.clamp(Math.round(texture._anisotropy), 1, device.maxTextureAnisotropy) : 1;\n\t\t\tsampler = device.wgpu.createSampler(descr);\n\t\t\tthis.samplers[sampleType] = sampler;\n\t\t}\n\t\treturn sampler;\n\t}\n\tloseContext() {}\n\tuploadImmediate(device, texture) {\n\t\tif (texture._needsUpload || texture._needsMipmapsUpload) {\n\t\t\tthis.uploadData(device);\n\t\t\ttexture._needsUpload = false;\n\t\t\ttexture._needsMipmapsUpload = false;\n\t\t}\n\t}\n\tuploadData(device) {\n\t\tconst texture = this.texture;\n\t\tif (texture._levels) {\n\t\t\tlet anyUploads = false;\n\t\t\tlet anyLevelMissing = false;\n\t\t\tconst requiredMipLevels = texture.requiredMipLevels;\n\t\t\tfor (let mipLevel = 0; mipLevel < requiredMipLevels; mipLevel++) {\n\t\t\t\tconst mipObject = texture._levels[mipLevel];\n\t\t\t\tif (mipObject) {\n\t\t\t\t\tif (texture.cubemap) {\n\t\t\t\t\t\tfor (let face = 0; face < 6; face++) {\n\t\t\t\t\t\t\tconst faceSource = mipObject[face];\n\t\t\t\t\t\t\tif (faceSource) {\n\t\t\t\t\t\t\t\tif (this.isExternalImage(faceSource)) {\n\t\t\t\t\t\t\t\t\tthis.uploadExternalImage(device, faceSource, mipLevel, face);\n\t\t\t\t\t\t\t\t\tanyUploads = true;\n\t\t\t\t\t\t\t\t} else if (ArrayBuffer.isView(faceSource)) {\n\t\t\t\t\t\t\t\t\tthis.uploadTypedArrayData(device, faceSource, mipLevel, face);\n\t\t\t\t\t\t\t\t\tanyUploads = true;\n\t\t\t\t\t\t\t\t} else ;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tanyLevelMissing = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (texture._volume) ; else if (texture.array) {\n\t\t\t\t\t\tif (texture.arrayLength === mipObject.length) {\n\t\t\t\t\t\t\tfor (let index = 0; index < texture._arrayLength; index++) {\n\t\t\t\t\t\t\t\tconst arraySource = mipObject[index];\n\t\t\t\t\t\t\t\tif (this.isExternalImage(arraySource)) {\n\t\t\t\t\t\t\t\t\tthis.uploadExternalImage(device, arraySource, mipLevel, index);\n\t\t\t\t\t\t\t\t\tanyUploads = true;\n\t\t\t\t\t\t\t\t} else if (ArrayBuffer.isView(arraySource)) {\n\t\t\t\t\t\t\t\t\tthis.uploadTypedArrayData(device, arraySource, mipLevel, index);\n\t\t\t\t\t\t\t\t\tanyUploads = true;\n\t\t\t\t\t\t\t\t} else ;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tanyLevelMissing = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (this.isExternalImage(mipObject)) {\n\t\t\t\t\t\t\tthis.uploadExternalImage(device, mipObject, mipLevel, 0);\n\t\t\t\t\t\t\tanyUploads = true;\n\t\t\t\t\t\t} else if (ArrayBuffer.isView(mipObject)) {\n\t\t\t\t\t\t\tthis.uploadTypedArrayData(device, mipObject, mipLevel, 0);\n\t\t\t\t\t\t\tanyUploads = true;\n\t\t\t\t\t\t} else ;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tanyLevelMissing = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (anyUploads && anyLevelMissing && texture.mipmaps && !isCompressedPixelFormat(texture.format)) {\n\t\t\t\tdevice.mipmapRenderer.generate(this);\n\t\t\t}\n\t\t\tif (texture._gpuSize) {\n\t\t\t\ttexture.adjustVramSizeTracking(device._vram, -texture._gpuSize);\n\t\t\t}\n\t\t\ttexture._gpuSize = texture.gpuSize;\n\t\t\ttexture.adjustVramSizeTracking(device._vram, texture._gpuSize);\n\t\t}\n\t}\n\tisExternalImage(image) {\n\t\treturn image instanceof ImageBitmap || image instanceof HTMLVideoElement || image instanceof HTMLCanvasElement || image instanceof OffscreenCanvas;\n\t}\n\tuploadExternalImage(device, image, mipLevel, index) {\n\t\tconst src = {\n\t\t\tsource: image,\n\t\t\torigin: [0, 0],\n\t\t\tflipY: false\n\t\t};\n\t\tconst dst = {\n\t\t\ttexture: this.gpuTexture,\n\t\t\tmipLevel: mipLevel,\n\t\t\torigin: [0, 0, index],\n\t\t\taspect: 'all'\n\t\t};\n\t\tconst copySize = {\n\t\t\twidth: this.descr.size.width,\n\t\t\theight: this.descr.size.height,\n\t\t\tdepthOrArrayLayers: 1\n\t\t};\n\t\tdevice.submit();\n\t\tdummyUse(image instanceof HTMLCanvasElement && image.getContext('2d'));\n\t\tdevice.wgpu.queue.copyExternalImageToTexture(src, dst, copySize);\n\t}\n\tuploadTypedArrayData(device, data, mipLevel, index) {\n\t\tconst texture = this.texture;\n\t\tconst wgpu = device.wgpu;\n\t\tconst dest = {\n\t\t\ttexture: this.gpuTexture,\n\t\t\torigin: [0, 0, index],\n\t\t\tmipLevel: mipLevel\n\t\t};\n\t\tconst width = TextureUtils.calcLevelDimension(texture.width, mipLevel);\n\t\tconst height = TextureUtils.calcLevelDimension(texture.height, mipLevel);\n\t\tTextureUtils.calcLevelGpuSize(width, height, 1, texture.format);\n\t\tconst formatInfo = pixelFormatInfo.get(texture.format);\n\t\tlet dataLayout;\n\t\tlet size;\n\t\tif (formatInfo.size) {\n\t\t\tdataLayout = {\n\t\t\t\toffset: 0,\n\t\t\t\tbytesPerRow: formatInfo.size * width,\n\t\t\t\trowsPerImage: height\n\t\t\t};\n\t\t\tsize = {\n\t\t\t\twidth: width,\n\t\t\t\theight: height\n\t\t\t};\n\t\t} else if (formatInfo.blockSize) {\n\t\t\tconst blockDim = size => {\n\t\t\t\treturn Math.floor((size + 3) / 4);\n\t\t\t};\n\t\t\tdataLayout = {\n\t\t\t\toffset: 0,\n\t\t\t\tbytesPerRow: formatInfo.blockSize * blockDim(width),\n\t\t\t\trowsPerImage: blockDim(height)\n\t\t\t};\n\t\t\tsize = {\n\t\t\t\twidth: Math.max(4, width),\n\t\t\t\theight: Math.max(4, height)\n\t\t\t};\n\t\t} else ;\n\t\tdevice.submit();\n\t\twgpu.queue.writeTexture(dest, data, dataLayout, size);\n\t}\n}\n\nclass WebgpuUniformBuffer extends WebgpuBuffer {\n\tconstructor(uniformBuffer) {\n\t\tsuper(BUFFERUSAGE_UNIFORM);\n\t}\n\tunlock(uniformBuffer) {\n\t\tconst device = uniformBuffer.device;\n\t\tsuper.unlock(device, uniformBuffer.storageInt32.buffer);\n\t}\n}\n\nclass WebgpuVertexBuffer extends WebgpuBuffer {\n\tconstructor(vertexBuffer, format, options) {\n\t\tsuper(BUFFERUSAGE_VERTEX | (options != null && options.storage ? BUFFERUSAGE_STORAGE : 0));\n\t}\n\tunlock(vertexBuffer) {\n\t\tconst device = vertexBuffer.device;\n\t\tsuper.unlock(device, vertexBuffer.storage);\n\t}\n}\n\nconst KEYWORD = /[ \\t]*#(ifn?def|if|endif|else|elif|define|undef|extension|include)/g;\nconst DEFINE = /define[ \\t]+([^\\n]+)\\r?(?:\\n|$)/g;\nconst EXTENSION = /extension[ \\t]+([\\w-]+)[ \\t]*:[ \\t]*(enable|require)/g;\nconst UNDEF = /undef[ \\t]+([^\\n]+)\\r?(?:\\n|$)/g;\nconst IF = /(ifdef|ifndef|if)[ \\t]*([^\\r\\n]+)\\r?\\n/g;\nconst ENDIF = /(endif|else|elif)([ \\t][^\\r\\n]+)?\\r?(?:\\n|$)/g;\nconst IDENTIFIER$1 = /([\\w-]+)/;\nconst DEFINED = /(!|\\s)?defined\\(([\\w-]+)\\)/;\nconst INVALID = /[><=|&+-]/g;\nconst INCLUDE = /include[ \\t]+\"([\\w-]+)\"\\r?(?:\\n|$)/g;\nclass Preprocessor {\n\tstatic run(source, includes = new Map(), stripUnusedColorAttachments = false) {\n\t\tsource = source.replace(/\\/\\*[\\s\\S]*?\\*\\/|([^\\\\:]|^)\\/\\/.*$/gm, '$1');\n\t\tsource = source.split(/\\r?\\n/).map(line => line.trimEnd()).join('\\n');\n\t\tconst defines = new Map();\n\t\tif (stripUnusedColorAttachments) {\n\t\t\tconst counts = new Map();\n\t\t\tconst regex = /(pcFragColor[1-8])\\b/g;\n\t\t\tconst matches = source.match(regex);\n\t\t\tmatches == null || matches.forEach(match => {\n\t\t\t\tvar _counts$get;\n\t\t\t\tconst index = parseInt(match.charAt(match.length - 1), 10);\n\t\t\t\tcounts.set(index, ((_counts$get = counts.get(index)) != null ? _counts$get : 0) + 1);\n\t\t\t});\n\t\t\tcounts.forEach((count, index) => {\n\t\t\t\tif (count === 1) {\n\t\t\t\t\tdefines.set(`REMOVE_COLOR_ATTACHMENT_${index}`, '');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tsource = this._preprocess(source, defines, includes);\n\t\tconst intDefines = new Map();\n\t\tdefines.forEach((value, key) => {\n\t\t\tif (Number.isInteger(parseFloat(value)) && !value.includes('.')) {\n\t\t\t\tintDefines.set(key, value);\n\t\t\t}\n\t\t});\n\t\tsource = this.RemoveEmptyLines(source);\n\t\tsource = this.processArraySize(source, intDefines);\n\t\treturn source;\n\t}\n\tstatic processArraySize(source, intDefines) {\n\t\tif (source !== null) {\n\t\t\tintDefines.forEach((value, key) => {\n\t\t\t\tsource = source.replace(new RegExp(`\\\\[${key}\\\\]`, 'g'), `[${value}]`);\n\t\t\t});\n\t\t}\n\t\treturn source;\n\t}\n\tstatic RemoveEmptyLines(source) {\n\t\tif (source !== null) {\n\t\t\tsource = source.split(/\\r?\\n/).map(line => line.trim() === '' ? '' : line).join('\\n');\n\t\t\tsource = source.replace(/(\\n\\n){3,}/g, '\\n\\n');\n\t\t}\n\t\treturn source;\n\t}\n\tstatic _preprocess(source, defines = new Map(), includes) {\n\t\tconst originalSource = source;\n\t\tconst stack = [];\n\t\tlet error = false;\n\t\tlet match;\n\t\twhile ((match = KEYWORD.exec(source)) !== null) {\n\t\t\tconst keyword = match[1];\n\t\t\tswitch (keyword) {\n\t\t\t\tcase 'define':\n\t\t\t\t\t{\n\t\t\t\t\t\tDEFINE.lastIndex = match.index;\n\t\t\t\t\t\tconst define = DEFINE.exec(source);\n\t\t\t\t\t\terror || (error = define === null);\n\t\t\t\t\t\tconst expression = define[1];\n\t\t\t\t\t\tIDENTIFIER$1.lastIndex = define.index;\n\t\t\t\t\t\tconst identifierValue = IDENTIFIER$1.exec(expression);\n\t\t\t\t\t\tconst identifier = identifierValue[1];\n\t\t\t\t\t\tlet value = expression.substring(identifier.length).trim();\n\t\t\t\t\t\tif (value === '') value = 'true';\n\t\t\t\t\t\tconst keep = Preprocessor._keep(stack);\n\t\t\t\t\t\tif (keep) {\n\t\t\t\t\t\t\tdefines.set(identifier, value);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tKEYWORD.lastIndex = define.index + define[0].length;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase 'undef':\n\t\t\t\t\t{\n\t\t\t\t\t\tUNDEF.lastIndex = match.index;\n\t\t\t\t\t\tconst undef = UNDEF.exec(source);\n\t\t\t\t\t\tconst identifier = undef[1].trim();\n\t\t\t\t\t\tconst keep = Preprocessor._keep(stack);\n\t\t\t\t\t\tif (keep) {\n\t\t\t\t\t\t\tdefines.delete(identifier);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tKEYWORD.lastIndex = undef.index + undef[0].length;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase 'extension':\n\t\t\t\t\t{\n\t\t\t\t\t\tEXTENSION.lastIndex = match.index;\n\t\t\t\t\t\tconst extension = EXTENSION.exec(source);\n\t\t\t\t\t\terror || (error = extension === null);\n\t\t\t\t\t\tif (extension) {\n\t\t\t\t\t\t\tconst identifier = extension[1];\n\t\t\t\t\t\t\tconst keep = Preprocessor._keep(stack);\n\t\t\t\t\t\t\tif (keep) {\n\t\t\t\t\t\t\t\tdefines.set(identifier, 'true');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tKEYWORD.lastIndex = extension.index + extension[0].length;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase 'ifdef':\n\t\t\t\tcase 'ifndef':\n\t\t\t\tcase 'if':\n\t\t\t\t\t{\n\t\t\t\t\t\tIF.lastIndex = match.index;\n\t\t\t\t\t\tconst iff = IF.exec(source);\n\t\t\t\t\t\tconst expression = iff[2];\n\t\t\t\t\t\tconst evaluated = Preprocessor.evaluate(expression, defines);\n\t\t\t\t\t\terror || (error = evaluated.error);\n\t\t\t\t\t\tlet result = evaluated.result;\n\t\t\t\t\t\tif (keyword === 'ifndef') {\n\t\t\t\t\t\t\tresult = !result;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstack.push({\n\t\t\t\t\t\t\tanyKeep: result,\n\t\t\t\t\t\t\tkeep: result,\n\t\t\t\t\t\t\tstart: match.index,\n\t\t\t\t\t\t\tend: IF.lastIndex\n\t\t\t\t\t\t});\n\t\t\t\t\t\tKEYWORD.lastIndex = iff.index + iff[0].length;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase 'endif':\n\t\t\t\tcase 'else':\n\t\t\t\tcase 'elif':\n\t\t\t\t\t{\n\t\t\t\t\t\tENDIF.lastIndex = match.index;\n\t\t\t\t\t\tconst endif = ENDIF.exec(source);\n\t\t\t\t\t\tconst blockInfo = stack.pop();\n\t\t\t\t\t\tconst blockCode = blockInfo.keep ? source.substring(blockInfo.end, match.index) : '';\n\t\t\t\t\t\tsource = source.substring(0, blockInfo.start) + blockCode + source.substring(ENDIF.lastIndex);\n\t\t\t\t\t\tKEYWORD.lastIndex = blockInfo.start + blockCode.length;\n\t\t\t\t\t\tconst endifCommand = endif[1];\n\t\t\t\t\t\tif (endifCommand === 'else' || endifCommand === 'elif') {\n\t\t\t\t\t\t\tlet result = false;\n\t\t\t\t\t\t\tif (!blockInfo.anyKeep) {\n\t\t\t\t\t\t\t\tif (endifCommand === 'else') {\n\t\t\t\t\t\t\t\t\tresult = !blockInfo.keep;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tconst evaluated = Preprocessor.evaluate(endif[2], defines);\n\t\t\t\t\t\t\t\t\tresult = evaluated.result;\n\t\t\t\t\t\t\t\t\terror || (error = evaluated.error);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstack.push({\n\t\t\t\t\t\t\t\tanyKeep: blockInfo.anyKeep || result,\n\t\t\t\t\t\t\t\tkeep: result,\n\t\t\t\t\t\t\t\tstart: KEYWORD.lastIndex,\n\t\t\t\t\t\t\t\tend: KEYWORD.lastIndex\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase 'include':\n\t\t\t\t\t{\n\t\t\t\t\t\tINCLUDE.lastIndex = match.index;\n\t\t\t\t\t\tconst include = INCLUDE.exec(source);\n\t\t\t\t\t\terror || (error = include === null);\n\t\t\t\t\t\tconst identifier = include[1].trim();\n\t\t\t\t\t\tconst keep = Preprocessor._keep(stack);\n\t\t\t\t\t\tif (keep) {\n\t\t\t\t\t\t\tconst includeSource = includes == null ? void 0 : includes.get(identifier);\n\t\t\t\t\t\t\tif (includeSource) {\n\t\t\t\t\t\t\t\tsource = source.substring(0, include.index - 1) + includeSource + source.substring(INCLUDE.lastIndex);\n\t\t\t\t\t\t\t\tKEYWORD.lastIndex = include.index;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tconsole.error(`Include not found: ${identifier}`);\n\t\t\t\t\t\t\t\terror = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (error) {\n\t\t\tconsole.warn('Failed to preprocess shader: ', {\n\t\t\t\tsource: originalSource\n\t\t\t});\n\t\t\treturn originalSource;\n\t\t}\n\t\treturn source;\n\t}\n\tstatic _keep(stack) {\n\t\tfor (let i = 0; i < stack.length; i++) {\n\t\t\tif (!stack[i].keep) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\tstatic evaluate(expression, defines) {\n\t\tconst correct = INVALID.exec(expression) === null;\n\t\tlet invert = false;\n\t\tconst defined = DEFINED.exec(expression);\n\t\tif (defined) {\n\t\t\tinvert = defined[1] === '!';\n\t\t\texpression = defined[2];\n\t\t}\n\t\texpression = expression.trim();\n\t\tlet exists = defines.has(expression);\n\t\tif (invert) {\n\t\t\texists = !exists;\n\t\t}\n\t\treturn {\n\t\t\tresult: exists,\n\t\t\terror: !correct\n\t\t};\n\t}\n}\n\nlet id$8 = 0;\nclass Shader {\n\tconstructor(graphicsDevice, definition) {\n\t\tthis.meshUniformBufferFormat = void 0;\n\t\tthis.meshBindGroupFormat = void 0;\n\t\tthis.id = id$8++;\n\t\tthis.device = graphicsDevice;\n\t\tthis.definition = definition;\n\t\tthis.name = definition.name || 'Untitled';\n\t\tthis.init();\n\t\tif (definition.cshader) ; else {\n\t\t\tdefinition.vshader = Preprocessor.run(definition.vshader, definition.vincludes);\n\t\t\tconst stripUnusedColorAttachments = graphicsDevice.isWebGL2 && (platform.name === 'osx' || platform.name === 'ios');\n\t\t\tdefinition.fshader = Preprocessor.run(definition.fshader, definition.fincludes, stripUnusedColorAttachments);\n\t\t}\n\t\tthis.impl = graphicsDevice.createShaderImpl(this);\n\t}\n\tinit() {\n\t\tthis.ready = false;\n\t\tthis.failed = false;\n\t}\n\tget label() {\n\t\treturn `Shader Id ${this.id} ${this.name}`;\n\t}\n\tdestroy() {\n\t\tthis.device.onDestroyShader(this);\n\t\tthis.impl.destroy(this);\n\t}\n\tloseContext() {\n\t\tthis.init();\n\t\tthis.impl.loseContext();\n\t}\n\trestoreContext() {\n\t\tthis.impl.restoreContext(this.device, this);\n\t}\n}\n\nlet id$7 = 0;\nclass BindGroup {\n\tconstructor(graphicsDevice, format, defaultUniformBuffer) {\n\t\tthis.renderVersionUpdated = -1;\n\t\tthis.uniformBuffers = void 0;\n\t\tthis.uniformBufferOffsets = [];\n\t\tthis.id = id$7++;\n\t\tthis.device = graphicsDevice;\n\t\tthis.format = format;\n\t\tthis.dirty = true;\n\t\tthis.impl = graphicsDevice.createBindGroupImpl(this);\n\t\tthis.textures = [];\n\t\tthis.storageTextures = [];\n\t\tthis.storageBuffers = [];\n\t\tthis.uniformBuffers = [];\n\t\tthis.defaultUniformBuffer = defaultUniformBuffer;\n\t\tif (defaultUniformBuffer) {\n\t\t\tthis.setUniformBuffer(UNIFORM_BUFFER_DEFAULT_SLOT_NAME, defaultUniformBuffer);\n\t\t}\n\t}\n\tdestroy() {\n\t\tthis.impl.destroy();\n\t\tthis.impl = null;\n\t\tthis.format = null;\n\t\tthis.defaultUniformBuffer = null;\n\t}\n\tsetUniformBuffer(name, uniformBuffer) {\n\t\tconst index = this.format.bufferFormatsMap.get(name);\n\t\tif (this.uniformBuffers[index] !== uniformBuffer) {\n\t\t\tthis.uniformBuffers[index] = uniformBuffer;\n\t\t\tthis.dirty = true;\n\t\t}\n\t}\n\tsetStorageBuffer(name, storageBuffer) {\n\t\tconst index = this.format.storageBufferFormatsMap.get(name);\n\t\tif (this.storageBuffers[index] !== storageBuffer) {\n\t\t\tthis.storageBuffers[index] = storageBuffer;\n\t\t\tthis.dirty = true;\n\t\t}\n\t}\n\tsetTexture(name, texture) {\n\t\tconst index = this.format.textureFormatsMap.get(name);\n\t\tif (this.textures[index] !== texture) {\n\t\t\tthis.textures[index] = texture;\n\t\t\tthis.dirty = true;\n\t\t} else if (this.renderVersionUpdated < texture.renderVersionDirty) {\n\t\t\tthis.dirty = true;\n\t\t}\n\t}\n\tsetStorageTexture(name, texture) {\n\t\tconst index = this.format.storageTextureFormatsMap.get(name);\n\t\tif (this.storageTextures[index] !== texture) {\n\t\t\tthis.storageTextures[index] = texture;\n\t\t\tthis.dirty = true;\n\t\t} else if (this.renderVersionUpdated < texture.renderVersionDirty) {\n\t\t\tthis.dirty = true;\n\t\t}\n\t}\n\tupdateUniformBuffers() {\n\t\tfor (let i = 0; i < this.uniformBuffers.length; i++) {\n\t\t\tthis.uniformBuffers[i].update();\n\t\t}\n\t}\n\tupdate() {\n\t\tconst {\n\t\t\ttextureFormats,\n\t\t\tstorageTextureFormats,\n\t\t\tstorageBufferFormats\n\t\t} = this.format;\n\t\tfor (let i = 0; i < textureFormats.length; i++) {\n\t\t\tconst textureFormat = textureFormats[i];\n\t\t\tconst value = textureFormat.scopeId.value;\n\t\t\tthis.setTexture(textureFormat.name, value);\n\t\t}\n\t\tfor (let i = 0; i < storageTextureFormats.length; i++) {\n\t\t\tconst storageTextureFormat = storageTextureFormats[i];\n\t\t\tconst value = storageTextureFormat.scopeId.value;\n\t\t\tthis.setStorageTexture(storageTextureFormat.name, value);\n\t\t}\n\t\tfor (let i = 0; i < storageBufferFormats.length; i++) {\n\t\t\tconst storageBufferFormat = storageBufferFormats[i];\n\t\t\tconst value = storageBufferFormat.scopeId.value;\n\t\t\tthis.setStorageBuffer(storageBufferFormat.name, value);\n\t\t}\n\t\tthis.uniformBufferOffsets.length = this.uniformBuffers.length;\n\t\tfor (let i = 0; i < this.uniformBuffers.length; i++) {\n\t\t\tconst uniformBuffer = this.uniformBuffers[i];\n\t\t\tthis.uniformBufferOffsets[i] = uniformBuffer.offset;\n\t\t\tif (this.renderVersionUpdated < uniformBuffer.renderVersionDirty) {\n\t\t\t\tthis.dirty = true;\n\t\t\t}\n\t\t}\n\t\tif (this.dirty) {\n\t\t\tthis.dirty = false;\n\t\t\tthis.renderVersionUpdated = this.device.renderVersion;\n\t\t\tthis.impl.update(this);\n\t\t}\n\t}\n}\n\nclass DynamicBuffer {\n\tconstructor(device) {\n\t\tthis.device = void 0;\n\t\tthis.device = device;\n\t}\n}\nclass UsedBuffer {\n\tconstructor() {\n\t\tthis.gpuBuffer = void 0;\n\t\tthis.stagingBuffer = void 0;\n\t\tthis.offset = void 0;\n\t\tthis.size = void 0;\n\t}\n}\nclass DynamicBufferAllocation {\n\tconstructor() {\n\t\tthis.storage = void 0;\n\t\tthis.gpuBuffer = void 0;\n\t\tthis.offset = void 0;\n\t}\n}\nclass DynamicBuffers {\n\tconstructor(device, bufferSize, bufferAlignment) {\n\t\tthis.bufferSize = void 0;\n\t\tthis.gpuBuffers = [];\n\t\tthis.stagingBuffers = [];\n\t\tthis.usedBuffers = [];\n\t\tthis.activeBuffer = null;\n\t\tthis.device = device;\n\t\tthis.bufferSize = bufferSize;\n\t\tthis.bufferAlignment = bufferAlignment;\n\t}\n\tdestroy() {\n\t\tthis.gpuBuffers.forEach(gpuBuffer => {\n\t\t\tgpuBuffer.destroy(this.device);\n\t\t});\n\t\tthis.gpuBuffers = null;\n\t\tthis.stagingBuffers.forEach(stagingBuffer => {\n\t\t\tstagingBuffer.destroy(this.device);\n\t\t});\n\t\tthis.stagingBuffers = null;\n\t\tthis.usedBuffers = null;\n\t\tthis.activeBuffer = null;\n\t}\n\talloc(allocation, size) {\n\t\tif (this.activeBuffer) {\n\t\t\tconst _alignedStart = math.roundUp(this.activeBuffer.size, this.bufferAlignment);\n\t\t\tconst space = this.bufferSize - _alignedStart;\n\t\t\tif (space < size) {\n\t\t\t\tthis.scheduleSubmit();\n\t\t\t}\n\t\t}\n\t\tif (!this.activeBuffer) {\n\t\t\tlet gpuBuffer = this.gpuBuffers.pop();\n\t\t\tif (!gpuBuffer) {\n\t\t\t\tgpuBuffer = this.createBuffer(this.device, this.bufferSize, false);\n\t\t\t}\n\t\t\tlet stagingBuffer = this.stagingBuffers.pop();\n\t\t\tif (!stagingBuffer) {\n\t\t\t\tstagingBuffer = this.createBuffer(this.device, this.bufferSize, true);\n\t\t\t}\n\t\t\tthis.activeBuffer = new UsedBuffer();\n\t\t\tthis.activeBuffer.stagingBuffer = stagingBuffer;\n\t\t\tthis.activeBuffer.gpuBuffer = gpuBuffer;\n\t\t\tthis.activeBuffer.offset = 0;\n\t\t\tthis.activeBuffer.size = 0;\n\t\t}\n\t\tconst activeBuffer = this.activeBuffer;\n\t\tconst alignedStart = math.roundUp(activeBuffer.size, this.bufferAlignment);\n\t\tallocation.gpuBuffer = activeBuffer.gpuBuffer;\n\t\tallocation.offset = alignedStart;\n\t\tallocation.storage = activeBuffer.stagingBuffer.alloc(alignedStart, size);\n\t\tactiveBuffer.size = alignedStart + size;\n\t}\n\tscheduleSubmit() {\n\t\tif (this.activeBuffer) {\n\t\t\tthis.usedBuffers.push(this.activeBuffer);\n\t\t\tthis.activeBuffer = null;\n\t\t}\n\t}\n\tsubmit() {\n\t\tthis.scheduleSubmit();\n\t}\n}\n\nconst _updateFunctions = [];\n_updateFunctions[UNIFORMTYPE_FLOAT] = function (uniformBuffer, value, offset) {\n\tconst dst = uniformBuffer.storageFloat32;\n\tdst[offset] = value;\n};\n_updateFunctions[UNIFORMTYPE_VEC2] = (uniformBuffer, value, offset) => {\n\tconst dst = uniformBuffer.storageFloat32;\n\tdst[offset] = value[0];\n\tdst[offset + 1] = value[1];\n};\n_updateFunctions[UNIFORMTYPE_VEC3] = (uniformBuffer, value, offset) => {\n\tconst dst = uniformBuffer.storageFloat32;\n\tdst[offset] = value[0];\n\tdst[offset + 1] = value[1];\n\tdst[offset + 2] = value[2];\n};\n_updateFunctions[UNIFORMTYPE_VEC4] = (uniformBuffer, value, offset) => {\n\tconst dst = uniformBuffer.storageFloat32;\n\tdst[offset] = value[0];\n\tdst[offset + 1] = value[1];\n\tdst[offset + 2] = value[2];\n\tdst[offset + 3] = value[3];\n};\n_updateFunctions[UNIFORMTYPE_INT] = function (uniformBuffer, value, offset) {\n\tconst dst = uniformBuffer.storageInt32;\n\tdst[offset] = value;\n};\n_updateFunctions[UNIFORMTYPE_IVEC2] = function (uniformBuffer, value, offset) {\n\tconst dst = uniformBuffer.storageInt32;\n\tdst[offset] = value[0];\n\tdst[offset + 1] = value[1];\n};\n_updateFunctions[UNIFORMTYPE_IVEC3] = function (uniformBuffer, value, offset) {\n\tconst dst = uniformBuffer.storageInt32;\n\tdst[offset] = value[0];\n\tdst[offset + 1] = value[1];\n\tdst[offset + 2] = value[2];\n};\n_updateFunctions[UNIFORMTYPE_IVEC4] = function (uniformBuffer, value, offset) {\n\tconst dst = uniformBuffer.storageInt32;\n\tdst[offset] = value[0];\n\tdst[offset + 1] = value[1];\n\tdst[offset + 2] = value[2];\n\tdst[offset + 3] = value[3];\n};\n_updateFunctions[UNIFORMTYPE_MAT2] = (uniformBuffer, value, offset) => {\n\tconst dst = uniformBuffer.storageFloat32;\n\tdst[offset] = value[0];\n\tdst[offset + 1] = value[1];\n\tdst[offset + 4] = value[2];\n\tdst[offset + 5] = value[3];\n\tdst[offset + 8] = value[4];\n\tdst[offset + 9] = value[5];\n};\n_updateFunctions[UNIFORMTYPE_MAT3] = (uniformBuffer, value, offset) => {\n\tconst dst = uniformBuffer.storageFloat32;\n\tdst[offset] = value[0];\n\tdst[offset + 1] = value[1];\n\tdst[offset + 2] = value[2];\n\tdst[offset + 4] = value[3];\n\tdst[offset + 5] = value[4];\n\tdst[offset + 6] = value[5];\n\tdst[offset + 8] = value[6];\n\tdst[offset + 9] = value[7];\n\tdst[offset + 10] = value[8];\n};\n_updateFunctions[UNIFORMTYPE_FLOATARRAY] = function (uniformBuffer, value, offset, count) {\n\tconst dst = uniformBuffer.storageFloat32;\n\tfor (let i = 0; i < count; i++) {\n\t\tdst[offset + i * 4] = value[i];\n\t}\n};\n_updateFunctions[UNIFORMTYPE_VEC2ARRAY] = (uniformBuffer, value, offset, count) => {\n\tconst dst = uniformBuffer.storageFloat32;\n\tfor (let i = 0; i < count; i++) {\n\t\tdst[offset + i * 4] = value[i * 2];\n\t\tdst[offset + i * 4 + 1] = value[i * 2 + 1];\n\t}\n};\n_updateFunctions[UNIFORMTYPE_VEC3ARRAY] = (uniformBuffer, value, offset, count) => {\n\tconst dst = uniformBuffer.storageFloat32;\n\tfor (let i = 0; i < count; i++) {\n\t\tdst[offset + i * 4] = value[i * 3];\n\t\tdst[offset + i * 4 + 1] = value[i * 3 + 1];\n\t\tdst[offset + i * 4 + 2] = value[i * 3 + 2];\n\t}\n};\n_updateFunctions[UNIFORMTYPE_UINT] = (uniformBuffer, value, offset, count) => {\n\tconst dst = uniformBuffer.storageUint32;\n\tdst[offset] = value;\n};\n_updateFunctions[UNIFORMTYPE_UVEC2] = (uniformBuffer, value, offset, count) => {\n\tconst dst = uniformBuffer.storageUint32;\n\tdst[offset] = value[0];\n\tdst[offset + 1] = value[1];\n};\n_updateFunctions[UNIFORMTYPE_UVEC3] = (uniformBuffer, value, offset, count) => {\n\tconst dst = uniformBuffer.storageUint32;\n\tdst[offset] = value[0];\n\tdst[offset + 1] = value[1];\n\tdst[offset + 2] = value[2];\n};\n_updateFunctions[UNIFORMTYPE_UVEC4] = (uniformBuffer, value, offset, count) => {\n\tconst dst = uniformBuffer.storageUint32;\n\tdst[offset] = value[0];\n\tdst[offset + 1] = value[1];\n\tdst[offset + 2] = value[2];\n\tdst[offset + 3] = value[3];\n};\n_updateFunctions[UNIFORMTYPE_INTARRAY] = function (uniformBuffer, value, offset, count) {\n\tconst dst = uniformBuffer.storageInt32;\n\tfor (let i = 0; i < count; i++) {\n\t\tdst[offset + i * 4] = value[i];\n\t}\n};\n_updateFunctions[UNIFORMTYPE_BOOLARRAY] = _updateFunctions[UNIFORMTYPE_INTARRAY];\n_updateFunctions[UNIFORMTYPE_UINTARRAY] = function (uniformBuffer, value, offset, count) {\n\tconst dst = uniformBuffer.storageUint32;\n\tfor (let i = 0; i < count; i++) {\n\t\tdst[offset + i * 4] = value[i];\n\t}\n};\n_updateFunctions[UNIFORMTYPE_IVEC2ARRAY] = (uniformBuffer, value, offset, count) => {\n\tconst dst = uniformBuffer.storageInt32;\n\tfor (let i = 0; i < count; i++) {\n\t\tdst[offset + i * 4] = value[i * 2];\n\t\tdst[offset + i * 4 + 1] = value[i * 2 + 1];\n\t}\n};\n_updateFunctions[UNIFORMTYPE_BVEC2ARRAY] = _updateFunctions[UNIFORMTYPE_IVEC2ARRAY];\n_updateFunctions[UNIFORMTYPE_UVEC2ARRAY] = (uniformBuffer, value, offset, count) => {\n\tconst dst = uniformBuffer.storageUint32;\n\tfor (let i = 0; i < count; i++) {\n\t\tdst[offset + i * 4] = value[i * 2];\n\t\tdst[offset + i * 4 + 1] = value[i * 2 + 1];\n\t}\n};\n_updateFunctions[UNIFORMTYPE_IVEC3ARRAY] = (uniformBuffer, value, offset, count) => {\n\tconst dst = uniformBuffer.storageInt32;\n\tfor (let i = 0; i < count; i++) {\n\t\tdst[offset + i * 4] = value[i * 3];\n\t\tdst[offset + i * 4 + 1] = value[i * 3 + 1];\n\t\tdst[offset + i * 4 + 2] = value[i * 3 + 2];\n\t}\n};\n_updateFunctions[UNIFORMTYPE_BVEC3ARRAY] = _updateFunctions[UNIFORMTYPE_IVEC3ARRAY];\n_updateFunctions[UNIFORMTYPE_UVEC3ARRAY] = (uniformBuffer, value, offset, count) => {\n\tconst dst = uniformBuffer.storageUint32;\n\tfor (let i = 0; i < count; i++) {\n\t\tdst[offset + i * 4] = value[i * 3];\n\t\tdst[offset + i * 4 + 1] = value[i * 3 + 1];\n\t\tdst[offset + i * 4 + 2] = value[i * 3 + 2];\n\t}\n};\nclass UniformBuffer {\n\tconstructor(graphicsDevice, format, persistent = true) {\n\t\tthis.device = void 0;\n\t\tthis.persistent = void 0;\n\t\tthis.allocation = void 0;\n\t\tthis.storageFloat32 = void 0;\n\t\tthis.storageInt32 = void 0;\n\t\tthis.storageUint32 = void 0;\n\t\tthis.renderVersionDirty = 0;\n\t\tthis.device = graphicsDevice;\n\t\tthis.format = format;\n\t\tthis.persistent = persistent;\n\t\tif (persistent) {\n\t\t\tthis.impl = graphicsDevice.createUniformBufferImpl(this);\n\t\t\tconst storage = new ArrayBuffer(format.byteSize);\n\t\t\tthis.assignStorage(new Int32Array(storage));\n\t\t\tgraphicsDevice._vram.ub += this.format.byteSize;\n\t\t} else {\n\t\t\tthis.allocation = new DynamicBufferAllocation();\n\t\t}\n\t}\n\tdestroy() {\n\t\tif (this.persistent) {\n\t\t\tconst device = this.device;\n\t\t\tthis.impl.destroy(device);\n\t\t\tdevice._vram.ub -= this.format.byteSize;\n\t\t}\n\t}\n\tget offset() {\n\t\treturn this.persistent ? 0 : this.allocation.offset;\n\t}\n\tassignStorage(storage) {\n\t\tthis.storageInt32 = storage;\n\t\tthis.storageUint32 = new Uint32Array(storage.buffer, storage.byteOffset, storage.byteLength / 4);\n\t\tthis.storageFloat32 = new Float32Array(storage.buffer, storage.byteOffset, storage.byteLength / 4);\n\t}\n\tloseContext() {\n\t\tvar _this$impl;\n\t\t(_this$impl = this.impl) == null || _this$impl.loseContext();\n\t}\n\tsetUniform(uniformFormat) {\n\t\tconst offset = uniformFormat.offset;\n\t\tconst value = uniformFormat.scopeId.value;\n\t\tif (value !== null && value !== undefined) {\n\t\t\tconst updateFunction = _updateFunctions[uniformFormat.updateType];\n\t\t\tif (updateFunction) {\n\t\t\t\tupdateFunction(this, value, offset, uniformFormat.count);\n\t\t\t} else {\n\t\t\t\tthis.storageFloat32.set(value, offset);\n\t\t\t}\n\t\t}\n\t}\n\tset(name) {\n\t\tconst uniformFormat = this.format.map.get(name);\n\t\tif (uniformFormat) {\n\t\t\tthis.setUniform(uniformFormat);\n\t\t}\n\t}\n\tupdate() {\n\t\tconst persistent = this.persistent;\n\t\tif (!persistent) {\n\t\t\tconst allocation = this.allocation;\n\t\t\tconst oldGpuBuffer = allocation.gpuBuffer;\n\t\t\tthis.device.dynamicBuffers.alloc(allocation, this.format.byteSize);\n\t\t\tthis.assignStorage(allocation.storage);\n\t\t\tif (oldGpuBuffer !== allocation.gpuBuffer) {\n\t\t\t\tthis.renderVersionDirty = this.device.renderVersion;\n\t\t\t}\n\t\t}\n\t\tconst uniforms = this.format.uniforms;\n\t\tfor (let i = 0; i < uniforms.length; i++) {\n\t\t\tthis.setUniform(uniforms[i]);\n\t\t}\n\t\tif (persistent) {\n\t\t\tthis.impl.unlock(this);\n\t\t} else {\n\t\t\tthis.storageFloat32 = null;\n\t\t\tthis.storageInt32 = null;\n\t\t}\n\t}\n}\n\nconst primitive = {\n\ttype: PRIMITIVE_TRISTRIP,\n\tbase: 0,\n\tcount: 4,\n\tindexed: false\n};\nclass WebgpuClearRenderer {\n\tconstructor(device) {\n\t\tconst code = `\n\n\t\t\t\t\t\tstruct ub_mesh {\n\t\t\t\t\t\t\t\tcolor : vec4f,\n\t\t\t\t\t\t\t\tdepth: f32\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t@group(0) @binding(0) var<uniform> ubMesh : ub_mesh;\n\n\t\t\t\t\t\tvar<private> pos : array<vec2f, 4> = array<vec2f, 4>(\n\t\t\t\t\t\t\t\tvec2(-1.0, 1.0), vec2(1.0, 1.0),\n\t\t\t\t\t\t\t\tvec2(-1.0, -1.0), vec2(1.0, -1.0)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tstruct VertexOutput {\n\t\t\t\t\t\t\t\t@builtin(position) position : vec4f\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t@vertex\n\t\t\t\t\t\tfn vertexMain(@builtin(vertex_index) vertexIndex : u32) -> VertexOutput {\n\t\t\t\t\t\t\t\tvar output : VertexOutput;\n\t\t\t\t\t\t\t\toutput.position = vec4(pos[vertexIndex], ubMesh.depth, 1.0);\n\t\t\t\t\t\t\t\treturn output;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t@fragment\n\t\t\t\t\t\tfn fragmentMain() -> @location(0) vec4f {\n\t\t\t\t\t\t\t\treturn ubMesh.color;\n\t\t\t\t\t\t}\n\t\t\t\t`;\n\t\tthis.shader = new Shader(device, {\n\t\t\tname: 'WebGPUClearRendererShader',\n\t\t\tshaderLanguage: SHADERLANGUAGE_WGSL,\n\t\t\tvshader: code,\n\t\t\tfshader: code\n\t\t});\n\t\tthis.uniformBuffer = new UniformBuffer(device, new UniformBufferFormat(device, [new UniformFormat('color', UNIFORMTYPE_VEC4), new UniformFormat('depth', UNIFORMTYPE_FLOAT)]), false);\n\t\tconst bindGroupFormat = new BindGroupFormat(device, [new BindUniformBufferFormat(UNIFORM_BUFFER_DEFAULT_SLOT_NAME, SHADERSTAGE_VERTEX | SHADERSTAGE_FRAGMENT)]);\n\t\tthis.bindGroup = new BindGroup(device, bindGroupFormat, this.uniformBuffer);\n\t\tthis.colorData = new Float32Array(4);\n\t\tthis.colorId = device.scope.resolve('color');\n\t\tthis.depthId = device.scope.resolve('depth');\n\t}\n\tdestroy() {\n\t\tthis.shader.destroy();\n\t\tthis.shader = null;\n\t\tthis.uniformBuffer.destroy();\n\t\tthis.uniformBuffer = null;\n\t\tthis.bindGroup.destroy();\n\t\tthis.bindGroup = null;\n\t}\n\tclear(device, renderTarget, options, defaultOptions) {\n\t\tvar _options$flags;\n\t\toptions = options || defaultOptions;\n\t\tconst flags = (_options$flags = options.flags) != null ? _options$flags : defaultOptions.flags;\n\t\tif (flags !== 0) {\n\t\t\tif (flags & CLEARFLAG_COLOR && (renderTarget.colorBuffer || renderTarget.impl.assignedColorTexture)) {\n\t\t\t\tvar _options$color;\n\t\t\t\tconst color = (_options$color = options.color) != null ? _options$color : defaultOptions.color;\n\t\t\t\tthis.colorData.set(color);\n\t\t\t\tdevice.setBlendState(BlendState.NOBLEND);\n\t\t\t} else {\n\t\t\t\tdevice.setBlendState(BlendState.NOWRITE);\n\t\t\t}\n\t\t\tthis.colorId.setValue(this.colorData);\n\t\t\tif (flags & CLEARFLAG_DEPTH && renderTarget.depth) {\n\t\t\t\tvar _options$depth;\n\t\t\t\tconst depth = (_options$depth = options.depth) != null ? _options$depth : defaultOptions.depth;\n\t\t\t\tthis.depthId.setValue(depth);\n\t\t\t\tdevice.setDepthState(DepthState.WRITEDEPTH);\n\t\t\t} else {\n\t\t\t\tthis.depthId.setValue(1);\n\t\t\t\tdevice.setDepthState(DepthState.NODEPTH);\n\t\t\t}\n\t\t\tif (flags & CLEARFLAG_STENCIL && renderTarget.stencil) ;\n\t\t\tdevice.setCullMode(CULLFACE_NONE);\n\t\t\tdevice.setShader(this.shader);\n\t\t\tconst bindGroup = this.bindGroup;\n\t\t\tbindGroup.defaultUniformBuffer.update();\n\t\t\tbindGroup.update();\n\t\t\tdevice.setBindGroup(BINDGROUP_MESH, bindGroup);\n\t\t\tdevice.draw(primitive);\n\t\t}\n\t}\n}\n\nclass WebgpuMipmapRenderer {\n\tconstructor(device) {\n\t\tthis.device = void 0;\n\t\tthis.device = device;\n\t\tconst code = `\n \n\t\t\t\t\t\tvar<private> pos : array<vec2f, 4> = array<vec2f, 4>(\n\t\t\t\t\t\t\t\tvec2(-1.0, 1.0), vec2(1.0, 1.0),\n\t\t\t\t\t\t\t\tvec2(-1.0, -1.0), vec2(1.0, -1.0)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tstruct VertexOutput {\n\t\t\t\t\t\t\t\t@builtin(position) position : vec4f,\n\t\t\t\t\t\t\t\t@location(0) texCoord : vec2f\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t@vertex\n\t\t\t\t\t\tfn vertexMain(@builtin(vertex_index) vertexIndex : u32) -> VertexOutput {\n\t\t\t\t\t\t\tvar output : VertexOutput;\n\t\t\t\t\t\t\toutput.texCoord = pos[vertexIndex] * vec2f(0.5, -0.5) + vec2f(0.5);\n\t\t\t\t\t\t\toutput.position = vec4f(pos[vertexIndex], 0, 1);\n\t\t\t\t\t\t\treturn output;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t@group(0) @binding(0) var imgSampler : sampler;\n\t\t\t\t\t\t@group(0) @binding(1) var img : texture_2d<f32>;\n\n\t\t\t\t\t\t@fragment\n\t\t\t\t\t\tfn fragmentMain(@location(0) texCoord : vec2f) -> @location(0) vec4f {\n\t\t\t\t\t\t\treturn textureSample(img, imgSampler, texCoord);\n\t\t\t\t\t\t}\n\t\t\t\t`;\n\t\tthis.shader = new Shader(device, {\n\t\t\tname: 'WebGPUMipmapRendererShader',\n\t\t\tshaderLanguage: SHADERLANGUAGE_WGSL,\n\t\t\tvshader: code,\n\t\t\tfshader: code\n\t\t});\n\t\tthis.minSampler = device.wgpu.createSampler({\n\t\t\tminFilter: 'linear'\n\t\t});\n\t}\n\tdestroy() {\n\t\tthis.shader.destroy();\n\t\tthis.shader = null;\n\t}\n\tgenerate(webgpuTexture) {\n\t\tvar _device$commandEncode;\n\t\tconst textureDescr = webgpuTexture.descr;\n\t\tif (textureDescr.mipLevelCount <= 1) {\n\t\t\treturn;\n\t\t}\n\t\tif (webgpuTexture.texture.volume) {\n\t\t\treturn;\n\t\t}\n\t\tconst device = this.device;\n\t\tconst wgpu = device.wgpu;\n\t\tconst webgpuShader = this.shader.impl;\n\t\tconst pipeline = wgpu.createRenderPipeline({\n\t\t\tlayout: 'auto',\n\t\t\tvertex: {\n\t\t\t\tmodule: webgpuShader.getVertexShaderModule(),\n\t\t\t\tentryPoint: webgpuShader.vertexEntryPoint\n\t\t\t},\n\t\t\tfragment: {\n\t\t\t\tmodule: webgpuShader.getFragmentShaderModule(),\n\t\t\t\tentryPoint: webgpuShader.fragmentEntryPoint,\n\t\t\t\ttargets: [{\n\t\t\t\t\tformat: textureDescr.format\n\t\t\t\t}]\n\t\t\t},\n\t\t\tprimitive: {\n\t\t\t\ttopology: 'triangle-strip'\n\t\t\t}\n\t\t});\n\t\tconst texture = webgpuTexture.texture;\n\t\tconst numFaces = texture.cubemap ? 6 : texture.array ? texture.arrayLength : 1;\n\t\tconst srcViews = [];\n\t\tfor (let face = 0; face < numFaces; face++) {\n\t\t\tsrcViews.push(webgpuTexture.createView({\n\t\t\t\tdimension: '2d',\n\t\t\t\tbaseMipLevel: 0,\n\t\t\t\tmipLevelCount: 1,\n\t\t\t\tbaseArrayLayer: face\n\t\t\t}));\n\t\t}\n\t\tconst commandEncoder = (_device$commandEncode = device.commandEncoder) != null ? _device$commandEncode : wgpu.createCommandEncoder();\n\t\tfor (let i = 1; i < textureDescr.mipLevelCount; i++) {\n\t\t\tfor (let face = 0; face < numFaces; face++) {\n\t\t\t\tconst dstView = webgpuTexture.createView({\n\t\t\t\t\tdimension: '2d',\n\t\t\t\t\tbaseMipLevel: i,\n\t\t\t\t\tmipLevelCount: 1,\n\t\t\t\t\tbaseArrayLayer: face\n\t\t\t\t});\n\t\t\t\tconst passEncoder = commandEncoder.beginRenderPass({\n\t\t\t\t\tcolorAttachments: [{\n\t\t\t\t\t\tview: dstView,\n\t\t\t\t\t\tloadOp: 'clear',\n\t\t\t\t\t\tstoreOp: 'store'\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t\tconst bindGroup = wgpu.createBindGroup({\n\t\t\t\t\tlayout: pipeline.getBindGroupLayout(0),\n\t\t\t\t\tentries: [{\n\t\t\t\t\t\tbinding: 0,\n\t\t\t\t\t\tresource: this.minSampler\n\t\t\t\t\t}, {\n\t\t\t\t\t\tbinding: 1,\n\t\t\t\t\t\tresource: srcViews[face]\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t\tpassEncoder.setPipeline(pipeline);\n\t\t\t\tpassEncoder.setBindGroup(0, bindGroup);\n\t\t\t\tpassEncoder.draw(4);\n\t\t\t\tpassEncoder.end();\n\t\t\t\tsrcViews[face] = dstView;\n\t\t\t}\n\t\t}\n\t\tif (!device.commandEncoder) {\n\t\t\tconst cb = commandEncoder.finish();\n\t\t\tdevice.addCommandBuffer(cb);\n\t\t}\n\t\tdevice.pipeline = null;\n\t}\n}\n\nclass WebgpuDynamicBuffer extends DynamicBuffer {\n\tconstructor(device, size, isStaging) {\n\t\tsuper(device);\n\t\tthis.buffer = null;\n\t\tthis.mappedRange = null;\n\t\tthis.buffer = device.wgpu.createBuffer({\n\t\t\tsize: size,\n\t\t\tusage: isStaging ? GPUBufferUsage.MAP_WRITE | GPUBufferUsage.COPY_SRC : GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST,\n\t\t\tmappedAtCreation: isStaging\n\t\t});\n\t\tif (isStaging) {\n\t\t\tthis.onAvailable();\n\t\t}\n\t\tdevice._vram.ub += size;\n\t}\n\tdestroy(device) {\n\t\tdevice._vram.ub -= this.buffer.size;\n\t\tthis.buffer.destroy();\n\t\tthis.buffer = null;\n\t}\n\tonAvailable() {\n\t\tthis.mappedRange = this.buffer.getMappedRange();\n\t}\n\talloc(offset, size) {\n\t\treturn new Int32Array(this.mappedRange, offset, size / 4);\n\t}\n}\n\nclass WebgpuDynamicBuffers extends DynamicBuffers {\n\tconstructor(...args) {\n\t\tsuper(...args);\n\t\tthis.pendingStagingBuffers = [];\n\t}\n\tcreateBuffer(device, size, isStaging) {\n\t\treturn new WebgpuDynamicBuffer(device, size, isStaging);\n\t}\n\tsubmit() {\n\t\tsuper.submit();\n\t\tconst count = this.usedBuffers.length;\n\t\tif (count) {\n\t\t\tconst device = this.device;\n\t\t\tconst gpuBuffers = this.gpuBuffers;\n\t\t\tconst commandEncoder = device.wgpu.createCommandEncoder();\n\t\t\tfor (let i = count - 1; i >= 0; i--) {\n\t\t\t\tconst usedBuffer = this.usedBuffers[i];\n\t\t\t\tconst {\n\t\t\t\t\tstagingBuffer,\n\t\t\t\t\tgpuBuffer,\n\t\t\t\t\toffset,\n\t\t\t\t\tsize\n\t\t\t\t} = usedBuffer;\n\t\t\t\tconst src = stagingBuffer.buffer;\n\t\t\t\tsrc.unmap();\n\t\t\t\tcommandEncoder.copyBufferToBuffer(src, offset, gpuBuffer.buffer, offset, size);\n\t\t\t\tgpuBuffers.push(gpuBuffer);\n\t\t\t}\n\t\t\tconst cb = commandEncoder.finish();\n\t\t\tdevice.addCommandBuffer(cb, true);\n\t\t\tfor (let i = 0; i < count; i++) {\n\t\t\t\tconst stagingBuffer = this.usedBuffers[i].stagingBuffer;\n\t\t\t\tthis.pendingStagingBuffers.push(stagingBuffer);\n\t\t\t}\n\t\t\tthis.usedBuffers.length = 0;\n\t\t}\n\t}\n\tonCommandBuffersSubmitted() {\n\t\tconst count = this.pendingStagingBuffers.length;\n\t\tif (count) {\n\t\t\tfor (let i = 0; i < count; i++) {\n\t\t\t\tconst stagingBuffer = this.pendingStagingBuffers[i];\n\t\t\t\tstagingBuffer.buffer.mapAsync(GPUMapMode.WRITE).then(() => {\n\t\t\t\t\tif (this.stagingBuffers) {\n\t\t\t\t\t\tstagingBuffer.onAvailable();\n\t\t\t\t\t\tthis.stagingBuffers.push(stagingBuffer);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tthis.pendingStagingBuffers.length = 0;\n\t\t}\n\t}\n}\n\nclass GpuProfiler {\n\tconstructor() {\n\t\tthis.frameAllocations = [];\n\t\tthis.pastFrameAllocations = new Map();\n\t\tthis._enabled = false;\n\t\tthis._enableRequest = false;\n\t\tthis._frameTime = 0;\n\t}\n\tloseContext() {\n\t\tthis.pastFrameAllocations.clear();\n\t}\n\tset enabled(value) {\n\t\tthis._enableRequest = value;\n\t}\n\tget enabled() {\n\t\treturn this._enableRequest;\n\t}\n\tprocessEnableRequest() {\n\t\tif (this._enableRequest !== this._enabled) {\n\t\t\tthis._enabled = this._enableRequest;\n\t\t\tif (!this._enabled) {\n\t\t\t\tthis._frameTime = 0;\n\t\t\t}\n\t\t}\n\t}\n\trequest(renderVersion) {\n\t\tthis.pastFrameAllocations.set(renderVersion, this.frameAllocations);\n\t\tthis.frameAllocations = [];\n\t}\n\treport(renderVersion, timings) {\n\t\tif (timings) {\n\t\t\tconst allocations = this.pastFrameAllocations.get(renderVersion);\n\t\t\tif (timings.length > 0) {\n\t\t\t\tthis._frameTime = timings[0];\n\t\t\t}\n\t\t\tif (Tracing.get(TRACEID_GPU_TIMINGS)) {\n\t\t\t\tfor (let i = 0; i < allocations.length; ++i) {\n\t\t\t\t\tallocations[i];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.pastFrameAllocations.delete(renderVersion);\n\t}\n\tgetSlot(name) {\n\t\tconst slot = this.frameAllocations.length;\n\t\tthis.frameAllocations.push(name);\n\t\treturn slot;\n\t}\n\tget slotCount() {\n\t\treturn this.frameAllocations.length;\n\t}\n}\n\nclass WebgpuQuerySet {\n\tconstructor(device, isTimestamp, capacity) {\n\t\tthis.querySet = void 0;\n\t\tthis.stagingBuffers = [];\n\t\tthis.activeStagingBuffer = null;\n\t\tthis.bytesPerSlot = void 0;\n\t\tthis.device = device;\n\t\tthis.capacity = capacity;\n\t\tthis.bytesPerSlot = isTimestamp ? 8 : 4;\n\t\tconst wgpu = device.wgpu;\n\t\tthis.querySet = wgpu.createQuerySet({\n\t\t\ttype: isTimestamp ? 'timestamp' : 'occlusion',\n\t\t\tcount: capacity\n\t\t});\n\t\tthis.queryBuffer = wgpu.createBuffer({\n\t\t\tsize: this.bytesPerSlot * capacity,\n\t\t\tusage: GPUBufferUsage.QUERY_RESOLVE | GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST\n\t\t});\n\t}\n\tdestroy() {\n\t\tvar _this$querySet, _this$queryBuffer;\n\t\t(_this$querySet = this.querySet) == null || _this$querySet.destroy();\n\t\tthis.querySet = null;\n\t\t(_this$queryBuffer = this.queryBuffer) == null || _this$queryBuffer.destroy();\n\t\tthis.queryBuffer = null;\n\t\tthis.activeStagingBuffer = null;\n\t\tthis.stagingBuffers.forEach(stagingBuffer => {\n\t\t\tstagingBuffer.destroy();\n\t\t});\n\t\tthis.stagingBuffers = null;\n\t}\n\tgetStagingBuffer() {\n\t\tlet stagingBuffer = this.stagingBuffers.pop();\n\t\tif (!stagingBuffer) {\n\t\t\tstagingBuffer = this.device.wgpu.createBuffer({\n\t\t\t\tsize: this.queryBuffer.size,\n\t\t\t\tusage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ\n\t\t\t});\n\t\t}\n\t\treturn stagingBuffer;\n\t}\n\tresolve(count) {\n\t\tconst device = this.device;\n\t\tconst commandEncoder = device.wgpu.createCommandEncoder();\n\t\tcommandEncoder.resolveQuerySet(this.querySet, 0, count, this.queryBuffer, 0);\n\t\tconst activeStagingBuffer = this.getStagingBuffer();\n\t\tthis.activeStagingBuffer = activeStagingBuffer;\n\t\tcommandEncoder.copyBufferToBuffer(this.queryBuffer, 0, activeStagingBuffer, 0, this.bytesPerSlot * count);\n\t\tconst cb = commandEncoder.finish();\n\t\tdevice.addCommandBuffer(cb);\n\t}\n\trequest(count, renderVersion) {\n\t\tconst stagingBuffer = this.activeStagingBuffer;\n\t\tthis.activeStagingBuffer = null;\n\t\treturn stagingBuffer.mapAsync(GPUMapMode.READ).then(() => {\n\t\t\tvar _this$stagingBuffers;\n\t\t\tconst srcTimings = new BigInt64Array(stagingBuffer.getMappedRange());\n\t\t\tconst timings = [];\n\t\t\tfor (let i = 0; i < count; i++) {\n\t\t\t\ttimings.push(Number(srcTimings[i * 2 + 1] - srcTimings[i * 2]) * 0.000001);\n\t\t\t}\n\t\t\tstagingBuffer.unmap();\n\t\t\t(_this$stagingBuffers = this.stagingBuffers) == null || _this$stagingBuffers.push(stagingBuffer);\n\t\t\treturn {\n\t\t\t\trenderVersion,\n\t\t\t\ttimings\n\t\t\t};\n\t\t});\n\t}\n}\n\nclass WebgpuGpuProfiler extends GpuProfiler {\n\tconstructor(device) {\n\t\tsuper();\n\t\tthis.device = void 0;\n\t\tthis.frameGPUMarkerSlot = void 0;\n\t\tthis.device = device;\n\t\tthis.timestampQueriesSet = device.supportsTimestampQuery ? new WebgpuQuerySet(device, true, 512) : null;\n\t}\n\tdestroy() {\n\t\tvar _this$timestampQuerie;\n\t\t(_this$timestampQuerie = this.timestampQueriesSet) == null || _this$timestampQuerie.destroy();\n\t\tthis.timestampQueriesSet = null;\n\t}\n\tframeStart() {\n\t\tthis.processEnableRequest();\n\t}\n\tframeEnd() {\n\t\tif (this._enabled) {\n\t\t\tvar _this$timestampQuerie2;\n\t\t\t(_this$timestampQuerie2 = this.timestampQueriesSet) == null || _this$timestampQuerie2.resolve(this.slotCount * 2);\n\t\t}\n\t}\n\trequest() {\n\t\tif (this._enabled) {\n\t\t\tvar _this$timestampQuerie3;\n\t\t\tconst renderVersion = this.device.renderVersion;\n\t\t\t(_this$timestampQuerie3 = this.timestampQueriesSet) == null || _this$timestampQuerie3.request(this.slotCount, renderVersion).then(results => {\n\t\t\t\tthis.report(results.renderVersion, results.timings);\n\t\t\t});\n\t\t\tsuper.request(renderVersion);\n\t\t}\n\t}\n}\n\nclass WebgpuResolver {\n\tconstructor(device) {\n\t\tthis.device = void 0;\n\t\tthis.pipelineCache = new Map();\n\t\tthis.device = device;\n\t\tconst code = `\n \n\t\t\t\t\t\tvar<private> pos : array<vec2f, 4> = array<vec2f, 4>(\n\t\t\t\t\t\t\t\tvec2(-1.0, 1.0), vec2(1.0, 1.0), vec2(-1.0, -1.0), vec2(1.0, -1.0)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tstruct VertexOutput {\n\t\t\t\t\t\t\t\t@builtin(position) position : vec4f,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t@vertex\n\t\t\t\t\t\tfn vertexMain(@builtin(vertex_index) vertexIndex : u32) -> VertexOutput {\n\t\t\t\t\t\t\tvar output : VertexOutput;\n\t\t\t\t\t\t\toutput.position = vec4f(pos[vertexIndex], 0, 1);\n\t\t\t\t\t\t\treturn output;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t@group(0) @binding(0) var img : texture_depth_multisampled_2d;\n\n\t\t\t\t\t\t@fragment\n\t\t\t\t\t\tfn fragmentMain(@builtin(position) fragColor: vec4f) -> @location(0) vec4f {\n\t\t\t\t\t\t\t\t// load th depth value from sample index 0\n\t\t\t\t\t\t\t\tvar depth = textureLoad(img, vec2i(fragColor.xy), 0u);\n\t\t\t\t\t\t\t\treturn vec4<f32>(depth, 0.0, 0.0, 0.0);\n\t\t\t\t\t\t}\n\t\t\t\t`;\n\t\tthis.shader = new Shader(device, {\n\t\t\tname: 'WebGPUResolverDepthShader',\n\t\t\tshaderLanguage: SHADERLANGUAGE_WGSL,\n\t\t\tvshader: code,\n\t\t\tfshader: code\n\t\t});\n\t}\n\tdestroy() {\n\t\tthis.shader.destroy();\n\t\tthis.shader = null;\n\t\tthis.pipelineCache = null;\n\t}\n\tgetPipeline(format) {\n\t\tlet pipeline = this.pipelineCache.get(format);\n\t\tif (!pipeline) {\n\t\t\tpipeline = this.createPipeline(format);\n\t\t\tthis.pipelineCache.set(format, pipeline);\n\t\t}\n\t\treturn pipeline;\n\t}\n\tcreatePipeline(format) {\n\t\tconst webgpuShader = this.shader.impl;\n\t\tconst pipeline = this.device.wgpu.createRenderPipeline({\n\t\t\tlayout: 'auto',\n\t\t\tvertex: {\n\t\t\t\tmodule: webgpuShader.getVertexShaderModule(),\n\t\t\t\tentryPoint: webgpuShader.vertexEntryPoint\n\t\t\t},\n\t\t\tfragment: {\n\t\t\t\tmodule: webgpuShader.getFragmentShaderModule(),\n\t\t\t\tentryPoint: webgpuShader.fragmentEntryPoint,\n\t\t\t\ttargets: [{\n\t\t\t\t\tformat: format\n\t\t\t\t}]\n\t\t\t},\n\t\t\tprimitive: {\n\t\t\t\ttopology: 'triangle-strip'\n\t\t\t}\n\t\t});\n\t\treturn pipeline;\n\t}\n\tresolveDepth(commandEncoder, sourceTexture, destinationTexture) {\n\t\tconst device = this.device;\n\t\tconst wgpu = device.wgpu;\n\t\tconst pipeline = this.getPipeline(destinationTexture.format);\n\t\tconst numFaces = sourceTexture.depthOrArrayLayers;\n\t\tfor (let face = 0; face < numFaces; face++) {\n\t\t\tconst srcView = sourceTexture.createView({\n\t\t\t\tdimension: '2d',\n\t\t\t\taspect: 'depth-only',\n\t\t\t\tbaseMipLevel: 0,\n\t\t\t\tmipLevelCount: 1,\n\t\t\t\tbaseArrayLayer: face\n\t\t\t});\n\t\t\tconst dstView = destinationTexture.createView({\n\t\t\t\tdimension: '2d',\n\t\t\t\tbaseMipLevel: 0,\n\t\t\t\tmipLevelCount: 1,\n\t\t\t\tbaseArrayLayer: face\n\t\t\t});\n\t\t\tconst passEncoder = commandEncoder.beginRenderPass({\n\t\t\t\tcolorAttachments: [{\n\t\t\t\t\tview: dstView,\n\t\t\t\t\tloadOp: 'clear',\n\t\t\t\t\tstoreOp: 'store'\n\t\t\t\t}]\n\t\t\t});\n\t\t\tconst bindGroup = wgpu.createBindGroup({\n\t\t\t\tlayout: pipeline.getBindGroupLayout(0),\n\t\t\t\tentries: [{\n\t\t\t\t\tbinding: 0,\n\t\t\t\t\tresource: srcView\n\t\t\t\t}]\n\t\t\t});\n\t\t\tpassEncoder.setPipeline(pipeline);\n\t\t\tpassEncoder.setBindGroup(0, bindGroup);\n\t\t\tpassEncoder.draw(4);\n\t\t\tpassEncoder.end();\n\t\t}\n\t\tdevice.pipeline = null;\n\t}\n}\n\nclass WebgpuCompute {\n\tconstructor(compute) {\n\t\tthis.uniformBuffers = [];\n\t\tthis.bindGroup = null;\n\t\tthis.compute = compute;\n\t\tconst {\n\t\t\tdevice,\n\t\t\tshader\n\t\t} = compute;\n\t\tconst {\n\t\t\tcomputeBindGroupFormat,\n\t\t\tcomputeUniformBufferFormats\n\t\t} = shader.impl;\n\t\tthis.bindGroup = new BindGroup(device, computeBindGroupFormat);\n\t\tif (computeUniformBufferFormats) {\n\t\t\tfor (const name in computeUniformBufferFormats) {\n\t\t\t\tif (computeUniformBufferFormats.hasOwnProperty(name)) {\n\t\t\t\t\tconst ub = new UniformBuffer(device, computeUniformBufferFormats[name], true);\n\t\t\t\t\tthis.uniformBuffers.push(ub);\n\t\t\t\t\tthis.bindGroup.setUniformBuffer(name, ub);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.pipeline = device.computePipeline.get(shader, computeBindGroupFormat);\n\t}\n\tdestroy() {\n\t\tthis.uniformBuffers.forEach(ub => ub.destroy());\n\t\tthis.uniformBuffers.length = 0;\n\t\tthis.bindGroup.destroy();\n\t\tthis.bindGroup = null;\n\t}\n\tupdateBindGroup() {\n\t\tconst {\n\t\t\tbindGroup\n\t\t} = this;\n\t\tbindGroup.updateUniformBuffers();\n\t\tbindGroup.update();\n\t}\n\tdispatch(x, y, z) {\n\t\tconst device = this.compute.device;\n\t\tdevice.setBindGroup(0, this.bindGroup);\n\t\tconst passEncoder = device.passEncoder;\n\t\tpassEncoder.setPipeline(this.pipeline);\n\t\tpassEncoder.dispatchWorkgroups(x, y, z);\n\t}\n}\n\nconst _uniqueLocations = new Map();\nclass WebgpuGraphicsDevice extends GraphicsDevice {\n\tconstructor(canvas, options = {}) {\n\t\tvar _options$alpha, _options$antialias;\n\t\tsuper(canvas, options);\n\t\tthis.renderPipeline = new WebgpuRenderPipeline(this);\n\t\tthis.computePipeline = new WebgpuComputePipeline(this);\n\t\tthis.clearRenderer = void 0;\n\t\tthis.mipmapRenderer = void 0;\n\t\tthis.pipeline = void 0;\n\t\tthis.bindGroupFormats = [];\n\t\tthis.commandEncoder = null;\n\t\tthis.commandBuffers = [];\n\t\tthis.limits = void 0;\n\t\toptions = this.initOptions;\n\t\toptions.alpha = (_options$alpha = options.alpha) != null ? _options$alpha : true;\n\t\tthis.backBufferAntialias = (_options$antialias = options.antialias) != null ? _options$antialias : false;\n\t\tthis.isWebGPU = true;\n\t\tthis._deviceType = DEVICETYPE_WEBGPU;\n\t}\n\tdestroy() {\n\t\tthis.clearRenderer.destroy();\n\t\tthis.clearRenderer = null;\n\t\tthis.mipmapRenderer.destroy();\n\t\tthis.mipmapRenderer = null;\n\t\tthis.resolver.destroy();\n\t\tthis.resolver = null;\n\t\tsuper.destroy();\n\t}\n\tinitDeviceCaps() {\n\t\tvar _this$wgpu;\n\t\tconst limits = (_this$wgpu = this.wgpu) == null ? void 0 : _this$wgpu.limits;\n\t\tthis.limits = limits;\n\t\tthis.precision = 'highp';\n\t\tthis.maxPrecision = 'highp';\n\t\tthis.maxSamples = 4;\n\t\tthis.maxTextures = 16;\n\t\tthis.maxTextureSize = limits.maxTextureDimension2D;\n\t\tthis.maxCubeMapSize = limits.maxTextureDimension2D;\n\t\tthis.maxVolumeSize = limits.maxTextureDimension3D;\n\t\tthis.maxColorAttachments = limits.maxColorAttachments;\n\t\tthis.maxPixelRatio = 1;\n\t\tthis.maxAnisotropy = 16;\n\t\tthis.fragmentUniformsCount = limits.maxUniformBufferBindingSize / 16;\n\t\tthis.vertexUniformsCount = limits.maxUniformBufferBindingSize / 16;\n\t\tthis.supportsInstancing = true;\n\t\tthis.supportsUniformBuffers = true;\n\t\tthis.supportsVolumeTextures = true;\n\t\tthis.supportsBoneTextures = true;\n\t\tthis.supportsMorphTargetTexturesCore = true;\n\t\tthis.supportsAreaLights = true;\n\t\tthis.supportsDepthShadow = true;\n\t\tthis.supportsGpuParticles = true;\n\t\tthis.supportsMrt = true;\n\t\tthis.supportsCompute = true;\n\t\tthis.extUintElement = true;\n\t\tthis.extTextureFloat = true;\n\t\tthis.textureFloatRenderable = true;\n\t\tthis.textureHalfFloatFilterable = true;\n\t\tthis.extTextureHalfFloat = true;\n\t\tthis.textureHalfFloatRenderable = true;\n\t\tthis.textureHalfFloatUpdatable = true;\n\t\tthis.boneLimit = 1024;\n\t\tthis.supportsImageBitmap = true;\n\t\tthis.extStandardDerivatives = true;\n\t\tthis.extBlendMinmax = true;\n\t\tthis.areaLightLutFormat = this.textureFloatFilterable ? PIXELFORMAT_RGBA32F : PIXELFORMAT_RGBA8;\n\t\tthis.supportsTextureFetch = true;\n\t\tthis.samples = this.backBufferAntialias ? 4 : 1;\n\t\tconst wgslFeatures = navigator.gpu.wgslLanguageFeatures;\n\t\tthis.supportsStorageTextureRead = wgslFeatures == null ? void 0 : wgslFeatures.has('readonly_and_readwrite_storage_textures');\n\t}\n\tasync initWebGpu(glslangUrl, twgslUrl) {\n\t\tvar _this$gpuAdapter, _this$wgpu$lost;\n\t\tif (!window.navigator.gpu) {\n\t\t\tthrow new Error('Unable to retrieve GPU. Ensure you are using a browser that supports WebGPU rendering.');\n\t\t}\n\t\tconst buildUrl = srcPath => {\n\t\t\treturn new URL(srcPath, window.location.href).toString();\n\t\t};\n\t\tconst results = await Promise.all([import(/* @vite-ignore */ /* webpackIgnore: true */ `${buildUrl(twgslUrl)}`).then(module => twgsl(twgslUrl.replace('.js', '.wasm'))), import(/* @vite-ignore */ /* webpackIgnore: true */ `${buildUrl(glslangUrl)}`).then(module => module.default())]);\n\t\tthis.twgsl = results[0];\n\t\tthis.glslang = results[1];\n\t\tconst adapterOptions = {\n\t\t\tpowerPreference: this.initOptions.powerPreference !== 'default' ? this.initOptions.powerPreference : undefined\n\t\t};\n\t\tthis.gpuAdapter = await window.navigator.gpu.requestAdapter(adapterOptions);\n\t\tconst requiredFeatures = [];\n\t\tconst requireFeature = feature => {\n\t\t\tconst supported = this.gpuAdapter.features.has(feature);\n\t\t\tif (supported) {\n\t\t\t\trequiredFeatures.push(feature);\n\t\t\t}\n\t\t\treturn supported;\n\t\t};\n\t\tthis.textureFloatFilterable = requireFeature('float32-filterable');\n\t\tthis.extCompressedTextureS3TC = requireFeature('texture-compression-bc');\n\t\tthis.extCompressedTextureETC = requireFeature('texture-compression-etc2');\n\t\tthis.extCompressedTextureASTC = requireFeature('texture-compression-astc');\n\t\tthis.supportsTimestampQuery = requireFeature('timestamp-query');\n\t\tthis.supportsDepthClip = requireFeature('depth-clip-control');\n\t\tthis.supportsDepth32Stencil = requireFeature('depth32float-stencil8');\n\t\tthis.supportsIndirectFirstInstance = requireFeature('indirect-first-instance');\n\t\tthis.supportsShaderF16 = requireFeature('shader-f16');\n\t\tthis.supportsStorageRGBA8 = requireFeature('bgra8unorm-storage');\n\t\tthis.textureRG11B10Renderable = requireFeature('rg11b10ufloat-renderable');\n\t\tconst adapterLimits = (_this$gpuAdapter = this.gpuAdapter) == null ? void 0 : _this$gpuAdapter.limits;\n\t\tconst requiredLimits = {};\n\t\tif (adapterLimits) {\n\t\t\tfor (const limitName in adapterLimits) {\n\t\t\t\tif (limitName === 'minSubgroupSize' || limitName === 'maxSubgroupSize') {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\trequiredLimits[limitName] = adapterLimits[limitName];\n\t\t\t}\n\t\t}\n\t\tconst deviceDescr = {\n\t\t\trequiredFeatures,\n\t\t\trequiredLimits,\n\t\t\tdefaultQueue: {\n\t\t\t\tlabel: 'Default Queue'\n\t\t\t}\n\t\t};\n\t\tthis.wgpu = await this.gpuAdapter.requestDevice(deviceDescr);\n\t\t(_this$wgpu$lost = this.wgpu.lost) == null || _this$wgpu$lost.then(info => {\n\t\t\tif (info.reason !== 'destroyed') ;\n\t\t});\n\t\tthis.initDeviceCaps();\n\t\tthis.gpuContext = this.canvas.getContext('webgpu');\n\t\tconst preferredCanvasFormat = navigator.gpu.getPreferredCanvasFormat();\n\t\tthis.backBufferFormat = preferredCanvasFormat === 'rgba8unorm' ? PIXELFORMAT_RGBA8 : PIXELFORMAT_BGRA8;\n\t\tthis.canvasConfig = {\n\t\t\tdevice: this.wgpu,\n\t\t\tcolorSpace: 'srgb',\n\t\t\talphaMode: this.initOptions.alpha ? 'premultiplied' : 'opaque',\n\t\t\tformat: preferredCanvasFormat,\n\t\t\tusage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.COPY_SRC | GPUTextureUsage.COPY_DST,\n\t\t\tviewFormats: []\n\t\t};\n\t\tthis.gpuContext.configure(this.canvasConfig);\n\t\tthis.createBackbuffer();\n\t\tthis.clearRenderer = new WebgpuClearRenderer(this);\n\t\tthis.mipmapRenderer = new WebgpuMipmapRenderer(this);\n\t\tthis.resolver = new WebgpuResolver(this);\n\t\tthis.postInit();\n\t\treturn this;\n\t}\n\tpostInit() {\n\t\tsuper.postInit();\n\t\tthis.initializeRenderState();\n\t\tthis.setupPassEncoderDefaults();\n\t\tthis.gpuProfiler = new WebgpuGpuProfiler(this);\n\t\tthis.dynamicBuffers = new WebgpuDynamicBuffers(this, 1024 * 1024, this.limits.minUniformBufferOffsetAlignment);\n\t}\n\tcreateBackbuffer() {\n\t\tthis.supportsStencil = this.initOptions.stencil;\n\t\tthis.backBuffer = new RenderTarget({\n\t\t\tname: 'WebgpuFramebuffer',\n\t\t\tgraphicsDevice: this,\n\t\t\tdepth: this.initOptions.depth,\n\t\t\tstencil: this.supportsStencil,\n\t\t\tsamples: this.samples\n\t\t});\n\t}\n\tframeStart() {\n\t\tsuper.frameStart();\n\t\tthis.gpuProfiler.frameStart();\n\t\tthis.submit();\n\t\tconst outColorBuffer = this.gpuContext.getCurrentTexture();\n\t\tif (this.backBufferSize.x !== outColorBuffer.width || this.backBufferSize.y !== outColorBuffer.height) {\n\t\t\tthis.backBufferSize.set(outColorBuffer.width, outColorBuffer.height);\n\t\t\tthis.backBuffer.destroy();\n\t\t\tthis.backBuffer = null;\n\t\t\tthis.createBackbuffer();\n\t\t}\n\t\tconst rt = this.backBuffer;\n\t\tconst wrt = rt.impl;\n\t\twrt.setColorAttachment(0, undefined, outColorBuffer.format);\n\t\tthis.initRenderTarget(rt);\n\t\twrt.assignColorTexture(outColorBuffer);\n\t}\n\tframeEnd() {\n\t\tsuper.frameEnd();\n\t\tthis.gpuProfiler.frameEnd();\n\t\tthis.submit();\n\t\tif (!this.contextLost) {\n\t\t\tthis.gpuProfiler.request();\n\t\t}\n\t}\n\tcreateBufferImpl(usageFlags) {\n\t\treturn new WebgpuBuffer(usageFlags);\n\t}\n\tcreateUniformBufferImpl(uniformBuffer) {\n\t\treturn new WebgpuUniformBuffer(uniformBuffer);\n\t}\n\tcreateVertexBufferImpl(vertexBuffer, format, options) {\n\t\treturn new WebgpuVertexBuffer(vertexBuffer, format, options);\n\t}\n\tcreateIndexBufferImpl(indexBuffer, options) {\n\t\treturn new WebgpuIndexBuffer(indexBuffer, options);\n\t}\n\tcreateShaderImpl(shader) {\n\t\treturn new WebgpuShader(shader);\n\t}\n\tcreateTextureImpl(texture) {\n\t\treturn new WebgpuTexture(texture);\n\t}\n\tcreateRenderTargetImpl(renderTarget) {\n\t\treturn new WebgpuRenderTarget(renderTarget);\n\t}\n\tcreateBindGroupFormatImpl(bindGroupFormat) {\n\t\treturn new WebgpuBindGroupFormat(bindGroupFormat);\n\t}\n\tcreateBindGroupImpl(bindGroup) {\n\t\treturn new WebgpuBindGroup();\n\t}\n\tcreateComputeImpl(compute) {\n\t\treturn new WebgpuCompute(compute);\n\t}\n\tsetBindGroup(index, bindGroup) {\n\t\tif (this.passEncoder) {\n\t\t\tthis.passEncoder.setBindGroup(index, bindGroup.impl.bindGroup, bindGroup.uniformBufferOffsets);\n\t\t\tthis.bindGroupFormats[index] = bindGroup.format.impl;\n\t\t}\n\t}\n\tsubmitVertexBuffer(vertexBuffer, slot) {\n\t\tconst format = vertexBuffer.format;\n\t\tconst {\n\t\t\tinterleaved,\n\t\t\telements\n\t\t} = format;\n\t\tconst elementCount = elements.length;\n\t\tconst vbBuffer = vertexBuffer.impl.buffer;\n\t\tif (interleaved) {\n\t\t\tthis.passEncoder.setVertexBuffer(slot, vbBuffer);\n\t\t\treturn 1;\n\t\t}\n\t\tfor (let i = 0; i < elementCount; i++) {\n\t\t\tthis.passEncoder.setVertexBuffer(slot + i, vbBuffer, elements[i].offset);\n\t\t}\n\t\treturn elementCount;\n\t}\n\tvalidateVBLocations(vb0, vb1) {\n\t\tconst validateVB = vb => {\n\t\t\tconst {\n\t\t\t\telements\n\t\t\t} = vb.format;\n\t\t\tfor (let i = 0; i < elements.length; i++) {\n\t\t\t\tconst name = elements[i].name;\n\t\t\t\tconst location = semanticToLocation[name];\n\t\t\t\tif (_uniqueLocations.has(location)) ;\n\t\t\t\t_uniqueLocations.set(location, name);\n\t\t\t}\n\t\t};\n\t\tvalidateVB(vb0);\n\t\tvalidateVB(vb1);\n\t\t_uniqueLocations.clear();\n\t}\n\tdraw(primitive, numInstances = 1, keepBuffers) {\n\t\tif (this.shader.ready && !this.shader.failed) {\n\t\t\tconst passEncoder = this.passEncoder;\n\t\t\tconst vb0 = this.vertexBuffers[0];\n\t\t\tconst vb1 = this.vertexBuffers[1];\n\t\t\tthis.vertexBuffers.length = 0;\n\t\t\tif (vb0) {\n\t\t\t\tconst vbSlot = this.submitVertexBuffer(vb0, 0);\n\t\t\t\tif (vb1) {\n\t\t\t\t\tthis.submitVertexBuffer(vb1, vbSlot);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst pipeline = this.renderPipeline.get(primitive, vb0 == null ? void 0 : vb0.format, vb1 == null ? void 0 : vb1.format, this.shader, this.renderTarget, this.bindGroupFormats, this.blendState, this.depthState, this.cullMode, this.stencilEnabled, this.stencilFront, this.stencilBack);\n\t\t\tif (this.pipeline !== pipeline) {\n\t\t\t\tthis.pipeline = pipeline;\n\t\t\t\tpassEncoder.setPipeline(pipeline);\n\t\t\t}\n\t\t\tconst ib = this.indexBuffer;\n\t\t\tif (ib) {\n\t\t\t\tthis.indexBuffer = null;\n\t\t\t\tpassEncoder.setIndexBuffer(ib.impl.buffer, ib.impl.format);\n\t\t\t\tpassEncoder.drawIndexed(primitive.count, numInstances, primitive.base, 0, 0);\n\t\t\t} else {\n\t\t\t\tpassEncoder.draw(primitive.count, numInstances, primitive.base, 0);\n\t\t\t}\n\t\t}\n\t}\n\tsetShader(shader, asyncCompile = false) {\n\t\tif (shader !== this.shader) {\n\t\t\tthis.shader = shader;\n\t\t}\n\t}\n\tsetBlendState(blendState) {\n\t\tthis.blendState.copy(blendState);\n\t}\n\tsetDepthState(depthState) {\n\t\tthis.depthState.copy(depthState);\n\t}\n\tsetStencilState(stencilFront, stencilBack) {\n\t\tif (stencilFront || stencilBack) {\n\t\t\tthis.stencilEnabled = true;\n\t\t\tthis.stencilFront.copy(stencilFront != null ? stencilFront : StencilParameters.DEFAULT);\n\t\t\tthis.stencilBack.copy(stencilBack != null ? stencilBack : StencilParameters.DEFAULT);\n\t\t\tconst ref = this.stencilFront.ref;\n\t\t\tif (this.stencilRef !== ref) {\n\t\t\t\tthis.stencilRef = ref;\n\t\t\t\tthis.passEncoder.setStencilReference(ref);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.stencilEnabled = false;\n\t\t}\n\t}\n\tsetBlendColor(r, g, b, a) {\n\t\tconst c = this.blendColor;\n\t\tif (r !== c.r || g !== c.g || b !== c.b || a !== c.a) {\n\t\t\tc.set(r, g, b, a);\n\t\t\tthis.passEncoder.setBlendConstant(c);\n\t\t}\n\t}\n\tsetCullMode(cullMode) {\n\t\tthis.cullMode = cullMode;\n\t}\n\tsetAlphaToCoverage(state) {}\n\tinitializeContextCaches() {\n\t\tsuper.initializeContextCaches();\n\t}\n\tsetupPassEncoderDefaults() {\n\t\tthis.pipeline = null;\n\t\tthis.stencilRef = 0;\n\t\tthis.blendColor.set(0, 0, 0, 0);\n\t}\n\t_uploadDirtyTextures() {\n\t\tthis.textures.forEach(texture => {\n\t\t\tif (texture._needsUpload || texture._needsMipmaps) {\n\t\t\t\ttexture.upload();\n\t\t\t}\n\t\t});\n\t}\n\tstartRenderPass(renderPass) {\n\t\tthis._uploadDirtyTextures();\n\t\tconst rt = renderPass.renderTarget || this.backBuffer;\n\t\tthis.renderTarget = rt;\n\t\tconst wrt = rt.impl;\n\t\tthis.commandEncoder = this.wgpu.createCommandEncoder();\n\t\tif (rt !== this.backBuffer) {\n\t\t\tthis.initRenderTarget(rt);\n\t\t}\n\t\twrt.setupForRenderPass(renderPass);\n\t\tconst renderPassDesc = wrt.renderPassDescriptor;\n\t\tif (this.gpuProfiler._enabled) {\n\t\t\tif (this.gpuProfiler.timestampQueriesSet) {\n\t\t\t\tconst slot = this.gpuProfiler.getSlot(renderPass.name);\n\t\t\t\trenderPassDesc.timestampWrites = {\n\t\t\t\t\tquerySet: this.gpuProfiler.timestampQueriesSet.querySet,\n\t\t\t\t\tbeginningOfPassWriteIndex: slot * 2,\n\t\t\t\t\tendOfPassWriteIndex: slot * 2 + 1\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\tthis.passEncoder = this.commandEncoder.beginRenderPass(renderPassDesc);\n\t\tthis.setupPassEncoderDefaults();\n\t\tconst {\n\t\t\twidth,\n\t\t\theight\n\t\t} = rt;\n\t\tthis.setViewport(0, 0, width, height);\n\t\tthis.setScissor(0, 0, width, height);\n\t\tthis.insideRenderPass = true;\n\t}\n\tendRenderPass(renderPass) {\n\t\tthis.passEncoder.end();\n\t\tthis.passEncoder = null;\n\t\tthis.insideRenderPass = false;\n\t\tthis.bindGroupFormats.length = 0;\n\t\tfor (let i = 0; i < renderPass.colorArrayOps.length; i++) {\n\t\t\tconst colorOps = renderPass.colorArrayOps[i];\n\t\t\tif (colorOps.mipmaps) {\n\t\t\t\tthis.mipmapRenderer.generate(renderPass.renderTarget._colorBuffers[i].impl);\n\t\t\t}\n\t\t}\n\t\tconst cb = this.commandEncoder.finish();\n\t\tthis.addCommandBuffer(cb);\n\t\tthis.commandEncoder = null;\n\t}\n\tstartComputePass() {\n\t\tthis.commandEncoder = this.wgpu.createCommandEncoder();\n\t\tthis.pipeline = null;\n\t\tthis.passEncoder = this.commandEncoder.beginComputePass();\n\t\tthis.insideRenderPass = true;\n\t}\n\tendComputePass() {\n\t\tthis.passEncoder.end();\n\t\tthis.passEncoder = null;\n\t\tthis.insideRenderPass = false;\n\t\tthis.bindGroupFormats.length = 0;\n\t\tconst cb = this.commandEncoder.finish();\n\t\tthis.addCommandBuffer(cb);\n\t\tthis.commandEncoder = null;\n\t}\n\tcomputeDispatch(computes) {\n\t\tthis.startComputePass();\n\t\tfor (let i = 0; i < computes.length; i++) {\n\t\t\tconst compute = computes[i];\n\t\t\tcompute.applyParameters();\n\t\t\tcompute.impl.updateBindGroup();\n\t\t}\n\t\tfor (let i = 0; i < computes.length; i++) {\n\t\t\tconst compute = computes[i];\n\t\t\tcompute.impl.dispatch(compute.countX, compute.countY, compute.countZ);\n\t\t}\n\t\tthis.endComputePass();\n\t}\n\taddCommandBuffer(commandBuffer, front = false) {\n\t\tif (front) {\n\t\t\tthis.commandBuffers.unshift(commandBuffer);\n\t\t} else {\n\t\t\tthis.commandBuffers.push(commandBuffer);\n\t\t}\n\t}\n\tsubmit() {\n\t\tif (this.commandBuffers.length > 0) {\n\t\t\tthis.dynamicBuffers.submit();\n\t\t\tthis.wgpu.queue.submit(this.commandBuffers);\n\t\t\tthis.commandBuffers.length = 0;\n\t\t\tthis.dynamicBuffers.onCommandBuffersSubmitted();\n\t\t}\n\t}\n\tclear(options) {\n\t\tif (options.flags) {\n\t\t\tthis.clearRenderer.clear(this, this.renderTarget, options, this.defaultClearOptions);\n\t\t}\n\t}\n\tsetViewport(x, y, w, h) {\n\t\tif (this.passEncoder) {\n\t\t\tif (!this.renderTarget.flipY) {\n\t\t\t\ty = this.renderTarget.height - y - h;\n\t\t\t}\n\t\t\tthis.vx = x;\n\t\t\tthis.vy = y;\n\t\t\tthis.vw = w;\n\t\t\tthis.vh = h;\n\t\t\tthis.passEncoder.setViewport(x, y, w, h, 0, 1);\n\t\t}\n\t}\n\tsetScissor(x, y, w, h) {\n\t\tif (this.passEncoder) {\n\t\t\tif (!this.renderTarget.flipY) {\n\t\t\t\ty = this.renderTarget.height - y - h;\n\t\t\t}\n\t\t\tthis.sx = x;\n\t\t\tthis.sy = y;\n\t\t\tthis.sw = w;\n\t\t\tthis.sh = h;\n\t\t\tthis.passEncoder.setScissorRect(x, y, w, h);\n\t\t}\n\t}\n\tclearStorageBuffer(storageBuffer, offset = 0, size = storageBuffer.byteSize) {\n\t\tvar _this$commandEncoder;\n\t\tconst commandEncoder = (_this$commandEncoder = this.commandEncoder) != null ? _this$commandEncoder : this.wgpu.createCommandEncoder();\n\t\tcommandEncoder.clearBuffer(storageBuffer.buffer, offset, size);\n\t\tif (!this.commandEncoder) {\n\t\t\tconst cb = commandEncoder.finish();\n\t\t\tthis.addCommandBuffer(cb);\n\t\t}\n\t}\n\treadStorageBuffer(storageBuffer, offset = 0, size = storageBuffer.byteSize - offset, data = null, immediate = false) {\n\t\tvar _this$commandEncoder2;\n\t\tconst stagingBuffer = this.createBufferImpl(BUFFERUSAGE_READ | BUFFERUSAGE_COPY_DST);\n\t\tstagingBuffer.allocate(this, size);\n\t\tconst destBuffer = stagingBuffer.buffer;\n\t\tconst commandEncoder = (_this$commandEncoder2 = this.commandEncoder) != null ? _this$commandEncoder2 : this.wgpu.createCommandEncoder();\n\t\tcommandEncoder.copyBufferToBuffer(storageBuffer.buffer, offset, destBuffer, 0, size);\n\t\tif (!this.commandEncoder) {\n\t\t\tconst cb = commandEncoder.finish();\n\t\t\tthis.addCommandBuffer(cb);\n\t\t}\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst read = () => {\n\t\t\t\tdestBuffer == null || destBuffer.mapAsync(GPUMapMode.READ).then(() => {\n\t\t\t\t\tvar _data;\n\t\t\t\t\t(_data = data) != null ? _data : data = new Uint8Array(size);\n\t\t\t\t\tconst copySrc = destBuffer.getMappedRange(0, size);\n\t\t\t\t\tconst srcType = data.constructor;\n\t\t\t\t\tdata.set(new srcType(copySrc));\n\t\t\t\t\tdestBuffer.unmap();\n\t\t\t\t\tstagingBuffer.destroy(this);\n\t\t\t\t\tresolve(data);\n\t\t\t\t});\n\t\t\t};\n\t\t\tif (immediate) {\n\t\t\t\tthis.submit();\n\t\t\t\tread();\n\t\t\t} else {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tread();\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\twriteStorageBuffer(storageBuffer, bufferOffset = 0, data, dataOffset = 0, size) {\n\t\tthis.wgpu.queue.writeBuffer(storageBuffer.buffer, bufferOffset, data, dataOffset, size);\n\t}\n\tcopyRenderTarget(source, dest, color, depth) {\n\t\tvar _this$commandEncoder3;\n\t\tconst copySize = {\n\t\t\twidth: source ? source.width : dest.width,\n\t\t\theight: source ? source.height : dest.height,\n\t\t\tdepthOrArrayLayers: 1\n\t\t};\n\t\tconst commandEncoder = (_this$commandEncoder3 = this.commandEncoder) != null ? _this$commandEncoder3 : this.wgpu.createCommandEncoder();\n\t\tif (color) {\n\t\t\tconst copySrc = {\n\t\t\t\ttexture: source ? source.colorBuffer.impl.gpuTexture : this.renderTarget.impl.assignedColorTexture,\n\t\t\t\tmipLevel: 0\n\t\t\t};\n\t\t\tconst copyDst = {\n\t\t\t\ttexture: dest ? dest.colorBuffer.impl.gpuTexture : this.renderTarget.impl.assignedColorTexture,\n\t\t\t\tmipLevel: 0\n\t\t\t};\n\t\t\tcommandEncoder.copyTextureToTexture(copySrc, copyDst, copySize);\n\t\t}\n\t\tif (depth) {\n\t\t\tconst sourceRT = source ? source : this.renderTarget;\n\t\t\tconst sourceTexture = sourceRT.impl.depthTexture;\n\t\t\tif (source.samples > 1) {\n\t\t\t\tconst destTexture = dest.colorBuffer.impl.gpuTexture;\n\t\t\t\tthis.resolver.resolveDepth(commandEncoder, sourceTexture, destTexture);\n\t\t\t} else {\n\t\t\t\tconst destTexture = dest ? dest.depthBuffer.impl.gpuTexture : this.renderTarget.impl.depthTexture;\n\t\t\t\tconst copySrc = {\n\t\t\t\t\ttexture: sourceTexture,\n\t\t\t\t\tmipLevel: 0\n\t\t\t\t};\n\t\t\t\tconst copyDst = {\n\t\t\t\t\ttexture: destTexture,\n\t\t\t\t\tmipLevel: 0\n\t\t\t\t};\n\t\t\t\tcommandEncoder.copyTextureToTexture(copySrc, copyDst, copySize);\n\t\t\t}\n\t\t}\n\t\tif (!this.commandEncoder) {\n\t\t\tconst cb = commandEncoder.finish();\n\t\t\tthis.addCommandBuffer(cb);\n\t\t}\n\t\treturn true;\n\t}\n}\n\nlet id$6 = 0;\nclass Texture {\n\tconstructor(graphicsDevice, options = {}) {\n\t\tvar _options$name, _options$width, _options$height, _options$format, _options$storage, _options$cubemap, _options$fixCubemapSe, _options$flipY, _options$premultiplyA, _ref, _options$mipmaps, _options$minFilter, _options$magFilter, _options$anisotropy, _options$addressU, _options$addressV, _options$addressW, _options$compareOnRea, _options$compareFunc;\n\t\tthis.name = void 0;\n\t\tthis._gpuSize = 0;\n\t\tthis.id = id$6++;\n\t\tthis._invalid = false;\n\t\tthis._lockedLevel = -1;\n\t\tthis._lockedMode = TEXTURELOCK_NONE;\n\t\tthis.renderVersionDirty = 0;\n\t\tthis._storage = false;\n\t\tthis.device = graphicsDevice;\n\t\tthis.name = (_options$name = options.name) != null ? _options$name : '';\n\t\tthis._width = Math.floor((_options$width = options.width) != null ? _options$width : 4);\n\t\tthis._height = Math.floor((_options$height = options.height) != null ? _options$height : 4);\n\t\tthis._format = (_options$format = options.format) != null ? _options$format : PIXELFORMAT_RGBA8;\n\t\tthis._compressed = isCompressedPixelFormat(this._format);\n\t\tthis._integerFormat = isIntegerPixelFormat(this._format);\n\t\tif (this._integerFormat) {\n\t\t\toptions.mipmaps = false;\n\t\t\toptions.minFilter = FILTER_NEAREST;\n\t\t\toptions.magFilter = FILTER_NEAREST;\n\t\t}\n\t\tif (graphicsDevice.supportsVolumeTextures) {\n\t\t\tvar _options$volume, _options$depth, _options$arrayLength;\n\t\t\tthis._volume = (_options$volume = options.volume) != null ? _options$volume : false;\n\t\t\tthis._depth = Math.floor((_options$depth = options.depth) != null ? _options$depth : 1);\n\t\t\tthis._arrayLength = Math.floor((_options$arrayLength = options.arrayLength) != null ? _options$arrayLength : 0);\n\t\t} else {\n\t\t\tthis._volume = false;\n\t\t\tthis._depth = 1;\n\t\t\tthis._arrayLength = 0;\n\t\t}\n\t\tthis._storage = (_options$storage = options.storage) != null ? _options$storage : false;\n\t\tthis._cubemap = (_options$cubemap = options.cubemap) != null ? _options$cubemap : false;\n\t\tthis.fixCubemapSeams = (_options$fixCubemapSe = options.fixCubemapSeams) != null ? _options$fixCubemapSe : false;\n\t\tthis._flipY = (_options$flipY = options.flipY) != null ? _options$flipY : false;\n\t\tthis._premultiplyAlpha = (_options$premultiplyA = options.premultiplyAlpha) != null ? _options$premultiplyA : false;\n\t\tthis._mipmaps = (_ref = (_options$mipmaps = options.mipmaps) != null ? _options$mipmaps : options.autoMipmap) != null ? _ref : true;\n\t\tthis._minFilter = (_options$minFilter = options.minFilter) != null ? _options$minFilter : FILTER_LINEAR_MIPMAP_LINEAR;\n\t\tthis._magFilter = (_options$magFilter = options.magFilter) != null ? _options$magFilter : FILTER_LINEAR;\n\t\tthis._anisotropy = (_options$anisotropy = options.anisotropy) != null ? _options$anisotropy : 1;\n\t\tthis._addressU = (_options$addressU = options.addressU) != null ? _options$addressU : ADDRESS_REPEAT;\n\t\tthis._addressV = (_options$addressV = options.addressV) != null ? _options$addressV : ADDRESS_REPEAT;\n\t\tthis._addressW = (_options$addressW = options.addressW) != null ? _options$addressW : ADDRESS_REPEAT;\n\t\tthis._compareOnRead = (_options$compareOnRea = options.compareOnRead) != null ? _options$compareOnRea : false;\n\t\tthis._compareFunc = (_options$compareFunc = options.compareFunc) != null ? _options$compareFunc : FUNC_LESS;\n\t\tthis.type = TEXTURETYPE_DEFAULT;\n\t\tif (options.hasOwnProperty('type')) {\n\t\t\tthis.type = options.type;\n\t\t} else if (options.hasOwnProperty('rgbm')) {\n\t\t\tthis.type = options.rgbm ? TEXTURETYPE_RGBM : TEXTURETYPE_DEFAULT;\n\t\t} else if (options.hasOwnProperty('swizzleGGGR')) {\n\t\t\tthis.type = options.swizzleGGGR ? TEXTURETYPE_SWIZZLEGGGR : TEXTURETYPE_DEFAULT;\n\t\t}\n\t\tthis.projection = TEXTUREPROJECTION_NONE;\n\t\tif (this._cubemap) {\n\t\t\tthis.projection = TEXTUREPROJECTION_CUBE;\n\t\t} else if (options.projection && options.projection !== TEXTUREPROJECTION_CUBE) {\n\t\t\tthis.projection = options.projection;\n\t\t}\n\t\tthis.impl = graphicsDevice.createTextureImpl(this);\n\t\tthis.dirtyAll();\n\t\tthis._levels = options.levels;\n\t\tif (this._levels) {\n\t\t\tthis.upload();\n\t\t} else {\n\t\t\tthis._levels = this._cubemap ? [[null, null, null, null, null, null]] : [null];\n\t\t}\n\t\tgraphicsDevice.textures.push(this);\n\t}\n\tdestroy() {\n\t\tconst device = this.device;\n\t\tif (device) {\n\t\t\tconst idx = device.textures.indexOf(this);\n\t\t\tif (idx !== -1) {\n\t\t\t\tdevice.textures.splice(idx, 1);\n\t\t\t}\n\t\t\tdevice.scope.removeValue(this);\n\t\t\tthis.impl.destroy(device);\n\t\t\tthis.adjustVramSizeTracking(device._vram, -this._gpuSize);\n\t\t\tthis._levels = null;\n\t\t\tthis.device = null;\n\t\t}\n\t}\n\tresize(width, height, depth = 1) {\n\t\tconst device = this.device;\n\t\tthis.adjustVramSizeTracking(device._vram, -this._gpuSize);\n\t\tthis.impl.destroy(device);\n\t\tthis._width = Math.floor(width);\n\t\tthis._height = Math.floor(height);\n\t\tthis._depth = Math.floor(depth);\n\t\tthis.impl = device.createTextureImpl(this);\n\t\tthis.dirtyAll();\n\t}\n\tloseContext() {\n\t\tthis.impl.loseContext();\n\t\tthis.dirtyAll();\n\t}\n\tadjustVramSizeTracking(vram, size) {\n\t\tvram.tex += size;\n\t}\n\tpropertyChanged(flag) {\n\t\tthis.impl.propertyChanged(flag);\n\t\tthis.renderVersionDirty = this.device.renderVersion;\n\t}\n\tget requiredMipLevels() {\n\t\treturn this.mipmaps ? TextureUtils.calcMipLevelsCount(this.width, this.height) : 1;\n\t}\n\tget lockedMode() {\n\t\treturn this._lockedMode;\n\t}\n\tset minFilter(v) {\n\t\tif (this._minFilter !== v) {\n\t\t\tif (isIntegerPixelFormat(this._format)) ; else {\n\t\t\t\tthis._minFilter = v;\n\t\t\t\tthis.propertyChanged(1);\n\t\t\t}\n\t\t}\n\t}\n\tget minFilter() {\n\t\treturn this._minFilter;\n\t}\n\tset magFilter(v) {\n\t\tif (this._magFilter !== v) {\n\t\t\tif (isIntegerPixelFormat(this._format)) ; else {\n\t\t\t\tthis._magFilter = v;\n\t\t\t\tthis.propertyChanged(2);\n\t\t\t}\n\t\t}\n\t}\n\tget magFilter() {\n\t\treturn this._magFilter;\n\t}\n\tset addressU(v) {\n\t\tif (this._addressU !== v) {\n\t\t\tthis._addressU = v;\n\t\t\tthis.propertyChanged(4);\n\t\t}\n\t}\n\tget addressU() {\n\t\treturn this._addressU;\n\t}\n\tset addressV(v) {\n\t\tif (this._addressV !== v) {\n\t\t\tthis._addressV = v;\n\t\t\tthis.propertyChanged(8);\n\t\t}\n\t}\n\tget addressV() {\n\t\treturn this._addressV;\n\t}\n\tset addressW(addressW) {\n\t\tif (!this.device.supportsVolumeTextures) return;\n\t\tif (!this._volume) {\n\t\t\treturn;\n\t\t}\n\t\tif (addressW !== this._addressW) {\n\t\t\tthis._addressW = addressW;\n\t\t\tthis.propertyChanged(16);\n\t\t}\n\t}\n\tget addressW() {\n\t\treturn this._addressW;\n\t}\n\tset compareOnRead(v) {\n\t\tif (this._compareOnRead !== v) {\n\t\t\tthis._compareOnRead = v;\n\t\t\tthis.propertyChanged(32);\n\t\t}\n\t}\n\tget compareOnRead() {\n\t\treturn this._compareOnRead;\n\t}\n\tset compareFunc(v) {\n\t\tif (this._compareFunc !== v) {\n\t\t\tthis._compareFunc = v;\n\t\t\tthis.propertyChanged(64);\n\t\t}\n\t}\n\tget compareFunc() {\n\t\treturn this._compareFunc;\n\t}\n\tset anisotropy(v) {\n\t\tif (this._anisotropy !== v) {\n\t\t\tthis._anisotropy = v;\n\t\t\tthis.propertyChanged(128);\n\t\t}\n\t}\n\tget anisotropy() {\n\t\treturn this._anisotropy;\n\t}\n\tset mipmaps(v) {\n\t\tif (this._mipmaps !== v) {\n\t\t\tif (this.device.isWebGPU) ; else if (isIntegerPixelFormat(this._format)) ; else {\n\t\t\t\tthis._mipmaps = v;\n\t\t\t}\n\t\t\tif (v) this._needsMipmapsUpload = true;\n\t\t}\n\t}\n\tget mipmaps() {\n\t\treturn this._mipmaps;\n\t}\n\tget storage() {\n\t\treturn this._storage;\n\t}\n\tget width() {\n\t\treturn this._width;\n\t}\n\tget height() {\n\t\treturn this._height;\n\t}\n\tget depth() {\n\t\treturn this._depth;\n\t}\n\tget format() {\n\t\treturn this._format;\n\t}\n\tget cubemap() {\n\t\treturn this._cubemap;\n\t}\n\tget gpuSize() {\n\t\tconst mips = this.pot && this._mipmaps && !(this._compressed && this._levels.length === 1);\n\t\treturn TextureUtils.calcGpuSize(this._width, this._height, this._depth, this._format, mips, this._cubemap);\n\t}\n\tget array() {\n\t\treturn this._arrayLength > 0;\n\t}\n\tget arrayLength() {\n\t\treturn this._arrayLength;\n\t}\n\tget volume() {\n\t\treturn this._volume;\n\t}\n\tset flipY(flipY) {\n\t\tif (this._flipY !== flipY) {\n\t\t\tthis._flipY = flipY;\n\t\t\tthis._needsUpload = true;\n\t\t}\n\t}\n\tget flipY() {\n\t\treturn this._flipY;\n\t}\n\tset premultiplyAlpha(premultiplyAlpha) {\n\t\tif (this._premultiplyAlpha !== premultiplyAlpha) {\n\t\t\tthis._premultiplyAlpha = premultiplyAlpha;\n\t\t\tthis._needsUpload = true;\n\t\t}\n\t}\n\tget premultiplyAlpha() {\n\t\treturn this._premultiplyAlpha;\n\t}\n\tget pot() {\n\t\treturn math.powerOfTwo(this._width) && math.powerOfTwo(this._height);\n\t}\n\tget encoding() {\n\t\tswitch (this.type) {\n\t\t\tcase TEXTURETYPE_RGBM:\n\t\t\t\treturn 'rgbm';\n\t\t\tcase TEXTURETYPE_RGBE:\n\t\t\t\treturn 'rgbe';\n\t\t\tcase TEXTURETYPE_RGBP:\n\t\t\t\treturn 'rgbp';\n\t\t\tdefault:\n\t\t\t\treturn this.format === PIXELFORMAT_RGB16F || this.format === PIXELFORMAT_RGB32F || this.format === PIXELFORMAT_RGBA16F || this.format === PIXELFORMAT_RGBA32F || isIntegerPixelFormat(this.format) ? 'linear' : 'srgb';\n\t\t}\n\t}\n\tdirtyAll() {\n\t\tthis._levelsUpdated = this._cubemap ? [[true, true, true, true, true, true]] : [true];\n\t\tthis._needsUpload = true;\n\t\tthis._needsMipmapsUpload = this._mipmaps;\n\t\tthis._mipmapsUploaded = false;\n\t\tthis.propertyChanged(255);\n\t}\n\tlock(options = {}) {\n\t\tvar _options$level, _options$face, _options$mode;\n\t\t(_options$level = options.level) != null ? _options$level : options.level = 0;\n\t\t(_options$face = options.face) != null ? _options$face : options.face = 0;\n\t\t(_options$mode = options.mode) != null ? _options$mode : options.mode = TEXTURELOCK_WRITE;\n\t\tthis._lockedMode = options.mode;\n\t\tthis._lockedLevel = options.level;\n\t\tconst levels = this.cubemap ? this._levels[options.face] : this._levels;\n\t\tif (levels[options.level] === null) {\n\t\t\tconst width = Math.max(1, this._width >> options.level);\n\t\t\tconst height = Math.max(1, this._height >> options.level);\n\t\t\tconst depth = Math.max(1, this._depth >> options.level);\n\t\t\tconst data = new ArrayBuffer(TextureUtils.calcLevelGpuSize(width, height, depth, this._format));\n\t\t\tlevels[options.level] = new (getPixelFormatArrayType(this._format))(data);\n\t\t}\n\t\treturn levels[options.level];\n\t}\n\tsetSource(source, mipLevel = 0) {\n\t\tlet invalid = false;\n\t\tlet width, height;\n\t\tif (this._cubemap) {\n\t\t\tif (source[0]) {\n\t\t\t\twidth = source[0].width || 0;\n\t\t\t\theight = source[0].height || 0;\n\t\t\t\tfor (let i = 0; i < 6; i++) {\n\t\t\t\t\tconst face = source[i];\n\t\t\t\t\tif (!face || face.width !== width || face.height !== height || !this.device._isBrowserInterface(face)) {\n\t\t\t\t\t\tinvalid = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tinvalid = true;\n\t\t\t}\n\t\t\tif (!invalid) {\n\t\t\t\tfor (let i = 0; i < 6; i++) {\n\t\t\t\t\tif (this._levels[mipLevel][i] !== source[i]) {\n\t\t\t\t\t\tthis._levelsUpdated[mipLevel][i] = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (!this.device._isBrowserInterface(source)) {\n\t\t\t\tinvalid = true;\n\t\t\t}\n\t\t\tif (!invalid) {\n\t\t\t\tif (source !== this._levels[mipLevel]) {\n\t\t\t\t\tthis._levelsUpdated[mipLevel] = true;\n\t\t\t\t}\n\t\t\t\twidth = source.width;\n\t\t\t\theight = source.height;\n\t\t\t}\n\t\t}\n\t\tif (invalid) {\n\t\t\tthis._width = 4;\n\t\t\tthis._height = 4;\n\t\t\tif (this._cubemap) {\n\t\t\t\tfor (let i = 0; i < 6; i++) {\n\t\t\t\t\tthis._levels[mipLevel][i] = null;\n\t\t\t\t\tthis._levelsUpdated[mipLevel][i] = true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._levels[mipLevel] = null;\n\t\t\t\tthis._levelsUpdated[mipLevel] = true;\n\t\t\t}\n\t\t} else {\n\t\t\tif (mipLevel === 0) {\n\t\t\t\tthis._width = width;\n\t\t\t\tthis._height = height;\n\t\t\t}\n\t\t\tthis._levels[mipLevel] = source;\n\t\t}\n\t\tif (this._invalid !== invalid || !invalid) {\n\t\t\tthis._invalid = invalid;\n\t\t\tthis.upload();\n\t\t}\n\t}\n\tgetSource(mipLevel = 0) {\n\t\treturn this._levels[mipLevel];\n\t}\n\tunlock() {\n\t\tif (this._lockedMode === TEXTURELOCK_NONE) ;\n\t\tif (this._lockedMode === TEXTURELOCK_WRITE) {\n\t\t\tthis.upload();\n\t\t}\n\t\tthis._lockedLevel = -1;\n\t\tthis._lockedMode = TEXTURELOCK_NONE;\n\t}\n\tupload() {\n\t\tvar _this$impl$uploadImme, _this$impl;\n\t\tthis._needsUpload = true;\n\t\tthis._needsMipmapsUpload = this._mipmaps;\n\t\t(_this$impl$uploadImme = (_this$impl = this.impl).uploadImmediate) == null || _this$impl$uploadImme.call(_this$impl, this.device, this);\n\t}\n\tasync downloadAsync() {\n\t\tconst promises = [];\n\t\tfor (let i = 0; i < (this.cubemap ? 6 : 1); i++) {\n\t\t\tvar _this$device$readPixe, _this$device;\n\t\t\tconst renderTarget = new RenderTarget({\n\t\t\t\tcolorBuffer: this,\n\t\t\t\tdepth: false,\n\t\t\t\tface: i\n\t\t\t});\n\t\t\tthis.device.setRenderTarget(renderTarget);\n\t\t\tthis.device.initRenderTarget(renderTarget);\n\t\t\tconst levels = this.cubemap ? this._levels[i] : this._levels;\n\t\t\tlet level = levels[0];\n\t\t\tif (levels[0] && this.device._isBrowserInterface(levels[0])) {\n\t\t\t\tlevels[0] = null;\n\t\t\t}\n\t\t\tlevel = this.lock({\n\t\t\t\tface: i\n\t\t\t});\n\t\t\tconst promise = (_this$device$readPixe = (_this$device = this.device).readPixelsAsync) == null ? void 0 : _this$device$readPixe.call(_this$device, 0, 0, this.width, this.height, level).then(() => renderTarget.destroy());\n\t\t\tpromises.push(promise);\n\t\t}\n\t\tawait Promise.all(promises);\n\t}\n}\n\nclass WebglBuffer {\n\tconstructor() {\n\t\tthis.bufferId = null;\n\t}\n\tdestroy(device) {\n\t\tif (this.bufferId) {\n\t\t\tdevice.gl.deleteBuffer(this.bufferId);\n\t\t\tthis.bufferId = null;\n\t\t}\n\t}\n\tget initialized() {\n\t\treturn !!this.bufferId;\n\t}\n\tloseContext() {\n\t\tthis.bufferId = null;\n\t}\n\tunlock(device, usage, target, storage) {\n\t\tconst gl = device.gl;\n\t\tif (!this.bufferId) {\n\t\t\tlet glUsage;\n\t\t\tswitch (usage) {\n\t\t\t\tcase BUFFER_STATIC:\n\t\t\t\t\tglUsage = gl.STATIC_DRAW;\n\t\t\t\t\tbreak;\n\t\t\t\tcase BUFFER_DYNAMIC:\n\t\t\t\t\tglUsage = gl.DYNAMIC_DRAW;\n\t\t\t\t\tbreak;\n\t\t\t\tcase BUFFER_STREAM:\n\t\t\t\t\tglUsage = gl.STREAM_DRAW;\n\t\t\t\t\tbreak;\n\t\t\t\tcase BUFFER_GPUDYNAMIC:\n\t\t\t\t\tglUsage = device.isWebGL2 ? gl.DYNAMIC_COPY : gl.STATIC_DRAW;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tthis.bufferId = gl.createBuffer();\n\t\t\tgl.bindBuffer(target, this.bufferId);\n\t\t\tgl.bufferData(target, storage, glUsage);\n\t\t} else {\n\t\t\tgl.bindBuffer(target, this.bufferId);\n\t\t\tgl.bufferSubData(target, 0, storage);\n\t\t}\n\t}\n}\n\nclass WebglVertexBuffer extends WebglBuffer {\n\tconstructor(...args) {\n\t\tsuper(...args);\n\t\tthis.vao = null;\n\t}\n\tdestroy(device) {\n\t\tsuper.destroy(device);\n\t\tdevice.unbindVertexArray();\n\t}\n\tloseContext() {\n\t\tsuper.loseContext();\n\t\tthis.vao = null;\n\t}\n\tunlock(vertexBuffer) {\n\t\tconst device = vertexBuffer.device;\n\t\tsuper.unlock(device, vertexBuffer.usage, device.gl.ARRAY_BUFFER, vertexBuffer.storage);\n\t}\n}\n\nclass WebglIndexBuffer extends WebglBuffer {\n\tconstructor(indexBuffer) {\n\t\tsuper();\n\t\tconst gl = indexBuffer.device.gl;\n\t\tconst format = indexBuffer.format;\n\t\tif (format === INDEXFORMAT_UINT8) {\n\t\t\tthis.glFormat = gl.UNSIGNED_BYTE;\n\t\t} else if (format === INDEXFORMAT_UINT16) {\n\t\t\tthis.glFormat = gl.UNSIGNED_SHORT;\n\t\t} else if (format === INDEXFORMAT_UINT32) {\n\t\t\tthis.glFormat = gl.UNSIGNED_INT;\n\t\t}\n\t}\n\tunlock(indexBuffer) {\n\t\tconst device = indexBuffer.device;\n\t\tsuper.unlock(device, indexBuffer.usage, device.gl.ELEMENT_ARRAY_BUFFER, indexBuffer.storage);\n\t}\n}\n\nclass WebglShaderInput {\n\tconstructor(graphicsDevice, name, type, locationId) {\n\t\tthis.locationId = locationId;\n\t\tthis.scopeId = graphicsDevice.scope.resolve(name);\n\t\tthis.version = new Version();\n\t\tif (name.substring(name.length - 3) === '[0]') {\n\t\t\tswitch (type) {\n\t\t\t\tcase UNIFORMTYPE_FLOAT:\n\t\t\t\t\ttype = UNIFORMTYPE_FLOATARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_INT:\n\t\t\t\t\ttype = UNIFORMTYPE_INTARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_UINT:\n\t\t\t\t\ttype = UNIFORMTYPE_UINTARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_BOOL:\n\t\t\t\t\ttype = UNIFORMTYPE_BOOLARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_VEC2:\n\t\t\t\t\ttype = UNIFORMTYPE_VEC2ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_IVEC2:\n\t\t\t\t\ttype = UNIFORMTYPE_IVEC2ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_UVEC2:\n\t\t\t\t\ttype = UNIFORMTYPE_UVEC2ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_BVEC2:\n\t\t\t\t\ttype = UNIFORMTYPE_BVEC2ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_VEC3:\n\t\t\t\t\ttype = UNIFORMTYPE_VEC3ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_IVEC3:\n\t\t\t\t\ttype = UNIFORMTYPE_IVEC3ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_UVEC3:\n\t\t\t\t\ttype = UNIFORMTYPE_UVEC3ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_BVEC3:\n\t\t\t\t\ttype = UNIFORMTYPE_BVEC3ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_VEC4:\n\t\t\t\t\ttype = UNIFORMTYPE_VEC4ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_IVEC4:\n\t\t\t\t\ttype = UNIFORMTYPE_IVEC4ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_UVEC4:\n\t\t\t\t\ttype = UNIFORMTYPE_UVEC4ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_BVEC4:\n\t\t\t\t\ttype = UNIFORMTYPE_BVEC4ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tthis.dataType = type;\n\t\tthis.value = [null, null, null, null];\n\t\tthis.array = [];\n\t}\n}\n\nconst _vertexShaderBuiltins = new Set(['gl_VertexID', 'gl_InstanceID', 'gl_DrawID', 'gl_BaseVertex', 'gl_BaseInstance']);\nclass CompiledShaderCache {\n\tconstructor() {\n\t\tthis.map = new Map();\n\t}\n\tdestroy(device) {\n\t\tthis.map.forEach(shader => {\n\t\t\tdevice.gl.deleteShader(shader);\n\t\t});\n\t}\n\tloseContext(device) {\n\t\tthis.map.clear();\n\t}\n}\nconst _vertexShaderCache = new DeviceCache();\nconst _fragmentShaderCache = new DeviceCache();\nclass WebglShader {\n\tconstructor(shader) {\n\t\tthis.compileDuration = 0;\n\t\tthis.init();\n\t\tthis.compile(shader.device, shader);\n\t\tthis.link(shader.device, shader);\n\t\tshader.device.shaders.push(shader);\n\t}\n\tdestroy(shader) {\n\t\tif (this.glProgram) {\n\t\t\tshader.device.gl.deleteProgram(this.glProgram);\n\t\t\tthis.glProgram = null;\n\t\t}\n\t}\n\tinit() {\n\t\tthis.uniforms = [];\n\t\tthis.samplers = [];\n\t\tthis.attributes = [];\n\t\tthis.glProgram = null;\n\t\tthis.glVertexShader = null;\n\t\tthis.glFragmentShader = null;\n\t}\n\tloseContext() {\n\t\tthis.init();\n\t}\n\trestoreContext(device, shader) {\n\t\tthis.compile(device, shader);\n\t\tthis.link(device, shader);\n\t}\n\tcompile(device, shader) {\n\t\tconst definition = shader.definition;\n\t\tthis.glVertexShader = this._compileShaderSource(device, definition.vshader, true);\n\t\tthis.glFragmentShader = this._compileShaderSource(device, definition.fshader, false);\n\t}\n\tlink(device, shader) {\n\t\tif (this.glProgram) {\n\t\t\treturn;\n\t\t}\n\t\tconst gl = device.gl;\n\t\tif (gl.isContextLost()) {\n\t\t\treturn;\n\t\t}\n\t\tconst glProgram = gl.createProgram();\n\t\tthis.glProgram = glProgram;\n\t\tgl.attachShader(glProgram, this.glVertexShader);\n\t\tgl.attachShader(glProgram, this.glFragmentShader);\n\t\tconst definition = shader.definition;\n\t\tconst attrs = definition.attributes;\n\t\tif (device.isWebGL2 && definition.useTransformFeedback) {\n\t\t\tconst outNames = [];\n\t\t\tfor (const attr in attrs) {\n\t\t\t\tif (attrs.hasOwnProperty(attr)) {\n\t\t\t\t\toutNames.push(`out_${attr}`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tgl.transformFeedbackVaryings(glProgram, outNames, gl.INTERLEAVED_ATTRIBS);\n\t\t}\n\t\tfor (const attr in attrs) {\n\t\t\tif (attrs.hasOwnProperty(attr)) {\n\t\t\t\tconst semantic = attrs[attr];\n\t\t\t\tconst loc = semanticToLocation[semantic];\n\t\t\t\tgl.bindAttribLocation(glProgram, loc, attr);\n\t\t\t}\n\t\t}\n\t\tgl.linkProgram(glProgram);\n\t}\n\t_compileShaderSource(device, src, isVertexShader) {\n\t\tconst gl = device.gl;\n\t\tif (gl.isContextLost()) {\n\t\t\treturn null;\n\t\t}\n\t\tconst shaderDeviceCache = isVertexShader ? _vertexShaderCache : _fragmentShaderCache;\n\t\tconst shaderCache = shaderDeviceCache.get(device, () => {\n\t\t\treturn new CompiledShaderCache();\n\t\t});\n\t\tlet glShader = shaderCache.map.get(src);\n\t\tif (!glShader) {\n\t\t\tglShader = gl.createShader(isVertexShader ? gl.VERTEX_SHADER : gl.FRAGMENT_SHADER);\n\t\t\tgl.shaderSource(glShader, src);\n\t\t\tgl.compileShader(glShader);\n\t\t\tshaderCache.map.set(src, glShader);\n\t\t}\n\t\treturn glShader;\n\t}\n\tfinalize(device, shader) {\n\t\tconst gl = device.gl;\n\t\tif (gl.isContextLost()) {\n\t\t\treturn true;\n\t\t}\n\t\tconst glProgram = this.glProgram;\n\t\tconst definition = shader.definition;\n\t\tconst linkStatus = gl.getProgramParameter(glProgram, gl.LINK_STATUS);\n\t\tif (!linkStatus) {\n\t\t\tif (!this._isCompiled(device, shader, this.glVertexShader, definition.vshader, 'vertex')) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (!this._isCompiled(device, shader, this.glFragmentShader, definition.fshader, 'fragment')) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tconst message = `Failed to link shader program. Error: ${gl.getProgramInfoLog(glProgram)}`;\n\t\t\tconsole.error(message);\n\t\t\treturn false;\n\t\t}\n\t\tconst numAttributes = gl.getProgramParameter(glProgram, gl.ACTIVE_ATTRIBUTES);\n\t\tfor (let i = 0; i < numAttributes; i++) {\n\t\t\tconst info = gl.getActiveAttrib(glProgram, i);\n\t\t\tconst location = gl.getAttribLocation(glProgram, info.name);\n\t\t\tif (_vertexShaderBuiltins.has(info.name)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (definition.attributes[info.name] === undefined) {\n\t\t\t\tconsole.error(`Vertex shader attribute \"${info.name}\" is not mapped to a semantic in shader definition, shader [${shader.label}]`, shader);\n\t\t\t\tshader.failed = true;\n\t\t\t} else {\n\t\t\t\tconst shaderInput = new WebglShaderInput(device, definition.attributes[info.name], device.pcUniformType[info.type], location);\n\t\t\t\tthis.attributes.push(shaderInput);\n\t\t\t}\n\t\t}\n\t\tconst samplerTypes = device._samplerTypes;\n\t\tconst numUniforms = gl.getProgramParameter(glProgram, gl.ACTIVE_UNIFORMS);\n\t\tfor (let i = 0; i < numUniforms; i++) {\n\t\t\tconst info = gl.getActiveUniform(glProgram, i);\n\t\t\tconst location = gl.getUniformLocation(glProgram, info.name);\n\t\t\tconst shaderInput = new WebglShaderInput(device, info.name, device.pcUniformType[info.type], location);\n\t\t\tif (samplerTypes.has(info.type)) {\n\t\t\t\tthis.samplers.push(shaderInput);\n\t\t\t} else {\n\t\t\t\tthis.uniforms.push(shaderInput);\n\t\t\t}\n\t\t}\n\t\tshader.ready = true;\n\t\treturn true;\n\t}\n\t_isCompiled(device, shader, glShader, source, shaderType) {\n\t\tconst gl = device.gl;\n\t\tif (!gl.getShaderParameter(glShader, gl.COMPILE_STATUS)) {\n\t\t\tconst infoLog = gl.getShaderInfoLog(glShader);\n\t\t\tconst [code, error] = this._processError(source, infoLog);\n\t\t\tconst message = `Failed to compile ${shaderType} shader:\\n\\n${infoLog}\\n${code} while rendering ${void 0}`;\n\t\t\tconsole.error(message);\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\tisLinked(device) {\n\t\tconst {\n\t\t\textParallelShaderCompile\n\t\t} = device;\n\t\tif (extParallelShaderCompile) {\n\t\t\treturn device.gl.getProgramParameter(this.glProgram, extParallelShaderCompile.COMPLETION_STATUS_KHR);\n\t\t}\n\t\treturn true;\n\t}\n\t_processError(src, infoLog) {\n\t\tconst error = {};\n\t\tlet code = '';\n\t\tif (src) {\n\t\t\tconst lines = src.split('\\n');\n\t\t\tlet from = 0;\n\t\t\tlet to = lines.length;\n\t\t\tif (infoLog && infoLog.startsWith('ERROR:')) {\n\t\t\t\tconst match = infoLog.match(/^ERROR:\\s(\\d+):(\\d+):\\s*(.+)/);\n\t\t\t\tif (match) {\n\t\t\t\t\terror.message = match[3];\n\t\t\t\t\terror.line = parseInt(match[2], 10);\n\t\t\t\t\tfrom = Math.max(0, error.line - 6);\n\t\t\t\t\tto = Math.min(lines.length, error.line + 5);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (let i = from; i < to; i++) {\n\t\t\t\tcode += `${i + 1}:\\t${lines[i]}\\n`;\n\t\t\t}\n\t\t\terror.source = src;\n\t\t}\n\t\treturn [code, error];\n\t}\n}\n\nfunction downsampleImage(image, size) {\n\tconst srcW = image.width;\n\tconst srcH = image.height;\n\tif (srcW > size || srcH > size) {\n\t\tconst scale = size / Math.max(srcW, srcH);\n\t\tconst dstW = Math.floor(srcW * scale);\n\t\tconst dstH = Math.floor(srcH * scale);\n\t\tconst canvas = document.createElement('canvas');\n\t\tcanvas.width = dstW;\n\t\tcanvas.height = dstH;\n\t\tconst context = canvas.getContext('2d');\n\t\tcontext.drawImage(image, 0, 0, srcW, srcH, 0, 0, dstW, dstH);\n\t\treturn canvas;\n\t}\n\treturn image;\n}\nclass WebglTexture {\n\tconstructor() {\n\t\tthis._glTexture = null;\n\t\tthis._glTarget = void 0;\n\t\tthis._glFormat = void 0;\n\t\tthis._glInternalFormat = void 0;\n\t\tthis._glPixelType = void 0;\n\t\tthis._glCreated = void 0;\n\t\tthis.dirtyParameterFlags = 0;\n\t}\n\tdestroy(device) {\n\t\tif (this._glTexture) {\n\t\t\tfor (let i = 0; i < device.textureUnits.length; i++) {\n\t\t\t\tconst textureUnit = device.textureUnits[i];\n\t\t\t\tfor (let j = 0; j < textureUnit.length; j++) {\n\t\t\t\t\tif (textureUnit[j] === this._glTexture) {\n\t\t\t\t\t\ttextureUnit[j] = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tdevice.gl.deleteTexture(this._glTexture);\n\t\t\tthis._glTexture = null;\n\t\t}\n\t}\n\tloseContext() {\n\t\tthis._glTexture = null;\n\t}\n\tpropertyChanged(flag) {\n\t\tthis.dirtyParameterFlags |= flag;\n\t}\n\tinitialize(device, texture) {\n\t\tconst gl = device.gl;\n\t\tthis._glTexture = gl.createTexture();\n\t\tthis._glTarget = texture._cubemap ? gl.TEXTURE_CUBE_MAP : texture._volume ? gl.TEXTURE_3D : texture.array ? gl.TEXTURE_2D_ARRAY : gl.TEXTURE_2D;\n\t\tswitch (texture._format) {\n\t\t\tcase PIXELFORMAT_A8:\n\t\t\t\tthis._glFormat = gl.ALPHA;\n\t\t\t\tthis._glInternalFormat = gl.ALPHA;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_BYTE;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_L8:\n\t\t\t\tthis._glFormat = gl.LUMINANCE;\n\t\t\t\tthis._glInternalFormat = gl.LUMINANCE;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_BYTE;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_LA8:\n\t\t\t\tthis._glFormat = gl.LUMINANCE_ALPHA;\n\t\t\t\tthis._glInternalFormat = gl.LUMINANCE_ALPHA;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_BYTE;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGB565:\n\t\t\t\tthis._glFormat = gl.RGB;\n\t\t\t\tthis._glInternalFormat = gl.RGB;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_SHORT_5_6_5;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGBA5551:\n\t\t\t\tthis._glFormat = gl.RGBA;\n\t\t\t\tthis._glInternalFormat = gl.RGBA;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_SHORT_5_5_5_1;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGBA4:\n\t\t\t\tthis._glFormat = gl.RGBA;\n\t\t\t\tthis._glInternalFormat = gl.RGBA;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_SHORT_4_4_4_4;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGB8:\n\t\t\t\tthis._glFormat = gl.RGB;\n\t\t\t\tthis._glInternalFormat = device.isWebGL2 ? gl.RGB8 : gl.RGB;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_BYTE;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGBA8:\n\t\t\t\tthis._glFormat = gl.RGBA;\n\t\t\t\tthis._glInternalFormat = device.isWebGL2 ? gl.RGBA8 : gl.RGBA;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_BYTE;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_DXT1:\n\t\t\t\tthis._glFormat = gl.RGB;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTextureS3TC.COMPRESSED_RGB_S3TC_DXT1_EXT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_DXT3:\n\t\t\t\tthis._glFormat = gl.RGBA;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTextureS3TC.COMPRESSED_RGBA_S3TC_DXT3_EXT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_DXT5:\n\t\t\t\tthis._glFormat = gl.RGBA;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTextureS3TC.COMPRESSED_RGBA_S3TC_DXT5_EXT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_ETC1:\n\t\t\t\tthis._glFormat = gl.RGB;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTextureETC1.COMPRESSED_RGB_ETC1_WEBGL;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_PVRTC_2BPP_RGB_1:\n\t\t\t\tthis._glFormat = gl.RGB;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTexturePVRTC.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_PVRTC_2BPP_RGBA_1:\n\t\t\t\tthis._glFormat = gl.RGBA;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTexturePVRTC.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_PVRTC_4BPP_RGB_1:\n\t\t\t\tthis._glFormat = gl.RGB;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTexturePVRTC.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_PVRTC_4BPP_RGBA_1:\n\t\t\t\tthis._glFormat = gl.RGBA;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTexturePVRTC.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_ETC2_RGB:\n\t\t\t\tthis._glFormat = gl.RGB;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTextureETC.COMPRESSED_RGB8_ETC2;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_ETC2_RGBA:\n\t\t\t\tthis._glFormat = gl.RGBA;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTextureETC.COMPRESSED_RGBA8_ETC2_EAC;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_ASTC_4x4:\n\t\t\t\tthis._glFormat = gl.RGBA;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTextureASTC.COMPRESSED_RGBA_ASTC_4x4_KHR;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_ATC_RGB:\n\t\t\t\tthis._glFormat = gl.RGB;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTextureATC.COMPRESSED_RGB_ATC_WEBGL;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_ATC_RGBA:\n\t\t\t\tthis._glFormat = gl.RGBA;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTextureATC.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_R16F:\n\t\t\t\tif (device.isWebGL2) {\n\t\t\t\t\tthis._glFormat = gl.RED;\n\t\t\t\t\tthis._glInternalFormat = gl.R16F;\n\t\t\t\t\tthis._glPixelType = gl.HALF_FLOAT;\n\t\t\t\t} else {\n\t\t\t\t\tthis._glFormat = gl.LUMINANCE;\n\t\t\t\t\tthis._glInternalFormat = gl.LUMINANCE;\n\t\t\t\t\tthis._glPixelType = device.extTextureHalfFloat.HALF_FLOAT_OES;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RG16F:\n\t\t\t\tif (device.isWebGL2) {\n\t\t\t\t\tthis._glFormat = gl.RG;\n\t\t\t\t\tthis._glInternalFormat = gl.RG16F;\n\t\t\t\t\tthis._glPixelType = gl.HALF_FLOAT;\n\t\t\t\t} else {\n\t\t\t\t\tthis._glFormat = gl.RG;\n\t\t\t\t\tthis._glInternalFormat = gl.RG;\n\t\t\t\t\tthis._glPixelType = device.extTextureHalfFloat.HALF_FLOAT_OES;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGB16F:\n\t\t\t\tthis._glFormat = gl.RGB;\n\t\t\t\tif (device.isWebGL2) {\n\t\t\t\t\tthis._glInternalFormat = gl.RGB16F;\n\t\t\t\t\tthis._glPixelType = gl.HALF_FLOAT;\n\t\t\t\t} else {\n\t\t\t\t\tthis._glInternalFormat = gl.RGB;\n\t\t\t\t\tthis._glPixelType = device.extTextureHalfFloat.HALF_FLOAT_OES;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGBA16F:\n\t\t\t\tthis._glFormat = gl.RGBA;\n\t\t\t\tif (device.isWebGL2) {\n\t\t\t\t\tthis._glInternalFormat = gl.RGBA16F;\n\t\t\t\t\tthis._glPixelType = gl.HALF_FLOAT;\n\t\t\t\t} else {\n\t\t\t\t\tthis._glInternalFormat = gl.RGBA;\n\t\t\t\t\tthis._glPixelType = device.extTextureHalfFloat.HALF_FLOAT_OES;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGB32F:\n\t\t\t\tthis._glFormat = gl.RGB;\n\t\t\t\tif (device.isWebGL2) {\n\t\t\t\t\tthis._glInternalFormat = gl.RGB32F;\n\t\t\t\t} else {\n\t\t\t\t\tthis._glInternalFormat = gl.RGB;\n\t\t\t\t}\n\t\t\t\tthis._glPixelType = gl.FLOAT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGBA32F:\n\t\t\t\tthis._glFormat = gl.RGBA;\n\t\t\t\tif (device.isWebGL2) {\n\t\t\t\t\tthis._glInternalFormat = gl.RGBA32F;\n\t\t\t\t} else {\n\t\t\t\t\tthis._glInternalFormat = gl.RGBA;\n\t\t\t\t}\n\t\t\t\tthis._glPixelType = gl.FLOAT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_R32F:\n\t\t\t\tthis._glFormat = gl.RED;\n\t\t\t\tthis._glInternalFormat = gl.R32F;\n\t\t\t\tthis._glPixelType = gl.FLOAT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_DEPTH:\n\t\t\t\tif (device.isWebGL2) {\n\t\t\t\t\tthis._glFormat = gl.DEPTH_COMPONENT;\n\t\t\t\t\tthis._glInternalFormat = gl.DEPTH_COMPONENT32F;\n\t\t\t\t\tthis._glPixelType = gl.FLOAT;\n\t\t\t\t} else {\n\t\t\t\t\tthis._glFormat = gl.DEPTH_COMPONENT;\n\t\t\t\t\tthis._glInternalFormat = gl.DEPTH_COMPONENT;\n\t\t\t\t\tthis._glPixelType = gl.UNSIGNED_SHORT;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_DEPTHSTENCIL:\n\t\t\t\tthis._glFormat = gl.DEPTH_STENCIL;\n\t\t\t\tif (device.isWebGL2) {\n\t\t\t\t\tthis._glInternalFormat = gl.DEPTH24_STENCIL8;\n\t\t\t\t\tthis._glPixelType = gl.UNSIGNED_INT_24_8;\n\t\t\t\t} else {\n\t\t\t\t\tthis._glInternalFormat = gl.DEPTH_STENCIL;\n\t\t\t\t\tthis._glPixelType = device.extDepthTexture.UNSIGNED_INT_24_8_WEBGL;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_111110F:\n\t\t\t\tthis._glFormat = gl.RGB;\n\t\t\t\tthis._glInternalFormat = gl.R11F_G11F_B10F;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_INT_10F_11F_11F_REV;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_SRGB:\n\t\t\t\tthis._glFormat = gl.RGB;\n\t\t\t\tthis._glInternalFormat = gl.SRGB8;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_BYTE;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_SRGBA:\n\t\t\t\tthis._glFormat = gl.RGBA;\n\t\t\t\tthis._glInternalFormat = gl.SRGB8_ALPHA8;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_BYTE;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_R8I:\n\t\t\t\tthis._glFormat = gl.RED_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.R8I;\n\t\t\t\tthis._glPixelType = gl.BYTE;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_R8U:\n\t\t\t\tthis._glFormat = gl.RED_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.R8UI;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_BYTE;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_R16I:\n\t\t\t\tthis._glFormat = gl.RED_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.R16I;\n\t\t\t\tthis._glPixelType = gl.SHORT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_R16U:\n\t\t\t\tthis._glFormat = gl.RED_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.R16UI;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_SHORT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_R32I:\n\t\t\t\tthis._glFormat = gl.RED_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.R32I;\n\t\t\t\tthis._glPixelType = gl.INT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_R32U:\n\t\t\t\tthis._glFormat = gl.RED_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.R32UI;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_INT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RG8I:\n\t\t\t\tthis._glFormat = gl.RG_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.RG8I;\n\t\t\t\tthis._glPixelType = gl.BYTE;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RG8U:\n\t\t\t\tthis._glFormat = gl.RG_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.RG8UI;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_BYTE;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RG16I:\n\t\t\t\tthis._glFormat = gl.RG_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.RG16I;\n\t\t\t\tthis._glPixelType = gl.SHORT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RG16U:\n\t\t\t\tthis._glFormat = gl.RG_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.RG16UI;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_SHORT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RG32I:\n\t\t\t\tthis._glFormat = gl.RG_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.RG32I;\n\t\t\t\tthis._glPixelType = gl.INT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RG32U:\n\t\t\t\tthis._glFormat = gl.RG_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.RG32UI;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_INT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGBA8I:\n\t\t\t\tthis._glFormat = gl.RGBA_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.RGBA8I;\n\t\t\t\tthis._glPixelType = gl.BYTE;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGBA8U:\n\t\t\t\tthis._glFormat = gl.RGBA_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.RGBA8UI;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_BYTE;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGBA16I:\n\t\t\t\tthis._glFormat = gl.RGBA_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.RGBA16I;\n\t\t\t\tthis._glPixelType = gl.SHORT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGBA16U:\n\t\t\t\tthis._glFormat = gl.RGBA_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.RGBA16UI;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_SHORT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGBA32I:\n\t\t\t\tthis._glFormat = gl.RGBA_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.RGBA32I;\n\t\t\t\tthis._glPixelType = gl.INT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGBA32U:\n\t\t\t\tthis._glFormat = gl.RGBA_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.RGBA32UI;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_INT;\n\t\t\t\tbreak;\n\t\t}\n\t\tthis._glCreated = false;\n\t}\n\tupload(device, texture) {\n\t\tconst gl = device.gl;\n\t\tif (!texture._needsUpload && (texture._needsMipmapsUpload && texture._mipmapsUploaded || !texture.pot)) {\n\t\t\treturn;\n\t\t}\n\t\tlet mipLevel = 0;\n\t\tlet mipObject;\n\t\tlet resMult;\n\t\tconst requiredMipLevels = texture.requiredMipLevels;\n\t\tif (texture.array) {\n\t\t\tgl.texStorage3D(gl.TEXTURE_2D_ARRAY, requiredMipLevels, this._glInternalFormat, texture._width, texture._height, texture._arrayLength);\n\t\t}\n\t\twhile (texture._levels[mipLevel] || mipLevel === 0) {\n\t\t\tif (!texture._needsUpload && mipLevel === 0) {\n\t\t\t\tmipLevel++;\n\t\t\t\tcontinue;\n\t\t\t} else if (mipLevel && (!texture._needsMipmapsUpload || !texture._mipmaps)) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmipObject = texture._levels[mipLevel];\n\t\t\tresMult = 1 / Math.pow(2, mipLevel);\n\t\t\tif (mipLevel === 1 && !texture._compressed && !texture._integerFormat && texture._levels.length < requiredMipLevels) {\n\t\t\t\tgl.generateMipmap(this._glTarget);\n\t\t\t\ttexture._mipmapsUploaded = true;\n\t\t\t}\n\t\t\tif (texture._cubemap) {\n\t\t\t\tlet face;\n\t\t\t\tif (device._isBrowserInterface(mipObject[0])) {\n\t\t\t\t\tfor (face = 0; face < 6; face++) {\n\t\t\t\t\t\tif (!texture._levelsUpdated[0][face]) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlet src = mipObject[face];\n\t\t\t\t\t\tif (device._isImageBrowserInterface(src)) {\n\t\t\t\t\t\t\tif (src.width > device.maxCubeMapSize || src.height > device.maxCubeMapSize) {\n\t\t\t\t\t\t\t\tsrc = downsampleImage(src, device.maxCubeMapSize);\n\t\t\t\t\t\t\t\tif (mipLevel === 0) {\n\t\t\t\t\t\t\t\t\ttexture._width = src.width;\n\t\t\t\t\t\t\t\t\ttexture._height = src.height;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdevice.setUnpackFlipY(false);\n\t\t\t\t\t\tdevice.setUnpackPremultiplyAlpha(texture._premultiplyAlpha);\n\t\t\t\t\t\tif (this._glCreated) {\n\t\t\t\t\t\t\tgl.texSubImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + face, mipLevel, 0, 0, this._glFormat, this._glPixelType, src);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgl.texImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + face, mipLevel, this._glInternalFormat, this._glFormat, this._glPixelType, src);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresMult = 1 / Math.pow(2, mipLevel);\n\t\t\t\t\tfor (face = 0; face < 6; face++) {\n\t\t\t\t\t\tif (!texture._levelsUpdated[0][face]) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst texData = mipObject[face];\n\t\t\t\t\t\tif (texture._compressed) {\n\t\t\t\t\t\t\tif (this._glCreated && texData) {\n\t\t\t\t\t\t\t\tgl.compressedTexSubImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + face, mipLevel, 0, 0, Math.max(texture._width * resMult, 1), Math.max(texture._height * resMult, 1), this._glInternalFormat, texData);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tgl.compressedTexImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + face, mipLevel, this._glInternalFormat, Math.max(texture._width * resMult, 1), Math.max(texture._height * resMult, 1), 0, texData);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdevice.setUnpackFlipY(false);\n\t\t\t\t\t\t\tdevice.setUnpackPremultiplyAlpha(texture._premultiplyAlpha);\n\t\t\t\t\t\t\tif (this._glCreated && texData) {\n\t\t\t\t\t\t\t\tgl.texSubImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + face, mipLevel, 0, 0, Math.max(texture._width * resMult, 1), Math.max(texture._height * resMult, 1), this._glFormat, this._glPixelType, texData);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tgl.texImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + face, mipLevel, this._glInternalFormat, Math.max(texture._width * resMult, 1), Math.max(texture._height * resMult, 1), 0, this._glFormat, this._glPixelType, texData);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (texture._volume) {\n\t\t\t\tif (texture._compressed) {\n\t\t\t\t\tgl.compressedTexImage3D(gl.TEXTURE_3D, mipLevel, this._glInternalFormat, Math.max(texture._width * resMult, 1), Math.max(texture._height * resMult, 1), Math.max(texture._depth * resMult, 1), 0, mipObject);\n\t\t\t\t} else {\n\t\t\t\t\tdevice.setUnpackFlipY(false);\n\t\t\t\t\tdevice.setUnpackPremultiplyAlpha(texture._premultiplyAlpha);\n\t\t\t\t\tgl.texImage3D(gl.TEXTURE_3D, mipLevel, this._glInternalFormat, Math.max(texture._width * resMult, 1), Math.max(texture._height * resMult, 1), Math.max(texture._depth * resMult, 1), 0, this._glFormat, this._glPixelType, mipObject);\n\t\t\t\t}\n\t\t\t} else if (texture.array && typeof mipObject === 'object') {\n\t\t\t\tif (texture._arrayLength === mipObject.length) {\n\t\t\t\t\tif (texture._compressed) {\n\t\t\t\t\t\tfor (let index = 0; index < texture._arrayLength; index++) {\n\t\t\t\t\t\t\tgl.compressedTexSubImage3D(gl.TEXTURE_2D_ARRAY, mipLevel, 0, 0, index, Math.max(Math.floor(texture._width * resMult), 1), Math.max(Math.floor(texture._height * resMult), 1), 1, this._glInternalFormat, mipObject[index]);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (let index = 0; index < texture._arrayLength; index++) {\n\t\t\t\t\t\t\tgl.texSubImage3D(gl.TEXTURE_2D_ARRAY, mipLevel, 0, 0, index, Math.max(Math.floor(texture._width * resMult), 1), Math.max(Math.floor(texture._height * resMult), 1), 1, this._glFormat, this._glPixelType, mipObject[index]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (device._isBrowserInterface(mipObject)) {\n\t\t\t\t\tif (device._isImageBrowserInterface(mipObject)) {\n\t\t\t\t\t\tif (mipObject.width > device.maxTextureSize || mipObject.height > device.maxTextureSize) {\n\t\t\t\t\t\t\tmipObject = downsampleImage(mipObject, device.maxTextureSize);\n\t\t\t\t\t\t\tif (mipLevel === 0) {\n\t\t\t\t\t\t\t\ttexture._width = mipObject.width;\n\t\t\t\t\t\t\t\ttexture._height = mipObject.height;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tconst w = mipObject.width || mipObject.videoWidth;\n\t\t\t\t\tconst h = mipObject.height || mipObject.videoHeight;\n\t\t\t\t\tdevice.setUnpackFlipY(texture._flipY);\n\t\t\t\t\tdevice.setUnpackPremultiplyAlpha(texture._premultiplyAlpha);\n\t\t\t\t\tif (this._glCreated && texture._width === w && texture._height === h && !device._isImageVideoInterface(mipObject)) {\n\t\t\t\t\t\tgl.texSubImage2D(gl.TEXTURE_2D, mipLevel, 0, 0, this._glFormat, this._glPixelType, mipObject);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgl.texImage2D(gl.TEXTURE_2D, mipLevel, this._glInternalFormat, this._glFormat, this._glPixelType, mipObject);\n\t\t\t\t\t\tif (mipLevel === 0) {\n\t\t\t\t\t\t\ttexture._width = w;\n\t\t\t\t\t\t\ttexture._height = h;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresMult = 1 / Math.pow(2, mipLevel);\n\t\t\t\t\tif (texture._compressed) {\n\t\t\t\t\t\tif (this._glCreated && mipObject) {\n\t\t\t\t\t\t\tgl.compressedTexSubImage2D(gl.TEXTURE_2D, mipLevel, 0, 0, Math.max(Math.floor(texture._width * resMult), 1), Math.max(Math.floor(texture._height * resMult), 1), this._glInternalFormat, mipObject);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgl.compressedTexImage2D(gl.TEXTURE_2D, mipLevel, this._glInternalFormat, Math.max(Math.floor(texture._width * resMult), 1), Math.max(Math.floor(texture._height * resMult), 1), 0, mipObject);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdevice.setUnpackFlipY(false);\n\t\t\t\t\t\tdevice.setUnpackPremultiplyAlpha(texture._premultiplyAlpha);\n\t\t\t\t\t\tif (this._glCreated && mipObject) {\n\t\t\t\t\t\t\tgl.texSubImage2D(gl.TEXTURE_2D, mipLevel, 0, 0, Math.max(texture._width * resMult, 1), Math.max(texture._height * resMult, 1), this._glFormat, this._glPixelType, mipObject);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgl.texImage2D(gl.TEXTURE_2D, mipLevel, this._glInternalFormat, Math.max(texture._width * resMult, 1), Math.max(texture._height * resMult, 1), 0, this._glFormat, this._glPixelType, mipObject);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (mipLevel === 0) {\n\t\t\t\t\ttexture._mipmapsUploaded = false;\n\t\t\t\t} else {\n\t\t\t\t\ttexture._mipmapsUploaded = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmipLevel++;\n\t\t}\n\t\tif (texture._needsUpload) {\n\t\t\tif (texture._cubemap) {\n\t\t\t\tfor (let i = 0; i < 6; i++) {\n\t\t\t\t\ttexture._levelsUpdated[0][i] = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttexture._levelsUpdated[0] = false;\n\t\t\t}\n\t\t}\n\t\tif (!texture._compressed && !texture._integerFormat && texture._mipmaps && texture._needsMipmapsUpload && (texture.pot || device.isWebGL2) && texture._levels.length === 1) {\n\t\t\tgl.generateMipmap(this._glTarget);\n\t\t\ttexture._mipmapsUploaded = true;\n\t\t}\n\t\tif (texture._gpuSize) {\n\t\t\ttexture.adjustVramSizeTracking(device._vram, -texture._gpuSize);\n\t\t}\n\t\ttexture._gpuSize = texture.gpuSize;\n\t\ttexture.adjustVramSizeTracking(device._vram, texture._gpuSize);\n\t\tthis._glCreated = true;\n\t}\n}\n\nclass FramebufferPair {\n\tconstructor(msaaFB, resolveFB) {\n\t\tthis.msaaFB = void 0;\n\t\tthis.resolveFB = void 0;\n\t\tthis.msaaFB = msaaFB;\n\t\tthis.resolveFB = resolveFB;\n\t}\n\tdestroy(gl) {\n\t\tif (this.msaaFB) {\n\t\t\tgl.deleteRenderbuffer(this.msaaFB);\n\t\t\tthis.msaaFB = null;\n\t\t}\n\t\tif (this.resolveFB) {\n\t\t\tgl.deleteRenderbuffer(this.resolveFB);\n\t\t\tthis.resolveFB = null;\n\t\t}\n\t}\n}\nclass WebglRenderTarget {\n\tconstructor() {\n\t\tthis._glFrameBuffer = null;\n\t\tthis._glDepthBuffer = null;\n\t\tthis._glResolveFrameBuffer = null;\n\t\tthis.colorMrtFramebuffers = null;\n\t\tthis._glMsaaColorBuffers = [];\n\t\tthis._glMsaaDepthBuffer = null;\n\t\tthis.suppliedColorFramebuffer = void 0;\n\t\tthis._isInitialized = false;\n\t}\n\tdestroy(device) {\n\t\tvar _this$colorMrtFramebu;\n\t\tconst gl = device.gl;\n\t\tthis._isInitialized = false;\n\t\tif (this._glFrameBuffer) {\n\t\t\tif (this._glFrameBuffer !== this.suppliedColorFramebuffer) {\n\t\t\t\tgl.deleteFramebuffer(this._glFrameBuffer);\n\t\t\t}\n\t\t\tthis._glFrameBuffer = null;\n\t\t}\n\t\tif (this._glDepthBuffer) {\n\t\t\tgl.deleteRenderbuffer(this._glDepthBuffer);\n\t\t\tthis._glDepthBuffer = null;\n\t\t}\n\t\tif (this._glResolveFrameBuffer) {\n\t\t\tif (this._glResolveFrameBuffer !== this.suppliedColorFramebuffer) {\n\t\t\t\tgl.deleteFramebuffer(this._glResolveFrameBuffer);\n\t\t\t}\n\t\t\tthis._glResolveFrameBuffer = null;\n\t\t}\n\t\tthis._glMsaaColorBuffers.forEach(buffer => {\n\t\t\tgl.deleteRenderbuffer(buffer);\n\t\t});\n\t\tthis._glMsaaColorBuffers.length = 0;\n\t\t(_this$colorMrtFramebu = this.colorMrtFramebuffers) == null || _this$colorMrtFramebu.forEach(framebuffer => {\n\t\t\tframebuffer.destroy(gl);\n\t\t});\n\t\tthis.colorMrtFramebuffers = null;\n\t\tif (this._glMsaaDepthBuffer) {\n\t\t\tgl.deleteRenderbuffer(this._glMsaaDepthBuffer);\n\t\t\tthis._glMsaaDepthBuffer = null;\n\t\t}\n\t\tthis.suppliedColorFramebuffer = undefined;\n\t}\n\tget initialized() {\n\t\treturn this._isInitialized;\n\t}\n\tinit(device, target) {\n\t\tconst gl = device.gl;\n\t\tthis._isInitialized = true;\n\t\tconst buffers = [];\n\t\tif (this.suppliedColorFramebuffer !== undefined) {\n\t\t\tthis._glFrameBuffer = this.suppliedColorFramebuffer;\n\t\t} else {\n\t\t\tvar _target$_colorBuffers, _target$_colorBuffers2, _device$extDrawBuffer, _device$extDrawBuffer2;\n\t\t\tthis._glFrameBuffer = gl.createFramebuffer();\n\t\t\tdevice.setFramebuffer(this._glFrameBuffer);\n\t\t\tconst colorBufferCount = (_target$_colorBuffers = (_target$_colorBuffers2 = target._colorBuffers) == null ? void 0 : _target$_colorBuffers2.length) != null ? _target$_colorBuffers : 0;\n\t\t\tconst attachmentBaseConstant = device.isWebGL2 ? gl.COLOR_ATTACHMENT0 : (_device$extDrawBuffer = (_device$extDrawBuffer2 = device.extDrawBuffers) == null ? void 0 : _device$extDrawBuffer2.COLOR_ATTACHMENT0_WEBGL) != null ? _device$extDrawBuffer : gl.COLOR_ATTACHMENT0;\n\t\t\tfor (let i = 0; i < colorBufferCount; ++i) {\n\t\t\t\tconst colorBuffer = target.getColorBuffer(i);\n\t\t\t\tif (colorBuffer) {\n\t\t\t\t\tif (!colorBuffer.impl._glTexture) {\n\t\t\t\t\t\tcolorBuffer._width = Math.min(colorBuffer.width, device.maxRenderBufferSize);\n\t\t\t\t\t\tcolorBuffer._height = Math.min(colorBuffer.height, device.maxRenderBufferSize);\n\t\t\t\t\t\tdevice.setTexture(colorBuffer, 0);\n\t\t\t\t\t}\n\t\t\t\t\tgl.framebufferTexture2D(gl.FRAMEBUFFER, attachmentBaseConstant + i, colorBuffer._cubemap ? gl.TEXTURE_CUBE_MAP_POSITIVE_X + target._face : gl.TEXTURE_2D, colorBuffer.impl._glTexture, 0);\n\t\t\t\t\tbuffers.push(attachmentBaseConstant + i);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (device.drawBuffers) {\n\t\t\t\tdevice.drawBuffers(buffers);\n\t\t\t}\n\t\t\tconst depthBuffer = target._depthBuffer;\n\t\t\tif (depthBuffer) {\n\t\t\t\tif (!depthBuffer.impl._glTexture) {\n\t\t\t\t\tdepthBuffer._width = Math.min(depthBuffer.width, device.maxRenderBufferSize);\n\t\t\t\t\tdepthBuffer._height = Math.min(depthBuffer.height, device.maxRenderBufferSize);\n\t\t\t\t\tdevice.setTexture(depthBuffer, 0);\n\t\t\t\t}\n\t\t\t\tif (target._stencil) {\n\t\t\t\t\tgl.framebufferTexture2D(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, depthBuffer._cubemap ? gl.TEXTURE_CUBE_MAP_POSITIVE_X + target._face : gl.TEXTURE_2D, target._depthBuffer.impl._glTexture, 0);\n\t\t\t\t} else {\n\t\t\t\t\tgl.framebufferTexture2D(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, depthBuffer._cubemap ? gl.TEXTURE_CUBE_MAP_POSITIVE_X + target._face : gl.TEXTURE_2D, target._depthBuffer.impl._glTexture, 0);\n\t\t\t\t}\n\t\t\t} else if (target._depth) {\n\t\t\t\tconst willRenderMsaa = target._samples > 1 && device.isWebGL2;\n\t\t\t\tif (!willRenderMsaa) {\n\t\t\t\t\tif (!this._glDepthBuffer) {\n\t\t\t\t\t\tthis._glDepthBuffer = gl.createRenderbuffer();\n\t\t\t\t\t}\n\t\t\t\t\tgl.bindRenderbuffer(gl.RENDERBUFFER, this._glDepthBuffer);\n\t\t\t\t\tif (target._stencil) {\n\t\t\t\t\t\tgl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_STENCIL, target.width, target.height);\n\t\t\t\t\t\tgl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.RENDERBUFFER, this._glDepthBuffer);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst depthFormat = device.isWebGL2 ? gl.DEPTH_COMPONENT32F : gl.DEPTH_COMPONENT16;\n\t\t\t\t\t\tgl.renderbufferStorage(gl.RENDERBUFFER, depthFormat, target.width, target.height);\n\t\t\t\t\t\tgl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, this._glDepthBuffer);\n\t\t\t\t\t}\n\t\t\t\t\tgl.bindRenderbuffer(gl.RENDERBUFFER, null);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (device.isWebGL2 && target._samples > 1) {\n\t\t\tvar _target$_colorBuffers3, _target$_colorBuffers4;\n\t\t\tthis._glResolveFrameBuffer = this._glFrameBuffer;\n\t\t\tthis._glFrameBuffer = gl.createFramebuffer();\n\t\t\tdevice.setFramebuffer(this._glFrameBuffer);\n\t\t\tconst colorBufferCount = (_target$_colorBuffers3 = (_target$_colorBuffers4 = target._colorBuffers) == null ? void 0 : _target$_colorBuffers4.length) != null ? _target$_colorBuffers3 : 0;\n\t\t\tif (this.suppliedColorFramebuffer !== undefined) {\n\t\t\t\tconst buffer = gl.createRenderbuffer();\n\t\t\t\tthis._glMsaaColorBuffers.push(buffer);\n\t\t\t\tconst internalFormat = device.backBufferFormat === PIXELFORMAT_RGBA8 ? gl.RGBA8 : gl.RGB8;\n\t\t\t\tgl.bindRenderbuffer(gl.RENDERBUFFER, buffer);\n\t\t\t\tgl.renderbufferStorageMultisample(gl.RENDERBUFFER, target._samples, internalFormat, target.width, target.height);\n\t\t\t\tgl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, buffer);\n\t\t\t} else {\n\t\t\t\tfor (let i = 0; i < colorBufferCount; ++i) {\n\t\t\t\t\tconst colorBuffer = target.getColorBuffer(i);\n\t\t\t\t\tif (colorBuffer) {\n\t\t\t\t\t\tconst buffer = gl.createRenderbuffer();\n\t\t\t\t\t\tthis._glMsaaColorBuffers.push(buffer);\n\t\t\t\t\t\tgl.bindRenderbuffer(gl.RENDERBUFFER, buffer);\n\t\t\t\t\t\tgl.renderbufferStorageMultisample(gl.RENDERBUFFER, target._samples, colorBuffer.impl._glInternalFormat, target.width, target.height);\n\t\t\t\t\t\tgl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + i, gl.RENDERBUFFER, buffer);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (target._depth) {\n\t\t\t\tif (!this._glMsaaDepthBuffer) {\n\t\t\t\t\tthis._glMsaaDepthBuffer = gl.createRenderbuffer();\n\t\t\t\t}\n\t\t\t\tgl.bindRenderbuffer(gl.RENDERBUFFER, this._glMsaaDepthBuffer);\n\t\t\t\tif (target._stencil) {\n\t\t\t\t\tgl.renderbufferStorageMultisample(gl.RENDERBUFFER, target._samples, gl.DEPTH24_STENCIL8, target.width, target.height);\n\t\t\t\t\tgl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.RENDERBUFFER, this._glMsaaDepthBuffer);\n\t\t\t\t} else {\n\t\t\t\t\tgl.renderbufferStorageMultisample(gl.RENDERBUFFER, target._samples, gl.DEPTH_COMPONENT32F, target.width, target.height);\n\t\t\t\t\tgl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, this._glMsaaDepthBuffer);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (colorBufferCount > 1) {\n\t\t\t\tthis._createMsaaMrtFramebuffers(device, target, colorBufferCount);\n\t\t\t\tdevice.setFramebuffer(this._glFrameBuffer);\n\t\t\t\tdevice.drawBuffers(buffers);\n\t\t\t}\n\t\t}\n\t}\n\t_createMsaaMrtFramebuffers(device, target, colorBufferCount) {\n\t\tconst gl = device.gl;\n\t\tthis.colorMrtFramebuffers = [];\n\t\tfor (let i = 0; i < colorBufferCount; ++i) {\n\t\t\tconst colorBuffer = target.getColorBuffer(i);\n\t\t\tconst srcFramebuffer = gl.createFramebuffer();\n\t\t\tdevice.setFramebuffer(srcFramebuffer);\n\t\t\tconst buffer = this._glMsaaColorBuffers[i];\n\t\t\tgl.bindRenderbuffer(gl.RENDERBUFFER, buffer);\n\t\t\tgl.renderbufferStorageMultisample(gl.RENDERBUFFER, target._samples, colorBuffer.impl._glInternalFormat, target.width, target.height);\n\t\t\tgl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, buffer);\n\t\t\tdevice.drawBuffers([gl.COLOR_ATTACHMENT0]);\n\t\t\tconst dstFramebuffer = gl.createFramebuffer();\n\t\t\tdevice.setFramebuffer(dstFramebuffer);\n\t\t\tgl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, colorBuffer._cubemap ? gl.TEXTURE_CUBE_MAP_POSITIVE_X + target._face : gl.TEXTURE_2D, colorBuffer.impl._glTexture, 0);\n\t\t\tthis.colorMrtFramebuffers[i] = new FramebufferPair(srcFramebuffer, dstFramebuffer);\n\t\t}\n\t}\n\t_checkFbo(device, target, type = '') {\n\t\tconst gl = device.gl;\n\t\tconst status = gl.checkFramebufferStatus(gl.FRAMEBUFFER);\n\t\tswitch (status) {\n\t\t\tcase gl.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:\n\t\t\t\tbreak;\n\t\t\tcase gl.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:\n\t\t\t\tbreak;\n\t\t\tcase gl.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:\n\t\t\t\tbreak;\n\t\t\tcase gl.FRAMEBUFFER_UNSUPPORTED:\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tloseContext() {\n\t\tthis._glFrameBuffer = null;\n\t\tthis._glDepthBuffer = null;\n\t\tthis._glResolveFrameBuffer = null;\n\t\tthis._glMsaaColorBuffers.length = 0;\n\t\tthis._glMsaaDepthBuffer = null;\n\t\tthis.colorMrtFramebuffers = null;\n\t\tthis.suppliedColorFramebuffer = undefined;\n\t\tthis._isInitialized = false;\n\t}\n\tinternalResolve(device, src, dst, target, mask) {\n\t\tdevice.setScissor(0, 0, target.width, target.height);\n\t\tconst gl = device.gl;\n\t\tgl.bindFramebuffer(gl.READ_FRAMEBUFFER, src);\n\t\tgl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, dst);\n\t\tgl.blitFramebuffer(0, 0, target.width, target.height, 0, 0, target.width, target.height, mask, gl.NEAREST);\n\t}\n\tresolve(device, target, color, depth) {\n\t\tif (device.isWebGL2) {\n\t\t\tconst gl = device.gl;\n\t\t\tif (this.colorMrtFramebuffers) {\n\t\t\t\tif (color) {\n\t\t\t\t\tfor (let i = 0; i < this.colorMrtFramebuffers.length; i++) {\n\t\t\t\t\t\tconst fbPair = this.colorMrtFramebuffers[i];\n\t\t\t\t\t\tthis.internalResolve(device, fbPair.msaaFB, fbPair.resolveFB, target, gl.COLOR_BUFFER_BIT);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (depth) {\n\t\t\t\t\tthis.internalResolve(device, this._glFrameBuffer, this._glResolveFrameBuffer, target, gl.DEPTH_BUFFER_BIT);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.internalResolve(device, this._glFrameBuffer, this._glResolveFrameBuffer, target, (color ? gl.COLOR_BUFFER_BIT : 0) | (depth ? gl.DEPTH_BUFFER_BIT : 0));\n\t\t\t}\n\t\t\tgl.bindFramebuffer(gl.FRAMEBUFFER, this._glFrameBuffer);\n\t\t}\n\t}\n}\n\nvar gles2PS = `\n#define pcFragColor0 gl_FragData[0]\n#if COLOR_ATTACHMENT_1\n#define pcFragColor1 gl_FragData[1]\n#endif\n#if COLOR_ATTACHMENT_2\n#define pcFragColor2 gl_FragData[2]\n#endif\n#if COLOR_ATTACHMENT_3\n#define pcFragColor3 gl_FragData[3]\n#endif\n#if COLOR_ATTACHMENT_4\n#define pcFragColor4 gl_FragData[4]\n#endif\n#if COLOR_ATTACHMENT_5\n#define pcFragColor5 gl_FragData[5]\n#endif\n#if COLOR_ATTACHMENT_6\n#define pcFragColor6 gl_FragData[6]\n#endif\n#if COLOR_ATTACHMENT_7\n#define pcFragColor7 gl_FragData[7]\n#endif\n#define texture2DBias texture2D\n#define itexture2D texture2D\n#define utexture2D texture2D\n#define SHADOWMAP_PASS(name) name\n#define SHADOWMAP_ACCEPT(name) sampler2D name\n#define TEXTURE_PASS(name) name\n#define TEXTURE_ACCEPT(name) sampler2D name\n#define TEXTURE_ACCEPT_HIGHP(name) highp sampler2D name\n#ifndef SUPPORTS_TEXLOD\n\t#define texture2DLodEXT texture2D\n\t#define texture2DProjLodEXT textureProj\n\t#define textureCubeLodEXT textureCube\n\t#define textureShadow texture2D\n#else\n\t#define textureShadow(res, uv) texture2DGradEXT(res, uv, vec2(1, 1), vec2(1, 1))\n#endif\n#ifdef SUPPORTS_MRT\n\t#define gl_FragColor pcFragColor0\n#endif\n`;\n\nvar gles2VS = `\n#define TEXTURE_PASS(name) name\n#define TEXTURE_ACCEPT(name) sampler2D name\n#define TEXTURE_ACCEPT_HIGHP(name) highp sampler2D name\n`;\n\nvar gles3PS = `\n#ifndef outType_0\n#define outType_0 vec4\n#endif\nlayout(location = 0) out highp outType_0 pc_fragColor;\n#ifndef REMOVE_COLOR_ATTACHMENT_1\n#if COLOR_ATTACHMENT_1\nlayout(location = 1) out highp outType_1 pc_fragColor1;\n#endif\n#endif\n#ifndef REMOVE_COLOR_ATTACHMENT_2\n#if COLOR_ATTACHMENT_2\nlayout(location = 2) out highp outType_2 pc_fragColor2;\n#endif\n#endif\n#ifndef REMOVE_COLOR_ATTACHMENT_3\n#if COLOR_ATTACHMENT_3\nlayout(location = 3) out highp outType_3 pc_fragColor3;\n#endif\n#endif\n#ifndef REMOVE_COLOR_ATTACHMENT_4\n#if COLOR_ATTACHMENT_4\nlayout(location = 4) out highp outType_4 pc_fragColor4;\n#endif\n#endif\n#ifndef REMOVE_COLOR_ATTACHMENT_5\n#if COLOR_ATTACHMENT_5\nlayout(location = 5) out highp outType_5 pc_fragColor5;\n#endif\n#endif\n#ifndef REMOVE_COLOR_ATTACHMENT_6\n#if COLOR_ATTACHMENT_6\nlayout(location = 6) out highp outType_6 pc_fragColor6;\n#endif\n#endif\n#ifndef REMOVE_COLOR_ATTACHMENT_7\n#if COLOR_ATTACHMENT_7\nlayout(location = 7) out highp outType_7 pc_fragColor7;\n#endif\n#endif\n#define gl_FragColor pc_fragColor\n#define pcFragColor0 pc_fragColor\n#define pcFragColor1 pc_fragColor1\n#define pcFragColor2 pc_fragColor2\n#define pcFragColor3 pc_fragColor3\n#define pcFragColor4 pc_fragColor4\n#define pcFragColor5 pc_fragColor5\n#define pcFragColor6 pc_fragColor6\n#define pcFragColor7 pc_fragColor7\n#define varying in\n#define texture2D texture\n#define texture2DBias texture\n#define textureCube texture\n#define texture2DProj textureProj\n#define texture2DLodEXT textureLod\n#define texture2DProjLodEXT textureProjLod\n#define textureCubeLodEXT textureLod\n#define texture2DGradEXT textureGrad\n#define texture2DProjGradEXT textureProjGrad\n#define textureCubeGradEXT textureGrad\n#define utexture2D texture\n#define itexture2D texture\n#define textureShadow(res, uv) textureGrad(res, uv, vec2(1, 1), vec2(1, 1))\n#define SHADOWMAP_PASS(name) name\n#define SHADOWMAP_ACCEPT(name) sampler2DShadow name\n#define TEXTURE_PASS(name) name\n#define TEXTURE_ACCEPT(name) sampler2D name\n#define TEXTURE_ACCEPT_HIGHP(name) highp sampler2D name\n#define GL2\n#define SUPPORTS_TEXLOD\n#define SUPPORTS_MRT\n`;\n\nvar gles3VS = `\n#define attribute in\n#define varying out\n#define texture2D texture\n#define utexture2D texture\n#define itexture2D texture\n#define GL2\n#define VERTEXSHADER\n#define TEXTURE_PASS(name) name\n#define TEXTURE_ACCEPT(name) sampler2D name\n#define TEXTURE_ACCEPT_HIGHP(name) highp sampler2D name\n`;\n\nvar webgpuPS = `\n#extension GL_EXT_samplerless_texture_functions : require\n#ifndef outType_0\n#define outType_0 vec4\n#endif\n#ifndef outType_1\n#define outType_1 vec4\n#endif\n#ifndef outType_2\n#define outType_2 vec4\n#endif\n#ifndef outType_3\n#define outType_3 vec4\n#endif\n#ifndef outType_4\n#define outType_4 vec4\n#endif\n#ifndef outType_5\n#define outType_5 vec4\n#endif\n#ifndef outType_6\n#define outType_6 vec4\n#endif\n#ifndef outType_7\n#define outType_7 vec4\n#endif\nlayout(location = 0) out highp outType_0 pc_fragColor;\nlayout(location = 1) out highp outType_1 pc_fragColor1;\nlayout(location = 2) out highp outType_2 pc_fragColor2;\nlayout(location = 3) out highp outType_3 pc_fragColor3;\nlayout(location = 4) out highp outType_4 pc_fragColor4;\nlayout(location = 5) out highp outType_5 pc_fragColor5;\nlayout(location = 6) out highp outType_6 pc_fragColor6;\nlayout(location = 7) out highp outType_7 pc_fragColor7;\n#define gl_FragColor pc_fragColor\n#define pcFragColor0 pc_fragColor\n#define pcFragColor1 pc_fragColor1\n#define pcFragColor2 pc_fragColor2\n#define pcFragColor3 pc_fragColor3\n#define pcFragColor4 pc_fragColor4\n#define pcFragColor5 pc_fragColor5\n#define pcFragColor6 pc_fragColor6\n#define pcFragColor7 pc_fragColor7\n#define texture2D(res, uv) texture(sampler2D(res, res ## _sampler), uv)\n#define texture2DBias(res, uv, bias) texture(sampler2D(res, res ## _sampler), uv, bias)\n#define texture2DLodEXT(res, uv, lod) textureLod(sampler2D(res, res ## _sampler), uv, lod)\n#define textureCube(res, uv) texture(samplerCube(res, res ## _sampler), uv)\n#define textureCubeLodEXT(res, uv, lod) textureLod(samplerCube(res, res ## _sampler), uv, lod)\n#define textureShadow(res, uv) textureLod(sampler2DShadow(res, res ## _sampler), uv, 0.0)\n#define itexture2D(res, uv) texture(isampler2D(res, res ## _sampler), uv)\n#define utexture2D(res, uv) texture(usampler2D(res, res ## _sampler), uv)\n#define SHADOWMAP_PASS(name) name, name ## _sampler\n#define SHADOWMAP_ACCEPT(name) texture2D name, sampler name ## _sampler\n#define TEXTURE_PASS(name) name, name ## _sampler\n#define TEXTURE_ACCEPT(name) texture2D name, sampler name ## _sampler\n#define TEXTURE_ACCEPT_HIGHP TEXTURE_ACCEPT\n#define GL2\n#define WEBGPU\n#define SUPPORTS_TEXLOD\n#define SUPPORTS_MRT\n`;\n\nvar webgpuVS = `\n#extension GL_EXT_samplerless_texture_functions : require\n#define texture2D(res, uv) texture(sampler2D(res, res ## _sampler), uv)\n#define itexture2D(res, uv) texture(isampler2D(res, res ## _sampler), uv)\n#define utexture2D(res, uv) texture(usampler2D(res, res ## _sampler), uv)\n#define TEXTURE_PASS(name) name, name ## _sampler\n#define TEXTURE_ACCEPT(name) texture2D name, sampler name ## _sampler\n#define TEXTURE_ACCEPT_HIGHP TEXTURE_ACCEPT\n#define GL2\n#define WEBGPU\n#define VERTEXSHADER\n#define gl_VertexID gl_VertexIndex\n`;\n\nvar sharedFS = `\nvec2 getGrabScreenPos(vec4 clipPos) {\n\tvec2 uv = (clipPos.xy / clipPos.w) * 0.5 + 0.5;\n\t#ifdef WEBGPU\n\t\tuv.y = 1.0 - uv.y;\n\t#endif\n\treturn uv;\n}\nvec2 getImageEffectUV(vec2 uv) {\n\t#ifdef WEBGPU\n\t\tuv.y = 1.0 - uv.y;\n\t#endif\n\treturn uv;\n}\n`;\n\nconst _attrib2Semantic = {\n\tvertex_position: SEMANTIC_POSITION,\n\tvertex_normal: SEMANTIC_NORMAL,\n\tvertex_tangent: SEMANTIC_TANGENT,\n\tvertex_texCoord0: SEMANTIC_TEXCOORD0,\n\tvertex_texCoord1: SEMANTIC_TEXCOORD1,\n\tvertex_texCoord2: SEMANTIC_TEXCOORD2,\n\tvertex_texCoord3: SEMANTIC_TEXCOORD3,\n\tvertex_texCoord4: SEMANTIC_TEXCOORD4,\n\tvertex_texCoord5: SEMANTIC_TEXCOORD5,\n\tvertex_texCoord6: SEMANTIC_TEXCOORD6,\n\tvertex_texCoord7: SEMANTIC_TEXCOORD7,\n\tvertex_color: SEMANTIC_COLOR,\n\tvertex_boneIndices: SEMANTIC_BLENDINDICES,\n\tvertex_boneWeights: SEMANTIC_BLENDWEIGHT\n};\nclass ShaderUtils {\n\tstatic createDefinition(device, options) {\n\t\tvar _options$name, _options$attributes;\n\t\tconst getDefines = (gpu, gl2, gl1, isVertex, options) => {\n\t\t\tconst deviceIntro = device.isWebGPU ? gpu : device.isWebGL2 ? gl2 : ShaderUtils.gl1Extensions(device, options) + gl1;\n\t\t\tlet attachmentsDefine = '';\n\t\t\tif (!isVertex) {\n\t\t\t\tvar _options$fragmentOutp;\n\t\t\t\tlet fragmentOutputTypes = (_options$fragmentOutp = options.fragmentOutputTypes) != null ? _options$fragmentOutp : 'vec4';\n\t\t\t\tif (!Array.isArray(fragmentOutputTypes)) {\n\t\t\t\t\tfragmentOutputTypes = [fragmentOutputTypes];\n\t\t\t\t}\n\t\t\t\tfor (let i = 0; i < device.maxColorAttachments; i++) {\n\t\t\t\t\tvar _fragmentOutputTypes$;\n\t\t\t\t\tattachmentsDefine += `#define COLOR_ATTACHMENT_${i}\\n`;\n\t\t\t\t\tconst outType = (_fragmentOutputTypes$ = fragmentOutputTypes[i]) != null ? _fragmentOutputTypes$ : 'vec4';\n\t\t\t\t\tattachmentsDefine += `#define outType_${i} ${outType}\\n`;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn attachmentsDefine + deviceIntro;\n\t\t};\n\t\tconst name = (_options$name = options.name) != null ? _options$name : 'Untitled';\n\t\tconst vertCode = ShaderUtils.versionCode(device) + getDefines(webgpuVS, gles3VS, gles2VS, true, options) + ShaderUtils.getDefinesCode(options.vertexDefines) + sharedFS + ShaderUtils.getShaderNameCode(name) + options.vertexCode;\n\t\tconst fragCode = `${(options.fragmentPreamble || '') + ShaderUtils.versionCode(device) + getDefines(webgpuPS, gles3PS, gles2PS, false, options) + ShaderUtils.getDefinesCode(options.fragmentDefines) + ShaderUtils.precisionCode(device)}\\n${sharedFS}${ShaderUtils.getShaderNameCode(name)}${options.fragmentCode || ShaderUtils.dummyFragmentCode()}`;\n\t\tconst attribs = (_options$attributes = options.attributes) != null ? _options$attributes : ShaderUtils.collectAttributes(options.vertexCode);\n\t\treturn {\n\t\t\tname: name,\n\t\t\tattributes: attribs,\n\t\t\tvshader: vertCode,\n\t\t\tvincludes: options.vertexIncludes,\n\t\t\tfincludes: options.fragmentIncludes,\n\t\t\tfshader: fragCode,\n\t\t\tuseTransformFeedback: options.useTransformFeedback\n\t\t};\n\t}\n\tstatic getDefinesCode(defines) {\n\t\tlet code = '';\n\t\tdefines == null || defines.forEach((value, key) => {\n\t\t\tcode += `#define ${key} ${value}\\n`;\n\t\t});\n\t\treturn code;\n\t}\n\tstatic getShaderNameCode(name) {\n\t\treturn `#define SHADER_NAME ${name}\\n`;\n\t}\n\tstatic gl1Extensions(device, options, isVertex) {\n\t\tlet code;\n\t\tif (isVertex) {\n\t\t\tcode = options.vertexExtensions ? `${options.vertexExtensions}\\n` : '';\n\t\t} else {\n\t\t\tcode = options.fragmentExtensions ? `${options.fragmentExtensions}\\n` : '';\n\t\t\tif (device.extStandardDerivatives) {\n\t\t\t\tcode += '#extension GL_OES_standard_derivatives : enable\\n';\n\t\t\t}\n\t\t\tif (device.extTextureLod) {\n\t\t\t\tcode += '#extension GL_EXT_shader_texture_lod : enable\\n';\n\t\t\t\tcode += '#define SUPPORTS_TEXLOD\\n';\n\t\t\t}\n\t\t\tif (device.extDrawBuffers) {\n\t\t\t\tcode += '#extension GL_EXT_draw_buffers : require\\n';\n\t\t\t\tcode += '#define SUPPORTS_MRT\\n';\n\t\t\t}\n\t\t}\n\t\treturn code;\n\t}\n\tstatic dummyFragmentCode() {\n\t\treturn 'void main(void) {gl_FragColor = vec4(0.0);}';\n\t}\n\tstatic versionCode(device) {\n\t\tif (device.isWebGPU) {\n\t\t\treturn '#version 450\\n';\n\t\t}\n\t\treturn device.isWebGL2 ? '#version 300 es\\n' : '';\n\t}\n\tstatic precisionCode(device, forcePrecision) {\n\t\tlet code = '';\n\t\tif (forcePrecision && forcePrecision !== 'highp' && forcePrecision !== 'mediump' && forcePrecision !== 'lowp') {\n\t\t\tforcePrecision = null;\n\t\t}\n\t\tif (forcePrecision) {\n\t\t\tif (forcePrecision === 'highp' && device.maxPrecision !== 'highp') {\n\t\t\t\tforcePrecision = 'mediump';\n\t\t\t}\n\t\t\tif (forcePrecision === 'mediump' && device.maxPrecision === 'lowp') {\n\t\t\t\tforcePrecision = 'lowp';\n\t\t\t}\n\t\t}\n\t\tconst precision = forcePrecision ? forcePrecision : device.precision;\n\t\tif (!device.isWebGPU) {\n\t\t\tcode = `precision ${precision} float;\\nprecision ${precision} int;`;\n\t\t\tif (device.isWebGL2) {\n\t\t\t\tcode += `precision ${precision} sampler2DShadow;\\n`;\n\t\t\t}\n\t\t} else {\n\t\t\tcode = `precision ${precision} float;\\nprecision ${precision} int;\\n`;\n\t\t}\n\t\treturn code;\n\t}\n\tstatic collectAttributes(vsCode) {\n\t\tconst attribs = {};\n\t\tlet attrs = 0;\n\t\tlet found = vsCode.indexOf('attribute');\n\t\twhile (found >= 0) {\n\t\t\tif (found > 0 && vsCode[found - 1] === '/') break;\n\t\t\tconst endOfLine = vsCode.indexOf(';', found);\n\t\t\tconst startOfAttribName = vsCode.lastIndexOf(' ', endOfLine);\n\t\t\tconst attribName = vsCode.substring(startOfAttribName + 1, endOfLine);\n\t\t\tif (attribs[attribName]) ; else {\n\t\t\t\tconst semantic = _attrib2Semantic[attribName];\n\t\t\t\tif (semantic !== undefined) {\n\t\t\t\t\tattribs[attribName] = semantic;\n\t\t\t\t} else {\n\t\t\t\t\tattribs[attribName] = `ATTR${attrs}`;\n\t\t\t\t\tattrs++;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfound = vsCode.indexOf('attribute', found + 1);\n\t\t}\n\t\treturn attribs;\n\t}\n}\n\nclass FrameQueriesInfo {\n\tconstructor() {\n\t\tthis.renderVersion = void 0;\n\t\tthis.queries = [];\n\t}\n\tdestroy(gl) {\n\t\tthis.queries.forEach(query => gl.deleteQuery(query));\n\t\tthis.queries = null;\n\t}\n}\nclass WebglGpuProfiler extends GpuProfiler {\n\tconstructor(device) {\n\t\tsuper();\n\t\tthis.device = void 0;\n\t\tthis.freeQueries = [];\n\t\tthis.frameQueries = [];\n\t\tthis.previousFrameQueries = [];\n\t\tthis.timings = [];\n\t\tthis.device = device;\n\t\tthis.ext = device.extDisjointTimerQuery;\n\t}\n\tdestroy() {\n\t\tthis.freeQueries.forEach(query => this.device.gl.deleteQuery(query));\n\t\tthis.frameQueries.forEach(query => this.device.gl.deleteQuery(query));\n\t\tthis.previousFrameQueries.forEach(frameQueriesInfo => frameQueriesInfo.destroy(this.device.gl));\n\t\tthis.freeQueries = null;\n\t\tthis.frameQueries = null;\n\t\tthis.previousFrameQueries = null;\n\t}\n\tloseContext() {\n\t\tsuper.loseContext();\n\t\tthis.freeQueries = [];\n\t\tthis.frameQueries = [];\n\t\tthis.previousFrameQueries = [];\n\t}\n\trestoreContext() {\n\t\tthis.ext = this.device.extDisjointTimerQuery;\n\t}\n\tgetQuery() {\n\t\tvar _this$freeQueries$pop;\n\t\treturn (_this$freeQueries$pop = this.freeQueries.pop()) != null ? _this$freeQueries$pop : this.device.gl.createQuery();\n\t}\n\tstart(name) {\n\t\tif (this.ext) {\n\t\t\tconst slot = this.getSlot(name);\n\t\t\tconst query = this.getQuery();\n\t\t\tthis.frameQueries[slot] = query;\n\t\t\tthis.device.gl.beginQuery(this.ext.TIME_ELAPSED_EXT, query);\n\t\t\treturn slot;\n\t\t}\n\t\treturn undefined;\n\t}\n\tend(slot) {\n\t\tif (slot !== undefined) {\n\t\t\tthis.device.gl.endQuery(this.ext.TIME_ELAPSED_EXT);\n\t\t}\n\t}\n\tframeStart() {\n\t\tthis.processEnableRequest();\n\t\tif (this._enabled) {\n\t\t\tthis.frameGPUMarkerSlot = this.start('GpuFrame');\n\t\t}\n\t}\n\tframeEnd() {\n\t\tif (this._enabled) {\n\t\t\tthis.end(this.frameGPUMarkerSlot);\n\t\t}\n\t}\n\trequest() {\n\t\tif (this._enabled) {\n\t\t\tconst ext = this.ext;\n\t\t\tconst gl = this.device.gl;\n\t\t\tconst renderVersion = this.device.renderVersion;\n\t\t\tconst frameQueries = this.frameQueries;\n\t\t\tif (frameQueries.length > 0) {\n\t\t\t\tthis.frameQueries = [];\n\t\t\t\tconst frameQueriesInfo = new FrameQueriesInfo();\n\t\t\t\tframeQueriesInfo.queries = frameQueries;\n\t\t\t\tframeQueriesInfo.renderVersion = renderVersion;\n\t\t\t\tthis.previousFrameQueries.push(frameQueriesInfo);\n\t\t\t}\n\t\t\tif (this.previousFrameQueries.length > 0) {\n\t\t\t\tconst previousQueriesInfo = this.previousFrameQueries[0];\n\t\t\t\tconst previousQueries = previousQueriesInfo.queries;\n\t\t\t\tconst lastQuery = previousQueries[previousQueries.length - 1];\n\t\t\t\tconst available = gl.getQueryParameter(lastQuery, gl.QUERY_RESULT_AVAILABLE);\n\t\t\t\tconst disjoint = gl.getParameter(ext.GPU_DISJOINT_EXT);\n\t\t\t\tif (available && !disjoint) {\n\t\t\t\t\tthis.previousFrameQueries.shift();\n\t\t\t\t\tconst timings = this.timings;\n\t\t\t\t\ttimings.length = 0;\n\t\t\t\t\tfor (let i = 0; i < previousQueries.length; i++) {\n\t\t\t\t\t\tconst query = previousQueries[i];\n\t\t\t\t\t\tconst duration = gl.getQueryParameter(query, gl.QUERY_RESULT);\n\t\t\t\t\t\ttimings[i] = duration * 0.000001;\n\t\t\t\t\t\tthis.freeQueries.push(query);\n\t\t\t\t\t}\n\t\t\t\t\tthis.report(previousQueriesInfo.renderVersion, timings);\n\t\t\t\t}\n\t\t\t\tif (disjoint) {\n\t\t\t\t\tthis.previousFrameQueries.forEach(frameQueriesInfo => {\n\t\t\t\t\t\tthis.report(frameQueriesInfo.renderVersion, null);\n\t\t\t\t\t\tframeQueriesInfo.destroy(gl);\n\t\t\t\t\t});\n\t\t\t\t\tthis.previousFrameQueries.length = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\tsuper.request(renderVersion);\n\t\t}\n\t}\n}\n\nconst invalidateAttachments = [];\nconst _fullScreenQuadVS = `\nattribute vec2 vertex_position;\nvarying vec2 vUv0;\nvoid main(void)\n{\n\tgl_Position = vec4(vertex_position, 0.5, 1.0);\n\tvUv0 = vertex_position.xy*0.5+0.5;\n}\n`;\nconst _precisionTest1PS = `\nvoid main(void) { \n\tgl_FragColor = vec4(2147483648.0);\n}\n`;\nconst _precisionTest2PS = `\nuniform sampler2D source;\nvec4 packFloat(float depth) {\n\tconst vec4 bit_shift = vec4(256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0);\n\tconst vec4 bit_mask  = vec4(0.0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0);\n\tvec4 res = mod(depth * bit_shift * vec4(255), vec4(256) ) / vec4(255);\n\tres -= res.xxyz * bit_mask;\n\treturn res;\n}\nvoid main(void) {\n\tfloat c = texture2D(source, vec2(0.0)).r;\n\tfloat diff = abs(c - 2147483648.0) / 2147483648.0;\n\tgl_FragColor = packFloat(diff);\n}\n`;\nconst _outputTexture2D = `\nvarying vec2 vUv0;\nuniform sampler2D source;\nvoid main(void) {\n\tgl_FragColor = texture2D(source, vUv0);\n}\n`;\nfunction quadWithShader(device, target, shader) {\n\tconst oldRt = device.renderTarget;\n\tdevice.setRenderTarget(target);\n\tdevice.updateBegin();\n\tdevice.setCullMode(CULLFACE_NONE);\n\tdevice.setBlendState(BlendState.NOBLEND);\n\tdevice.setDepthState(DepthState.NODEPTH);\n\tdevice.setStencilState(null, null);\n\tdevice.setVertexBuffer(device.quadVertexBuffer, 0);\n\tdevice.setShader(shader);\n\tdevice.draw({\n\t\ttype: PRIMITIVE_TRISTRIP,\n\t\tbase: 0,\n\t\tcount: 4,\n\t\tindexed: false\n\t});\n\tdevice.updateEnd();\n\tdevice.setRenderTarget(oldRt);\n\tdevice.updateBegin();\n}\nfunction testRenderable(gl, pixelFormat) {\n\tlet result = true;\n\tconst texture = gl.createTexture();\n\tgl.bindTexture(gl.TEXTURE_2D, texture);\n\tgl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n\tgl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n\tgl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n\tgl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n\tgl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 2, 2, 0, gl.RGBA, pixelFormat, null);\n\tconst framebuffer = gl.createFramebuffer();\n\tgl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);\n\tgl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n\tif (gl.checkFramebufferStatus(gl.FRAMEBUFFER) !== gl.FRAMEBUFFER_COMPLETE) {\n\t\tresult = false;\n\t}\n\tgl.bindTexture(gl.TEXTURE_2D, null);\n\tgl.deleteTexture(texture);\n\tgl.bindFramebuffer(gl.FRAMEBUFFER, null);\n\tgl.deleteFramebuffer(framebuffer);\n\treturn result;\n}\nfunction testTextureHalfFloatUpdatable(gl, pixelFormat) {\n\tlet result = true;\n\tconst texture = gl.createTexture();\n\tgl.bindTexture(gl.TEXTURE_2D, texture);\n\tgl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n\tgl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n\tgl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n\tgl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n\tconst data = new Uint16Array(4 * 2 * 2);\n\tgl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 2, 2, 0, gl.RGBA, pixelFormat, data);\n\tif (gl.getError() !== gl.NO_ERROR) {\n\t\tresult = false;\n\t\tconsole.log('Above error related to HALF_FLOAT_OES can be ignored, it was triggered by testing half float texture support');\n\t}\n\tgl.bindTexture(gl.TEXTURE_2D, null);\n\tgl.deleteTexture(texture);\n\treturn result;\n}\nfunction testTextureFloatHighPrecision(device) {\n\tif (!device.textureFloatRenderable) {\n\t\treturn false;\n\t}\n\tconst shader1 = new Shader(device, ShaderUtils.createDefinition(device, {\n\t\tname: 'ptest1',\n\t\tvertexCode: _fullScreenQuadVS,\n\t\tfragmentCode: _precisionTest1PS\n\t}));\n\tconst shader2 = new Shader(device, ShaderUtils.createDefinition(device, {\n\t\tname: 'ptest2',\n\t\tvertexCode: _fullScreenQuadVS,\n\t\tfragmentCode: _precisionTest2PS\n\t}));\n\tconst textureOptions = {\n\t\tformat: PIXELFORMAT_RGBA32F,\n\t\twidth: 1,\n\t\theight: 1,\n\t\tmipmaps: false,\n\t\tminFilter: FILTER_NEAREST,\n\t\tmagFilter: FILTER_NEAREST,\n\t\tname: 'testFHP'\n\t};\n\tconst tex1 = new Texture(device, textureOptions);\n\tconst targ1 = new RenderTarget({\n\t\tcolorBuffer: tex1,\n\t\tdepth: false\n\t});\n\tquadWithShader(device, targ1, shader1);\n\ttextureOptions.format = PIXELFORMAT_RGBA8;\n\tconst tex2 = new Texture(device, textureOptions);\n\tconst targ2 = new RenderTarget({\n\t\tcolorBuffer: tex2,\n\t\tdepth: false\n\t});\n\tdevice.constantTexSource.setValue(tex1);\n\tquadWithShader(device, targ2, shader2);\n\tconst prevFramebuffer = device.activeFramebuffer;\n\tdevice.setFramebuffer(targ2.impl._glFrameBuffer);\n\tconst pixels = new Uint8Array(4);\n\tdevice.readPixels(0, 0, 1, 1, pixels);\n\tdevice.setFramebuffer(prevFramebuffer);\n\tconst x = pixels[0] / 255;\n\tconst y = pixels[1] / 255;\n\tconst z = pixels[2] / 255;\n\tconst w = pixels[3] / 255;\n\tconst f = x / (256 * 256 * 256) + y / (256 * 256) + z / 256 + w;\n\ttex1.destroy();\n\ttarg1.destroy();\n\ttex2.destroy();\n\ttarg2.destroy();\n\tshader1.destroy();\n\tshader2.destroy();\n\treturn f === 0;\n}\nclass WebglGraphicsDevice extends GraphicsDevice {\n\tconstructor(canvas, options = {}) {\n\t\tvar _options$antialias;\n\t\tsuper(canvas, options);\n\t\tthis.gl = void 0;\n\t\tthis._defaultFramebuffer = null;\n\t\tthis._defaultFramebufferChanged = false;\n\t\toptions = this.initOptions;\n\t\tthis.updateClientRect();\n\t\tthis.initTextureUnits();\n\t\tthis.contextLost = false;\n\t\tthis._contextLostHandler = event => {\n\t\t\tevent.preventDefault();\n\t\t\tthis.loseContext();\n\t\t\tthis.fire('devicelost');\n\t\t};\n\t\tthis._contextRestoredHandler = () => {\n\t\t\tthis.restoreContext();\n\t\t\tthis.fire('devicerestored');\n\t\t};\n\t\tconst ua = typeof navigator !== 'undefined' && navigator.userAgent;\n\t\tthis.forceDisableMultisampling = ua && ua.includes('AppleWebKit') && (ua.includes('15.4') || ua.includes('15_4'));\n\t\tif (this.forceDisableMultisampling) {\n\t\t\toptions.antialias = false;\n\t\t}\n\t\tif (platform.browserName === 'firefox') {\n\t\t\tconst _ua = typeof navigator !== 'undefined' ? navigator.userAgent : '';\n\t\t\tconst match = _ua.match(/Firefox\\/(\\d+(\\.\\d+)*)/);\n\t\t\tconst firefoxVersion = match ? match[1] : null;\n\t\t\tif (firefoxVersion) {\n\t\t\t\tconst version = parseFloat(firefoxVersion);\n\t\t\t\tconst disableAntialias = platform.name === 'windows' && (version >= 120 || version === 115) || platform.name === 'android' && version >= 132;\n\t\t\t\tif (disableAntialias) {\n\t\t\t\t\toptions.antialias = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tlet gl = null;\n\t\tthis.backBufferAntialias = (_options$antialias = options.antialias) != null ? _options$antialias : false;\n\t\toptions.antialias = false;\n\t\tif (options.gl) {\n\t\t\tgl = options.gl;\n\t\t} else {\n\t\t\tconst preferWebGl2 = options.preferWebGl2 !== undefined ? options.preferWebGl2 : true;\n\t\t\tconst names = preferWebGl2 ? ['webgl2', 'webgl', 'experimental-webgl'] : ['webgl', 'experimental-webgl'];\n\t\t\tfor (let i = 0; i < names.length; i++) {\n\t\t\t\tgl = canvas.getContext(names[i], options);\n\t\t\t\tif (gl) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (!gl) {\n\t\t\tthrow new Error('WebGL not supported');\n\t\t}\n\t\tthis.gl = gl;\n\t\tthis.isWebGL2 = typeof WebGL2RenderingContext !== 'undefined' && gl instanceof WebGL2RenderingContext;\n\t\tthis.isWebGL1 = !this.isWebGL2;\n\t\tthis._deviceType = this.isWebGL2 ? DEVICETYPE_WEBGL2 : DEVICETYPE_WEBGL1;\n\t\tthis.updateBackbufferFormat(null);\n\t\tconst isChrome = platform.browserName === 'chrome';\n\t\tconst isSafari = platform.browserName === 'safari';\n\t\tconst isMac = platform.browser && navigator.appVersion.indexOf('Mac') !== -1;\n\t\tthis._tempEnableSafariTextureUnitWorkaround = isSafari;\n\t\tthis._tempMacChromeBlitFramebufferWorkaround = isMac && isChrome && !options.alpha;\n\t\tcanvas.addEventListener('webglcontextlost', this._contextLostHandler, false);\n\t\tcanvas.addEventListener('webglcontextrestored', this._contextRestoredHandler, false);\n\t\tthis.initializeExtensions();\n\t\tthis.initializeCapabilities();\n\t\tthis.initializeRenderState();\n\t\tthis.initializeContextCaches();\n\t\tthis.createBackbuffer(null);\n\t\tthis.supportsImageBitmap = !isSafari && typeof ImageBitmap !== 'undefined';\n\t\tthis._samplerTypes = new Set([...[gl.SAMPLER_2D, gl.SAMPLER_CUBE], ...(this.isWebGL2 ? [gl.UNSIGNED_INT_SAMPLER_2D, gl.INT_SAMPLER_2D, gl.SAMPLER_2D_SHADOW, gl.SAMPLER_CUBE_SHADOW, gl.SAMPLER_3D, gl.INT_SAMPLER_3D, gl.UNSIGNED_INT_SAMPLER_3D, gl.SAMPLER_2D_ARRAY, gl.INT_SAMPLER_2D_ARRAY, gl.UNSIGNED_INT_SAMPLER_2D_ARRAY] : [])]);\n\t\tthis.glAddress = [gl.REPEAT, gl.CLAMP_TO_EDGE, gl.MIRRORED_REPEAT];\n\t\tthis.glBlendEquation = [gl.FUNC_ADD, gl.FUNC_SUBTRACT, gl.FUNC_REVERSE_SUBTRACT, this.isWebGL2 ? gl.MIN : this.extBlendMinmax ? this.extBlendMinmax.MIN_EXT : gl.FUNC_ADD, this.isWebGL2 ? gl.MAX : this.extBlendMinmax ? this.extBlendMinmax.MAX_EXT : gl.FUNC_ADD];\n\t\tthis.glBlendFunctionColor = [gl.ZERO, gl.ONE, gl.SRC_COLOR, gl.ONE_MINUS_SRC_COLOR, gl.DST_COLOR, gl.ONE_MINUS_DST_COLOR, gl.SRC_ALPHA, gl.SRC_ALPHA_SATURATE, gl.ONE_MINUS_SRC_ALPHA, gl.DST_ALPHA, gl.ONE_MINUS_DST_ALPHA, gl.CONSTANT_COLOR, gl.ONE_MINUS_CONSTANT_COLOR];\n\t\tthis.glBlendFunctionAlpha = [gl.ZERO, gl.ONE, gl.SRC_COLOR, gl.ONE_MINUS_SRC_COLOR, gl.DST_COLOR, gl.ONE_MINUS_DST_COLOR, gl.SRC_ALPHA, gl.SRC_ALPHA_SATURATE, gl.ONE_MINUS_SRC_ALPHA, gl.DST_ALPHA, gl.ONE_MINUS_DST_ALPHA, gl.CONSTANT_ALPHA, gl.ONE_MINUS_CONSTANT_ALPHA];\n\t\tthis.glComparison = [gl.NEVER, gl.LESS, gl.EQUAL, gl.LEQUAL, gl.GREATER, gl.NOTEQUAL, gl.GEQUAL, gl.ALWAYS];\n\t\tthis.glStencilOp = [gl.KEEP, gl.ZERO, gl.REPLACE, gl.INCR, gl.INCR_WRAP, gl.DECR, gl.DECR_WRAP, gl.INVERT];\n\t\tthis.glClearFlag = [0, gl.COLOR_BUFFER_BIT, gl.DEPTH_BUFFER_BIT, gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT, gl.STENCIL_BUFFER_BIT, gl.STENCIL_BUFFER_BIT | gl.COLOR_BUFFER_BIT, gl.STENCIL_BUFFER_BIT | gl.DEPTH_BUFFER_BIT, gl.STENCIL_BUFFER_BIT | gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT];\n\t\tthis.glCull = [0, gl.BACK, gl.FRONT, gl.FRONT_AND_BACK];\n\t\tthis.glFilter = [gl.NEAREST, gl.LINEAR, gl.NEAREST_MIPMAP_NEAREST, gl.NEAREST_MIPMAP_LINEAR, gl.LINEAR_MIPMAP_NEAREST, gl.LINEAR_MIPMAP_LINEAR];\n\t\tthis.glPrimitive = [gl.POINTS, gl.LINES, gl.LINE_LOOP, gl.LINE_STRIP, gl.TRIANGLES, gl.TRIANGLE_STRIP, gl.TRIANGLE_FAN];\n\t\tthis.glType = [gl.BYTE, gl.UNSIGNED_BYTE, gl.SHORT, gl.UNSIGNED_SHORT, gl.INT, gl.UNSIGNED_INT, gl.FLOAT, gl.HALF_FLOAT];\n\t\tthis.pcUniformType = {};\n\t\tthis.pcUniformType[gl.BOOL] = UNIFORMTYPE_BOOL;\n\t\tthis.pcUniformType[gl.INT] = UNIFORMTYPE_INT;\n\t\tthis.pcUniformType[gl.FLOAT] = UNIFORMTYPE_FLOAT;\n\t\tthis.pcUniformType[gl.FLOAT_VEC2] = UNIFORMTYPE_VEC2;\n\t\tthis.pcUniformType[gl.FLOAT_VEC3] = UNIFORMTYPE_VEC3;\n\t\tthis.pcUniformType[gl.FLOAT_VEC4] = UNIFORMTYPE_VEC4;\n\t\tthis.pcUniformType[gl.INT_VEC2] = UNIFORMTYPE_IVEC2;\n\t\tthis.pcUniformType[gl.INT_VEC3] = UNIFORMTYPE_IVEC3;\n\t\tthis.pcUniformType[gl.INT_VEC4] = UNIFORMTYPE_IVEC4;\n\t\tthis.pcUniformType[gl.BOOL_VEC2] = UNIFORMTYPE_BVEC2;\n\t\tthis.pcUniformType[gl.BOOL_VEC3] = UNIFORMTYPE_BVEC3;\n\t\tthis.pcUniformType[gl.BOOL_VEC4] = UNIFORMTYPE_BVEC4;\n\t\tthis.pcUniformType[gl.FLOAT_MAT2] = UNIFORMTYPE_MAT2;\n\t\tthis.pcUniformType[gl.FLOAT_MAT3] = UNIFORMTYPE_MAT3;\n\t\tthis.pcUniformType[gl.FLOAT_MAT4] = UNIFORMTYPE_MAT4;\n\t\tthis.pcUniformType[gl.SAMPLER_2D] = UNIFORMTYPE_TEXTURE2D;\n\t\tthis.pcUniformType[gl.SAMPLER_CUBE] = UNIFORMTYPE_TEXTURECUBE;\n\t\tthis.pcUniformType[gl.UNSIGNED_INT] = UNIFORMTYPE_UINT;\n\t\tthis.pcUniformType[gl.UNSIGNED_INT_VEC2] = UNIFORMTYPE_UVEC2;\n\t\tthis.pcUniformType[gl.UNSIGNED_INT_VEC3] = UNIFORMTYPE_UVEC3;\n\t\tthis.pcUniformType[gl.UNSIGNED_INT_VEC4] = UNIFORMTYPE_UVEC4;\n\t\tif (this.isWebGL2) {\n\t\t\tthis.pcUniformType[gl.SAMPLER_2D_SHADOW] = UNIFORMTYPE_TEXTURE2D_SHADOW;\n\t\t\tthis.pcUniformType[gl.SAMPLER_CUBE_SHADOW] = UNIFORMTYPE_TEXTURECUBE_SHADOW;\n\t\t\tthis.pcUniformType[gl.SAMPLER_2D_ARRAY] = UNIFORMTYPE_TEXTURE2D_ARRAY;\n\t\t\tthis.pcUniformType[gl.SAMPLER_3D] = UNIFORMTYPE_TEXTURE3D;\n\t\t\tthis.pcUniformType[gl.INT_SAMPLER_2D] = UNIFORMTYPE_ITEXTURE2D;\n\t\t\tthis.pcUniformType[gl.UNSIGNED_INT_SAMPLER_2D] = UNIFORMTYPE_UTEXTURE2D;\n\t\t\tthis.pcUniformType[gl.INT_SAMPLER_CUBE] = UNIFORMTYPE_ITEXTURECUBE;\n\t\t\tthis.pcUniformType[gl.UNSIGNED_INT_SAMPLER_2D] = UNIFORMTYPE_UTEXTURECUBE;\n\t\t\tthis.pcUniformType[gl.INT_SAMPLER_3D] = UNIFORMTYPE_ITEXTURE3D;\n\t\t\tthis.pcUniformType[gl.UNSIGNED_INT_SAMPLER_3D] = UNIFORMTYPE_UTEXTURE3D;\n\t\t\tthis.pcUniformType[gl.INT_SAMPLER_2D_ARRAY] = UNIFORMTYPE_ITEXTURE2D_ARRAY;\n\t\t\tthis.pcUniformType[gl.UNSIGNED_INT_SAMPLER_2D_ARRAY] = UNIFORMTYPE_UTEXTURE2D_ARRAY;\n\t\t}\n\t\tthis.targetToSlot = {};\n\t\tthis.targetToSlot[gl.TEXTURE_2D] = 0;\n\t\tthis.targetToSlot[gl.TEXTURE_CUBE_MAP] = 1;\n\t\tthis.targetToSlot[gl.TEXTURE_3D] = 2;\n\t\tlet scopeX, scopeY, scopeZ, scopeW;\n\t\tlet uniformValue;\n\t\tthis.commitFunction = [];\n\t\tthis.commitFunction[UNIFORMTYPE_BOOL] = function (uniform, value) {\n\t\t\tif (uniform.value !== value) {\n\t\t\t\tgl.uniform1i(uniform.locationId, value);\n\t\t\t\tuniform.value = value;\n\t\t\t}\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_INT] = this.commitFunction[UNIFORMTYPE_BOOL];\n\t\tthis.commitFunction[UNIFORMTYPE_FLOAT] = function (uniform, value) {\n\t\t\tif (uniform.value !== value) {\n\t\t\t\tgl.uniform1f(uniform.locationId, value);\n\t\t\t\tuniform.value = value;\n\t\t\t}\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_VEC2] = function (uniform, value) {\n\t\t\tuniformValue = uniform.value;\n\t\t\tscopeX = value[0];\n\t\t\tscopeY = value[1];\n\t\t\tif (uniformValue[0] !== scopeX || uniformValue[1] !== scopeY) {\n\t\t\t\tgl.uniform2fv(uniform.locationId, value);\n\t\t\t\tuniformValue[0] = scopeX;\n\t\t\t\tuniformValue[1] = scopeY;\n\t\t\t}\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_VEC3] = function (uniform, value) {\n\t\t\tuniformValue = uniform.value;\n\t\t\tscopeX = value[0];\n\t\t\tscopeY = value[1];\n\t\t\tscopeZ = value[2];\n\t\t\tif (uniformValue[0] !== scopeX || uniformValue[1] !== scopeY || uniformValue[2] !== scopeZ) {\n\t\t\t\tgl.uniform3fv(uniform.locationId, value);\n\t\t\t\tuniformValue[0] = scopeX;\n\t\t\t\tuniformValue[1] = scopeY;\n\t\t\t\tuniformValue[2] = scopeZ;\n\t\t\t}\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_VEC4] = function (uniform, value) {\n\t\t\tuniformValue = uniform.value;\n\t\t\tscopeX = value[0];\n\t\t\tscopeY = value[1];\n\t\t\tscopeZ = value[2];\n\t\t\tscopeW = value[3];\n\t\t\tif (uniformValue[0] !== scopeX || uniformValue[1] !== scopeY || uniformValue[2] !== scopeZ || uniformValue[3] !== scopeW) {\n\t\t\t\tgl.uniform4fv(uniform.locationId, value);\n\t\t\t\tuniformValue[0] = scopeX;\n\t\t\t\tuniformValue[1] = scopeY;\n\t\t\t\tuniformValue[2] = scopeZ;\n\t\t\t\tuniformValue[3] = scopeW;\n\t\t\t}\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_IVEC2] = function (uniform, value) {\n\t\t\tuniformValue = uniform.value;\n\t\t\tscopeX = value[0];\n\t\t\tscopeY = value[1];\n\t\t\tif (uniformValue[0] !== scopeX || uniformValue[1] !== scopeY) {\n\t\t\t\tgl.uniform2iv(uniform.locationId, value);\n\t\t\t\tuniformValue[0] = scopeX;\n\t\t\t\tuniformValue[1] = scopeY;\n\t\t\t}\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_BVEC2] = this.commitFunction[UNIFORMTYPE_IVEC2];\n\t\tthis.commitFunction[UNIFORMTYPE_IVEC3] = function (uniform, value) {\n\t\t\tuniformValue = uniform.value;\n\t\t\tscopeX = value[0];\n\t\t\tscopeY = value[1];\n\t\t\tscopeZ = value[2];\n\t\t\tif (uniformValue[0] !== scopeX || uniformValue[1] !== scopeY || uniformValue[2] !== scopeZ) {\n\t\t\t\tgl.uniform3iv(uniform.locationId, value);\n\t\t\t\tuniformValue[0] = scopeX;\n\t\t\t\tuniformValue[1] = scopeY;\n\t\t\t\tuniformValue[2] = scopeZ;\n\t\t\t}\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_BVEC3] = this.commitFunction[UNIFORMTYPE_IVEC3];\n\t\tthis.commitFunction[UNIFORMTYPE_IVEC4] = function (uniform, value) {\n\t\t\tuniformValue = uniform.value;\n\t\t\tscopeX = value[0];\n\t\t\tscopeY = value[1];\n\t\t\tscopeZ = value[2];\n\t\t\tscopeW = value[3];\n\t\t\tif (uniformValue[0] !== scopeX || uniformValue[1] !== scopeY || uniformValue[2] !== scopeZ || uniformValue[3] !== scopeW) {\n\t\t\t\tgl.uniform4iv(uniform.locationId, value);\n\t\t\t\tuniformValue[0] = scopeX;\n\t\t\t\tuniformValue[1] = scopeY;\n\t\t\t\tuniformValue[2] = scopeZ;\n\t\t\t\tuniformValue[3] = scopeW;\n\t\t\t}\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_BVEC4] = this.commitFunction[UNIFORMTYPE_IVEC4];\n\t\tthis.commitFunction[UNIFORMTYPE_MAT2] = function (uniform, value) {\n\t\t\tgl.uniformMatrix2fv(uniform.locationId, false, value);\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_MAT3] = function (uniform, value) {\n\t\t\tgl.uniformMatrix3fv(uniform.locationId, false, value);\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_MAT4] = function (uniform, value) {\n\t\t\tgl.uniformMatrix4fv(uniform.locationId, false, value);\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_FLOATARRAY] = function (uniform, value) {\n\t\t\tgl.uniform1fv(uniform.locationId, value);\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_VEC2ARRAY] = function (uniform, value) {\n\t\t\tgl.uniform2fv(uniform.locationId, value);\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_VEC3ARRAY] = function (uniform, value) {\n\t\t\tgl.uniform3fv(uniform.locationId, value);\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_VEC4ARRAY] = function (uniform, value) {\n\t\t\tgl.uniform4fv(uniform.locationId, value);\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_UINT] = function (uniform, value) {\n\t\t\tif (uniform.value !== value) {\n\t\t\t\tgl.uniform1ui(uniform.locationId, value);\n\t\t\t\tuniform.value = value;\n\t\t\t}\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_UVEC2] = function (uniform, value) {\n\t\t\tuniformValue = uniform.value;\n\t\t\tscopeX = value[0];\n\t\t\tscopeY = value[1];\n\t\t\tif (uniformValue[0] !== scopeX || uniformValue[1] !== scopeY) {\n\t\t\t\tgl.uniform2uiv(uniform.locationId, value);\n\t\t\t\tuniformValue[0] = scopeX;\n\t\t\t\tuniformValue[1] = scopeY;\n\t\t\t}\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_UVEC3] = function (uniform, value) {\n\t\t\tuniformValue = uniform.value;\n\t\t\tscopeX = value[0];\n\t\t\tscopeY = value[1];\n\t\t\tscopeZ = value[2];\n\t\t\tif (uniformValue[0] !== scopeX || uniformValue[1] !== scopeY || uniformValue[2] !== scopeZ) {\n\t\t\t\tgl.uniform3uiv(uniform.locationId, value);\n\t\t\t\tuniformValue[0] = scopeX;\n\t\t\t\tuniformValue[1] = scopeY;\n\t\t\t\tuniformValue[2] = scopeZ;\n\t\t\t}\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_UVEC4] = function (uniform, value) {\n\t\t\tuniformValue = uniform.value;\n\t\t\tscopeX = value[0];\n\t\t\tscopeY = value[1];\n\t\t\tscopeZ = value[2];\n\t\t\tscopeW = value[3];\n\t\t\tif (uniformValue[0] !== scopeX || uniformValue[1] !== scopeY || uniformValue[2] !== scopeZ || uniformValue[3] !== scopeW) {\n\t\t\t\tgl.uniform4uiv(uniform.locationId, value);\n\t\t\t\tuniformValue[0] = scopeX;\n\t\t\t\tuniformValue[1] = scopeY;\n\t\t\t\tuniformValue[2] = scopeZ;\n\t\t\t\tuniformValue[3] = scopeW;\n\t\t\t}\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_INTARRAY] = function (uniform, value) {\n\t\t\tgl.uniform1iv(uniform.locationId, value);\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_UINTARRAY] = function (uniform, value) {\n\t\t\tgl.uniform1uiv(uniform.locationId, value);\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_BOOLARRAY] = this.commitFunction[UNIFORMTYPE_INTARRAY];\n\t\tthis.commitFunction[UNIFORMTYPE_IVEC2ARRAY] = function (uniform, value) {\n\t\t\tgl.uniform2iv(uniform.locationId, value);\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_UVEC2ARRAY] = function (uniform, value) {\n\t\t\tgl.uniform2uiv(uniform.locationId, value);\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_BVEC2ARRAY] = this.commitFunction[UNIFORMTYPE_IVEC2ARRAY];\n\t\tthis.commitFunction[UNIFORMTYPE_IVEC3ARRAY] = function (uniform, value) {\n\t\t\tgl.uniform3iv(uniform.locationId, value);\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_UVEC3ARRAY] = function (uniform, value) {\n\t\t\tgl.uniform3uiv(uniform.locationId, value);\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_BVEC3ARRAY] = this.commitFunction[UNIFORMTYPE_IVEC3ARRAY];\n\t\tthis.commitFunction[UNIFORMTYPE_IVEC4ARRAY] = function (uniform, value) {\n\t\t\tgl.uniform4iv(uniform.locationId, value);\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_UVEC4ARRAY] = function (uniform, value) {\n\t\t\tgl.uniform4uiv(uniform.locationId, value);\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_BVEC4ARRAY] = this.commitFunction[UNIFORMTYPE_IVEC4ARRAY];\n\t\tthis.commitFunction[UNIFORMTYPE_MAT4ARRAY] = function (uniform, value) {\n\t\t\tgl.uniformMatrix4fv(uniform.locationId, false, value);\n\t\t};\n\t\tthis.supportsBoneTextures = this.extTextureFloat && this.maxVertexTextures > 0;\n\t\tlet numUniforms = this.vertexUniformsCount;\n\t\tnumUniforms -= 4 * 4;\n\t\tnumUniforms -= 8;\n\t\tnumUniforms -= 1;\n\t\tnumUniforms -= 4 * 4;\n\t\tthis.boneLimit = Math.floor(numUniforms / 3);\n\t\tthis.boneLimit = Math.min(this.boneLimit, 128);\n\t\tthis.constantTexSource = this.scope.resolve('source');\n\t\tif (this.extTextureFloat) {\n\t\t\tif (this.isWebGL2) {\n\t\t\t\tthis.textureFloatRenderable = !!this.extColorBufferFloat;\n\t\t\t} else {\n\t\t\t\tthis.textureFloatRenderable = testRenderable(gl, gl.FLOAT);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.textureFloatRenderable = false;\n\t\t}\n\t\tif (this.extColorBufferHalfFloat) {\n\t\t\tthis.textureHalfFloatRenderable = !!this.extColorBufferHalfFloat;\n\t\t} else if (this.extTextureHalfFloat) {\n\t\t\tif (this.isWebGL2) {\n\t\t\t\tthis.textureHalfFloatRenderable = !!this.extColorBufferFloat;\n\t\t\t} else {\n\t\t\t\tthis.textureHalfFloatRenderable = testRenderable(gl, this.extTextureHalfFloat.HALF_FLOAT_OES);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.textureHalfFloatRenderable = false;\n\t\t}\n\t\tthis.supportsMorphTargetTexturesCore = this.maxPrecision === 'highp' && this.maxVertexTextures >= 2;\n\t\tthis.supportsDepthShadow = this.isWebGL2;\n\t\tthis._textureFloatHighPrecision = undefined;\n\t\tthis._textureHalfFloatUpdatable = undefined;\n\t\tthis.areaLightLutFormat = PIXELFORMAT_RGBA8;\n\t\tif (this.extTextureHalfFloat && this.textureHalfFloatUpdatable && this.extTextureHalfFloatLinear) {\n\t\t\tthis.areaLightLutFormat = PIXELFORMAT_RGBA16F;\n\t\t} else if (this.extTextureFloat && this.extTextureFloatLinear) {\n\t\t\tthis.areaLightLutFormat = PIXELFORMAT_RGBA32F;\n\t\t}\n\t\tthis.postInit();\n\t}\n\tpostInit() {\n\t\tsuper.postInit();\n\t\tthis.gpuProfiler = new WebglGpuProfiler(this);\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tconst gl = this.gl;\n\t\tif (this.isWebGL2 && this.feedback) {\n\t\t\tgl.deleteTransformFeedback(this.feedback);\n\t\t}\n\t\tthis.clearVertexArrayObjectCache();\n\t\tthis.canvas.removeEventListener('webglcontextlost', this._contextLostHandler, false);\n\t\tthis.canvas.removeEventListener('webglcontextrestored', this._contextRestoredHandler, false);\n\t\tthis._contextLostHandler = null;\n\t\tthis._contextRestoredHandler = null;\n\t\tthis.gl = null;\n\t\tsuper.postDestroy();\n\t}\n\tcreateBackbuffer(frameBuffer) {\n\t\tthis.supportsStencil = this.initOptions.stencil;\n\t\tthis.backBuffer = new RenderTarget({\n\t\t\tname: 'WebglFramebuffer',\n\t\t\tgraphicsDevice: this,\n\t\t\tdepth: this.initOptions.depth,\n\t\t\tstencil: this.supportsStencil,\n\t\t\tsamples: this.samples\n\t\t});\n\t\tthis.backBuffer.impl.suppliedColorFramebuffer = frameBuffer;\n\t}\n\tupdateBackbufferFormat(framebuffer) {\n\t\tconst gl = this.gl;\n\t\tgl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);\n\t\tconst alphaBits = this.gl.getParameter(this.gl.ALPHA_BITS);\n\t\tthis.backBufferFormat = alphaBits ? PIXELFORMAT_RGBA8 : PIXELFORMAT_RGB8;\n\t}\n\tupdateBackbuffer() {\n\t\tconst resolutionChanged = this.canvas.width !== this.backBufferSize.x || this.canvas.height !== this.backBufferSize.y;\n\t\tif (this._defaultFramebufferChanged || resolutionChanged) {\n\t\t\tif (this._defaultFramebufferChanged) {\n\t\t\t\tthis.updateBackbufferFormat(this._defaultFramebuffer);\n\t\t\t}\n\t\t\tthis._defaultFramebufferChanged = false;\n\t\t\tthis.backBufferSize.set(this.canvas.width, this.canvas.height);\n\t\t\tthis.backBuffer.destroy();\n\t\t\tthis.createBackbuffer(this._defaultFramebuffer);\n\t\t}\n\t}\n\tcreateVertexBufferImpl(vertexBuffer, format) {\n\t\treturn new WebglVertexBuffer();\n\t}\n\tcreateIndexBufferImpl(indexBuffer) {\n\t\treturn new WebglIndexBuffer(indexBuffer);\n\t}\n\tcreateShaderImpl(shader) {\n\t\treturn new WebglShader(shader);\n\t}\n\tcreateTextureImpl(texture) {\n\t\treturn new WebglTexture();\n\t}\n\tcreateRenderTargetImpl(renderTarget) {\n\t\treturn new WebglRenderTarget();\n\t}\n\tgetPrecision() {\n\t\tconst gl = this.gl;\n\t\tlet precision = 'highp';\n\t\tif (gl.getShaderPrecisionFormat) {\n\t\t\tconst vertexShaderPrecisionHighpFloat = gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.HIGH_FLOAT);\n\t\t\tconst vertexShaderPrecisionMediumpFloat = gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.MEDIUM_FLOAT);\n\t\t\tconst fragmentShaderPrecisionHighpFloat = gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_FLOAT);\n\t\t\tconst fragmentShaderPrecisionMediumpFloat = gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.MEDIUM_FLOAT);\n\t\t\tif (vertexShaderPrecisionHighpFloat && vertexShaderPrecisionMediumpFloat && fragmentShaderPrecisionHighpFloat && fragmentShaderPrecisionMediumpFloat) {\n\t\t\t\tconst highpAvailable = vertexShaderPrecisionHighpFloat.precision > 0 && fragmentShaderPrecisionHighpFloat.precision > 0;\n\t\t\t\tconst mediumpAvailable = vertexShaderPrecisionMediumpFloat.precision > 0 && fragmentShaderPrecisionMediumpFloat.precision > 0;\n\t\t\t\tif (!highpAvailable) {\n\t\t\t\t\tif (mediumpAvailable) {\n\t\t\t\t\t\tprecision = 'mediump';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tprecision = 'lowp';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn precision;\n\t}\n\tgetExtension() {\n\t\tfor (let i = 0; i < arguments.length; i++) {\n\t\t\tif (this.supportedExtensions.indexOf(arguments[i]) !== -1) {\n\t\t\t\treturn this.gl.getExtension(arguments[i]);\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\tget extDisjointTimerQuery() {\n\t\tif (!this._extDisjointTimerQuery) {\n\t\t\tif (this.isWebGL2) {\n\t\t\t\tthis._extDisjointTimerQuery = this.getExtension('EXT_disjoint_timer_query_webgl2', 'EXT_disjoint_timer_query');\n\t\t\t}\n\t\t}\n\t\treturn this._extDisjointTimerQuery;\n\t}\n\tinitializeExtensions() {\n\t\tvar _gl$getSupportedExten;\n\t\tconst gl = this.gl;\n\t\tthis.supportedExtensions = (_gl$getSupportedExten = gl.getSupportedExtensions()) != null ? _gl$getSupportedExten : [];\n\t\tthis._extDisjointTimerQuery = null;\n\t\tif (this.isWebGL2) {\n\t\t\tthis.extBlendMinmax = true;\n\t\t\tthis.extDrawBuffers = true;\n\t\t\tthis.drawBuffers = gl.drawBuffers.bind(gl);\n\t\t\tthis.extInstancing = true;\n\t\t\tthis.extStandardDerivatives = true;\n\t\t\tthis.extTextureFloat = true;\n\t\t\tthis.extTextureHalfFloat = true;\n\t\t\tthis.textureHalfFloatFilterable = true;\n\t\t\tthis.extTextureLod = true;\n\t\t\tthis.extUintElement = true;\n\t\t\tthis.extVertexArrayObject = true;\n\t\t\tthis.extColorBufferFloat = this.getExtension('EXT_color_buffer_float');\n\t\t\tthis.extDepthTexture = true;\n\t\t\tthis.textureRG11B10Renderable = true;\n\t\t} else {\n\t\t\tvar _this$extDrawBuffers;\n\t\t\tthis.extBlendMinmax = this.getExtension('EXT_blend_minmax');\n\t\t\tthis.extDrawBuffers = this.getExtension('WEBGL_draw_buffers');\n\t\t\tthis.extInstancing = this.getExtension('ANGLE_instanced_arrays');\n\t\t\tthis.drawBuffers = (_this$extDrawBuffers = this.extDrawBuffers) == null ? void 0 : _this$extDrawBuffers.drawBuffersWEBGL.bind(this.extDrawBuffers);\n\t\t\tif (this.extInstancing) {\n\t\t\t\tconst ext = this.extInstancing;\n\t\t\t\tgl.drawArraysInstanced = ext.drawArraysInstancedANGLE.bind(ext);\n\t\t\t\tgl.drawElementsInstanced = ext.drawElementsInstancedANGLE.bind(ext);\n\t\t\t\tgl.vertexAttribDivisor = ext.vertexAttribDivisorANGLE.bind(ext);\n\t\t\t}\n\t\t\tthis.extStandardDerivatives = this.getExtension('OES_standard_derivatives');\n\t\t\tthis.extTextureFloat = this.getExtension('OES_texture_float');\n\t\t\tthis.extTextureLod = this.getExtension('EXT_shader_texture_lod');\n\t\t\tthis.extUintElement = this.getExtension('OES_element_index_uint');\n\t\t\tthis.extVertexArrayObject = this.getExtension('OES_vertex_array_object');\n\t\t\tif (this.extVertexArrayObject) {\n\t\t\t\tconst ext = this.extVertexArrayObject;\n\t\t\t\tgl.createVertexArray = ext.createVertexArrayOES.bind(ext);\n\t\t\t\tgl.deleteVertexArray = ext.deleteVertexArrayOES.bind(ext);\n\t\t\t\tgl.isVertexArray = ext.isVertexArrayOES.bind(ext);\n\t\t\t\tgl.bindVertexArray = ext.bindVertexArrayOES.bind(ext);\n\t\t\t}\n\t\t\tthis.extColorBufferFloat = null;\n\t\t\tthis.extDepthTexture = gl.getExtension('WEBGL_depth_texture');\n\t\t\tthis.extTextureHalfFloat = this.getExtension('OES_texture_half_float');\n\t\t\tthis.extTextureHalfFloatLinear = this.getExtension('OES_texture_half_float_linear');\n\t\t\tthis.textureHalfFloatFilterable = !!this.extTextureHalfFloatLinear;\n\t\t}\n\t\tthis.extDebugRendererInfo = this.getExtension('WEBGL_debug_renderer_info');\n\t\tthis.extTextureFloatLinear = this.getExtension('OES_texture_float_linear');\n\t\tthis.textureFloatFilterable = !!this.extTextureFloatLinear;\n\t\tthis.extFloatBlend = this.getExtension('EXT_float_blend');\n\t\tthis.extTextureFilterAnisotropic = this.getExtension('EXT_texture_filter_anisotropic', 'WEBKIT_EXT_texture_filter_anisotropic');\n\t\tthis.extCompressedTextureETC1 = this.getExtension('WEBGL_compressed_texture_etc1');\n\t\tthis.extCompressedTextureETC = this.getExtension('WEBGL_compressed_texture_etc');\n\t\tthis.extCompressedTexturePVRTC = this.getExtension('WEBGL_compressed_texture_pvrtc', 'WEBKIT_WEBGL_compressed_texture_pvrtc');\n\t\tthis.extCompressedTextureS3TC = this.getExtension('WEBGL_compressed_texture_s3tc', 'WEBKIT_WEBGL_compressed_texture_s3tc');\n\t\tthis.extCompressedTextureATC = this.getExtension('WEBGL_compressed_texture_atc');\n\t\tthis.extCompressedTextureASTC = this.getExtension('WEBGL_compressed_texture_astc');\n\t\tthis.extParallelShaderCompile = this.getExtension('KHR_parallel_shader_compile');\n\t\tthis.extColorBufferHalfFloat = this.getExtension('EXT_color_buffer_half_float');\n\t}\n\tinitializeCapabilities() {\n\t\tvar _contextAttribs$antia, _contextAttribs$stenc;\n\t\tconst gl = this.gl;\n\t\tlet ext;\n\t\tconst userAgent = typeof navigator !== 'undefined' ? navigator.userAgent : '';\n\t\tthis.maxPrecision = this.precision = this.getPrecision();\n\t\tconst contextAttribs = gl.getContextAttributes();\n\t\tthis.supportsMsaa = (_contextAttribs$antia = contextAttribs == null ? void 0 : contextAttribs.antialias) != null ? _contextAttribs$antia : false;\n\t\tthis.supportsStencil = (_contextAttribs$stenc = contextAttribs == null ? void 0 : contextAttribs.stencil) != null ? _contextAttribs$stenc : false;\n\t\tthis.supportsInstancing = !!this.extInstancing;\n\t\tthis.maxTextureSize = gl.getParameter(gl.MAX_TEXTURE_SIZE);\n\t\tthis.maxCubeMapSize = gl.getParameter(gl.MAX_CUBE_MAP_TEXTURE_SIZE);\n\t\tthis.maxRenderBufferSize = gl.getParameter(gl.MAX_RENDERBUFFER_SIZE);\n\t\tthis.maxTextures = gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS);\n\t\tthis.maxCombinedTextures = gl.getParameter(gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS);\n\t\tthis.maxVertexTextures = gl.getParameter(gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS);\n\t\tthis.vertexUniformsCount = gl.getParameter(gl.MAX_VERTEX_UNIFORM_VECTORS);\n\t\tthis.fragmentUniformsCount = gl.getParameter(gl.MAX_FRAGMENT_UNIFORM_VECTORS);\n\t\tif (this.isWebGL2) {\n\t\t\tthis.maxDrawBuffers = gl.getParameter(gl.MAX_DRAW_BUFFERS);\n\t\t\tthis.maxColorAttachments = gl.getParameter(gl.MAX_COLOR_ATTACHMENTS);\n\t\t\tthis.maxVolumeSize = gl.getParameter(gl.MAX_3D_TEXTURE_SIZE);\n\t\t\tthis.supportsMrt = true;\n\t\t\tthis.supportsVolumeTextures = true;\n\t\t} else {\n\t\t\text = this.extDrawBuffers;\n\t\t\tthis.supportsMrt = !!ext;\n\t\t\tthis.maxDrawBuffers = ext ? gl.getParameter(ext.MAX_DRAW_BUFFERS_WEBGL) : 1;\n\t\t\tthis.maxColorAttachments = ext ? gl.getParameter(ext.MAX_COLOR_ATTACHMENTS_WEBGL) : 1;\n\t\t\tthis.maxVolumeSize = 1;\n\t\t}\n\t\text = this.extDebugRendererInfo;\n\t\tthis.unmaskedRenderer = ext ? gl.getParameter(ext.UNMASKED_RENDERER_WEBGL) : '';\n\t\tthis.unmaskedVendor = ext ? gl.getParameter(ext.UNMASKED_VENDOR_WEBGL) : '';\n\t\tconst maliRendererRegex = /\\bMali-G52+/;\n\t\tconst samsungModelRegex = /SM-[a-zA-Z0-9]+/;\n\t\tthis.supportsGpuParticles = !(this.unmaskedVendor === 'ARM' && userAgent.match(samsungModelRegex)) && !this.unmaskedRenderer.match(maliRendererRegex);\n\t\text = this.extTextureFilterAnisotropic;\n\t\tthis.maxAnisotropy = ext ? gl.getParameter(ext.MAX_TEXTURE_MAX_ANISOTROPY_EXT) : 1;\n\t\tconst antialiasSupported = this.isWebGL2 && !this.forceDisableMultisampling;\n\t\tthis.maxSamples = antialiasSupported ? gl.getParameter(gl.MAX_SAMPLES) : 1;\n\t\tthis.maxSamples = Math.min(this.maxSamples, 4);\n\t\tthis.samples = antialiasSupported && this.backBufferAntialias ? this.maxSamples : 1;\n\t\tthis.supportsAreaLights = this.isWebGL2 || !platform.android;\n\t\tthis.supportsTextureFetch = this.isWebGL2;\n\t\tif (this.maxTextures <= 8) {\n\t\t\tthis.supportsAreaLights = false;\n\t\t}\n\t}\n\tinitializeRenderState() {\n\t\tsuper.initializeRenderState();\n\t\tconst gl = this.gl;\n\t\tgl.disable(gl.BLEND);\n\t\tgl.blendFunc(gl.ONE, gl.ZERO);\n\t\tgl.blendEquation(gl.FUNC_ADD);\n\t\tgl.colorMask(true, true, true, true);\n\t\tgl.blendColor(0, 0, 0, 0);\n\t\tgl.enable(gl.CULL_FACE);\n\t\tthis.cullFace = gl.BACK;\n\t\tgl.cullFace(gl.BACK);\n\t\tgl.enable(gl.DEPTH_TEST);\n\t\tgl.depthFunc(gl.LEQUAL);\n\t\tgl.depthMask(true);\n\t\tthis.stencil = false;\n\t\tgl.disable(gl.STENCIL_TEST);\n\t\tthis.stencilFuncFront = this.stencilFuncBack = FUNC_ALWAYS;\n\t\tthis.stencilRefFront = this.stencilRefBack = 0;\n\t\tthis.stencilMaskFront = this.stencilMaskBack = 0xFF;\n\t\tgl.stencilFunc(gl.ALWAYS, 0, 0xFF);\n\t\tthis.stencilFailFront = this.stencilFailBack = STENCILOP_KEEP;\n\t\tthis.stencilZfailFront = this.stencilZfailBack = STENCILOP_KEEP;\n\t\tthis.stencilZpassFront = this.stencilZpassBack = STENCILOP_KEEP;\n\t\tthis.stencilWriteMaskFront = 0xFF;\n\t\tthis.stencilWriteMaskBack = 0xFF;\n\t\tgl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP);\n\t\tgl.stencilMask(0xFF);\n\t\tthis.alphaToCoverage = false;\n\t\tthis.raster = true;\n\t\tif (this.isWebGL2) {\n\t\t\tgl.disable(gl.SAMPLE_ALPHA_TO_COVERAGE);\n\t\t\tgl.disable(gl.RASTERIZER_DISCARD);\n\t\t}\n\t\tthis.depthBiasEnabled = false;\n\t\tgl.disable(gl.POLYGON_OFFSET_FILL);\n\t\tthis.clearDepth = 1;\n\t\tgl.clearDepth(1);\n\t\tthis.clearColor = new Color(0, 0, 0, 0);\n\t\tgl.clearColor(0, 0, 0, 0);\n\t\tthis.clearStencil = 0;\n\t\tgl.clearStencil(0);\n\t\tif (this.isWebGL2) {\n\t\t\tgl.hint(gl.FRAGMENT_SHADER_DERIVATIVE_HINT, gl.NICEST);\n\t\t} else {\n\t\t\tif (this.extStandardDerivatives) {\n\t\t\t\tgl.hint(this.extStandardDerivatives.FRAGMENT_SHADER_DERIVATIVE_HINT_OES, gl.NICEST);\n\t\t\t}\n\t\t}\n\t\tgl.enable(gl.SCISSOR_TEST);\n\t\tgl.pixelStorei(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, gl.NONE);\n\t\tthis.unpackFlipY = false;\n\t\tgl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);\n\t\tthis.unpackPremultiplyAlpha = false;\n\t\tgl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false);\n\t\tgl.pixelStorei(gl.UNPACK_ALIGNMENT, 1);\n\t}\n\tinitTextureUnits(count = 16) {\n\t\tthis.textureUnits = [];\n\t\tfor (let i = 0; i < count; i++) {\n\t\t\tthis.textureUnits.push([null, null, null]);\n\t\t}\n\t}\n\tinitializeContextCaches() {\n\t\tsuper.initializeContextCaches();\n\t\tthis._vaoMap = new Map();\n\t\tthis.boundVao = null;\n\t\tthis.activeFramebuffer = null;\n\t\tthis.feedback = null;\n\t\tthis.transformFeedbackBuffer = null;\n\t\tthis.textureUnit = 0;\n\t\tthis.initTextureUnits(this.maxCombinedTextures);\n\t}\n\tloseContext() {\n\t\tsuper.loseContext();\n\t\tfor (const shader of this.shaders) {\n\t\t\tshader.loseContext();\n\t\t}\n\t}\n\trestoreContext() {\n\t\tthis.initializeExtensions();\n\t\tthis.initializeCapabilities();\n\t\tsuper.restoreContext();\n\t\tfor (const shader of this.shaders) {\n\t\t\tshader.restoreContext();\n\t\t}\n\t}\n\tsetViewport(x, y, w, h) {\n\t\tif (this.vx !== x || this.vy !== y || this.vw !== w || this.vh !== h) {\n\t\t\tthis.gl.viewport(x, y, w, h);\n\t\t\tthis.vx = x;\n\t\t\tthis.vy = y;\n\t\t\tthis.vw = w;\n\t\t\tthis.vh = h;\n\t\t}\n\t}\n\tsetScissor(x, y, w, h) {\n\t\tif (this.sx !== x || this.sy !== y || this.sw !== w || this.sh !== h) {\n\t\t\tthis.gl.scissor(x, y, w, h);\n\t\t\tthis.sx = x;\n\t\t\tthis.sy = y;\n\t\t\tthis.sw = w;\n\t\t\tthis.sh = h;\n\t\t}\n\t}\n\tsetFramebuffer(fb) {\n\t\tif (this.activeFramebuffer !== fb) {\n\t\t\tconst gl = this.gl;\n\t\t\tgl.bindFramebuffer(gl.FRAMEBUFFER, fb);\n\t\t\tthis.activeFramebuffer = fb;\n\t\t}\n\t}\n\tcopyRenderTarget(source, dest, color, depth) {\n\t\tconst gl = this.gl;\n\t\tif (source === this.backBuffer) {\n\t\t\tsource = null;\n\t\t}\n\t\tif (!this.isWebGL2 && depth) {\n\t\t\treturn false;\n\t\t}\n\t\tif (color) {\n\t\t\tif (!dest) {\n\t\t\t\tif (!source._colorBuffer) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} else if (source) {\n\t\t\t\tif (!source._colorBuffer || !dest._colorBuffer) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (source._colorBuffer._format !== dest._colorBuffer._format) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (depth && source) {\n\t\t\tif (!source._depth) {\n\t\t\t\tif (!source._depthBuffer || !dest._depthBuffer) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (source._depthBuffer._format !== dest._depthBuffer._format) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this.isWebGL2) {\n\t\t\tvar _this$backBuffer, _this$backBuffer2;\n\t\t\tconst prevRt = this.renderTarget;\n\t\t\tthis.renderTarget = dest;\n\t\t\tthis.updateBegin();\n\t\t\tconst src = source ? source.impl._glFrameBuffer : (_this$backBuffer = this.backBuffer) == null ? void 0 : _this$backBuffer.impl._glFrameBuffer;\n\t\t\tconst dst = dest ? dest.impl._glFrameBuffer : (_this$backBuffer2 = this.backBuffer) == null ? void 0 : _this$backBuffer2.impl._glFrameBuffer;\n\t\t\tgl.bindFramebuffer(gl.READ_FRAMEBUFFER, src);\n\t\t\tgl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, dst);\n\t\t\tconst w = source ? source.width : dest ? dest.width : this.width;\n\t\t\tconst h = source ? source.height : dest ? dest.height : this.height;\n\t\t\tgl.blitFramebuffer(0, 0, w, h, 0, 0, w, h, (color ? gl.COLOR_BUFFER_BIT : 0) | (depth ? gl.DEPTH_BUFFER_BIT : 0), gl.NEAREST);\n\t\t\tthis.renderTarget = prevRt;\n\t\t\tgl.bindFramebuffer(gl.FRAMEBUFFER, prevRt ? prevRt.impl._glFrameBuffer : null);\n\t\t} else {\n\t\t\tconst shader = this.getCopyShader();\n\t\t\tthis.constantTexSource.setValue(source._colorBuffer);\n\t\t\tquadWithShader(this, dest, shader);\n\t\t}\n\t\treturn true;\n\t}\n\tgetCopyShader() {\n\t\tif (!this._copyShader) {\n\t\t\tthis._copyShader = new Shader(this, ShaderUtils.createDefinition(this, {\n\t\t\t\tname: 'outputTex2D',\n\t\t\t\tvertexCode: _fullScreenQuadVS,\n\t\t\t\tfragmentCode: _outputTexture2D\n\t\t\t}));\n\t\t}\n\t\treturn this._copyShader;\n\t}\n\tframeStart() {\n\t\tsuper.frameStart();\n\t\tthis.updateBackbuffer();\n\t\tthis.gpuProfiler.frameStart();\n\t}\n\tframeEnd() {\n\t\tsuper.frameEnd();\n\t\tthis.gpuProfiler.frameEnd();\n\t\tthis.gpuProfiler.request();\n\t}\n\tstartRenderPass(renderPass) {\n\t\tvar _renderPass$renderTar;\n\t\tconst rt = (_renderPass$renderTar = renderPass.renderTarget) != null ? _renderPass$renderTar : this.backBuffer;\n\t\tthis.renderTarget = rt;\n\t\tthis.updateBegin();\n\t\tconst {\n\t\t\twidth,\n\t\t\theight\n\t\t} = rt;\n\t\tthis.setViewport(0, 0, width, height);\n\t\tthis.setScissor(0, 0, width, height);\n\t\tconst colorOps = renderPass.colorOps;\n\t\tconst depthStencilOps = renderPass.depthStencilOps;\n\t\tif (colorOps != null && colorOps.clear || depthStencilOps.clearDepth || depthStencilOps.clearStencil) {\n\t\t\tlet clearFlags = 0;\n\t\t\tconst clearOptions = {};\n\t\t\tif (colorOps != null && colorOps.clear) {\n\t\t\t\tclearFlags |= CLEARFLAG_COLOR;\n\t\t\t\tclearOptions.color = [colorOps.clearValue.r, colorOps.clearValue.g, colorOps.clearValue.b, colorOps.clearValue.a];\n\t\t\t}\n\t\t\tif (depthStencilOps.clearDepth) {\n\t\t\t\tclearFlags |= CLEARFLAG_DEPTH;\n\t\t\t\tclearOptions.depth = depthStencilOps.clearDepthValue;\n\t\t\t}\n\t\t\tif (depthStencilOps.clearStencil) {\n\t\t\t\tclearFlags |= CLEARFLAG_STENCIL;\n\t\t\t\tclearOptions.stencil = depthStencilOps.clearStencilValue;\n\t\t\t}\n\t\t\tclearOptions.flags = clearFlags;\n\t\t\tthis.clear(clearOptions);\n\t\t}\n\t\tthis.insideRenderPass = true;\n\t}\n\tendRenderPass(renderPass) {\n\t\tthis.unbindVertexArray();\n\t\tconst target = this.renderTarget;\n\t\tconst colorBufferCount = renderPass.colorArrayOps.length;\n\t\tif (target) {\n\t\t\tvar _renderPass$colorOps;\n\t\t\tif (this.isWebGL2) {\n\t\t\t\tinvalidateAttachments.length = 0;\n\t\t\t\tconst gl = this.gl;\n\t\t\t\tfor (let i = 0; i < colorBufferCount; i++) {\n\t\t\t\t\tconst colorOps = renderPass.colorArrayOps[i];\n\t\t\t\t\tif (!(colorOps.store || colorOps.resolve)) {\n\t\t\t\t\t\tinvalidateAttachments.push(gl.COLOR_ATTACHMENT0 + i);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (target !== this.backBuffer) {\n\t\t\t\t\tif (!renderPass.depthStencilOps.storeDepth) {\n\t\t\t\t\t\tinvalidateAttachments.push(gl.DEPTH_ATTACHMENT);\n\t\t\t\t\t}\n\t\t\t\t\tif (!renderPass.depthStencilOps.storeStencil) {\n\t\t\t\t\t\tinvalidateAttachments.push(gl.STENCIL_ATTACHMENT);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (invalidateAttachments.length > 0) {\n\t\t\t\t\tif (renderPass.fullSizeClearRect) {\n\t\t\t\t\t\tgl.invalidateFramebuffer(gl.DRAW_FRAMEBUFFER, invalidateAttachments);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ((_renderPass$colorOps = renderPass.colorOps) != null && _renderPass$colorOps.resolve) {\n\t\t\t\tif (this.isWebGL2 && renderPass.samples > 1 && target.autoResolve) {\n\t\t\t\t\ttarget.resolve(true, false);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (let i = 0; i < colorBufferCount; i++) {\n\t\t\t\tconst colorOps = renderPass.colorArrayOps[i];\n\t\t\t\tif (colorOps.mipmaps) {\n\t\t\t\t\tconst colorBuffer = target._colorBuffers[i];\n\t\t\t\t\tif (colorBuffer && colorBuffer.impl._glTexture && colorBuffer.mipmaps && (colorBuffer.pot || this.isWebGL2)) {\n\t\t\t\t\t\tthis.activeTexture(this.maxCombinedTextures - 1);\n\t\t\t\t\t\tthis.bindTexture(colorBuffer);\n\t\t\t\t\t\tthis.gl.generateMipmap(colorBuffer.impl._glTarget);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.insideRenderPass = false;\n\t}\n\tset defaultFramebuffer(value) {\n\t\tif (this._defaultFramebuffer !== value) {\n\t\t\tthis._defaultFramebuffer = value;\n\t\t\tthis._defaultFramebufferChanged = true;\n\t\t}\n\t}\n\tget defaultFramebuffer() {\n\t\treturn this._defaultFramebuffer;\n\t}\n\tupdateBegin() {\n\t\tvar _this$renderTarget;\n\t\tthis.boundVao = null;\n\t\tif (this._tempEnableSafariTextureUnitWorkaround) {\n\t\t\tfor (let unit = 0; unit < this.textureUnits.length; ++unit) {\n\t\t\t\tfor (let slot = 0; slot < 3; ++slot) {\n\t\t\t\t\tthis.textureUnits[unit][slot] = null;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst target = (_this$renderTarget = this.renderTarget) != null ? _this$renderTarget : this.backBuffer;\n\t\tconst targetImpl = target.impl;\n\t\tif (!targetImpl.initialized) {\n\t\t\tthis.initRenderTarget(target);\n\t\t}\n\t\tthis.setFramebuffer(targetImpl._glFrameBuffer);\n\t}\n\tupdateEnd() {\n\t\tthis.unbindVertexArray();\n\t\tconst target = this.renderTarget;\n\t\tif (target && target !== this.backBuffer) {\n\t\t\tif (this.isWebGL2 && target._samples > 1 && target.autoResolve) {\n\t\t\t\ttarget.resolve();\n\t\t\t}\n\t\t\tconst colorBuffer = target._colorBuffer;\n\t\t\tif (colorBuffer && colorBuffer.impl._glTexture && colorBuffer.mipmaps && (colorBuffer.pot || this.isWebGL2)) {\n\t\t\t\tthis.activeTexture(this.maxCombinedTextures - 1);\n\t\t\t\tthis.bindTexture(colorBuffer);\n\t\t\t\tthis.gl.generateMipmap(colorBuffer.impl._glTarget);\n\t\t\t}\n\t\t}\n\t}\n\tsetUnpackFlipY(flipY) {\n\t\tif (this.unpackFlipY !== flipY) {\n\t\t\tthis.unpackFlipY = flipY;\n\t\t\tconst gl = this.gl;\n\t\t\tgl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, flipY);\n\t\t}\n\t}\n\tsetUnpackPremultiplyAlpha(premultiplyAlpha) {\n\t\tif (this.unpackPremultiplyAlpha !== premultiplyAlpha) {\n\t\t\tthis.unpackPremultiplyAlpha = premultiplyAlpha;\n\t\t\tconst gl = this.gl;\n\t\t\tgl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, premultiplyAlpha);\n\t\t}\n\t}\n\tactiveTexture(textureUnit) {\n\t\tif (this.textureUnit !== textureUnit) {\n\t\t\tthis.gl.activeTexture(this.gl.TEXTURE0 + textureUnit);\n\t\t\tthis.textureUnit = textureUnit;\n\t\t}\n\t}\n\tbindTexture(texture) {\n\t\tconst impl = texture.impl;\n\t\tconst textureTarget = impl._glTarget;\n\t\tconst textureObject = impl._glTexture;\n\t\tconst textureUnit = this.textureUnit;\n\t\tconst slot = this.targetToSlot[textureTarget];\n\t\tif (this.textureUnits[textureUnit][slot] !== textureObject) {\n\t\t\tthis.gl.bindTexture(textureTarget, textureObject);\n\t\t\tthis.textureUnits[textureUnit][slot] = textureObject;\n\t\t}\n\t}\n\tbindTextureOnUnit(texture, textureUnit) {\n\t\tconst impl = texture.impl;\n\t\tconst textureTarget = impl._glTarget;\n\t\tconst textureObject = impl._glTexture;\n\t\tconst slot = this.targetToSlot[textureTarget];\n\t\tif (this.textureUnits[textureUnit][slot] !== textureObject) {\n\t\t\tthis.activeTexture(textureUnit);\n\t\t\tthis.gl.bindTexture(textureTarget, textureObject);\n\t\t\tthis.textureUnits[textureUnit][slot] = textureObject;\n\t\t}\n\t}\n\tsetTextureParameters(texture) {\n\t\tconst gl = this.gl;\n\t\tconst flags = texture.impl.dirtyParameterFlags;\n\t\tconst target = texture.impl._glTarget;\n\t\tif (flags & 1) {\n\t\t\tlet filter = texture._minFilter;\n\t\t\tif (!texture.pot && !this.isWebGL2 || !texture._mipmaps || texture._compressed && texture._levels.length === 1) {\n\t\t\t\tif (filter === FILTER_NEAREST_MIPMAP_NEAREST || filter === FILTER_NEAREST_MIPMAP_LINEAR) {\n\t\t\t\t\tfilter = FILTER_NEAREST;\n\t\t\t\t} else if (filter === FILTER_LINEAR_MIPMAP_NEAREST || filter === FILTER_LINEAR_MIPMAP_LINEAR) {\n\t\t\t\t\tfilter = FILTER_LINEAR;\n\t\t\t\t}\n\t\t\t}\n\t\t\tgl.texParameteri(target, gl.TEXTURE_MIN_FILTER, this.glFilter[filter]);\n\t\t}\n\t\tif (flags & 2) {\n\t\t\tgl.texParameteri(target, gl.TEXTURE_MAG_FILTER, this.glFilter[texture._magFilter]);\n\t\t}\n\t\tif (flags & 4) {\n\t\t\tif (this.isWebGL2) {\n\t\t\t\tgl.texParameteri(target, gl.TEXTURE_WRAP_S, this.glAddress[texture._addressU]);\n\t\t\t} else {\n\t\t\t\tgl.texParameteri(target, gl.TEXTURE_WRAP_S, this.glAddress[texture.pot ? texture._addressU : ADDRESS_CLAMP_TO_EDGE]);\n\t\t\t}\n\t\t}\n\t\tif (flags & 8) {\n\t\t\tif (this.isWebGL2) {\n\t\t\t\tgl.texParameteri(target, gl.TEXTURE_WRAP_T, this.glAddress[texture._addressV]);\n\t\t\t} else {\n\t\t\t\tgl.texParameteri(target, gl.TEXTURE_WRAP_T, this.glAddress[texture.pot ? texture._addressV : ADDRESS_CLAMP_TO_EDGE]);\n\t\t\t}\n\t\t}\n\t\tif (flags & 16) {\n\t\t\tif (this.isWebGL2) {\n\t\t\t\tgl.texParameteri(target, gl.TEXTURE_WRAP_R, this.glAddress[texture._addressW]);\n\t\t\t}\n\t\t}\n\t\tif (flags & 32) {\n\t\t\tif (this.isWebGL2) {\n\t\t\t\tgl.texParameteri(target, gl.TEXTURE_COMPARE_MODE, texture._compareOnRead ? gl.COMPARE_REF_TO_TEXTURE : gl.NONE);\n\t\t\t}\n\t\t}\n\t\tif (flags & 64) {\n\t\t\tif (this.isWebGL2) {\n\t\t\t\tgl.texParameteri(target, gl.TEXTURE_COMPARE_FUNC, this.glComparison[texture._compareFunc]);\n\t\t\t}\n\t\t}\n\t\tif (flags & 128) {\n\t\t\tconst ext = this.extTextureFilterAnisotropic;\n\t\t\tif (ext) {\n\t\t\t\tgl.texParameterf(target, ext.TEXTURE_MAX_ANISOTROPY_EXT, math.clamp(Math.round(texture._anisotropy), 1, this.maxAnisotropy));\n\t\t\t}\n\t\t}\n\t}\n\tsetTexture(texture, textureUnit) {\n\t\tconst impl = texture.impl;\n\t\tif (!impl._glTexture) {\n\t\t\timpl.initialize(this, texture);\n\t\t}\n\t\tif (impl.dirtyParameterFlags > 0 || texture._needsUpload || texture._needsMipmapsUpload) {\n\t\t\tthis.activeTexture(textureUnit);\n\t\t\tthis.bindTexture(texture);\n\t\t\tif (impl.dirtyParameterFlags) {\n\t\t\t\tthis.setTextureParameters(texture);\n\t\t\t\timpl.dirtyParameterFlags = 0;\n\t\t\t}\n\t\t\tif (texture._needsUpload || texture._needsMipmapsUpload) {\n\t\t\t\timpl.upload(this, texture);\n\t\t\t\ttexture._needsUpload = false;\n\t\t\t\ttexture._needsMipmapsUpload = false;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.bindTextureOnUnit(texture, textureUnit);\n\t\t}\n\t}\n\tcreateVertexArray(vertexBuffers) {\n\t\tlet key, vao;\n\t\tconst useCache = vertexBuffers.length > 1;\n\t\tif (useCache) {\n\t\t\tkey = '';\n\t\t\tfor (let i = 0; i < vertexBuffers.length; i++) {\n\t\t\t\tconst vertexBuffer = vertexBuffers[i];\n\t\t\t\tkey += vertexBuffer.id + vertexBuffer.format.renderingHash;\n\t\t\t}\n\t\t\tvao = this._vaoMap.get(key);\n\t\t}\n\t\tif (!vao) {\n\t\t\tconst gl = this.gl;\n\t\t\tvao = gl.createVertexArray();\n\t\t\tgl.bindVertexArray(vao);\n\t\t\tgl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null);\n\t\t\tfor (let i = 0; i < vertexBuffers.length; i++) {\n\t\t\t\tconst vertexBuffer = vertexBuffers[i];\n\t\t\t\tgl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer.impl.bufferId);\n\t\t\t\tconst elements = vertexBuffer.format.elements;\n\t\t\t\tfor (let j = 0; j < elements.length; j++) {\n\t\t\t\t\tconst e = elements[j];\n\t\t\t\t\tconst loc = semanticToLocation[e.name];\n\t\t\t\t\tif (e.asInt) {\n\t\t\t\t\t\tgl.vertexAttribIPointer(loc, e.numComponents, this.glType[e.dataType], e.stride, e.offset);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgl.vertexAttribPointer(loc, e.numComponents, this.glType[e.dataType], e.normalize, e.stride, e.offset);\n\t\t\t\t\t}\n\t\t\t\t\tgl.enableVertexAttribArray(loc);\n\t\t\t\t\tif (vertexBuffer.format.instancing) {\n\t\t\t\t\t\tgl.vertexAttribDivisor(loc, 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tgl.bindVertexArray(null);\n\t\t\tgl.bindBuffer(gl.ARRAY_BUFFER, null);\n\t\t\tif (useCache) {\n\t\t\t\tthis._vaoMap.set(key, vao);\n\t\t\t}\n\t\t}\n\t\treturn vao;\n\t}\n\tunbindVertexArray() {\n\t\tif (this.boundVao) {\n\t\t\tthis.boundVao = null;\n\t\t\tthis.gl.bindVertexArray(null);\n\t\t}\n\t}\n\tsetBuffers() {\n\t\tconst gl = this.gl;\n\t\tlet vao;\n\t\tif (this.vertexBuffers.length === 1) {\n\t\t\tconst vertexBuffer = this.vertexBuffers[0];\n\t\t\tif (!vertexBuffer.impl.vao) {\n\t\t\t\tvertexBuffer.impl.vao = this.createVertexArray(this.vertexBuffers);\n\t\t\t}\n\t\t\tvao = vertexBuffer.impl.vao;\n\t\t} else {\n\t\t\tvao = this.createVertexArray(this.vertexBuffers);\n\t\t}\n\t\tif (this.boundVao !== vao) {\n\t\t\tthis.boundVao = vao;\n\t\t\tgl.bindVertexArray(vao);\n\t\t}\n\t\tthis.clearVertexBuffer();\n\t\tconst bufferId = this.indexBuffer ? this.indexBuffer.impl.bufferId : null;\n\t\tgl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, bufferId);\n\t}\n\tdraw(primitive, numInstances, keepBuffers) {\n\t\tconst gl = this.gl;\n\t\tthis.activateShader(this);\n\t\tif (!this.shaderValid) {\n\t\t\treturn;\n\t\t}\n\t\tlet sampler, samplerValue, texture, numTextures;\n\t\tlet uniform, scopeId, uniformVersion, programVersion;\n\t\tconst shader = this.shader;\n\t\tif (!shader) {\n\t\t\treturn;\n\t\t}\n\t\tconst samplers = shader.impl.samplers;\n\t\tconst uniforms = shader.impl.uniforms;\n\t\tif (!keepBuffers) {\n\t\t\tthis.setBuffers();\n\t\t}\n\t\tlet textureUnit = 0;\n\t\tfor (let i = 0, len = samplers.length; i < len; i++) {\n\t\t\tsampler = samplers[i];\n\t\t\tsamplerValue = sampler.scopeId.value;\n\t\t\tif (!samplerValue) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (samplerValue instanceof Texture) {\n\t\t\t\ttexture = samplerValue;\n\t\t\t\tthis.setTexture(texture, textureUnit);\n\t\t\t\tif (sampler.slot !== textureUnit) {\n\t\t\t\t\tgl.uniform1i(sampler.locationId, textureUnit);\n\t\t\t\t\tsampler.slot = textureUnit;\n\t\t\t\t}\n\t\t\t\ttextureUnit++;\n\t\t\t} else {\n\t\t\t\tsampler.array.length = 0;\n\t\t\t\tnumTextures = samplerValue.length;\n\t\t\t\tfor (let j = 0; j < numTextures; j++) {\n\t\t\t\t\ttexture = samplerValue[j];\n\t\t\t\t\tthis.setTexture(texture, textureUnit);\n\t\t\t\t\tsampler.array[j] = textureUnit;\n\t\t\t\t\ttextureUnit++;\n\t\t\t\t}\n\t\t\t\tgl.uniform1iv(sampler.locationId, sampler.array);\n\t\t\t}\n\t\t}\n\t\tfor (let i = 0, len = uniforms.length; i < len; i++) {\n\t\t\tuniform = uniforms[i];\n\t\t\tscopeId = uniform.scopeId;\n\t\t\tuniformVersion = uniform.version;\n\t\t\tprogramVersion = scopeId.versionObject.version;\n\t\t\tif (uniformVersion.globalId !== programVersion.globalId || uniformVersion.revision !== programVersion.revision) {\n\t\t\t\tuniformVersion.globalId = programVersion.globalId;\n\t\t\t\tuniformVersion.revision = programVersion.revision;\n\t\t\t\tif (scopeId.value !== null) {\n\t\t\t\t\tthis.commitFunction[uniform.dataType](uniform, scopeId.value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this.isWebGL2 && this.transformFeedbackBuffer) {\n\t\t\tgl.bindBufferBase(gl.TRANSFORM_FEEDBACK_BUFFER, 0, this.transformFeedbackBuffer.impl.bufferId);\n\t\t\tgl.beginTransformFeedback(gl.POINTS);\n\t\t}\n\t\tconst mode = this.glPrimitive[primitive.type];\n\t\tconst count = primitive.count;\n\t\tif (primitive.indexed) {\n\t\t\tconst indexBuffer = this.indexBuffer;\n\t\t\tconst format = indexBuffer.impl.glFormat;\n\t\t\tconst offset = primitive.base * indexBuffer.bytesPerIndex;\n\t\t\tif (numInstances > 0) {\n\t\t\t\tgl.drawElementsInstanced(mode, count, format, offset, numInstances);\n\t\t\t} else {\n\t\t\t\tgl.drawElements(mode, count, format, offset);\n\t\t\t}\n\t\t} else {\n\t\t\tconst first = primitive.base;\n\t\t\tif (numInstances > 0) {\n\t\t\t\tgl.drawArraysInstanced(mode, first, count, numInstances);\n\t\t\t} else {\n\t\t\t\tgl.drawArrays(mode, first, count);\n\t\t\t}\n\t\t}\n\t\tif (this.isWebGL2 && this.transformFeedbackBuffer) {\n\t\t\tgl.endTransformFeedback();\n\t\t\tgl.bindBufferBase(gl.TRANSFORM_FEEDBACK_BUFFER, 0, null);\n\t\t}\n\t\tthis._drawCallsPerFrame++;\n\t}\n\tclear(options) {\n\t\tvar _options$flags;\n\t\tconst defaultOptions = this.defaultClearOptions;\n\t\toptions = options || defaultOptions;\n\t\tconst flags = (_options$flags = options.flags) != null ? _options$flags : defaultOptions.flags;\n\t\tif (flags !== 0) {\n\t\t\tconst gl = this.gl;\n\t\t\tif (flags & CLEARFLAG_COLOR) {\n\t\t\t\tvar _options$color;\n\t\t\t\tconst color = (_options$color = options.color) != null ? _options$color : defaultOptions.color;\n\t\t\t\tconst r = color[0];\n\t\t\t\tconst g = color[1];\n\t\t\t\tconst b = color[2];\n\t\t\t\tconst a = color[3];\n\t\t\t\tconst c = this.clearColor;\n\t\t\t\tif (r !== c.r || g !== c.g || b !== c.b || a !== c.a) {\n\t\t\t\t\tthis.gl.clearColor(r, g, b, a);\n\t\t\t\t\tthis.clearColor.set(r, g, b, a);\n\t\t\t\t}\n\t\t\t\tthis.setBlendState(BlendState.NOBLEND);\n\t\t\t}\n\t\t\tif (flags & CLEARFLAG_DEPTH) {\n\t\t\t\tvar _options$depth;\n\t\t\t\tconst depth = (_options$depth = options.depth) != null ? _options$depth : defaultOptions.depth;\n\t\t\t\tif (depth !== this.clearDepth) {\n\t\t\t\t\tthis.gl.clearDepth(depth);\n\t\t\t\t\tthis.clearDepth = depth;\n\t\t\t\t}\n\t\t\t\tthis.setDepthState(DepthState.WRITEDEPTH);\n\t\t\t}\n\t\t\tif (flags & CLEARFLAG_STENCIL) {\n\t\t\t\tvar _options$stencil;\n\t\t\t\tconst stencil = (_options$stencil = options.stencil) != null ? _options$stencil : defaultOptions.stencil;\n\t\t\t\tif (stencil !== this.clearStencil) {\n\t\t\t\t\tthis.gl.clearStencil(stencil);\n\t\t\t\t\tthis.clearStencil = stencil;\n\t\t\t\t}\n\t\t\t\tgl.stencilMask(0xFF);\n\t\t\t\tthis.stencilWriteMaskFront = 0xFF;\n\t\t\t\tthis.stencilWriteMaskBack = 0xFF;\n\t\t\t}\n\t\t\tgl.clear(this.glClearFlag[flags]);\n\t\t}\n\t}\n\tsubmit() {\n\t\tthis.gl.flush();\n\t}\n\treadPixels(x, y, w, h, pixels) {\n\t\tconst gl = this.gl;\n\t\tgl.readPixels(x, y, w, h, gl.RGBA, gl.UNSIGNED_BYTE, pixels);\n\t}\n\tasync readPixelsAsync(x, y, w, h, pixels) {\n\t\tvar _this$renderTarget$co, _impl$_glFormat, _impl$_glPixelType;\n\t\tconst gl = this.gl;\n\t\tif (!this.isWebGL2) {\n\t\t\tthis.readPixels(x, y, w, h, pixels);\n\t\t\treturn;\n\t\t}\n\t\tconst clientWaitAsync = (flags, interval_ms) => {\n\t\t\tconst sync = gl.fenceSync(gl.SYNC_GPU_COMMANDS_COMPLETE, 0);\n\t\t\tthis.submit();\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tfunction test() {\n\t\t\t\t\tconst res = gl.clientWaitSync(sync, flags, 0);\n\t\t\t\t\tif (res === gl.WAIT_FAILED) {\n\t\t\t\t\t\tgl.deleteSync(sync);\n\t\t\t\t\t\treject(new Error('webgl clientWaitSync sync failed'));\n\t\t\t\t\t} else if (res === gl.TIMEOUT_EXPIRED) {\n\t\t\t\t\t\tsetTimeout(test, interval_ms);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgl.deleteSync(sync);\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttest();\n\t\t\t});\n\t\t};\n\t\tconst impl = (_this$renderTarget$co = this.renderTarget.colorBuffer) == null ? void 0 : _this$renderTarget$co.impl;\n\t\tconst format = (_impl$_glFormat = impl == null ? void 0 : impl._glFormat) != null ? _impl$_glFormat : gl.RGBA;\n\t\tconst pixelType = (_impl$_glPixelType = impl == null ? void 0 : impl._glPixelType) != null ? _impl$_glPixelType : gl.UNSIGNED_BYTE;\n\t\tconst buf = gl.createBuffer();\n\t\tgl.bindBuffer(gl.PIXEL_PACK_BUFFER, buf);\n\t\tgl.bufferData(gl.PIXEL_PACK_BUFFER, pixels.byteLength, gl.STREAM_READ);\n\t\tgl.readPixels(x, y, w, h, format, pixelType, 0);\n\t\tgl.bindBuffer(gl.PIXEL_PACK_BUFFER, null);\n\t\tawait clientWaitAsync(0, 20);\n\t\tgl.bindBuffer(gl.PIXEL_PACK_BUFFER, buf);\n\t\tgl.getBufferSubData(gl.PIXEL_PACK_BUFFER, 0, pixels);\n\t\tgl.bindBuffer(gl.PIXEL_PACK_BUFFER, null);\n\t\tgl.deleteBuffer(buf);\n\t}\n\tsetAlphaToCoverage(state) {\n\t\tif (this.isWebGL1) return;\n\t\tif (this.alphaToCoverage === state) return;\n\t\tthis.alphaToCoverage = state;\n\t\tif (state) {\n\t\t\tthis.gl.enable(this.gl.SAMPLE_ALPHA_TO_COVERAGE);\n\t\t} else {\n\t\t\tthis.gl.disable(this.gl.SAMPLE_ALPHA_TO_COVERAGE);\n\t\t}\n\t}\n\tsetTransformFeedbackBuffer(tf) {\n\t\tif (this.transformFeedbackBuffer === tf) {\n\t\t\treturn;\n\t\t}\n\t\tthis.transformFeedbackBuffer = tf;\n\t\tif (this.isWebGL2) {\n\t\t\tconst gl = this.gl;\n\t\t\tif (tf) {\n\t\t\t\tif (!this.feedback) {\n\t\t\t\t\tthis.feedback = gl.createTransformFeedback();\n\t\t\t\t}\n\t\t\t\tgl.bindTransformFeedback(gl.TRANSFORM_FEEDBACK, this.feedback);\n\t\t\t} else {\n\t\t\t\tgl.bindTransformFeedback(gl.TRANSFORM_FEEDBACK, null);\n\t\t\t}\n\t\t}\n\t}\n\tsetRaster(on) {\n\t\tif (this.raster === on) return;\n\t\tthis.raster = on;\n\t\tif (this.isWebGL2) {\n\t\t\tif (on) {\n\t\t\t\tthis.gl.disable(this.gl.RASTERIZER_DISCARD);\n\t\t\t} else {\n\t\t\t\tthis.gl.enable(this.gl.RASTERIZER_DISCARD);\n\t\t\t}\n\t\t}\n\t}\n\tsetStencilTest(enable) {\n\t\tif (this.stencil !== enable) {\n\t\t\tconst gl = this.gl;\n\t\t\tif (enable) {\n\t\t\t\tgl.enable(gl.STENCIL_TEST);\n\t\t\t} else {\n\t\t\t\tgl.disable(gl.STENCIL_TEST);\n\t\t\t}\n\t\t\tthis.stencil = enable;\n\t\t}\n\t}\n\tsetStencilFunc(func, ref, mask) {\n\t\tif (this.stencilFuncFront !== func || this.stencilRefFront !== ref || this.stencilMaskFront !== mask || this.stencilFuncBack !== func || this.stencilRefBack !== ref || this.stencilMaskBack !== mask) {\n\t\t\tthis.gl.stencilFunc(this.glComparison[func], ref, mask);\n\t\t\tthis.stencilFuncFront = this.stencilFuncBack = func;\n\t\t\tthis.stencilRefFront = this.stencilRefBack = ref;\n\t\t\tthis.stencilMaskFront = this.stencilMaskBack = mask;\n\t\t}\n\t}\n\tsetStencilFuncFront(func, ref, mask) {\n\t\tif (this.stencilFuncFront !== func || this.stencilRefFront !== ref || this.stencilMaskFront !== mask) {\n\t\t\tconst gl = this.gl;\n\t\t\tgl.stencilFuncSeparate(gl.FRONT, this.glComparison[func], ref, mask);\n\t\t\tthis.stencilFuncFront = func;\n\t\t\tthis.stencilRefFront = ref;\n\t\t\tthis.stencilMaskFront = mask;\n\t\t}\n\t}\n\tsetStencilFuncBack(func, ref, mask) {\n\t\tif (this.stencilFuncBack !== func || this.stencilRefBack !== ref || this.stencilMaskBack !== mask) {\n\t\t\tconst gl = this.gl;\n\t\t\tgl.stencilFuncSeparate(gl.BACK, this.glComparison[func], ref, mask);\n\t\t\tthis.stencilFuncBack = func;\n\t\t\tthis.stencilRefBack = ref;\n\t\t\tthis.stencilMaskBack = mask;\n\t\t}\n\t}\n\tsetStencilOperation(fail, zfail, zpass, writeMask) {\n\t\tif (this.stencilFailFront !== fail || this.stencilZfailFront !== zfail || this.stencilZpassFront !== zpass || this.stencilFailBack !== fail || this.stencilZfailBack !== zfail || this.stencilZpassBack !== zpass) {\n\t\t\tthis.gl.stencilOp(this.glStencilOp[fail], this.glStencilOp[zfail], this.glStencilOp[zpass]);\n\t\t\tthis.stencilFailFront = this.stencilFailBack = fail;\n\t\t\tthis.stencilZfailFront = this.stencilZfailBack = zfail;\n\t\t\tthis.stencilZpassFront = this.stencilZpassBack = zpass;\n\t\t}\n\t\tif (this.stencilWriteMaskFront !== writeMask || this.stencilWriteMaskBack !== writeMask) {\n\t\t\tthis.gl.stencilMask(writeMask);\n\t\t\tthis.stencilWriteMaskFront = writeMask;\n\t\t\tthis.stencilWriteMaskBack = writeMask;\n\t\t}\n\t}\n\tsetStencilOperationFront(fail, zfail, zpass, writeMask) {\n\t\tif (this.stencilFailFront !== fail || this.stencilZfailFront !== zfail || this.stencilZpassFront !== zpass) {\n\t\t\tthis.gl.stencilOpSeparate(this.gl.FRONT, this.glStencilOp[fail], this.glStencilOp[zfail], this.glStencilOp[zpass]);\n\t\t\tthis.stencilFailFront = fail;\n\t\t\tthis.stencilZfailFront = zfail;\n\t\t\tthis.stencilZpassFront = zpass;\n\t\t}\n\t\tif (this.stencilWriteMaskFront !== writeMask) {\n\t\t\tthis.gl.stencilMaskSeparate(this.gl.FRONT, writeMask);\n\t\t\tthis.stencilWriteMaskFront = writeMask;\n\t\t}\n\t}\n\tsetStencilOperationBack(fail, zfail, zpass, writeMask) {\n\t\tif (this.stencilFailBack !== fail || this.stencilZfailBack !== zfail || this.stencilZpassBack !== zpass) {\n\t\t\tthis.gl.stencilOpSeparate(this.gl.BACK, this.glStencilOp[fail], this.glStencilOp[zfail], this.glStencilOp[zpass]);\n\t\t\tthis.stencilFailBack = fail;\n\t\t\tthis.stencilZfailBack = zfail;\n\t\t\tthis.stencilZpassBack = zpass;\n\t\t}\n\t\tif (this.stencilWriteMaskBack !== writeMask) {\n\t\t\tthis.gl.stencilMaskSeparate(this.gl.BACK, writeMask);\n\t\t\tthis.stencilWriteMaskBack = writeMask;\n\t\t}\n\t}\n\tsetBlendState(blendState) {\n\t\tconst currentBlendState = this.blendState;\n\t\tif (!currentBlendState.equals(blendState)) {\n\t\t\tconst gl = this.gl;\n\t\t\tconst {\n\t\t\t\tblend,\n\t\t\t\tcolorOp,\n\t\t\t\talphaOp,\n\t\t\t\tcolorSrcFactor,\n\t\t\t\tcolorDstFactor,\n\t\t\t\talphaSrcFactor,\n\t\t\t\talphaDstFactor\n\t\t\t} = blendState;\n\t\t\tif (currentBlendState.blend !== blend) {\n\t\t\t\tif (blend) {\n\t\t\t\t\tgl.enable(gl.BLEND);\n\t\t\t\t} else {\n\t\t\t\t\tgl.disable(gl.BLEND);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (currentBlendState.colorOp !== colorOp || currentBlendState.alphaOp !== alphaOp) {\n\t\t\t\tconst glBlendEquation = this.glBlendEquation;\n\t\t\t\tgl.blendEquationSeparate(glBlendEquation[colorOp], glBlendEquation[alphaOp]);\n\t\t\t}\n\t\t\tif (currentBlendState.colorSrcFactor !== colorSrcFactor || currentBlendState.colorDstFactor !== colorDstFactor || currentBlendState.alphaSrcFactor !== alphaSrcFactor || currentBlendState.alphaDstFactor !== alphaDstFactor) {\n\t\t\t\tgl.blendFuncSeparate(this.glBlendFunctionColor[colorSrcFactor], this.glBlendFunctionColor[colorDstFactor], this.glBlendFunctionAlpha[alphaSrcFactor], this.glBlendFunctionAlpha[alphaDstFactor]);\n\t\t\t}\n\t\t\tif (currentBlendState.allWrite !== blendState.allWrite) {\n\t\t\t\tthis.gl.colorMask(blendState.redWrite, blendState.greenWrite, blendState.blueWrite, blendState.alphaWrite);\n\t\t\t}\n\t\t\tcurrentBlendState.copy(blendState);\n\t\t}\n\t}\n\tsetBlendColor(r, g, b, a) {\n\t\tconst c = this.blendColor;\n\t\tif (r !== c.r || g !== c.g || b !== c.b || a !== c.a) {\n\t\t\tthis.gl.blendColor(r, g, b, a);\n\t\t\tc.set(r, g, b, a);\n\t\t}\n\t}\n\tsetStencilState(stencilFront, stencilBack) {\n\t\tif (stencilFront || stencilBack) {\n\t\t\tthis.setStencilTest(true);\n\t\t\tif (stencilFront === stencilBack) {\n\t\t\t\tthis.setStencilFunc(stencilFront.func, stencilFront.ref, stencilFront.readMask);\n\t\t\t\tthis.setStencilOperation(stencilFront.fail, stencilFront.zfail, stencilFront.zpass, stencilFront.writeMask);\n\t\t\t} else {\n\t\t\t\tvar _stencilFront, _stencilBack;\n\t\t\t\t(_stencilFront = stencilFront) != null ? _stencilFront : stencilFront = StencilParameters.DEFAULT;\n\t\t\t\tthis.setStencilFuncFront(stencilFront.func, stencilFront.ref, stencilFront.readMask);\n\t\t\t\tthis.setStencilOperationFront(stencilFront.fail, stencilFront.zfail, stencilFront.zpass, stencilFront.writeMask);\n\t\t\t\t(_stencilBack = stencilBack) != null ? _stencilBack : stencilBack = StencilParameters.DEFAULT;\n\t\t\t\tthis.setStencilFuncBack(stencilBack.func, stencilBack.ref, stencilBack.readMask);\n\t\t\t\tthis.setStencilOperationBack(stencilBack.fail, stencilBack.zfail, stencilBack.zpass, stencilBack.writeMask);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.setStencilTest(false);\n\t\t}\n\t}\n\tsetDepthState(depthState) {\n\t\tconst currentDepthState = this.depthState;\n\t\tif (!currentDepthState.equals(depthState)) {\n\t\t\tconst gl = this.gl;\n\t\t\tconst write = depthState.write;\n\t\t\tif (currentDepthState.write !== write) {\n\t\t\t\tgl.depthMask(write);\n\t\t\t}\n\t\t\tlet {\n\t\t\t\tfunc,\n\t\t\t\ttest\n\t\t\t} = depthState;\n\t\t\tif (!test && write) {\n\t\t\t\ttest = true;\n\t\t\t\tfunc = FUNC_ALWAYS;\n\t\t\t}\n\t\t\tif (currentDepthState.func !== func) {\n\t\t\t\tgl.depthFunc(this.glComparison[func]);\n\t\t\t}\n\t\t\tif (currentDepthState.test !== test) {\n\t\t\t\tif (test) {\n\t\t\t\t\tgl.enable(gl.DEPTH_TEST);\n\t\t\t\t} else {\n\t\t\t\t\tgl.disable(gl.DEPTH_TEST);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst {\n\t\t\t\tdepthBias,\n\t\t\t\tdepthBiasSlope\n\t\t\t} = depthState;\n\t\t\tif (depthBias || depthBiasSlope) {\n\t\t\t\tif (!this.depthBiasEnabled) {\n\t\t\t\t\tthis.depthBiasEnabled = true;\n\t\t\t\t\tthis.gl.enable(this.gl.POLYGON_OFFSET_FILL);\n\t\t\t\t}\n\t\t\t\tgl.polygonOffset(depthBiasSlope, depthBias);\n\t\t\t} else {\n\t\t\t\tif (this.depthBiasEnabled) {\n\t\t\t\t\tthis.depthBiasEnabled = false;\n\t\t\t\t\tthis.gl.disable(this.gl.POLYGON_OFFSET_FILL);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcurrentDepthState.copy(depthState);\n\t\t}\n\t}\n\tsetCullMode(cullMode) {\n\t\tif (this.cullMode !== cullMode) {\n\t\t\tif (cullMode === CULLFACE_NONE) {\n\t\t\t\tthis.gl.disable(this.gl.CULL_FACE);\n\t\t\t} else {\n\t\t\t\tif (this.cullMode === CULLFACE_NONE) {\n\t\t\t\t\tthis.gl.enable(this.gl.CULL_FACE);\n\t\t\t\t}\n\t\t\t\tconst mode = this.glCull[cullMode];\n\t\t\t\tif (this.cullFace !== mode) {\n\t\t\t\t\tthis.gl.cullFace(mode);\n\t\t\t\t\tthis.cullFace = mode;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.cullMode = cullMode;\n\t\t}\n\t}\n\tsetShader(shader, asyncCompile = false) {\n\t\tif (shader !== this.shader) {\n\t\t\tthis.shader = shader;\n\t\t\tthis.shaderAsyncCompile = asyncCompile;\n\t\t\tthis.shaderValid = undefined;\n\t\t}\n\t}\n\tactivateShader(device) {\n\t\tconst {\n\t\t\tshader\n\t\t} = this;\n\t\tconst {\n\t\t\timpl\n\t\t} = shader;\n\t\tif (this.shaderValid === undefined) {\n\t\t\tif (shader.failed) {\n\t\t\t\tthis.shaderValid = false;\n\t\t\t} else if (!shader.ready) {\n\t\t\t\tif (this.shaderAsyncCompile) {\n\t\t\t\t\tif (impl.isLinked(device)) {\n\t\t\t\t\t\tif (!impl.finalize(this, shader)) {\n\t\t\t\t\t\t\tshader.failed = true;\n\t\t\t\t\t\t\tthis.shaderValid = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.shaderValid = false;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (!impl.finalize(this, shader)) {\n\t\t\t\t\t\tshader.failed = true;\n\t\t\t\t\t\tthis.shaderValid = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this.shaderValid === undefined) {\n\t\t\tthis.gl.useProgram(impl.glProgram);\n\t\t\tthis.shaderValid = true;\n\t\t}\n\t}\n\tclearVertexArrayObjectCache() {\n\t\tconst gl = this.gl;\n\t\tthis._vaoMap.forEach((item, key, mapObj) => {\n\t\t\tgl.deleteVertexArray(item);\n\t\t});\n\t\tthis._vaoMap.clear();\n\t}\n\tset fullscreen(fullscreen) {\n\t\tif (fullscreen) {\n\t\t\tconst canvas = this.gl.canvas;\n\t\t\tcanvas.requestFullscreen();\n\t\t} else {\n\t\t\tdocument.exitFullscreen();\n\t\t}\n\t}\n\tget fullscreen() {\n\t\treturn !!document.fullscreenElement;\n\t}\n\tget textureFloatHighPrecision() {\n\t\tif (this._textureFloatHighPrecision === undefined) {\n\t\t\tthis._textureFloatHighPrecision = testTextureFloatHighPrecision(this);\n\t\t}\n\t\treturn this._textureFloatHighPrecision;\n\t}\n\tget textureHalfFloatUpdatable() {\n\t\tif (this._textureHalfFloatUpdatable === undefined) {\n\t\t\tif (this.isWebGL2) {\n\t\t\t\tthis._textureHalfFloatUpdatable = true;\n\t\t\t} else {\n\t\t\t\tthis._textureHalfFloatUpdatable = testTextureHalfFloatUpdatable(this.gl, this.extTextureHalfFloat.HALF_FLOAT_OES);\n\t\t\t}\n\t\t}\n\t\treturn this._textureHalfFloatUpdatable;\n\t}\n}\n\nclass NullIndexBuffer {\n\tunlock(indexBuffer) {}\n}\n\nclass NullRenderTarget {\n\tdestroy(device) {}\n\tinit(device, renderTarget) {}\n\tloseContext() {}\n\tresolve(device, target, color, depth) {}\n}\n\nclass NullShader {\n\tdestroy(shader) {}\n\tloseContext() {}\n\trestoreContext(device, shader) {}\n}\n\nclass NullTexture {\n\tdestroy(device) {}\n\tpropertyChanged(flag) {}\n\tloseContext() {}\n}\n\nclass NullVertexBuffer {\n\tdestroy(device) {}\n\tunlock(vertexBuffer) {}\n}\n\nclass NullGraphicsDevice extends GraphicsDevice {\n\tconstructor(canvas, options = {}) {\n\t\tsuper(canvas, options);\n\t\toptions = this.initOptions;\n\t\tthis.isNull = true;\n\t\tthis._deviceType = DEVICETYPE_NULL;\n\t\tthis.samples = 1;\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t}\n\tinitDeviceCaps() {\n\t\tthis.disableParticleSystem = true;\n\t\tthis.precision = 'highp';\n\t\tthis.maxPrecision = 'highp';\n\t\tthis.maxSamples = 4;\n\t\tthis.maxTextures = 16;\n\t\tthis.maxTextureSize = 4096;\n\t\tthis.maxCubeMapSize = 4096;\n\t\tthis.maxVolumeSize = 4096;\n\t\tthis.maxColorAttachments = 8;\n\t\tthis.maxPixelRatio = 1;\n\t\tthis.maxAnisotropy = 16;\n\t\tthis.supportsInstancing = true;\n\t\tthis.supportsUniformBuffers = false;\n\t\tthis.supportsVolumeTextures = true;\n\t\tthis.supportsBoneTextures = true;\n\t\tthis.supportsMorphTargetTexturesCore = true;\n\t\tthis.supportsAreaLights = true;\n\t\tthis.supportsDepthShadow = true;\n\t\tthis.supportsGpuParticles = false;\n\t\tthis.supportsMrt = true;\n\t\tthis.extUintElement = true;\n\t\tthis.extTextureFloat = true;\n\t\tthis.textureFloatRenderable = true;\n\t\tthis.extTextureHalfFloat = true;\n\t\tthis.textureHalfFloatRenderable = true;\n\t\tthis.textureHalfFloatUpdatable = true;\n\t\tthis.boneLimit = 1024;\n\t\tthis.supportsImageBitmap = true;\n\t\tthis.extStandardDerivatives = true;\n\t\tthis.extBlendMinmax = true;\n\t\tthis.areaLightLutFormat = PIXELFORMAT_RGBA8;\n\t\tthis.supportsTextureFetch = true;\n\t}\n\tpostInit() {\n\t\tsuper.postInit();\n\t}\n\tframeStart() {\n\t\tsuper.frameStart();\n\t}\n\tframeEnd() {\n\t\tsuper.frameEnd();\n\t}\n\tupdateBegin() {}\n\tupdateEnd() {}\n\treadPixels(x, y, w, h, pixels) {}\n\tcreateVertexBufferImpl(vertexBuffer, format) {\n\t\treturn new NullVertexBuffer(vertexBuffer, format);\n\t}\n\tcreateIndexBufferImpl(indexBuffer) {\n\t\treturn new NullIndexBuffer(indexBuffer);\n\t}\n\tcreateShaderImpl(shader) {\n\t\treturn new NullShader(shader);\n\t}\n\tcreateTextureImpl(texture) {\n\t\treturn new NullTexture(texture);\n\t}\n\tcreateRenderTargetImpl(renderTarget) {\n\t\treturn new NullRenderTarget(renderTarget);\n\t}\n\tdraw(primitive, numInstances = 1, keepBuffers) {}\n\tsetShader(shader, asyncCompile = false) {}\n\tsetBlendState(blendState) {}\n\tsetDepthState(depthState) {}\n\tsetStencilState(stencilFront, stencilBack) {}\n\tsetBlendColor(r, g, b, a) {}\n\tsetCullMode(cullMode) {}\n\tsetAlphaToCoverage(state) {}\n\tinitializeContextCaches() {\n\t\tsuper.initializeContextCaches();\n\t}\n\tclear(options) {}\n\tsetViewport(x, y, w, h) {}\n\tsetScissor(x, y, w, h) {}\n\tcopyRenderTarget(source, dest, color, depth) {\n\t\treturn true;\n\t}\n}\n\nfunction createGraphicsDevice(canvas, options = {}) {\n\tvar _options$deviceTypes;\n\tconst deviceTypes = (_options$deviceTypes = options.deviceTypes) != null ? _options$deviceTypes : [];\n\tif (!deviceTypes.includes(DEVICETYPE_WEBGL2)) {\n\t\tdeviceTypes.push(DEVICETYPE_WEBGL2);\n\t}\n\tif (!deviceTypes.includes(DEVICETYPE_WEBGL1)) {\n\t\tdeviceTypes.push(DEVICETYPE_WEBGL1);\n\t}\n\tif (!deviceTypes.includes(DEVICETYPE_NULL)) {\n\t\tdeviceTypes.push(DEVICETYPE_NULL);\n\t}\n\tif (platform.browser && !!navigator.xr) {\n\t\tvar _options$xrCompatible;\n\t\t(_options$xrCompatible = options.xrCompatible) != null ? _options$xrCompatible : options.xrCompatible = true;\n\t}\n\tconst deviceCreateFuncs = [];\n\tfor (let i = 0; i < deviceTypes.length; i++) {\n\t\tvar _window;\n\t\tconst deviceType = deviceTypes[i];\n\t\tif (deviceType === DEVICETYPE_WEBGPU && (_window = window) != null && (_window = _window.navigator) != null && _window.gpu) {\n\t\t\tdeviceCreateFuncs.push(() => {\n\t\t\t\tconst device = new WebgpuGraphicsDevice(canvas, options);\n\t\t\t\treturn device.initWebGpu(options.glslangUrl, options.twgslUrl);\n\t\t\t});\n\t\t}\n\t\tif (deviceType === DEVICETYPE_WEBGL1 || deviceType === DEVICETYPE_WEBGL2) {\n\t\t\tdeviceCreateFuncs.push(() => {\n\t\t\t\toptions.preferWebGl2 = deviceType === DEVICETYPE_WEBGL2;\n\t\t\t\treturn new WebglGraphicsDevice(canvas, options);\n\t\t\t});\n\t\t}\n\t\tif (deviceType === DEVICETYPE_NULL) {\n\t\t\tdeviceCreateFuncs.push(() => {\n\t\t\t\treturn new NullGraphicsDevice(canvas, options);\n\t\t\t});\n\t\t}\n\t}\n\treturn new Promise((resolve, reject) => {\n\t\tlet attempt = 0;\n\t\tconst next = () => {\n\t\t\tif (attempt >= deviceCreateFuncs.length) {\n\t\t\t\treject(new Error('Failed to create a graphics device'));\n\t\t\t} else {\n\t\t\t\tPromise.resolve(deviceCreateFuncs[attempt++]()).then(device => {\n\t\t\t\t\tif (device) {\n\t\t\t\t\t\tresolve(device);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnext();\n\t\t\t\t\t}\n\t\t\t\t}).catch(err => {\n\t\t\t\t\tconsole.log(err);\n\t\t\t\t\tnext();\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\t\tnext();\n\t});\n}\n\nclass ComputeParameter {\n\tconstructor() {\n\t\tthis.value = void 0;\n\t\tthis.scopeId = null;\n\t}\n}\nclass Compute {\n\tconstructor(graphicsDevice, shader, name = 'Unnamed') {\n\t\tthis.shader = null;\n\t\tthis.name = void 0;\n\t\tthis.parameters = new Map();\n\t\tthis.countX = 1;\n\t\tthis.countY = void 0;\n\t\tthis.countZ = void 0;\n\t\tthis.device = graphicsDevice;\n\t\tthis.shader = shader;\n\t\tthis.name = name;\n\t\tif (graphicsDevice.supportsCompute) {\n\t\t\tthis.impl = graphicsDevice.createComputeImpl(this);\n\t\t}\n\t}\n\tsetParameter(name, value) {\n\t\tlet param = this.parameters.get(name);\n\t\tif (!param) {\n\t\t\tparam = new ComputeParameter();\n\t\t\tparam.scopeId = this.device.scope.resolve(name);\n\t\t\tthis.parameters.set(name, param);\n\t\t}\n\t\tparam.value = value;\n\t}\n\tgetParameter(name) {\n\t\tvar _this$parameters$get;\n\t\treturn (_this$parameters$get = this.parameters.get(name)) == null ? void 0 : _this$parameters$get.value;\n\t}\n\tdeleteParameter(name) {\n\t\tthis.parameters.delete(name);\n\t}\n\tapplyParameters() {\n\t\tfor (const [, param] of this.parameters) {\n\t\t\tparam.scopeId.setValue(param.value);\n\t\t}\n\t}\n\tsetupDispatch(x, y, z) {\n\t\tthis.countX = x;\n\t\tthis.countY = y;\n\t\tthis.countZ = z;\n\t}\n}\n\nlet id$5 = 0;\nclass IndexBuffer {\n\tconstructor(graphicsDevice, format, numIndices, usage = BUFFER_STATIC, initialData, options) {\n\t\tthis.device = graphicsDevice;\n\t\tthis.format = format;\n\t\tthis.numIndices = numIndices;\n\t\tthis.usage = usage;\n\t\tthis.id = id$5++;\n\t\tthis.impl = graphicsDevice.createIndexBufferImpl(this, options);\n\t\tconst bytesPerIndex = typedArrayIndexFormatsByteSize[format];\n\t\tthis.bytesPerIndex = bytesPerIndex;\n\t\tthis.numBytes = this.numIndices * bytesPerIndex;\n\t\tif (initialData) {\n\t\t\tthis.setData(initialData);\n\t\t} else {\n\t\t\tthis.storage = new ArrayBuffer(this.numBytes);\n\t\t}\n\t\tthis.adjustVramSizeTracking(graphicsDevice._vram, this.numBytes);\n\t\tthis.device.buffers.push(this);\n\t}\n\tdestroy() {\n\t\tconst device = this.device;\n\t\tconst idx = device.buffers.indexOf(this);\n\t\tif (idx !== -1) {\n\t\t\tdevice.buffers.splice(idx, 1);\n\t\t}\n\t\tif (this.device.indexBuffer === this) {\n\t\t\tthis.device.indexBuffer = null;\n\t\t}\n\t\tif (this.impl.initialized) {\n\t\t\tthis.impl.destroy(device);\n\t\t\tthis.adjustVramSizeTracking(device._vram, -this.storage.byteLength);\n\t\t}\n\t}\n\tadjustVramSizeTracking(vram, size) {\n\t\tvram.ib += size;\n\t}\n\tloseContext() {\n\t\tthis.impl.loseContext();\n\t}\n\tgetFormat() {\n\t\treturn this.format;\n\t}\n\tgetNumIndices() {\n\t\treturn this.numIndices;\n\t}\n\tlock() {\n\t\treturn this.storage;\n\t}\n\tunlock() {\n\t\tthis.impl.unlock(this);\n\t}\n\tsetData(data) {\n\t\tif (data.byteLength !== this.numBytes) {\n\t\t\treturn false;\n\t\t}\n\t\tthis.storage = data;\n\t\tthis.unlock();\n\t\treturn true;\n\t}\n\t_lockTypedArray() {\n\t\tconst lock = this.lock();\n\t\tconst indices = this.format === INDEXFORMAT_UINT32 ? new Uint32Array(lock) : this.format === INDEXFORMAT_UINT16 ? new Uint16Array(lock) : new Uint8Array(lock);\n\t\treturn indices;\n\t}\n\twriteData(data, count) {\n\t\tconst indices = this._lockTypedArray();\n\t\tif (data.length > count) {\n\t\t\tif (ArrayBuffer.isView(data)) {\n\t\t\t\tdata = data.subarray(0, count);\n\t\t\t\tindices.set(data);\n\t\t\t} else {\n\t\t\t\tfor (let i = 0; i < count; i++) {\n\t\t\t\t\tindices[i] = data[i];\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tindices.set(data);\n\t\t}\n\t\tthis.unlock();\n\t}\n\treadData(data) {\n\t\tconst indices = this._lockTypedArray();\n\t\tconst count = this.numIndices;\n\t\tif (ArrayBuffer.isView(data)) {\n\t\t\tdata.set(indices);\n\t\t} else {\n\t\t\tdata.length = 0;\n\t\t\tfor (let i = 0; i < count; i++) {\n\t\t\t\tdata[i] = indices[i];\n\t\t\t}\n\t\t}\n\t\treturn count;\n\t}\n}\n\nclass ColorAttachmentOps {\n\tconstructor() {\n\t\tthis.clearValue = new Color(0, 0, 0, 1);\n\t\tthis.clear = false;\n\t\tthis.store = false;\n\t\tthis.resolve = true;\n\t\tthis.mipmaps = false;\n\t}\n}\nclass DepthStencilAttachmentOps {\n\tconstructor() {\n\t\tthis.clearDepthValue = 1;\n\t\tthis.clearStencilValue = 0;\n\t\tthis.clearDepth = false;\n\t\tthis.clearStencil = false;\n\t\tthis.storeDepth = false;\n\t\tthis.storeStencil = false;\n\t}\n}\nclass RenderPass {\n\tget colorOps() {\n\t\treturn this.colorArrayOps[0];\n\t}\n\tconstructor(graphicsDevice) {\n\t\tthis._name = void 0;\n\t\tthis.device = void 0;\n\t\tthis._enabled = true;\n\t\tthis.executeEnabled = true;\n\t\tthis.renderTarget = void 0;\n\t\tthis._options = void 0;\n\t\tthis.samples = 0;\n\t\tthis.colorArrayOps = [];\n\t\tthis.depthStencilOps = void 0;\n\t\tthis.requiresCubemaps = true;\n\t\tthis.fullSizeClearRect = true;\n\t\tthis.beforePasses = [];\n\t\tthis.afterPasses = [];\n\t\tthis.device = graphicsDevice;\n\t}\n\tset name(value) {\n\t\tthis._name = value;\n\t}\n\tget name() {\n\t\tif (!this._name) {\n\t\t\tthis._name = this.constructor.name;\n\t\t}\n\t\treturn this._name;\n\t}\n\tset options(value) {\n\t\tthis._options = value;\n\t\tif (value) {\n\t\t\tvar _this$_options$scaleX, _this$_options$scaleY;\n\t\t\tthis._options.scaleX = (_this$_options$scaleX = this._options.scaleX) != null ? _this$_options$scaleX : 1;\n\t\t\tthis._options.scaleY = (_this$_options$scaleY = this._options.scaleY) != null ? _this$_options$scaleY : 1;\n\t\t}\n\t}\n\tget options() {\n\t\treturn this._options;\n\t}\n\tinit(renderTarget = null, options = null) {\n\t\tvar _renderTarget$_colorB;\n\t\tthis.options = options;\n\t\tthis.renderTarget = renderTarget;\n\t\tthis.samples = Math.max(this.renderTarget ? this.renderTarget.samples : this.device.samples, 1);\n\t\tthis.depthStencilOps = new DepthStencilAttachmentOps();\n\t\tconst numColorOps = renderTarget ? (_renderTarget$_colorB = renderTarget._colorBuffers) == null ? void 0 : _renderTarget$_colorB.length : 1;\n\t\tthis.colorArrayOps.length = 0;\n\t\tfor (let i = 0; i < numColorOps; i++) {\n\t\t\tvar _this$renderTarget;\n\t\t\tconst colorOps = new ColorAttachmentOps();\n\t\t\tthis.colorArrayOps[i] = colorOps;\n\t\t\tif (this.samples === 1) {\n\t\t\t\tcolorOps.store = true;\n\t\t\t\tcolorOps.resolve = false;\n\t\t\t}\n\t\t\tif ((_this$renderTarget = this.renderTarget) != null && (_this$renderTarget = _this$renderTarget._colorBuffers) != null && _this$renderTarget[i].mipmaps) {\n\t\t\t\tcolorOps.mipmaps = true;\n\t\t\t}\n\t\t}\n\t\tthis.postInit();\n\t}\n\tdestroy() {}\n\tpostInit() {}\n\tframeUpdate() {\n\t\tif (this._options && this.renderTarget) {\n\t\t\tvar _this$_options$resize;\n\t\t\tconst resizeSource = (_this$_options$resize = this._options.resizeSource) != null ? _this$_options$resize : this.device.backBuffer;\n\t\t\tconst width = Math.floor(resizeSource.width * this._options.scaleX);\n\t\t\tconst height = Math.floor(resizeSource.height * this._options.scaleY);\n\t\t\tthis.renderTarget.resize(width, height);\n\t\t}\n\t}\n\tbefore() {}\n\texecute() {}\n\tafter() {}\n\tonEnable() {}\n\tonDisable() {}\n\tset enabled(value) {\n\t\tif (this._enabled !== value) {\n\t\t\tthis._enabled = value;\n\t\t\tif (value) {\n\t\t\t\tthis.onEnable();\n\t\t\t} else {\n\t\t\t\tthis.onDisable();\n\t\t\t}\n\t\t}\n\t}\n\tget enabled() {\n\t\treturn this._enabled;\n\t}\n\tsetClearColor(color) {\n\t\tconst count = this.colorArrayOps.length;\n\t\tfor (let i = 0; i < count; i++) {\n\t\t\tconst colorOps = this.colorArrayOps[i];\n\t\t\tif (color) {\n\t\t\t\tcolorOps.clearValue.copy(color);\n\t\t\t}\n\t\t\tcolorOps.clear = !!color;\n\t\t}\n\t}\n\tsetClearDepth(depthValue) {\n\t\tif (depthValue) {\n\t\t\tthis.depthStencilOps.clearDepthValue = depthValue;\n\t\t}\n\t\tthis.depthStencilOps.clearDepth = depthValue !== undefined;\n\t}\n\tsetClearStencil(stencilValue) {\n\t\tif (stencilValue) {\n\t\t\tthis.depthStencilOps.clearStencilValue = stencilValue;\n\t\t}\n\t\tthis.depthStencilOps.clearStencil = stencilValue !== undefined;\n\t}\n\trender() {\n\t\tif (this.enabled) {\n\t\t\tconst device = this.device;\n\t\t\tconst realPass = this.renderTarget !== undefined;\n\t\t\tthis.before();\n\t\t\tif (this.executeEnabled) {\n\t\t\t\tif (realPass) {\n\t\t\t\t\tdevice.startRenderPass(this);\n\t\t\t\t}\n\t\t\t\tthis.execute();\n\t\t\t\tif (realPass) {\n\t\t\t\t\tdevice.endRenderPass(this);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.after();\n\t\t\tdevice.renderPassIndex++;\n\t\t}\n\t}\n}\n\nclass ShaderProcessorOptions {\n\tconstructor(viewUniformFormat, viewBindGroupFormat, vertexFormat) {\n\t\tthis.uniformFormats = [];\n\t\tthis.bindGroupFormats = [];\n\t\tthis.vertexFormat = void 0;\n\t\tthis.uniformFormats[BINDGROUP_VIEW] = viewUniformFormat;\n\t\tthis.bindGroupFormats[BINDGROUP_VIEW] = viewBindGroupFormat;\n\t\tthis.vertexFormat = vertexFormat;\n\t}\n\thasUniform(name) {\n\t\tfor (let i = 0; i < this.uniformFormats.length; i++) {\n\t\t\tconst uniformFormat = this.uniformFormats[i];\n\t\t\tif (uniformFormat != null && uniformFormat.get(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\thasTexture(name) {\n\t\tfor (let i = 0; i < this.bindGroupFormats.length; i++) {\n\t\t\tconst groupFormat = this.bindGroupFormats[i];\n\t\t\tif (groupFormat != null && groupFormat.getTexture(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\tgetVertexElement(semantic) {\n\t\tvar _this$vertexFormat;\n\t\treturn (_this$vertexFormat = this.vertexFormat) == null ? void 0 : _this$vertexFormat.elements.find(element => element.name === semantic);\n\t}\n\tgenerateKey(device) {\n\t\tlet key = JSON.stringify(this.uniformFormats) + JSON.stringify(this.bindGroupFormats);\n\t\tif (device.isWebGPU) {\n\t\t\tvar _this$vertexFormat2;\n\t\t\tkey += (_this$vertexFormat2 = this.vertexFormat) == null ? void 0 : _this$vertexFormat2.shaderProcessingHashString;\n\t\t}\n\t\treturn key;\n\t}\n}\n\nlet id$4 = 0;\nclass StorageBuffer {\n\tconstructor(graphicsDevice, byteSize, bufferUsage = 0) {\n\t\tthis.id = id$4++;\n\t\tthis.device = graphicsDevice;\n\t\tthis.byteSize = byteSize;\n\t\tthis.bufferUsage = bufferUsage;\n\t\tthis.impl = graphicsDevice.createBufferImpl(BUFFERUSAGE_STORAGE | bufferUsage);\n\t\tthis.impl.allocate(graphicsDevice, byteSize);\n\t\tthis.device.buffers.push(this);\n\t\tthis.adjustVramSizeTracking(graphicsDevice._vram, this.byteSize);\n\t}\n\tdestroy() {\n\t\tconst device = this.device;\n\t\tconst idx = device.buffers.indexOf(this);\n\t\tif (idx !== -1) {\n\t\t\tdevice.buffers.splice(idx, 1);\n\t\t}\n\t\tthis.adjustVramSizeTracking(device._vram, -this.byteSize);\n\t\tthis.impl.destroy(device);\n\t}\n\tadjustVramSizeTracking(vram, size) {\n\t\tvram.sb += size;\n\t}\n\tread(offset = 0, size = this.byteSize, data = null) {\n\t\treturn this.impl.read(this.device, offset, size, data);\n\t}\n\twrite(bufferOffset = 0, data, dataOffset = 0, size) {\n\t\tthis.impl.write(this.device, bufferOffset, data, dataOffset, size);\n\t}\n\tclear(offset = 0, size = this.byteSize) {\n\t\tthis.impl.clear(this.device, offset, size);\n\t}\n}\n\nclass TransformFeedback {\n\tconstructor(inputBuffer, usage = BUFFER_GPUDYNAMIC) {\n\t\tthis.device = inputBuffer.device;\n\t\tconst gl = this.device.gl;\n\t\tthis._inputBuffer = inputBuffer;\n\t\tif (usage === BUFFER_GPUDYNAMIC && inputBuffer.usage !== usage) {\n\t\t\tgl.bindBuffer(gl.ARRAY_BUFFER, inputBuffer.impl.bufferId);\n\t\t\tgl.bufferData(gl.ARRAY_BUFFER, inputBuffer.storage, gl.DYNAMIC_COPY);\n\t\t}\n\t\tthis._outputBuffer = new VertexBuffer(inputBuffer.device, inputBuffer.format, inputBuffer.numVertices, {\n\t\t\tusage: usage,\n\t\t\tdata: inputBuffer.storage\n\t\t});\n\t}\n\tstatic createShader(graphicsDevice, vertexCode, name) {\n\t\treturn new Shader(graphicsDevice, ShaderUtils.createDefinition(graphicsDevice, {\n\t\t\tname,\n\t\t\tvertexCode,\n\t\t\tuseTransformFeedback: true\n\t\t}));\n\t}\n\tdestroy() {\n\t\tthis._outputBuffer.destroy();\n\t}\n\tprocess(shader, swap = true) {\n\t\tconst device = this.device;\n\t\tconst oldRt = device.getRenderTarget();\n\t\tdevice.setRenderTarget(null);\n\t\tdevice.updateBegin();\n\t\tdevice.setVertexBuffer(this._inputBuffer, 0);\n\t\tdevice.setRaster(false);\n\t\tdevice.setTransformFeedbackBuffer(this._outputBuffer);\n\t\tdevice.setShader(shader);\n\t\tdevice.draw({\n\t\t\ttype: PRIMITIVE_POINTS,\n\t\t\tbase: 0,\n\t\t\tcount: this._inputBuffer.numVertices,\n\t\t\tindexed: false\n\t\t});\n\t\tdevice.setTransformFeedbackBuffer(null);\n\t\tdevice.setRaster(true);\n\t\tdevice.updateEnd();\n\t\tdevice.setRenderTarget(oldRt);\n\t\tif (swap) {\n\t\t\tlet tmp = this._inputBuffer.impl.bufferId;\n\t\t\tthis._inputBuffer.impl.bufferId = this._outputBuffer.impl.bufferId;\n\t\t\tthis._outputBuffer.impl.bufferId = tmp;\n\t\t\ttmp = this._inputBuffer.impl.vao;\n\t\t\tthis._inputBuffer.impl.vao = this._outputBuffer.impl.vao;\n\t\t\tthis._outputBuffer.impl.vao = tmp;\n\t\t}\n\t}\n\tget inputBuffer() {\n\t\treturn this._inputBuffer;\n\t}\n\tget outputBuffer() {\n\t\treturn this._outputBuffer;\n\t}\n}\n\nfunction set1(a) {\n\tthis.array[this.index] = a;\n}\nfunction set2(a, b) {\n\tthis.array[this.index] = a;\n\tthis.array[this.index + 1] = b;\n}\nfunction set3(a, b, c) {\n\tthis.array[this.index] = a;\n\tthis.array[this.index + 1] = b;\n\tthis.array[this.index + 2] = c;\n}\nfunction set4(a, b, c, d) {\n\tthis.array[this.index] = a;\n\tthis.array[this.index + 1] = b;\n\tthis.array[this.index + 2] = c;\n\tthis.array[this.index + 3] = d;\n}\nfunction arraySet1(index, inputArray, inputIndex) {\n\tthis.array[index] = inputArray[inputIndex];\n}\nfunction arraySet2(index, inputArray, inputIndex) {\n\tthis.array[index] = inputArray[inputIndex];\n\tthis.array[index + 1] = inputArray[inputIndex + 1];\n}\nfunction arraySet3(index, inputArray, inputIndex) {\n\tthis.array[index] = inputArray[inputIndex];\n\tthis.array[index + 1] = inputArray[inputIndex + 1];\n\tthis.array[index + 2] = inputArray[inputIndex + 2];\n}\nfunction arraySet4(index, inputArray, inputIndex) {\n\tthis.array[index] = inputArray[inputIndex];\n\tthis.array[index + 1] = inputArray[inputIndex + 1];\n\tthis.array[index + 2] = inputArray[inputIndex + 2];\n\tthis.array[index + 3] = inputArray[inputIndex + 3];\n}\nfunction arrayGet1(offset, outputArray, outputIndex) {\n\toutputArray[outputIndex] = this.array[offset];\n}\nfunction arrayGet2(offset, outputArray, outputIndex) {\n\toutputArray[outputIndex] = this.array[offset];\n\toutputArray[outputIndex + 1] = this.array[offset + 1];\n}\nfunction arrayGet3(offset, outputArray, outputIndex) {\n\toutputArray[outputIndex] = this.array[offset];\n\toutputArray[outputIndex + 1] = this.array[offset + 1];\n\toutputArray[outputIndex + 2] = this.array[offset + 2];\n}\nfunction arrayGet4(offset, outputArray, outputIndex) {\n\toutputArray[outputIndex] = this.array[offset];\n\toutputArray[outputIndex + 1] = this.array[offset + 1];\n\toutputArray[outputIndex + 2] = this.array[offset + 2];\n\toutputArray[outputIndex + 3] = this.array[offset + 3];\n}\nclass VertexIteratorAccessor {\n\tconstructor(buffer, vertexElement, vertexFormat) {\n\t\tthis.index = 0;\n\t\tthis.numComponents = vertexElement.numComponents;\n\t\tif (vertexFormat.interleaved) {\n\t\t\tthis.array = new typedArrayTypes[vertexElement.dataType](buffer, vertexElement.offset);\n\t\t} else {\n\t\t\tthis.array = new typedArrayTypes[vertexElement.dataType](buffer, vertexElement.offset, vertexFormat.vertexCount * vertexElement.numComponents);\n\t\t}\n\t\tthis.stride = vertexElement.stride / this.array.constructor.BYTES_PER_ELEMENT;\n\t\tswitch (vertexElement.numComponents) {\n\t\t\tcase 1:\n\t\t\t\tthis.set = set1;\n\t\t\t\tthis.getToArray = arrayGet1;\n\t\t\t\tthis.setFromArray = arraySet1;\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tthis.set = set2;\n\t\t\t\tthis.getToArray = arrayGet2;\n\t\t\t\tthis.setFromArray = arraySet2;\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tthis.set = set3;\n\t\t\t\tthis.getToArray = arrayGet3;\n\t\t\t\tthis.setFromArray = arraySet3;\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\tthis.set = set4;\n\t\t\t\tthis.getToArray = arrayGet4;\n\t\t\t\tthis.setFromArray = arraySet4;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tget(offset) {\n\t\treturn this.array[this.index + offset];\n\t}\n\tset(a, b, c, d) {}\n\tgetToArray(offset, outputArray, outputIndex) {}\n\tsetFromArray(index, inputArray, inputIndex) {}\n}\nclass VertexIterator {\n\tconstructor(vertexBuffer) {\n\t\tthis.vertexBuffer = vertexBuffer;\n\t\tthis.vertexFormatSize = vertexBuffer.getFormat().size;\n\t\tthis.buffer = this.vertexBuffer.lock();\n\t\tthis.accessors = [];\n\t\tthis.element = {};\n\t\tconst vertexFormat = this.vertexBuffer.getFormat();\n\t\tfor (let i = 0; i < vertexFormat.elements.length; i++) {\n\t\t\tconst vertexElement = vertexFormat.elements[i];\n\t\t\tthis.accessors[i] = new VertexIteratorAccessor(this.buffer, vertexElement, vertexFormat);\n\t\t\tthis.element[vertexElement.name] = this.accessors[i];\n\t\t}\n\t}\n\tnext(count = 1) {\n\t\tlet i = 0;\n\t\tconst accessors = this.accessors;\n\t\tconst numAccessors = this.accessors.length;\n\t\twhile (i < numAccessors) {\n\t\t\tconst accessor = accessors[i++];\n\t\t\taccessor.index += count * accessor.stride;\n\t\t}\n\t}\n\tend() {\n\t\tthis.vertexBuffer.unlock();\n\t}\n\twriteData(semantic, data, numVertices) {\n\t\tconst element = this.element[semantic];\n\t\tif (element) {\n\t\t\tif (numVertices > this.vertexBuffer.numVertices) {\n\t\t\t\tnumVertices = this.vertexBuffer.numVertices;\n\t\t\t}\n\t\t\tconst numComponents = element.numComponents;\n\t\t\tif (this.vertexBuffer.getFormat().interleaved) {\n\t\t\t\tlet index = 0;\n\t\t\t\tfor (let i = 0; i < numVertices; i++) {\n\t\t\t\t\telement.setFromArray(index, data, i * numComponents);\n\t\t\t\t\tindex += element.stride;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (data.length > numVertices * numComponents) {\n\t\t\t\t\tconst copyCount = numVertices * numComponents;\n\t\t\t\t\tif (ArrayBuffer.isView(data)) {\n\t\t\t\t\t\tdata = data.subarray(0, copyCount);\n\t\t\t\t\t\telement.array.set(data);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (let i = 0; i < copyCount; i++) {\n\t\t\t\t\t\t\telement.array[i] = data[i];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\telement.array.set(data);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treadData(semantic, data) {\n\t\tconst element = this.element[semantic];\n\t\tlet count = 0;\n\t\tif (element) {\n\t\t\tcount = this.vertexBuffer.numVertices;\n\t\t\tlet i;\n\t\t\tconst numComponents = element.numComponents;\n\t\t\tif (this.vertexBuffer.getFormat().interleaved) {\n\t\t\t\tif (Array.isArray(data)) {\n\t\t\t\t\tdata.length = 0;\n\t\t\t\t}\n\t\t\t\telement.index = 0;\n\t\t\t\tlet offset = 0;\n\t\t\t\tfor (i = 0; i < count; i++) {\n\t\t\t\t\telement.getToArray(offset, data, i * numComponents);\n\t\t\t\t\toffset += element.stride;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (ArrayBuffer.isView(data)) {\n\t\t\t\t\tdata.set(element.array);\n\t\t\t\t} else {\n\t\t\t\t\tdata.length = 0;\n\t\t\t\t\tconst copyCount = count * numComponents;\n\t\t\t\t\tfor (i = 0; i < copyCount; i++) {\n\t\t\t\t\t\tdata[i] = element.array[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn count;\n\t}\n}\n\nconst ACTION_MOUSE = 'mouse';\nconst ACTION_KEYBOARD = 'keyboard';\nconst ACTION_GAMEPAD = 'gamepad';\nconst AXIS_MOUSE_X = 'mousex';\nconst AXIS_MOUSE_Y = 'mousey';\nconst AXIS_PAD_L_X = 'padlx';\nconst AXIS_PAD_L_Y = 'padly';\nconst AXIS_PAD_R_X = 'padrx';\nconst AXIS_PAD_R_Y = 'padry';\nconst AXIS_KEY = 'key';\nconst EVENT_KEYDOWN = 'keydown';\nconst EVENT_KEYUP = 'keyup';\nconst EVENT_MOUSEDOWN = 'mousedown';\nconst EVENT_MOUSEMOVE = 'mousemove';\nconst EVENT_MOUSEUP = 'mouseup';\nconst EVENT_MOUSEWHEEL = 'mousewheel';\nconst EVENT_TOUCHSTART = 'touchstart';\nconst EVENT_TOUCHEND = 'touchend';\nconst EVENT_TOUCHMOVE = 'touchmove';\nconst EVENT_TOUCHCANCEL = 'touchcancel';\nconst EVENT_SELECT = 'select';\nconst EVENT_SELECTSTART = 'selectstart';\nconst EVENT_SELECTEND = 'selectend';\nconst KEY_BACKSPACE = 8;\nconst KEY_TAB = 9;\nconst KEY_RETURN = 13;\nconst KEY_ENTER = 13;\nconst KEY_SHIFT = 16;\nconst KEY_CONTROL = 17;\nconst KEY_ALT = 18;\nconst KEY_PAUSE = 19;\nconst KEY_CAPS_LOCK = 20;\nconst KEY_ESCAPE = 27;\nconst KEY_SPACE = 32;\nconst KEY_PAGE_UP = 33;\nconst KEY_PAGE_DOWN = 34;\nconst KEY_END = 35;\nconst KEY_HOME = 36;\nconst KEY_LEFT = 37;\nconst KEY_UP = 38;\nconst KEY_RIGHT = 39;\nconst KEY_DOWN = 40;\nconst KEY_PRINT_SCREEN = 44;\nconst KEY_INSERT = 45;\nconst KEY_DELETE = 46;\nconst KEY_0 = 48;\nconst KEY_1 = 49;\nconst KEY_2 = 50;\nconst KEY_3 = 51;\nconst KEY_4 = 52;\nconst KEY_5 = 53;\nconst KEY_6 = 54;\nconst KEY_7 = 55;\nconst KEY_8 = 56;\nconst KEY_9 = 57;\nconst KEY_SEMICOLON = 59;\nconst KEY_EQUAL = 61;\nconst KEY_A = 65;\nconst KEY_B = 66;\nconst KEY_C = 67;\nconst KEY_D = 68;\nconst KEY_E = 69;\nconst KEY_F = 70;\nconst KEY_G = 71;\nconst KEY_H = 72;\nconst KEY_I = 73;\nconst KEY_J = 74;\nconst KEY_K = 75;\nconst KEY_L = 76;\nconst KEY_M = 77;\nconst KEY_N = 78;\nconst KEY_O = 79;\nconst KEY_P = 80;\nconst KEY_Q = 81;\nconst KEY_R = 82;\nconst KEY_S = 83;\nconst KEY_T = 84;\nconst KEY_U = 85;\nconst KEY_V = 86;\nconst KEY_W = 87;\nconst KEY_X = 88;\nconst KEY_Y = 89;\nconst KEY_Z = 90;\nconst KEY_WINDOWS = 91;\nconst KEY_CONTEXT_MENU = 93;\nconst KEY_NUMPAD_0 = 96;\nconst KEY_NUMPAD_1 = 97;\nconst KEY_NUMPAD_2 = 98;\nconst KEY_NUMPAD_3 = 99;\nconst KEY_NUMPAD_4 = 100;\nconst KEY_NUMPAD_5 = 101;\nconst KEY_NUMPAD_6 = 102;\nconst KEY_NUMPAD_7 = 103;\nconst KEY_NUMPAD_8 = 104;\nconst KEY_NUMPAD_9 = 105;\nconst KEY_MULTIPLY = 106;\nconst KEY_ADD = 107;\nconst KEY_SEPARATOR = 108;\nconst KEY_SUBTRACT = 109;\nconst KEY_DECIMAL = 110;\nconst KEY_DIVIDE = 111;\nconst KEY_F1 = 112;\nconst KEY_F2 = 113;\nconst KEY_F3 = 114;\nconst KEY_F4 = 115;\nconst KEY_F5 = 116;\nconst KEY_F6 = 117;\nconst KEY_F7 = 118;\nconst KEY_F8 = 119;\nconst KEY_F9 = 120;\nconst KEY_F10 = 121;\nconst KEY_F11 = 122;\nconst KEY_F12 = 123;\nconst KEY_COMMA = 188;\nconst KEY_PERIOD = 190;\nconst KEY_SLASH = 191;\nconst KEY_OPEN_BRACKET = 219;\nconst KEY_BACK_SLASH = 220;\nconst KEY_CLOSE_BRACKET = 221;\nconst KEY_META = 224;\nconst MOUSEBUTTON_NONE = -1;\nconst MOUSEBUTTON_LEFT = 0;\nconst MOUSEBUTTON_MIDDLE = 1;\nconst MOUSEBUTTON_RIGHT = 2;\nconst PAD_1 = 0;\nconst PAD_2 = 1;\nconst PAD_3 = 2;\nconst PAD_4 = 3;\nconst PAD_FACE_1 = 0;\nconst PAD_FACE_2 = 1;\nconst PAD_FACE_3 = 2;\nconst PAD_FACE_4 = 3;\nconst PAD_L_SHOULDER_1 = 4;\nconst PAD_R_SHOULDER_1 = 5;\nconst PAD_L_SHOULDER_2 = 6;\nconst PAD_R_SHOULDER_2 = 7;\nconst PAD_SELECT = 8;\nconst PAD_START = 9;\nconst PAD_L_STICK_BUTTON = 10;\nconst PAD_R_STICK_BUTTON = 11;\nconst PAD_UP = 12;\nconst PAD_DOWN = 13;\nconst PAD_LEFT = 14;\nconst PAD_RIGHT = 15;\nconst PAD_VENDOR = 16;\nconst PAD_L_STICK_X = 0;\nconst PAD_L_STICK_Y = 1;\nconst PAD_R_STICK_X = 2;\nconst PAD_R_STICK_Y = 3;\nconst EVENT_GAMEPADCONNECTED = 'gamepadconnected';\nconst EVENT_GAMEPADDISCONNECTED = 'gamepaddisconnected';\nconst XRPAD_TOUCHPAD_X = 0;\nconst XRPAD_TOUCHPAD_Y = 1;\nconst XRPAD_STICK_X = 2;\nconst XRPAD_STICK_Y = 3;\nconst XRPAD_TOUCHPAD_BUTTON = 2;\nconst XRPAD_TRIGGER = 0;\nconst XRPAD_SQUEEZE = 1;\nconst XRPAD_STICK_BUTTON = 3;\nconst XRPAD_A = 4;\nconst XRPAD_B = 5;\n\nclass KeyboardEvent {\n\tconstructor(keyboard, event) {\n\t\tthis.key = null;\n\t\tthis.element = null;\n\t\tthis.event = null;\n\t\tif (event) {\n\t\t\tthis.key = event.keyCode;\n\t\t\tthis.element = event.target;\n\t\t\tthis.event = event;\n\t\t}\n\t}\n}\n\nconst _keyboardEvent = new KeyboardEvent();\nfunction makeKeyboardEvent(event) {\n\t_keyboardEvent.key = event.keyCode;\n\t_keyboardEvent.element = event.target;\n\t_keyboardEvent.event = event;\n\treturn _keyboardEvent;\n}\nfunction toKeyCode(s) {\n\tif (typeof s === 'string') {\n\t\treturn s.toUpperCase().charCodeAt(0);\n\t}\n\treturn s;\n}\nconst _keyCodeToKeyIdentifier = {\n\t'9': 'Tab',\n\t'13': 'Enter',\n\t'16': 'Shift',\n\t'17': 'Control',\n\t'18': 'Alt',\n\t'27': 'Escape',\n\t'37': 'Left',\n\t'38': 'Up',\n\t'39': 'Right',\n\t'40': 'Down',\n\t'46': 'Delete',\n\t'91': 'Win'\n};\nclass Keyboard extends EventHandler {\n\tconstructor(element, options = {}) {\n\t\tsuper();\n\t\tthis._element = null;\n\t\tthis._keymap = {};\n\t\tthis._lastmap = {};\n\t\tthis._keyDownHandler = this._handleKeyDown.bind(this);\n\t\tthis._keyUpHandler = this._handleKeyUp.bind(this);\n\t\tthis._keyPressHandler = this._handleKeyPress.bind(this);\n\t\tthis._visibilityChangeHandler = this._handleVisibilityChange.bind(this);\n\t\tthis._windowBlurHandler = this._handleWindowBlur.bind(this);\n\t\tif (element) {\n\t\t\tthis.attach(element);\n\t\t}\n\t\tthis.preventDefault = options.preventDefault || false;\n\t\tthis.stopPropagation = options.stopPropagation || false;\n\t}\n\tattach(element) {\n\t\tif (this._element) {\n\t\t\tthis.detach();\n\t\t}\n\t\tthis._element = element;\n\t\tthis._element.addEventListener('keydown', this._keyDownHandler, false);\n\t\tthis._element.addEventListener('keypress', this._keyPressHandler, false);\n\t\tthis._element.addEventListener('keyup', this._keyUpHandler, false);\n\t\tdocument.addEventListener('visibilitychange', this._visibilityChangeHandler, false);\n\t\twindow.addEventListener('blur', this._windowBlurHandler, false);\n\t}\n\tdetach() {\n\t\tif (!this._element) {\n\t\t\treturn;\n\t\t}\n\t\tthis._element.removeEventListener('keydown', this._keyDownHandler);\n\t\tthis._element.removeEventListener('keypress', this._keyPressHandler);\n\t\tthis._element.removeEventListener('keyup', this._keyUpHandler);\n\t\tthis._element = null;\n\t\tdocument.removeEventListener('visibilitychange', this._visibilityChangeHandler, false);\n\t\twindow.removeEventListener('blur', this._windowBlurHandler, false);\n\t}\n\ttoKeyIdentifier(keyCode) {\n\t\tkeyCode = toKeyCode(keyCode);\n\t\tconst id = _keyCodeToKeyIdentifier[keyCode.toString()];\n\t\tif (id) {\n\t\t\treturn id;\n\t\t}\n\t\tlet hex = keyCode.toString(16).toUpperCase();\n\t\tconst length = hex.length;\n\t\tfor (let count = 0; count < 4 - length; count++) {\n\t\t\thex = `0${hex}`;\n\t\t}\n\t\treturn `U+${hex}`;\n\t}\n\t_handleKeyDown(event) {\n\t\tconst code = event.keyCode || event.charCode;\n\t\tif (code === undefined) return;\n\t\tconst id = this.toKeyIdentifier(code);\n\t\tthis._keymap[id] = true;\n\t\tthis.fire('keydown', makeKeyboardEvent(event));\n\t\tif (this.preventDefault) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t\tif (this.stopPropagation) {\n\t\t\tevent.stopPropagation();\n\t\t}\n\t}\n\t_handleKeyUp(event) {\n\t\tconst code = event.keyCode || event.charCode;\n\t\tif (code === undefined) return;\n\t\tconst id = this.toKeyIdentifier(code);\n\t\tdelete this._keymap[id];\n\t\tthis.fire('keyup', makeKeyboardEvent(event));\n\t\tif (this.preventDefault) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t\tif (this.stopPropagation) {\n\t\t\tevent.stopPropagation();\n\t\t}\n\t}\n\t_handleKeyPress(event) {\n\t\tthis.fire('keypress', makeKeyboardEvent(event));\n\t\tif (this.preventDefault) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t\tif (this.stopPropagation) {\n\t\t\tevent.stopPropagation();\n\t\t}\n\t}\n\t_handleVisibilityChange() {\n\t\tif (document.visibilityState === 'hidden') {\n\t\t\tthis._handleWindowBlur();\n\t\t}\n\t}\n\t_handleWindowBlur() {\n\t\tthis._keymap = {};\n\t\tthis._lastmap = {};\n\t}\n\tupdate() {\n\t\tfor (const prop in this._lastmap) {\n\t\t\tdelete this._lastmap[prop];\n\t\t}\n\t\tfor (const prop in this._keymap) {\n\t\t\tif (this._keymap.hasOwnProperty(prop)) {\n\t\t\t\tthis._lastmap[prop] = this._keymap[prop];\n\t\t\t}\n\t\t}\n\t}\n\tisPressed(key) {\n\t\tconst keyCode = toKeyCode(key);\n\t\tconst id = this.toKeyIdentifier(keyCode);\n\t\treturn !!this._keymap[id];\n\t}\n\twasPressed(key) {\n\t\tconst keyCode = toKeyCode(key);\n\t\tconst id = this.toKeyIdentifier(keyCode);\n\t\treturn !!this._keymap[id] && !!!this._lastmap[id];\n\t}\n\twasReleased(key) {\n\t\tconst keyCode = toKeyCode(key);\n\t\tconst id = this.toKeyIdentifier(keyCode);\n\t\treturn !!!this._keymap[id] && !!this._lastmap[id];\n\t}\n}\nKeyboard.EVENT_KEYDOWN = 'keydown';\nKeyboard.EVENT_KEYUP = 'keyup';\n\nfunction isMousePointerLocked() {\n\treturn !!(document.pointerLockElement || document.mozPointerLockElement || document.webkitPointerLockElement);\n}\nclass MouseEvent {\n\tconstructor(mouse, event) {\n\t\tvar _event$ctrlKey, _event$altKey, _event$shiftKey, _event$metaKey;\n\t\tthis.x = 0;\n\t\tthis.y = 0;\n\t\tthis.dx = 0;\n\t\tthis.dy = 0;\n\t\tthis.button = MOUSEBUTTON_NONE;\n\t\tthis.wheelDelta = 0;\n\t\tthis.element = void 0;\n\t\tthis.ctrlKey = false;\n\t\tthis.altKey = false;\n\t\tthis.shiftKey = false;\n\t\tthis.metaKey = false;\n\t\tthis.event = void 0;\n\t\tlet coords = {\n\t\t\tx: 0,\n\t\t\ty: 0\n\t\t};\n\t\tif (event) {\n\t\t\tif (event instanceof MouseEvent) {\n\t\t\t\tthrow Error('Expected MouseEvent');\n\t\t\t}\n\t\t\tcoords = mouse._getTargetCoords(event);\n\t\t} else {\n\t\t\tevent = {};\n\t\t}\n\t\tif (coords) {\n\t\t\tthis.x = coords.x;\n\t\t\tthis.y = coords.y;\n\t\t} else if (isMousePointerLocked()) {\n\t\t\tthis.x = 0;\n\t\t\tthis.y = 0;\n\t\t} else {\n\t\t\treturn;\n\t\t}\n\t\tif (event.type === 'wheel') {\n\t\t\tif (event.deltaY > 0) {\n\t\t\t\tthis.wheelDelta = 1;\n\t\t\t} else if (event.deltaY < 0) {\n\t\t\t\tthis.wheelDelta = -1;\n\t\t\t}\n\t\t}\n\t\tif (isMousePointerLocked()) {\n\t\t\tthis.dx = event.movementX || event.webkitMovementX || event.mozMovementX || 0;\n\t\t\tthis.dy = event.movementY || event.webkitMovementY || event.mozMovementY || 0;\n\t\t} else {\n\t\t\tthis.dx = this.x - mouse._lastX;\n\t\t\tthis.dy = this.y - mouse._lastY;\n\t\t}\n\t\tif (event.type === 'mousedown' || event.type === 'mouseup') {\n\t\t\tthis.button = event.button;\n\t\t}\n\t\tthis.buttons = mouse._buttons.slice(0);\n\t\tthis.element = event.target;\n\t\tthis.ctrlKey = (_event$ctrlKey = event.ctrlKey) != null ? _event$ctrlKey : false;\n\t\tthis.altKey = (_event$altKey = event.altKey) != null ? _event$altKey : false;\n\t\tthis.shiftKey = (_event$shiftKey = event.shiftKey) != null ? _event$shiftKey : false;\n\t\tthis.metaKey = (_event$metaKey = event.metaKey) != null ? _event$metaKey : false;\n\t\tthis.event = event;\n\t}\n}\n\nclass Mouse extends EventHandler {\n\tconstructor(element) {\n\t\tsuper();\n\t\tthis._lastX = 0;\n\t\tthis._lastY = 0;\n\t\tthis._buttons = [false, false, false];\n\t\tthis._lastbuttons = [false, false, false];\n\t\tthis._target = null;\n\t\tthis._attached = false;\n\t\tthis._upHandler = this._handleUp.bind(this);\n\t\tthis._downHandler = this._handleDown.bind(this);\n\t\tthis._moveHandler = this._handleMove.bind(this);\n\t\tthis._wheelHandler = this._handleWheel.bind(this);\n\t\tthis._contextMenuHandler = event => {\n\t\t\tevent.preventDefault();\n\t\t};\n\t\tthis.attach(element);\n\t}\n\tstatic isPointerLocked() {\n\t\treturn isMousePointerLocked();\n\t}\n\tattach(element) {\n\t\tthis._target = element;\n\t\tif (this._attached) return;\n\t\tthis._attached = true;\n\t\tconst passiveOptions = {\n\t\t\tpassive: false\n\t\t};\n\t\tconst options = platform.passiveEvents ? passiveOptions : false;\n\t\twindow.addEventListener('mouseup', this._upHandler, options);\n\t\twindow.addEventListener('mousedown', this._downHandler, options);\n\t\twindow.addEventListener('mousemove', this._moveHandler, options);\n\t\twindow.addEventListener('wheel', this._wheelHandler, options);\n\t}\n\tdetach() {\n\t\tif (!this._attached) return;\n\t\tthis._attached = false;\n\t\tthis._target = null;\n\t\tconst passiveOptions = {\n\t\t\tpassive: false\n\t\t};\n\t\tconst options = platform.passiveEvents ? passiveOptions : false;\n\t\twindow.removeEventListener('mouseup', this._upHandler, options);\n\t\twindow.removeEventListener('mousedown', this._downHandler, options);\n\t\twindow.removeEventListener('mousemove', this._moveHandler, options);\n\t\twindow.removeEventListener('wheel', this._wheelHandler, options);\n\t}\n\tdisableContextMenu() {\n\t\tif (!this._target) return;\n\t\tthis._target.addEventListener('contextmenu', this._contextMenuHandler);\n\t}\n\tenableContextMenu() {\n\t\tif (!this._target) return;\n\t\tthis._target.removeEventListener('contextmenu', this._contextMenuHandler);\n\t}\n\tenablePointerLock(success, error) {\n\t\tif (!document.body.requestPointerLock) {\n\t\t\tif (error) {\n\t\t\t\terror();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tconst s = () => {\n\t\t\tsuccess();\n\t\t\tdocument.removeEventListener('pointerlockchange', s);\n\t\t};\n\t\tconst e = () => {\n\t\t\terror();\n\t\t\tdocument.removeEventListener('pointerlockerror', e);\n\t\t};\n\t\tif (success) {\n\t\t\tdocument.addEventListener('pointerlockchange', s, false);\n\t\t}\n\t\tif (error) {\n\t\t\tdocument.addEventListener('pointerlockerror', e, false);\n\t\t}\n\t\tdocument.body.requestPointerLock();\n\t}\n\tdisablePointerLock(success) {\n\t\tif (!document.exitPointerLock) {\n\t\t\treturn;\n\t\t}\n\t\tconst s = () => {\n\t\t\tsuccess();\n\t\t\tdocument.removeEventListener('pointerlockchange', s);\n\t\t};\n\t\tif (success) {\n\t\t\tdocument.addEventListener('pointerlockchange', s, false);\n\t\t}\n\t\tdocument.exitPointerLock();\n\t}\n\tupdate() {\n\t\tthis._lastbuttons[0] = this._buttons[0];\n\t\tthis._lastbuttons[1] = this._buttons[1];\n\t\tthis._lastbuttons[2] = this._buttons[2];\n\t}\n\tisPressed(button) {\n\t\treturn this._buttons[button];\n\t}\n\twasPressed(button) {\n\t\treturn this._buttons[button] && !this._lastbuttons[button];\n\t}\n\twasReleased(button) {\n\t\treturn !this._buttons[button] && this._lastbuttons[button];\n\t}\n\t_handleUp(event) {\n\t\tthis._buttons[event.button] = false;\n\t\tconst e = new MouseEvent(this, event);\n\t\tif (!e.event) return;\n\t\tthis.fire(EVENT_MOUSEUP, e);\n\t}\n\t_handleDown(event) {\n\t\tthis._buttons[event.button] = true;\n\t\tconst e = new MouseEvent(this, event);\n\t\tif (!e.event) return;\n\t\tthis.fire(EVENT_MOUSEDOWN, e);\n\t}\n\t_handleMove(event) {\n\t\tconst e = new MouseEvent(this, event);\n\t\tif (!e.event) return;\n\t\tthis.fire(EVENT_MOUSEMOVE, e);\n\t\tthis._lastX = e.x;\n\t\tthis._lastY = e.y;\n\t}\n\t_handleWheel(event) {\n\t\tconst e = new MouseEvent(this, event);\n\t\tif (!e.event) return;\n\t\tthis.fire(EVENT_MOUSEWHEEL, e);\n\t}\n\t_getTargetCoords(event) {\n\t\tconst rect = this._target.getBoundingClientRect();\n\t\tconst left = Math.floor(rect.left);\n\t\tconst top = Math.floor(rect.top);\n\t\tif (event.clientX < left || event.clientX >= left + this._target.clientWidth || event.clientY < top || event.clientY >= top + this._target.clientHeight) {\n\t\t\treturn null;\n\t\t}\n\t\treturn {\n\t\t\tx: event.clientX - left,\n\t\t\ty: event.clientY - top\n\t\t};\n\t}\n}\nMouse.EVENT_MOUSEMOVE = EVENT_MOUSEMOVE;\nMouse.EVENT_MOUSEDOWN = EVENT_MOUSEDOWN;\nMouse.EVENT_MOUSEUP = EVENT_MOUSEUP;\nMouse.EVENT_MOUSEWHEEL = EVENT_MOUSEWHEEL;\n\nclass Controller {\n\tconstructor(element, options = {}) {\n\t\tthis._keyboard = void 0;\n\t\tthis._mouse = void 0;\n\t\tthis._gamepads = void 0;\n\t\tthis._element = null;\n\t\tthis._actions = {};\n\t\tthis._axes = {};\n\t\tthis._axesValues = {};\n\t\tthis._keyboard = options.keyboard || null;\n\t\tthis._mouse = options.mouse || null;\n\t\tthis._gamepads = options.gamepads || null;\n\t\tif (element) {\n\t\t\tthis.attach(element);\n\t\t}\n\t}\n\tattach(element) {\n\t\tthis._element = element;\n\t\tif (this._keyboard) {\n\t\t\tthis._keyboard.attach(element);\n\t\t}\n\t\tif (this._mouse) {\n\t\t\tthis._mouse.attach(element);\n\t\t}\n\t}\n\tdetach() {\n\t\tif (this._keyboard) {\n\t\t\tthis._keyboard.detach();\n\t\t}\n\t\tif (this._mouse) {\n\t\t\tthis._mouse.detach();\n\t\t}\n\t\tthis._element = null;\n\t}\n\tdisableContextMenu() {\n\t\tif (!this._mouse) {\n\t\t\tthis._enableMouse();\n\t\t}\n\t\tthis._mouse.disableContextMenu();\n\t}\n\tenableContextMenu() {\n\t\tif (!this._mouse) {\n\t\t\tthis._enableMouse();\n\t\t}\n\t\tthis._mouse.enableContextMenu();\n\t}\n\tupdate(dt) {\n\t\tif (this._keyboard) {\n\t\t\tthis._keyboard.update();\n\t\t}\n\t\tif (this._mouse) {\n\t\t\tthis._mouse.update();\n\t\t}\n\t\tif (this._gamepads) {\n\t\t\tthis._gamepads.update();\n\t\t}\n\t\tthis._axesValues = {};\n\t\tfor (const key in this._axes) {\n\t\t\tthis._axesValues[key] = [];\n\t\t}\n\t}\n\tappendAction(action_name, action) {\n\t\tthis._actions[action_name] = this._actions[action_name] || [];\n\t\tthis._actions[action_name].push(action);\n\t}\n\tregisterKeys(action, keys) {\n\t\tif (!this._keyboard) {\n\t\t\tthis._enableKeyboard();\n\t\t}\n\t\tif (this._actions[action]) {\n\t\t\tthrow new Error(`Action: ${action} already registered`);\n\t\t}\n\t\tif (keys === undefined) {\n\t\t\tthrow new Error('Invalid button');\n\t\t}\n\t\tif (!keys.length) {\n\t\t\tkeys = [keys];\n\t\t}\n\t\tthis.appendAction(action, {\n\t\t\ttype: ACTION_KEYBOARD,\n\t\t\tkeys\n\t\t});\n\t}\n\tregisterMouse(action, button) {\n\t\tif (!this._mouse) {\n\t\t\tthis._enableMouse();\n\t\t}\n\t\tif (button === undefined) {\n\t\t\tthrow new Error('Invalid button');\n\t\t}\n\t\tthis.appendAction(action, {\n\t\t\ttype: ACTION_MOUSE,\n\t\t\tbutton\n\t\t});\n\t}\n\tregisterPadButton(action, pad, button) {\n\t\tif (button === undefined) {\n\t\t\tthrow new Error('Invalid button');\n\t\t}\n\t\tthis.appendAction(action, {\n\t\t\ttype: ACTION_GAMEPAD,\n\t\t\tbutton,\n\t\t\tpad\n\t\t});\n\t}\n\tregisterAxis(options) {\n\t\tconst name = options.name;\n\t\tif (!this._axes[name]) {\n\t\t\tthis._axes[name] = [];\n\t\t}\n\t\tconst i = this._axes[name].push(name);\n\t\toptions = options || {};\n\t\toptions.pad = options.pad || PAD_1;\n\t\tconst bind = function bind(controller, source, value, key) {\n\t\t\tswitch (source) {\n\t\t\t\tcase 'mousex':\n\t\t\t\t\tcontroller._mouse.on(EVENT_MOUSEMOVE, e => {\n\t\t\t\t\t\tcontroller._axesValues[name][i] = e.dx / 10;\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'mousey':\n\t\t\t\t\tcontroller._mouse.on(EVENT_MOUSEMOVE, e => {\n\t\t\t\t\t\tcontroller._axesValues[name][i] = e.dy / 10;\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'key':\n\t\t\t\t\tcontroller._axes[name].push(() => {\n\t\t\t\t\t\treturn controller._keyboard.isPressed(key) ? value : 0;\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'padrx':\n\t\t\t\t\tcontroller._axes[name].push(() => {\n\t\t\t\t\t\treturn controller._gamepads.getAxis(options.pad, PAD_R_STICK_X);\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'padry':\n\t\t\t\t\tcontroller._axes[name].push(() => {\n\t\t\t\t\t\treturn controller._gamepads.getAxis(options.pad, PAD_R_STICK_Y);\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'padlx':\n\t\t\t\t\tcontroller._axes[name].push(() => {\n\t\t\t\t\t\treturn controller._gamepads.getAxis(options.pad, PAD_L_STICK_X);\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'padly':\n\t\t\t\t\tcontroller._axes[name].push(() => {\n\t\t\t\t\t\treturn controller._gamepads.getAxis(options.pad, PAD_L_STICK_Y);\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error('Unknown axis');\n\t\t\t}\n\t\t};\n\t\tbind(this, options.positive, 1, options.positiveKey);\n\t\tif (options.negativeKey || options.negative !== options.positive) {\n\t\t\tbind(this, options.negative, -1, options.negativeKey);\n\t\t}\n\t}\n\tisPressed(actionName) {\n\t\tif (!this._actions[actionName]) {\n\t\t\treturn false;\n\t\t}\n\t\tconst length = this._actions[actionName].length;\n\t\tfor (let index = 0; index < length; ++index) {\n\t\t\tconst action = this._actions[actionName][index];\n\t\t\tswitch (action.type) {\n\t\t\t\tcase ACTION_KEYBOARD:\n\t\t\t\t\tif (this._keyboard) {\n\t\t\t\t\t\tconst len = action.keys.length;\n\t\t\t\t\t\tfor (let i = 0; i < len; i++) {\n\t\t\t\t\t\t\tif (this._keyboard.isPressed(action.keys[i])) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase ACTION_MOUSE:\n\t\t\t\t\tif (this._mouse && this._mouse.isPressed(action.button)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase ACTION_GAMEPAD:\n\t\t\t\t\tif (this._gamepads && this._gamepads.isPressed(action.pad, action.button)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\twasPressed(actionName) {\n\t\tif (!this._actions[actionName]) {\n\t\t\treturn false;\n\t\t}\n\t\tconst length = this._actions[actionName].length;\n\t\tfor (let index = 0; index < length; ++index) {\n\t\t\tconst action = this._actions[actionName][index];\n\t\t\tswitch (action.type) {\n\t\t\t\tcase ACTION_KEYBOARD:\n\t\t\t\t\tif (this._keyboard) {\n\t\t\t\t\t\tconst len = action.keys.length;\n\t\t\t\t\t\tfor (let i = 0; i < len; i++) {\n\t\t\t\t\t\t\tif (this._keyboard.wasPressed(action.keys[i])) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase ACTION_MOUSE:\n\t\t\t\t\tif (this._mouse && this._mouse.wasPressed(action.button)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase ACTION_GAMEPAD:\n\t\t\t\t\tif (this._gamepads && this._gamepads.wasPressed(action.pad, action.button)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\tgetAxis(name) {\n\t\tlet value = 0;\n\t\tif (this._axes[name]) {\n\t\t\tconst len = this._axes[name].length;\n\t\t\tfor (let i = 0; i < len; i++) {\n\t\t\t\tif (type(this._axes[name][i]) === 'function') {\n\t\t\t\t\tconst v = this._axes[name][i]();\n\t\t\t\t\tif (Math.abs(v) > Math.abs(value)) {\n\t\t\t\t\t\tvalue = v;\n\t\t\t\t\t}\n\t\t\t\t} else if (this._axesValues[name]) {\n\t\t\t\t\tif (Math.abs(this._axesValues[name][i]) > Math.abs(value)) {\n\t\t\t\t\t\tvalue = this._axesValues[name][i];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn value;\n\t}\n\t_enableMouse() {\n\t\tthis._mouse = new Mouse();\n\t\tif (!this._element) {\n\t\t\tthrow new Error('Controller must be attached to an Element');\n\t\t}\n\t\tthis._mouse.attach(this._element);\n\t}\n\t_enableKeyboard() {\n\t\tthis._keyboard = new Keyboard();\n\t\tif (!this._element) {\n\t\t\tthrow new Error('Controller must be attached to an Element');\n\t\t}\n\t\tthis._keyboard.attach(this._element);\n\t}\n}\n\nconst dummyArray = Object.freeze([]);\nlet _getGamepads = function getGamepads() {\n\treturn dummyArray;\n};\nif (typeof navigator !== 'undefined') {\n\t_getGamepads = (navigator.getGamepads || navigator.webkitGetGamepads || _getGamepads).bind(navigator);\n}\nconst MAPS_INDEXES = {\n\tbuttons: {\n\t\tPAD_FACE_1,\n\t\tPAD_FACE_2,\n\t\tPAD_FACE_3,\n\t\tPAD_FACE_4,\n\t\tPAD_L_SHOULDER_1,\n\t\tPAD_R_SHOULDER_1,\n\t\tPAD_L_SHOULDER_2,\n\t\tPAD_R_SHOULDER_2,\n\t\tPAD_SELECT,\n\t\tPAD_START,\n\t\tPAD_L_STICK_BUTTON,\n\t\tPAD_R_STICK_BUTTON,\n\t\tPAD_UP,\n\t\tPAD_DOWN,\n\t\tPAD_LEFT,\n\t\tPAD_RIGHT,\n\t\tPAD_VENDOR,\n\t\tXRPAD_TRIGGER,\n\t\tXRPAD_SQUEEZE,\n\t\tXRPAD_TOUCHPAD_BUTTON,\n\t\tXRPAD_STICK_BUTTON,\n\t\tXRPAD_A,\n\t\tXRPAD_B\n\t},\n\taxes: {\n\t\tPAD_L_STICK_X,\n\t\tPAD_L_STICK_Y,\n\t\tPAD_R_STICK_X,\n\t\tPAD_R_STICK_Y,\n\t\tXRPAD_TOUCHPAD_X,\n\t\tXRPAD_TOUCHPAD_Y,\n\t\tXRPAD_STICK_X,\n\t\tXRPAD_STICK_Y\n\t}\n};\nconst MAPS = {\n\tDEFAULT: {\n\t\tbuttons: ['PAD_FACE_1', 'PAD_FACE_2', 'PAD_FACE_3', 'PAD_FACE_4', 'PAD_L_SHOULDER_1', 'PAD_R_SHOULDER_1', 'PAD_L_SHOULDER_2', 'PAD_R_SHOULDER_2', 'PAD_SELECT', 'PAD_START', 'PAD_L_STICK_BUTTON', 'PAD_R_STICK_BUTTON', 'PAD_UP', 'PAD_DOWN', 'PAD_LEFT', 'PAD_RIGHT', 'PAD_VENDOR'],\n\t\taxes: ['PAD_L_STICK_X', 'PAD_L_STICK_Y', 'PAD_R_STICK_X', 'PAD_R_STICK_Y']\n\t},\n\tDEFAULT_DUAL: {\n\t\tbuttons: ['PAD_FACE_1', 'PAD_FACE_2', 'PAD_FACE_3', 'PAD_FACE_4', 'PAD_L_SHOULDER_1', 'PAD_R_SHOULDER_1', 'PAD_L_SHOULDER_2', 'PAD_R_SHOULDER_2', 'PAD_SELECT', 'PAD_START', 'PAD_L_STICK_BUTTON', 'PAD_R_STICK_BUTTON', 'PAD_VENDOR'],\n\t\taxes: ['PAD_L_STICK_X', 'PAD_L_STICK_Y', 'PAD_R_STICK_X', 'PAD_R_STICK_Y'],\n\t\tsynthesizedButtons: {\n\t\t\tPAD_UP: {\n\t\t\t\taxis: 0,\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1\n\t\t\t},\n\t\t\tPAD_DOWN: {\n\t\t\t\taxis: 0,\n\t\t\t\tmin: -1,\n\t\t\t\tmax: 0\n\t\t\t},\n\t\t\tPAD_LEFT: {\n\t\t\t\taxis: 0,\n\t\t\t\tmin: -1,\n\t\t\t\tmax: 0\n\t\t\t},\n\t\t\tPAD_RIGHT: {\n\t\t\t\taxis: 0,\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1\n\t\t\t}\n\t\t}\n\t},\n\tPS3: {\n\t\tbuttons: ['PAD_FACE_1', 'PAD_FACE_2', 'PAD_FACE_4', 'PAD_FACE_3', 'PAD_L_SHOULDER_1', 'PAD_R_SHOULDER_1', 'PAD_L_SHOULDER_2', 'PAD_R_SHOULDER_2', 'PAD_SELECT', 'PAD_START', 'PAD_L_STICK_BUTTON', 'PAD_R_STICK_BUTTON', 'PAD_UP', 'PAD_DOWN', 'PAD_LEFT', 'PAD_RIGHT', 'PAD_VENDOR'],\n\t\taxes: ['PAD_L_STICK_X', 'PAD_L_STICK_Y', 'PAD_R_STICK_X', 'PAD_R_STICK_Y'],\n\t\tmapping: 'standard'\n\t},\n\tDEFAULT_XR: {\n\t\tbuttons: ['XRPAD_TRIGGER', 'XRPAD_SQUEEZE', 'XRPAD_TOUCHPAD_BUTTON', 'XRPAD_STICK_BUTTON', 'XRPAD_A', 'XRPAD_B'],\n\t\taxes: ['XRPAD_TOUCHPAD_X', 'XRPAD_TOUCHPAD_Y', 'XRPAD_STICK_X', 'XRPAD_STICK_Y'],\n\t\tmapping: 'xr-standard'\n\t}\n};\nconst PRODUCT_CODES = {\n\t'Product: 0268': 'PS3'\n};\nconst custom_maps = {};\nfunction getMap(pad) {\n\tconst custom = custom_maps[pad.id];\n\tif (custom) {\n\t\treturn custom;\n\t}\n\tfor (const code in PRODUCT_CODES) {\n\t\tif (pad.id.indexOf(code) !== -1) {\n\t\t\tconst product = PRODUCT_CODES[code];\n\t\t\tif (!pad.mapping) {\n\t\t\t\tconst raw = MAPS[`RAW_${product}`];\n\t\t\t\tif (raw) {\n\t\t\t\t\treturn raw;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn MAPS[product];\n\t\t}\n\t}\n\tif (pad.mapping === 'xr-standard') {\n\t\treturn MAPS.DEFAULT_XR;\n\t}\n\tconst defaultmap = MAPS.DEFAULT;\n\tconst map = pad.buttons.length < defaultmap.buttons.length ? MAPS.DEFAULT_DUAL : defaultmap;\n\tmap.mapping = pad.mapping;\n\treturn map;\n}\nlet deadZone = 0.25;\nfunction sleep(ms) {\n\treturn new Promise(resolve => {\n\t\tsetTimeout(resolve, ms);\n\t});\n}\nclass GamePadButton {\n\tconstructor(current, previous) {\n\t\tthis.value = 0;\n\t\tthis.pressed = false;\n\t\tthis.touched = false;\n\t\tthis.wasPressed = false;\n\t\tthis.wasReleased = false;\n\t\tthis.wasTouched = false;\n\t\tif (typeof current === 'number') {\n\t\t\tthis.value = current;\n\t\t\tthis.pressed = current === 1;\n\t\t\tthis.touched = current > 0;\n\t\t} else {\n\t\t\tvar _current$touched;\n\t\t\tthis.value = current.value;\n\t\t\tthis.pressed = current.pressed;\n\t\t\tthis.touched = (_current$touched = current.touched) != null ? _current$touched : current.value > 0;\n\t\t}\n\t\tif (previous) {\n\t\t\tif (typeof previous === 'number') {\n\t\t\t\tthis.wasPressed = previous !== 1 && this.pressed;\n\t\t\t\tthis.wasReleased = previous === 1 && !this.pressed;\n\t\t\t\tthis.wasTouched = previous === 0 && this.touched;\n\t\t\t} else {\n\t\t\t\tvar _previous$touched;\n\t\t\t\tthis.wasPressed = !previous.pressed && this.pressed;\n\t\t\t\tthis.wasReleased = previous.pressed && !this.pressed;\n\t\t\t\tthis.wasTouched = !((_previous$touched = previous.touched) != null ? _previous$touched : previous.value > 0) && this.touched;\n\t\t\t}\n\t\t}\n\t}\n\tupdate(button) {\n\t\tvar _button$touched;\n\t\tconst {\n\t\t\tvalue,\n\t\t\tpressed\n\t\t} = button;\n\t\tconst touched = (_button$touched = button.touched) != null ? _button$touched : value > 0;\n\t\tthis.wasPressed = !this.pressed && pressed;\n\t\tthis.wasReleased = this.pressed && !pressed;\n\t\tthis.wasTouched = !this.touched && touched;\n\t\tthis.value = value;\n\t\tthis.pressed = pressed;\n\t\tthis.touched = touched;\n\t}\n}\nconst dummyButton = Object.freeze(new GamePadButton(0));\nclass GamePad {\n\tconstructor(gamepad, map) {\n\t\tthis._compiledMapping = {\n\t\t\tbuttons: [],\n\t\t\taxes: []\n\t\t};\n\t\tthis.id = gamepad.id;\n\t\tthis.index = gamepad.index;\n\t\tthis._buttons = gamepad.buttons.map(b => new GamePadButton(b));\n\t\tthis._axes = [...gamepad.axes];\n\t\tthis._previousAxes = [...gamepad.axes];\n\t\tthis.mapping = map.mapping;\n\t\tthis.map = map;\n\t\tthis.hand = gamepad.hand || 'none';\n\t\tthis.pad = gamepad;\n\t\tthis._compileMapping();\n\t}\n\tget connected() {\n\t\treturn this.pad.connected;\n\t}\n\t_compileMapping() {\n\t\tconst {\n\t\t\taxes,\n\t\t\tbuttons\n\t\t} = this._compiledMapping;\n\t\tconst axesIndexes = MAPS_INDEXES.axes;\n\t\tconst buttonsIndexes = MAPS_INDEXES.buttons;\n\t\taxes.length = 0;\n\t\tbuttons.length = 0;\n\t\tconst axesMap = this.map.axes;\n\t\tif (axesMap) {\n\t\t\tthis.map.axes.forEach((axis, i) => {\n\t\t\t\taxes[axesIndexes[axis]] = () => this.pad.axes[i] || 0;\n\t\t\t});\n\t\t}\n\t\tfor (let i = 0, l = axes.length; i < l; i++) {\n\t\t\tif (!axes[i]) {\n\t\t\t\taxes[i] = () => 0;\n\t\t\t}\n\t\t}\n\t\tconst buttonsMap = this.map.buttons;\n\t\tif (buttonsMap) {\n\t\t\tbuttonsMap.forEach((button, i) => {\n\t\t\t\tbuttons[buttonsIndexes[button]] = () => this._buttons[i] || dummyButton;\n\t\t\t});\n\t\t}\n\t\tconst synthesizedButtonsMap = this.map.synthesizedButtons;\n\t\tif (synthesizedButtonsMap) {\n\t\t\tObject.entries(synthesizedButtonsMap).forEach(button => {\n\t\t\t\tconst {\n\t\t\t\t\taxis,\n\t\t\t\t\tmax,\n\t\t\t\t\tmin\n\t\t\t\t} = button[1];\n\t\t\t\tbuttons[buttonsIndexes[button[0]]] = () => {\n\t\t\t\t\tvar _this$_axes$axis, _this$_previousAxes$a;\n\t\t\t\t\treturn new GamePadButton(Math.abs(math.clamp((_this$_axes$axis = this._axes[axis]) != null ? _this$_axes$axis : 0, min, max)), Math.abs(math.clamp((_this$_previousAxes$a = this._previousAxes[axis]) != null ? _this$_previousAxes$a : 0, min, max)));\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\t\tfor (let i = 0, l = buttons.length; i < l; i++) {\n\t\t\tif (!buttons[i]) {\n\t\t\t\tbuttons[i] = () => dummyButton;\n\t\t\t}\n\t\t}\n\t}\n\tupdate(gamepad) {\n\t\tthis.pad = gamepad;\n\t\tconst previousAxes = this._previousAxes;\n\t\tconst axes = this._axes;\n\t\tpreviousAxes.length = 0;\n\t\tpreviousAxes.push(...axes);\n\t\taxes.length = 0;\n\t\taxes.push(...gamepad.axes);\n\t\tconst buttons = this._buttons;\n\t\tfor (let i = 0, l = buttons.length; i < l; i++) {\n\t\t\tbuttons[i].update(gamepad.buttons[i]);\n\t\t}\n\t\treturn this;\n\t}\n\tupdateMap(map) {\n\t\tmap.mapping = 'custom';\n\t\tcustom_maps[this.id] = map;\n\t\tthis.map = map;\n\t\tthis.mapping = 'custom';\n\t\tthis._compileMapping();\n\t}\n\tresetMap() {\n\t\tif (custom_maps[this.id]) {\n\t\t\tdelete custom_maps[this.id];\n\t\t\tconst map = getMap(this.pad);\n\t\t\tthis.map = map;\n\t\t\tthis.mapping = map.mapping;\n\t\t\tthis._compileMapping();\n\t\t}\n\t}\n\tget axes() {\n\t\treturn this._compiledMapping.axes.map(a => a());\n\t}\n\tget buttons() {\n\t\treturn this._compiledMapping.buttons.map(b => b());\n\t}\n\tasync pulse(intensity, duration, options) {\n\t\tconst actuators = this.pad.vibrationActuator ? [this.pad.vibrationActuator] : this.pad.hapticActuators || dummyArray;\n\t\tif (actuators.length) {\n\t\t\tvar _options$startDelay, _options$strongMagnit, _options$weakMagnitud;\n\t\t\tconst startDelay = (_options$startDelay = options == null ? void 0 : options.startDelay) != null ? _options$startDelay : 0;\n\t\t\tconst strongMagnitude = (_options$strongMagnit = options == null ? void 0 : options.strongMagnitude) != null ? _options$strongMagnit : intensity;\n\t\t\tconst weakMagnitude = (_options$weakMagnitud = options == null ? void 0 : options.weakMagnitude) != null ? _options$weakMagnitud : intensity;\n\t\t\tconst results = await Promise.all(actuators.map(async function (actuator) {\n\t\t\t\tif (!actuator) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tif (actuator.playEffect) {\n\t\t\t\t\treturn actuator.playEffect(actuator.type, {\n\t\t\t\t\t\tduration,\n\t\t\t\t\t\tstartDelay,\n\t\t\t\t\t\tstrongMagnitude,\n\t\t\t\t\t\tweakMagnitude\n\t\t\t\t\t});\n\t\t\t\t} else if (actuator.pulse) {\n\t\t\t\t\tawait sleep(startDelay);\n\t\t\t\t\treturn actuator.pulse(intensity, duration);\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}));\n\t\t\treturn results.some(r => r === true || r === 'complete');\n\t\t}\n\t\treturn false;\n\t}\n\tgetButton(index) {\n\t\tconst button = this._compiledMapping.buttons[index];\n\t\treturn button ? button() : dummyButton;\n\t}\n\tisPressed(button) {\n\t\treturn this.getButton(button).pressed;\n\t}\n\twasPressed(button) {\n\t\treturn this.getButton(button).wasPressed;\n\t}\n\twasReleased(button) {\n\t\treturn this.getButton(button).wasReleased;\n\t}\n\tisTouched(button) {\n\t\treturn this.getButton(button).touched;\n\t}\n\twasTouched(button) {\n\t\treturn this.getButton(button).wasTouched;\n\t}\n\tgetValue(button) {\n\t\treturn this.getButton(button).value;\n\t}\n\tgetAxis(axis) {\n\t\tconst a = this.axes[axis];\n\t\treturn a && Math.abs(a) > deadZone ? a : 0;\n\t}\n}\nclass GamePads extends EventHandler {\n\tconstructor() {\n\t\tsuper();\n\t\tthis.gamepadsSupported = platform.gamepads;\n\t\tthis.current = [];\n\t\tthis._previous = [];\n\t\tthis._ongamepadconnectedHandler = this._ongamepadconnected.bind(this);\n\t\tthis._ongamepaddisconnectedHandler = this._ongamepaddisconnected.bind(this);\n\t\twindow.addEventListener('gamepadconnected', this._ongamepadconnectedHandler, false);\n\t\twindow.addEventListener('gamepaddisconnected', this._ongamepaddisconnectedHandler, false);\n\t\tthis.poll();\n\t}\n\tset deadZone(value) {\n\t\tdeadZone = value;\n\t}\n\tget deadZone() {\n\t\treturn deadZone;\n\t}\n\tget previous() {\n\t\tconst current = this.current;\n\t\tfor (let i = 0, l = current.length; i < l; i++) {\n\t\t\tconst buttons = current[i]._buttons;\n\t\t\tif (!this._previous[i]) {\n\t\t\t\tthis._previous[i] = [];\n\t\t\t}\n\t\t\tfor (let j = 0, m = buttons.length; j < m; j++) {\n\t\t\t\tconst button = buttons[i];\n\t\t\t\tthis.previous[i][j] = button ? !button.wasPressed && button.pressed || button.wasReleased : false;\n\t\t\t}\n\t\t}\n\t\tthis._previous.length = this.current.length;\n\t\treturn this._previous;\n\t}\n\t_ongamepadconnected(event) {\n\t\tconst pad = new GamePad(event.gamepad, this.getMap(event.gamepad));\n\t\tconst current = this.current;\n\t\tlet padIndex = current.findIndex(gp => gp.index === pad.index);\n\t\twhile (padIndex !== -1) {\n\t\t\tcurrent.splice(padIndex, 1);\n\t\t\tpadIndex = current.findIndex(gp => gp.index === pad.index);\n\t\t}\n\t\tcurrent.push(pad);\n\t\tthis.fire(EVENT_GAMEPADCONNECTED, pad);\n\t}\n\t_ongamepaddisconnected(event) {\n\t\tconst current = this.current;\n\t\tconst padIndex = current.findIndex(gp => gp.index === event.gamepad.index);\n\t\tif (padIndex !== -1) {\n\t\t\tthis.fire(EVENT_GAMEPADDISCONNECTED, current[padIndex]);\n\t\t\tcurrent.splice(padIndex, 1);\n\t\t}\n\t}\n\tupdate() {\n\t\tthis.poll();\n\t}\n\tpoll(pads = []) {\n\t\tif (pads.length > 0) {\n\t\t\tpads.length = 0;\n\t\t}\n\t\tconst padDevices = _getGamepads();\n\t\tfor (let i = 0, len = padDevices.length; i < len; i++) {\n\t\t\tif (padDevices[i]) {\n\t\t\t\tconst pad = this.findByIndex(padDevices[i].index);\n\t\t\t\tif (pad) {\n\t\t\t\t\tpads.push(pad.update(padDevices[i]));\n\t\t\t\t} else {\n\t\t\t\t\tconst nPad = new GamePad(padDevices[i], this.getMap(padDevices[i]));\n\t\t\t\t\tthis.current.push(nPad);\n\t\t\t\t\tpads.push(nPad);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn pads;\n\t}\n\tdestroy() {\n\t\twindow.removeEventListener('gamepadconnected', this._ongamepadconnectedHandler, false);\n\t\twindow.removeEventListener('gamepaddisconnected', this._ongamepaddisconnectedHandler, false);\n\t}\n\tgetMap(pad) {\n\t\treturn getMap(pad);\n\t}\n\tisPressed(orderIndex, button) {\n\t\tvar _this$current$orderIn;\n\t\treturn ((_this$current$orderIn = this.current[orderIndex]) == null ? void 0 : _this$current$orderIn.isPressed(button)) || false;\n\t}\n\twasPressed(orderIndex, button) {\n\t\tvar _this$current$orderIn2;\n\t\treturn ((_this$current$orderIn2 = this.current[orderIndex]) == null ? void 0 : _this$current$orderIn2.wasPressed(button)) || false;\n\t}\n\twasReleased(orderIndex, button) {\n\t\tvar _this$current$orderIn3;\n\t\treturn ((_this$current$orderIn3 = this.current[orderIndex]) == null ? void 0 : _this$current$orderIn3.wasReleased(button)) || false;\n\t}\n\tgetAxis(orderIndex, axis) {\n\t\tvar _this$current$orderIn4;\n\t\treturn ((_this$current$orderIn4 = this.current[orderIndex]) == null ? void 0 : _this$current$orderIn4.getAxis(axis)) || 0;\n\t}\n\tpulse(orderIndex, intensity, duration, options) {\n\t\tconst pad = this.current[orderIndex];\n\t\treturn pad ? pad.pulse(intensity, duration, options) : Promise.resolve(false);\n\t}\n\tpulseAll(intensity, duration, options) {\n\t\treturn Promise.all(this.current.map(pad => pad.pulse(intensity, duration, options)));\n\t}\n\tfindById(id) {\n\t\treturn this.current.find(gp => gp && gp.id === id) || null;\n\t}\n\tfindByIndex(index) {\n\t\treturn this.current.find(gp => gp && gp.index === index) || null;\n\t}\n}\nGamePads.EVENT_GAMEPADCONNECTED = 'gamepadconnected';\nGamePads.EVENT_GAMEPADDISCONNECTED = 'gamepaddisconnected';\n\nfunction getTouchTargetCoords(touch) {\n\tlet totalOffsetX = 0;\n\tlet totalOffsetY = 0;\n\tlet target = touch.target;\n\twhile (!(target instanceof HTMLElement) && target) {\n\t\ttarget = target.parentNode;\n\t}\n\twhile (target) {\n\t\ttotalOffsetX += target.offsetLeft - target.scrollLeft;\n\t\ttotalOffsetY += target.offsetTop - target.scrollTop;\n\t\ttarget = target.offsetParent;\n\t}\n\treturn {\n\t\tx: touch.pageX - totalOffsetX,\n\t\ty: touch.pageY - totalOffsetY\n\t};\n}\nclass Touch {\n\tconstructor(touch) {\n\t\tthis.id = void 0;\n\t\tthis.x = void 0;\n\t\tthis.y = void 0;\n\t\tthis.target = void 0;\n\t\tthis.touch = void 0;\n\t\tconst coords = getTouchTargetCoords(touch);\n\t\tthis.id = touch.identifier;\n\t\tthis.x = coords.x;\n\t\tthis.y = coords.y;\n\t\tthis.target = touch.target;\n\t\tthis.touch = touch;\n\t}\n}\nclass TouchEvent {\n\tconstructor(device, event) {\n\t\tthis.element = void 0;\n\t\tthis.event = void 0;\n\t\tthis.touches = [];\n\t\tthis.changedTouches = [];\n\t\tthis.element = event.target;\n\t\tthis.event = event;\n\t\tthis.touches = Array.from(event.touches).map(touch => new Touch(touch));\n\t\tthis.changedTouches = Array.from(event.changedTouches).map(touch => new Touch(touch));\n\t}\n\tgetTouchById(id, list) {\n\t\treturn list.find(touch => touch.id === id) || null;\n\t}\n}\n\nclass TouchDevice extends EventHandler {\n\tconstructor(element) {\n\t\tsuper();\n\t\tthis._element = null;\n\t\tthis._startHandler = this._handleTouchStart.bind(this);\n\t\tthis._endHandler = this._handleTouchEnd.bind(this);\n\t\tthis._moveHandler = this._handleTouchMove.bind(this);\n\t\tthis._cancelHandler = this._handleTouchCancel.bind(this);\n\t\tthis.attach(element);\n\t}\n\tattach(element) {\n\t\tif (this._element) {\n\t\t\tthis.detach();\n\t\t}\n\t\tthis._element = element;\n\t\tthis._element.addEventListener('touchstart', this._startHandler, false);\n\t\tthis._element.addEventListener('touchend', this._endHandler, false);\n\t\tthis._element.addEventListener('touchmove', this._moveHandler, false);\n\t\tthis._element.addEventListener('touchcancel', this._cancelHandler, false);\n\t}\n\tdetach() {\n\t\tif (this._element) {\n\t\t\tthis._element.removeEventListener('touchstart', this._startHandler, false);\n\t\t\tthis._element.removeEventListener('touchend', this._endHandler, false);\n\t\t\tthis._element.removeEventListener('touchmove', this._moveHandler, false);\n\t\t\tthis._element.removeEventListener('touchcancel', this._cancelHandler, false);\n\t\t}\n\t\tthis._element = null;\n\t}\n\t_handleTouchStart(e) {\n\t\tthis.fire('touchstart', new TouchEvent(this, e));\n\t}\n\t_handleTouchEnd(e) {\n\t\tthis.fire('touchend', new TouchEvent(this, e));\n\t}\n\t_handleTouchMove(e) {\n\t\te.preventDefault();\n\t\tthis.fire('touchmove', new TouchEvent(this, e));\n\t}\n\t_handleTouchCancel(e) {\n\t\tthis.fire('touchcancel', new TouchEvent(this, e));\n\t}\n}\n\nclass Http {\n\tget(url, options, callback) {\n\t\tif (typeof options === 'function') {\n\t\t\tcallback = options;\n\t\t\toptions = {};\n\t\t}\n\t\treturn this.request('GET', url, options, callback);\n\t}\n\tpost(url, data, options, callback) {\n\t\tif (typeof options === 'function') {\n\t\t\tcallback = options;\n\t\t\toptions = {};\n\t\t}\n\t\toptions.postdata = data;\n\t\treturn this.request('POST', url, options, callback);\n\t}\n\tput(url, data, options, callback) {\n\t\tif (typeof options === 'function') {\n\t\t\tcallback = options;\n\t\t\toptions = {};\n\t\t}\n\t\toptions.postdata = data;\n\t\treturn this.request('PUT', url, options, callback);\n\t}\n\tdel(url, options, callback) {\n\t\tif (typeof options === 'function') {\n\t\t\tcallback = options;\n\t\t\toptions = {};\n\t\t}\n\t\treturn this.request('DELETE', url, options, callback);\n\t}\n\trequest(method, url, options, callback) {\n\t\tlet uri, query, postdata;\n\t\tlet errored = false;\n\t\tif (typeof options === 'function') {\n\t\t\tcallback = options;\n\t\t\toptions = {};\n\t\t}\n\t\tif (options.retry) {\n\t\t\toptions = Object.assign({\n\t\t\t\tretries: 0,\n\t\t\t\tmaxRetries: 5\n\t\t\t}, options);\n\t\t}\n\t\toptions.callback = callback;\n\t\tif (options.async == null) {\n\t\t\toptions.async = true;\n\t\t}\n\t\tif (options.headers == null) {\n\t\t\toptions.headers = {};\n\t\t}\n\t\tif (options.postdata != null) {\n\t\t\tif (options.postdata instanceof Document) {\n\t\t\t\tpostdata = options.postdata;\n\t\t\t} else if (options.postdata instanceof FormData) {\n\t\t\t\tpostdata = options.postdata;\n\t\t\t} else if (options.postdata instanceof Object) {\n\t\t\t\tlet contentType = options.headers['Content-Type'];\n\t\t\t\tif (contentType === undefined) {\n\t\t\t\t\toptions.headers['Content-Type'] = Http.ContentType.FORM_URLENCODED;\n\t\t\t\t\tcontentType = options.headers['Content-Type'];\n\t\t\t\t}\n\t\t\t\tswitch (contentType) {\n\t\t\t\t\tcase Http.ContentType.FORM_URLENCODED:\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpostdata = '';\n\t\t\t\t\t\t\tlet bFirstItem = true;\n\t\t\t\t\t\t\tfor (const key in options.postdata) {\n\t\t\t\t\t\t\t\tif (options.postdata.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\t\tif (bFirstItem) {\n\t\t\t\t\t\t\t\t\t\tbFirstItem = false;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tpostdata += '&';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tconst encodedKey = encodeURIComponent(key);\n\t\t\t\t\t\t\t\t\tconst encodedValue = encodeURIComponent(options.postdata[key]);\n\t\t\t\t\t\t\t\t\tpostdata += `${encodedKey}=${encodedValue}`;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\tdefault:\n\t\t\t\t\tcase Http.ContentType.JSON:\n\t\t\t\t\t\tif (contentType == null) {\n\t\t\t\t\t\t\toptions.headers['Content-Type'] = Http.ContentType.JSON;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpostdata = JSON.stringify(options.postdata);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tpostdata = options.postdata;\n\t\t\t}\n\t\t}\n\t\tif (options.cache === false) {\n\t\t\tconst timestamp = now();\n\t\t\turi = new URI(url);\n\t\t\tif (!uri.query) {\n\t\t\t\turi.query = `ts=${timestamp}`;\n\t\t\t} else {\n\t\t\t\turi.query = `${uri.query}&ts=${timestamp}`;\n\t\t\t}\n\t\t\turl = uri.toString();\n\t\t}\n\t\tif (options.query) {\n\t\t\turi = new URI(url);\n\t\t\tquery = extend(uri.getQuery(), options.query);\n\t\t\turi.setQuery(query);\n\t\t\turl = uri.toString();\n\t\t}\n\t\tconst xhr = new XMLHttpRequest();\n\t\txhr.open(method, url, options.async);\n\t\txhr.withCredentials = options.withCredentials !== undefined ? options.withCredentials : false;\n\t\txhr.responseType = options.responseType || this._guessResponseType(url);\n\t\tfor (const header in options.headers) {\n\t\t\tif (options.headers.hasOwnProperty(header)) {\n\t\t\t\txhr.setRequestHeader(header, options.headers[header]);\n\t\t\t}\n\t\t}\n\t\txhr.onreadystatechange = () => {\n\t\t\tthis._onReadyStateChange(method, url, options, xhr);\n\t\t};\n\t\txhr.onerror = () => {\n\t\t\tthis._onError(method, url, options, xhr);\n\t\t\terrored = true;\n\t\t};\n\t\ttry {\n\t\t\txhr.send(postdata);\n\t\t} catch (e) {\n\t\t\tif (!errored) {\n\t\t\t\toptions.error(xhr.status, xhr, e);\n\t\t\t}\n\t\t}\n\t\treturn xhr;\n\t}\n\t_guessResponseType(url) {\n\t\tconst uri = new URI(url);\n\t\tconst ext = path.getExtension(uri.path).toLowerCase();\n\t\tif (Http.binaryExtensions.indexOf(ext) >= 0) {\n\t\t\treturn Http.ResponseType.ARRAY_BUFFER;\n\t\t} else if (ext === '.json') {\n\t\t\treturn Http.ResponseType.JSON;\n\t\t} else if (ext === '.xml') {\n\t\t\treturn Http.ResponseType.DOCUMENT;\n\t\t}\n\t\treturn Http.ResponseType.TEXT;\n\t}\n\t_isBinaryContentType(contentType) {\n\t\tconst binTypes = [Http.ContentType.BASIS, Http.ContentType.BIN, Http.ContentType.DDS, Http.ContentType.GLB, Http.ContentType.MP3, Http.ContentType.MP4, Http.ContentType.OGG, Http.ContentType.OPUS, Http.ContentType.WAV];\n\t\tif (binTypes.indexOf(contentType) >= 0) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\t_isBinaryResponseType(responseType) {\n\t\treturn responseType === Http.ResponseType.ARRAY_BUFFER || responseType === Http.ResponseType.BLOB || responseType === Http.ResponseType.JSON;\n\t}\n\t_onReadyStateChange(method, url, options, xhr) {\n\t\tif (xhr.readyState === 4) {\n\t\t\tswitch (xhr.status) {\n\t\t\t\tcase 0:\n\t\t\t\t\t{\n\t\t\t\t\t\tif (xhr.responseURL && xhr.responseURL.startsWith('file:///')) {\n\t\t\t\t\t\t\tthis._onSuccess(method, url, options, xhr);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis._onError(method, url, options, xhr);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase 200:\n\t\t\t\tcase 201:\n\t\t\t\tcase 206:\n\t\t\t\tcase 304:\n\t\t\t\t\t{\n\t\t\t\t\t\tthis._onSuccess(method, url, options, xhr);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\t{\n\t\t\t\t\t\tthis._onError(method, url, options, xhr);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t_onSuccess(method, url, options, xhr) {\n\t\tlet response;\n\t\tlet contentType;\n\t\tconst header = xhr.getResponseHeader('Content-Type');\n\t\tif (header) {\n\t\t\tconst parts = header.split(';');\n\t\t\tcontentType = parts[0].trim();\n\t\t}\n\t\ttry {\n\t\t\tif (this._isBinaryContentType(contentType) || this._isBinaryResponseType(xhr.responseType)) {\n\t\t\t\tresponse = xhr.response;\n\t\t\t} else if (contentType === Http.ContentType.JSON || url.split('?')[0].endsWith('.json')) {\n\t\t\t\tresponse = JSON.parse(xhr.responseText);\n\t\t\t} else if (xhr.responseType === Http.ResponseType.DOCUMENT || contentType === Http.ContentType.XML) {\n\t\t\t\tresponse = xhr.responseXML;\n\t\t\t} else {\n\t\t\t\tresponse = xhr.responseText;\n\t\t\t}\n\t\t\toptions.callback(null, response);\n\t\t} catch (err) {\n\t\t\toptions.callback(err);\n\t\t}\n\t}\n\t_onError(method, url, options, xhr) {\n\t\tif (options.retrying) {\n\t\t\treturn;\n\t\t}\n\t\tif (options.retry && options.retries < options.maxRetries) {\n\t\t\toptions.retries++;\n\t\t\toptions.retrying = true;\n\t\t\tconst retryDelay = math.clamp(Math.pow(2, options.retries) * Http.retryDelay, 0, options.maxRetryDelay || 5000);\n\t\t\tconsole.log(`${method}: ${url} - Error ${xhr.status}. Retrying in ${retryDelay} ms`);\n\t\t\tsetTimeout(() => {\n\t\t\t\toptions.retrying = false;\n\t\t\t\tthis.request(method, url, options, options.callback);\n\t\t\t}, retryDelay);\n\t\t} else {\n\t\t\toptions.callback(xhr.status === 0 ? 'Network error' : xhr.status, null);\n\t\t}\n\t}\n}\nHttp.ContentType = {\n\tAAC: 'audio/aac',\n\tBASIS: 'image/basis',\n\tBIN: 'application/octet-stream',\n\tDDS: 'image/dds',\n\tFORM_URLENCODED: 'application/x-www-form-urlencoded',\n\tGIF: 'image/gif',\n\tGLB: 'model/gltf-binary',\n\tJPEG: 'image/jpeg',\n\tJSON: 'application/json',\n\tMP3: 'audio/mpeg',\n\tMP4: 'audio/mp4',\n\tOGG: 'audio/ogg',\n\tOPUS: 'audio/ogg; codecs=\"opus\"',\n\tPNG: 'image/png',\n\tTEXT: 'text/plain',\n\tWAV: 'audio/x-wav',\n\tXML: 'application/xml'\n};\nHttp.ResponseType = {\n\tTEXT: 'text',\n\tARRAY_BUFFER: 'arraybuffer',\n\tBLOB: 'blob',\n\tDOCUMENT: 'document',\n\tJSON: 'json'\n};\nHttp.binaryExtensions = ['.model', '.wav', '.ogg', '.mp3', '.mp4', '.m4a', '.aac', '.dds', '.basis', '.glb', '.opus'];\nHttp.retryDelay = 100;\nconst http = new Http();\n\nfunction hasAudioContext() {\n\treturn !!(typeof AudioContext !== 'undefined' || typeof webkitAudioContext !== 'undefined');\n}\n\nclass Channel {\n\tconstructor(manager, sound, options = {}) {\n\t\tvar _options$volume, _options$loop, _options$pitch;\n\t\tthis.volume = (_options$volume = options.volume) != null ? _options$volume : 1;\n\t\tthis.loop = (_options$loop = options.loop) != null ? _options$loop : false;\n\t\tthis.pitch = (_options$pitch = options.pitch) != null ? _options$pitch : 1;\n\t\tthis.sound = sound;\n\t\tthis.paused = false;\n\t\tthis.suspended = false;\n\t\tthis.manager = manager;\n\t\tthis.source = null;\n\t\tif (hasAudioContext()) {\n\t\t\tthis.startTime = 0;\n\t\t\tthis.startOffset = 0;\n\t\t\tconst context = manager.context;\n\t\t\tthis.gain = context.createGain();\n\t\t} else if (sound.audio) {\n\t\t\tthis.source = sound.audio.cloneNode(false);\n\t\t\tthis.source.pause();\n\t\t}\n\t}\n\tgetVolume() {\n\t\treturn this.volume;\n\t}\n\tgetLoop() {\n\t\treturn this.loop;\n\t}\n\tsetLoop(loop) {\n\t\tthis.loop = loop;\n\t\tif (this.source) {\n\t\t\tthis.source.loop = loop;\n\t\t}\n\t}\n\tgetPitch() {\n\t\treturn this.pitch;\n\t}\n\tonManagerVolumeChange() {\n\t\tthis.setVolume(this.getVolume());\n\t}\n\tonManagerSuspend() {\n\t\tif (this.isPlaying() && !this.suspended) {\n\t\t\tthis.suspended = true;\n\t\t\tthis.pause();\n\t\t}\n\t}\n\tonManagerResume() {\n\t\tif (this.suspended) {\n\t\t\tthis.suspended = false;\n\t\t\tthis.unpause();\n\t\t}\n\t}\n\tplay() {\n\t\tif (this.source) {\n\t\t\tthrow new Error('Call stop() before calling play()');\n\t\t}\n\t\tthis._createSource();\n\t\tif (!this.source) {\n\t\t\treturn;\n\t\t}\n\t\tthis.startTime = this.manager.context.currentTime;\n\t\tthis.source.start(0, this.startOffset % this.source.buffer.duration);\n\t\tthis.setVolume(this.volume);\n\t\tthis.setLoop(this.loop);\n\t\tthis.setPitch(this.pitch);\n\t\tthis.manager.on('volumechange', this.onManagerVolumeChange, this);\n\t\tthis.manager.on('suspend', this.onManagerSuspend, this);\n\t\tthis.manager.on('resume', this.onManagerResume, this);\n\t\tif (this.manager.suspended) {\n\t\t\tthis.onManagerSuspend();\n\t\t}\n\t}\n\tpause() {\n\t\tif (this.source) {\n\t\t\tthis.paused = true;\n\t\t\tthis.startOffset += this.manager.context.currentTime - this.startTime;\n\t\t\tthis.source.stop(0);\n\t\t\tthis.source = null;\n\t\t}\n\t}\n\tunpause() {\n\t\tif (this.source || !this.paused) {\n\t\t\tconsole.warn('Call pause() before unpausing.');\n\t\t\treturn;\n\t\t}\n\t\tthis._createSource();\n\t\tif (!this.source) {\n\t\t\treturn;\n\t\t}\n\t\tthis.startTime = this.manager.context.currentTime;\n\t\tthis.source.start(0, this.startOffset % this.source.buffer.duration);\n\t\tthis.setVolume(this.volume);\n\t\tthis.setLoop(this.loop);\n\t\tthis.setPitch(this.pitch);\n\t\tthis.paused = false;\n\t}\n\tstop() {\n\t\tif (this.source) {\n\t\t\tthis.source.stop(0);\n\t\t\tthis.source = null;\n\t\t}\n\t\tthis.manager.off('volumechange', this.onManagerVolumeChange, this);\n\t\tthis.manager.off('suspend', this.onManagerSuspend, this);\n\t\tthis.manager.off('resume', this.onManagerResume, this);\n\t}\n\tsetVolume(volume) {\n\t\tvolume = math.clamp(volume, 0, 1);\n\t\tthis.volume = volume;\n\t\tif (this.gain) {\n\t\t\tthis.gain.gain.value = volume * this.manager.volume;\n\t\t}\n\t}\n\tsetPitch(pitch) {\n\t\tthis.pitch = pitch;\n\t\tif (this.source) {\n\t\t\tthis.source.playbackRate.value = pitch;\n\t\t}\n\t}\n\tisPlaying() {\n\t\treturn !this.paused && this.source.playbackState === this.source.PLAYING_STATE;\n\t}\n\tgetDuration() {\n\t\treturn this.source ? this.source.buffer.duration : 0;\n\t}\n\t_createSource() {\n\t\tconst context = this.manager.context;\n\t\tif (this.sound.buffer) {\n\t\t\tthis.source = context.createBufferSource();\n\t\t\tthis.source.buffer = this.sound.buffer;\n\t\t\tthis.source.connect(this.gain);\n\t\t\tthis.gain.connect(context.destination);\n\t\t\tif (!this.loop) {\n\t\t\t\tthis.source.onended = this.pause.bind(this);\n\t\t\t}\n\t\t}\n\t}\n}\nif (!hasAudioContext()) {\n\tObject.assign(Channel.prototype, {\n\t\tplay: function () {\n\t\t\tif (this.source) {\n\t\t\t\tthis.paused = false;\n\t\t\t\tthis.setVolume(this.volume);\n\t\t\t\tthis.setLoop(this.loop);\n\t\t\t\tthis.setPitch(this.pitch);\n\t\t\t\tthis.source.play();\n\t\t\t}\n\t\t\tthis.manager.on('volumechange', this.onManagerVolumeChange, this);\n\t\t\tthis.manager.on('suspend', this.onManagerSuspend, this);\n\t\t\tthis.manager.on('resume', this.onManagerResume, this);\n\t\t\tif (this.manager.suspended) {\n\t\t\t\tthis.onManagerSuspend();\n\t\t\t}\n\t\t},\n\t\tpause: function () {\n\t\t\tif (this.source) {\n\t\t\t\tthis.paused = true;\n\t\t\t\tthis.source.pause();\n\t\t\t}\n\t\t},\n\t\tunpause: function () {\n\t\t\tif (this.source) {\n\t\t\t\tthis.paused = false;\n\t\t\t\tthis.source.play();\n\t\t\t}\n\t\t},\n\t\tstop: function () {\n\t\t\tif (this.source) {\n\t\t\t\tthis.source.pause();\n\t\t\t}\n\t\t\tthis.manager.off('volumechange', this.onManagerVolumeChange, this);\n\t\t\tthis.manager.off('suspend', this.onManagerSuspend, this);\n\t\t\tthis.manager.off('resume', this.onManagerResume, this);\n\t\t},\n\t\tsetVolume: function (volume) {\n\t\t\tvolume = math.clamp(volume, 0, 1);\n\t\t\tthis.volume = volume;\n\t\t\tif (this.source) {\n\t\t\t\tthis.source.volume = volume * this.manager.volume;\n\t\t\t}\n\t\t},\n\t\tsetPitch: function (pitch) {\n\t\t\tthis.pitch = pitch;\n\t\t\tif (this.source) {\n\t\t\t\tthis.source.playbackRate = pitch;\n\t\t\t}\n\t\t},\n\t\tgetDuration: function () {\n\t\t\treturn this.source && !isNaN(this.source.duration) ? this.source.duration : 0;\n\t\t},\n\t\tisPlaying: function () {\n\t\t\treturn !this.source.paused;\n\t\t}\n\t});\n}\n\nconst MAX_DISTANCE$1 = 10000;\nclass Channel3d extends Channel {\n\tconstructor(manager, sound, options) {\n\t\tsuper(manager, sound, options);\n\t\tthis.position = new Vec3();\n\t\tthis.velocity = new Vec3();\n\t\tif (hasAudioContext()) {\n\t\t\tthis.panner = manager.context.createPanner();\n\t\t} else {\n\t\t\tthis.maxDistance = MAX_DISTANCE$1;\n\t\t\tthis.minDistance = 1;\n\t\t\tthis.rollOffFactor = 1;\n\t\t\tthis.distanceModel = DISTANCE_INVERSE;\n\t\t}\n\t}\n\tgetPosition() {\n\t\treturn this.position;\n\t}\n\tsetPosition(position) {\n\t\tthis.position.copy(position);\n\t\tconst panner = this.panner;\n\t\tif ('positionX' in panner) {\n\t\t\tpanner.positionX.value = position.x;\n\t\t\tpanner.positionY.value = position.y;\n\t\t\tpanner.positionZ.value = position.z;\n\t\t} else if (panner.setPosition) {\n\t\t\tpanner.setPosition(position.x, position.y, position.z);\n\t\t}\n\t}\n\tgetVelocity() {\n\t\treturn this.velocity;\n\t}\n\tsetVelocity(velocity) {\n\t\tthis.velocity.copy(velocity);\n\t}\n\tgetMaxDistance() {\n\t\treturn this.panner.maxDistance;\n\t}\n\tsetMaxDistance(max) {\n\t\tthis.panner.maxDistance = max;\n\t}\n\tgetMinDistance() {\n\t\treturn this.panner.refDistance;\n\t}\n\tsetMinDistance(min) {\n\t\tthis.panner.refDistance = min;\n\t}\n\tgetRollOffFactor() {\n\t\treturn this.panner.rolloffFactor;\n\t}\n\tsetRollOffFactor(factor) {\n\t\tthis.panner.rolloffFactor = factor;\n\t}\n\tgetDistanceModel() {\n\t\treturn this.panner.distanceModel;\n\t}\n\tsetDistanceModel(distanceModel) {\n\t\tthis.panner.distanceModel = distanceModel;\n\t}\n\t_createSource() {\n\t\tconst context = this.manager.context;\n\t\tthis.source = context.createBufferSource();\n\t\tthis.source.buffer = this.sound.buffer;\n\t\tthis.source.connect(this.panner);\n\t\tthis.panner.connect(this.gain);\n\t\tthis.gain.connect(context.destination);\n\t\tif (!this.loop) {\n\t\t\tthis.source.onended = this.pause.bind(this);\n\t\t}\n\t}\n}\nif (!hasAudioContext()) {\n\tlet offset = new Vec3();\n\tconst fallOff = function fallOff(posOne, posTwo, refDistance, maxDistance, rolloffFactor, distanceModel) {\n\t\toffset = offset.sub2(posOne, posTwo);\n\t\tconst distance = offset.length();\n\t\tif (distance < refDistance) {\n\t\t\treturn 1;\n\t\t} else if (distance > maxDistance) {\n\t\t\treturn 0;\n\t\t}\n\t\tlet result = 0;\n\t\tif (distanceModel === DISTANCE_LINEAR) {\n\t\t\tresult = 1 - rolloffFactor * (distance - refDistance) / (maxDistance - refDistance);\n\t\t} else if (distanceModel === DISTANCE_INVERSE) {\n\t\t\tresult = refDistance / (refDistance + rolloffFactor * (distance - refDistance));\n\t\t} else if (distanceModel === DISTANCE_EXPONENTIAL) {\n\t\t\tresult = Math.pow(distance / refDistance, -rolloffFactor);\n\t\t}\n\t\treturn math.clamp(result, 0, 1);\n\t};\n\tObject.assign(Channel3d.prototype, {\n\t\tsetPosition: function (position) {\n\t\t\tthis.position.copy(position);\n\t\t\tif (this.source) {\n\t\t\t\tconst listener = this.manager.listener;\n\t\t\t\tconst lpos = listener.getPosition();\n\t\t\t\tconst factor = fallOff(lpos, this.position, this.minDistance, this.maxDistance, this.rollOffFactor, this.distanceModel);\n\t\t\t\tconst v = this.getVolume();\n\t\t\t\tthis.source.volume = v * factor;\n\t\t\t}\n\t\t},\n\t\tgetMaxDistance: function () {\n\t\t\treturn this.maxDistance;\n\t\t},\n\t\tsetMaxDistance: function (max) {\n\t\t\tthis.maxDistance = max;\n\t\t},\n\t\tgetMinDistance: function () {\n\t\t\treturn this.minDistance;\n\t\t},\n\t\tsetMinDistance: function (min) {\n\t\t\tthis.minDistance = min;\n\t\t},\n\t\tgetRollOffFactor: function () {\n\t\t\treturn this.rollOffFactor;\n\t\t},\n\t\tsetRollOffFactor: function (factor) {\n\t\t\tthis.rollOffFactor = factor;\n\t\t},\n\t\tgetDistanceModel: function () {\n\t\t\treturn this.distanceModel;\n\t\t},\n\t\tsetDistanceModel: function (distanceModel) {\n\t\t\tthis.distanceModel = distanceModel;\n\t\t}\n\t});\n}\n\nclass Listener {\n\tconstructor(manager) {\n\t\tthis._manager = void 0;\n\t\tthis.position = new Vec3();\n\t\tthis.velocity = new Vec3();\n\t\tthis.orientation = new Mat4();\n\t\tthis._manager = manager;\n\t}\n\tgetPosition() {\n\t\treturn this.position;\n\t}\n\tsetPosition(position) {\n\t\tthis.position.copy(position);\n\t\tconst listener = this.listener;\n\t\tif (listener) {\n\t\t\tif ('positionX' in listener) {\n\t\t\t\tlistener.positionX.value = position.x;\n\t\t\t\tlistener.positionY.value = position.y;\n\t\t\t\tlistener.positionZ.value = position.z;\n\t\t\t} else if (listener.setPosition) {\n\t\t\t\tlistener.setPosition(position.x, position.y, position.z);\n\t\t\t}\n\t\t}\n\t}\n\tgetVelocity() {\n\t\treturn this.velocity;\n\t}\n\tsetVelocity(velocity) {}\n\tsetOrientation(orientation) {\n\t\tthis.orientation.copy(orientation);\n\t\tconst listener = this.listener;\n\t\tif (listener) {\n\t\t\tconst m = orientation.data;\n\t\t\tif ('forwardX' in listener) {\n\t\t\t\tlistener.forwardX.value = -m[8];\n\t\t\t\tlistener.forwardY.value = -m[9];\n\t\t\t\tlistener.forwardZ.value = -m[10];\n\t\t\t\tlistener.upX.value = m[4];\n\t\t\t\tlistener.upY.value = m[5];\n\t\t\t\tlistener.upZ.value = m[6];\n\t\t\t} else if (listener.setOrientation) {\n\t\t\t\tlistener.setOrientation(-m[8], -m[9], -m[10], m[4], m[5], m[6]);\n\t\t\t}\n\t\t}\n\t}\n\tgetOrientation() {\n\t\treturn this.orientation;\n\t}\n\tget listener() {\n\t\tconst context = this._manager.context;\n\t\treturn context ? context.listener : null;\n\t}\n}\n\nconst CONTEXT_STATE_RUNNING = 'running';\nconst USER_INPUT_EVENTS = ['click', 'touchstart', 'mousedown'];\nclass SoundManager extends EventHandler {\n\tconstructor() {\n\t\tsuper();\n\t\tthis._context = null;\n\t\tthis.AudioContext = typeof AudioContext !== 'undefined' && AudioContext || typeof webkitAudioContext !== 'undefined' && webkitAudioContext;\n\t\tif (!this.AudioContext) ;\n\t\tthis._unlockHandlerFunc = this._unlockHandler.bind(this);\n\t\tthis._userSuspended = false;\n\t\tthis.listener = new Listener(this);\n\t\tthis._volume = 1;\n\t}\n\tset volume(volume) {\n\t\tvolume = math.clamp(volume, 0, 1);\n\t\tthis._volume = volume;\n\t\tthis.fire('volumechange', volume);\n\t}\n\tget volume() {\n\t\treturn this._volume;\n\t}\n\tget suspended() {\n\t\treturn this._userSuspended;\n\t}\n\tget context() {\n\t\tif (!this._context && this.AudioContext) {\n\t\t\tthis._context = new this.AudioContext();\n\t\t\tif (this._context.state !== CONTEXT_STATE_RUNNING) {\n\t\t\t\tthis._registerUnlockListeners();\n\t\t\t}\n\t\t}\n\t\treturn this._context;\n\t}\n\tsuspend() {\n\t\tif (!this._userSuspended) {\n\t\t\tthis._userSuspended = true;\n\t\t\tif (this._context && this._context.state === CONTEXT_STATE_RUNNING) {\n\t\t\t\tthis._suspend();\n\t\t\t}\n\t\t}\n\t}\n\tresume() {\n\t\tif (this._userSuspended) {\n\t\t\tthis._userSuspended = false;\n\t\t\tif (this._context && this._context.state !== CONTEXT_STATE_RUNNING) {\n\t\t\t\tthis._resume();\n\t\t\t}\n\t\t}\n\t}\n\tdestroy() {\n\t\tthis.fire('destroy');\n\t\tif (this._context) {\n\t\t\tvar _this$_context;\n\t\t\tthis._removeUnlockListeners();\n\t\t\t(_this$_context = this._context) == null || _this$_context.close();\n\t\t\tthis._context = null;\n\t\t}\n\t}\n\tplaySound(sound, options = {}) {\n\t\tlet channel = null;\n\t\tif (Channel) {\n\t\t\tchannel = new Channel(this, sound, options);\n\t\t\tchannel.play();\n\t\t}\n\t\treturn channel;\n\t}\n\tplaySound3d(sound, position, options = {}) {\n\t\tlet channel = null;\n\t\tif (Channel3d) {\n\t\t\tchannel = new Channel3d(this, sound, options);\n\t\t\tchannel.setPosition(position);\n\t\t\tif (options.volume) {\n\t\t\t\tchannel.setVolume(options.volume);\n\t\t\t}\n\t\t\tif (options.loop) {\n\t\t\t\tchannel.setLoop(options.loop);\n\t\t\t}\n\t\t\tif (options.maxDistance) {\n\t\t\t\tchannel.setMaxDistance(options.maxDistance);\n\t\t\t}\n\t\t\tif (options.minDistance) {\n\t\t\t\tchannel.setMinDistance(options.minDistance);\n\t\t\t}\n\t\t\tif (options.rollOffFactor) {\n\t\t\t\tchannel.setRollOffFactor(options.rollOffFactor);\n\t\t\t}\n\t\t\tif (options.distanceModel) {\n\t\t\t\tchannel.setDistanceModel(options.distanceModel);\n\t\t\t}\n\t\t\tchannel.play();\n\t\t}\n\t\treturn channel;\n\t}\n\t_resume() {\n\t\tthis._context.resume().then(() => {\n\t\t\tconst source = this._context.createBufferSource();\n\t\t\tsource.buffer = this._context.createBuffer(1, 1, this._context.sampleRate);\n\t\t\tsource.connect(this._context.destination);\n\t\t\tsource.start(0);\n\t\t\tsource.onended = event => {\n\t\t\t\tsource.disconnect(0);\n\t\t\t\tthis.fire('resume');\n\t\t\t};\n\t\t}, e => {}).catch(e => {});\n\t}\n\t_suspend() {\n\t\tthis._context.suspend().then(() => {\n\t\t\tthis.fire('suspend');\n\t\t}, e => {}).catch(e => {});\n\t}\n\t_unlockHandler() {\n\t\tthis._removeUnlockListeners();\n\t\tif (!this._userSuspended && this._context.state !== CONTEXT_STATE_RUNNING) {\n\t\t\tthis._resume();\n\t\t}\n\t}\n\t_registerUnlockListeners() {\n\t\tUSER_INPUT_EVENTS.forEach(eventName => {\n\t\t\twindow.addEventListener(eventName, this._unlockHandlerFunc, false);\n\t\t});\n\t}\n\t_removeUnlockListeners() {\n\t\tUSER_INPUT_EVENTS.forEach(eventName => {\n\t\t\twindow.removeEventListener(eventName, this._unlockHandlerFunc, false);\n\t\t});\n\t}\n}\n\nclass Sound {\n\tconstructor(resource) {\n\t\tthis.audio = void 0;\n\t\tthis.buffer = void 0;\n\t\tif (resource instanceof Audio) {\n\t\t\tthis.audio = resource;\n\t\t} else {\n\t\t\tthis.buffer = resource;\n\t\t}\n\t}\n\tget duration() {\n\t\tlet duration = 0;\n\t\tif (this.buffer) {\n\t\t\tduration = this.buffer.duration;\n\t\t} else if (this.audio) {\n\t\t\tduration = this.audio.duration;\n\t\t}\n\t\treturn duration || 0;\n\t}\n}\n\nconst STATE_PLAYING = 0;\nconst STATE_PAUSED = 1;\nconst STATE_STOPPED = 2;\nfunction capTime(time, duration) {\n\treturn time % duration || 0;\n}\nclass SoundInstance extends EventHandler {\n\tconstructor(manager, sound, options) {\n\t\tsuper();\n\t\tthis.source = null;\n\t\tthis._manager = manager;\n\t\tthis._volume = options.volume !== undefined ? math.clamp(Number(options.volume) || 0, 0, 1) : 1;\n\t\tthis._pitch = options.pitch !== undefined ? Math.max(0.01, Number(options.pitch) || 0) : 1;\n\t\tthis._loop = !!(options.loop !== undefined ? options.loop : false);\n\t\tthis._sound = sound;\n\t\tthis._state = STATE_STOPPED;\n\t\tthis._suspended = false;\n\t\tthis._suspendEndEvent = 0;\n\t\tthis._suspendInstanceEvents = false;\n\t\tthis._playWhenLoaded = true;\n\t\tthis._startTime = Math.max(0, Number(options.startTime) || 0);\n\t\tthis._duration = Math.max(0, Number(options.duration) || 0);\n\t\tthis._startOffset = null;\n\t\tthis._onPlayCallback = options.onPlay;\n\t\tthis._onPauseCallback = options.onPause;\n\t\tthis._onResumeCallback = options.onResume;\n\t\tthis._onStopCallback = options.onStop;\n\t\tthis._onEndCallback = options.onEnd;\n\t\tif (hasAudioContext()) {\n\t\t\tthis._startedAt = 0;\n\t\t\tthis._currentTime = 0;\n\t\t\tthis._currentOffset = 0;\n\t\t\tthis._inputNode = null;\n\t\t\tthis._connectorNode = null;\n\t\t\tthis._firstNode = null;\n\t\t\tthis._lastNode = null;\n\t\t\tthis._waitingContextSuspension = false;\n\t\t\tthis._initializeNodes();\n\t\t\tthis._endedHandler = this._onEnded.bind(this);\n\t\t} else {\n\t\t\tthis._isReady = false;\n\t\t\tthis._loadedMetadataHandler = this._onLoadedMetadata.bind(this);\n\t\t\tthis._timeUpdateHandler = this._onTimeUpdate.bind(this);\n\t\t\tthis._endedHandler = this._onEnded.bind(this);\n\t\t\tthis._createSource();\n\t\t}\n\t}\n\tset currentTime(value) {\n\t\tif (value < 0) return;\n\t\tif (this._state === STATE_PLAYING) {\n\t\t\tconst suspend = this._suspendInstanceEvents;\n\t\t\tthis._suspendInstanceEvents = true;\n\t\t\tthis.stop();\n\t\t\tthis._startOffset = value;\n\t\t\tthis.play();\n\t\t\tthis._suspendInstanceEvents = suspend;\n\t\t} else {\n\t\t\tthis._startOffset = value;\n\t\t\tthis._currentTime = value;\n\t\t}\n\t}\n\tget currentTime() {\n\t\tif (this._startOffset !== null) {\n\t\t\treturn this._startOffset;\n\t\t}\n\t\tif (this._state === STATE_PAUSED) {\n\t\t\treturn this._currentTime;\n\t\t}\n\t\tif (this._state === STATE_STOPPED || !this.source) {\n\t\t\treturn 0;\n\t\t}\n\t\tthis._updateCurrentTime();\n\t\treturn this._currentTime;\n\t}\n\tset duration(value) {\n\t\tthis._duration = Math.max(0, Number(value) || 0);\n\t\tconst isPlaying = this._state === STATE_PLAYING;\n\t\tthis.stop();\n\t\tif (isPlaying) {\n\t\t\tthis.play();\n\t\t}\n\t}\n\tget duration() {\n\t\tif (!this._sound) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (this._duration) {\n\t\t\treturn capTime(this._duration, this._sound.duration);\n\t\t}\n\t\treturn this._sound.duration;\n\t}\n\tget isPaused() {\n\t\treturn this._state === STATE_PAUSED;\n\t}\n\tget isPlaying() {\n\t\treturn this._state === STATE_PLAYING;\n\t}\n\tget isStopped() {\n\t\treturn this._state === STATE_STOPPED;\n\t}\n\tget isSuspended() {\n\t\treturn this._suspended;\n\t}\n\tset loop(value) {\n\t\tthis._loop = !!value;\n\t\tif (this.source) {\n\t\t\tthis.source.loop = this._loop;\n\t\t}\n\t}\n\tget loop() {\n\t\treturn this._loop;\n\t}\n\tset pitch(pitch) {\n\t\tthis._currentOffset = this.currentTime;\n\t\tthis._startedAt = this._manager.context.currentTime;\n\t\tthis._pitch = Math.max(Number(pitch) || 0, 0.01);\n\t\tif (this.source) {\n\t\t\tthis.source.playbackRate.value = this._pitch;\n\t\t}\n\t}\n\tget pitch() {\n\t\treturn this._pitch;\n\t}\n\tset sound(value) {\n\t\tthis._sound = value;\n\t\tif (this._state !== STATE_STOPPED) {\n\t\t\tthis.stop();\n\t\t} else {\n\t\t\tthis._createSource();\n\t\t}\n\t}\n\tget sound() {\n\t\treturn this._sound;\n\t}\n\tset startTime(value) {\n\t\tthis._startTime = Math.max(0, Number(value) || 0);\n\t\tconst isPlaying = this._state === STATE_PLAYING;\n\t\tthis.stop();\n\t\tif (isPlaying) {\n\t\t\tthis.play();\n\t\t}\n\t}\n\tget startTime() {\n\t\treturn this._startTime;\n\t}\n\tset volume(volume) {\n\t\tvolume = math.clamp(volume, 0, 1);\n\t\tthis._volume = volume;\n\t\tif (this.gain) {\n\t\t\tthis.gain.gain.value = volume * this._manager.volume;\n\t\t}\n\t}\n\tget volume() {\n\t\treturn this._volume;\n\t}\n\t_onPlay() {\n\t\tthis.fire('play');\n\t\tif (this._onPlayCallback) {\n\t\t\tthis._onPlayCallback(this);\n\t\t}\n\t}\n\t_onPause() {\n\t\tthis.fire('pause');\n\t\tif (this._onPauseCallback) {\n\t\t\tthis._onPauseCallback(this);\n\t\t}\n\t}\n\t_onResume() {\n\t\tthis.fire('resume');\n\t\tif (this._onResumeCallback) {\n\t\t\tthis._onResumeCallback(this);\n\t\t}\n\t}\n\t_onStop() {\n\t\tthis.fire('stop');\n\t\tif (this._onStopCallback) {\n\t\t\tthis._onStopCallback(this);\n\t\t}\n\t}\n\t_onEnded() {\n\t\tif (this._suspendEndEvent > 0) {\n\t\t\tthis._suspendEndEvent--;\n\t\t\treturn;\n\t\t}\n\t\tthis.fire('end');\n\t\tif (this._onEndCallback) {\n\t\t\tthis._onEndCallback(this);\n\t\t}\n\t\tthis.stop();\n\t}\n\t_onManagerVolumeChange() {\n\t\tthis.volume = this._volume;\n\t}\n\t_onManagerSuspend() {\n\t\tif (this._state === STATE_PLAYING && !this._suspended) {\n\t\t\tthis._suspended = true;\n\t\t\tthis.pause();\n\t\t}\n\t}\n\t_onManagerResume() {\n\t\tif (this._suspended) {\n\t\t\tthis._suspended = false;\n\t\t\tthis.resume();\n\t\t}\n\t}\n\t_initializeNodes() {\n\t\tthis.gain = this._manager.context.createGain();\n\t\tthis._inputNode = this.gain;\n\t\tthis._connectorNode = this.gain;\n\t\tthis._connectorNode.connect(this._manager.context.destination);\n\t}\n\tplay() {\n\t\tif (this._state !== STATE_STOPPED) {\n\t\t\tthis.stop();\n\t\t}\n\t\tthis._state = STATE_PLAYING;\n\t\tthis._playWhenLoaded = false;\n\t\tif (this._waitingContextSuspension) {\n\t\t\treturn false;\n\t\t}\n\t\tif (this._manager.suspended) {\n\t\t\tthis._manager.once('resume', this._playAudioImmediate, this);\n\t\t\tthis._waitingContextSuspension = true;\n\t\t\treturn false;\n\t\t}\n\t\tthis._playAudioImmediate();\n\t\treturn true;\n\t}\n\t_playAudioImmediate() {\n\t\tthis._waitingContextSuspension = false;\n\t\tif (this._state !== STATE_PLAYING) {\n\t\t\treturn;\n\t\t}\n\t\tif (!this.source) {\n\t\t\tthis._createSource();\n\t\t}\n\t\tlet offset = capTime(this._startOffset, this.duration);\n\t\toffset = capTime(this._startTime + offset, this._sound.duration);\n\t\tthis._startOffset = null;\n\t\tif (this._duration) {\n\t\t\tthis.source.start(0, offset, this._duration);\n\t\t} else {\n\t\t\tthis.source.start(0, offset);\n\t\t}\n\t\tthis._startedAt = this._manager.context.currentTime;\n\t\tthis._currentTime = 0;\n\t\tthis._currentOffset = offset;\n\t\tthis.volume = this._volume;\n\t\tthis.loop = this._loop;\n\t\tthis.pitch = this._pitch;\n\t\tthis._manager.on('volumechange', this._onManagerVolumeChange, this);\n\t\tthis._manager.on('suspend', this._onManagerSuspend, this);\n\t\tthis._manager.on('resume', this._onManagerResume, this);\n\t\tthis._manager.on('destroy', this._onManagerDestroy, this);\n\t\tif (!this._suspendInstanceEvents) {\n\t\t\tthis._onPlay();\n\t\t}\n\t}\n\tpause() {\n\t\tthis._playWhenLoaded = false;\n\t\tif (this._state !== STATE_PLAYING) {\n\t\t\treturn false;\n\t\t}\n\t\tthis._state = STATE_PAUSED;\n\t\tif (this._waitingContextSuspension) {\n\t\t\treturn true;\n\t\t}\n\t\tthis._updateCurrentTime();\n\t\tthis._suspendEndEvent++;\n\t\tthis.source.stop(0);\n\t\tthis.source = null;\n\t\tthis._startOffset = null;\n\t\tif (!this._suspendInstanceEvents) {\n\t\t\tthis._onPause();\n\t\t}\n\t\treturn true;\n\t}\n\tresume() {\n\t\tif (this._state !== STATE_PAUSED) {\n\t\t\treturn false;\n\t\t}\n\t\tlet offset = this.currentTime;\n\t\tthis._state = STATE_PLAYING;\n\t\tif (this._waitingContextSuspension) {\n\t\t\treturn true;\n\t\t}\n\t\tif (!this.source) {\n\t\t\tthis._createSource();\n\t\t}\n\t\tif (this._startOffset !== null) {\n\t\t\toffset = capTime(this._startOffset, this.duration);\n\t\t\toffset = capTime(this._startTime + offset, this._sound.duration);\n\t\t\tthis._startOffset = null;\n\t\t}\n\t\tif (this._duration) {\n\t\t\tthis.source.start(0, offset, this._duration);\n\t\t} else {\n\t\t\tthis.source.start(0, offset);\n\t\t}\n\t\tthis._startedAt = this._manager.context.currentTime;\n\t\tthis._currentOffset = offset;\n\t\tthis.volume = this._volume;\n\t\tthis.loop = this._loop;\n\t\tthis.pitch = this._pitch;\n\t\tthis._playWhenLoaded = false;\n\t\tif (!this._suspendInstanceEvents) {\n\t\t\tthis._onResume();\n\t\t}\n\t\treturn true;\n\t}\n\tstop() {\n\t\tthis._playWhenLoaded = false;\n\t\tif (this._state === STATE_STOPPED) {\n\t\t\treturn false;\n\t\t}\n\t\tconst wasPlaying = this._state === STATE_PLAYING;\n\t\tthis._state = STATE_STOPPED;\n\t\tif (this._waitingContextSuspension) {\n\t\t\treturn true;\n\t\t}\n\t\tthis._manager.off('volumechange', this._onManagerVolumeChange, this);\n\t\tthis._manager.off('suspend', this._onManagerSuspend, this);\n\t\tthis._manager.off('resume', this._onManagerResume, this);\n\t\tthis._manager.off('destroy', this._onManagerDestroy, this);\n\t\tthis._startedAt = 0;\n\t\tthis._currentTime = 0;\n\t\tthis._currentOffset = 0;\n\t\tthis._startOffset = null;\n\t\tthis._suspendEndEvent++;\n\t\tif (wasPlaying && this.source) {\n\t\t\tthis.source.stop(0);\n\t\t}\n\t\tthis.source = null;\n\t\tif (!this._suspendInstanceEvents) {\n\t\t\tthis._onStop();\n\t\t}\n\t\treturn true;\n\t}\n\tsetExternalNodes(firstNode, lastNode) {\n\t\tif (!firstNode) {\n\t\t\tconsole.error('The firstNode must be a valid Audio Node');\n\t\t\treturn;\n\t\t}\n\t\tif (!lastNode) {\n\t\t\tlastNode = firstNode;\n\t\t}\n\t\tconst speakers = this._manager.context.destination;\n\t\tif (this._firstNode !== firstNode) {\n\t\t\tif (this._firstNode) {\n\t\t\t\tthis._connectorNode.disconnect(this._firstNode);\n\t\t\t} else {\n\t\t\t\tthis._connectorNode.disconnect(speakers);\n\t\t\t}\n\t\t\tthis._firstNode = firstNode;\n\t\t\tthis._connectorNode.connect(firstNode);\n\t\t}\n\t\tif (this._lastNode !== lastNode) {\n\t\t\tif (this._lastNode) {\n\t\t\t\tthis._lastNode.disconnect(speakers);\n\t\t\t}\n\t\t\tthis._lastNode = lastNode;\n\t\t\tthis._lastNode.connect(speakers);\n\t\t}\n\t}\n\tclearExternalNodes() {\n\t\tconst speakers = this._manager.context.destination;\n\t\tif (this._firstNode) {\n\t\t\tthis._connectorNode.disconnect(this._firstNode);\n\t\t\tthis._firstNode = null;\n\t\t}\n\t\tif (this._lastNode) {\n\t\t\tthis._lastNode.disconnect(speakers);\n\t\t\tthis._lastNode = null;\n\t\t}\n\t\tthis._connectorNode.connect(speakers);\n\t}\n\tgetExternalNodes() {\n\t\treturn [this._firstNode, this._lastNode];\n\t}\n\t_createSource() {\n\t\tif (!this._sound) {\n\t\t\treturn null;\n\t\t}\n\t\tconst context = this._manager.context;\n\t\tif (this._sound.buffer) {\n\t\t\tthis.source = context.createBufferSource();\n\t\t\tthis.source.buffer = this._sound.buffer;\n\t\t\tthis.source.connect(this._inputNode);\n\t\t\tthis.source.onended = this._endedHandler;\n\t\t\tthis.source.loopStart = capTime(this._startTime, this.source.buffer.duration);\n\t\t\tif (this._duration) {\n\t\t\t\tthis.source.loopEnd = Math.max(this.source.loopStart, capTime(this._startTime + this._duration, this.source.buffer.duration));\n\t\t\t}\n\t\t}\n\t\treturn this.source;\n\t}\n\t_updateCurrentTime() {\n\t\tthis._currentTime = capTime((this._manager.context.currentTime - this._startedAt) * this._pitch + this._currentOffset, this.duration);\n\t}\n\t_onManagerDestroy() {\n\t\tif (this.source && this._state === STATE_PLAYING) {\n\t\t\tthis.source.stop(0);\n\t\t\tthis.source = null;\n\t\t}\n\t}\n}\nSoundInstance.EVENT_PLAY = 'play';\nSoundInstance.EVENT_PAUSE = 'pause';\nSoundInstance.EVENT_RESUME = 'resume';\nSoundInstance.EVENT_STOP = 'stop';\nSoundInstance.EVENT_END = 'end';\nif (!hasAudioContext()) {\n\tObject.assign(SoundInstance.prototype, {\n\t\tplay: function () {\n\t\t\tif (this._state !== STATE_STOPPED) {\n\t\t\t\tthis.stop();\n\t\t\t}\n\t\t\tif (!this.source) {\n\t\t\t\tif (!this._createSource()) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.volume = this._volume;\n\t\t\tthis.pitch = this._pitch;\n\t\t\tthis.loop = this._loop;\n\t\t\tthis.source.play();\n\t\t\tthis._state = STATE_PLAYING;\n\t\t\tthis._playWhenLoaded = false;\n\t\t\tthis._manager.on('volumechange', this._onManagerVolumeChange, this);\n\t\t\tthis._manager.on('suspend', this._onManagerSuspend, this);\n\t\t\tthis._manager.on('resume', this._onManagerResume, this);\n\t\t\tthis._manager.on('destroy', this._onManagerDestroy, this);\n\t\t\tif (this._manager.suspended) {\n\t\t\t\tthis._onManagerSuspend();\n\t\t\t}\n\t\t\tif (!this._suspendInstanceEvents) {\n\t\t\t\tthis._onPlay();\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\t\tpause: function () {\n\t\t\tif (!this.source || this._state !== STATE_PLAYING) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis._suspendEndEvent++;\n\t\t\tthis.source.pause();\n\t\t\tthis._playWhenLoaded = false;\n\t\t\tthis._state = STATE_PAUSED;\n\t\t\tthis._startOffset = null;\n\t\t\tif (!this._suspendInstanceEvents) {\n\t\t\t\tthis._onPause();\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\t\tresume: function () {\n\t\t\tif (!this.source || this._state !== STATE_PAUSED) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis._state = STATE_PLAYING;\n\t\t\tthis._playWhenLoaded = false;\n\t\t\tif (this.source.paused) {\n\t\t\t\tthis.source.play();\n\t\t\t\tif (!this._suspendInstanceEvents) {\n\t\t\t\t\tthis._onResume();\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\t\tstop: function () {\n\t\t\tif (!this.source || this._state === STATE_STOPPED) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis._manager.off('volumechange', this._onManagerVolumeChange, this);\n\t\t\tthis._manager.off('suspend', this._onManagerSuspend, this);\n\t\t\tthis._manager.off('resume', this._onManagerResume, this);\n\t\t\tthis._manager.off('destroy', this._onManagerDestroy, this);\n\t\t\tthis._suspendEndEvent++;\n\t\t\tthis.source.pause();\n\t\t\tthis._playWhenLoaded = false;\n\t\t\tthis._state = STATE_STOPPED;\n\t\t\tthis._startOffset = null;\n\t\t\tif (!this._suspendInstanceEvents) {\n\t\t\t\tthis._onStop();\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\t\tsetExternalNodes: function () {},\n\t\tclearExternalNodes: function () {},\n\t\tgetExternalNodes: function () {\n\t\t\treturn [null, null];\n\t\t},\n\t\t_onLoadedMetadata: function () {\n\t\t\tthis.source.removeEventListener('loadedmetadata', this._loadedMetadataHandler);\n\t\t\tthis._isReady = true;\n\t\t\tlet offset = capTime(this._startOffset, this.duration);\n\t\t\toffset = capTime(this._startTime + offset, this._sound.duration);\n\t\t\tthis._startOffset = null;\n\t\t\tthis.source.currentTime = offset;\n\t\t},\n\t\t_createSource: function () {\n\t\t\tif (this._sound && this._sound.audio) {\n\t\t\t\tthis._isReady = false;\n\t\t\t\tthis.source = this._sound.audio.cloneNode(true);\n\t\t\t\tthis.source.addEventListener('loadedmetadata', this._loadedMetadataHandler);\n\t\t\t\tthis.source.addEventListener('timeupdate', this._timeUpdateHandler);\n\t\t\t\tthis.source.onended = this._endedHandler;\n\t\t\t}\n\t\t\treturn this.source;\n\t\t},\n\t\t_onTimeUpdate: function () {\n\t\t\tif (!this._duration) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this.source.currentTime > capTime(this._startTime + this._duration, this.source.duration)) {\n\t\t\t\tif (this.loop) {\n\t\t\t\t\tthis.source.currentTime = capTime(this._startTime, this.source.duration);\n\t\t\t\t} else {\n\t\t\t\t\tthis.source.removeEventListener('timeupdate', this._timeUpdateHandler);\n\t\t\t\t\tthis.source.pause();\n\t\t\t\t\tthis._onEnded();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t_onManagerDestroy: function () {\n\t\t\tif (this.source) {\n\t\t\t\tthis.source.pause();\n\t\t\t}\n\t\t}\n\t});\n\tObject.defineProperty(SoundInstance.prototype, 'volume', {\n\t\tget: function () {\n\t\t\treturn this._volume;\n\t\t},\n\t\tset: function (volume) {\n\t\t\tvolume = math.clamp(volume, 0, 1);\n\t\t\tthis._volume = volume;\n\t\t\tif (this.source) {\n\t\t\t\tthis.source.volume = volume * this._manager.volume;\n\t\t\t}\n\t\t}\n\t});\n\tObject.defineProperty(SoundInstance.prototype, 'pitch', {\n\t\tget: function () {\n\t\t\treturn this._pitch;\n\t\t},\n\t\tset: function (pitch) {\n\t\t\tthis._pitch = Math.max(Number(pitch) || 0, 0.01);\n\t\t\tif (this.source) {\n\t\t\t\tthis.source.playbackRate = this._pitch;\n\t\t\t}\n\t\t}\n\t});\n\tObject.defineProperty(SoundInstance.prototype, 'sound', {\n\t\tget: function () {\n\t\t\treturn this._sound;\n\t\t},\n\t\tset: function (value) {\n\t\t\tthis.stop();\n\t\t\tthis._sound = value;\n\t\t}\n\t});\n\tObject.defineProperty(SoundInstance.prototype, 'currentTime', {\n\t\tget: function () {\n\t\t\tif (this._startOffset !== null) {\n\t\t\t\treturn this._startOffset;\n\t\t\t}\n\t\t\tif (this._state === STATE_STOPPED || !this.source) {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\treturn this.source.currentTime - this._startTime;\n\t\t},\n\t\tset: function (value) {\n\t\t\tif (value < 0) return;\n\t\t\tthis._startOffset = value;\n\t\t\tif (this.source && this._isReady) {\n\t\t\t\tthis.source.currentTime = capTime(this._startTime + capTime(value, this.duration), this._sound.duration);\n\t\t\t\tthis._startOffset = null;\n\t\t\t}\n\t\t}\n\t});\n}\n\nconst MAX_DISTANCE = 10000;\nclass SoundInstance3d extends SoundInstance {\n\tconstructor(manager, sound, options = {}) {\n\t\tsuper(manager, sound, options);\n\t\tthis._position = new Vec3();\n\t\tthis._velocity = new Vec3();\n\t\tif (options.position) {\n\t\t\tthis.position = options.position;\n\t\t}\n\t\tthis.maxDistance = options.maxDistance !== undefined ? Number(options.maxDistance) : MAX_DISTANCE;\n\t\tthis.refDistance = options.refDistance !== undefined ? Number(options.refDistance) : 1;\n\t\tthis.rollOffFactor = options.rollOffFactor !== undefined ? Number(options.rollOffFactor) : 1;\n\t\tthis.distanceModel = options.distanceModel !== undefined ? options.distanceModel : DISTANCE_LINEAR;\n\t}\n\t_initializeNodes() {\n\t\tthis.gain = this._manager.context.createGain();\n\t\tthis.panner = this._manager.context.createPanner();\n\t\tthis.panner.connect(this.gain);\n\t\tthis._inputNode = this.panner;\n\t\tthis._connectorNode = this.gain;\n\t\tthis._connectorNode.connect(this._manager.context.destination);\n\t}\n\tset position(value) {\n\t\tthis._position.copy(value);\n\t\tconst panner = this.panner;\n\t\tif ('positionX' in panner) {\n\t\t\tpanner.positionX.value = value.x;\n\t\t\tpanner.positionY.value = value.y;\n\t\t\tpanner.positionZ.value = value.z;\n\t\t} else if (panner.setPosition) {\n\t\t\tpanner.setPosition(value.x, value.y, value.z);\n\t\t}\n\t}\n\tget position() {\n\t\treturn this._position;\n\t}\n\tset velocity(velocity) {\n\t\tthis._velocity.copy(velocity);\n\t}\n\tget velocity() {\n\t\treturn this._velocity;\n\t}\n\tset maxDistance(value) {\n\t\tthis.panner.maxDistance = value;\n\t}\n\tget maxDistance() {\n\t\treturn this.panner.maxDistance;\n\t}\n\tset refDistance(value) {\n\t\tthis.panner.refDistance = value;\n\t}\n\tget refDistance() {\n\t\treturn this.panner.refDistance;\n\t}\n\tset rollOffFactor(value) {\n\t\tthis.panner.rolloffFactor = value;\n\t}\n\tget rollOffFactor() {\n\t\treturn this.panner.rolloffFactor;\n\t}\n\tset distanceModel(value) {\n\t\tthis.panner.distanceModel = value;\n\t}\n\tget distanceModel() {\n\t\treturn this.panner.distanceModel;\n\t}\n}\nif (!hasAudioContext()) {\n\tlet offset = new Vec3();\n\tconst fallOff = function fallOff(posOne, posTwo, refDistance, maxDistance, rollOffFactor, distanceModel) {\n\t\toffset = offset.sub2(posOne, posTwo);\n\t\tconst distance = offset.length();\n\t\tif (distance < refDistance) {\n\t\t\treturn 1;\n\t\t} else if (distance > maxDistance) {\n\t\t\treturn 0;\n\t\t}\n\t\tlet result = 0;\n\t\tif (distanceModel === DISTANCE_LINEAR) {\n\t\t\tresult = 1 - rollOffFactor * (distance - refDistance) / (maxDistance - refDistance);\n\t\t} else if (distanceModel === DISTANCE_INVERSE) {\n\t\t\tresult = refDistance / (refDistance + rollOffFactor * (distance - refDistance));\n\t\t} else if (distanceModel === DISTANCE_EXPONENTIAL) {\n\t\t\tresult = Math.pow(distance / refDistance, -rollOffFactor);\n\t\t}\n\t\treturn math.clamp(result, 0, 1);\n\t};\n\tObject.defineProperty(SoundInstance3d.prototype, 'position', {\n\t\tget: function () {\n\t\t\treturn this._position;\n\t\t},\n\t\tset: function (position) {\n\t\t\tthis._position.copy(position);\n\t\t\tif (this.source) {\n\t\t\t\tconst listener = this._manager.listener;\n\t\t\t\tconst lpos = listener.getPosition();\n\t\t\t\tconst factor = fallOff(lpos, this._position, this.refDistance, this.maxDistance, this.rollOffFactor, this.distanceModel);\n\t\t\t\tconst v = this.volume;\n\t\t\t\tthis.source.volume = v * factor * this._manager.volume;\n\t\t\t}\n\t\t}\n\t});\n\tObject.defineProperty(SoundInstance3d.prototype, 'maxDistance', {\n\t\tget: function () {\n\t\t\treturn this._maxDistance;\n\t\t},\n\t\tset: function (value) {\n\t\t\tthis._maxDistance = value;\n\t\t}\n\t});\n\tObject.defineProperty(SoundInstance3d.prototype, 'refDistance', {\n\t\tget: function () {\n\t\t\treturn this._refDistance;\n\t\t},\n\t\tset: function (value) {\n\t\t\tthis._refDistance = value;\n\t\t}\n\t});\n\tObject.defineProperty(SoundInstance3d.prototype, 'rollOffFactor', {\n\t\tget: function () {\n\t\t\treturn this._rollOffFactor;\n\t\t},\n\t\tset: function (value) {\n\t\t\tthis._rollOffFactor = value;\n\t\t}\n\t});\n\tObject.defineProperty(SoundInstance3d.prototype, 'distanceModel', {\n\t\tget: function () {\n\t\t\treturn this._distanceModel;\n\t\t},\n\t\tset: function (value) {\n\t\t\tthis._distanceModel = value;\n\t\t}\n\t});\n}\n\nconst BLEND_SUBTRACTIVE = 0;\nconst BLEND_ADDITIVE = 1;\nconst BLEND_NORMAL = 2;\nconst BLEND_NONE = 3;\nconst BLEND_PREMULTIPLIED = 4;\nconst BLEND_MULTIPLICATIVE = 5;\nconst BLEND_ADDITIVEALPHA = 6;\nconst BLEND_MULTIPLICATIVE2X = 7;\nconst BLEND_SCREEN = 8;\nconst BLEND_MIN = 9;\nconst BLEND_MAX = 10;\nconst FOG_NONE = 'none';\nconst FOG_LINEAR = 'linear';\nconst FOG_EXP = 'exp';\nconst FOG_EXP2 = 'exp2';\nconst FRESNEL_NONE = 0;\nconst FRESNEL_SCHLICK = 2;\nconst LAYER_HUD = 0;\nconst LAYER_GIZMO = 1;\nconst LAYER_FX = 2;\nconst LAYER_WORLD = 15;\nconst LAYERID_WORLD = 0;\nconst LAYERID_DEPTH = 1;\nconst LAYERID_SKYBOX = 2;\nconst LAYERID_IMMEDIATE = 3;\nconst LAYERID_UI = 4;\nconst LIGHTTYPE_DIRECTIONAL = 0;\nconst LIGHTTYPE_OMNI = 1;\nconst LIGHTTYPE_POINT = LIGHTTYPE_OMNI;\nconst LIGHTTYPE_SPOT = 2;\nconst LIGHTTYPE_COUNT = 3;\nconst LIGHTSHAPE_PUNCTUAL = 0;\nconst LIGHTSHAPE_RECT = 1;\nconst LIGHTSHAPE_DISK = 2;\nconst LIGHTSHAPE_SPHERE = 3;\nconst LIGHTFALLOFF_LINEAR = 0;\nconst LIGHTFALLOFF_INVERSESQUARED = 1;\nconst SHADOW_PCF3 = 0;\nconst SHADOW_DEPTH = 0;\nconst SHADOW_VSM8 = 1;\nconst SHADOW_VSM16 = 2;\nconst SHADOW_VSM32 = 3;\nconst SHADOW_PCF5 = 4;\nconst SHADOW_PCF1 = 5;\nconst SHADOW_PCSS = 6;\nconst shadowTypeToString = {};\nshadowTypeToString[SHADOW_PCF3] = 'PCF3';\nshadowTypeToString[SHADOW_VSM8] = 'VSM8';\nshadowTypeToString[SHADOW_VSM16] = 'VSM16';\nshadowTypeToString[SHADOW_VSM32] = 'VSM32';\nshadowTypeToString[SHADOW_PCF5] = 'PCF5';\nshadowTypeToString[SHADOW_PCF1] = 'PCF1';\nshadowTypeToString[SHADOW_PCSS] = 'PCSS';\nconst BLUR_BOX = 0;\nconst BLUR_GAUSSIAN = 1;\nconst PARTICLESORT_NONE = 0;\nconst PARTICLESORT_DISTANCE = 1;\nconst PARTICLESORT_NEWER_FIRST = 2;\nconst PARTICLESORT_OLDER_FIRST = 3;\nconst PARTICLEMODE_GPU = 0;\nconst PARTICLEMODE_CPU = 1;\nconst EMITTERSHAPE_BOX = 0;\nconst EMITTERSHAPE_SPHERE = 1;\nconst PARTICLEORIENTATION_SCREEN = 0;\nconst PARTICLEORIENTATION_WORLD = 1;\nconst PARTICLEORIENTATION_EMITTER = 2;\nconst PROJECTION_PERSPECTIVE = 0;\nconst PROJECTION_ORTHOGRAPHIC = 1;\nconst RENDERSTYLE_SOLID = 0;\nconst RENDERSTYLE_WIREFRAME = 1;\nconst RENDERSTYLE_POINTS = 2;\nconst CUBEPROJ_NONE = 0;\nconst CUBEPROJ_BOX = 1;\nconst SPECULAR_PHONG = 0;\nconst SPECULAR_BLINN = 1;\nconst DETAILMODE_MUL = 'mul';\nconst DETAILMODE_ADD = 'add';\nconst DETAILMODE_SCREEN = 'screen';\nconst DETAILMODE_OVERLAY = 'overlay';\nconst DETAILMODE_MIN = 'min';\nconst DETAILMODE_MAX = 'max';\nconst GAMMA_NONE = 0;\nconst GAMMA_SRGB = 1;\nconst GAMMA_SRGBFAST = 2;\nconst GAMMA_SRGBHDR = 3;\nconst TONEMAP_LINEAR = 0;\nconst TONEMAP_FILMIC = 1;\nconst TONEMAP_HEJL = 2;\nconst TONEMAP_ACES = 3;\nconst TONEMAP_ACES2 = 4;\nconst TONEMAP_NEUTRAL = 5;\nconst SPECOCC_NONE = 0;\nconst SPECOCC_AO = 1;\nconst SPECOCC_GLOSSDEPENDENT = 2;\nconst SHADERDEF_NOSHADOW = 1;\nconst SHADERDEF_SKIN = 2;\nconst SHADERDEF_UV0 = 4;\nconst SHADERDEF_UV1 = 8;\nconst SHADERDEF_VCOLOR = 16;\nconst SHADERDEF_INSTANCING = 32;\nconst SHADERDEF_LM = 64;\nconst SHADERDEF_DIRLM = 128;\nconst SHADERDEF_SCREENSPACE = 256;\nconst SHADERDEF_TANGENTS = 512;\nconst SHADERDEF_MORPH_POSITION = 1024;\nconst SHADERDEF_MORPH_NORMAL = 2048;\nconst SHADERDEF_MORPH_TEXTURE_BASED = 4096;\nconst SHADERDEF_LMAMBIENT = 8192;\nconst SHADOWUPDATE_NONE = 0;\nconst SHADOWUPDATE_THISFRAME = 1;\nconst SHADOWUPDATE_REALTIME = 2;\nconst SORTKEY_FORWARD = 0;\nconst SORTKEY_DEPTH = 1;\nconst MASK_AFFECT_DYNAMIC = 1;\nconst MASK_AFFECT_LIGHTMAPPED = 2;\nconst MASK_BAKE = 4;\nconst SHADER_FORWARD = 0;\nconst SHADER_FORWARDHDR = 1;\nconst SHADER_DEPTH = 2;\nconst SHADER_PICK = 3;\nconst SHADER_SHADOW = 4;\nconst SHADER_PREPASS_VELOCITY = 5;\nconst SHADERPASS_FORWARD = 'forward';\nconst SHADERPASS_ALBEDO = 'debug_albedo';\nconst SHADERPASS_WORLDNORMAL = 'debug_world_normal';\nconst SHADERPASS_OPACITY = 'debug_opacity';\nconst SHADERPASS_SPECULARITY = 'debug_specularity';\nconst SHADERPASS_GLOSS = 'debug_gloss';\nconst SHADERPASS_METALNESS = 'debug_metalness';\nconst SHADERPASS_AO = 'debug_ao';\nconst SHADERPASS_EMISSION = 'debug_emission';\nconst SHADERPASS_LIGHTING = 'debug_lighting';\nconst SHADERPASS_UV0 = 'debug_uv0';\nconst SPRITE_RENDERMODE_SIMPLE = 0;\nconst SPRITE_RENDERMODE_SLICED = 1;\nconst SPRITE_RENDERMODE_TILED = 2;\nconst BAKE_COLOR = 0;\nconst BAKE_COLORDIR = 1;\nconst VIEW_CENTER = 0;\nconst VIEW_LEFT = 1;\nconst VIEW_RIGHT = 2;\nconst SORTMODE_NONE = 0;\nconst SORTMODE_MANUAL = 1;\nconst SORTMODE_MATERIALMESH = 2;\nconst SORTMODE_BACK2FRONT = 3;\nconst SORTMODE_FRONT2BACK = 4;\nconst SORTMODE_CUSTOM = 5;\nconst ASPECT_AUTO = 0;\nconst ASPECT_MANUAL = 1;\nconst ORIENTATION_HORIZONTAL = 0;\nconst ORIENTATION_VERTICAL = 1;\nconst SKYTYPE_INFINITE = 'infinite';\nconst SKYTYPE_BOX = 'box';\nconst SKYTYPE_DOME = 'dome';\nconst DITHER_NONE = 'none';\nconst DITHER_BAYER8 = 'bayer8';\nconst DITHER_BLUENOISE = 'bluenoise';\nconst DITHER_IGNNOISE = 'ignnoise';\n\nvar alphaTestPS = `\nuniform float alpha_ref;\nvoid alphaTest(float a) {\n\tif (a < alpha_ref) discard;\n}\n`;\n\nvar ambientConstantPS = `\nvoid addAmbient(vec3 worldNormal) {\n\tdDiffuseLight += light_globalAmbient;\n}\n`;\n\nvar ambientEnvPS = `\n#ifndef ENV_ATLAS\n#define ENV_ATLAS\nuniform sampler2D texture_envAtlas;\n#endif\nvoid addAmbient(vec3 worldNormal) {\n\tvec3 dir = normalize(cubeMapRotate(worldNormal) * vec3(-1.0, 1.0, 1.0));\n\tvec2 uv = mapUv(toSphericalUv(dir), vec4(128.0, 256.0 + 128.0, 64.0, 32.0) / atlasSize);\n\tvec4 raw = texture2D(texture_envAtlas, uv);\n\tvec3 linear = $DECODE(raw);\n\tdDiffuseLight += processEnvironment(linear);\n}\n`;\n\nvar ambientSHPS = `\nuniform vec3 ambientSH[9];\nvoid addAmbient(vec3 worldNormal) {\n\tvec3 n = cubeMapRotate(worldNormal);\n\tvec3 color =\n\t\tambientSH[0] +\n\t\tambientSH[1] * n.x +\n\t\tambientSH[2] * n.y +\n\t\tambientSH[3] * n.z +\n\t\tambientSH[4] * n.x * n.z +\n\t\tambientSH[5] * n.z * n.y +\n\t\tambientSH[6] * n.y * n.x +\n\t\tambientSH[7] * (3.0 * n.z * n.z - 1.0) +\n\t\tambientSH[8] * (n.x * n.x - n.y * n.y);\n\tdDiffuseLight += processEnvironment(max(color, vec3(0.0)));\n}\n`;\n\nvar aoPS = `\nvoid getAO() {\n\tdAo = 1.0;\n\t#ifdef MAPTEXTURE\n\tfloat aoBase = texture2DBias($SAMPLER, $UV, textureBias).$CH;\n\tdAo *= addAoDetail(aoBase);\n\t#endif\n\t#ifdef MAPVERTEX\n\tdAo *= saturate(vVertexColor.$VC);\n\t#endif\n}\n`;\n\nvar aoDetailMapPS = `\nfloat addAoDetail(float ao) {\n#ifdef MAPTEXTURE\n\tfloat aoDetail = texture2DBias($SAMPLER, $UV, textureBias).$CH;\n\treturn detailMode_$DETAILMODE(vec3(ao), vec3(aoDetail)).r;\n#else\n\treturn ao;\n#endif\n}\n`;\n\nvar aoDiffuseOccPS = `\nvoid occludeDiffuse(float ao) {\n\tdDiffuseLight *= ao;\n}\n`;\n\nvar aoSpecOccPS = `\nuniform float material_occludeSpecularIntensity;\nvoid occludeSpecular(float gloss, float ao, vec3 worldNormal, vec3 viewDir) {\n\tfloat specPow = exp2(gloss * 11.0);\n\tfloat specOcc = saturate(pow(dot(worldNormal, viewDir) + ao, 0.01*specPow) - 1.0 + ao);\n\tspecOcc = mix(1.0, specOcc, material_occludeSpecularIntensity);\n\tdSpecularLight *= specOcc;\n\tdReflection *= specOcc;\n\t\n#ifdef LIT_SHEEN\n\tsSpecularLight *= specOcc;\n\tsReflection *= specOcc;\n#endif\n}\n`;\n\nvar aoSpecOccConstPS = `\nvoid occludeSpecular(float gloss, float ao, vec3 worldNormal, vec3 viewDir) {\n\tfloat specPow = exp2(gloss * 11.0);\n\tfloat specOcc = saturate(pow(dot(worldNormal, viewDir) + ao, 0.01*specPow) - 1.0 + ao);\n\tdSpecularLight *= specOcc;\n\tdReflection *= specOcc;\n\t\n#ifdef LIT_SHEEN\n\tsSpecularLight *= specOcc;\n\tsReflection *= specOcc;\n#endif\n}\n`;\n\nvar aoSpecOccConstSimplePS = `\nvoid occludeSpecular(float gloss, float ao, vec3 worldNormal, vec3 viewDir) {\n\tdSpecularLight *= ao;\n\tdReflection *= ao;\n#ifdef LIT_SHEEN\n\tsSpecularLight *= ao;\n\tsReflection *= ao;\n#endif\n}\n`;\n\nvar aoSpecOccSimplePS = `\nuniform float material_occludeSpecularIntensity;\nvoid occludeSpecular(float gloss, float ao, vec3 worldNormal, vec3 viewDir) {\n\tfloat specOcc = mix(1.0, ao, material_occludeSpecularIntensity);\n\tdSpecularLight *= specOcc;\n\tdReflection *= specOcc;\n#ifdef LIT_SHEEN\n\tsSpecularLight *= specOcc;\n\tsReflection *= specOcc;\n#endif\n}\n`;\n\nvar basePS = `\nuniform vec3 view_position;\nuniform vec3 light_globalAmbient;\nfloat square(float x) {\n\treturn x*x;\n}\nfloat saturate(float x) {\n\treturn clamp(x, 0.0, 1.0);\n}\nvec3 saturate(vec3 x) {\n\treturn clamp(x, vec3(0.0), vec3(1.0));\n}\n`;\n\nvar baseVS = `\nattribute vec3 vertex_position;\nattribute vec3 vertex_normal;\nattribute vec4 vertex_tangent;\nattribute vec2 vertex_texCoord0;\nattribute vec2 vertex_texCoord1;\nattribute vec4 vertex_color;\nuniform mat4 matrix_viewProjection;\nuniform mat4 matrix_model;\nuniform mat3 matrix_normal;\nvec3 dPositionW;\nmat4 dModelMatrix;\nmat3 dNormalMatrix;\n`;\n\nvar baseNineSlicedPS = `\n#define NINESLICED\nvarying vec2 vMask;\nvarying vec2 vTiledUv;\nuniform mediump vec4 innerOffset;\nuniform mediump vec2 outerScale;\nuniform mediump vec4 atlasRect;\nvec2 nineSlicedUv;\n`;\n\nvar baseNineSlicedVS = `\n#define NINESLICED\nvarying vec2 vMask;\nvarying vec2 vTiledUv;\nuniform mediump vec4 innerOffset;\nuniform mediump vec2 outerScale;\nuniform mediump vec4 atlasRect;\n`;\n\nvar baseNineSlicedTiledPS = `\n#define NINESLICED\n#define NINESLICETILED\nvarying vec2 vMask;\nvarying vec2 vTiledUv;\nuniform mediump vec4 innerOffset;\nuniform mediump vec2 outerScale;\nuniform mediump vec4 atlasRect;\nvec2 nineSlicedUv;\n`;\n\nvar bayerPS = `\nfloat bayer2(vec2 p) {\n\treturn mod(2.0 * p.y + p.x + 1.0, 4.0);\n}\nfloat bayer4(vec2 p) {\n\tvec2 p1 = mod(p, 2.0);\n\tvec2 p2 = floor(0.5 * mod(p, 4.0));\n\treturn 4.0 * bayer2(p1) + bayer2(p2);\n}\nfloat bayer8(vec2 p) {\n\tvec2 p1 = mod(p, 2.0);\n\tvec2 p2 = floor(0.5 * mod(p, 4.0));\n\tvec2 p4 = floor(0.25 * mod(p, 8.0));\n\treturn 4.0 * (4.0 * bayer2(p1) + bayer2(p2)) + bayer2(p4);\n}\n`;\n\nvar biasConstPS = `\n#define SHADOWBIAS\n#define SHADOW_SAMPLE_Z_BIAS\nfloat getShadowBias(float resolution, float maxBias) {\n\treturn maxBias;\n}\n`;\n\nvar blurVSMPS = `\nvarying vec2 vUv0;\nuniform sampler2D source;\nuniform vec2 pixelOffset;\n#ifdef GAUSS\nuniform float weight[SAMPLES];\n#endif\n#ifdef PACKED\nfloat decodeFloatRG(vec2 rg) {\n\treturn rg.y*(1.0/255.0) + rg.x;\n}\nvec2 encodeFloatRG( float v ) {\n\tvec2 enc = vec2(1.0, 255.0) * v;\n\tenc = fract(enc);\n\tenc -= enc.yy * vec2(1.0/255.0, 1.0/255.0);\n\treturn enc;\n}\n#endif\nvoid main(void) {\n\tvec3 moments = vec3(0.0);\n\tvec2 uv = vUv0 - pixelOffset * (float(SAMPLES) * 0.5);\n\tfor (int i=0; i<SAMPLES; i++) {\n\t\tvec4 c = texture2D(source, uv + pixelOffset * float(i));\n\t\t#ifdef PACKED\n\t\tc.xy = vec2(decodeFloatRG(c.xy), decodeFloatRG(c.zw));\n\t\t#endif\n\t\t#ifdef GAUSS\n\t\tmoments += c.xyz * weight[i];\n\t\t#else\n\t\tmoments += c.xyz;\n\t\t#endif\n\t}\n\t#ifndef GAUSS\n\tmoments /= float(SAMPLES);\n\t#endif\n\t#ifdef PACKED\n\tgl_FragColor = vec4(encodeFloatRG(moments.x), encodeFloatRG(moments.y));\n\t#else\n\tgl_FragColor = vec4(moments.x, moments.y, moments.z, 1.0);\n\t#endif\n}\n`;\n\nvar clearCoatPS = `\n#ifdef MAPFLOAT\nuniform float material_clearCoat;\n#endif\nvoid getClearCoat() {\n\tccSpecularity = 1.0;\n\t#ifdef MAPFLOAT\n\tccSpecularity *= material_clearCoat;\n\t#endif\n\t#ifdef MAPTEXTURE\n\tccSpecularity *= texture2DBias($SAMPLER, $UV, textureBias).$CH;\n\t#endif\n\t#ifdef MAPVERTEX\n\tccSpecularity *= saturate(vVertexColor.$VC);\n\t#endif\n}\n`;\n\nvar clearCoatGlossPS = `\n#ifdef MAPFLOAT\nuniform float material_clearCoatGloss;\n#endif\nvoid getClearCoatGlossiness() {\n\tccGlossiness = 1.0;\n\t#ifdef MAPFLOAT\n\tccGlossiness *= material_clearCoatGloss;\n\t#endif\n\t#ifdef MAPTEXTURE\n\tccGlossiness *= texture2DBias($SAMPLER, $UV, textureBias).$CH;\n\t#endif\n\t#ifdef MAPVERTEX\n\tccGlossiness *= saturate(vVertexColor.$VC);\n\t#endif\n\t#ifdef MAPINVERT\n\tccGlossiness = 1.0 - ccGlossiness;\n\t#endif\n\tccGlossiness += 0.0000001;\n}\n`;\n\nvar clearCoatNormalPS = `\n#ifdef MAPTEXTURE\nuniform float material_clearCoatBumpiness;\n#endif\nvoid getClearCoatNormal() {\n#ifdef MAPTEXTURE\n\tvec3 normalMap = unpackNormal(texture2DBias($SAMPLER, $UV, textureBias));\n\tnormalMap = mix(vec3(0.0, 0.0, 1.0), normalMap, material_clearCoatBumpiness);\n\tccNormalW = normalize(dTBN * normalMap);\n#else\n\tccNormalW = dVertexNormalW;\n#endif\n}\n`;\n\nvar clusteredLightUtilsPS = `\nvec2 getCubemapFaceCoordinates(const vec3 dir, out float faceIndex, out vec2 tileOffset)\n{\n\tvec3 vAbs = abs(dir);\n\tfloat ma;\n\tvec2 uv;\n\tif (vAbs.z >= vAbs.x && vAbs.z >= vAbs.y) {\n\t\tfaceIndex = dir.z < 0.0 ? 5.0 : 4.0;\n\t\tma = 0.5 / vAbs.z;\n\t\tuv = vec2(dir.z < 0.0 ? -dir.x : dir.x, -dir.y);\n\t\ttileOffset.x = 2.0;\n\t\ttileOffset.y = dir.z < 0.0 ? 1.0 : 0.0;\n\t} else if(vAbs.y >= vAbs.x) {\n\t\tfaceIndex = dir.y < 0.0 ? 3.0 : 2.0;\n\t\tma = 0.5 / vAbs.y;\n\t\tuv = vec2(dir.x, dir.y < 0.0 ? -dir.z : dir.z);\n\t\ttileOffset.x = 1.0;\n\t\ttileOffset.y = dir.y < 0.0 ? 1.0 : 0.0;\n\t} else {\n\t\tfaceIndex = dir.x < 0.0 ? 1.0 : 0.0;\n\t\tma = 0.5 / vAbs.x;\n\t\tuv = vec2(dir.x < 0.0 ? dir.z : -dir.z, -dir.y);\n\t\ttileOffset.x = 0.0;\n\t\ttileOffset.y = dir.x < 0.0 ? 1.0 : 0.0;\n\t}\n\treturn uv * ma + 0.5;\n}\nvec2 getCubemapAtlasCoordinates(const vec3 omniAtlasViewport, float shadowEdgePixels, float shadowTextureResolution, const vec3 dir) {\n\tfloat faceIndex;\n\tvec2 tileOffset;\n\tvec2 uv = getCubemapFaceCoordinates(dir, faceIndex, tileOffset);\n\tfloat atlasFaceSize = omniAtlasViewport.z;\n\tfloat tileSize = shadowTextureResolution * atlasFaceSize;\n\tfloat offset = shadowEdgePixels / tileSize;\n\tuv = uv * vec2(1.0 - offset * 2.0) + vec2(offset * 1.0);\n\tuv *= atlasFaceSize;\n\tuv += tileOffset * atlasFaceSize;\n\tuv += omniAtlasViewport.xy;\n\treturn uv;\n}\n`;\n\nvar clusteredLightCookiesPS = `\nvec3 _getCookieClustered(TEXTURE_ACCEPT(tex), vec2 uv, float intensity, bool isRgb, vec4 cookieChannel) {\n\tvec4 pixel = mix(vec4(1.0), texture2DLodEXT(tex, uv, 0.0), intensity);\n\treturn isRgb == true ? pixel.rgb : vec3(dot(pixel, cookieChannel));\n}\nvec3 getCookie2DClustered(TEXTURE_ACCEPT(tex), mat4 transform, vec3 worldPosition, float intensity, bool isRgb, vec4 cookieChannel) {\n\tvec4 projPos = transform * vec4(worldPosition, 1.0);\n\treturn _getCookieClustered(TEXTURE_PASS(tex), projPos.xy / projPos.w, intensity, isRgb, cookieChannel);\n}\nvec3 getCookieCubeClustered(TEXTURE_ACCEPT(tex), vec3 dir, float intensity, bool isRgb, vec4 cookieChannel, float shadowTextureResolution, float shadowEdgePixels, vec3 omniAtlasViewport) {\n\tvec2 uv = getCubemapAtlasCoordinates(omniAtlasViewport, shadowEdgePixels, shadowTextureResolution, dir);\n\treturn _getCookieClustered(TEXTURE_PASS(tex), uv, intensity, isRgb, cookieChannel);\n}\n`;\n\nvar clusteredLightShadowsPS = `\nvoid _getShadowCoordPerspZbuffer(mat4 shadowMatrix, vec4 shadowParams, vec3 wPos) {\n\tvec4 projPos = shadowMatrix * vec4(wPos, 1.0);\n\tprojPos.xyz /= projPos.w;\n\tdShadowCoord = projPos.xyz;\n}\nvoid getShadowCoordPerspZbufferNormalOffset(mat4 shadowMatrix, vec4 shadowParams, vec3 normal) {\n\tvec3 wPos = vPositionW + normal * shadowParams.y;\n\t_getShadowCoordPerspZbuffer(shadowMatrix, shadowParams, wPos);\n}\nvec3 normalOffsetPointShadow(vec4 shadowParams, vec3 lightPos, inout vec3 lightDir, vec3 lightDirNorm, vec3 normal) {\n\tfloat distScale = length(lightDir);\n\tvec3 wPos = vPositionW + normal * shadowParams.y * clamp(1.0 - dot(normal, -lightDirNorm), 0.0, 1.0) * distScale;\n\tvec3 dir = wPos - lightPos;\n\treturn dir;\n}\n#ifdef GL2\n\t#if defined(CLUSTER_SHADOW_TYPE_PCF1)\n\tfloat getShadowOmniClusteredPCF1(SHADOWMAP_ACCEPT(shadowMap), vec4 shadowParams, vec3 omniAtlasViewport, float shadowEdgePixels, vec3 lightDir) {\n\t\tfloat shadowTextureResolution = shadowParams.x;\n\t\tvec2 uv = getCubemapAtlasCoordinates(omniAtlasViewport, shadowEdgePixels, shadowTextureResolution, lightDir);\n\t\tfloat shadowZ = length(lightDir) * shadowParams.w + shadowParams.z;\n\t\treturn textureShadow(shadowMap, vec3(uv, shadowZ));\n\t}\n\t#endif\n\t#if defined(CLUSTER_SHADOW_TYPE_PCF3)\n\tfloat getShadowOmniClusteredPCF3(SHADOWMAP_ACCEPT(shadowMap), vec4 shadowParams, vec3 omniAtlasViewport, float shadowEdgePixels, vec3 lightDir) {\n\t\tfloat shadowTextureResolution = shadowParams.x;\n\t\tvec2 uv = getCubemapAtlasCoordinates(omniAtlasViewport, shadowEdgePixels, shadowTextureResolution, lightDir);\n\t\tfloat shadowZ = length(lightDir) * shadowParams.w + shadowParams.z;\n\t\tvec3 shadowCoord = vec3(uv, shadowZ);\n\t\treturn getShadowPCF3x3(SHADOWMAP_PASS(shadowMap), shadowCoord, shadowParams);\n\t}\n\t#endif\n\t#if defined(CLUSTER_SHADOW_TYPE_PCF5)\n\tfloat getShadowOmniClusteredPCF5(SHADOWMAP_ACCEPT(shadowMap), vec4 shadowParams, vec3 omniAtlasViewport, float shadowEdgePixels, vec3 lightDir) {\n\t\tfloat shadowTextureResolution = shadowParams.x;\n\t\tvec2 uv = getCubemapAtlasCoordinates(omniAtlasViewport, shadowEdgePixels, shadowTextureResolution, lightDir);\n\t\tfloat shadowZ = length(lightDir) * shadowParams.w + shadowParams.z;\n\t\tvec3 shadowCoord = vec3(uv, shadowZ);\n\t\treturn getShadowPCF5x5(SHADOWMAP_PASS(shadowMap), shadowCoord, shadowParams);\n\t}\n\t#endif\n#else\n\t#if defined(CLUSTER_SHADOW_TYPE_PCF1)\n\tfloat getShadowOmniClusteredPCF1(sampler2D shadowMap, vec4 shadowParams, vec3 omniAtlasViewport, float shadowEdgePixels, vec3 lightDir) {\n\t\tfloat shadowTextureResolution = shadowParams.x;\n\t\tvec2 uv = getCubemapAtlasCoordinates(omniAtlasViewport, shadowEdgePixels, shadowTextureResolution, lightDir);\n\t\tfloat depth = unpackFloat(textureShadow(shadowMap, uv));\n\t\tfloat shadowZ = length(lightDir) * shadowParams.w + shadowParams.z;\n\t\treturn depth > shadowZ ? 1.0 : 0.0;\n\t}\n\t#endif\n\t#if defined(CLUSTER_SHADOW_TYPE_PCF3)\n\tfloat getShadowOmniClusteredPCF3(sampler2D shadowMap, vec4 shadowParams, vec3 omniAtlasViewport, float shadowEdgePixels, vec3 lightDir) {\n\t\tfloat shadowTextureResolution = shadowParams.x;\n\t\tvec2 uv = getCubemapAtlasCoordinates(omniAtlasViewport, shadowEdgePixels, shadowTextureResolution, lightDir);\n\t\tfloat shadowZ = length(lightDir) * shadowParams.w + shadowParams.z;\n\t\tvec3 shadowCoord = vec3(uv, shadowZ);\n\t\treturn getShadowPCF3x3(shadowMap, shadowCoord, shadowParams);\n\t}\n\t#endif\n\t#if defined(CLUSTER_SHADOW_TYPE_PCF5)\n\tfloat getShadowOmniClusteredPCF5(sampler2D shadowMap, vec4 shadowParams, vec3 omniAtlasViewport, float shadowEdgePixels, vec3 lightDir) {\n\t\tfloat shadowTextureResolution = shadowParams.x;\n\t\tvec2 uv = getCubemapAtlasCoordinates(omniAtlasViewport, shadowEdgePixels, shadowTextureResolution, lightDir);\n\t\tfloat shadowZ = length(lightDir) * shadowParams.w + shadowParams.z;\n\t\tvec3 shadowCoord = vec3(uv, shadowZ);\n\t\treturn getShadowPCF3x3(shadowMap, shadowCoord, shadowParams);\n\t}\n\t#endif\n#endif\n#ifdef GL2\n\t#if defined(CLUSTER_SHADOW_TYPE_PCF1)\n\tfloat getShadowSpotClusteredPCF1(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams) {\n\t\treturn textureShadow(shadowMap, shadowCoord);\n\t}\n\t#endif\n\t#if defined(CLUSTER_SHADOW_TYPE_PCF3)\n\tfloat getShadowSpotClusteredPCF3(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams) {\n\t\treturn getShadowSpotPCF3x3(SHADOWMAP_PASS(shadowMap), shadowCoord, shadowParams);\n\t}\n\t#endif\n\t#if defined(CLUSTER_SHADOW_TYPE_PCF5)\n\tfloat getShadowSpotClusteredPCF5(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams) {\n\t\treturn getShadowPCF5x5(SHADOWMAP_PASS(shadowMap), shadowCoord, shadowParams);\n\t}\n\t#endif\n#else\n\t#if defined(CLUSTER_SHADOW_TYPE_PCF1)\n\tfloat getShadowSpotClusteredPCF1(sampler2D shadowMap, vec3 shadowCoord, vec4 shadowParams) {\n\t\tfloat depth = unpackFloat(textureShadow(shadowMap, shadowCoord.xy));\n\t\treturn depth > shadowCoord.z ? 1.0 : 0.0;\n\t}\n\t#endif\n\t#if defined(CLUSTER_SHADOW_TYPE_PCF3)\n\tfloat getShadowSpotClusteredPCF3(sampler2D shadowMap, vec3 shadowCoord, vec4 shadowParams) {\n\t\treturn getShadowSpotPCF3x3(shadowMap, shadowCoord, shadowParams);\n\t}\n\t#endif\n\t#if defined(CLUSTER_SHADOW_TYPE_PCF5)\n\tfloat getShadowSpotClusteredPCF5(sampler2D shadowMap, vec3 shadowCoord, vec4 shadowParams) {\n\t\treturn getShadowSpotPCF3x3(shadowMap, shadowCoord, shadowParams);\n\t}\n\t#endif\n#endif\n`;\n\nvar clusteredLightPS = `\nuniform highp sampler2D clusterWorldTexture;\nuniform highp sampler2D lightsTexture8;\nuniform highp sampler2D lightsTextureFloat;\n#if defined(CLUSTER_COOKIES)\n\t#define CLUSTER_COOKIES_OR_SHADOWS\n#endif\n#if defined(CLUSTER_SHADOWS)\n\t#define CLUSTER_COOKIES_OR_SHADOWS\n#endif\n#ifdef CLUSTER_SHADOWS\n\t#ifdef GL2\n\t\tuniform sampler2DShadow shadowAtlasTexture;\n\t#else\n\t\tuniform sampler2D shadowAtlasTexture;\n\t#endif\n#endif\n#ifdef CLUSTER_COOKIES\n\tuniform sampler2D cookieAtlasTexture;\n#endif\n#ifdef GL2\n\tuniform int clusterMaxCells;\n#else\n\tuniform float clusterMaxCells;\n\tuniform vec4 lightsTextureInvSize;\n#endif\nuniform float clusterSkip;\nuniform vec3 clusterCellsCountByBoundsSize;\nuniform vec3 clusterTextureSize;\nuniform vec3 clusterBoundsMin;\nuniform vec3 clusterBoundsDelta;\nuniform vec3 clusterCellsDot;\nuniform vec3 clusterCellsMax;\nuniform vec2 clusterCompressionLimit0;\nuniform vec2 shadowAtlasParams;\nstruct ClusterLightData {\n\tvec3 halfWidth;\n\tfloat lightType;\n\tvec3 halfHeight;\n\t#ifdef GL2\n\t\tint lightIndex;\n\t#else\n\t\tfloat lightV;\n\t#endif\n\tvec3 position;\n\tfloat shape;\n\tvec3 direction;\n\tfloat falloffMode;\n\tvec3 color;\n\tfloat shadowIntensity;\n\tvec3 omniAtlasViewport;\n\tfloat range;\n\tvec4 cookieChannelMask;\n\tfloat shadowBias;\n\tfloat shadowNormalBias;\n\tfloat innerConeAngleCos;\n\tfloat outerConeAngleCos;\n\tfloat cookie;\n\tfloat cookieRgb;\n\tfloat cookieIntensity;\n\tfloat mask;\n};\nmat4 lightProjectionMatrix;\n#define isClusteredLightCastShadow(light) ( light.shadowIntensity > 0.0 )\n#define isClusteredLightCookie(light) (light.cookie > 0.5 )\n#define isClusteredLightCookieRgb(light) (light.cookieRgb > 0.5 )\n#define isClusteredLightSpot(light) ( light.lightType > 0.5 )\n#define isClusteredLightFalloffLinear(light) ( light.falloffMode < 0.5 )\n#define isClusteredLightArea(light) ( light.shape > 0.1 )\n#define isClusteredLightRect(light) ( light.shape < 0.3 )\n#define isClusteredLightDisk(light) ( light.shape < 0.6 )\n#ifdef CLUSTER_MESH_DYNAMIC_LIGHTS\n\t#define acceptLightMask(light) ( light.mask < 0.75)\n#else\n\t#define acceptLightMask(light) ( light.mask > 0.25)\n#endif\nvec4 decodeClusterLowRange4Vec4(vec4 d0, vec4 d1, vec4 d2, vec4 d3) {\n\treturn vec4(\n\t\tbytes2floatRange4(d0, -2.0, 2.0),\n\t\tbytes2floatRange4(d1, -2.0, 2.0),\n\t\tbytes2floatRange4(d2, -2.0, 2.0),\n\t\tbytes2floatRange4(d3, -2.0, 2.0)\n\t);\n}\n#ifdef GL2\n\tvec4 sampleLightsTexture8(const ClusterLightData clusterLightData, int index) {\n\t\treturn texelFetch(lightsTexture8, ivec2(index, clusterLightData.lightIndex), 0);\n\t}\n\tvec4 sampleLightTextureF(const ClusterLightData clusterLightData, int index) {\n\t\treturn texelFetch(lightsTextureFloat, ivec2(index, clusterLightData.lightIndex), 0);\n\t}\n#else\n\tvec4 sampleLightsTexture8(const ClusterLightData clusterLightData, float index) {\n\t\treturn texture2DLodEXT(lightsTexture8, vec2(index * lightsTextureInvSize.z, clusterLightData.lightV), 0.0);\n\t}\n\tvec4 sampleLightTextureF(const ClusterLightData clusterLightData, float index) {\n\t\treturn texture2DLodEXT(lightsTextureFloat, vec2(index * lightsTextureInvSize.x, clusterLightData.lightV), 0.0);\n\t}\n#endif\nvoid decodeClusterLightCore(inout ClusterLightData clusterLightData, float lightIndex) {\n\t#ifdef GL2\n\t\tclusterLightData.lightIndex = int(lightIndex);\n\t#else\n\t\tclusterLightData.lightV = (lightIndex + 0.5) * lightsTextureInvSize.w;\n\t#endif\n\tvec4 lightInfo = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_FLAGS);\n\tclusterLightData.lightType = lightInfo.x;\n\tclusterLightData.shape = lightInfo.y;\n\tclusterLightData.falloffMode = lightInfo.z;\n\tclusterLightData.shadowIntensity = lightInfo.w;\n\tvec4 colorA = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_COLOR_A);\n\tvec4 colorB = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_COLOR_B);\n\tclusterLightData.color = vec3(bytes2float2(colorA.xy), bytes2float2(colorA.zw), bytes2float2(colorB.xy)) * clusterCompressionLimit0.y;\n\tclusterLightData.cookie = colorB.z;\n\tclusterLightData.mask = colorB.w;\n\t#ifdef CLUSTER_TEXTURE_FLOAT\n\t\tvec4 lightPosRange = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_POSITION_RANGE);\n\t\tclusterLightData.position = lightPosRange.xyz;\n\t\tclusterLightData.range = lightPosRange.w;\n\t\tvec4 lightDir_Unused = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_SPOT_DIRECTION);\n\t\tclusterLightData.direction = lightDir_Unused.xyz;\n\t#else\n\t\tvec4 encPosX = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_POSITION_X);\n\t\tvec4 encPosY = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_POSITION_Y);\n\t\tvec4 encPosZ = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_POSITION_Z);\n\t\tclusterLightData.position = vec3(bytes2float4(encPosX), bytes2float4(encPosY), bytes2float4(encPosZ)) * clusterBoundsDelta + clusterBoundsMin;\n\t\tvec4 encRange = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_RANGE);\n\t\tclusterLightData.range = bytes2float4(encRange) * clusterCompressionLimit0.x;\n\t\tvec4 encDirX = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_SPOT_DIRECTION_X);\n\t\tvec4 encDirY = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_SPOT_DIRECTION_Y);\n\t\tvec4 encDirZ = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_SPOT_DIRECTION_Z);\n\t\tclusterLightData.direction = vec3(bytes2float4(encDirX), bytes2float4(encDirY), bytes2float4(encDirZ)) * 2.0 - 1.0;\n\t#endif\n}\nvoid decodeClusterLightSpot(inout ClusterLightData clusterLightData) {\n\tvec4 coneAngle = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_SPOT_ANGLES);\n\tclusterLightData.innerConeAngleCos = bytes2float2(coneAngle.xy) * 2.0 - 1.0;\n\tclusterLightData.outerConeAngleCos = bytes2float2(coneAngle.zw) * 2.0 - 1.0;\n}\nvoid decodeClusterLightOmniAtlasViewport(inout ClusterLightData clusterLightData) {\n\t#ifdef CLUSTER_TEXTURE_FLOAT\n\t\tclusterLightData.omniAtlasViewport = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_PROJ_MAT_0).xyz;\n\t#else\n\t\tvec4 viewportA = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_ATLAS_VIEWPORT_A);\n\t\tvec4 viewportB = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_ATLAS_VIEWPORT_B);\n\t\tclusterLightData.omniAtlasViewport = vec3(bytes2float2(viewportA.xy), bytes2float2(viewportA.zw), bytes2float2(viewportB.xy));\n\t#endif\n}\nvoid decodeClusterLightAreaData(inout ClusterLightData clusterLightData) {\n\t#ifdef CLUSTER_TEXTURE_FLOAT\n\t\tclusterLightData.halfWidth = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_AREA_DATA_WIDTH).xyz;\n\t\tclusterLightData.halfHeight = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_AREA_DATA_HEIGHT).xyz;\n\t#else\n\t\tvec4 areaWidthX = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_AREA_DATA_WIDTH_X);\n\t\tvec4 areaWidthY = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_AREA_DATA_WIDTH_Y);\n\t\tvec4 areaWidthZ = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_AREA_DATA_WIDTH_Z);\n\t\tclusterLightData.halfWidth = vec3(mantissaExponent2Float(areaWidthX), mantissaExponent2Float(areaWidthY), mantissaExponent2Float(areaWidthZ));\n\t\tvec4 areaHeightX = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_AREA_DATA_HEIGHT_X);\n\t\tvec4 areaHeightY = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_AREA_DATA_HEIGHT_Y);\n\t\tvec4 areaHeightZ = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_AREA_DATA_HEIGHT_Z);\n\t\tclusterLightData.halfHeight = vec3(mantissaExponent2Float(areaHeightX), mantissaExponent2Float(areaHeightY), mantissaExponent2Float(areaHeightZ));\n\t#endif\n}\nvoid decodeClusterLightProjectionMatrixData(inout ClusterLightData clusterLightData) {\n\t\n\t#ifdef CLUSTER_TEXTURE_FLOAT\n\t\tvec4 m0 = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_PROJ_MAT_0);\n\t\tvec4 m1 = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_PROJ_MAT_1);\n\t\tvec4 m2 = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_PROJ_MAT_2);\n\t\tvec4 m3 = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_PROJ_MAT_3);\n\t#else\n\t\tvec4 m00 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_00);\n\t\tvec4 m01 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_01);\n\t\tvec4 m02 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_02);\n\t\tvec4 m03 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_03);\n\t\tvec4 m0 = decodeClusterLowRange4Vec4(m00, m01, m02, m03);\n\t\tvec4 m10 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_10);\n\t\tvec4 m11 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_11);\n\t\tvec4 m12 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_12);\n\t\tvec4 m13 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_13);\n\t\tvec4 m1 = decodeClusterLowRange4Vec4(m10, m11, m12, m13);\n\t\tvec4 m20 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_20);\n\t\tvec4 m21 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_21);\n\t\tvec4 m22 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_22);\n\t\tvec4 m23 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_23);\n\t\tvec4 m2 = decodeClusterLowRange4Vec4(m20, m21, m22, m23);\n\t\tvec4 m30 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_30);\n\t\tvec4 m31 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_31);\n\t\tvec4 m32 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_32);\n\t\tvec4 m33 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_33);\n\t\tvec4 m3 = vec4(mantissaExponent2Float(m30), mantissaExponent2Float(m31), mantissaExponent2Float(m32), mantissaExponent2Float(m33));\n\t#endif\n\t\n\tlightProjectionMatrix = mat4(m0, m1, m2, m3);\n}\nvoid decodeClusterLightShadowData(inout ClusterLightData clusterLightData) {\n\t\n\tvec4 biases = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_SHADOW_BIAS);\n\tclusterLightData.shadowBias = bytes2floatRange2(biases.xy, -1.0, 20.0),\n\tclusterLightData.shadowNormalBias = bytes2float2(biases.zw);\n}\nvoid decodeClusterLightCookieData(inout ClusterLightData clusterLightData) {\n\tvec4 cookieA = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_COOKIE_A);\n\tclusterLightData.cookieIntensity = cookieA.x;\n\tclusterLightData.cookieRgb = cookieA.y;\n\tclusterLightData.cookieChannelMask = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_COOKIE_B);\n}\nvoid evaluateLight(\n\tClusterLightData light, \n\tvec3 worldNormal, \n\tvec3 viewDir, \n\tvec3 reflectionDir,\n#if defined(LIT_CLEARCOAT)\n\tvec3 clearcoatReflectionDir,\n#endif\n\tfloat gloss, \n\tvec3 specularity, \n\tvec3 geometricNormal, \n\tmat3 tbn, \n#if defined(LIT_IRIDESCENCE)\n\tvec3 iridescenceFresnel,\n#endif\n\tvec3 clearcoat_worldNormal,\n\tfloat clearcoat_gloss,\n\tfloat sheen_gloss,\n\tfloat iridescence_intensity\n) {\n\tvec3 cookieAttenuation = vec3(1.0);\n\tfloat diffuseAttenuation = 1.0;\n\tfloat falloffAttenuation = 1.0;\n\tgetLightDirPoint(light.position);\n\t#ifdef CLUSTER_AREALIGHTS\n\tif (isClusteredLightArea(light)) {\n\t\tdecodeClusterLightAreaData(light);\n\t\tif (isClusteredLightRect(light)) {\n\t\t\tcalcRectLightValues(light.position, light.halfWidth, light.halfHeight);\n\t\t} else if (isClusteredLightDisk(light)) {\n\t\t\tcalcDiskLightValues(light.position, light.halfWidth, light.halfHeight);\n\t\t} else {\n\t\t\tcalcSphereLightValues(light.position, light.halfWidth, light.halfHeight);\n\t\t}\n\t\tfalloffAttenuation = getFalloffWindow(light.range, dLightDirW);\n\t} else\n\t#endif\n\t{\n\t\tif (isClusteredLightFalloffLinear(light))\n\t\t\tfalloffAttenuation = getFalloffLinear(light.range, dLightDirW);\n\t\telse\n\t\t\tfalloffAttenuation = getFalloffInvSquared(light.range, dLightDirW);\n\t}\n\tif (falloffAttenuation > 0.00001) {\n\t\t#ifdef CLUSTER_AREALIGHTS\n\t\tif (isClusteredLightArea(light)) {\n\t\t\tif (isClusteredLightRect(light)) {\n\t\t\t\tdiffuseAttenuation = getRectLightDiffuse(worldNormal, viewDir, dLightDirW, dLightDirNormW) * 16.0;\n\t\t\t} else if (isClusteredLightDisk(light)) {\n\t\t\t\tdiffuseAttenuation = getDiskLightDiffuse(worldNormal, viewDir, dLightDirW, dLightDirNormW) * 16.0;\n\t\t\t} else {\n\t\t\t\tdiffuseAttenuation = getSphereLightDiffuse(worldNormal, viewDir, dLightDirW, dLightDirNormW) * 16.0;\n\t\t\t}\n\t\t} else\n\t\t#endif\n\t\t{\n\t\t\tfalloffAttenuation *= getLightDiffuse(worldNormal, viewDir, dLightDirW, dLightDirNormW); \n\t\t}\n\t\tif (isClusteredLightSpot(light)) {\n\t\t\tdecodeClusterLightSpot(light);\n\t\t\tfalloffAttenuation *= getSpotEffect(light.direction, light.innerConeAngleCos, light.outerConeAngleCos, dLightDirNormW);\n\t\t}\n\t\t#if defined(CLUSTER_COOKIES_OR_SHADOWS)\n\t\tif (falloffAttenuation > 0.00001) {\n\t\t\tif (isClusteredLightCastShadow(light) || isClusteredLightCookie(light)) {\n\t\t\t\tif (isClusteredLightSpot(light)) {\n\t\t\t\t\tdecodeClusterLightProjectionMatrixData(light);\n\t\t\t\t} else {\n\t\t\t\t\tdecodeClusterLightOmniAtlasViewport(light);\n\t\t\t\t}\n\t\t\t\tfloat shadowTextureResolution = shadowAtlasParams.x;\n\t\t\t\tfloat shadowEdgePixels = shadowAtlasParams.y;\n\t\t\t\t#ifdef CLUSTER_COOKIES\n\t\t\t\tif (isClusteredLightCookie(light)) {\n\t\t\t\t\tdecodeClusterLightCookieData(light);\n\t\t\t\t\tif (isClusteredLightSpot(light)) {\n\t\t\t\t\t\tcookieAttenuation = getCookie2DClustered(TEXTURE_PASS(cookieAtlasTexture), lightProjectionMatrix, vPositionW, light.cookieIntensity, isClusteredLightCookieRgb(light), light.cookieChannelMask);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcookieAttenuation = getCookieCubeClustered(TEXTURE_PASS(cookieAtlasTexture), dLightDirW, light.cookieIntensity, isClusteredLightCookieRgb(light), light.cookieChannelMask, shadowTextureResolution, shadowEdgePixels, light.omniAtlasViewport);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t#endif\n\t\t\t\t#ifdef CLUSTER_SHADOWS\n\t\t\t\tif (isClusteredLightCastShadow(light)) {\n\t\t\t\t\tdecodeClusterLightShadowData(light);\n\t\t\t\t\tvec4 shadowParams = vec4(shadowTextureResolution, light.shadowNormalBias, light.shadowBias, 1.0 / light.range);\n\t\t\t\t\tif (isClusteredLightSpot(light)) {\n\t\t\t\t\t\tgetShadowCoordPerspZbufferNormalOffset(lightProjectionMatrix, shadowParams, geometricNormal);\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if defined(CLUSTER_SHADOW_TYPE_PCF1)\n\t\t\t\t\t\t\tfloat shadow = getShadowSpotClusteredPCF1(SHADOWMAP_PASS(shadowAtlasTexture), dShadowCoord, shadowParams);\n\t\t\t\t\t\t#elif defined(CLUSTER_SHADOW_TYPE_PCF3)\n\t\t\t\t\t\t\tfloat shadow = getShadowSpotClusteredPCF3(SHADOWMAP_PASS(shadowAtlasTexture), dShadowCoord, shadowParams);\n\t\t\t\t\t\t#elif defined(CLUSTER_SHADOW_TYPE_PCF5)\n\t\t\t\t\t\t\tfloat shadow = getShadowSpotClusteredPCF5(SHADOWMAP_PASS(shadowAtlasTexture), dShadowCoord, shadowParams);\n\t\t\t\t\t\t#elif defined(CLUSTER_SHADOW_TYPE_PCSS)\n\t\t\t\t\t\t\tfloat shadow = getShadowSpotClusteredPCSS(SHADOWMAP_PASS(shadowAtlasTexture), dShadowCoord, shadowParams);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\tfalloffAttenuation *= mix(1.0, shadow, light.shadowIntensity);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvec3 dir = normalOffsetPointShadow(shadowParams, dLightPosW, dLightDirW, dLightDirNormW, geometricNormal);\n\t\t\t\t\t\t#if defined(CLUSTER_SHADOW_TYPE_PCF1)\n\t\t\t\t\t\t\tfloat shadow = getShadowOmniClusteredPCF1(SHADOWMAP_PASS(shadowAtlasTexture), shadowParams, light.omniAtlasViewport, shadowEdgePixels, dir);\n\t\t\t\t\t\t#elif defined(CLUSTER_SHADOW_TYPE_PCF3)\n\t\t\t\t\t\t\tfloat shadow = getShadowOmniClusteredPCF3(SHADOWMAP_PASS(shadowAtlasTexture), shadowParams, light.omniAtlasViewport, shadowEdgePixels, dir);\n\t\t\t\t\t\t#elif defined(CLUSTER_SHADOW_TYPE_PCF5)\n\t\t\t\t\t\t\tfloat shadow = getShadowOmniClusteredPCF5(SHADOWMAP_PASS(shadowAtlasTexture), shadowParams, light.omniAtlasViewport, shadowEdgePixels, dir);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\tfalloffAttenuation *= mix(1.0, shadow, light.shadowIntensity);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t#endif\n\t\t\t}\n\t\t}\n\t\t#endif\n\t\t#ifdef CLUSTER_AREALIGHTS\n\t\tif (isClusteredLightArea(light)) {\n\t\t\t{\n\t\t\t\tvec3 areaDiffuse = (diffuseAttenuation * falloffAttenuation) * light.color * cookieAttenuation;\n\t\t\t\t#if defined(LIT_SPECULAR)\n\t\t\t\t\t#if defined(LIT_CONSERVE_ENERGY)\n\t\t\t\t\t\tareaDiffuse = mix(areaDiffuse, vec3(0), dLTCSpecFres);\n\t\t\t\t\t#endif\n\t\t\t\t#endif\n\t\t\t\tdDiffuseLight += areaDiffuse;\n\t\t\t}\n\t\t\t#ifdef LIT_SPECULAR\n\t\t\t\tfloat areaLightSpecular;\n\t\t\t\tif (isClusteredLightRect(light)) {\n\t\t\t\t\tareaLightSpecular = getRectLightSpecular(worldNormal, viewDir);\n\t\t\t\t} else if (isClusteredLightDisk(light)) {\n\t\t\t\t\tareaLightSpecular = getDiskLightSpecular(worldNormal, viewDir);\n\t\t\t\t} else {\n\t\t\t\t\tareaLightSpecular = getSphereLightSpecular(worldNormal, viewDir);\n\t\t\t\t}\n\t\t\t\tdSpecularLight += dLTCSpecFres * areaLightSpecular * falloffAttenuation * light.color * cookieAttenuation;\n\t\t\t\t#ifdef LIT_CLEARCOAT\n\t\t\t\t\tfloat areaLightSpecularCC;\n\t\t\t\t\tif (isClusteredLightRect(light)) {\n\t\t\t\t\t\tareaLightSpecularCC = getRectLightSpecular(clearcoat_worldNormal, viewDir);\n\t\t\t\t\t} else if (isClusteredLightDisk(light)) {\n\t\t\t\t\t\tareaLightSpecularCC = getDiskLightSpecular(clearcoat_worldNormal, viewDir);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tareaLightSpecularCC = getSphereLightSpecular(clearcoat_worldNormal, viewDir);\n\t\t\t\t\t}\n\t\t\t\t\tccSpecularLight += ccLTCSpecFres * areaLightSpecularCC * falloffAttenuation * light.color  * cookieAttenuation;\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t} else\n\t\t#endif\n\t\t{\n\t\t\t{\n\t\t\t\tvec3 punctualDiffuse = falloffAttenuation * light.color * cookieAttenuation;\n\t\t\t\t#if defined(CLUSTER_AREALIGHTS)\n\t\t\t\t#if defined(LIT_SPECULAR)\n\t\t\t\t#if defined(LIT_CONSERVE_ENERGY)\n\t\t\t\t\tpunctualDiffuse = mix(punctualDiffuse, vec3(0), specularity);\n\t\t\t\t#endif\n\t\t\t\t#endif\n\t\t\t\t#endif\n\t\t\t\tdDiffuseLight += punctualDiffuse;\n\t\t\t}\n\t \n\t\t\t#ifdef LIT_SPECULAR\n\t\t\t\tvec3 halfDir = normalize(-dLightDirNormW + viewDir);\n\t\t\t\t\n\t\t\t\t#ifdef LIT_SPECULAR_FRESNEL\n\t\t\t\t\tdSpecularLight += \n\t\t\t\t\t\tgetLightSpecular(halfDir, reflectionDir, worldNormal, viewDir, dLightDirNormW, gloss, tbn) * falloffAttenuation * light.color * cookieAttenuation * \n\t\t\t\t\t\tgetFresnel(\n\t\t\t\t\t\t\tdot(viewDir, halfDir), \n\t\t\t\t\t\t\tgloss, \n\t\t\t\t\t\t\tspecularity\n\t\t\t\t\t\t#if defined(LIT_IRIDESCENCE)\n\t\t\t\t\t\t\t, iridescenceFresnel,\n\t\t\t\t\t\t\tiridescence_intensity\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t);\n\t\t\t\t#else\n\t\t\t\t\tdSpecularLight += getLightSpecular(halfDir, reflectionDir, worldNormal, viewDir, dLightDirNormW, gloss, tbn) * falloffAttenuation * light.color * cookieAttenuation * specularity;\n\t\t\t\t#endif\n\t\t\t\t#ifdef LIT_CLEARCOAT\n\t\t\t\t\t#ifdef LIT_SPECULAR_FRESNEL\n\t\t\t\t\t\tccSpecularLight += getLightSpecular(halfDir, clearcoatReflectionDir, clearcoat_worldNormal, viewDir, dLightDirNormW, clearcoat_gloss, tbn) * falloffAttenuation * light.color * cookieAttenuation * getFresnelCC(dot(viewDir, halfDir));\n\t\t\t\t\t#else\n\t\t\t\t\t\tccSpecularLight += getLightSpecular(halfDir, clearcoatReflectionDir, clearcoat_worldNormal, viewDir, dLightDirNormW, clearcoat_gloss, tbn) * falloffAttenuation * light.color * cookieAttenuation; \n\t\t\t\t\t#endif\n\t\t\t\t#endif\n\t\t\t\t#ifdef LIT_SHEEN\n\t\t\t\t\tsSpecularLight += getLightSpecularSheen(halfDir, worldNormal, viewDir, dLightDirNormW, sheen_gloss) * falloffAttenuation * light.color * cookieAttenuation;\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t}\n\t}\n\tdAtten = falloffAttenuation;\n\tdAttenD = diffuseAttenuation;\n\tdAtten3 = cookieAttenuation;\n}\nvoid evaluateClusterLight(\n\tfloat lightIndex, \n\tvec3 worldNormal, \n\tvec3 viewDir, \n\tvec3 reflectionDir, \n#if defined(LIT_CLEARCOAT)\n\tvec3 clearcoatReflectionDir,\n#endif\n\tfloat gloss, \n\tvec3 specularity, \n\tvec3 geometricNormal, \n\tmat3 tbn, \n#if defined(LIT_IRIDESCENCE)\n\tvec3 iridescenceFresnel,\n#endif\n\tvec3 clearcoat_worldNormal,\n\tfloat clearcoat_gloss,\n\tfloat sheen_gloss,\n\tfloat iridescence_intensity\n) {\n\tClusterLightData clusterLightData;\n\tdecodeClusterLightCore(clusterLightData, lightIndex);\n\tif (acceptLightMask(clusterLightData))\n\t\tevaluateLight(\n\t\t\tclusterLightData, \n\t\t\tworldNormal, \n\t\t\tviewDir, \n\t\t\treflectionDir, \n#if defined(LIT_CLEARCOAT)\n\t\t\tclearcoatReflectionDir, \n#endif\n\t\t\tgloss, \n\t\t\tspecularity, \n\t\t\tgeometricNormal, \n\t\t\ttbn, \n#if defined(LIT_IRIDESCENCE)\n\t\t\tiridescenceFresnel,\n#endif\n\t\t\tclearcoat_worldNormal,\n\t\t\tclearcoat_gloss,\n\t\t\tsheen_gloss,\n\t\t\tiridescence_intensity\n\t\t);\n}\nvoid addClusteredLights(\n\tvec3 worldNormal, \n\tvec3 viewDir, \n\tvec3 reflectionDir, \n#if defined(LIT_CLEARCOAT)\n\tvec3 clearcoatReflectionDir,\n#endif\n\tfloat gloss, \n\tvec3 specularity, \n\tvec3 geometricNormal, \n\tmat3 tbn, \n#if defined(LIT_IRIDESCENCE)\n\tvec3 iridescenceFresnel,\n#endif\n\tvec3 clearcoat_worldNormal,\n\tfloat clearcoat_gloss,\n\tfloat sheen_gloss,\n\tfloat iridescence_intensity\n) {\n\tif (clusterSkip > 0.5)\n\t\treturn;\n\tvec3 cellCoords = floor((vPositionW - clusterBoundsMin) * clusterCellsCountByBoundsSize);\n\tif (!(any(lessThan(cellCoords, vec3(0.0))) || any(greaterThanEqual(cellCoords, clusterCellsMax)))) {\n\t\tfloat cellIndex = dot(clusterCellsDot, cellCoords);\n\t\tfloat clusterV = floor(cellIndex * clusterTextureSize.y);\n\t\tfloat clusterU = cellIndex - (clusterV * clusterTextureSize.x);\n\t\t#ifdef GL2\n\t\t\tfor (int lightCellIndex = 0; lightCellIndex < clusterMaxCells; lightCellIndex++) {\n\t\t\t\tfloat lightIndex = texelFetch(clusterWorldTexture, ivec2(int(clusterU) + lightCellIndex, clusterV), 0).x;\n\t\t\t\tif (lightIndex <= 0.0)\n\t\t\t\t\t\treturn;\n\t\t\t\tevaluateClusterLight(\n\t\t\t\t\tlightIndex * 255.0, \n\t\t\t\t\tworldNormal, \n\t\t\t\t\tviewDir, \n\t\t\t\t\treflectionDir,\n#if defined(LIT_CLEARCOAT)\n\t\t\t\t\tclearcoatReflectionDir,\n#endif\n\t\t\t\t\tgloss, \n\t\t\t\t\tspecularity, \n\t\t\t\t\tgeometricNormal, \n\t\t\t\t\ttbn, \n#if defined(LIT_IRIDESCENCE)\n\t\t\t\t\tiridescenceFresnel,\n#endif\n\t\t\t\t\tclearcoat_worldNormal,\n\t\t\t\t\tclearcoat_gloss,\n\t\t\t\t\tsheen_gloss,\n\t\t\t\t\tiridescence_intensity\n\t\t\t\t); \n\t\t\t}\n\t\t#else\n\t\t\tclusterV = (clusterV + 0.5) * clusterTextureSize.z;\n\t\t\tconst float maxLightCells = 256.0;\n\t\t\tfor (float lightCellIndex = 0.5; lightCellIndex < maxLightCells; lightCellIndex++) {\n\t\t\t\tfloat lightIndex = texture2DLodEXT(clusterWorldTexture, vec2(clusterTextureSize.y * (clusterU + lightCellIndex), clusterV), 0.0).x;\n\t\t\t\tif (lightIndex <= 0.0)\n\t\t\t\t\treturn;\n\t\t\t\t\n\t\t\t\tevaluateClusterLight(\n\t\t\t\t\tlightIndex * 255.0, \n\t\t\t\t\tworldNormal, \n\t\t\t\t\tviewDir, \n\t\t\t\t\treflectionDir,\n#if defined(LIT_CLEARCOAT)\n\t\t\t\t\tclearcoatReflectionDir,\n#endif\n\t\t\t\t\tgloss, \n\t\t\t\t\tspecularity, \n\t\t\t\t\tgeometricNormal, \n\t\t\t\t\ttbn, \n#if defined(LIT_IRIDESCENCE)\n\t\t\t\t\tiridescenceFresnel,\n#endif\n\t\t\t\t\tclearcoat_worldNormal,\n\t\t\t\t\tclearcoat_gloss,\n\t\t\t\t\tsheen_gloss,\n\t\t\t\t\tiridescence_intensity\n\t\t\t\t); \n\t\t\t\tif (lightCellIndex >= clusterMaxCells) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t#endif\n\t}\n}\n`;\n\nvar combinePS = `\nvec3 combineColor(vec3 albedo, vec3 sheenSpecularity, float clearcoatSpecularity) {\n\tvec3 ret = vec3(0);\n#ifdef LIT_OLD_AMBIENT\n\tret += (dDiffuseLight - light_globalAmbient) * albedo + material_ambient * light_globalAmbient;\n#else\n\tret += albedo * dDiffuseLight;\n#endif\n#ifdef LIT_SPECULAR\n\tret += dSpecularLight;\n#endif\n#ifdef LIT_REFLECTIONS\n\tret += dReflection.rgb * dReflection.a;\n#endif\n#ifdef LIT_SHEEN\n\tfloat sheenScaling = 1.0 - max(max(sheenSpecularity.r, sheenSpecularity.g), sheenSpecularity.b) * 0.157;\n\tret = ret * sheenScaling + (sSpecularLight + sReflection.rgb) * sheenSpecularity;\n#endif\n#ifdef LIT_CLEARCOAT\n\tfloat clearCoatScaling = 1.0 - ccFresnel * clearcoatSpecularity;\n\tret = ret * clearCoatScaling + (ccSpecularLight + ccReflection.rgb) * clearcoatSpecularity;\n#endif\n\treturn ret;\n}\n`;\n\nvar cookiePS = `\nvec4 getCookie2D(sampler2D tex, mat4 transform, float intensity) {\n\tvec4 projPos = transform * vec4(vPositionW, 1.0);\n\tprojPos.xy /= projPos.w;\n\treturn mix(vec4(1.0), texture2D(tex, projPos.xy), intensity);\n}\nvec4 getCookie2DClip(sampler2D tex, mat4 transform, float intensity) {\n\tvec4 projPos = transform * vec4(vPositionW, 1.0);\n\tprojPos.xy /= projPos.w;\n\tif (projPos.x < 0.0 || projPos.x > 1.0 || projPos.y < 0.0 || projPos.y > 1.0 || projPos.z < 0.0) return vec4(0.0);\n\treturn mix(vec4(1.0), texture2D(tex, projPos.xy), intensity);\n}\nvec4 getCookie2DXform(sampler2D tex, mat4 transform, float intensity, vec4 cookieMatrix, vec2 cookieOffset) {\n\tvec4 projPos = transform * vec4(vPositionW, 1.0);\n\tprojPos.xy /= projPos.w;\n\tprojPos.xy += cookieOffset;\n\tvec2 uv = mat2(cookieMatrix) * (projPos.xy-vec2(0.5)) + vec2(0.5);\n\treturn mix(vec4(1.0), texture2D(tex, uv), intensity);\n}\nvec4 getCookie2DClipXform(sampler2D tex, mat4 transform, float intensity, vec4 cookieMatrix, vec2 cookieOffset) {\n\tvec4 projPos = transform * vec4(vPositionW, 1.0);\n\tprojPos.xy /= projPos.w;\n\tprojPos.xy += cookieOffset;\n\tif (projPos.x < 0.0 || projPos.x > 1.0 || projPos.y < 0.0 || projPos.y > 1.0 || projPos.z < 0.0) return vec4(0.0);\n\tvec2 uv = mat2(cookieMatrix) * (projPos.xy-vec2(0.5)) + vec2(0.5);\n\treturn mix(vec4(1.0), texture2D(tex, uv), intensity);\n}\nvec4 getCookieCube(samplerCube tex, mat4 transform, float intensity) {\n\treturn mix(vec4(1.0), textureCube(tex, dLightDirNormW * mat3(transform)), intensity);\n}\n`;\n\nvar cubeMapProjectBoxPS = `\nuniform vec3 envBoxMin;\nuniform vec3 envBoxMax;\nvec3 cubeMapProject(vec3 nrdir) {\n\tnrdir = cubeMapRotate(nrdir);\n\tvec3 rbmax = (envBoxMax - vPositionW) / nrdir;\n\tvec3 rbmin = (envBoxMin - vPositionW) / nrdir;\n\tvec3 rbminmax;\n\trbminmax.x = nrdir.x>0.0? rbmax.x : rbmin.x;\n\trbminmax.y = nrdir.y>0.0? rbmax.y : rbmin.y;\n\trbminmax.z = nrdir.z>0.0? rbmax.z : rbmin.z;\n\tfloat fa = min(min(rbminmax.x, rbminmax.y), rbminmax.z);\n\tvec3 posonbox = vPositionW + nrdir * fa;\n\tvec3 envBoxPos = (envBoxMin + envBoxMax) * 0.5;\n\treturn normalize(posonbox - envBoxPos);\n}\n`;\n\nvar cubeMapProjectNonePS = `\nvec3 cubeMapProject(vec3 dir) {\n\treturn cubeMapRotate(dir);\n}\n`;\n\nvar cubeMapRotatePS = `\n#ifdef CUBEMAP_ROTATION\nuniform mat3 cubeMapRotationMatrix;\n#endif\nvec3 cubeMapRotate(vec3 refDir) {\n#ifdef CUBEMAP_ROTATION\n\treturn refDir * cubeMapRotationMatrix;\n#else\n\treturn refDir;\n#endif\n}\n`;\n\nvar debugOutputPS = `\n#ifdef DEBUG_ALBEDO_PASS\ngl_FragColor = vec4(gammaCorrectOutput(dAlbedo), 1.0);\n#endif\n#ifdef DEBUG_UV0_PASS\ngl_FragColor = vec4(litArgs_albedo , 1.0);\n#endif\n#ifdef DEBUG_WORLD_NORMAL_PASS\ngl_FragColor = vec4(litArgs_worldNormal * 0.5 + 0.5, 1.0);\n#endif\n#ifdef DEBUG_OPACITY_PASS\ngl_FragColor = vec4(vec3(litArgs_opacity) , 1.0);\n#endif\n#ifdef DEBUG_SPECULARITY_PASS\ngl_FragColor = vec4(litArgs_specularity, 1.0);\n#endif\n#ifdef DEBUG_GLOSS_PASS\ngl_FragColor = vec4(vec3(litArgs_gloss) , 1.0);\n#endif\n#ifdef DEBUG_METALNESS_PASS\ngl_FragColor = vec4(vec3(litArgs_metalness) , 1.0);\n#endif\n#ifdef DEBUG_AO_PASS\ngl_FragColor = vec4(vec3(litArgs_ao) , 1.0);\n#endif\n#ifdef DEBUG_EMISSION_PASS\ngl_FragColor = vec4(gammaCorrectOutput(litArgs_emission), 1.0);\n#endif\n`;\n\nvar debugProcessFrontendPS = `\n#ifdef DEBUG_LIGHTING_PASS\nlitArgs_albedo = vec3(0.5);\n#endif\n#ifdef DEBUG_UV0_PASS\n#ifdef VARYING_VUV0\nlitArgs_albedo = vec3(vUv0, 0);\n#else\nlitArgs_albedo = vec3(0);\n#endif\n#endif\n`;\n\nvar decodePS = `\nvec3 decodeLinear(vec4 raw) {\n\treturn raw.rgb;\n}\nfloat decodeGamma(float raw) {\n\treturn pow(raw, 2.2);\n}\nvec3 decodeGamma(vec3 raw) {\n\treturn pow(raw, vec3(2.2));\n}\nvec3 decodeGamma(vec4 raw) {\n\treturn pow(raw.xyz, vec3(2.2));\n}\nvec3 decodeRGBM(vec4 raw) {\n\tvec3 color = (8.0 * raw.a) * raw.rgb;\n\treturn color * color;\n}\nvec3 decodeRGBP(vec4 raw) {\n\tvec3 color = raw.rgb * (-raw.a * 7.0 + 8.0);\n\treturn color * color;\n}\nvec3 decodeRGBE(vec4 raw) {\n\tif (raw.a == 0.0) {\n\t\treturn vec3(0.0, 0.0, 0.0);\n\t} else {\n\t\treturn raw.xyz * pow(2.0, raw.w * 255.0 - 128.0);\n\t}\n}\nvec4 passThrough(vec4 raw) {\n\treturn raw;\n}\n`;\n\nvar detailModesPS = `\nvec3 detailMode_mul(vec3 c1, vec3 c2) {\n\treturn c1 * c2;\n}\nvec3 detailMode_add(vec3 c1, vec3 c2) {\n\treturn c1 + c2;\n}\nvec3 detailMode_screen(vec3 c1, vec3 c2) {\n\treturn 1.0 - (1.0 - c1)*(1.0 - c2);\n}\nvec3 detailMode_overlay(vec3 c1, vec3 c2) {\n\treturn mix(1.0 - 2.0*(1.0 - c1)*(1.0 - c2), 2.0*c1*c2, step(c1, vec3(0.5)));\n}\nvec3 detailMode_min(vec3 c1, vec3 c2) {\n\treturn min(c1, c2);\n}\nvec3 detailMode_max(vec3 c1, vec3 c2) {\n\treturn max(c1, c2);\n}\n`;\n\nvar diffusePS = `\n#ifdef MAPCOLOR\nuniform vec3 material_diffuse;\n#endif\nvoid getAlbedo() {\n\tdAlbedo = vec3(1.0);\n#ifdef MAPCOLOR\n\tdAlbedo *= material_diffuse.rgb;\n#endif\n#ifdef MAPTEXTURE\n\tvec3 albedoBase = $DECODE(texture2DBias($SAMPLER, $UV, textureBias)).$CH;\n\tdAlbedo *= addAlbedoDetail(albedoBase);\n#endif\n#ifdef MAPVERTEX\n\tdAlbedo *= gammaCorrectInput(saturate(vVertexColor.$VC));\n#endif\n}\n`;\n\nvar diffuseDetailMapPS = `\nvec3 addAlbedoDetail(vec3 albedo) {\n#ifdef MAPTEXTURE\n\tvec3 albedoDetail = $DECODE(texture2DBias($SAMPLER, $UV, textureBias)).$CH;\n\treturn detailMode_$DETAILMODE(albedo, albedoDetail);\n#else\n\treturn albedo;\n#endif\n}\n`;\n\nvar emissivePS = `\n#ifdef MAPCOLOR\nuniform vec3 material_emissive;\n#endif\n#ifdef MAPFLOAT\nuniform float material_emissiveIntensity;\n#endif\nvoid getEmission() {\n\tdEmission = vec3(1.0);\n\t#ifdef MAPFLOAT\n\tdEmission *= material_emissiveIntensity;\n\t#endif\n\t#ifdef MAPCOLOR\n\tdEmission *= material_emissive;\n\t#endif\n\t#ifdef MAPTEXTURE\n\tdEmission *= $DECODE(texture2DBias($SAMPLER, $UV, textureBias)).$CH;\n\t#endif\n\t#ifdef MAPVERTEX\n\tdEmission *= gammaCorrectInput(saturate(vVertexColor.$VC));\n\t#endif\n}\n`;\n\nvar encodePS = `\nvec4 encodeLinear(vec3 source) {\n\treturn vec4(source, 1.0);\n}\nvec4 encodeGamma(vec3 source) {\n\treturn vec4(pow(source + 0.0000001, vec3(1.0 / 2.2)), 1.0);\n}\nvec4 encodeRGBM(vec3 source) {\n\tvec4 result;\n\tresult.rgb = pow(source.rgb, vec3(0.5));\n\tresult.rgb *= 1.0 / 8.0;\n\tresult.a = saturate( max( max( result.r, result.g ), max( result.b, 1.0 / 255.0 ) ) );\n\tresult.a = ceil(result.a * 255.0) / 255.0;\n\tresult.rgb /= result.a;\n\treturn result;\n}\nvec4 encodeRGBP(vec3 source) {\n\tvec3 gamma = pow(source, vec3(0.5));\n\tfloat maxVal = min(8.0, max(1.0, max(gamma.x, max(gamma.y, gamma.z))));\n\tfloat v = 1.0 - ((maxVal - 1.0) / 7.0);\n\tv = ceil(v * 255.0) / 255.0;\n\treturn vec4(gamma / (-v * 7.0 + 8.0), v);\t\n}\nvec4 encodeRGBE(vec3 source) {\n\tfloat maxVal = max(source.x, max(source.y, source.z));\n\tif (maxVal < 1e-32) {\n\t\treturn vec4(0, 0, 0, 0);\n\t} else {\n\t\tfloat e = ceil(log2(maxVal));\n\t\treturn vec4(source / pow(2.0, e), (e + 128.0) / 255.0);\n\t}\n}\n`;\n\nvar endPS = `\n\tgl_FragColor.rgb = combineColor(litArgs_albedo, litArgs_sheen_specularity, litArgs_clearcoat_specularity);\n\tgl_FragColor.rgb += litArgs_emission;\n\tgl_FragColor.rgb = addFog(gl_FragColor.rgb);\n\t#ifndef HDR\n\tgl_FragColor.rgb = toneMap(gl_FragColor.rgb);\n\tgl_FragColor.rgb = gammaCorrectOutput(gl_FragColor.rgb);\n\t#endif\n`;\n\nvar endVS = `\n`;\n\nvar envAtlasPS = `\nconst float atlasSize = 512.0;\nconst float seamSize = 1.0 / atlasSize;\nvec2 mapUv(vec2 uv, vec4 rect) {\n\treturn vec2(mix(rect.x + seamSize, rect.x + rect.z - seamSize, uv.x),\n\t\t\t\tmix(rect.y + seamSize, rect.y + rect.w - seamSize, uv.y));\n}\nvec2 mapRoughnessUv(vec2 uv, float level) {\n\tfloat t = 1.0 / exp2(level);\n\treturn mapUv(uv, vec4(0, 1.0 - t, t, t * 0.5));\n}\nvec2 mapShinyUv(vec2 uv, float level) {\n\tfloat t = 1.0 / exp2(level);\n\treturn mapUv(uv, vec4(1.0 - t, 1.0 - t, t, t * 0.5));\n}\n`;\n\nvar envConstPS = `\nvec3 processEnvironment(vec3 color) {\n\treturn color;\n}\n`;\n\nvar envMultiplyPS = `\nuniform float skyboxIntensity;\nvec3 processEnvironment(vec3 color) {\n\treturn color * skyboxIntensity;\n}\n`;\n\nvar extensionPS = `\n`;\n\nvar extensionVS = `\n`;\n\nvar falloffInvSquaredPS = `\nfloat getFalloffWindow(float lightRadius, vec3 lightDir) {\n\tfloat sqrDist = dot(lightDir, lightDir);\n\tfloat invRadius = 1.0 / lightRadius;\n\treturn square( saturate( 1.0 - square( sqrDist * square(invRadius) ) ) );\n}\nfloat getFalloffInvSquared(float lightRadius, vec3 lightDir) {\n\tfloat sqrDist = dot(lightDir, lightDir);\n\tfloat falloff = 1.0 / (sqrDist + 1.0);\n\tfloat invRadius = 1.0 / lightRadius;\n\tfalloff *= 16.0;\n\tfalloff *= square( saturate( 1.0 - square( sqrDist * square(invRadius) ) ) );\n\treturn falloff;\n}\n`;\n\nvar falloffLinearPS = `\nfloat getFalloffLinear(float lightRadius, vec3 lightDir) {\n\tfloat d = length(lightDir);\n\treturn max(((lightRadius - d) / lightRadius), 0.0);\n}\n`;\n\nvar fixCubemapSeamsNonePS = `\nvec3 fixSeams(vec3 vec, float mipmapIndex) {\n\treturn vec;\n}\nvec3 fixSeams(vec3 vec) {\n\treturn vec;\n}\nvec3 fixSeamsStatic(vec3 vec, float invRecMipSize) {\n\treturn vec;\n}\nvec3 calcSeam(vec3 vec) {\n\treturn vec3(0);\n}\nvec3 applySeam(vec3 vec, vec3 seam, float scale) {\n\treturn vec;\n}\n`;\n\nvar fixCubemapSeamsStretchPS = `\nvec3 fixSeams(vec3 vec, float mipmapIndex) {\n\tvec3 avec = abs(vec);\n\tfloat scale = 1.0 - exp2(mipmapIndex) / 128.0;\n\tfloat M = max(max(avec.x, avec.y), avec.z);\n\tif (avec.x != M) vec.x *= scale;\n\tif (avec.y != M) vec.y *= scale;\n\tif (avec.z != M) vec.z *= scale;\n\treturn vec;\n}\nvec3 fixSeams(vec3 vec) {\n\tvec3 avec = abs(vec);\n\tfloat scale = 1.0 - 1.0 / 128.0;\n\tfloat M = max(max(avec.x, avec.y), avec.z);\n\tif (avec.x != M) vec.x *= scale;\n\tif (avec.y != M) vec.y *= scale;\n\tif (avec.z != M) vec.z *= scale;\n\treturn vec;\n}\nvec3 fixSeamsStatic(vec3 vec, float invRecMipSize) {\n\tvec3 avec = abs(vec);\n\tfloat scale = invRecMipSize;\n\tfloat M = max(max(avec.x, avec.y), avec.z);\n\tif (avec.x != M) vec.x *= scale;\n\tif (avec.y != M) vec.y *= scale;\n\tif (avec.z != M) vec.z *= scale;\n\treturn vec;\n}\nvec3 calcSeam(vec3 vec) {\n\tvec3 avec = abs(vec);\n\tfloat M = max(avec.x, max(avec.y, avec.z));\n\treturn vec3(avec.x != M ? 1.0 : 0.0,\n\t\t\t\tavec.y != M ? 1.0 : 0.0,\n\t\t\t\tavec.z != M ? 1.0 : 0.0);\n}\nvec3 applySeam(vec3 vec, vec3 seam, float scale) {\n\treturn vec * (seam * -scale + vec3(1.0));\n}\n`;\n\nvar floatUnpackingPS = `\nfloat bytes2float2(vec2 data) {\n\treturn dot(data, vec2(1.0, 1.0 / 255.0));\n}\nfloat bytes2float3(vec3 data) {\n\treturn dot(data, vec3(1.0, 1.0 / 255.0, 1.0 / 65025.0));\n}\nfloat bytes2float4(vec4 data) {\n\treturn dot(data, vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0));\n}\nfloat bytes2floatRange2(vec2 data, float min, float max) {\n\treturn mix(min, max, bytes2float2(data));\n}\nfloat bytes2floatRange3(vec3 data, float min, float max) {\n\treturn mix(min, max, bytes2float3(data));\n}\nfloat bytes2floatRange4(vec4 data, float min, float max) {\n\treturn mix(min, max, bytes2float4(data));\n}\nfloat mantissaExponent2Float(vec4 pack)\n{\n\tfloat value = bytes2floatRange3(pack.xyz, -1.0, 1.0);\n\tfloat exponent = floor(pack.w * 255.0 - 127.0);\n\treturn value * exp2(exponent);\n}\n`;\n\nvar fogExpPS = `\nuniform vec3 fog_color;\nuniform float fog_density;\nfloat dBlendModeFogFactor = 1.0;\nvec3 addFog(vec3 color) {\n\tfloat depth = gl_FragCoord.z / gl_FragCoord.w;\n\tfloat fogFactor = exp(-depth * fog_density);\n\tfogFactor = clamp(fogFactor, 0.0, 1.0);\n\treturn mix(fog_color * dBlendModeFogFactor, color, fogFactor);\n}\n`;\n\nvar fogExp2PS = `\nuniform vec3 fog_color;\nuniform float fog_density;\nfloat dBlendModeFogFactor = 1.0;\nvec3 addFog(vec3 color) {\n\tfloat depth = gl_FragCoord.z / gl_FragCoord.w;\n\tfloat fogFactor = exp(-depth * depth * fog_density * fog_density);\n\tfogFactor = clamp(fogFactor, 0.0, 1.0);\n\treturn mix(fog_color * dBlendModeFogFactor, color, fogFactor);\n}\n`;\n\nvar fogLinearPS = `\nuniform vec3 fog_color;\nuniform float fog_start;\nuniform float fog_end;\nfloat dBlendModeFogFactor = 1.0;\nvec3 addFog(vec3 color) {\n\tfloat depth = gl_FragCoord.z / gl_FragCoord.w;\n\tfloat fogFactor = (fog_end - depth) / (fog_end - fog_start);\n\tfogFactor = clamp(fogFactor, 0.0, 1.0);\n\treturn mix(fog_color * dBlendModeFogFactor, color, fogFactor);\n}\n`;\n\nvar fogNonePS = `\nfloat dBlendModeFogFactor = 1.0;\nvec3 addFog(vec3 color) {\n\treturn color;\n}\n`;\n\nvar fresnelSchlickPS = `\nvec3 getFresnel(\n\t\tfloat cosTheta, \n\t\tfloat gloss, \n\t\tvec3 specularity\n#if defined(LIT_IRIDESCENCE)\n\t\t, vec3 iridescenceFresnel, \n\t\tfloat iridescenceIntensity\n#endif\n\t) {\n\tfloat fresnel = pow(1.0 - max(cosTheta, 0.0), 5.0);\n\tfloat glossSq = gloss * gloss;\n\tvec3 ret = specularity + (max(vec3(glossSq), specularity) - specularity) * fresnel;\n#if defined(LIT_IRIDESCENCE)\n\treturn mix(ret, iridescenceFresnel, iridescenceIntensity);\n#else\n\treturn ret;\n#endif\t\n}\nfloat getFresnelCC(float cosTheta) {\n\tfloat fresnel = pow(1.0 - max(cosTheta, 0.0), 5.0);\n\treturn 0.04 + (1.0 - 0.04) * fresnel;\n}\n`;\n\nvar fullscreenQuadPS = `\nvarying vec2 vUv0;\nuniform sampler2D source;\nvoid main(void) {\n\tgl_FragColor = texture2D(source, vUv0);\n}\n`;\n\nvar fullscreenQuadVS = `\nattribute vec2 vertex_position;\nvarying vec2 vUv0;\nvoid main(void)\n{\n\tgl_Position = vec4(vertex_position, 0.5, 1.0);\n\tvUv0 = vertex_position.xy*0.5+0.5;\n}\n`;\n\nvar gamma1_0PS = `\nfloat gammaCorrectInput(float color) {\n\treturn color;\n}\nvec3 gammaCorrectInput(vec3 color) {\n\treturn color;\n}\nvec4 gammaCorrectInput(vec4 color) {\n\treturn color;\n}\nvec3 gammaCorrectOutput(vec3 color) {\n\treturn color;\n}\n`;\n\nvar gamma2_2PS = `\nfloat gammaCorrectInput(float color) {\n\treturn decodeGamma(color);\n}\nvec3 gammaCorrectInput(vec3 color) {\n\treturn decodeGamma(color);\n}\nvec4 gammaCorrectInput(vec4 color) {\n\treturn vec4(decodeGamma(color.xyz), color.w);\n}\nvec3 gammaCorrectOutput(vec3 color) {\n#ifdef HDR\n\treturn color;\n#else\n\treturn pow(color + 0.0000001, vec3(1.0 / 2.2));\n#endif\n}\n`;\n\nvar glossPS = `\n#ifdef MAPFLOAT\nuniform float material_gloss;\n#endif\nvoid getGlossiness() {\n\tdGlossiness = 1.0;\n\t#ifdef MAPFLOAT\n\tdGlossiness *= material_gloss;\n\t#endif\n\t#ifdef MAPTEXTURE\n\tdGlossiness *= texture2DBias($SAMPLER, $UV, textureBias).$CH;\n\t#endif\n\t#ifdef MAPVERTEX\n\tdGlossiness *= saturate(vVertexColor.$VC);\n\t#endif\n\t#ifdef MAPINVERT\n\tdGlossiness = 1.0 - dGlossiness;\n\t#endif\n\tdGlossiness += 0.0000001;\n}\n`;\n\nvar iridescenceDiffractionPS = `\nuniform float material_iridescenceRefractionIndex;\n#ifndef PI\n#define PI 3.14159265\n#endif\nfloat iridescence_iorToFresnel(float transmittedIor, float incidentIor) {\n\treturn pow((transmittedIor - incidentIor) / (transmittedIor + incidentIor), 2.0);\n}\nvec3 iridescence_iorToFresnel(vec3 transmittedIor, float incidentIor) {\n\treturn pow((transmittedIor - vec3(incidentIor)) / (transmittedIor + vec3(incidentIor)), vec3(2.0));\n}\nvec3 iridescence_fresnelToIor(vec3 f0) {\n\tvec3 sqrtF0 = sqrt(f0);\n\treturn (vec3(1.0) + sqrtF0) / (vec3(1.0) - sqrtF0);\n}\nvec3 iridescence_sensitivity(float opd, vec3 shift) {\n\tfloat phase = 2.0 * PI * opd * 1.0e-9;\n\tconst vec3 val = vec3(5.4856e-13, 4.4201e-13, 5.2481e-13);\n\tconst vec3 pos = vec3(1.6810e+06, 1.7953e+06, 2.2084e+06);\n\tconst vec3 var = vec3(4.3278e+09, 9.3046e+09, 6.6121e+09);\n\tvec3 xyz = val * sqrt(2.0 * PI * var) * cos(pos * phase + shift) * exp(-pow(phase, 2.0) * var);\n\txyz.x += 9.7470e-14 * sqrt(2.0 * PI * 4.5282e+09) * cos(2.2399e+06 * phase + shift[0]) * exp(-4.5282e+09 * pow(phase, 2.0));\n\txyz /= vec3(1.0685e-07);\n\tconst mat3 XYZ_TO_REC709 = mat3(\n\t\t3.2404542, -0.9692660,  0.0556434,\n\t   -1.5371385,  1.8760108, -0.2040259,\n\t   -0.4985314,  0.0415560,  1.0572252\n\t);\n\treturn XYZ_TO_REC709 * xyz;\n}\nfloat iridescence_fresnel(float cosTheta, float f0) {\n\tfloat x = clamp(1.0 - cosTheta, 0.0, 1.0);\n\tfloat x2 = x * x;\n\tfloat x5 = x * x2 * x2;\n\treturn f0 + (1.0 - f0) * x5;\n} \nvec3 iridescence_fresnel(float cosTheta, vec3 f0) {\n\tfloat x = clamp(1.0 - cosTheta, 0.0, 1.0);\n\tfloat x2 = x * x;\n\tfloat x5 = x * x2 * x2; \n\treturn f0 + (vec3(1.0) - f0) * x5;\n}\nvec3 calcIridescence(float outsideIor, float cosTheta, vec3 base_f0, float iridescenceThickness) {\n\tfloat iridescenceIor = mix(outsideIor, material_iridescenceRefractionIndex, smoothstep(0.0, 0.03, iridescenceThickness));\n\tfloat sinTheta2Sq = pow(outsideIor / iridescenceIor, 2.0) * (1.0 - pow(cosTheta, 2.0));\n\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\n\tif (cosTheta2Sq < 0.0) {\n\t\treturn vec3(1.0);\n\t}\n\tfloat cosTheta2 = sqrt(cosTheta2Sq);\n\tfloat r0 = iridescence_iorToFresnel(iridescenceIor, outsideIor);\n\tfloat r12 = iridescence_fresnel(cosTheta, r0);\n\tfloat r21 = r12;\n\tfloat t121 = 1.0 - r12;\n\tfloat phi12 = iridescenceIor < outsideIor ? PI : 0.0;\n\tfloat phi21 = PI - phi12;\n\tvec3 baseIor = iridescence_fresnelToIor(base_f0 + vec3(0.0001));\n\tvec3 r1 = iridescence_iorToFresnel(baseIor, iridescenceIor);\n\tvec3 r23 = iridescence_fresnel(cosTheta2, r1);\n\tvec3 phi23 = vec3(0.0);\n\tif (baseIor[0] < iridescenceIor) phi23[0] = PI;\n\tif (baseIor[1] < iridescenceIor) phi23[1] = PI;\n\tif (baseIor[2] < iridescenceIor) phi23[2] = PI;\n\tfloat opd = 2.0 * iridescenceIor * iridescenceThickness * cosTheta2;\n\tvec3 phi = vec3(phi21) + phi23; \n\tvec3 r123Sq = clamp(r12 * r23, 1e-5, 0.9999);\n\tvec3 r123 = sqrt(r123Sq);\n\tvec3 rs = pow(t121, 2.0) * r23 / (1.0 - r123Sq);\n\tvec3 c0 = r12 + rs;\n\tvec3 i = c0;\n\tvec3 cm = rs - t121;\n\tfor (int m = 1; m <= 2; m++) {\n\t\tcm *= r123;\n\t\tvec3 sm = 2.0 * iridescence_sensitivity(float(m) * opd, float(m) * phi);\n\t\ti += cm * sm;\n\t}\n\treturn max(i, vec3(0.0));\n}\nvec3 getIridescence(float cosTheta, vec3 specularity, float iridescenceThickness) {\n\treturn calcIridescence(1.0, cosTheta, specularity, iridescenceThickness);\n}\n`;\n\nvar iridescencePS = `\n#ifdef MAPFLOAT\nuniform float material_iridescence;\n#endif\nvoid getIridescence() {\n\tfloat iridescence = 1.0;\n\t#ifdef MAPFLOAT\n\tiridescence *= material_iridescence;\n\t#endif\n\t#ifdef MAPTEXTURE\n\tiridescence *= texture2DBias($SAMPLER, $UV, textureBias).$CH;\n\t#endif\n\tdIridescence = iridescence; \n}\n`;\n\nvar iridescenceThicknessPS = `\nuniform float material_iridescenceThicknessMax;\n#ifdef MAPTEXTURE\nuniform float material_iridescenceThicknessMin;\n#endif\nvoid getIridescenceThickness() {\n\t#ifdef MAPTEXTURE\n\tfloat blend = texture2DBias($SAMPLER, $UV, textureBias).$CH;\n\tfloat iridescenceThickness = mix(material_iridescenceThicknessMin, material_iridescenceThicknessMax, blend);\n\t#else\n\tfloat iridescenceThickness = material_iridescenceThicknessMax;\n\t#endif\n\tdIridescenceThickness = iridescenceThickness; \n}\n`;\n\nvar instancingVS = `\nattribute vec4 instance_line1;\nattribute vec4 instance_line2;\nattribute vec4 instance_line3;\nattribute vec4 instance_line4;\n`;\n\nvar iorPS = `\n#ifdef MAPFLOAT\nuniform float material_refractionIndex;\n#endif\nvoid getIor() {\n#ifdef MAPFLOAT\n\tdIor = material_refractionIndex;\n#else\n\tdIor = 1.0 / 1.5;\n#endif\n}\n`;\n\nvar lightDiffuseLambertPS = `\nfloat getLightDiffuse(vec3 worldNormal, vec3 viewDir, vec3 lightDir, vec3 lightDirNorm) {\n\treturn max(dot(worldNormal, -lightDirNorm), 0.0);\n}\n`;\n\nvar lightDirPointPS = `\nvoid getLightDirPoint(vec3 lightPosW) {\n\tdLightDirW = vPositionW - lightPosW;\n\tdLightDirNormW = normalize(dLightDirW);\n\tdLightPosW = lightPosW;\n}\n`;\n\nvar lightmapAddPS = `\nvoid addLightMap(\n\tvec3 lightmap, \n\tvec3 dir, \n\tvec3 worldNormal, \n\tvec3 viewDir, \n\tvec3 reflectionDir, \n\tfloat gloss, \n\tvec3 specularity, \n\tvec3 vertexNormal, \n\tmat3 tbn\n#if defined(LIT_IRIDESCENCE)\n\tvec3 iridescenceFresnel, \n\tfloat iridescenceIntensity\n#endif\n) {\n\tdDiffuseLight += lightmap;\n}\n`;\n\nvar lightmapDirAddPS = `\nvoid addLightMap(\n\tvec3 lightmap, \n\tvec3 dir, \n\tvec3 worldNormal, \n\tvec3 viewDir, \n\tvec3 reflectionDir, \n\tfloat gloss, \n\tvec3 specularity, \n\tvec3 vertexNormal, \n\tmat3 tbn\n#if defined(LIT_IRIDESCENCE)\n\tvec3 iridescenceFresnel, \n\tfloat iridescenceIntensity\n#endif\n) {\n\tif (dot(dir, dir) < 0.0001) {\n\t\tdDiffuseLight += lightmap;\n\t} else {\n\t\tfloat vlight = saturate(dot(dir, -vertexNormal));\n\t\tfloat flight = saturate(dot(dir, -worldNormal));\n\t\tfloat nlight = (flight / max(vlight, 0.01)) * 0.5;\n\t\tdDiffuseLight += lightmap * nlight * 2.0;\n\t\tvec3 halfDir = normalize(-dir + viewDir);\n\t\tvec3 specularLight = lightmap * getLightSpecular(halfDir, reflectionDir, worldNormal, viewDir, dir, gloss, tbn);\n#ifdef LIT_SPECULAR_FRESNEL\n\t\tspecularLight *= \n\t\t\tgetFresnel(dot(viewDir, halfDir), \n\t\t\tgloss, \n\t\t\tspecularity\n\t\t#if defined(LIT_IRIDESCENCE)\n\t\t\t, iridescenceFresnel,\n\t\t\tiridescenceIntensity\n\t\t#endif\n\t\t\t);\n#endif\n\t\tdSpecularLight += specularLight;\n\t}\n}\n`;\n\nvar lightmapDirPS = `\nuniform sampler2D texture_lightMap;\nuniform sampler2D texture_dirLightMap;\nvoid getLightMap() {\n\tdLightmap = $DECODE(texture2DBias(texture_lightMap, $UV, textureBias)).$CH;\n\tvec3 dir = texture2DBias(texture_dirLightMap, $UV, textureBias).xyz * 2.0 - 1.0;\n\tfloat dirDot = dot(dir, dir);\n\tdLightmapDir = (dirDot > 0.001) ? dir / sqrt(dirDot) : vec3(0.0);\n}\n`;\n\nvar lightmapSinglePS = `\nvoid getLightMap() {\n\tdLightmap = vec3(1.0);\n\t#ifdef MAPTEXTURE\n\tdLightmap *= $DECODE(texture2DBias($SAMPLER, $UV, textureBias)).$CH;\n\t#endif\n\t#ifdef MAPVERTEX\n\tdLightmap *= saturate(vVertexColor.$VC);\n\t#endif\n}\n`;\n\nvar lightSpecularAnisoGGXPS = `\nfloat calcLightSpecular(float gloss, vec3 worldNormal, vec3 viewDir, vec3 h, vec3 lightDirNorm, mat3 tbn) {\n\tfloat PI = 3.141592653589793;\n\tfloat roughness = max((1.0 - gloss) * (1.0 - gloss), 0.001);\n\tfloat anisotropy = material_anisotropy * roughness;\n \n\tfloat at = max((roughness + anisotropy), roughness / 4.0);\n\tfloat ab = max((roughness - anisotropy), roughness / 4.0);\n\tfloat NoH = dot(worldNormal, h);\n\tfloat ToH = dot(tbn[0], h);\n\tfloat BoH = dot(tbn[1], h);\n\tfloat a2 = at * ab;\n\tvec3 v = vec3(ab * ToH, at * BoH, a2 * NoH);\n\tfloat v2 = dot(v, v);\n\tfloat w2 = a2 / v2;\n\tfloat D = a2 * w2 * w2 * (1.0 / PI);\n\tfloat ToV = dot(tbn[0], viewDir);\n\tfloat BoV = dot(tbn[1], viewDir);\n\tfloat ToL = dot(tbn[0], -lightDirNorm);\n\tfloat BoL = dot(tbn[1], -lightDirNorm);\n\tfloat NoV = dot(worldNormal, viewDir);\n\tfloat NoL = dot(worldNormal, -lightDirNorm);\n\tfloat lambdaV = NoL * length(vec3(at * ToV, ab * BoV, NoV));\n\tfloat lambdaL = NoV * length(vec3(at * ToL, ab * BoL, NoL));\n\tfloat G = 0.5 / (lambdaV + lambdaL);\n\treturn D * G;\n}\nfloat getLightSpecular(vec3 h, vec3 reflDir, vec3 worldNormal, vec3 viewDir, vec3 lightDirNorm, float gloss, mat3 tbn) {\n\treturn calcLightSpecular(gloss, worldNormal, viewDir, h, lightDirNorm, tbn);\n}\n`;\n\nvar lightSpecularBlinnPS = `\nfloat calcLightSpecular(float gloss, vec3 worldNormal, vec3 h) {\n\tfloat nh = max( dot( h, worldNormal ), 0.0 );\n\tfloat specPow = exp2(gloss * 11.0);\n\tspecPow = max(specPow, 0.0001);\n\treturn pow(nh, specPow) * (specPow + 2.0) / 8.0;\n}\nfloat getLightSpecular(vec3 h, vec3 reflDir, vec3 worldNormal, vec3 viewDir, vec3 lightDirNorm, float gloss, mat3 tbn) {\n\treturn calcLightSpecular(gloss, worldNormal, h);\n}\n`;\n\nvar lightSpecularPhongPS = `\nfloat calcLightSpecular(float gloss, vec3 reflDir, vec3 lightDirNorm) {\n\tfloat specPow = gloss;\n\treturn pow(max(dot(reflDir, -lightDirNorm), 0.0), specPow + 0.0001);\n}\nfloat getLightSpecular(vec3 h, vec3 reflDir, vec3 worldNormal, vec3 viewDir, vec3 lightDirNorm, float gloss, mat3 tbn) {\n\treturn calcLightSpecular(gloss, reflDir, lightDirNorm);\n}\n`;\n\nvar lightSheenPS = `\nfloat sheenD(vec3 normal, vec3 h, float roughness) {\n\tfloat invR = 1.0 / (roughness * roughness);\n\tfloat cos2h = max(dot(normal, h), 0.0);\n\tcos2h *= cos2h;\n\tfloat sin2h = max(1.0 - cos2h, 0.0078125);\n\treturn (2.0 + invR) * pow(sin2h, invR * 0.5) / (2.0 * PI);\n}\nfloat sheenV(vec3 normal, vec3 viewDir, vec3 light) {\n\tfloat NoV = max(dot(normal, viewDir), 0.000001);\n\tfloat NoL = max(dot(normal, light), 0.000001);\n\treturn 1.0 / (4.0 * (NoL + NoV - NoL * NoV));\n}\nfloat getLightSpecularSheen(vec3 h, vec3 worldNormal, vec3 viewDir, vec3 lightDirNorm, float sheenGloss) {\n\tfloat D = sheenD(worldNormal, h, sheenGloss);\n\tfloat V = sheenV(worldNormal, viewDir, -lightDirNorm);\n\treturn D * V;\n}\n`;\n\nvar linearizeDepthPS = `\n#ifndef LINEARIZE_DEPTH\n#define LINEARIZE_DEPTH\nfloat linearizeDepth(float z, vec4 cameraParams) {\n\tif (cameraParams.w == 0.0)\n\t\treturn (cameraParams.z * cameraParams.y) / (cameraParams.y + z * (cameraParams.z - cameraParams.y));\n\telse\n\t\treturn cameraParams.z + z * (cameraParams.y - cameraParams.z);\n}\n#ifndef CAMERAPLANES\n#define CAMERAPLANES\nuniform vec4 camera_params;\n#endif\n#ifdef GL2\nfloat linearizeDepth(float z) {\n\treturn linearizeDepth(z, camera_params);\n}\n#else\n#ifndef UNPACKFLOAT\n#define UNPACKFLOAT\nfloat unpackFloat(vec4 rgbaDepth) {\n\tconst vec4 bitShift = vec4(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);\n\treturn dot(rgbaDepth, bitShift);\n}\n#endif\n#endif\n#endif\n`;\n\nvar litShaderArgsPS = `\nvec3 litArgs_albedo;\nfloat litArgs_opacity;\nvec3 litArgs_emission;\nvec3 litArgs_worldNormal;\nfloat litArgs_ao;\nvec3 litArgs_lightmap;\nvec3 litArgs_lightmapDir;\nfloat litArgs_metalness;\nvec3 litArgs_specularity;\nfloat litArgs_specularityFactor;\nfloat litArgs_gloss;\nfloat litArgs_sheen_gloss;\nvec3 litArgs_sheen_specularity;\nfloat litArgs_transmission;\nfloat litArgs_thickness;\nfloat litArgs_ior;\nfloat litArgs_dispersion;\nfloat litArgs_iridescence_intensity;\nfloat litArgs_iridescence_thickness;\nvec3 litArgs_clearcoat_worldNormal;\nfloat litArgs_clearcoat_specularity;\nfloat litArgs_clearcoat_gloss;\n`;\n\nvar ltcPS = `\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nstruct Coords {\n\tvec3 coord0;\n\tvec3 coord1;\n\tvec3 coord2;\n\tvec3 coord3;\n};\nfloat LTC_EvaluateRect( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in Coords rectCoords) {\n\tvec3 v1 = rectCoords.coord1 - rectCoords.coord0;\n\tvec3 v2 = rectCoords.coord3 - rectCoords.coord0;\n\t\n\tvec3 lightNormal = cross( v1, v2 );\n\tfloat factor = sign(-dot( lightNormal, P - rectCoords.coord0 ));\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 =  factor * cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords.coord0 - P );\n\tcoords[ 1 ] = mat * ( rectCoords.coord1 - P );\n\tcoords[ 2 ] = mat * ( rectCoords.coord2 - P );\n\tcoords[ 3 ] = mat * ( rectCoords.coord3 - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn result;\n}\nCoords dLTCCoords;\nCoords getLTCLightCoords(vec3 lightPos, vec3 halfWidth, vec3 halfHeight){\n\tCoords coords;\n\tcoords.coord0 = lightPos + halfWidth - halfHeight;\n\tcoords.coord1 = lightPos - halfWidth - halfHeight;\n\tcoords.coord2 = lightPos - halfWidth + halfHeight;\n\tcoords.coord3 = lightPos + halfWidth + halfHeight;\n\treturn coords;\n}\nfloat dSphereRadius;\nCoords getSphereLightCoords(vec3 lightPos, vec3 halfWidth, vec3 halfHeight){\n\tdSphereRadius = max(length(halfWidth), length(halfHeight));\n\tvec3 f = reflect(normalize(lightPos - view_position), vNormalW);\n\tvec3 w = normalize(cross(f, halfHeight));\n\tvec3 h = normalize(cross(f, w));\n\treturn getLTCLightCoords(lightPos, w * dSphereRadius, h * dSphereRadius);\n}\nvec2 dLTCUV;\n#ifdef LIT_CLEARCOAT\nvec2 ccLTCUV;\n#endif\nvec2 getLTCLightUV(float gloss, vec3 worldNormal, vec3 viewDir)\n{\n\tfloat roughness = max((1.0 - gloss) * (1.0 - gloss), 0.001);\n\treturn LTC_Uv( worldNormal, viewDir, roughness );\n}\nvec3 dLTCSpecFres;\n#ifdef LIT_CLEARCOAT\nvec3 ccLTCSpecFres;\n#endif\nvec3 getLTCLightSpecFres(vec2 uv, vec3 specularity)\n{\n\tvec4 t2 = texture2DLodEXT(areaLightsLutTex2, uv, 0.0);\n\t#ifdef AREA_R8_G8_B8_A8_LUTS\n\tt2 *= vec4(0.693103,1,1,1);\n\tt2 += vec4(0.306897,0,0,0);\n\t#endif\n\treturn specularity * t2.x + ( vec3( 1.0 ) - specularity) * t2.y;\n}\nvoid calcLTCLightValues(float gloss, vec3 worldNormal, vec3 viewDir, vec3 specularity, float clearcoatGloss, vec3 clearcoatWorldNormal, float clearcoatSpecularity)\n{\n\tdLTCUV = getLTCLightUV(gloss, worldNormal, viewDir);\n\tdLTCSpecFres = getLTCLightSpecFres(dLTCUV, specularity); \n#ifdef LIT_CLEARCOAT\n\tccLTCUV = getLTCLightUV(clearcoatGloss, clearcoatWorldNormal, viewDir);\n\tccLTCSpecFres = getLTCLightSpecFres(ccLTCUV, vec3(clearcoatSpecularity));\n#endif\n}\nvoid calcRectLightValues(vec3 lightPos, vec3 halfWidth, vec3 halfHeight)\n{\n\tdLTCCoords = getLTCLightCoords(lightPos, halfWidth, halfHeight);\n}\nvoid calcDiskLightValues(vec3 lightPos, vec3 halfWidth, vec3 halfHeight)\n{\n\tcalcRectLightValues(lightPos, halfWidth, halfHeight);\n}\nvoid calcSphereLightValues(vec3 lightPos, vec3 halfWidth, vec3 halfHeight)\n{\n\tdLTCCoords = getSphereLightCoords(lightPos, halfWidth, halfHeight);\n}\nvec3 SolveCubic(vec4 Coefficient)\n{\n\tfloat pi = 3.14159;\n\tCoefficient.xyz /= Coefficient.w;\n\tCoefficient.yz /= 3.0;\n\tfloat A = Coefficient.w;\n\tfloat B = Coefficient.z;\n\tfloat C = Coefficient.y;\n\tfloat D = Coefficient.x;\n\tvec3 Delta = vec3(\n\t\t-Coefficient.z * Coefficient.z + Coefficient.y,\n\t\t-Coefficient.y * Coefficient.z + Coefficient.x,\n\t\tdot(vec2(Coefficient.z, -Coefficient.y), Coefficient.xy)\n\t);\n\tfloat Discriminant = dot(vec2(4.0 * Delta.x, -Delta.y), Delta.zy);\n\tvec3 RootsA, RootsD;\n\tvec2 xlc, xsc;\n\t{\n\t\tfloat A_a = 1.0;\n\t\tfloat C_a = Delta.x;\n\t\tfloat D_a = -2.0 * B * Delta.x + Delta.y;\n\t\tfloat Theta = atan(sqrt(Discriminant), -D_a) / 3.0;\n\t\tfloat x_1a = 2.0 * sqrt(-C_a) * cos(Theta);\n\t\tfloat x_3a = 2.0 * sqrt(-C_a) * cos(Theta + (2.0 / 3.0) * pi);\n\t\tfloat xl;\n\t\tif ((x_1a + x_3a) > 2.0 * B)\n\t\t\txl = x_1a;\n\t\telse\n\t\t\txl = x_3a;\n\t\txlc = vec2(xl - B, A);\n\t}\n\t{\n\t\tfloat A_d = D;\n\t\tfloat C_d = Delta.z;\n\t\tfloat D_d = -D * Delta.y + 2.0 * C * Delta.z;\n\t\tfloat Theta = atan(D * sqrt(Discriminant), -D_d) / 3.0;\n\t\tfloat x_1d = 2.0 * sqrt(-C_d) * cos(Theta);\n\t\tfloat x_3d = 2.0 * sqrt(-C_d) * cos(Theta + (2.0 / 3.0) * pi);\n\t\tfloat xs;\n\t\tif (x_1d + x_3d < 2.0 * C)\n\t\t\txs = x_1d;\n\t\telse\n\t\t\txs = x_3d;\n\t\txsc = vec2(-D, xs + C);\n\t}\n\tfloat E =  xlc.y * xsc.y;\n\tfloat F = -xlc.x * xsc.y - xlc.y * xsc.x;\n\tfloat G =  xlc.x * xsc.x;\n\tvec2 xmc = vec2(C * F - B * G, -B * F + C * E);\n\tvec3 Root = vec3(xsc.x / xsc.y, xmc.x / xmc.y, xlc.x / xlc.y);\n\tif (Root.x < Root.y && Root.x < Root.z)\n\t\tRoot.xyz = Root.yxz;\n\telse if (Root.z < Root.x && Root.z < Root.y)\n\t\tRoot.xyz = Root.xzy;\n\treturn Root;\n}\nfloat LTC_EvaluateDisk(vec3 N, vec3 V, vec3 P, mat3 Minv, Coords points)\n{\n\tvec3 T1, T2;\n\tT1 = normalize(V - N * dot(V, N));\n\tT2 = cross(N, T1);\n\tmat3 R = transposeMat3( mat3( T1, T2, N ) );\n\tvec3 L_[ 3 ];\n\tL_[ 0 ] = R * ( points.coord0 - P );\n\tL_[ 1 ] = R * ( points.coord1 - P );\n\tL_[ 2 ] = R * ( points.coord2 - P );\n\tvec3 Lo_i = vec3(0);\n\tvec3 C  = 0.5 * (L_[0] + L_[2]);\n\tvec3 V1 = 0.5 * (L_[1] - L_[2]);\n\tvec3 V2 = 0.5 * (L_[1] - L_[0]);\n\tC  = Minv * C;\n\tV1 = Minv * V1;\n\tV2 = Minv * V2;\n\tfloat a, b;\n\tfloat d11 = dot(V1, V1);\n\tfloat d22 = dot(V2, V2);\n\tfloat d12 = dot(V1, V2);\n\tif (abs(d12) / sqrt(d11 * d22) > 0.0001)\n\t{\n\t\tfloat tr = d11 + d22;\n\t\tfloat det = -d12 * d12 + d11 * d22;\n\t\tdet = sqrt(det);\n\t\tfloat u = 0.5 * sqrt(tr - 2.0 * det);\n\t\tfloat v = 0.5 * sqrt(tr + 2.0 * det);\n\t\tfloat e_max = (u + v) * (u + v);\n\t\tfloat e_min = (u - v) * (u - v);\n\t\tvec3 V1_, V2_;\n\t\tif (d11 > d22)\n\t\t{\n\t\t\tV1_ = d12 * V1 + (e_max - d11) * V2;\n\t\t\tV2_ = d12 * V1 + (e_min - d11) * V2;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tV1_ = d12*V2 + (e_max - d22)*V1;\n\t\t\tV2_ = d12*V2 + (e_min - d22)*V1;\n\t\t}\n\t\ta = 1.0 / e_max;\n\t\tb = 1.0 / e_min;\n\t\tV1 = normalize(V1_);\n\t\tV2 = normalize(V2_);\n\t}\n\telse\n\t{\n\t\ta = 1.0 / dot(V1, V1);\n\t\tb = 1.0 / dot(V2, V2);\n\t\tV1 *= sqrt(a);\n\t\tV2 *= sqrt(b);\n\t}\n\tvec3 V3 = normalize(cross(V1, V2));\n\tif (dot(C, V3) < 0.0)\n\t\tV3 *= -1.0;\n\tfloat L  = dot(V3, C);\n\tfloat x0 = dot(V1, C) / L;\n\tfloat y0 = dot(V2, C) / L;\n\tfloat E1 = inversesqrt(a);\n\tfloat E2 = inversesqrt(b);\n\ta *= L * L;\n\tb *= L * L;\n\tfloat c0 = a * b;\n\tfloat c1 = a * b * (1.0 + x0 * x0 + y0 * y0) - a - b;\n\tfloat c2 = 1.0 - a * (1.0 + x0 * x0) - b * (1.0 + y0 * y0);\n\tfloat c3 = 1.0;\n\tvec3 roots = SolveCubic(vec4(c0, c1, c2, c3));\n\tfloat e1 = roots.x;\n\tfloat e2 = roots.y;\n\tfloat e3 = roots.z;\n\tvec3 avgDir = vec3(a * x0 / (a - e2), b * y0 / (b - e2), 1.0);\n\tmat3 rotate = mat3(V1, V2, V3);\n\tavgDir = rotate * avgDir;\n\tavgDir = normalize(avgDir);\n\tfloat L1 = sqrt(-e2 / e3);\n\tfloat L2 = sqrt(-e2 / e1);\n\tfloat formFactor = max(0.0, L1 * L2 * inversesqrt((1.0 + L1 * L1) * (1.0 + L2 * L2)));\n\t\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tvec2 uv = vec2(avgDir.z * 0.5 + 0.5, formFactor);\n\tuv = uv*LUT_SCALE + LUT_BIAS;\n\tfloat scale = texture2DLodEXT(areaLightsLutTex2, uv, 0.0).w;\n\treturn formFactor*scale;\n}\nfloat getRectLightDiffuse(vec3 worldNormal, vec3 viewDir, vec3 lightDir, vec3 lightDirNorm) {\n\treturn LTC_EvaluateRect( worldNormal, viewDir, vPositionW, mat3( 1.0 ), dLTCCoords );\n}\nfloat getDiskLightDiffuse(vec3 worldNormal, vec3 viewDir, vec3 lightDir, vec3 lightDirNorm) {\n\treturn LTC_EvaluateDisk( worldNormal, viewDir, vPositionW, mat3( 1.0 ), dLTCCoords );\n}\nfloat getSphereLightDiffuse(vec3 worldNormal, vec3 viewDir, vec3 lightDir, vec3 lightDirNorm) {\n\tfloat falloff = dSphereRadius / (dot(lightDir, lightDir) + dSphereRadius);\n\treturn getLightDiffuse(worldNormal, viewDir, lightDir, lightDirNorm) * falloff;\n}\nmat3 getLTCLightInvMat(vec2 uv)\n{\n\tvec4 t1 = texture2DLodEXT(areaLightsLutTex1, uv, 0.0);\n\t#ifdef AREA_R8_G8_B8_A8_LUTS\n\tt1 *= vec4(1.001, 0.3239, 0.60437568, 1.0);\n\tt1 += vec4(0.0, -0.2976, -0.01381, 0.0);\n\t#endif\n\treturn mat3(\n\t\tvec3( t1.x, 0, t1.y ),\n\t\tvec3(\t0, 1,\t0 ),\n\t\tvec3( t1.z, 0, t1.w )\n\t);\n}\nfloat calcRectLightSpecular(vec3 worldNormal, vec3 viewDir, vec2 uv) {\n\tmat3 mInv = getLTCLightInvMat(uv);\n\treturn LTC_EvaluateRect( worldNormal, viewDir, vPositionW, mInv, dLTCCoords );\n}\nfloat getRectLightSpecular(vec3 worldNormal, vec3 viewDir) {\n\treturn calcRectLightSpecular(worldNormal, viewDir, dLTCUV);\n}\nfloat calcDiskLightSpecular(vec3 worldNormal, vec3 viewDir, vec2 uv) {\n\tmat3 mInv = getLTCLightInvMat(uv);\n\treturn LTC_EvaluateDisk( worldNormal, viewDir, vPositionW, mInv, dLTCCoords );\n}\nfloat getDiskLightSpecular(vec3 worldNormal, vec3 viewDir) {\n\treturn calcDiskLightSpecular(worldNormal, viewDir, dLTCUV);\n}\nfloat getSphereLightSpecular(vec3 worldNormal, vec3 viewDir) {\n\treturn calcDiskLightSpecular(worldNormal, viewDir, dLTCUV);\n}\n`;\n\nvar metalnessPS = `\n#ifdef MAPFLOAT\nuniform float material_metalness;\n#endif\nvoid getMetalness() {\n\tfloat metalness = 1.0;\n\t#ifdef MAPFLOAT\n\tmetalness *= material_metalness;\n\t#endif\n\t#ifdef MAPTEXTURE\n\tmetalness *= texture2DBias($SAMPLER, $UV, textureBias).$CH;\n\t#endif\n\t#ifdef MAPVERTEX\n\tmetalness *= saturate(vVertexColor.$VC);\n\t#endif\n\tdMetalness = metalness;\n}\n`;\n\nvar msdfPS = `\nuniform sampler2D texture_msdfMap;\n#ifdef GL_OES_standard_derivatives\n#define USE_FWIDTH\n#endif\n#ifdef GL2\n#define USE_FWIDTH\n#endif\nfloat median(float r, float g, float b) {\n\treturn max(min(r, g), min(max(r, g), b));\n}\nfloat map (float min, float max, float v) {\n\treturn (v - min) / (max - min);\n}\nuniform float font_sdfIntensity;\nuniform float font_pxrange;\nuniform float font_textureWidth;\n#ifdef UNIFORM_TEXT_PARAMETERS\nuniform vec4 outline_color;\nuniform float outline_thickness;\nuniform vec4 shadow_color;\nuniform vec2 shadow_offset;\n#else\nvarying vec4 outline_color;\nvarying float outline_thickness;\nvarying vec4 shadow_color;\nvarying vec2 shadow_offset;\n#endif\nvec4 applyMsdf(vec4 color) {\n\tvec3 tsample = texture2D(texture_msdfMap, vUv0).rgb;\n\tvec2 uvShdw = vUv0 - shadow_offset;\n\tvec3 ssample = texture2D(texture_msdfMap, uvShdw).rgb;\n\tfloat sigDist = median(tsample.r, tsample.g, tsample.b);\n\tfloat sigDistShdw = median(ssample.r, ssample.g, ssample.b);\n\tfloat smoothingMax = 0.2;\n\t#ifdef USE_FWIDTH\n\tvec2 w = fwidth(vUv0);\n\tfloat smoothing = clamp(w.x * font_textureWidth / font_pxrange, 0.0, smoothingMax);\n\t#else\n\tfloat font_size = 16.0;\n\tfloat smoothing = clamp(font_pxrange / font_size, 0.0, smoothingMax);\n\t#endif\n\tfloat mapMin = 0.05;\n\tfloat mapMax = clamp(1.0 - font_sdfIntensity, mapMin, 1.0);\n\tfloat sigDistInner = map(mapMin, mapMax, sigDist);\n\tfloat sigDistOutline = map(mapMin, mapMax, sigDist + outline_thickness);\n\tsigDistShdw = map(mapMin, mapMax, sigDistShdw + outline_thickness);\n\tfloat center = 0.5;\n\tfloat inside = smoothstep(center-smoothing, center+smoothing, sigDistInner);\n\tfloat outline = smoothstep(center-smoothing, center+smoothing, sigDistOutline);\n\tfloat shadow = smoothstep(center-smoothing, center+smoothing, sigDistShdw);\n\tvec4 tcolor = (outline > inside) ? outline * vec4(outline_color.a * outline_color.rgb, outline_color.a) : vec4(0.0);\n\ttcolor = mix(tcolor, color, inside);\n\tvec4 scolor = (shadow > outline) ? shadow * vec4(shadow_color.a * shadow_color.rgb, shadow_color.a) : tcolor;\n\ttcolor = mix(scolor, tcolor, outline);\n\t\n\treturn tcolor;\n}\n`;\n\nvar metalnessModulatePS = `\nvec3 getSpecularModulate(in vec3 specularity, in vec3 albedo, in float metalness, in float f0) {\n\tvec3 dielectricF0 = f0 * specularity;\n\treturn mix(dielectricF0, albedo, metalness);\n}\nvec3 getAlbedoModulate(in vec3 albedo, in float metalness) {\n\treturn albedo * (1.0 - metalness);\n}\n`;\n\nvar msdfVS = `\nattribute vec3 vertex_outlineParameters;\nattribute vec3 vertex_shadowParameters;\nvarying vec4 outline_color;\nvarying float outline_thickness;\nvarying vec4 shadow_color;\nvarying vec2 shadow_offset;\nvoid unpackMsdfParams() {\n\tvec3 little = mod(vertex_outlineParameters, 256.);\n\tvec3 big = (vertex_outlineParameters - little) / 256.;\n\toutline_color.rb = little.xy / 255.;\n\toutline_color.ga = big.xy / 255.;\n\toutline_thickness = little.z / 255. * 0.2;\n\tlittle = mod(vertex_shadowParameters, 256.);\n\tbig = (vertex_shadowParameters - little) / 256.;\n\tshadow_color.rb = little.xy / 255.;\n\tshadow_color.ga = big.xy / 255.;\n\tshadow_offset = (vec2(little.z, big.z) / 127. - 1.) * 0.005;\n}\n`;\n\nvar normalVS = `\n#ifdef MORPHING_TEXTURE_BASED_NORMAL\nuniform highp sampler2D morphNormalTex;\n#endif\nvec3 getNormal() {\n\t#ifdef SKIN\n\tdNormalMatrix = mat3(dModelMatrix[0].xyz, dModelMatrix[1].xyz, dModelMatrix[2].xyz);\n\t#elif defined(INSTANCING)\n\tdNormalMatrix = mat3(instance_line1.xyz, instance_line2.xyz, instance_line3.xyz);\n\t#else\n\tdNormalMatrix = matrix_normal;\n\t#endif\n\tvec3 tempNormal = vertex_normal;\n\t#ifdef MORPHING\n\t#ifdef MORPHING_NRM03\n\ttempNormal += morph_weights_a[0] * morph_nrm0;\n\ttempNormal += morph_weights_a[1] * morph_nrm1;\n\ttempNormal += morph_weights_a[2] * morph_nrm2;\n\ttempNormal += morph_weights_a[3] * morph_nrm3;\n\t#endif\n\t#ifdef MORPHING_NRM47\n\ttempNormal += morph_weights_b[0] * morph_nrm4;\n\ttempNormal += morph_weights_b[1] * morph_nrm5;\n\ttempNormal += morph_weights_b[2] * morph_nrm6;\n\ttempNormal += morph_weights_b[3] * morph_nrm7;\n\t#endif\n\t#endif\n\t#ifdef MORPHING_TEXTURE_BASED_NORMAL\n\t\t#ifdef WEBGPU\n\t\t\tivec2 morphUV = getTextureMorphCoords();\n\t\t\tvec3 morphNormal = texelFetch(morphNormalTex, ivec2(morphUV), 0).xyz;\n\t\t#else\n\t\t\tvec2 morphUV = getTextureMorphCoords();\n\t\t\tvec3 morphNormal = texture2D(morphNormalTex, morphUV).xyz;\n\t\t#endif\n\ttempNormal += morphNormal;\n\t#endif\n\treturn normalize(dNormalMatrix * tempNormal);\n}\n`;\n\nvar normalDetailMapPS = `\n#ifdef MAPTEXTURE\nuniform float material_normalDetailMapBumpiness;\nvec3 blendNormals(vec3 n1, vec3 n2) {\n\tn1 += vec3(0, 0, 1);\n\tn2 *= vec3(-1, -1, 1);\n\treturn n1 * dot(n1, n2) / n1.z - n2;\n}\n#endif\nvec3 addNormalDetail(vec3 normalMap) {\n#ifdef MAPTEXTURE\n\tvec3 normalDetailMap = unpackNormal(texture2DBias($SAMPLER, $UV, textureBias));\n\tnormalDetailMap = mix(vec3(0.0, 0.0, 1.0), normalDetailMap, material_normalDetailMapBumpiness);\n\treturn blendNormals(normalMap, normalDetailMap);\n#else\n\treturn normalMap;\n#endif\n}\n`;\n\nvar normalInstancedVS = `\nvec3 getNormal() {\n\tdNormalMatrix = mat3(instance_line1.xyz, instance_line2.xyz, instance_line3.xyz);\n\treturn normalize(dNormalMatrix * vertex_normal);\n}\n`;\n\nvar normalMapPS = `\n#ifdef MAPTEXTURE\nuniform float material_bumpiness;\n#endif\nvoid getNormal() {\n#ifdef MAPTEXTURE\n\tvec3 normalMap = unpackNormal(texture2DBias($SAMPLER, $UV, textureBias));\n\tnormalMap = mix(vec3(0.0, 0.0, 1.0), normalMap, material_bumpiness);\n\tdNormalW = normalize(dTBN * addNormalDetail(normalMap));\n#else\n\tdNormalW = dVertexNormalW;\n#endif\n}\n`;\n\nvar normalSkinnedVS = `\nvec3 getNormal() {\n\tdNormalMatrix = mat3(dModelMatrix[0].xyz, dModelMatrix[1].xyz, dModelMatrix[2].xyz);\n\treturn normalize(dNormalMatrix * vertex_normal);\n}\n`;\n\nvar normalXYPS = `\nvec3 unpackNormal(vec4 nmap) {\n\tvec3 normal;\n\tnormal.xy = nmap.wy * 2.0 - 1.0;\n\tnormal.z = sqrt(1.0 - saturate(dot(normal.xy, normal.xy)));\n\treturn normal;\n}\n`;\n\nvar normalXYZPS = `\nvec3 unpackNormal(vec4 nmap) {\n\treturn nmap.xyz * 2.0 - 1.0;\n}\n`;\n\nvar opacityPS = `\n#ifdef MAPFLOAT\nuniform float material_opacity;\n#endif\nvoid getOpacity() {\n\tdAlpha = 1.0;\n\t#ifdef MAPFLOAT\n\tdAlpha *= material_opacity;\n\t#endif\n\t#ifdef MAPTEXTURE\n\tdAlpha *= texture2DBias($SAMPLER, $UV, textureBias).$CH;\n\t#endif\n\t#ifdef MAPVERTEX\n\tdAlpha *= clamp(vVertexColor.$VC, 0.0, 1.0);\n\t#endif\n}\n`;\n\nvar opacityDitherPS = `\nuniform vec4 blueNoiseJitter;\n#ifdef DITHER_BLUENOISE\n\tuniform sampler2D blueNoiseTex32;\n#endif\nvoid opacityDither(float alpha, float id) {\n\t#ifdef DITHER_BAYER8\n\t\tfloat noise = bayer8(floor(mod(gl_FragCoord.xy + blueNoiseJitter.xy + id, 8.0))) / 64.0;\n\t#else\n\t\t#ifdef DITHER_BLUENOISE\n\t\t\tvec2 uv = fract(gl_FragCoord.xy / 32.0 + blueNoiseJitter.xy + id);\n\t\t\tfloat noise = texture2DLodEXT(blueNoiseTex32, uv, 0.0).y;\n\t\t#endif\n\t\t#ifdef DITHER_IGNNOISE\n\t\t\tvec3 magic = vec3(0.06711056, 0.00583715, 52.9829189);\n\t\t\tfloat noise = fract(magic.z * fract(dot(gl_FragCoord.xy + blueNoiseJitter.xy + id, magic.xy)));\n\t\t#endif\n\t#endif\n\tif (alpha < noise)\n\t\tdiscard;\n}\n`;\n\nvar outputPS = `\n`;\n\nvar outputAlphaPS = `\ngl_FragColor.a = litArgs_opacity;\n`;\n\nvar outputAlphaOpaquePS = `\n\tgl_FragColor.a = 1.0;\n`;\n\nvar outputAlphaPremulPS = `\ngl_FragColor.rgb *= litArgs_opacity;\ngl_FragColor.a = litArgs_opacity;\n`;\n\nvar outputTex2DPS = `\nvarying vec2 vUv0;\nuniform sampler2D source;\nvoid main(void) {\n\tgl_FragColor = texture2D(source, vUv0);\n}\n`;\n\nvar packDepthPS = `\nvec4 packFloat(float depth) {\n\tconst vec4 bit_shift = vec4(256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0);\n\tconst vec4 bit_mask  = vec4(0.0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0);\n\tvec4 res = mod(depth * bit_shift * vec4(255), vec4(256) ) / vec4(255);\n\tres -= res.xxyz * bit_mask;\n\treturn res;\n}\n`;\n\nvar sheenPS = `\n#ifdef MAPCOLOR\nuniform vec3 material_sheen;\n#endif\nvoid getSheen() {\n\tvec3 sheenColor = vec3(1, 1, 1);\n\t#ifdef MAPCOLOR\n\tsheenColor *= material_sheen;\n\t#endif\n\t#ifdef MAPTEXTURE\n\tsheenColor *= $DECODE(texture2DBias($SAMPLER, $UV, textureBias)).$CH;\n\t#endif\n\t#ifdef MAPVERTEX\n\tsheenColor *= saturate(vVertexColor.$VC);\n\t#endif\n\tsSpecularity = sheenColor;\n}\n`;\n\nvar sheenGlossPS = `\n#ifdef MAPFLOAT\nuniform float material_sheenGloss;\n#endif\nvoid getSheenGlossiness() {\n\tfloat sheenGlossiness = 1.0;\n\t#ifdef MAPFLOAT\n\tsheenGlossiness *= material_sheenGloss;\n\t#endif\n\t#ifdef MAPTEXTURE\n\tsheenGlossiness *= texture2DBias($SAMPLER, $UV, textureBias).$CH;\n\t#endif\n\t#ifdef MAPVERTEX\n\tsheenGlossiness *= saturate(vVertexColor.$VC);\n\t#endif\n\t#ifdef MAPINVERT\n\tsheenGlossiness = 1.0 - sheenGlossiness;\n\t#endif\n\tsheenGlossiness += 0.0000001;\n\tsGlossiness = sheenGlossiness;\n}\n`;\n\nvar parallaxPS = `\nuniform float material_heightMapFactor;\nvoid getParallax() {\n\tfloat parallaxScale = material_heightMapFactor;\n\tfloat height = texture2DBias($SAMPLER, $UV, textureBias).$CH;\n\theight = height * parallaxScale - parallaxScale*0.5;\n\tvec3 viewDirT = dViewDirW * dTBN;\n\tviewDirT.z += 0.42;\n\tdUvOffset = height * (viewDirT.xy / viewDirT.z);\n}\n`;\n\nvar particlePS = `\nvarying vec4 texCoordsAlphaLife;\nuniform sampler2D colorMap;\nuniform sampler2D colorParam;\nuniform float graphSampleSize;\nuniform float graphNumSamples;\n#ifndef CAMERAPLANES\n#define CAMERAPLANES\nuniform vec4 camera_params;\n#endif\nuniform float softening;\nuniform float colorMult;\nfloat saturate(float x) {\n\treturn clamp(x, 0.0, 1.0);\n}\n#ifndef UNPACKFLOAT\n#define UNPACKFLOAT\nfloat unpackFloat(vec4 rgbaDepth) {\n\tconst vec4 bitShift = vec4(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);\n\tfloat depth = dot(rgbaDepth, bitShift);\n\treturn depth;\n}\n#endif\nvoid main(void) {\n\tvec4 tex  = gammaCorrectInput(texture2D(colorMap, vec2(texCoordsAlphaLife.x, 1.0 - texCoordsAlphaLife.y)));\n\tvec4 ramp = gammaCorrectInput(texture2D(colorParam, vec2(texCoordsAlphaLife.w, 0.0)));\n\tramp.rgb *= colorMult;\n\tramp.a += texCoordsAlphaLife.z;\n\tvec3 rgb = tex.rgb * ramp.rgb;\n\tfloat a  = tex.a * ramp.a;\n`;\n\nvar particleVS = `\nvec3 unpack3NFloats(float src) {\n\tfloat r = fract(src);\n\tfloat g = fract(src * 256.0);\n\tfloat b = fract(src * 65536.0);\n\treturn vec3(r, g, b);\n}\nfloat saturate(float x) {\n\treturn clamp(x, 0.0, 1.0);\n}\nvec4 tex1Dlod_lerp(TEXTURE_ACCEPT_HIGHP(tex), vec2 tc) {\n\treturn mix( texture2D(tex,tc), texture2D(tex,tc + graphSampleSize), fract(tc.x*graphNumSamples) );\n}\nvec4 tex1Dlod_lerp(TEXTURE_ACCEPT_HIGHP(tex), vec2 tc, out vec3 w) {\n\tvec4 a = texture2D(tex,tc);\n\tvec4 b = texture2D(tex,tc + graphSampleSize);\n\tfloat c = fract(tc.x*graphNumSamples);\n\tvec3 unpackedA = unpack3NFloats(a.w);\n\tvec3 unpackedB = unpack3NFloats(b.w);\n\tw = mix(unpackedA, unpackedB, c);\n\treturn mix(a, b, c);\n}\nvec2 rotate(vec2 quadXY, float pRotation, out mat2 rotMatrix) {\n\tfloat c = cos(pRotation);\n\tfloat s = sin(pRotation);\n\tmat2 m = mat2(c, -s, s, c);\n\trotMatrix = m;\n\treturn m * quadXY;\n}\nvec3 billboard(vec3 InstanceCoords, vec2 quadXY) {\n\t#ifdef SCREEN_SPACE\n\t\tvec3 pos = vec3(-1, 0, 0) * quadXY.x + vec3(0, -1, 0) * quadXY.y;\n\t#else\n\t\tvec3 pos = -matrix_viewInverse[0].xyz * quadXY.x + -matrix_viewInverse[1].xyz * quadXY.y;\n\t#endif\n\treturn pos;\n}\nvec3 customFace(vec3 InstanceCoords, vec2 quadXY) {\n\tvec3 pos = faceTangent * quadXY.x + faceBinorm * quadXY.y;\n\treturn pos;\n}\nvec2 safeNormalize(vec2 v) {\n\tfloat l = length(v);\n\treturn (l > 1e-06) ? v / l : v;\n}\nvoid main(void) {\n\tvec3 meshLocalPos = particle_vertexData.xyz;\n\tfloat id = floor(particle_vertexData.w);\n\tfloat rndFactor = fract(sin(id + 1.0 + seed));\n\tvec3 rndFactor3 = vec3(rndFactor, fract(rndFactor*10.0), fract(rndFactor*100.0));\n\tfloat uv = id / numParticlesPot;\n\treadInput(uv);\n#ifdef LOCAL_SPACE\n\tinVel = mat3(matrix_model) * inVel;\n#endif\n\tvec2 velocityV = safeNormalize((mat3(matrix_view) * inVel).xy);\n\tfloat particleLifetime = lifetime;\n\tif (inLife <= 0.0 || inLife > particleLifetime || !inShow) meshLocalPos = vec3(0.0);\n\tvec2 quadXY = meshLocalPos.xy;\n\tfloat nlife = clamp(inLife / particleLifetime, 0.0, 1.0);\n\tvec3 paramDiv;\n\tvec4 params = tex1Dlod_lerp(TEXTURE_PASS(internalTex2), vec2(nlife, 0), paramDiv);\n\tfloat scale = params.y;\n\tfloat scaleDiv = paramDiv.x;\n\tfloat alphaDiv = paramDiv.z;\n\tscale += (scaleDiv * 2.0 - 1.0) * scaleDivMult * fract(rndFactor*10000.0);\n#ifndef USE_MESH\n\ttexCoordsAlphaLife = vec4(quadXY * -0.5 + 0.5, (alphaDiv * 2.0 - 1.0) * alphaDivMult * fract(rndFactor*1000.0), nlife);\n#else\n\ttexCoordsAlphaLife = vec4(particle_uv, (alphaDiv * 2.0 - 1.0) * alphaDivMult * fract(rndFactor*1000.0), nlife);\n#endif\n\tvec3 particlePos = inPos;\n\tvec3 particlePosMoved = vec3(0.0);\n\tmat2 rotMatrix;\n`;\n\nvar particleAnimFrameClampVS = `\n\tfloat animFrame = min(floor(texCoordsAlphaLife.w * animTexParams.y) + animTexParams.x, animTexParams.z);\n`;\n\nvar particleAnimFrameLoopVS = `\n\tfloat animFrame = floor(mod(texCoordsAlphaLife.w * animTexParams.y + animTexParams.x, animTexParams.z + 1.0));\n`;\n\nvar particleAnimTexVS = `\n\tfloat animationIndex;\n\tif (animTexIndexParams.y == 1.0) {\n\t\tanimationIndex = floor((animTexParams.w + 1.0) * rndFactor3.z) * (animTexParams.z + 1.0);\n\t} else {\n\t\tanimationIndex = animTexIndexParams.x * (animTexParams.z + 1.0);\n\t}\n\tfloat atlasX = (animationIndex + animFrame) * animTexTilesParams.x;\n\tfloat atlasY = 1.0 - floor(atlasX + 1.0) * animTexTilesParams.y;\n\tatlasX = fract(atlasX);\n\ttexCoordsAlphaLife.xy *= animTexTilesParams.xy;\n\ttexCoordsAlphaLife.xy += vec2(atlasX, atlasY);\n`;\n\nvar particleInputFloatPS = `\nvoid readInput(float uv) {\n\tvec4 tex = texture2D(particleTexIN, vec2(uv, 0.25));\n\tvec4 tex2 = texture2D(particleTexIN, vec2(uv, 0.75));\n\tinPos = tex.xyz;\n\tinVel = tex2.xyz;\n\tinAngle = (tex.w < 0.0? -tex.w : tex.w) - 1000.0;\n\tinShow = tex.w >= 0.0;\n\tinLife = tex2.w;\n}\n`;\n\nvar particleInputRgba8PS = `\n#define PI2 6.283185307179586\nuniform vec3 inBoundsSize;\nuniform vec3 inBoundsCenter;\nuniform float maxVel;\nfloat decodeFloatRG(vec2 rg) {\n\treturn rg.y*(1.0/255.0) + rg.x;\n}\nfloat decodeFloatRGBA( vec4 rgba ) {\n\treturn dot( rgba, vec4(1.0, 1.0/255.0, 1.0/65025.0, 1.0/160581375.0) );\n}\nvoid readInput(float uv) {\n\tvec4 tex0 = texture2D(particleTexIN, vec2(uv, 0.125));\n\tvec4 tex1 = texture2D(particleTexIN, vec2(uv, 0.375));\n\tvec4 tex2 = texture2D(particleTexIN, vec2(uv, 0.625));\n\tvec4 tex3 = texture2D(particleTexIN, vec2(uv, 0.875));\n\tinPos = vec3(decodeFloatRG(tex0.rg), decodeFloatRG(tex0.ba), decodeFloatRG(tex1.rg));\n\tinPos = (inPos - vec3(0.5)) * inBoundsSize + inBoundsCenter;\n\tinVel = tex2.xyz;\n\tinVel = (inVel - vec3(0.5)) * maxVel;\n\tinAngle = decodeFloatRG(tex1.ba) * PI2;\n\tinShow = tex2.a > 0.5;\n\tinLife = decodeFloatRGBA(tex3);\n\tfloat maxNegLife = max(lifetime, (numParticles - 1.0) * (rate+rateDiv));\n\tfloat maxPosLife = lifetime+1.0;\n\tinLife = inLife * (maxNegLife + maxPosLife) - maxNegLife;\n}\n`;\n\nvar particleOutputFloatPS = `\nvoid writeOutput() {\n\tif (gl_FragCoord.y<1.0) {\n\t\tgl_FragColor = vec4(outPos, (outAngle + 1000.0) * visMode);\n\t} else {\n\t\tgl_FragColor = vec4(outVel, outLife);\n\t}\n}\n`;\n\nvar particleOutputRgba8PS = `\nuniform vec3 outBoundsMul;\nuniform vec3 outBoundsAdd;\nvec2 encodeFloatRG( float v ) {\n\tvec2 enc = vec2(1.0, 255.0) * v;\n\tenc = fract(enc);\n\tenc -= enc.yy * vec2(1.0/255.0, 1.0/255.0);\n\treturn enc;\n}\nvec4 encodeFloatRGBA( float v ) {\n\tvec4 enc = vec4(1.0, 255.0, 65025.0, 160581375.0) * v;\n\tenc = fract(enc);\n\tenc -= enc.yzww * vec4(1.0/255.0,1.0/255.0,1.0/255.0,0.0);\n\treturn enc;\n}\nvoid writeOutput() {\n\toutPos = outPos * outBoundsMul + outBoundsAdd;\n\toutAngle = fract(outAngle / PI2);\n\toutVel = (outVel / maxVel) + vec3(0.5);\n\tfloat maxNegLife = max(lifetime, (numParticles - 1.0) * (rate+rateDiv));\n\tfloat maxPosLife = lifetime+1.0;\n\toutLife = (outLife + maxNegLife) / (maxNegLife + maxPosLife);\n\tif (gl_FragCoord.y < 1.0) {\n\t\tgl_FragColor = vec4(encodeFloatRG(outPos.x), encodeFloatRG(outPos.y));\n\t} else if (gl_FragCoord.y < 2.0) {\n\t\tgl_FragColor = vec4(encodeFloatRG(outPos.z), encodeFloatRG(outAngle));\n\t} else if (gl_FragCoord.y < 3.0) {\n\t\tgl_FragColor = vec4(outVel, visMode*0.5+0.5);\n\t} else {\n\t\tgl_FragColor = encodeFloatRGBA(outLife);\n\t}\n}\n`;\n\nvar particleUpdaterAABBPS = `\nuniform mat3 spawnBounds;\nuniform vec3 spawnPosInnerRatio;\nvec3 calcSpawnPosition(vec3 inBounds, float rndFactor) {\n\tvec3 pos = inBounds - vec3(0.5);\n\tvec3 posAbs = abs(pos);\n\tvec3 maxPos = vec3(max(posAbs.x, max(posAbs.y, posAbs.z)));\n\tvec3 edge = maxPos + (vec3(0.5) - maxPos) * spawnPosInnerRatio;\n\tpos.x = edge.x * (maxPos.x == posAbs.x ? sign(pos.x) : 2.0 * pos.x);\n\tpos.y = edge.y * (maxPos.y == posAbs.y ? sign(pos.y) : 2.0 * pos.y);\n\tpos.z = edge.z * (maxPos.z == posAbs.z ? sign(pos.z) : 2.0 * pos.z);\n#ifndef LOCAL_SPACE\n\treturn emitterPos + spawnBounds * pos;\n#else\n\treturn spawnBounds * pos;\n#endif\n}\nvoid addInitialVelocity(inout vec3 localVelocity, vec3 inBounds) {\n\tlocalVelocity -= vec3(0, 0, initialVelocity);\n}\n`;\n\nvar particleUpdaterEndPS = `\n\twriteOutput();\n}\n`;\n\nvar particleUpdaterInitPS = `\nvarying vec2 vUv0;\nuniform highp sampler2D particleTexIN;\nuniform highp sampler2D internalTex0;\nuniform highp sampler2D internalTex1;\nuniform highp sampler2D internalTex2;\nuniform highp sampler2D internalTex3;\nuniform mat3 emitterMatrix;\nuniform mat3 emitterMatrixInv;\nuniform vec3 emitterScale;\nuniform vec3 emitterPos;\nuniform vec3 frameRandom;\nuniform vec3 localVelocityDivMult;\nuniform vec3 velocityDivMult;\nuniform float delta;\nuniform float rate;\nuniform float rateDiv;\nuniform float lifetime;\nuniform float numParticles;\nuniform float rotSpeedDivMult;\nuniform float radialSpeedDivMult;\nuniform float seed;\nuniform float startAngle;\nuniform float startAngle2;\nuniform float initialVelocity;\nuniform float graphSampleSize;\nuniform float graphNumSamples;\nvec3 inPos;\nvec3 inVel;\nfloat inAngle;\nbool inShow;\nfloat inLife;\nfloat visMode;\nvec3 outPos;\nvec3 outVel;\nfloat outAngle;\nbool outShow;\nfloat outLife;\n`;\n\nvar particleUpdaterNoRespawnPS = `\n\tif (outLife >= lifetime) {\n\t\toutLife -= max(lifetime, (numParticles - 1.0) * particleRate);\n\t\tvisMode = -1.0;\n\t}\n`;\n\nvar particleUpdaterOnStopPS = `\n\tvisMode = outLife < 0.0? -1.0: visMode;\n`;\n\nvar particleUpdaterRespawnPS = `\n\tif (outLife >= lifetime) {\n\t\toutLife -= max(lifetime, (numParticles - 1.0) * particleRate);\n\t\tvisMode = 1.0;\n\t}\n\tvisMode = outLife < 0.0? 1.0: visMode;\n`;\n\nvar particleUpdaterSpherePS = `\nuniform float spawnBoundsSphere;\nuniform float spawnBoundsSphereInnerRatio;\nvec3 calcSpawnPosition(vec3 inBounds, float rndFactor) {\n\tfloat rnd4 = fract(rndFactor * 1000.0);\n\tvec3 norm = normalize(inBounds.xyz - vec3(0.5));\n\tfloat r = rnd4 * (1.0 - spawnBoundsSphereInnerRatio) + spawnBoundsSphereInnerRatio;\n#ifndef LOCAL_SPACE\n\treturn emitterPos + norm * r * spawnBoundsSphere;\n#else\n\treturn norm * r * spawnBoundsSphere;\n#endif\n}\nvoid addInitialVelocity(inout vec3 localVelocity, vec3 inBounds) {\n\tlocalVelocity += normalize(inBounds - vec3(0.5)) * initialVelocity;\n}\n`;\n\nvar particleUpdaterStartPS = `\nfloat saturate(float x) {\n\treturn clamp(x, 0.0, 1.0);\n}\nvec3 unpack3NFloats(float src) {\n\tfloat r = fract(src);\n\tfloat g = fract(src * 256.0);\n\tfloat b = fract(src * 65536.0);\n\treturn vec3(r, g, b);\n}\nvec3 tex1Dlod_lerp(TEXTURE_ACCEPT_HIGHP(tex), vec2 tc, out vec3 w) {\n\tvec4 a = texture2D(tex, tc);\n\tvec4 b = texture2D(tex, tc + graphSampleSize);\n\tfloat c = fract(tc.x * graphNumSamples);\n\tvec3 unpackedA = unpack3NFloats(a.w);\n\tvec3 unpackedB = unpack3NFloats(b.w);\n\tw = mix(unpackedA, unpackedB, c);\n\treturn mix(a.xyz, b.xyz, c);\n}\n#define HASHSCALE4 vec4(1031, .1030, .0973, .1099)\nvec4 hash41(float p) {\n\tvec4 p4 = fract(vec4(p) * HASHSCALE4);\n\tp4 += dot(p4, p4.wzxy+19.19);\n\treturn fract(vec4((p4.x + p4.y)*p4.z, (p4.x + p4.z)*p4.y, (p4.y + p4.z)*p4.w, (p4.z + p4.w)*p4.x));\n}\nvoid main(void) {\n\tif (gl_FragCoord.x > numParticles) discard;\n\treadInput(vUv0.x);\n\tvisMode = inShow? 1.0 : -1.0;\n\tvec4 rndFactor = hash41(gl_FragCoord.x + seed);\n\tfloat particleRate = rate + rateDiv * rndFactor.x;\n\toutLife = inLife + delta;\n\tfloat nlife = clamp(outLife / lifetime, 0.0, 1.0);\n\tvec3 localVelocityDiv;\n\tvec3 velocityDiv;\n\tvec3 paramDiv;\n\tvec3 localVelocity = tex1Dlod_lerp(TEXTURE_PASS(internalTex0), vec2(nlife, 0), localVelocityDiv);\n\tvec3 velocity =\t  tex1Dlod_lerp(TEXTURE_PASS(internalTex1), vec2(nlife, 0), velocityDiv);\n\tvec3 params =\t\ttex1Dlod_lerp(TEXTURE_PASS(internalTex2), vec2(nlife, 0), paramDiv);\n\tfloat rotSpeed = params.x;\n\tfloat rotSpeedDiv = paramDiv.y;\n\tvec3 radialParams = tex1Dlod_lerp(TEXTURE_PASS(internalTex3), vec2(nlife, 0), paramDiv);\n\tfloat radialSpeed = radialParams.x;\n\tfloat radialSpeedDiv = radialParams.y;\n\tbool respawn = inLife <= 0.0 || outLife >= lifetime;\n\tinPos = respawn ? calcSpawnPosition(rndFactor.xyz, rndFactor.x) : inPos;\n\tinAngle = respawn ? mix(startAngle, startAngle2, rndFactor.x) : inAngle;\n#ifndef LOCAL_SPACE\n\tvec3 radialVel = inPos - emitterPos;\n#else\n\tvec3 radialVel = inPos;\n#endif\n\tradialVel = (dot(radialVel, radialVel) > 1.0E-8) ? radialSpeed * normalize(radialVel) : vec3(0.0);\n\tradialVel += (radialSpeedDiv * vec3(2.0) - vec3(1.0)) * radialSpeedDivMult * rndFactor.xyz;\n\tlocalVelocity +=\t(localVelocityDiv * vec3(2.0) - vec3(1.0)) * localVelocityDivMult * rndFactor.xyz;\n\tvelocity +=\t\t (velocityDiv * vec3(2.0) - vec3(1.0)) * velocityDivMult * rndFactor.xyz;\n\trotSpeed +=\t\t (rotSpeedDiv * 2.0 - 1.0) * rotSpeedDivMult * rndFactor.y;\n\taddInitialVelocity(localVelocity, rndFactor.xyz);\n#ifndef LOCAL_SPACE\n\toutVel = emitterMatrix * localVelocity + (radialVel + velocity) * emitterScale;\n#else\n\toutVel = (localVelocity + radialVel) / emitterScale + emitterMatrixInv * velocity;\n#endif\n\toutPos = inPos + outVel * delta;\n\toutAngle = inAngle + rotSpeed * delta;\n`;\n\nvar particle_billboardVS = `\n\tquadXY = rotate(quadXY, inAngle, rotMatrix);\n\tvec3 localPos = billboard(particlePos, quadXY);\n`;\n\nvar particle_blendAddPS = `\n\tdBlendModeFogFactor = 0.0;\n\trgb *= saturate(gammaCorrectInput(max(a, 0.0)));\n\tif ((rgb.r + rgb.g + rgb.b) < 0.000001) discard;\n`;\n\nvar particle_blendMultiplyPS = `\n\trgb = mix(vec3(1.0), rgb, vec3(a));\n\tif (rgb.r + rgb.g + rgb.b > 2.99) discard;\n`;\n\nvar particle_blendNormalPS = `\n\tif (a < 0.01) discard;\n`;\n\nvar particle_cpuVS = `\nattribute vec4 particle_vertexData;\nattribute vec4 particle_vertexData2;\nattribute vec4 particle_vertexData3;\nattribute float particle_vertexData4;\n#ifndef USE_MESH\nattribute vec2 particle_vertexData5;\n#else\nattribute vec4 particle_vertexData5;\n#endif\nuniform mat4 matrix_viewProjection;\nuniform mat4 matrix_model;\n#ifndef VIEWMATRIX\n#define VIEWMATRIX\nuniform mat4 matrix_view;\n#endif\nuniform mat3 matrix_normal;\nuniform mat4 matrix_viewInverse;\nuniform float numParticles;\nuniform float lifetime;\nuniform float stretch;\nuniform float seed;\nuniform vec3 wrapBounds;\nuniform vec3 emitterScale;\nuniform vec3 faceTangent;\nuniform vec3 faceBinorm;\n#ifdef PARTICLE_GPU\n\tuniform highp sampler2D internalTex0;\n\tuniform highp sampler2D internalTex1;\n\tuniform highp sampler2D internalTex2;\n#endif\nuniform vec3 emitterPos;\nvarying vec4 texCoordsAlphaLife;\nvec2 rotate(vec2 quadXY, float pRotation, out mat2 rotMatrix)\n{\n\tfloat c = cos(pRotation);\n\tfloat s = sin(pRotation);\n\tmat2 m = mat2(c, -s, s, c);\n\trotMatrix = m;\n\treturn m * quadXY;\n}\nvec3 billboard(vec3 InstanceCoords, vec2 quadXY)\n{\n\tvec3 pos = -matrix_viewInverse[0].xyz * quadXY.x + -matrix_viewInverse[1].xyz * quadXY.y;\n\treturn pos;\n}\nvec3 customFace(vec3 InstanceCoords, vec2 quadXY)\n{\n\tvec3 pos = faceTangent * quadXY.x + faceBinorm * quadXY.y;\n\treturn pos;\n}\nvoid main(void)\n{\n\tvec3 particlePos = particle_vertexData.xyz;\n\tvec3 inPos = particlePos;\n\tvec3 vertPos = particle_vertexData3.xyz;\n\tvec3 inVel = vec3(particle_vertexData2.w, particle_vertexData3.w, particle_vertexData5.x);\n\tfloat id = floor(particle_vertexData4);\n\tfloat rndFactor = fract(sin(id + 1.0 + seed));\n\tvec3 rndFactor3 = vec3(rndFactor, fract(rndFactor*10.0), fract(rndFactor*100.0));\n#ifdef LOCAL_SPACE\n\tinVel = mat3(matrix_model) * inVel;\n#endif\n\tvec2 velocityV = normalize((mat3(matrix_view) * inVel).xy);\n\tvec2 quadXY = vertPos.xy;\n#ifdef USE_MESH\n\ttexCoordsAlphaLife = vec4(particle_vertexData5.zw, particle_vertexData2.z, particle_vertexData.w);\n#else\n\ttexCoordsAlphaLife = vec4(quadXY * -0.5 + 0.5, particle_vertexData2.z, particle_vertexData.w);\n#endif\n\tmat2 rotMatrix;\n\tfloat inAngle = particle_vertexData2.x;\n\tvec3 particlePosMoved = vec3(0.0);\n\tvec3 meshLocalPos = particle_vertexData3.xyz;\n`;\n\nvar particle_cpu_endVS = `\n\tlocalPos *= particle_vertexData2.y * emitterScale;\n\tlocalPos += particlePos;\n\tgl_Position = matrix_viewProjection * vec4(localPos, 1.0);\n`;\n\nvar particle_customFaceVS = `\n\tquadXY = rotate(quadXY, inAngle, rotMatrix);\n\tvec3 localPos = customFace(particlePos, quadXY);\n`;\n\nvar particle_endPS = `\n\trgb = addFog(rgb);\n\trgb = toneMap(rgb);\n\trgb = gammaCorrectOutput(rgb);\n\tgl_FragColor = vec4(rgb, a);\n}\n`;\n\nvar particle_endVS = `\n\tlocalPos *= scale * emitterScale;\n\tlocalPos += particlePos;\n\t#ifdef SCREEN_SPACE\n\tgl_Position = vec4(localPos.x, localPos.y, 0.0, 1.0);\n\t#else\n\tgl_Position = matrix_viewProjection * vec4(localPos.xyz, 1.0);\n\t#endif\n`;\n\nvar particle_halflambertPS = `\n\tvec3 negNormal = normal*0.5+0.5;\n\tvec3 posNormal = -normal*0.5+0.5;\n\tnegNormal *= negNormal;\n\tposNormal *= posNormal;\n`;\n\nvar particle_initVS = `\nattribute vec4 particle_vertexData;\n#ifdef USE_MESH\nattribute vec2 particle_uv;\n#endif\nuniform mat4 matrix_viewProjection;\nuniform mat4 matrix_model;\nuniform mat3 matrix_normal;\nuniform mat4 matrix_viewInverse;\n#ifndef VIEWMATRIX\n#define VIEWMATRIX\nuniform mat4 matrix_view;\n#endif\nuniform float numParticles;\nuniform float numParticlesPot;\nuniform float graphSampleSize;\nuniform float graphNumSamples;\nuniform float stretch;\nuniform vec3 wrapBounds;\nuniform vec3 emitterScale;\nuniform vec3 emitterPos;\nuniform vec3 faceTangent;\nuniform vec3 faceBinorm;\nuniform float rate;\nuniform float rateDiv;\nuniform float lifetime;\nuniform float deltaRandomnessStatic;\nuniform float scaleDivMult;\nuniform float alphaDivMult;\nuniform float seed;\nuniform float delta;\nuniform sampler2D particleTexOUT;\nuniform sampler2D particleTexIN;\n#ifdef PARTICLE_GPU\n\tuniform highp sampler2D internalTex0;\n\tuniform highp sampler2D internalTex1;\n\tuniform highp sampler2D internalTex2;\n#endif\n#ifndef CAMERAPLANES\n#define CAMERAPLANES\nuniform vec4 camera_params;\n#endif\nvarying vec4 texCoordsAlphaLife;\nvec3 inPos;\nvec3 inVel;\nfloat inAngle;\nbool inShow;\nfloat inLife;\n`;\n\nvar particle_lambertPS = `\n\tvec3 negNormal = max(normal, vec3(0.0));\n\tvec3 posNormal = max(-normal, vec3(0.0));\n`;\n\nvar particle_lightingPS = `\n\tvec3 light = negNormal.x*lightCube[0] + posNormal.x*lightCube[1] +\n\t\t\t\t\t\tnegNormal.y*lightCube[2] + posNormal.y*lightCube[3] +\n\t\t\t\t\t\tnegNormal.z*lightCube[4] + posNormal.z*lightCube[5];\n\trgb *= light;\n`;\n\nvar particle_localShiftVS = `\n\tparticlePos = (matrix_model * vec4(particlePos, 1.0)).xyz;\n`;\n\nvar particle_meshVS = `\n\tvec3 localPos = meshLocalPos;\n\tlocalPos.xy = rotate(localPos.xy, inAngle, rotMatrix);\n\tlocalPos.yz = rotate(localPos.yz, inAngle, rotMatrix);\n\tbillboard(particlePos, quadXY);\n`;\n\nvar particle_normalVS = `\n\tNormal = normalize(localPos + matrix_viewInverse[2].xyz);\n`;\n\nvar particle_normalMapPS = `\n\tvec3 normalMap = normalize(texture2D(normalMap, vec2(texCoordsAlphaLife.x, 1.0 - texCoordsAlphaLife.y)).xyz * 2.0 - 1.0);\n\tvec3 normal = ParticleMat * normalMap;\n`;\n\nvar particle_pointAlongVS = `\n\tinAngle = atan(velocityV.x, velocityV.y);\n`;\n\nvar particle_softPS = `\n\tfloat depth = getLinearScreenDepth();\n\tfloat particleDepth = vDepth;\n\tfloat depthDiff = saturate(abs(particleDepth - depth) * softening);\n\ta *= depthDiff;\n`;\n\nvar particle_softVS = `\n\tvDepth = getLinearDepth(localPos);\n`;\n\nvar particle_stretchVS = `\n\tvec3 moveDir = inVel * stretch;\n\tvec3 posPrev = particlePos - moveDir;\n\tposPrev += particlePosMoved;\n\tvec2 centerToVertexV = normalize((mat3(matrix_view) * localPos).xy);\n\tfloat interpolation = dot(-velocityV, centerToVertexV) * 0.5 + 0.5;\n\tparticlePos = mix(particlePos, posPrev, interpolation);\n`;\n\nvar particle_TBNVS = `\n\tmat3 rot3 = mat3(rotMatrix[0][0], rotMatrix[0][1], 0.0, rotMatrix[1][0], rotMatrix[1][1], 0.0, 0.0, 0.0, 1.0);\n\tParticleMat = mat3(-matrix_viewInverse[0].xyz, -matrix_viewInverse[1].xyz, matrix_viewInverse[2].xyz) * rot3;\n`;\n\nvar particle_wrapVS = `\n\tvec3 origParticlePos = particlePos;\n\tparticlePos -= matrix_model[3].xyz;\n\tparticlePos = mod(particlePos, wrapBounds) - wrapBounds * 0.5;\n\tparticlePos += matrix_model[3].xyz;\n\tparticlePosMoved = particlePos - origParticlePos;\n`;\n\nvar reflDirPS = `\nvoid getReflDir(vec3 worldNormal, vec3 viewDir, float gloss, mat3 tbn) {\n\tdReflDirW = normalize(-reflect(viewDir, worldNormal));\n}\n`;\n\nvar reflDirAnisoPS = `\nvoid getReflDir(vec3 worldNormal, vec3 viewDir, float gloss, mat3 tbn) {\n\tfloat roughness = sqrt(1.0 - min(gloss, 1.0));\n\tfloat anisotropy = material_anisotropy * roughness;\n\tvec3 anisotropicDirection = anisotropy >= 0.0 ? tbn[1] : tbn[0];\n\tvec3 anisotropicTangent = cross(anisotropicDirection, viewDir);\n\tvec3 anisotropicNormal = cross(anisotropicTangent, anisotropicDirection);\n\tvec3 bentNormal = normalize(mix(normalize(worldNormal), normalize(anisotropicNormal), anisotropy));\n\tdReflDirW = reflect(-viewDir, bentNormal);\n}\n`;\n\nvar reflectionCCPS = `\n#ifdef LIT_CLEARCOAT\nvoid addReflectionCC(vec3 reflDir, float gloss) {\n\tccReflection += calcReflection(reflDir, gloss);\n}\n#endif\n`;\n\nvar reflectionCubePS = `\nuniform samplerCube texture_cubeMap;\nuniform float material_reflectivity;\nvec3 calcReflection(vec3 reflDir, float gloss) {\n\tvec3 lookupVec = fixSeams(cubeMapProject(reflDir));\n\tlookupVec.x *= -1.0;\n\treturn $DECODE(textureCube(texture_cubeMap, lookupVec));\n}\nvoid addReflection(vec3 reflDir, float gloss) {   \n\tdReflection += vec4(calcReflection(reflDir, gloss), material_reflectivity);\n}\n`;\n\nvar reflectionEnvHQPS = `\n#ifndef ENV_ATLAS\n#define ENV_ATLAS\nuniform sampler2D texture_envAtlas;\n#endif\nuniform samplerCube texture_cubeMap;\nuniform float material_reflectivity;\nvec3 calcReflection(vec3 reflDir, float gloss) {\n\tvec3 dir = cubeMapProject(reflDir) * vec3(-1.0, 1.0, 1.0);\n\tvec2 uv = toSphericalUv(dir);\n\tfloat level = saturate(1.0 - gloss) * 5.0;\n\tfloat ilevel = floor(level);\n\tfloat flevel = level - ilevel;\n\tvec3 sharp = $DECODE_CUBEMAP(textureCube(texture_cubeMap, fixSeams(dir)));\n\tvec3 roughA = $DECODE(texture2D(texture_envAtlas, mapRoughnessUv(uv, ilevel)));\n\tvec3 roughB = $DECODE(texture2D(texture_envAtlas, mapRoughnessUv(uv, ilevel + 1.0)));\n\treturn processEnvironment(mix(sharp, mix(roughA, roughB, flevel), min(level, 1.0)));\n}\nvoid addReflection(vec3 reflDir, float gloss) {   \n\tdReflection += vec4(calcReflection(reflDir, gloss), material_reflectivity);\n}\n`;\n\nvar reflectionEnvPS = `\n#ifndef ENV_ATLAS\n#define ENV_ATLAS\nuniform sampler2D texture_envAtlas;\n#endif\nuniform float material_reflectivity;\nfloat shinyMipLevel(vec2 uv) {\n\tvec2 dx = dFdx(uv);\n\tvec2 dy = dFdy(uv);\n\tvec2 uv2 = vec2(fract(uv.x + 0.5), uv.y);\n\tvec2 dx2 = dFdx(uv2);\n\tvec2 dy2 = dFdy(uv2);\n\tfloat maxd = min(max(dot(dx, dx), dot(dy, dy)), max(dot(dx2, dx2), dot(dy2, dy2)));\n\treturn clamp(0.5 * log2(maxd) - 1.0 + textureBias, 0.0, 5.0);\n}\nvec3 calcReflection(vec3 reflDir, float gloss) {\n\tvec3 dir = cubeMapProject(reflDir) * vec3(-1.0, 1.0, 1.0);\n\tvec2 uv = toSphericalUv(dir);\n\tfloat level = saturate(1.0 - gloss) * 5.0;\n\tfloat ilevel = floor(level);\n\tfloat level2 = shinyMipLevel(uv * atlasSize);\n\tfloat ilevel2 = floor(level2);\n\tvec2 uv0, uv1;\n\tfloat weight;\n\tif (ilevel == 0.0) {\n\t\tuv0 = mapShinyUv(uv, ilevel2);\n\t\tuv1 = mapShinyUv(uv, ilevel2 + 1.0);\n\t\tweight = level2 - ilevel2;\n\t} else {\n\t\tuv0 = uv1 = mapRoughnessUv(uv, ilevel);\n\t\tweight = 0.0;\n\t}\n\tvec3 linearA = $DECODE(texture2D(texture_envAtlas, uv0));\n\tvec3 linearB = $DECODE(texture2D(texture_envAtlas, uv1));\n\tvec3 linear0 = mix(linearA, linearB, weight);\n\tvec3 linear1 = $DECODE(texture2D(texture_envAtlas, mapRoughnessUv(uv, ilevel + 1.0)));\n\treturn processEnvironment(mix(linear0, linear1, level - ilevel));\n}\nvoid addReflection(vec3 reflDir, float gloss) {   \n\tdReflection += vec4(calcReflection(reflDir, gloss), material_reflectivity);\n}\n`;\n\nvar reflectionSpherePS = `\n#ifndef VIEWMATRIX\n#define VIEWMATRIX\nuniform mat4 matrix_view;\n#endif\nuniform sampler2D texture_sphereMap;\nuniform float material_reflectivity;\nvec3 calcReflection(vec3 reflDir, float gloss) {\n\tvec3 reflDirV = (mat3(matrix_view) * reflDir).xyz;\n\tfloat m = 2.0 * sqrt( dot(reflDirV.xy, reflDirV.xy) + (reflDirV.z+1.0)*(reflDirV.z+1.0) );\n\tvec2 sphereMapUv = reflDirV.xy / m + 0.5;\n\treturn $DECODE(texture2D(texture_sphereMap, sphereMapUv));\n}\nvoid addReflection(vec3 reflDir, float gloss) {   \n\tdReflection += vec4(calcReflection(reflDir, gloss), material_reflectivity);\n}\n`;\n\nvar reflectionSheenPS = `\nvoid addReflectionSheen(vec3 worldNormal, vec3 viewDir, float gloss) {\n\tfloat NoV = dot(worldNormal, viewDir);\n\tfloat alphaG = gloss * gloss;\n\tfloat a = gloss < 0.25 ? -339.2 * alphaG + 161.4 * gloss - 25.9 : -8.48 * alphaG + 14.3 * gloss - 9.95;\n\tfloat b = gloss < 0.25 ? 44.0 * alphaG - 23.7 * gloss + 3.26 : 1.97 * alphaG - 3.27 * gloss + 0.72;\n\tfloat DG = exp( a * NoV + b ) + ( gloss < 0.25 ? 0.0 : 0.1 * ( gloss - 0.25 ) );\n\tsReflection += calcReflection(worldNormal, 0.0) * saturate(DG);\n}\n`;\n\nvar refractionCubePS = `\nvec3 refract2(vec3 viewVec, vec3 normal, float IOR) {\n\tfloat vn = dot(viewVec, normal);\n\tfloat k = 1.0 - IOR * IOR * (1.0 - vn * vn);\n\tvec3 refrVec = IOR * viewVec - (IOR * vn + sqrt(k)) * normal;\n\treturn refrVec;\n}\nvoid addRefraction(\n\tvec3 worldNormal, \n\tvec3 viewDir, \n\tfloat thickness, \n\tfloat gloss, \n\tvec3 specularity, \n\tvec3 albedo, \n\tfloat transmission,\n\tfloat refractionIndex,\n\tfloat dispersion\n#if defined(LIT_IRIDESCENCE)\n\t, vec3 iridescenceFresnel,\n\tfloat iridescenceIntensity\n#endif \n) {\n\tvec4 tmpRefl = dReflection;\n\tvec3 reflectionDir = refract2(-viewDir, worldNormal, refractionIndex);\n\tdReflection = vec4(0);\n\taddReflection(reflectionDir, gloss);\n\tdDiffuseLight = mix(dDiffuseLight, dReflection.rgb * albedo, transmission);\n\tdReflection = tmpRefl;\n}\n`;\n\nvar refractionDynamicPS = `\nuniform float material_invAttenuationDistance;\nuniform vec3 material_attenuation;\nvec3 evalRefractionColor(vec3 refractionVector, float gloss, float refractionIndex) {\n\tvec4 pointOfRefraction = vec4(vPositionW + refractionVector, 1.0);\n\tvec4 projectionPoint = matrix_viewProjection * pointOfRefraction;\n\tvec2 uv = getGrabScreenPos(projectionPoint);\n\t#ifdef SUPPORTS_TEXLOD\n\t\tfloat iorToRoughness = (1.0 - gloss) * clamp((1.0 / refractionIndex) * 2.0 - 2.0, 0.0, 1.0);\n\t\tfloat refractionLod = log2(uScreenSize.x) * iorToRoughness;\n\t\tvec3 refraction = texture2DLodEXT(uSceneColorMap, uv, refractionLod).rgb;\n\t#else\n\t\tvec3 refraction = texture2D(uSceneColorMap, uv).rgb;\n\t#endif\n\treturn refraction;\n}\nvoid addRefraction(\n\tvec3 worldNormal, \n\tvec3 viewDir, \n\tfloat thickness, \n\tfloat gloss, \n\tvec3 specularity, \n\tvec3 albedo, \n\tfloat transmission,\n\tfloat refractionIndex,\n\tfloat dispersion\n#if defined(LIT_IRIDESCENCE)\n\t, vec3 iridescenceFresnel,\n\tfloat iridescenceIntensity\n#endif\n) {\n\tvec3 modelScale;\n\tmodelScale.x = length(vec3(matrix_model[0].xyz));\n\tmodelScale.y = length(vec3(matrix_model[1].xyz));\n\tmodelScale.z = length(vec3(matrix_model[2].xyz));\n\tvec3 scale = thickness * modelScale;\n\tvec3 refractionVector = normalize(refract(-viewDir, worldNormal, refractionIndex)) * scale;\n\tvec3 refraction = evalRefractionColor(refractionVector, gloss, refractionIndex);\n\t#ifdef DISPERSION\n\t\tfloat halfSpread = (1.0 / refractionIndex - 1.0) * 0.025 * dispersion;\n\t\tfloat refractionIndexR = refractionIndex - halfSpread;\n\t\trefractionVector = normalize(refract(-viewDir, worldNormal, refractionIndexR)) * scale;\n\t\trefraction.r = evalRefractionColor(refractionVector, gloss, refractionIndexR).r;\n\t\tfloat refractionIndexB = refractionIndex + halfSpread;\n\t\trefractionVector = normalize(refract(-viewDir, worldNormal, refractionIndexB)) * scale;\n\t\trefraction.b = evalRefractionColor(refractionVector, gloss, refractionIndexB).b;\n\t#endif\n\tvec3 transmittance;\n\tif (material_invAttenuationDistance != 0.0)\n\t{\n\t\tvec3 attenuation = -log(material_attenuation) * material_invAttenuationDistance;\n\t\ttransmittance = exp(-attenuation * length(refractionVector));\n\t}\n\telse\n\t{\n\t\ttransmittance = refraction;\n\t}\n\tvec3 fresnel = vec3(1.0) - \n\t\tgetFresnel(\n\t\t\tdot(viewDir, worldNormal), \n\t\t\tgloss, \n\t\t\tspecularity\n\t\t#if defined(LIT_IRIDESCENCE)\n\t\t\t, iridescenceFresnel,\n\t\t\tiridescenceIntensity\n\t\t#endif\n\t\t);\n\tdDiffuseLight = mix(dDiffuseLight, refraction * transmittance * fresnel, transmission);\n}\n`;\n\nvar reprojectPS = `\nvarying vec2 vUv0;\n#ifdef CUBEMAP_SOURCE\n\tuniform samplerCube sourceCube;\n#else\n\tuniform sampler2D sourceTex;\n#endif\n#ifdef USE_SAMPLES_TEX\n\tuniform sampler2D samplesTex;\n\tuniform vec2 samplesTexInverseSize;\n#endif\nuniform vec3 params;\nfloat targetFace() { return params.x; }\nfloat sourceCubeSeamScale() { return params.y; }\nfloat targetCubeSeamScale() { return params.z; }\nfloat PI = 3.141592653589793;\nfloat saturate(float x) {\n\treturn clamp(x, 0.0, 1.0);\n}\n${decodePS}\n${encodePS}\nvec3 modifySeams(vec3 dir, float scale) {\n\tvec3 adir = abs(dir);\n\tfloat M = max(max(adir.x, adir.y), adir.z);\n\treturn dir / M * vec3(\n\t\tadir.x == M ? 1.0 : scale,\n\t\tadir.y == M ? 1.0 : scale,\n\t\tadir.z == M ? 1.0 : scale\n\t);\n}\nvec2 toSpherical(vec3 dir) {\n\treturn vec2(dir.xz == vec2(0.0) ? 0.0 : atan(dir.x, dir.z), asin(dir.y));\n}\nvec3 fromSpherical(vec2 uv) {\n\treturn vec3(cos(uv.y) * sin(uv.x),\n\t\t\t\tsin(uv.y),\n\t\t\t\tcos(uv.y) * cos(uv.x));\n}\nvec3 getDirectionEquirect() {\n\treturn fromSpherical((vec2(vUv0.x, 1.0 - vUv0.y) * 2.0 - 1.0) * vec2(PI, PI * 0.5));\n}\nfloat signNotZero(float k){\n\treturn(k >= 0.0) ? 1.0 : -1.0;\n}\nvec2 signNotZero(vec2 v) {\n\treturn vec2(signNotZero(v.x), signNotZero(v.y));\n}\nvec3 octDecode(vec2 o) {\n\tvec3 v = vec3(o.x, 1.0 - abs(o.x) - abs(o.y), o.y);\n\tif (v.y < 0.0) {\n\t\tv.xz = (1.0 - abs(v.zx)) * signNotZero(v.xz);\n\t}\n\treturn normalize(v);\n}\nvec3 getDirectionOctahedral() {\n\treturn octDecode(vec2(vUv0.x, 1.0 - vUv0.y) * 2.0 - 1.0);\n}\nvec2 octEncode(in vec3 v) {\n\tfloat l1norm = abs(v.x) + abs(v.y) + abs(v.z);\n\tvec2 result = v.xz * (1.0 / l1norm);\n\tif (v.y < 0.0) {\n\t\tresult = (1.0 - abs(result.yx)) * signNotZero(result.xy);\n\t}\n\treturn result;\n}\n#ifdef CUBEMAP_SOURCE\n\tvec4 sampleCubemap(vec3 dir) {\n\t\treturn textureCube(sourceCube, modifySeams(dir, 1.0 - sourceCubeSeamScale()));\n\t}\n\tvec4 sampleCubemap(vec2 sph) {\n\treturn sampleCubemap(fromSpherical(sph));\n}\n\tvec4 sampleCubemap(vec3 dir, float mipLevel) {\n\t\treturn textureCubeLodEXT(sourceCube, modifySeams(dir, 1.0 - exp2(mipLevel) * sourceCubeSeamScale()), mipLevel);\n\t}\n\tvec4 sampleCubemap(vec2 sph, float mipLevel) {\n\t\treturn sampleCubemap(fromSpherical(sph), mipLevel);\n\t}\n#else\n\tvec4 sampleEquirect(vec2 sph) {\n\t\tvec2 uv = sph / vec2(PI * 2.0, PI) + 0.5;\n\t\treturn texture2D(sourceTex, vec2(uv.x, 1.0 - uv.y));\n\t}\n\tvec4 sampleEquirect(vec3 dir) {\n\t\treturn sampleEquirect(toSpherical(dir));\n\t}\n\tvec4 sampleEquirect(vec2 sph, float mipLevel) {\n\t\tvec2 uv = sph / vec2(PI * 2.0, PI) + 0.5;\n\t\treturn texture2DLodEXT(sourceTex, vec2(uv.x, 1.0 - uv.y), mipLevel);\n\t}\n\tvec4 sampleEquirect(vec3 dir, float mipLevel) {\n\t\treturn sampleEquirect(toSpherical(dir), mipLevel);\n\t}\n\tvec4 sampleOctahedral(vec3 dir) {\n\t\tvec2 uv = octEncode(dir) * 0.5 + 0.5;\n\t\treturn texture2D(sourceTex, vec2(uv.x, 1.0 - uv.y));\n\t}\n\tvec4 sampleOctahedral(vec2 sph) {\n\t\treturn sampleOctahedral(fromSpherical(sph));\n\t}\n\tvec4 sampleOctahedral(vec3 dir, float mipLevel) {\n\t\tvec2 uv = octEncode(dir) * 0.5 + 0.5;\n\t\treturn texture2DLodEXT(sourceTex, vec2(uv.x, 1.0 - uv.y), mipLevel);\n\t}\n\tvec4 sampleOctahedral(vec2 sph, float mipLevel) {\n\t\treturn sampleOctahedral(fromSpherical(sph), mipLevel);\n\t}\n#endif\nvec3 getDirectionCubemap() {\n\tvec2 st = vUv0 * 2.0 - 1.0;\n\tfloat face = targetFace();\n\tvec3 vec;\n\tif (face == 0.0) {\n\t\tvec = vec3(1, -st.y, -st.x);\n\t} else if (face == 1.0) {\n\t\tvec = vec3(-1, -st.y, st.x);\n\t} else if (face == 2.0) {\n\t\tvec = vec3(st.x, 1, st.y);\n\t} else if (face == 3.0) {\n\t\tvec = vec3(st.x, -1, -st.y);\n\t} else if (face == 4.0) {\n\t\tvec = vec3(st.x, -st.y, 1);\n\t} else {\n\t\tvec = vec3(-st.x, -st.y, -1);\n\t}\n\treturn normalize(modifySeams(vec, 1.0 / (1.0 - targetCubeSeamScale())));\n}\nmat3 matrixFromVector(vec3 n) {\n\tfloat a = 1.0 / (1.0 + n.z);\n\tfloat b = -n.x * n.y * a;\n\tvec3 b1 = vec3(1.0 - n.x * n.x * a, b, -n.x);\n\tvec3 b2 = vec3(b, 1.0 - n.y * n.y * a, -n.y);\n\treturn mat3(b1, b2, n);\n}\nmat3 matrixFromVectorSlow(vec3 n) {\n\tvec3 up = (1.0 - abs(n.y) <= 0.0000001) ? vec3(0.0, 0.0, n.y > 0.0 ? 1.0 : -1.0) : vec3(0.0, 1.0, 0.0);\n\tvec3 x = normalize(cross(up, n));\n\tvec3 y = cross(n, x);\n\treturn mat3(x, y, n);\n}\nvec4 reproject() {\n\tif (NUM_SAMPLES <= 1) {\n\t\treturn ENCODE_FUNC(DECODE_FUNC(SOURCE_FUNC(TARGET_FUNC())));\n\t} else {\n\t\tvec3 t = TARGET_FUNC();\n\t\tvec3 tu = dFdx(t);\n\t\tvec3 tv = dFdy(t);\n\t\tvec3 result = vec3(0.0);\n\t\tfor (float u = 0.0; u < NUM_SAMPLES_SQRT; ++u) {\n\t\t\tfor (float v = 0.0; v < NUM_SAMPLES_SQRT; ++v) {\n\t\t\t\tresult += DECODE_FUNC(SOURCE_FUNC(normalize(t +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttu * (u / NUM_SAMPLES_SQRT - 0.5) +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttv * (v / NUM_SAMPLES_SQRT - 0.5))));\n\t\t\t}\n\t\t}\n\t\treturn ENCODE_FUNC(result / (NUM_SAMPLES_SQRT * NUM_SAMPLES_SQRT));\n\t}\n}\nvec4 unpackFloat = vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0);\n#ifdef USE_SAMPLES_TEX\n\tvoid unpackSample(int i, out vec3 L, out float mipLevel) {\n\t\tfloat u = (float(i * 4) + 0.5) * samplesTexInverseSize.x;\n\t\tfloat v = (floor(u) + 0.5) * samplesTexInverseSize.y;\n\t\tvec4 raw;\n\t\traw.x = dot(texture2D(samplesTex, vec2(u, v)), unpackFloat); u += samplesTexInverseSize.x;\n\t\traw.y = dot(texture2D(samplesTex, vec2(u, v)), unpackFloat); u += samplesTexInverseSize.x;\n\t\traw.z = dot(texture2D(samplesTex, vec2(u, v)), unpackFloat); u += samplesTexInverseSize.x;\n\t\traw.w = dot(texture2D(samplesTex, vec2(u, v)), unpackFloat);\n\t\tL.xyz = raw.xyz * 2.0 - 1.0;\n\t\tmipLevel = raw.w * 8.0;\n\t}\n\tvec4 prefilterSamples() {\n\t\tmat3 vecSpace = matrixFromVectorSlow(TARGET_FUNC());\n\t\tvec3 L;\n\t\tfloat mipLevel;\n\t\tvec3 result = vec3(0.0);\n\t\tfloat totalWeight = 0.0;\n\t\tfor (int i = 0; i < NUM_SAMPLES; ++i) {\n\t\t\tunpackSample(i, L, mipLevel);\n\t\t\tresult += DECODE_FUNC(SOURCE_FUNC(vecSpace * L, mipLevel)) * L.z;\n\t\t\ttotalWeight += L.z;\n\t\t}\n\t\treturn ENCODE_FUNC(result / totalWeight);\n\t}\n\tvec4 prefilterSamplesUnweighted() {\n\t\tmat3 vecSpace = matrixFromVectorSlow(TARGET_FUNC());\n\t\tvec3 L;\n\t\tfloat mipLevel;\n\t\tvec3 result = vec3(0.0);\n\t\tfloat totalWeight = 0.0;\n\t\tfor (int i = 0; i < NUM_SAMPLES; ++i) {\n\t\t\tunpackSample(i, L, mipLevel);\n\t\t\tresult += DECODE_FUNC(SOURCE_FUNC(vecSpace * L, mipLevel));\n\t\t}\n\t\treturn ENCODE_FUNC(result / float(NUM_SAMPLES));\n\t}\n#endif\nvoid main(void) {\n\tgl_FragColor = PROCESS_FUNC();\n}\n`;\n\nvar sampleCatmullRomPS = `\nvec4 SampleTextureCatmullRom(TEXTURE_ACCEPT(tex), vec2 uv, vec2 texSize) {\n\tvec2 samplePos = uv * texSize;\n\tvec2 texPos1 = floor(samplePos - 0.5) + 0.5;\n\tvec2 f = samplePos - texPos1;\n\tvec2 w0 = f * (-0.5 + f * (1.0 - 0.5 * f));\n\tvec2 w1 = 1.0 + f * f * (-2.5 + 1.5 * f);\n\tvec2 w2 = f * (0.5 + f * (2.0 - 1.5 * f));\n\tvec2 w3 = f * f * (-0.5 + 0.5 * f);\n\tvec2 w12 = w1 + w2;\n\tvec2 offset12 = w2 / (w1 + w2);\n\tvec2 texPos0 = (texPos1 - 1.0) / texSize;\n\tvec2 texPos3 = (texPos1 + 2.0) / texSize;\n\tvec2 texPos12 = (texPos1 + offset12) / texSize;\n\tvec4 result = vec4(0.0);\n\tresult += texture2DLodEXT(tex, vec2(texPos0.x, texPos0.y), 0.0) * w0.x * w0.y;\n\tresult += texture2DLodEXT(tex, vec2(texPos12.x, texPos0.y), 0.0) * w12.x * w0.y;\n\tresult += texture2DLodEXT(tex, vec2(texPos3.x, texPos0.y), 0.0) * w3.x * w0.y;\n\tresult += texture2DLodEXT(tex, vec2(texPos0.x, texPos12.y), 0.0) * w0.x * w12.y;\n\tresult += texture2DLodEXT(tex, vec2(texPos12.x, texPos12.y), 0.0) * w12.x * w12.y;\n\tresult += texture2DLodEXT(tex, vec2(texPos3.x, texPos12.y), 0.0) * w3.x * w12.y;\n\tresult += texture2DLodEXT(tex, vec2(texPos0.x, texPos3.y), 0.0) * w0.x * w3.y;\n\tresult += texture2DLodEXT(tex, vec2(texPos12.x, texPos3.y), 0.0) * w12.x * w3.y;\n\tresult += texture2DLodEXT(tex, vec2(texPos3.x, texPos3.y), 0.0) * w3.x * w3.y;\n\treturn result;\n}\n`;\n\nvar screenDepthPS = `\nuniform highp sampler2D uSceneDepthMap;\n#ifndef SCREENSIZE\n#define SCREENSIZE\nuniform vec4 uScreenSize;\n#endif\n#ifndef VIEWMATRIX\n#define VIEWMATRIX\nuniform mat4 matrix_view;\n#endif\n#ifndef LINEARIZE_DEPTH\n#ifndef CAMERAPLANES\n#define CAMERAPLANES\nuniform vec4 camera_params;\n#endif\n#define LINEARIZE_DEPTH\n#ifdef GL2\nfloat linearizeDepth(float z) {\n\tif (camera_params.w == 0.0)\n\t\treturn (camera_params.z * camera_params.y) / (camera_params.y + z * (camera_params.z - camera_params.y));\n\telse\n\t\treturn camera_params.z + z * (camera_params.y - camera_params.z);\n}\n#else\n#ifndef UNPACKFLOAT\n#define UNPACKFLOAT\nfloat unpackFloat(vec4 rgbaDepth) {\n\tconst vec4 bitShift = vec4(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);\n\treturn dot(rgbaDepth, bitShift);\n}\n#endif\n#endif\n#endif\nfloat getLinearScreenDepth(vec2 uv) {\n\t#ifdef GL2\n\t\treturn linearizeDepth(texture2D(uSceneDepthMap, uv).r);\n\t#else\n\t\treturn unpackFloat(texture2D(uSceneDepthMap, uv)) * camera_params.y;\n\t#endif\n}\n#ifndef VERTEXSHADER\nfloat getLinearScreenDepth() {\n\tvec2 uv = gl_FragCoord.xy * uScreenSize.zw;\n\treturn getLinearScreenDepth(uv);\n}\n#endif\nfloat getLinearDepth(vec3 pos) {\n\treturn -(matrix_view * vec4(pos, 1.0)).z;\n}\n`;\n\nvar shadowCascadesPS = `\nconst float maxCascades = 4.0;\nmat4 cascadeShadowMat;\nvoid getShadowCascadeMatrix(mat4 shadowMatrixPalette[4], float shadowCascadeDistances[4], float shadowCascadeCount) {\n\tfloat depth = 1.0 / gl_FragCoord.w;\n\tfloat cascadeIndex = 0.0;\n\tfor (float i = 0.0; i < maxCascades; i++) {\n\t\tif (depth < shadowCascadeDistances[int(i)]) {\n\t\t\tcascadeIndex = i;\n\t\t\tbreak;\n\t\t}\n\t}\n\tcascadeIndex = min(cascadeIndex, shadowCascadeCount - 1.0);\n\t#ifdef GL2\n\t\tcascadeShadowMat = shadowMatrixPalette[int(cascadeIndex)];\n\t#else\n\t\tif (cascadeIndex == 0.0) {\n\t\t\tcascadeShadowMat = shadowMatrixPalette[0];\n\t\t}\n\t\telse if (cascadeIndex == 1.0) {\n\t\t\tcascadeShadowMat = shadowMatrixPalette[1];\n\t\t}\n\t\telse if (cascadeIndex == 2.0) {\n\t\t\tcascadeShadowMat = shadowMatrixPalette[2];\n\t\t}\n\t\telse {\n\t\t\tcascadeShadowMat = shadowMatrixPalette[3];\n\t\t}\n\t#endif\n}\nvoid fadeShadow(float shadowCascadeDistances[4]) {\t\t\t\t  \n\tfloat depth = 1.0 / gl_FragCoord.w;\n\tif (depth > shadowCascadeDistances[int(maxCascades - 1.0)]) {\n\t\tdShadowCoord.z = -9999999.0;\n\t}\n}\n`;\n\nvar shadowEVSMPS = `\nfloat VSM$(TEXTURE_ACCEPT(tex), vec2 texCoords, float resolution, float Z, float vsmBias, float exponent) {\n\tvec3 moments = texture2D(tex, texCoords).xyz;\n\treturn calculateEVSM(moments, Z, vsmBias, exponent);\n}\nfloat getShadowVSM$(TEXTURE_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams, float exponent, vec3 lightDir) {\n\treturn VSM$(TEXTURE_PASS(shadowMap), shadowCoord.xy, shadowParams.x, shadowCoord.z, shadowParams.y, exponent);\n}\nfloat getShadowSpotVSM$(TEXTURE_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams, float exponent, vec3 lightDir) {\n\treturn VSM$(TEXTURE_PASS(shadowMap), shadowCoord.xy, shadowParams.x, length(lightDir) * shadowParams.w + shadowParams.z, shadowParams.y, exponent);\n}\n`;\n\nvar shadowEVSMnPS = `\nfloat VSM$(TEXTURE_ACCEPT(tex), vec2 texCoords, float resolution, float Z, float vsmBias, float exponent) {\n\tfloat pixelSize = 1.0 / resolution;\n\ttexCoords -= vec2(pixelSize);\n\tvec3 s00 = texture2D(tex, texCoords).xyz;\n\tvec3 s10 = texture2D(tex, texCoords + vec2(pixelSize, 0)).xyz;\n\tvec3 s01 = texture2D(tex, texCoords + vec2(0, pixelSize)).xyz;\n\tvec3 s11 = texture2D(tex, texCoords + vec2(pixelSize)).xyz;\n\tvec2 fr = fract(texCoords * resolution);\n\tvec3 h0 = mix(s00, s10, fr.x);\n\tvec3 h1 = mix(s01, s11, fr.x);\n\tvec3 moments = mix(h0, h1, fr.y);\n\treturn calculateEVSM(moments, Z, vsmBias, exponent);\n}\nfloat getShadowVSM$(TEXTURE_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams, float exponent, vec3 lightDir) {\n\treturn VSM$(TEXTURE_PASS(shadowMap), shadowCoord.xy, shadowParams.x, shadowCoord.z, shadowParams.y, exponent);\n}\nfloat getShadowSpotVSM$(TEXTURE_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams, float exponent, vec3 lightDir) {\n\treturn VSM$(TEXTURE_PASS(shadowMap), shadowCoord.xy, shadowParams.x, length(lightDir) * shadowParams.w + shadowParams.z, shadowParams.y, exponent);\n}\n`;\n\nvar shadowPCSSPS = `\n#define PCSS_SAMPLE_COUNT 16\nuniform float pcssDiskSamples[PCSS_SAMPLE_COUNT];\nuniform float pcssSphereSamples[PCSS_SAMPLE_COUNT];\nvec2 vogelDisk(int sampleIndex, float count, float phi, float r) {\n\tconst float GoldenAngle = 2.4;\n\tfloat theta = float(sampleIndex) * GoldenAngle + phi;\n\tfloat sine = sin(theta);\n\tfloat cosine = cos(theta);\n\treturn vec2(r * cosine, r * sine);\n}\nvec3 vogelSphere(int sampleIndex, float count, float phi, float r) {\n\tconst float GoldenAngle = 2.4;\n\tfloat theta = float(sampleIndex) * GoldenAngle + phi;\n\tfloat weight = float(sampleIndex) / count;\n\treturn vec3(cos(theta) * r, weight, sin(theta) * r);\n}\nfloat noise(vec2 screenPos) {\n\tconst float PHI = 1.61803398874989484820459;\n\treturn fract(sin(dot(screenPos * PHI, screenPos)) * screenPos.x);\n}\n#ifndef UNPACKFLOAT\n#define UNPACKFLOAT\nfloat unpackFloat(vec4 rgbaDepth) {\n\tconst vec4 bitShift = vec4(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);\n\treturn dot(rgbaDepth, bitShift);\n}\n#endif\nfloat viewSpaceDepth(float depth, mat4 invProjection) {\n\tfloat z = depth * 2.0 - 1.0;\n\tvec4 clipSpace = vec4(0.0, 0.0, z, 1.0);\n\tvec4 viewSpace = invProjection * clipSpace;\n\treturn viewSpace.z;\n}\nfloat PCSSBlockerDistance(TEXTURE_ACCEPT(shadowMap), vec2 sampleCoords[PCSS_SAMPLE_COUNT], vec2 shadowCoords, vec2 searchSize, float z) {\n\tfloat blockers = 0.0;\n\tfloat averageBlocker = 0.0;\n\tfor (int i = 0; i < PCSS_SAMPLE_COUNT; i++) {\n\t\tvec2 offset = sampleCoords[i] * searchSize;\n\t\tvec2 sampleUV = shadowCoords + offset;\n\t#ifdef GL2\n\t\tfloat blocker = textureLod(shadowMap, sampleUV, 0.0).r;\n\t#else\n\t\tfloat blocker = unpackFloat(texture2D(shadowMap, sampleUV));\n\t#endif\t\t\n\t\tfloat isBlocking = step(blocker, z);\n\t\tblockers += isBlocking;\n\t\taverageBlocker += blocker * isBlocking;\n\t}\n\tif (blockers > 0.0)\n\t\treturn averageBlocker /= blockers;\n\treturn -1.0;\n}\nfloat PCSS(TEXTURE_ACCEPT(shadowMap), vec3 shadowCoords, vec4 cameraParams, vec2 shadowSearchArea) {\n\tfloat receiverDepth = shadowCoords.z;\n#ifndef GL2\n\treceiverDepth *= 1.0 / (cameraParams.y - cameraParams.z);\n#endif\n\tvec2 samplePoints[PCSS_SAMPLE_COUNT];\n\tfloat noise = noise( gl_FragCoord.xy ) * 2.0 * PI;\n\tfor (int i = 0; i < PCSS_SAMPLE_COUNT; i++) {\n\t\tfloat pcssPresample = pcssDiskSamples[i];\n\t\tsamplePoints[i] = vogelDisk(i, float(PCSS_SAMPLE_COUNT), noise, pcssPresample);\n\t}\n\tfloat averageBlocker = PCSSBlockerDistance(TEXTURE_PASS(shadowMap), samplePoints, shadowCoords.xy, shadowSearchArea, receiverDepth);\n\tif (averageBlocker == -1.0) {\n\t\treturn 1.0;\n\t} else {\n\t\tvec2 filterRadius = ((receiverDepth - averageBlocker) / averageBlocker) * shadowSearchArea * cameraParams.x;\n\t\tfloat shadow = 0.0;\n\t\tfor (int i = 0; i < PCSS_SAMPLE_COUNT; i ++)\n\t\t{\n\t\t\tvec2 sampleUV = samplePoints[i] * filterRadius;\n\t\t\tsampleUV = shadowCoords.xy + sampleUV;\n\t\t#ifdef GL2\n\t\t\tfloat depth = textureLod(shadowMap, sampleUV, 0.0).r;\n\t\t#else\n\t\t\tfloat depth = unpackFloat(texture2D(shadowMap, sampleUV));\n\t\t#endif\n\t\t\tshadow += step(receiverDepth, depth);\n\t\t}\n\t\treturn shadow / float(PCSS_SAMPLE_COUNT);\n\t} \n}\nfloat PCSSCubeBlockerDistance(samplerCube shadowMap, vec3 lightDirNorm, vec3 samplePoints[PCSS_SAMPLE_COUNT], float z, float shadowSearchArea) {\n\tfloat blockers = 0.0;\n\tfloat averageBlocker = 0.0;\n\tfor (int i = 0; i < PCSS_SAMPLE_COUNT; i++) {\n\t\tvec3 sampleDir = lightDirNorm + samplePoints[i] * shadowSearchArea;\n\t\tsampleDir = normalize(sampleDir);\n\t#ifdef GL2\n\t\tfloat blocker = textureCubeLodEXT(shadowMap, sampleDir, 0.0).r;\n\t#else\n\t\tfloat blocker = unpackFloat(textureCube(shadowMap, sampleDir));\n\t#endif\n\t\tfloat isBlocking = step(blocker, z);\n\t\tblockers += isBlocking;\n\t\taverageBlocker += blocker * isBlocking;\n\t}\n\tif (blockers > 0.0)\n\t\treturn averageBlocker /= float(blockers);\n\treturn -1.0;\n}\nfloat PCSSCube(samplerCube shadowMap, vec4 shadowParams, vec3 shadowCoords, vec4 cameraParams, float shadowSearchArea, vec3 lightDir) {\n\t\n\tvec3 samplePoints[PCSS_SAMPLE_COUNT];\n\tfloat noise = noise( gl_FragCoord.xy ) * 2.0 * PI;\n\tfor (int i = 0; i < PCSS_SAMPLE_COUNT; i++) {\n\t\tfloat r = pcssSphereSamples[i];\n\t\tsamplePoints[i] = vogelSphere(i, float(PCSS_SAMPLE_COUNT), noise, r);\n\t}\n\tfloat receiverDepth = length(lightDir) * shadowParams.w + shadowParams.z;\n\tvec3 lightDirNorm = normalize(lightDir);\n\t\n\tfloat averageBlocker = PCSSCubeBlockerDistance(shadowMap, lightDirNorm, samplePoints, receiverDepth, shadowSearchArea);\n\tif (averageBlocker == -1.0) {\n\t\treturn 1.0;\n\t} else {\n\t\tfloat filterRadius = ((receiverDepth - averageBlocker) / averageBlocker) * shadowSearchArea;\n\t\tfloat shadow = 0.0;\n\t\tfor (int i = 0; i < PCSS_SAMPLE_COUNT; i++)\n\t\t{\n\t\t\tvec3 offset = samplePoints[i] * filterRadius;\n\t\t\tvec3 sampleDir = lightDirNorm + offset;\n\t\t\tsampleDir = normalize(sampleDir);\n\t\t\t#ifdef GL2\n\t\t\t\tfloat depth = textureCubeLodEXT(shadowMap, sampleDir, 0.0).r;\n\t\t\t#else\n\t\t\t\tfloat depth = unpackFloat(textureCube(shadowMap, sampleDir));\n\t\t\t#endif\n\t\t\tshadow += step(receiverDepth, depth);\n\t\t}\n\t\treturn shadow / float(PCSS_SAMPLE_COUNT);\n\t}\n}\nfloat getShadowPointPCSS(samplerCube shadowMap, vec3 shadowCoord, vec4 shadowParams, vec4 cameraParams, vec2 shadowSearchArea, vec3 lightDir) {\n\treturn PCSSCube(shadowMap, shadowParams, shadowCoord, cameraParams, shadowSearchArea.x, lightDir);\n}\nfloat getShadowSpotPCSS(TEXTURE_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams, vec4 cameraParams, vec2 shadowSearchArea, vec3 lightDir) {\n\treturn PCSS(TEXTURE_PASS(shadowMap), shadowCoord, cameraParams, shadowSearchArea);\n}\nfloat getShadowPCSS(TEXTURE_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams, vec4 cameraParams, vec2 shadowSearchArea, vec3 lightDir) {\n\treturn PCSS(TEXTURE_PASS(shadowMap), shadowCoord, cameraParams, shadowSearchArea);\n}\n`;\n\nvar shadowSampleCoordPS = `\nvec3 getShadowSampleCoord$LIGHT(mat4 shadowTransform, vec4 shadowParams, vec3 worldPosition, vec3 lightPos, inout vec3 lightDir, vec3 lightDirNorm, vec3 normal) {\n\tvec3 surfacePosition = worldPosition;\n#ifdef SHADOW_SAMPLE_POINT\n\t#ifdef SHADOW_SAMPLE_NORMAL_OFFSET\n\t\tfloat distScale = length(lightDir);\n\t\tsurfacePosition = worldPosition + normal * shadowParams.y * clamp(1.0 - dot(normal, -lightDirNorm), 0.0, 1.0) * distScale;\n\t\tlightDir = surfacePosition - lightPos;\n\t\treturn lightDir;\n\t#endif\n#else\n\t#ifdef SHADOW_SAMPLE_SOURCE_ZBUFFER\n\t\t#ifdef SHADOW_SAMPLE_NORMAL_OFFSET\n\t\t\tsurfacePosition = worldPosition + normal * shadowParams.y;\n\t\t#endif\n\t#else\n\t\t#ifdef SHADOW_SAMPLE_NORMAL_OFFSET\n\t\t\t#ifdef SHADOW_SAMPLE_ORTHO\n\t\t\t\tfloat distScale = 1.0;\n\t\t\t#else\n\t\t\t\tfloat distScale = abs(dot(vPositionW - lightPos, lightDirNorm));\n\t\t\t#endif\n\t\t\tsurfacePosition = worldPosition + normal * shadowParams.y * clamp(1.0 - dot(normal, -lightDirNorm), 0.0, 1.0) * distScale;\n\t\t#endif\n\t#endif\n\tvec4 positionInShadowSpace = shadowTransform * vec4(surfacePosition, 1.0);\n\t#ifdef SHADOW_SAMPLE_ORTHO\n\t\tpositionInShadowSpace.z = saturate(positionInShadowSpace.z) - 0.0001;\n\t#else\n\t\t#ifdef SHADOW_SAMPLE_SOURCE_ZBUFFER\n\t\t\tpositionInShadowSpace.xyz /= positionInShadowSpace.w;\n\t\t#else\n\t\t\tpositionInShadowSpace.xy /= positionInShadowSpace.w;\n\t\t\tpositionInShadowSpace.z = length(lightDir) * shadowParams.w;\n\t\t#endif\n\t#endif\n\t#ifdef SHADOW_SAMPLE_Z_BIAS\n\t\tpositionInShadowSpace.z += getShadowBias(shadowParams.x, shadowParams.z);\n\t#endif\n\tsurfacePosition = positionInShadowSpace.xyz;\n#endif\n\treturn surfacePosition;\n}\n`;\n\nvar shadowStandardPS = `\nvec3 lessThan2(vec3 a, vec3 b) {\n\treturn clamp((b - a)*1000.0, 0.0, 1.0);\n}\n#ifndef UNPACKFLOAT\n#define UNPACKFLOAT\n\tfloat unpackFloat(vec4 rgbaDepth) {\n\t\tconst vec4 bitShift = vec4(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);\n\t\treturn dot(rgbaDepth, bitShift);\n\t}\n#endif\n#ifdef GL2\nfloat _getShadowPCF3x3(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec3 shadowParams) {\n\tfloat z = shadowCoord.z;\n\tvec2 uv = shadowCoord.xy * shadowParams.x;\n\tfloat shadowMapSizeInv = 1.0 / shadowParams.x;\n\tvec2 base_uv = floor(uv + 0.5);\n\tfloat s = (uv.x + 0.5 - base_uv.x);\n\tfloat t = (uv.y + 0.5 - base_uv.y);\n\tbase_uv -= vec2(0.5);\n\tbase_uv *= shadowMapSizeInv;\n\tfloat sum = 0.0;\n\tfloat uw0 = (3.0 - 2.0 * s);\n\tfloat uw1 = (1.0 + 2.0 * s);\n\tfloat u0 = (2.0 - s) / uw0 - 1.0;\n\tfloat u1 = s / uw1 + 1.0;\n\tfloat vw0 = (3.0 - 2.0 * t);\n\tfloat vw1 = (1.0 + 2.0 * t);\n\tfloat v0 = (2.0 - t) / vw0 - 1.0;\n\tfloat v1 = t / vw1 + 1.0;\n\tu0 = u0 * shadowMapSizeInv + base_uv.x;\n\tv0 = v0 * shadowMapSizeInv + base_uv.y;\n\tu1 = u1 * shadowMapSizeInv + base_uv.x;\n\tv1 = v1 * shadowMapSizeInv + base_uv.y;\n\tsum += uw0 * vw0 * textureShadow(shadowMap, vec3(u0, v0, z));\n\tsum += uw1 * vw0 * textureShadow(shadowMap, vec3(u1, v0, z));\n\tsum += uw0 * vw1 * textureShadow(shadowMap, vec3(u0, v1, z));\n\tsum += uw1 * vw1 * textureShadow(shadowMap, vec3(u1, v1, z));\n\tsum *= 1.0f / 16.0;\n\treturn sum;\n}\nfloat getShadowPCF3x3(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams) {\n\treturn _getShadowPCF3x3(SHADOWMAP_PASS(shadowMap), shadowCoord, shadowParams.xyz);\n}\nfloat getShadowSpotPCF3x3(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams) {\n\treturn _getShadowPCF3x3(SHADOWMAP_PASS(shadowMap), shadowCoord, shadowParams.xyz);\n}\nfloat getShadowPCF1x1(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams) {\n\treturn textureShadow(shadowMap, shadowCoord);\n}\nfloat getShadowSpotPCF1x1(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams) {\n\treturn textureShadow(shadowMap, shadowCoord);\n}\n#else\nfloat _xgetShadowPCF3x3(mat3 depthKernel, vec3 shadowCoord, sampler2D shadowMap, vec3 shadowParams) {\n\tmat3 shadowKernel;\n\tvec3 shadowZ = vec3(shadowCoord.z);\n\tshadowKernel[0] = vec3(greaterThan(depthKernel[0], shadowZ));\n\tshadowKernel[1] = vec3(greaterThan(depthKernel[1], shadowZ));\n\tshadowKernel[2] = vec3(greaterThan(depthKernel[2], shadowZ));\n\tvec2 fractionalCoord = fract( shadowCoord.xy * shadowParams.x );\n\tshadowKernel[0] = mix(shadowKernel[0], shadowKernel[1], fractionalCoord.x);\n\tshadowKernel[1] = mix(shadowKernel[1], shadowKernel[2], fractionalCoord.x);\n\tvec4 shadowValues;\n\tshadowValues.x = mix(shadowKernel[0][0], shadowKernel[0][1], fractionalCoord.y);\n\tshadowValues.y = mix(shadowKernel[0][1], shadowKernel[0][2], fractionalCoord.y);\n\tshadowValues.z = mix(shadowKernel[1][0], shadowKernel[1][1], fractionalCoord.y);\n\tshadowValues.w = mix(shadowKernel[1][1], shadowKernel[1][2], fractionalCoord.y);\n\treturn dot( shadowValues, vec4( 1.0 ) ) * 0.25;\n}\nfloat _getShadowPCF3x3(sampler2D shadowMap, vec3 shadowCoord, vec3 shadowParams) {\n\tfloat xoffset = 1.0 / shadowParams.x;\n\tfloat dx0 = -xoffset;\n\tfloat dx1 = xoffset;\n\tmat3 depthKernel;\n\tdepthKernel[0][0] = unpackFloat(textureShadow(shadowMap, shadowCoord.xy + vec2(dx0, dx0)));\n\tdepthKernel[0][1] = unpackFloat(textureShadow(shadowMap, shadowCoord.xy + vec2(dx0, 0.0)));\n\tdepthKernel[0][2] = unpackFloat(textureShadow(shadowMap, shadowCoord.xy + vec2(dx0, dx1)));\n\tdepthKernel[1][0] = unpackFloat(textureShadow(shadowMap, shadowCoord.xy + vec2(0.0, dx0)));\n\tdepthKernel[1][1] = unpackFloat(textureShadow(shadowMap, shadowCoord.xy));\n\tdepthKernel[1][2] = unpackFloat(textureShadow(shadowMap, shadowCoord.xy + vec2(0.0, dx1)));\n\tdepthKernel[2][0] = unpackFloat(textureShadow(shadowMap, shadowCoord.xy + vec2(dx1, dx0)));\n\tdepthKernel[2][1] = unpackFloat(textureShadow(shadowMap, shadowCoord.xy + vec2(dx1, 0.0)));\n\tdepthKernel[2][2] = unpackFloat(textureShadow(shadowMap, shadowCoord.xy + vec2(dx1, dx1)));\n\treturn _xgetShadowPCF3x3(depthKernel, shadowCoord, shadowMap, shadowParams);\n}\nfloat getShadowPCF3x3(sampler2D shadowMap, vec3 shadowCoord, vec4 shadowParams) {\n\treturn _getShadowPCF3x3(shadowMap, shadowCoord, shadowParams.xyz);\n}\nfloat getShadowSpotPCF3x3(sampler2D shadowMap, vec3 shadowCoord, vec4 shadowParams) {\n\treturn _getShadowPCF3x3(shadowMap, shadowCoord, shadowParams.xyz);\n}\nfloat _getShadowPCF1x1(sampler2D shadowMap, vec3 shadowCoord) {\n\tfloat shadowSample = unpackFloat(textureShadow(shadowMap, shadowCoord.xy));\n\treturn shadowSample > shadowCoord.z ? 1.0 : 0.0;\n}\nfloat getShadowPCF1x1(sampler2D shadowMap, vec3 shadowCoord, vec4 shadowParams) {\n\treturn _getShadowPCF1x1(shadowMap, shadowCoord);\n}\nfloat getShadowSpotPCF1x1(sampler2D shadowMap, vec3 shadowCoord, vec4 shadowParams) {\n\treturn _getShadowPCF1x1(shadowMap, shadowCoord);\n}\n#endif\n#ifndef WEBGPU\nfloat _getShadowPoint(samplerCube shadowMap, vec4 shadowParams, vec3 dir) {\n\tvec3 tc = normalize(dir);\n\tvec3 tcAbs = abs(tc);\n\tvec4 dirX = vec4(1,0,0, tc.x);\n\tvec4 dirY = vec4(0,1,0, tc.y);\n\tfloat majorAxisLength = tc.z;\n\tif ((tcAbs.x > tcAbs.y) && (tcAbs.x > tcAbs.z)) {\n\t\tdirX = vec4(0,0,1, tc.z);\n\t\tdirY = vec4(0,1,0, tc.y);\n\t\tmajorAxisLength = tc.x;\n\t} else if ((tcAbs.y > tcAbs.x) && (tcAbs.y > tcAbs.z)) {\n\t\tdirX = vec4(1,0,0, tc.x);\n\t\tdirY = vec4(0,0,1, tc.z);\n\t\tmajorAxisLength = tc.y;\n\t}\n\tfloat shadowParamsInFaceSpace = ((1.0/shadowParams.x) * 2.0) * abs(majorAxisLength);\n\tvec3 xoffset = (dirX.xyz * shadowParamsInFaceSpace);\n\tvec3 yoffset = (dirY.xyz * shadowParamsInFaceSpace);\n\tvec3 dx0 = -xoffset;\n\tvec3 dy0 = -yoffset;\n\tvec3 dx1 = xoffset;\n\tvec3 dy1 = yoffset;\n\tmat3 shadowKernel;\n\tmat3 depthKernel;\n\tdepthKernel[0][0] = unpackFloat(textureCube(shadowMap, tc + dx0 + dy0));\n\tdepthKernel[0][1] = unpackFloat(textureCube(shadowMap, tc + dx0));\n\tdepthKernel[0][2] = unpackFloat(textureCube(shadowMap, tc + dx0 + dy1));\n\tdepthKernel[1][0] = unpackFloat(textureCube(shadowMap, tc + dy0));\n\tdepthKernel[1][1] = unpackFloat(textureCube(shadowMap, tc));\n\tdepthKernel[1][2] = unpackFloat(textureCube(shadowMap, tc + dy1));\n\tdepthKernel[2][0] = unpackFloat(textureCube(shadowMap, tc + dx1 + dy0));\n\tdepthKernel[2][1] = unpackFloat(textureCube(shadowMap, tc + dx1));\n\tdepthKernel[2][2] = unpackFloat(textureCube(shadowMap, tc + dx1 + dy1));\n\tvec3 shadowZ = vec3(length(dir) * shadowParams.w + shadowParams.z);\n\tshadowKernel[0] = vec3(lessThan2(depthKernel[0], shadowZ));\n\tshadowKernel[1] = vec3(lessThan2(depthKernel[1], shadowZ));\n\tshadowKernel[2] = vec3(lessThan2(depthKernel[2], shadowZ));\n\tvec2 uv = (vec2(dirX.w, dirY.w) / abs(majorAxisLength)) * 0.5;\n\tvec2 fractionalCoord = fract( uv * shadowParams.x );\n\tshadowKernel[0] = mix(shadowKernel[0], shadowKernel[1], fractionalCoord.x);\n\tshadowKernel[1] = mix(shadowKernel[1], shadowKernel[2], fractionalCoord.x);\n\tvec4 shadowValues;\n\tshadowValues.x = mix(shadowKernel[0][0], shadowKernel[0][1], fractionalCoord.y);\n\tshadowValues.y = mix(shadowKernel[0][1], shadowKernel[0][2], fractionalCoord.y);\n\tshadowValues.z = mix(shadowKernel[1][0], shadowKernel[1][1], fractionalCoord.y);\n\tshadowValues.w = mix(shadowKernel[1][1], shadowKernel[1][2], fractionalCoord.y);\n\treturn 1.0 - dot( shadowValues, vec4( 1.0 ) ) * 0.25;\n}\nfloat getShadowPointPCF3x3(samplerCube shadowMap, vec3 shadowCoord, vec4 shadowParams, vec3 lightDir) {\n\treturn _getShadowPoint(shadowMap, shadowParams, lightDir);\n}\n#endif\n`;\n\nvar shadowStandardGL2PS = `\nfloat _getShadowPCF5x5(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec3 shadowParams) {\n\tfloat z = shadowCoord.z;\n\tvec2 uv = shadowCoord.xy * shadowParams.x;\n\tfloat shadowMapSizeInv = 1.0 / shadowParams.x;\n\tvec2 base_uv = floor(uv + 0.5);\n\tfloat s = (uv.x + 0.5 - base_uv.x);\n\tfloat t = (uv.y + 0.5 - base_uv.y);\n\tbase_uv -= vec2(0.5);\n\tbase_uv *= shadowMapSizeInv;\n\tfloat uw0 = (4.0 - 3.0 * s);\n\tfloat uw1 = 7.0;\n\tfloat uw2 = (1.0 + 3.0 * s);\n\tfloat u0 = (3.0 - 2.0 * s) / uw0 - 2.0;\n\tfloat u1 = (3.0 + s) / uw1;\n\tfloat u2 = s / uw2 + 2.0;\n\tfloat vw0 = (4.0 - 3.0 * t);\n\tfloat vw1 = 7.0;\n\tfloat vw2 = (1.0 + 3.0 * t);\n\tfloat v0 = (3.0 - 2.0 * t) / vw0 - 2.0;\n\tfloat v1 = (3.0 + t) / vw1;\n\tfloat v2 = t / vw2 + 2.0;\n\tfloat sum = 0.0;\n\tu0 = u0 * shadowMapSizeInv + base_uv.x;\n\tv0 = v0 * shadowMapSizeInv + base_uv.y;\n\tu1 = u1 * shadowMapSizeInv + base_uv.x;\n\tv1 = v1 * shadowMapSizeInv + base_uv.y;\n\tu2 = u2 * shadowMapSizeInv + base_uv.x;\n\tv2 = v2 * shadowMapSizeInv + base_uv.y;\n\tsum += uw0 * vw0 * textureShadow(shadowMap, vec3(u0, v0, z));\n\tsum += uw1 * vw0 * textureShadow(shadowMap, vec3(u1, v0, z));\n\tsum += uw2 * vw0 * textureShadow(shadowMap, vec3(u2, v0, z));\n\tsum += uw0 * vw1 * textureShadow(shadowMap, vec3(u0, v1, z));\n\tsum += uw1 * vw1 * textureShadow(shadowMap, vec3(u1, v1, z));\n\tsum += uw2 * vw1 * textureShadow(shadowMap, vec3(u2, v1, z));\n\tsum += uw0 * vw2 * textureShadow(shadowMap, vec3(u0, v2, z));\n\tsum += uw1 * vw2 * textureShadow(shadowMap, vec3(u1, v2, z));\n\tsum += uw2 * vw2 * textureShadow(shadowMap, vec3(u2, v2, z));\n\tsum *= 1.0f / 144.0;\n\tsum = saturate(sum);\n\treturn sum;\n}\nfloat getShadowPCF5x5(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams) {\n\treturn _getShadowPCF5x5(SHADOWMAP_PASS(shadowMap), shadowCoord, shadowParams.xyz);\n}\nfloat getShadowSpotPCF5x5(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams) {\n\treturn _getShadowPCF5x5(SHADOWMAP_PASS(shadowMap), shadowCoord, shadowParams.xyz);\n}\n`;\n\nvar shadowVSM8PS = `\nfloat calculateVSM8(vec3 moments, float Z, float vsmBias) {\n\tfloat VSMBias = vsmBias;\n\tfloat depthScale = VSMBias * Z;\n\tfloat minVariance1 = depthScale * depthScale;\n\treturn chebyshevUpperBound(moments.xy, Z, minVariance1, 0.1);\n}\nfloat decodeFloatRG(vec2 rg) {\n\treturn rg.y*(1.0/255.0) + rg.x;\n}\nfloat VSM8(TEXTURE_ACCEPT(tex), vec2 texCoords, float resolution, float Z, float vsmBias, float exponent) {\n\tvec4 c = texture2D(tex, texCoords);\n\tvec3 moments = vec3(decodeFloatRG(c.xy), decodeFloatRG(c.zw), 0.0);\n\treturn calculateVSM8(moments, Z, vsmBias);\n}\nfloat getShadowVSM8(TEXTURE_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams, float exponent, vec3 lightDir) {\n\treturn VSM8(TEXTURE_PASS(shadowMap), shadowCoord.xy, shadowParams.x, shadowCoord.z, shadowParams.y, 0.0);\n}\nfloat getShadowSpotVSM8(TEXTURE_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams, float exponent, vec3 lightDir) {\n\treturn VSM8(TEXTURE_PASS(shadowMap), shadowCoord.xy, shadowParams.x, length(lightDir) * shadowParams.w + shadowParams.z, shadowParams.y, 0.0);\n}\n`;\n\nvar shadowVSM_commonPS = `\nfloat linstep(float a, float b, float v) {\n\treturn saturate((v - a) / (b - a));\n}\nfloat reduceLightBleeding(float pMax, float amount) {\n\t return linstep(amount, 1.0, pMax);\n}\nfloat chebyshevUpperBound(vec2 moments, float mean, float minVariance, float lightBleedingReduction) {\n\tfloat variance = moments.y - (moments.x * moments.x);\n\tvariance = max(variance, minVariance);\n\tfloat d = mean - moments.x;\n\tfloat pMax = variance / (variance + (d * d));\n\tpMax = reduceLightBleeding(pMax, lightBleedingReduction);\n\treturn (mean <= moments.x ? 1.0 : pMax);\n}\nfloat calculateEVSM(vec3 moments, float Z, float vsmBias, float exponent) {\n\tZ = 2.0 * Z - 1.0;\n\tfloat warpedDepth = exp(exponent * Z);\n\tmoments.xy += vec2(warpedDepth, warpedDepth*warpedDepth) * (1.0 - moments.z);\n\tfloat VSMBias = vsmBias;\n\tfloat depthScale = VSMBias * exponent * warpedDepth;\n\tfloat minVariance1 = depthScale * depthScale;\n\treturn chebyshevUpperBound(moments.xy, warpedDepth, minVariance1, 0.1);\n}\n`;\n\nvar skinBatchConstVS = `\nattribute float vertex_boneIndices;\nuniform vec4 matrix_pose[BONE_LIMIT * 3];\nmat4 getBoneMatrix(const in float i) {\n\tvec4 v1 = matrix_pose[int(3.0 * i)];\n\tvec4 v2 = matrix_pose[int(3.0 * i + 1.0)];\n\tvec4 v3 = matrix_pose[int(3.0 * i + 2.0)];\n\treturn mat4(\n\t\tv1.x, v2.x, v3.x, 0,\n\t\tv1.y, v2.y, v3.y, 0,\n\t\tv1.z, v2.z, v3.z, 0,\n\t\tv1.w, v2.w, v3.w, 1\n\t);\n}\n`;\n\nvar skinBatchTexVS = `\nattribute float vertex_boneIndices;\nuniform highp sampler2D texture_poseMap;\nuniform vec4 texture_poseMapSize;\nmat4 getBoneMatrix(const in float i) {\n\tfloat j = i * 3.0;\n\tfloat dx = texture_poseMapSize.z;\n\tfloat dy = texture_poseMapSize.w;\n\tfloat y = floor(j * dx);\n\tfloat x = j - (y * texture_poseMapSize.x);\n\ty = dy * (y + 0.5);\n\tvec4 v1 = texture2D(texture_poseMap, vec2(dx * (x + 0.5), y));\n\tvec4 v2 = texture2D(texture_poseMap, vec2(dx * (x + 1.5), y));\n\tvec4 v3 = texture2D(texture_poseMap, vec2(dx * (x + 2.5), y));\n\treturn mat4(\n\t\tv1.x, v2.x, v3.x, 0,\n\t\tv1.y, v2.y, v3.y, 0,\n\t\tv1.z, v2.z, v3.z, 0,\n\t\tv1.w, v2.w, v3.w, 1\n\t);\n}\n`;\n\nvar skinConstVS = `\nattribute vec4 vertex_boneWeights;\nattribute vec4 vertex_boneIndices;\nuniform vec4 matrix_pose[BONE_LIMIT * 3];\nvoid getBoneMatrix(const in float i, out vec4 v1, out vec4 v2, out vec4 v3) {\n\tv1 = matrix_pose[int(3.0 * i)];\n\tv2 = matrix_pose[int(3.0 * i + 1.0)];\n\tv3 = matrix_pose[int(3.0 * i + 2.0)];\n}\nmat4 getSkinMatrix(const in vec4 indices, const in vec4 weights) {\n\tvec4 a1, a2, a3;\n\tgetBoneMatrix(indices.x, a1, a2, a3);\n\tvec4 b1, b2, b3;\n\tgetBoneMatrix(indices.y, b1, b2, b3);\n\tvec4 c1, c2, c3;\n\tgetBoneMatrix(indices.z, c1, c2, c3);\n\tvec4 d1, d2, d3;\n\tgetBoneMatrix(indices.w, d1, d2, d3);\n\tvec4 v1 = a1 * weights.x + b1 * weights.y + c1 * weights.z + d1 * weights.w;\n\tvec4 v2 = a2 * weights.x + b2 * weights.y + c2 * weights.z + d2 * weights.w;\n\tvec4 v3 = a3 * weights.x + b3 * weights.y + c3 * weights.z + d3 * weights.w;\n\tfloat one = dot(weights, vec4(1.0));\n\treturn mat4(\n\t\tv1.x, v2.x, v3.x, 0,\n\t\tv1.y, v2.y, v3.y, 0,\n\t\tv1.z, v2.z, v3.z, 0,\n\t\tv1.w, v2.w, v3.w, one\n\t);\n}\n`;\n\nvar skinTexVS = `\nattribute vec4 vertex_boneWeights;\nattribute vec4 vertex_boneIndices;\nuniform highp sampler2D texture_poseMap;\nuniform vec4 texture_poseMapSize;\nvoid getBoneMatrix(const in float index, out vec4 v1, out vec4 v2, out vec4 v3) {\n\tfloat i = float(index);\n\tfloat j = i * 3.0;\n\tfloat dx = texture_poseMapSize.z;\n\tfloat dy = texture_poseMapSize.w;\n\t\n\tfloat y = floor(j * dx);\n\tfloat x = j - (y * texture_poseMapSize.x);\n\ty = dy * (y + 0.5);\n\tv1 = texture2D(texture_poseMap, vec2(dx * (x + 0.5), y));\n\tv2 = texture2D(texture_poseMap, vec2(dx * (x + 1.5), y));\n\tv3 = texture2D(texture_poseMap, vec2(dx * (x + 2.5), y));\n}\nmat4 getSkinMatrix(const in vec4 indices, const in vec4 weights) {\n\tvec4 a1, a2, a3;\n\tgetBoneMatrix(indices.x, a1, a2, a3);\n\tvec4 b1, b2, b3;\n\tgetBoneMatrix(indices.y, b1, b2, b3);\n\tvec4 c1, c2, c3;\n\tgetBoneMatrix(indices.z, c1, c2, c3);\n\tvec4 d1, d2, d3;\n\tgetBoneMatrix(indices.w, d1, d2, d3);\n\tvec4 v1 = a1 * weights.x + b1 * weights.y + c1 * weights.z + d1 * weights.w;\n\tvec4 v2 = a2 * weights.x + b2 * weights.y + c2 * weights.z + d2 * weights.w;\n\tvec4 v3 = a3 * weights.x + b3 * weights.y + c3 * weights.z + d3 * weights.w;\n\tfloat one = dot(weights, vec4(1.0));\n\treturn mat4(\n\t\tv1.x, v2.x, v3.x, 0,\n\t\tv1.y, v2.y, v3.y, 0,\n\t\tv1.z, v2.z, v3.z, 0,\n\t\tv1.w, v2.w, v3.w, one\n\t);\n}\n`;\n\nvar skyboxEnvPS = `\nvarying vec3 vViewDir;\nuniform sampler2D texture_envAtlas;\nuniform float mipLevel;\nvoid main(void) {\n\tvec3 dir = vViewDir * vec3(-1.0, 1.0, 1.0);\n\tvec2 uv = toSphericalUv(normalize(dir));\n\tvec3 linear = SKYBOX_DECODE_FNC(texture2D(texture_envAtlas, mapRoughnessUv(uv, mipLevel)));\n\tgl_FragColor = vec4(gammaCorrectOutput(toneMap(processEnvironment(linear))), 1.0);\n}\n`;\n\nvar skyboxHDRPS = `\nvarying vec3 vViewDir;\nuniform samplerCube texture_cubeMap;\n#ifdef SKYMESH\n\tvarying vec3 vWorldPos;\n\tuniform mat3 cubeMapRotationMatrix;\n\tuniform vec3 projectedSkydomeCenter;\n#endif\nvoid main(void) {\n\t#ifdef SKYMESH\n\t\tvec3 envDir = normalize(vWorldPos - projectedSkydomeCenter);\n\t\tvec3 dir = envDir * cubeMapRotationMatrix;\n\t#else\n\t\tvec3 dir = vViewDir;\n\t#endif\n\tdir.x *= -1.0;\n\tvec3 linear = SKYBOX_DECODE_FNC(textureCube(texture_cubeMap, fixSeamsStatic(dir, SKYBOX_MIP)));\n\tgl_FragColor = vec4(gammaCorrectOutput(toneMap(processEnvironment(linear))), 1.0);\n}\n`;\n\nvar skyboxVS = `\nattribute vec3 aPosition;\n#ifndef VIEWMATRIX\n#define VIEWMATRIX\nuniform mat4 matrix_view;\n#endif\nuniform mat4 matrix_projectionSkybox;\nuniform mat3 cubeMapRotationMatrix;\nvarying vec3 vViewDir;\n#ifdef SKYMESH\n\tuniform mat4 matrix_model;\n\tvarying vec3 vWorldPos;\n#endif\nvoid main(void) {\n\tmat4 view = matrix_view;\n\t#ifdef SKYMESH\n\t\tvec4 worldPos = matrix_model * vec4(aPosition, 1.0);\n\t\tvWorldPos = worldPos.xyz;\n\t\tgl_Position = matrix_projectionSkybox * view * worldPos;\n\t#else\n\t\tview[3][0] = view[3][1] = view[3][2] = 0.0;\n\t\tgl_Position = matrix_projectionSkybox * view * vec4(aPosition, 1.0);\n\t\tvViewDir = aPosition * cubeMapRotationMatrix;\n\t#endif\n\tgl_Position.z = gl_Position.w - 1.0e-7;\n}\n`;\n\nvar specularPS = `\n#ifdef MAPCOLOR\nuniform vec3 material_specular;\n#endif\nvoid getSpecularity() {\n\tvec3 specularColor = vec3(1,1,1);\n\t#ifdef MAPCOLOR\n\tspecularColor *= material_specular;\n\t#endif\n\t#ifdef MAPTEXTURE\n\tspecularColor *= $DECODE(texture2DBias($SAMPLER, $UV, textureBias)).$CH;\n\t#endif\n\t#ifdef MAPVERTEX\n\tspecularColor *= saturate(vVertexColor.$VC);\n\t#endif\n\tdSpecularity = specularColor;\n}\n`;\n\nvar sphericalPS = `\nconst float PI = 3.141592653589793;\nvec2 toSpherical(vec3 dir) {\n\treturn vec2(dir.xz == vec2(0.0) ? 0.0 : atan(dir.x, dir.z), asin(dir.y));\n}\nvec2 toSphericalUv(vec3 dir) {\n\tvec2 uv = toSpherical(dir) / vec2(PI * 2.0, PI) + 0.5;\n\treturn vec2(uv.x, 1.0 - uv.y);\n}\n`;\n\nvar specularityFactorPS = `\n#ifdef MAPFLOAT\nuniform float material_specularityFactor;\n#endif\nvoid getSpecularityFactor() {\n\tfloat specularityFactor = 1.0;\n\t#ifdef MAPFLOAT\n\tspecularityFactor *= material_specularityFactor;\n\t#endif\n\t#ifdef MAPTEXTURE\n\tspecularityFactor *= texture2DBias($SAMPLER, $UV, textureBias).$CH;\n\t#endif\n\t#ifdef MAPVERTEX\n\tspecularityFactor *= saturate(vVertexColor.$VC);\n\t#endif\n\tdSpecularityFactor = specularityFactor;\n}\n`;\n\nvar spotPS = `\nfloat getSpotEffect(vec3 lightSpotDir, float lightInnerConeAngle, float lightOuterConeAngle, vec3 lightDirNorm) {\n\tfloat cosAngle = dot(lightDirNorm, lightSpotDir);\n\treturn smoothstep(lightOuterConeAngle, lightInnerConeAngle, cosAngle);\n}\n`;\n\nvar startPS = `\nvoid main(void) {\n\tdReflection = vec4(0);\n\t#ifdef LIT_CLEARCOAT\n\tccSpecularLight = vec3(0);\n\tccReflection = vec3(0);\n\t#endif\n`;\n\nvar startVS = `\nvoid main(void) {\n\tgl_Position = getPosition();\n`;\n\nvar startNineSlicedPS = `\n\tnineSlicedUv = vUv0;\n\tnineSlicedUv.y = 1.0 - nineSlicedUv.y;\n`;\n\nvar startNineSlicedTiledPS = `\n\tvec2 tileMask = step(vMask, vec2(0.99999));\n\tvec2 tileSize = 0.5 * (innerOffset.xy + innerOffset.zw);\n\tvec2 tileScale = vec2(1.0) / (vec2(1.0) - tileSize);\n\tvec2 clampedUv = mix(innerOffset.xy * 0.5, vec2(1.0) - innerOffset.zw * 0.5, fract((vTiledUv - tileSize) * tileScale));\n\tclampedUv = clampedUv * atlasRect.zw + atlasRect.xy;\n\tnineSlicedUv = vUv0 * tileMask + clampedUv * (vec2(1.0) - tileMask);\n\tnineSlicedUv.y = 1.0 - nineSlicedUv.y;\n\t\n`;\n\nvar storeEVSMPS = `\nfloat exponent = VSM_EXPONENT;\ndepth = 2.0 * depth - 1.0;\ndepth =  exp(exponent * depth);\ngl_FragColor = vec4(depth, depth*depth, 1.0, 1.0);\n`;\n\nvar tangentBinormalVS = `\nvec3 getTangent() {\n\treturn normalize(dNormalMatrix * vertex_tangent.xyz);\n}\nvec3 getBinormal() {\n\treturn cross(vNormalW, vTangentW) * vertex_tangent.w;\n}\n`;\n\nvar TBNPS = `\nvoid getTBN(vec3 tangent, vec3 binormal, vec3 normal) {\n\tdTBN = mat3(normalize(tangent), normalize(binormal), normalize(normal));\n}\n`;\n\nvar TBNderivativePS = `\nuniform float tbnBasis;\nvoid getTBN(vec3 tangent, vec3 binormal, vec3 normal) {\n\tvec2 uv = $UV;\n\tvec3 dp1 = dFdx( vPositionW );\n\tvec3 dp2 = dFdy( vPositionW );\n\tvec2 duv1 = dFdx( uv );\n\tvec2 duv2 = dFdy( uv );\n\tvec3 dp2perp = cross( dp2, normal );\n\tvec3 dp1perp = cross( normal, dp1 );\n\tvec3 T = dp2perp * duv1.x + dp1perp * duv2.x;\n\tvec3 B = dp2perp * duv1.y + dp1perp * duv2.y;\n\tfloat denom = max( dot(T,T), dot(B,B) );\n\tfloat invmax = (denom == 0.0) ? 0.0 : tbnBasis / sqrt( denom );\n\tdTBN = mat3(T * invmax, -B * invmax, normal );\n}\n`;\n\nvar TBNfastPS = `\nvoid getTBN(vec3 tangent, vec3 binormal, vec3 normal) {\n\tdTBN = mat3(tangent, binormal, normal);\n}\n`;\n\nvar TBNObjectSpacePS = `\nvoid getTBN(vec3 tangent, vec3 binormal, vec3 normal) {\n\tvec3 B = cross(normal, vObjectSpaceUpW);\n\tvec3 T = cross(normal, B);\n\tif (dot(B,B)==0.0)\n\t{\n\t\tfloat major=max(max(normal.x, normal.y), normal.z);\n\t\tif (normal.x == major)\n\t\t{\n\t\t\tB=cross(normal, vec3(0,1,0));\n\t\t\tT=cross(normal, B);\n\t\t}\n\t\telse if (normal.y == major)\n\t\t{\n\t\t\tB=cross(normal, vec3(0,0,1));\n\t\t\tT=cross(normal, B);\n\t\t}\n\t\telse if (normal.z == major)\n\t\t{\n\t\t\tB=cross(normal, vec3(1,0,0));\n\t\t\tT=cross(normal, B);\n\t\t}\n\t}\n\tdTBN = mat3(normalize(T), normalize(B), normalize(normal));\n}\n`;\n\nvar textureSamplePS = `\nvec4 texture2DSRGB(sampler2D tex, vec2 uv) {\n\treturn gammaCorrectInput(texture2D(tex, uv));\n}\nvec4 texture2DSRGB(sampler2D tex, vec2 uv, float bias) {\n\treturn gammaCorrectInput(texture2D(tex, uv, bias));\n}\nvec3 texture2DRGBM(sampler2D tex, vec2 uv) {\n\treturn decodeRGBM(texture2D(tex, uv));\n}\nvec3 texture2DRGBM(sampler2D tex, vec2 uv, float bias) {\n\treturn decodeRGBM(texture2D(tex, uv, bias));\n}\nvec3 texture2DRGBE(sampler2D tex, vec2 uv) {\n\treturn decodeRGBM(texture2D(tex, uv));\n}\nvec3 texture2DRGBE(sampler2D tex, vec2 uv, float bias) {\n\treturn decodeRGBM(texture2D(tex, uv, bias));\n}\n`;\n\nvar thicknessPS = `\n#ifdef MAPFLOAT\nuniform float material_thickness;\n#endif\nvoid getThickness() {\n\tdThickness = 1.0;\n\t#ifdef MAPFLOAT\n\tdThickness *= material_thickness;\n\t#endif\n\t#ifdef MAPTEXTURE\n\tdThickness *= texture2DBias($SAMPLER, $UV, textureBias).$CH;\n\t#endif\n\t#ifdef MAPVERTEX\n\tdThickness *= saturate(vVertexColor.$VC);\n\t#endif\n}\n`;\n\nvar tonemappingAcesPS = `\nuniform float exposure;\nvec3 toneMap(vec3 color) {\n\tfloat tA = 2.51;\n\tfloat tB = 0.03;\n\tfloat tC = 2.43;\n\tfloat tD = 0.59;\n\tfloat tE = 0.14;\n\tvec3 x = color * exposure;\n\treturn (x*(tA*x+tB))/(x*(tC*x+tD)+tE);\n}\n`;\n\nvar tonemappingAces2PS = `\nuniform float exposure;\nconst mat3 ACESInputMat = mat3(\n\t0.59719, 0.35458, 0.04823,\n\t0.07600, 0.90834, 0.01566,\n\t0.02840, 0.13383, 0.83777\n);\nconst mat3 ACESOutputMat = mat3(\n\t 1.60475, -0.53108, -0.07367,\n\t-0.10208,  1.10813, -0.00605,\n\t-0.00327, -0.07276,  1.07602\n);\nvec3 RRTAndODTFit(vec3 v) {\n\tvec3 a = v * (v + 0.0245786) - 0.000090537;\n\tvec3 b = v * (0.983729 * v + 0.4329510) + 0.238081;\n\treturn a / b;\n}\nvec3 toneMap(vec3 color) {\n\tcolor *= exposure / 0.6;\n\tcolor = color * ACESInputMat;\n\tcolor = RRTAndODTFit(color);\n\tcolor = color * ACESOutputMat;\n\tcolor = clamp(color, 0.0, 1.0);\n\treturn color;\n}\n`;\n\nvar tonemappingFilmicPS = `\nconst float A =  0.15;\nconst float B =  0.50;\nconst float C =  0.10;\nconst float D =  0.20;\nconst float E =  0.02;\nconst float F =  0.30;\nconst float W =  11.2;\nuniform float exposure;\nvec3 uncharted2Tonemap(vec3 x) {\n\t return ((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;\n}\nvec3 toneMap(vec3 color) {\n\tcolor = uncharted2Tonemap(color * exposure);\n\tvec3 whiteScale = 1.0 / uncharted2Tonemap(vec3(W,W,W));\n\tcolor = color * whiteScale;\n\treturn color;\n}\n`;\n\nvar tonemappingHejlPS = `\nuniform float exposure;\nvec3 toneMap(vec3 color) {\n\tcolor *= exposure;\n\tconst float  A = 0.22, B = 0.3, C = .1, D = 0.2, E = .01, F = 0.3;\n\tconst float Scl = 1.25;\n\tvec3 h = max( vec3(0.0), color - vec3(0.004) );\n\treturn (h*((Scl*A)*h+Scl*vec3(C*B,C*B,C*B))+Scl*vec3(D*E,D*E,D*E)) / (h*(A*h+vec3(B,B,B))+vec3(D*F,D*F,D*F)) - Scl*vec3(E/F,E/F,E/F);\n}\n`;\n\nvar tonemappingLinearPS = `\nuniform float exposure;\nvec3 toneMap(vec3 color) {\n\treturn color * exposure;\n}\n`;\n\nvar tonemappingNeutralPS = `\nuniform float exposure;\nvec3 toneMap(vec3 color) {\n\tcolor *= exposure;\n\tfloat startCompression = 0.8 - 0.04;\n\tfloat desaturation = 0.15;\n\tfloat x = min(color.r, min(color.g, color.b));\n\tfloat offset = x < 0.08 ? x - 6.25 * x * x : 0.04;\n\tcolor -= offset;\n\tfloat peak = max(color.r, max(color.g, color.b));\n\tif (peak < startCompression) return color;\n\tfloat d = 1. - startCompression;\n\tfloat newPeak = 1. - d * d / (peak + d - startCompression);\n\tcolor *= newPeak / peak;\n\tfloat g = 1. - 1. / (desaturation * (peak - newPeak) + 1.);\n\treturn mix(color, newPeak * vec3(1, 1, 1), g);\n}\n`;\n\nvar tonemappingNonePS = `\nvec3 toneMap(vec3 color) {\n\treturn color;\n}\n`;\n\nvar transformVS = `\n#ifdef PIXELSNAP\nuniform vec4 uScreenSize;\n#endif\n#ifdef SCREENSPACE\nuniform float projectionFlipY;\n#endif\n#ifdef MORPHING\nuniform vec4 morph_weights_a;\nuniform vec4 morph_weights_b;\n#endif\n#ifdef MORPHING_TEXTURE_BASED\n\tuniform vec4 morph_tex_params;\n\t#ifdef WEBGPU\n\t\tivec2 getTextureMorphCoords() {\n\t\t\tivec2 textureSize = ivec2(morph_tex_params.xy);\n\t\t\tint morphGridV = int(morph_vertex_id / textureSize.x);\n\t\t\tint morphGridU = int(morph_vertex_id - (morphGridV * textureSize.x));\n\t\t\tmorphGridV = textureSize.y - morphGridV - 1;\n\t\t\treturn ivec2(morphGridU, morphGridV);\n\t\t}\n\t#else\n\t\tvec2 getTextureMorphCoords() {\n\t\t\tvec2 textureSize = morph_tex_params.xy;\n\t\t\tvec2 invTextureSize = morph_tex_params.zw;\n\t\t\tfloat morphGridV = floor(morph_vertex_id * invTextureSize.x);\n\t\t\tfloat morphGridU = morph_vertex_id - (morphGridV * textureSize.x);\n\t\t\treturn vec2(morphGridU, morphGridV) * invTextureSize + (0.5 * invTextureSize);\n\t\t}\n\t#endif\n#endif\n#ifdef MORPHING_TEXTURE_BASED_POSITION\nuniform highp sampler2D morphPositionTex;\n#endif\nmat4 getModelMatrix() {\n\t#ifdef DYNAMICBATCH\n\treturn getBoneMatrix(vertex_boneIndices);\n\t#elif defined(SKIN)\n\treturn matrix_model * getSkinMatrix(vertex_boneIndices, vertex_boneWeights);\n\t#elif defined(INSTANCING)\n\treturn mat4(instance_line1, instance_line2, instance_line3, instance_line4);\n\t#else\n\treturn matrix_model;\n\t#endif\n}\nvec4 getPosition() {\n\tdModelMatrix = getModelMatrix();\n\tvec3 localPos = vertex_position;\n\t#ifdef NINESLICED\n\tlocalPos.xz *= outerScale;\n\tvec2 positiveUnitOffset = clamp(vertex_position.xz, vec2(0.0), vec2(1.0));\n\tvec2 negativeUnitOffset = clamp(-vertex_position.xz, vec2(0.0), vec2(1.0));\n\tlocalPos.xz += (-positiveUnitOffset * innerOffset.xy + negativeUnitOffset * innerOffset.zw) * vertex_texCoord0.xy;\n\tvTiledUv = (localPos.xz - outerScale + innerOffset.xy) * -0.5 + 1.0;\n\tlocalPos.xz *= -0.5;\n\tlocalPos = localPos.xzy;\n\t#endif\n\t#ifdef MORPHING\n\t#ifdef MORPHING_POS03\n\tlocalPos.xyz += morph_weights_a[0] * morph_pos0;\n\tlocalPos.xyz += morph_weights_a[1] * morph_pos1;\n\tlocalPos.xyz += morph_weights_a[2] * morph_pos2;\n\tlocalPos.xyz += morph_weights_a[3] * morph_pos3;\n\t#endif\n\t#ifdef MORPHING_POS47\n\tlocalPos.xyz += morph_weights_b[0] * morph_pos4;\n\tlocalPos.xyz += morph_weights_b[1] * morph_pos5;\n\tlocalPos.xyz += morph_weights_b[2] * morph_pos6;\n\tlocalPos.xyz += morph_weights_b[3] * morph_pos7;\n\t#endif\n\t#endif\n\t#ifdef MORPHING_TEXTURE_BASED_POSITION\n\t\t#ifdef WEBGPU\n\t\t\tivec2 morphUV = getTextureMorphCoords();\n\t\t\tvec3 morphPos = texelFetch(morphPositionTex, ivec2(morphUV), 0).xyz;\n\t\t#else\n\t\t\tvec2 morphUV = getTextureMorphCoords();\n\t\t\tvec3 morphPos = texture2D(morphPositionTex, morphUV).xyz;\n\t\t#endif\n\t\tlocalPos += morphPos;\n\t#endif\n\tvec4 posW = dModelMatrix * vec4(localPos, 1.0);\n\t#ifdef SCREENSPACE\n\tposW.zw = vec2(0.0, 1.0);\n\t#endif\n\tdPositionW = posW.xyz;\n\tvec4 screenPos;\n\t#ifdef UV1LAYOUT\n\tscreenPos = vec4(vertex_texCoord1.xy * 2.0 - 1.0, 0.5, 1);\n\t\t#ifdef WEBGPU\n\t\tscreenPos.y *= -1.0;\n\t\t#endif\n\t#else\n\t#ifdef SCREENSPACE\n\tscreenPos = posW;\n\tscreenPos.y *= projectionFlipY;\n\t#else\n\tscreenPos = matrix_viewProjection * posW;\n\t#endif\n\t#ifdef PIXELSNAP\n\tscreenPos.xy = (screenPos.xy * 0.5) + 0.5;\n\tscreenPos.xy *= uScreenSize.xy;\n\tscreenPos.xy = floor(screenPos.xy);\n\tscreenPos.xy *= uScreenSize.zw;\n\tscreenPos.xy = (screenPos.xy * 2.0) - 1.0;\n\t#endif\n\t#endif\n\treturn screenPos;\n}\nvec3 getWorldPosition() {\n\treturn dPositionW;\n}\n`;\n\nvar transformDeclVS = `\nattribute vec3 vertex_position;\nuniform mat4 matrix_model;\nuniform mat4 matrix_viewProjection;\nvec3 dPositionW;\nmat4 dModelMatrix;\n`;\n\nvar transmissionPS = `\n#ifdef MAPFLOAT\nuniform float material_refraction;\n#endif\nvoid getRefraction() {\n\tfloat refraction = 1.0;\n\t#ifdef MAPFLOAT\n\trefraction = material_refraction;\n\t#endif\n\t#ifdef MAPTEXTURE\n\trefraction *= texture2DBias($SAMPLER, $UV, textureBias).$CH;\n\t#endif\n\t#ifdef MAPVERTEX\n\trefraction *= saturate(vVertexColor.$VC);\n\t#endif\n\tdTransmission = refraction;\n}\n`;\n\nvar twoSidedLightingPS = `\nuniform float twoSidedLightingNegScaleFactor;\nvoid handleTwoSidedLighting() {\n\tdTBN[2] *= gl_FrontFacing ? twoSidedLightingNegScaleFactor : -twoSidedLightingNegScaleFactor;\n}\n`;\n\nvar uv0VS = `\n#ifdef NINESLICED\nvec2 getUv0() {\n\tvec2 uv = vertex_position.xz;\n\tvec2 positiveUnitOffset = clamp(vertex_position.xz, vec2(0.0), vec2(1.0));\n\tvec2 negativeUnitOffset = clamp(-vertex_position.xz, vec2(0.0), vec2(1.0));\n\tuv += (-positiveUnitOffset * innerOffset.xy + negativeUnitOffset * innerOffset.zw) * vertex_texCoord0.xy;\n\tuv = uv * -0.5 + 0.5;\n\tuv = uv * atlasRect.zw + atlasRect.xy;\n\tvMask = vertex_texCoord0.xy;\n\treturn uv;\n}\n#else\nvec2 getUv0() {\n\treturn vertex_texCoord0;\n}\n#endif\n`;\n\nvar uv1VS = `\nvec2 getUv1() {\n\treturn vertex_texCoord1;\n}\n`;\n\nvar viewDirPS = `\nvoid getViewDir() {\n\tdViewDirW = normalize(view_position - vPositionW);\n}\n`;\n\nvar viewNormalVS = `\n#ifndef VIEWMATRIX\n#define VIEWMATRIX\nuniform mat4 matrix_view;\n#endif\nvec3 getViewNormal() {\n\treturn mat3(matrix_view) * vNormalW;\n}\n`;\n\nconst shaderChunks = {\n\talphaTestPS,\n\tambientConstantPS,\n\tambientEnvPS,\n\tambientSHPS,\n\taoPS,\n\taoDetailMapPS,\n\taoDiffuseOccPS,\n\taoSpecOccPS,\n\taoSpecOccConstPS,\n\taoSpecOccConstSimplePS,\n\taoSpecOccSimplePS,\n\tbasePS,\n\tbaseVS,\n\tbaseNineSlicedPS,\n\tbaseNineSlicedVS,\n\tbaseNineSlicedTiledPS,\n\tbayerPS,\n\tbiasConstPS,\n\tblurVSMPS,\n\tclearCoatPS,\n\tclearCoatGlossPS,\n\tclearCoatNormalPS,\n\tclusteredLightCookiesPS,\n\tclusteredLightShadowsPS,\n\tclusteredLightUtilsPS,\n\tclusteredLightPS,\n\tcombinePS,\n\tcookiePS,\n\tcubeMapProjectBoxPS,\n\tcubeMapProjectNonePS,\n\tcubeMapRotatePS,\n\tdebugOutputPS,\n\tdebugProcessFrontendPS,\n\tdetailModesPS,\n\tdiffusePS,\n\tdiffuseDetailMapPS,\n\tdecodePS,\n\temissivePS,\n\tencodePS,\n\tendPS,\n\tendVS,\n\tenvAtlasPS,\n\tenvConstPS,\n\tenvMultiplyPS,\n\textensionPS,\n\textensionVS,\n\tfalloffInvSquaredPS,\n\tfalloffLinearPS,\n\tfixCubemapSeamsNonePS,\n\tfixCubemapSeamsStretchPS,\n\tfloatUnpackingPS,\n\tfogExpPS,\n\tfogExp2PS,\n\tfogLinearPS,\n\tfogNonePS,\n\tfresnelSchlickPS,\n\tfullscreenQuadPS,\n\tfullscreenQuadVS,\n\tgamma1_0PS,\n\tgamma2_2PS,\n\tgles2PS,\n\tgles2VS,\n\tgles3PS,\n\tgles3VS,\n\tglossPS,\n\tiridescenceDiffractionPS,\n\tiridescencePS,\n\tiridescenceThicknessPS,\n\tinstancingVS,\n\tiorPS,\n\tlightDiffuseLambertPS,\n\tlightDirPointPS,\n\tlightmapAddPS,\n\tlightmapDirAddPS,\n\tlightmapDirPS,\n\tlightmapSinglePS,\n\tlightSpecularAnisoGGXPS,\n\tlightSpecularBlinnPS,\n\tlightSpecularPhongPS,\n\tlightSheenPS,\n\tlinearizeDepthPS,\n\tlitShaderArgsPS,\n\tltcPS,\n\tmetalnessPS,\n\tmetalnessModulatePS,\n\tmsdfPS,\n\tmsdfVS,\n\tnormalVS,\n\tnormalDetailMapPS,\n\tnormalInstancedVS,\n\tnormalMapPS,\n\tnormalSkinnedVS,\n\tnormalXYPS,\n\tnormalXYZPS,\n\topacityPS,\n\topacityDitherPS,\n\toutputPS,\n\toutputAlphaPS,\n\toutputAlphaOpaquePS,\n\toutputAlphaPremulPS,\n\toutputTex2DPS,\n\tpackDepthPS,\n\tsheenPS,\n\tsheenGlossPS,\n\tparallaxPS,\n\tparticlePS,\n\tparticleVS,\n\tparticleAnimFrameClampVS,\n\tparticleAnimFrameLoopVS,\n\tparticleAnimTexVS,\n\tparticleInputFloatPS,\n\tparticleInputRgba8PS,\n\tparticleOutputFloatPS,\n\tparticleOutputRgba8PS,\n\tparticleUpdaterAABBPS,\n\tparticleUpdaterEndPS,\n\tparticleUpdaterInitPS,\n\tparticleUpdaterNoRespawnPS,\n\tparticleUpdaterOnStopPS,\n\tparticleUpdaterRespawnPS,\n\tparticleUpdaterSpherePS,\n\tparticleUpdaterStartPS,\n\tparticle_billboardVS,\n\tparticle_blendAddPS,\n\tparticle_blendMultiplyPS,\n\tparticle_blendNormalPS,\n\tparticle_cpuVS,\n\tparticle_cpu_endVS,\n\tparticle_customFaceVS,\n\tparticle_endPS,\n\tparticle_endVS,\n\tparticle_halflambertPS,\n\tparticle_initVS,\n\tparticle_lambertPS,\n\tparticle_lightingPS,\n\tparticle_localShiftVS,\n\tparticle_meshVS,\n\tparticle_normalVS,\n\tparticle_normalMapPS,\n\tparticle_pointAlongVS,\n\tparticle_softPS,\n\tparticle_softVS,\n\tparticle_stretchVS,\n\tparticle_TBNVS,\n\tparticle_wrapVS,\n\treflDirPS,\n\treflDirAnisoPS,\n\treflectionCCPS,\n\treflectionCubePS,\n\treflectionEnvHQPS,\n\treflectionEnvPS,\n\treflectionSpherePS,\n\treflectionSheenPS,\n\trefractionCubePS,\n\trefractionDynamicPS,\n\treprojectPS,\n\tsampleCatmullRomPS,\n\tscreenDepthPS,\n\tshadowCascadesPS,\n\tshadowEVSMPS,\n\tshadowEVSMnPS,\n\tshadowPCSSPS,\n\tshadowSampleCoordPS,\n\tshadowStandardPS,\n\tshadowStandardGL2PS,\n\tshadowVSM8PS,\n\tshadowVSM_commonPS,\n\tskinBatchConstVS,\n\tskinBatchTexVS,\n\tskinConstVS,\n\tskinTexVS,\n\tskyboxEnvPS,\n\tskyboxHDRPS,\n\tskyboxVS,\n\tspecularPS,\n\tsphericalPS,\n\tspecularityFactorPS,\n\tspotPS,\n\tstartPS,\n\tstartVS,\n\tstartNineSlicedPS,\n\tstartNineSlicedTiledPS,\n\tstoreEVSMPS,\n\ttangentBinormalVS,\n\tTBNPS,\n\tTBNderivativePS,\n\tTBNfastPS,\n\tTBNObjectSpacePS,\n\ttextureSamplePS,\n\tthicknessPS,\n\ttonemappingAcesPS,\n\ttonemappingAces2PS,\n\ttonemappingFilmicPS,\n\ttonemappingHejlPS,\n\ttonemappingLinearPS,\n\ttonemappingNeutralPS,\n\ttonemappingNonePS,\n\ttransformVS,\n\ttransformDeclVS,\n\ttransmissionPS,\n\ttwoSidedLightingPS,\n\tuv0VS,\n\tuv1VS,\n\tviewDirPS,\n\tviewNormalVS,\n\twebgpuPS,\n\twebgpuVS\n};\n\nconst programLibraryDeviceCache = new DeviceCache();\nfunction getProgramLibrary(device) {\n\tconst library = programLibraryDeviceCache.get(device);\n\treturn library;\n}\nfunction setProgramLibrary(device, library) {\n\tprogramLibraryDeviceCache.get(device, () => {\n\t\treturn library;\n\t});\n}\n\nclass ShaderGenerator {\n\tstatic begin() {\n\t\treturn 'void main(void)\\n{\\n';\n\t}\n\tstatic end() {\n\t\treturn '}\\n';\n\t}\n\tstatic skinCode(device, chunks = shaderChunks) {\n\t\tif (device.supportsBoneTextures) {\n\t\t\treturn chunks.skinTexVS;\n\t\t}\n\t\treturn `#define BONE_LIMIT ${device.getBoneLimit()}\\n${chunks.skinConstVS}`;\n\t}\n\tstatic fogCode(value, chunks = shaderChunks) {\n\t\tif (value === 'linear') {\n\t\t\treturn chunks.fogLinearPS ? chunks.fogLinearPS : shaderChunks.fogLinearPS;\n\t\t} else if (value === 'exp') {\n\t\t\treturn chunks.fogExpPS ? chunks.fogExpPS : shaderChunks.fogExpPS;\n\t\t} else if (value === 'exp2') {\n\t\t\treturn chunks.fogExp2PS ? chunks.fogExp2PS : shaderChunks.fogExp2PS;\n\t\t}\n\t\treturn chunks.fogNonePS ? chunks.fogNonePS : shaderChunks.fogNonePS;\n\t}\n\tstatic gammaCode(value, chunks = shaderChunks) {\n\t\tif (value === GAMMA_SRGB || value === GAMMA_SRGBFAST) {\n\t\t\treturn chunks.gamma2_2PS ? chunks.gamma2_2PS : shaderChunks.gamma2_2PS;\n\t\t} else if (value === GAMMA_SRGBHDR) {\n\t\t\treturn `#define HDR\\n${chunks.gamma2_2PS ? chunks.gamma2_2PS : shaderChunks.gamma2_2PS}`;\n\t\t}\n\t\treturn chunks.gamma1_0PS ? chunks.gamma1_0PS : shaderChunks.gamma1_0PS;\n\t}\n\tstatic tonemapCode(value, chunks = shaderChunks) {\n\t\tvar _chunks$tonemappingFi, _chunks$tonemappingLi, _chunks$tonemappingHe, _chunks$tonemappingAc, _chunks$tonemappingAc2, _chunks$tonemappingNe, _chunks$tonemapingNon;\n\t\tswitch (value) {\n\t\t\tcase TONEMAP_FILMIC:\n\t\t\t\treturn (_chunks$tonemappingFi = chunks.tonemappingFilmicPS) != null ? _chunks$tonemappingFi : shaderChunks.tonemappingFilmicPS;\n\t\t\tcase TONEMAP_LINEAR:\n\t\t\t\treturn (_chunks$tonemappingLi = chunks.tonemappingLinearPS) != null ? _chunks$tonemappingLi : shaderChunks.tonemappingLinearPS;\n\t\t\tcase TONEMAP_HEJL:\n\t\t\t\treturn (_chunks$tonemappingHe = chunks.tonemappingHejlPS) != null ? _chunks$tonemappingHe : shaderChunks.tonemappingHejlPS;\n\t\t\tcase TONEMAP_ACES:\n\t\t\t\treturn (_chunks$tonemappingAc = chunks.tonemappingAcesPS) != null ? _chunks$tonemappingAc : shaderChunks.tonemappingAcesPS;\n\t\t\tcase TONEMAP_ACES2:\n\t\t\t\treturn (_chunks$tonemappingAc2 = chunks.tonemappingAces2PS) != null ? _chunks$tonemappingAc2 : shaderChunks.tonemappingAces2PS;\n\t\t\tcase TONEMAP_NEUTRAL:\n\t\t\t\treturn (_chunks$tonemappingNe = chunks.tonemappingNeutralPS) != null ? _chunks$tonemappingNe : shaderChunks.tonemappingNeutralPS;\n\t\t}\n\t\treturn (_chunks$tonemapingNon = chunks.tonemapingNonePS) != null ? _chunks$tonemapingNon : shaderChunks.tonemappingNonePS;\n\t}\n}\n\nfunction createShader(device, vsName, fsName, useTransformFeedback = false, shaderDefinitionOptions = {}) {\n\tif (typeof useTransformFeedback === 'boolean') {\n\t\tshaderDefinitionOptions.useTransformFeedback = useTransformFeedback;\n\t} else if (typeof useTransformFeedback === 'object') {\n\t\tshaderDefinitionOptions = _extends({}, shaderDefinitionOptions, useTransformFeedback);\n\t}\n\treturn new Shader(device, ShaderUtils.createDefinition(device, _extends({}, shaderDefinitionOptions, {\n\t\tname: `${vsName}_${fsName}`,\n\t\tvertexCode: shaderChunks[vsName],\n\t\tfragmentCode: shaderChunks[fsName]\n\t})));\n}\nfunction createShaderFromCode(device, vsCode, fsCode, uniqueName, attributes, useTransformFeedback = false, shaderDefinitionOptions = {}) {\n\tif (typeof useTransformFeedback === 'boolean') {\n\t\tshaderDefinitionOptions.useTransformFeedback = useTransformFeedback;\n\t} else if (typeof useTransformFeedback === 'object') {\n\t\tshaderDefinitionOptions = _extends({}, shaderDefinitionOptions, useTransformFeedback);\n\t}\n\tconst programLibrary = getProgramLibrary(device);\n\tlet shader = programLibrary.getCachedShader(uniqueName);\n\tif (!shader) {\n\t\tshader = new Shader(device, ShaderUtils.createDefinition(device, _extends({}, shaderDefinitionOptions, {\n\t\t\tname: uniqueName,\n\t\t\tvertexCode: vsCode,\n\t\t\tfragmentCode: fsCode,\n\t\t\tattributes: attributes\n\t\t})));\n\t\tprogramLibrary.setCachedShader(uniqueName, shader);\n\t}\n\treturn shader;\n}\nclass ShaderGeneratorPassThrough extends ShaderGenerator {\n\tconstructor(key, shaderDefinition) {\n\t\tsuper();\n\t\tthis.key = key;\n\t\tthis.shaderDefinition = shaderDefinition;\n\t}\n\tgenerateKey(options) {\n\t\treturn this.key;\n\t}\n\tcreateShaderDefinition(device, options) {\n\t\treturn this.shaderDefinition;\n\t}\n}\nfunction processShader(shader, processingOptions) {\n\tvar _shaderDefinition$nam;\n\tconst shaderDefinition = shader.definition;\n\tconst name = (_shaderDefinition$nam = shaderDefinition.name) != null ? _shaderDefinition$nam : 'shader';\n\tconst key = `${name}-id-${shader.id}`;\n\tconst materialGenerator = new ShaderGeneratorPassThrough(key, shaderDefinition);\n\tconst libraryModuleName = 'shader';\n\tconst library = getProgramLibrary(shader.device);\n\tlibrary.register(libraryModuleName, materialGenerator);\n\tconst variant = library.getProgram(libraryModuleName, {}, processingOptions);\n\tif (shader.definition.shaderLanguage === SHADERLANGUAGE_WGSL) {\n\t\tvariant.meshUniformBufferFormat = shaderDefinition.meshUniformBufferFormat;\n\t\tvariant.meshBindGroupFormat = shaderDefinition.meshBindGroupFormat;\n\t}\n\tlibrary.unregister(libraryModuleName);\n\treturn variant;\n}\nshaderChunks.createShader = createShader;\nshaderChunks.createShaderFromCode = createShaderFromCode;\n\nconst _quadPrimitive = {\n\ttype: PRIMITIVE_TRISTRIP,\n\tbase: 0,\n\tcount: 4,\n\tindexed: false\n};\nconst _tempViewport = new Vec4();\nconst _tempScissor = new Vec4();\nclass QuadRender {\n\tconstructor(shader) {\n\t\tthis.uniformBuffer = void 0;\n\t\tthis.bindGroup = void 0;\n\t\tconst device = shader.device;\n\t\tthis.shader = shader;\n\t\tif (device.supportsUniformBuffers) {\n\t\t\tconst processingOptions = new ShaderProcessorOptions();\n\t\t\tthis.shader = processShader(shader, processingOptions);\n\t\t\tconst ubFormat = this.shader.meshUniformBufferFormat;\n\t\t\tif (ubFormat) {\n\t\t\t\tthis.uniformBuffer = new UniformBuffer(device, ubFormat, false);\n\t\t\t}\n\t\t\tconst bindGroupFormat = this.shader.meshBindGroupFormat;\n\t\t\tthis.bindGroup = new BindGroup(device, bindGroupFormat, this.uniformBuffer);\n\t\t}\n\t}\n\tdestroy() {\n\t\tvar _this$uniformBuffer, _this$bindGroup;\n\t\t(_this$uniformBuffer = this.uniformBuffer) == null || _this$uniformBuffer.destroy();\n\t\tthis.uniformBuffer = null;\n\t\t(_this$bindGroup = this.bindGroup) == null || _this$bindGroup.destroy();\n\t\tthis.bindGroup = null;\n\t}\n\trender(viewport, scissor) {\n\t\tconst device = this.shader.device;\n\t\tif (viewport) {\n\t\t\tvar _scissor;\n\t\t\t_tempViewport.set(device.vx, device.vy, device.vw, device.vh);\n\t\t\t_tempScissor.set(device.sx, device.sy, device.sw, device.sh);\n\t\t\tscissor = (_scissor = scissor) != null ? _scissor : viewport;\n\t\t\tdevice.setViewport(viewport.x, viewport.y, viewport.z, viewport.w);\n\t\t\tdevice.setScissor(scissor.x, scissor.y, scissor.z, scissor.w);\n\t\t}\n\t\tdevice.setVertexBuffer(device.quadVertexBuffer, 0);\n\t\tconst shader = this.shader;\n\t\tdevice.setShader(shader);\n\t\tif (device.supportsUniformBuffers) {\n\t\t\tvar _bindGroup$defaultUni;\n\t\t\tconst bindGroup = this.bindGroup;\n\t\t\t(_bindGroup$defaultUni = bindGroup.defaultUniformBuffer) == null || _bindGroup$defaultUni.update();\n\t\t\tbindGroup.update();\n\t\t\tdevice.setBindGroup(BINDGROUP_MESH, bindGroup);\n\t\t}\n\t\tdevice.draw(_quadPrimitive);\n\t\tif (viewport) {\n\t\t\tdevice.setViewport(_tempViewport.x, _tempViewport.y, _tempViewport.z, _tempViewport.w);\n\t\t\tdevice.setScissor(_tempScissor.x, _tempScissor.y, _tempScissor.z, _tempScissor.w);\n\t\t}\n\t}\n}\n\nclass RenderPassQuad extends RenderPass {\n\tconstructor(device, quad, rect, scissorRect) {\n\t\tsuper(device);\n\t\tthis.quad = quad;\n\t\tthis.rect = rect;\n\t\tthis.scissorRect = scissorRect;\n\t}\n\texecute() {\n\t\tconst {\n\t\t\tdevice\n\t\t} = this;\n\t\tdevice.setCullMode(CULLFACE_NONE);\n\t\tdevice.setDepthState(DepthState.NODEPTH);\n\t\tdevice.setStencilState(null, null);\n\t\tthis.quad.render(this.rect, this.scissorRect);\n\t}\n}\n\nconst _tempRect = new Vec4();\nfunction drawQuadWithShader(device, target, shader, rect, scissorRect) {\n\tconst quad = new QuadRender(shader);\n\tif (!rect) {\n\t\trect = _tempRect;\n\t\trect.x = 0;\n\t\trect.y = 0;\n\t\trect.z = target ? target.width : device.width;\n\t\trect.w = target ? target.height : device.height;\n\t}\n\tconst renderPass = new RenderPassQuad(device, quad, rect, scissorRect);\n\trenderPass.init(target);\n\trenderPass.colorOps.clear = false;\n\trenderPass.depthStencilOps.clearDepth = false;\n\tif (device.isWebGPU && target === null && device.samples > 1) {\n\t\trenderPass.colorOps.store = true;\n\t}\n\trenderPass.render();\n\tquad.destroy();\n}\nfunction drawTexture(device, texture, target, shader, rect, scissorRect) {\n\tshader = shader || device.getCopyShader();\n\tdevice.constantTexSource.setValue(texture);\n\tdrawQuadWithShader(device, target, shader, rect, scissorRect);\n}\n\nconst shaderPassDeviceCache = new DeviceCache();\nclass ShaderPassInfo {\n\tconstructor(name, index, options = {}) {\n\t\tthis.index = void 0;\n\t\tthis.name = void 0;\n\t\tthis.shaderDefines = void 0;\n\t\tthis.name = name;\n\t\tthis.index = index;\n\t\tObject.assign(this, options);\n\t\tthis.shaderDefines = this.buildShaderDefines();\n\t}\n\tbuildShaderDefines() {\n\t\tlet keyword;\n\t\tif (this.isShadow) {\n\t\t\tkeyword = 'SHADOW';\n\t\t} else if (this.isForward) {\n\t\t\tkeyword = 'FORWARD';\n\t\t} else if (this.index === SHADER_DEPTH) {\n\t\t\tkeyword = 'DEPTH';\n\t\t} else if (this.index === SHADER_PICK) {\n\t\t\tkeyword = 'PICK';\n\t\t}\n\t\tconst define1 = keyword ? `#define ${keyword}_PASS\\n` : '';\n\t\tconst define2 = `#define ${this.name.toUpperCase()}_PASS\\n`;\n\t\treturn define1 + define2;\n\t}\n}\nclass ShaderPass {\n\tconstructor() {\n\t\tthis.passesNamed = new Map();\n\t\tthis.passesIndexed = [];\n\t\tthis.nextIndex = 0;\n\t\tconst add = (name, index, options) => {\n\t\t\tthis.allocate(name, options);\n\t\t};\n\t\tadd('forward', SHADER_FORWARD, {\n\t\t\tisForward: true\n\t\t});\n\t\tadd('forward_hdr', SHADER_FORWARDHDR, {\n\t\t\tisForward: true\n\t\t});\n\t\tadd('depth');\n\t\tadd('pick');\n\t\tadd('shadow');\n\t\tadd('prepass');\n\t}\n\tstatic get(device) {\n\t\treturn shaderPassDeviceCache.get(device, () => {\n\t\t\treturn new ShaderPass();\n\t\t});\n\t}\n\tallocate(name, options) {\n\t\tlet info = this.passesNamed.get(name);\n\t\tif (info === undefined) {\n\t\t\tinfo = new ShaderPassInfo(name, this.nextIndex, options);\n\t\t\tthis.passesNamed.set(info.name, info);\n\t\t\tthis.passesIndexed[info.index] = info;\n\t\t\tthis.nextIndex++;\n\t\t}\n\t\treturn info;\n\t}\n\tgetByIndex(index) {\n\t\tconst info = this.passesIndexed[index];\n\t\treturn info;\n\t}\n\tgetByName(name) {\n\t\treturn this.passesNamed.get(name);\n\t}\n}\n\nconst vShader = `\n\n\t\t#include \"shaderPassDefines\"\n\t\t#include \"transformDeclVS\"\n\n\t\t#ifdef SKIN\n\t\t\t\t#include \"skinCode\"\n\t\t#endif\n\n\t\t#include \"transformVS\"\n\n\t\t#ifdef VERTEX_COLORS\n\t\t\t\tattribute vec4 vertex_color;\n\t\t\t\tvarying vec4 vColor;\n\t\t#endif\n\n\t\t#ifdef DIFFUSE_MAP\n\t\t\t\tattribute vec2 vertex_texCoord0;\n\t\t\t\tvarying vec2 vUv0;\n\t\t#endif\n\n\t\t#ifdef DEPTH_PASS\n\t\t\t\tvarying float vDepth;\n\t\t\t\t\n\t\t\t\t#ifndef VIEWMATRIX\n\t\t\t\t#define VIEWMATRIX\n\t\t\t\t\t\tuniform mat4 matrix_view;\n\t\t\t\t#endif\n\n\t\t\t\t#ifndef CAMERAPLANES\n\t\t\t\t#define CAMERAPLANES\n\t\t\t\t\t\tuniform vec4 camera_params;\n\t\t\t\t#endif\n\t\t#endif\n\n\t\tvoid main(void) {\n\t\t\t\tgl_Position = getPosition();\n\n\t\t\t\t#ifdef DEPTH_PASS\n\t\t\t\t\t\tvDepth = -(matrix_view * vec4(getWorldPosition(),1.0)).z * camera_params.x;\n\t\t\t\t#endif        \n\n\t\t\t\t#ifdef VERTEX_COLORS\n\t\t\t\t\t\tvColor = vertex_color;\n\t\t\t\t#endif\n\n\t\t\t\t#ifdef DIFFUSE_MAP\n\t\t\t\t\t\tvUv0 = vertex_texCoord0;\n\t\t\t\t#endif\n\t\t}\n`;\nconst fShader$1 = `\n\n\t\t#include \"shaderPassDefines\"\n\n\t\t#ifdef VERTEX_COLORS\n\t\t\t\tvarying vec4 vColor;\n\t\t#else\n\t\t\t\tuniform vec4 uColor;\n\t\t#endif\n\n\t\t#ifdef DIFFUSE_MAP\n\t\t\t\tvarying vec2 vUv0;\n\t\t\t\tuniform sampler2D texture_diffuseMap;\n\t\t#endif\n\n\t\t#ifdef FOG\n\t\t\t\t#include \"fogCode\"\n\t\t#endif\n\n\t\t#ifdef ALPHA_TEST\n\t\t\t\t#include \"alphaTestPS\"\n\t\t#endif\n\n\t\t#ifdef DEPTH_PASS\n\t\t\t\tvarying float vDepth;\n\t\t\t\t#include \"packDepthPS\"\n\t\t#endif\n\n\t\tvoid main(void) {\n\n\t\t\t\t#ifdef VERTEX_COLORS\n\t\t\t\t\t\tgl_FragColor = vColor;\n\t\t\t\t#else\n\t\t\t\t\t\tgl_FragColor = uColor;\n\t\t\t\t#endif\n\n\t\t\t\t#ifdef DIFFUSE_MAP\n\t\t\t\t\t\tgl_FragColor *= texture2D(texture_diffuseMap, vUv0);\n\t\t\t\t#endif\n\n\t\t\t\t#ifdef ALPHA_TEST\n\t\t\t\t\t\talphaTest(gl_FragColor.a);\n\t\t\t\t#endif\n\n\t\t\t\t#ifndef PICK_PASS\n\n\t\t\t\t\t\t#ifdef DEPTH_PASS\n\t\t\t\t\t\t\t\tgl_FragColor = packFloat(vDepth);\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t\t#ifdef FOG\n\t\t\t\t\t\t\t\t\t\tglFragColor.rgb = addFog(gl_FragColor.rgb);\n\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t#endif\n\t\t}\n`;\nclass ShaderGeneratorBasic extends ShaderGenerator {\n\tgenerateKey(options) {\n\t\tlet key = 'basic';\n\t\tif (options.fog) key += '_fog';\n\t\tif (options.alphaTest) key += '_atst';\n\t\tif (options.vertexColors) key += '_vcol';\n\t\tif (options.diffuseMap) key += '_diff';\n\t\tif (options.skin) key += '_skin';\n\t\tif (options.screenSpace) key += '_ss';\n\t\tif (options.useInstancing) key += '_inst';\n\t\tif (options.useMorphPosition) key += '_morphp';\n\t\tif (options.useMorphNormal) key += '_morphn';\n\t\tif (options.useMorphTextureBased) key += '_morpht';\n\t\tkey += `_${options.pass}`;\n\t\treturn key;\n\t}\n\tcreateAttributesDefinition(definitionOptions, options) {\n\t\tconst attributes = {\n\t\t\tvertex_position: SEMANTIC_POSITION\n\t\t};\n\t\tif (options.skin) {\n\t\t\tattributes.vertex_boneWeights = SEMANTIC_BLENDWEIGHT;\n\t\t\tattributes.vertex_boneIndices = SEMANTIC_BLENDINDICES;\n\t\t}\n\t\tif (options.vertexColors) {\n\t\t\tattributes.vertex_color = SEMANTIC_COLOR;\n\t\t}\n\t\tif (options.diffuseMap) {\n\t\t\tattributes.vertex_texCoord0 = SEMANTIC_TEXCOORD0;\n\t\t}\n\t\tdefinitionOptions.attributes = attributes;\n\t}\n\tcreateVertexDefinition(device, definitionOptions, options, shaderPassInfo) {\n\t\tconst includes = new Map();\n\t\tconst defines = new Map();\n\t\tincludes.set('shaderPassDefines', shaderPassInfo.shaderDefines);\n\t\tincludes.set('transformDeclVS', shaderChunks.transformDeclVS);\n\t\tincludes.set('transformVS', shaderChunks.transformVS);\n\t\tincludes.set('skinCode', ShaderGenerator.skinCode(device));\n\t\tif (options.skin) defines.set('SKIN', true);\n\t\tif (options.vertexColors) defines.set('VERTEX_COLORS', true);\n\t\tif (options.diffuseMap) defines.set('DIFFUSE_MAP', true);\n\t\tdefinitionOptions.vertexCode = vShader;\n\t\tdefinitionOptions.vertexIncludes = includes;\n\t\tdefinitionOptions.vertexDefines = defines;\n\t}\n\tcreateFragmentDefinition(definitionOptions, options, shaderPassInfo) {\n\t\tconst includes = new Map();\n\t\tconst defines = new Map();\n\t\tincludes.set('shaderPassDefines', shaderPassInfo.shaderDefines);\n\t\tincludes.set('fogCode', ShaderGenerator.fogCode(options.fog));\n\t\tincludes.set('alphaTestPS', shaderChunks.alphaTestPS);\n\t\tincludes.set('packDepthPS', shaderChunks.packDepthPS);\n\t\tif (options.vertexColors) defines.set('VERTEX_COLORS', true);\n\t\tif (options.diffuseMap) defines.set('DIFFUSE_MAP', true);\n\t\tif (options.fog) defines.set('FOG', true);\n\t\tif (options.alphaTest) defines.set('ALPHA_TEST', true);\n\t\tdefinitionOptions.fragmentCode = fShader$1;\n\t\tdefinitionOptions.fragmentIncludes = includes;\n\t\tdefinitionOptions.fragmentDefines = defines;\n\t}\n\tcreateShaderDefinition(device, options) {\n\t\tconst definitionOptions = {\n\t\t\tname: 'BasicShader'\n\t\t};\n\t\tconst shaderPassInfo = ShaderPass.get(device).getByIndex(options.pass);\n\t\tthis.createAttributesDefinition(definitionOptions, options);\n\t\tthis.createVertexDefinition(device, definitionOptions, options, shaderPassInfo);\n\t\tthis.createFragmentDefinition(definitionOptions, options, shaderPassInfo);\n\t\treturn ShaderUtils.createDefinition(device, definitionOptions);\n\t}\n}\nconst basic = new ShaderGeneratorBasic();\n\nconst defaultMaterialDeviceCache = new DeviceCache();\nfunction getDefaultMaterial(device) {\n\tconst material = defaultMaterialDeviceCache.get(device);\n\treturn material;\n}\nfunction setDefaultMaterial(device, material) {\n\tdefaultMaterialDeviceCache.get(device, () => {\n\t\treturn material;\n\t});\n}\n\nconst blendModes = [];\nblendModes[BLEND_SUBTRACTIVE] = {\n\tsrc: BLENDMODE_ONE,\n\tdst: BLENDMODE_ONE,\n\top: BLENDEQUATION_REVERSE_SUBTRACT\n};\nblendModes[BLEND_NONE] = {\n\tsrc: BLENDMODE_ONE,\n\tdst: BLENDMODE_ZERO,\n\top: BLENDEQUATION_ADD\n};\nblendModes[BLEND_NORMAL] = {\n\tsrc: BLENDMODE_SRC_ALPHA,\n\tdst: BLENDMODE_ONE_MINUS_SRC_ALPHA,\n\top: BLENDEQUATION_ADD\n};\nblendModes[BLEND_PREMULTIPLIED] = {\n\tsrc: BLENDMODE_ONE,\n\tdst: BLENDMODE_ONE_MINUS_SRC_ALPHA,\n\top: BLENDEQUATION_ADD\n};\nblendModes[BLEND_ADDITIVE] = {\n\tsrc: BLENDMODE_ONE,\n\tdst: BLENDMODE_ONE,\n\top: BLENDEQUATION_ADD\n};\nblendModes[BLEND_ADDITIVEALPHA] = {\n\tsrc: BLENDMODE_SRC_ALPHA,\n\tdst: BLENDMODE_ONE,\n\top: BLENDEQUATION_ADD\n};\nblendModes[BLEND_MULTIPLICATIVE2X] = {\n\tsrc: BLENDMODE_DST_COLOR,\n\tdst: BLENDMODE_SRC_COLOR,\n\top: BLENDEQUATION_ADD\n};\nblendModes[BLEND_SCREEN] = {\n\tsrc: BLENDMODE_ONE_MINUS_DST_COLOR,\n\tdst: BLENDMODE_ONE,\n\top: BLENDEQUATION_ADD\n};\nblendModes[BLEND_MULTIPLICATIVE] = {\n\tsrc: BLENDMODE_DST_COLOR,\n\tdst: BLENDMODE_ZERO,\n\top: BLENDEQUATION_ADD\n};\nblendModes[BLEND_MIN] = {\n\tsrc: BLENDMODE_ONE,\n\tdst: BLENDMODE_ONE,\n\top: BLENDEQUATION_MIN\n};\nblendModes[BLEND_MAX] = {\n\tsrc: BLENDMODE_ONE,\n\tdst: BLENDMODE_ONE,\n\top: BLENDEQUATION_MAX\n};\nlet id$3 = 0;\nclass Material {\n\tconstructor() {\n\t\tthis._shader = null;\n\t\tthis.meshInstances = [];\n\t\tthis.name = 'Untitled';\n\t\tthis.userId = '';\n\t\tthis.id = id$3++;\n\t\tthis.variants = new Map();\n\t\tthis.parameters = {};\n\t\tthis.alphaTest = 0;\n\t\tthis.alphaToCoverage = false;\n\t\tthis._blendState = new BlendState();\n\t\tthis._depthState = new DepthState();\n\t\tthis.cull = CULLFACE_BACK;\n\t\tthis.stencilFront = null;\n\t\tthis.stencilBack = null;\n\t\tthis._shaderVersion = 0;\n\t\tthis._scene = null;\n\t\tthis.dirty = true;\n\t}\n\tset depthBias(value) {\n\t\tthis._depthState.depthBias = value;\n\t}\n\tget depthBias() {\n\t\treturn this._depthState.depthBias;\n\t}\n\tset slopeDepthBias(value) {\n\t\tthis._depthState.depthBiasSlope = value;\n\t}\n\tget slopeDepthBias() {\n\t\treturn this._depthState.depthBiasSlope;\n\t}\n\tset redWrite(value) {\n\t\tthis._blendState.redWrite = value;\n\t}\n\tget redWrite() {\n\t\treturn this._blendState.redWrite;\n\t}\n\tset greenWrite(value) {\n\t\tthis._blendState.greenWrite = value;\n\t}\n\tget greenWrite() {\n\t\treturn this._blendState.greenWrite;\n\t}\n\tset blueWrite(value) {\n\t\tthis._blendState.blueWrite = value;\n\t}\n\tget blueWrite() {\n\t\treturn this._blendState.blueWrite;\n\t}\n\tset alphaWrite(value) {\n\t\tthis._blendState.alphaWrite = value;\n\t}\n\tget alphaWrite() {\n\t\treturn this._blendState.alphaWrite;\n\t}\n\tset shader(shader) {\n\t\tthis._shader = shader;\n\t}\n\tget shader() {\n\t\treturn this._shader;\n\t}\n\tget transparent() {\n\t\treturn this._blendState.blend;\n\t}\n\t_updateTransparency() {\n\t\tconst transparent = this.transparent;\n\t\tconst meshInstances = this.meshInstances;\n\t\tfor (let i = 0; i < meshInstances.length; i++) {\n\t\t\tmeshInstances[i].transparent = transparent;\n\t\t}\n\t}\n\tset blendState(value) {\n\t\tthis._blendState.copy(value);\n\t\tthis._updateTransparency();\n\t}\n\tget blendState() {\n\t\treturn this._blendState;\n\t}\n\tset blendType(type) {\n\t\tconst blendMode = blendModes[type];\n\t\tthis._blendState.setColorBlend(blendMode.op, blendMode.src, blendMode.dst);\n\t\tthis._blendState.setAlphaBlend(blendMode.op, blendMode.src, blendMode.dst);\n\t\tconst blend = type !== BLEND_NONE;\n\t\tif (this._blendState.blend !== blend) {\n\t\t\tthis._blendState.blend = blend;\n\t\t\tthis._updateTransparency();\n\t\t}\n\t\tthis._updateMeshInstanceKeys();\n\t}\n\tget blendType() {\n\t\tif (!this.transparent) {\n\t\t\treturn BLEND_NONE;\n\t\t}\n\t\tconst {\n\t\t\tcolorOp,\n\t\t\tcolorSrcFactor,\n\t\t\tcolorDstFactor,\n\t\t\talphaOp,\n\t\t\talphaSrcFactor,\n\t\t\talphaDstFactor\n\t\t} = this._blendState;\n\t\tfor (let i = 0; i < blendModes.length; i++) {\n\t\t\tconst blendMode = blendModes[i];\n\t\t\tif (blendMode.src === colorSrcFactor && blendMode.dst === colorDstFactor && blendMode.op === colorOp && blendMode.src === alphaSrcFactor && blendMode.dst === alphaDstFactor && blendMode.op === alphaOp) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn BLEND_NORMAL;\n\t}\n\tset depthState(value) {\n\t\tthis._depthState.copy(value);\n\t}\n\tget depthState() {\n\t\treturn this._depthState;\n\t}\n\tset depthTest(value) {\n\t\tthis._depthState.test = value;\n\t}\n\tget depthTest() {\n\t\treturn this._depthState.test;\n\t}\n\tset depthFunc(value) {\n\t\tthis._depthState.func = value;\n\t}\n\tget depthFunc() {\n\t\treturn this._depthState.func;\n\t}\n\tset depthWrite(value) {\n\t\tthis._depthState.write = value;\n\t}\n\tget depthWrite() {\n\t\treturn this._depthState.write;\n\t}\n\tcopy(source) {\n\t\tvar _source$stencilFront;\n\t\tthis.name = source.name;\n\t\tthis._shader = source._shader;\n\t\tthis.alphaTest = source.alphaTest;\n\t\tthis.alphaToCoverage = source.alphaToCoverage;\n\t\tthis._blendState.copy(source._blendState);\n\t\tthis._depthState.copy(source._depthState);\n\t\tthis.cull = source.cull;\n\t\tthis.stencilFront = (_source$stencilFront = source.stencilFront) == null ? void 0 : _source$stencilFront.clone();\n\t\tif (source.stencilBack) {\n\t\t\tthis.stencilBack = source.stencilFront === source.stencilBack ? this.stencilFront : source.stencilBack.clone();\n\t\t}\n\t\treturn this;\n\t}\n\tclone() {\n\t\tconst clone = new this.constructor();\n\t\treturn clone.copy(this);\n\t}\n\t_updateMeshInstanceKeys() {\n\t\tconst meshInstances = this.meshInstances;\n\t\tfor (let i = 0; i < meshInstances.length; i++) {\n\t\t\tmeshInstances[i].updateKey();\n\t\t}\n\t}\n\tupdateUniforms(device, scene) {}\n\tgetShaderVariant(device, scene, objDefs, unused, pass, sortedLights, viewUniformFormat, viewBindGroupFormat, vertexFormat) {\n\t\tconst processingOptions = new ShaderProcessorOptions(viewUniformFormat, viewBindGroupFormat, vertexFormat);\n\t\treturn processShader(this._shader, processingOptions);\n\t}\n\tupdate() {\n\t\tthis.dirty = true;\n\t\tif (this._shader) this._shader.failed = false;\n\t}\n\tclearParameters() {\n\t\tthis.parameters = {};\n\t}\n\tgetParameters() {\n\t\treturn this.parameters;\n\t}\n\tclearVariants() {\n\t\tthis.variants.clear();\n\t\tconst meshInstances = this.meshInstances;\n\t\tconst count = meshInstances.length;\n\t\tfor (let i = 0; i < count; i++) {\n\t\t\tmeshInstances[i].clearShaders();\n\t\t}\n\t}\n\tgetParameter(name) {\n\t\treturn this.parameters[name];\n\t}\n\tsetParameter(name, data) {\n\t\tif (data === undefined && typeof name === 'object') {\n\t\t\tconst uniformObject = name;\n\t\t\tif (uniformObject.length) {\n\t\t\t\tfor (let i = 0; i < uniformObject.length; i++) {\n\t\t\t\t\tthis.setParameter(uniformObject[i]);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tname = uniformObject.name;\n\t\t\tdata = uniformObject.value;\n\t\t}\n\t\tconst param = this.parameters[name];\n\t\tif (param) {\n\t\t\tparam.data = data;\n\t\t} else {\n\t\t\tthis.parameters[name] = {\n\t\t\t\tscopeId: null,\n\t\t\t\tdata: data\n\t\t\t};\n\t\t}\n\t}\n\tdeleteParameter(name) {\n\t\tif (this.parameters[name]) {\n\t\t\tdelete this.parameters[name];\n\t\t}\n\t}\n\tsetParameters(device, names) {\n\t\tconst parameters = this.parameters;\n\t\tif (names === undefined) names = parameters;\n\t\tfor (const paramName in names) {\n\t\t\tconst parameter = parameters[paramName];\n\t\t\tif (parameter) {\n\t\t\t\tif (!parameter.scopeId) {\n\t\t\t\t\tparameter.scopeId = device.scope.resolve(paramName);\n\t\t\t\t}\n\t\t\t\tparameter.scopeId.setValue(parameter.data);\n\t\t\t}\n\t\t}\n\t}\n\tdestroy() {\n\t\tthis.variants.clear();\n\t\tthis._shader = null;\n\t\tfor (let i = 0; i < this.meshInstances.length; i++) {\n\t\t\tconst meshInstance = this.meshInstances[i];\n\t\t\tmeshInstance.clearShaders();\n\t\t\tmeshInstance._material = null;\n\t\t\tif (meshInstance.mesh) {\n\t\t\t\tconst defaultMaterial = getDefaultMaterial(meshInstance.mesh.device);\n\t\t\t\tif (this !== defaultMaterial) {\n\t\t\t\t\tmeshInstance.material = defaultMaterial;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.meshInstances.length = 0;\n\t}\n\taddMeshInstanceRef(meshInstance) {\n\t\tthis.meshInstances.push(meshInstance);\n\t}\n\tremoveMeshInstanceRef(meshInstance) {\n\t\tconst meshInstances = this.meshInstances;\n\t\tconst i = meshInstances.indexOf(meshInstance);\n\t\tif (i !== -1) {\n\t\t\tmeshInstances.splice(i, 1);\n\t\t}\n\t}\n}\n\nclass BasicMaterial extends Material {\n\tconstructor(...args) {\n\t\tsuper(...args);\n\t\tthis.color = new Color(1, 1, 1, 1);\n\t\tthis.colorUniform = new Float32Array(4);\n\t\tthis.colorMap = null;\n\t\tthis.vertexColors = false;\n\t}\n\tcopy(source) {\n\t\tsuper.copy(source);\n\t\tthis.color.copy(source.color);\n\t\tthis.colorMap = source.colorMap;\n\t\tthis.vertexColors = source.vertexColors;\n\t\treturn this;\n\t}\n\tupdateUniforms(device, scene) {\n\t\tthis.clearParameters();\n\t\tthis.colorUniform[0] = this.color.r;\n\t\tthis.colorUniform[1] = this.color.g;\n\t\tthis.colorUniform[2] = this.color.b;\n\t\tthis.colorUniform[3] = this.color.a;\n\t\tthis.setParameter('uColor', this.colorUniform);\n\t\tif (this.colorMap) {\n\t\t\tthis.setParameter('texture_diffuseMap', this.colorMap);\n\t\t}\n\t}\n\tgetShaderVariant(device, scene, objDefs, unused, pass, sortedLights, viewUniformFormat, viewBindGroupFormat, vertexFormat) {\n\t\tconst options = {\n\t\t\tskin: objDefs && (objDefs & SHADERDEF_SKIN) !== 0,\n\t\t\tscreenSpace: objDefs && (objDefs & SHADERDEF_SCREENSPACE) !== 0,\n\t\t\tuseInstancing: objDefs && (objDefs & SHADERDEF_INSTANCING) !== 0,\n\t\t\tuseMorphPosition: objDefs && (objDefs & SHADERDEF_MORPH_POSITION) !== 0,\n\t\t\tuseMorphNormal: objDefs && (objDefs & SHADERDEF_MORPH_NORMAL) !== 0,\n\t\t\tuseMorphTextureBased: objDefs && (objDefs & SHADERDEF_MORPH_TEXTURE_BASED) !== 0,\n\t\t\talphaTest: this.alphaTest > 0,\n\t\t\tvertexColors: this.vertexColors,\n\t\t\tdiffuseMap: !!this.colorMap,\n\t\t\tpass: pass\n\t\t};\n\t\tconst processingOptions = new ShaderProcessorOptions(viewUniformFormat, viewBindGroupFormat, vertexFormat);\n\t\tconst library = getProgramLibrary(device);\n\t\tlibrary.register('basic', basic);\n\t\treturn library.getProgram('basic', options, processingOptions, this.userId);\n\t}\n}\n\nclass Batch {\n\tconstructor(meshInstances, dynamic, batchGroupId) {\n\t\tthis._aabb = new BoundingBox();\n\t\tthis.origMeshInstances = void 0;\n\t\tthis.meshInstance = null;\n\t\tthis.dynamic = void 0;\n\t\tthis.batchGroupId = void 0;\n\t\tthis.origMeshInstances = meshInstances;\n\t\tthis.dynamic = dynamic;\n\t\tthis.batchGroupId = batchGroupId;\n\t}\n\tdestroy(scene, layers) {\n\t\tif (this.meshInstance) {\n\t\t\tthis.removeFromLayers(scene, layers);\n\t\t\tthis.meshInstance.destroy();\n\t\t\tthis.meshInstance = null;\n\t\t}\n\t}\n\taddToLayers(scene, layers) {\n\t\tfor (let i = 0; i < layers.length; i++) {\n\t\t\tconst layer = scene.layers.getLayerById(layers[i]);\n\t\t\tif (layer) {\n\t\t\t\tlayer.addMeshInstances([this.meshInstance]);\n\t\t\t}\n\t\t}\n\t}\n\tremoveFromLayers(scene, layers) {\n\t\tfor (let i = 0; i < layers.length; i++) {\n\t\t\tconst layer = scene.layers.getLayerById(layers[i]);\n\t\t\tif (layer) {\n\t\t\t\tlayer.removeMeshInstances([this.meshInstance]);\n\t\t\t}\n\t\t}\n\t}\n\tupdateBoundingBox() {\n\t\tthis._aabb.copy(this.origMeshInstances[0].aabb);\n\t\tfor (let i = 1; i < this.origMeshInstances.length; i++) {\n\t\t\tthis._aabb.add(this.origMeshInstances[i].aabb);\n\t\t}\n\t\tthis.meshInstance.aabb = this._aabb;\n\t\tthis.meshInstance._aabbVer = 0;\n\t}\n}\n\nclass BatchGroup {\n\tconstructor(id, name, dynamic, maxAabbSize, layers = [LAYERID_WORLD]) {\n\t\tthis._ui = false;\n\t\tthis._sprite = false;\n\t\tthis._obj = {\n\t\t\tmodel: [],\n\t\t\telement: [],\n\t\t\tsprite: [],\n\t\t\trender: []\n\t\t};\n\t\tthis.id = void 0;\n\t\tthis.name = void 0;\n\t\tthis.dynamic = void 0;\n\t\tthis.maxAabbSize = void 0;\n\t\tthis.layers = void 0;\n\t\tthis.id = id;\n\t\tthis.name = name;\n\t\tthis.dynamic = dynamic;\n\t\tthis.maxAabbSize = maxAabbSize;\n\t\tthis.layers = layers;\n\t}\n}\nBatchGroup.MODEL = 'model';\nBatchGroup.ELEMENT = 'element';\nBatchGroup.SPRITE = 'sprite';\nBatchGroup.RENDER = 'render';\n\nconst _invMatrix = new Mat4();\nclass SkinInstance {\n\tconstructor(skin) {\n\t\tthis.bones = void 0;\n\t\tthis.boneTextureSize = void 0;\n\t\tthis._dirty = true;\n\t\tthis._rootBone = null;\n\t\tthis._skinUpdateIndex = -1;\n\t\tthis._updateBeforeCull = true;\n\t\tif (skin) {\n\t\t\tthis.initSkin(skin);\n\t\t}\n\t}\n\tset rootBone(rootBone) {\n\t\tthis._rootBone = rootBone;\n\t}\n\tget rootBone() {\n\t\treturn this._rootBone;\n\t}\n\tinit(device, numBones) {\n\t\tif (device.supportsBoneTextures) {\n\t\t\tconst numPixels = numBones * 3;\n\t\t\tlet width = Math.ceil(Math.sqrt(numPixels));\n\t\t\twidth = math.roundUp(width, 3);\n\t\t\tconst height = Math.ceil(numPixels / width);\n\t\t\tthis.boneTexture = new Texture(device, {\n\t\t\t\twidth: width,\n\t\t\t\theight: height,\n\t\t\t\tformat: PIXELFORMAT_RGBA32F,\n\t\t\t\tmipmaps: false,\n\t\t\t\tminFilter: FILTER_NEAREST,\n\t\t\t\tmagFilter: FILTER_NEAREST,\n\t\t\t\tname: 'skin'\n\t\t\t});\n\t\t\tthis.boneTextureSize = [width, height, 1.0 / width, 1.0 / height];\n\t\t\tthis.matrixPalette = this.boneTexture.lock({\n\t\t\t\tmode: TEXTURELOCK_READ\n\t\t\t});\n\t\t\tthis.boneTexture.unlock();\n\t\t} else {\n\t\t\tthis.matrixPalette = new Float32Array(numBones * 12);\n\t\t}\n\t}\n\tdestroy() {\n\t\tif (this.boneTexture) {\n\t\t\tthis.boneTexture.destroy();\n\t\t\tthis.boneTexture = null;\n\t\t}\n\t}\n\tresolve(rootBone, entity) {\n\t\tthis.rootBone = rootBone;\n\t\tconst skin = this.skin;\n\t\tconst bones = [];\n\t\tfor (let j = 0; j < skin.boneNames.length; j++) {\n\t\t\tconst boneName = skin.boneNames[j];\n\t\t\tlet bone = rootBone.findByName(boneName);\n\t\t\tif (!bone) {\n\t\t\t\tbone = entity;\n\t\t\t}\n\t\t\tbones.push(bone);\n\t\t}\n\t\tthis.bones = bones;\n\t}\n\tinitSkin(skin) {\n\t\tthis.skin = skin;\n\t\tthis.bones = [];\n\t\tconst numBones = skin.inverseBindPose.length;\n\t\tthis.init(skin.device, numBones);\n\t\tthis.matrices = [];\n\t\tfor (let i = 0; i < numBones; i++) {\n\t\t\tthis.matrices[i] = new Mat4();\n\t\t}\n\t}\n\tuploadBones(device) {\n\t\tif (device.supportsBoneTextures) {\n\t\t\tthis.boneTexture.lock();\n\t\t\tthis.boneTexture.unlock();\n\t\t}\n\t}\n\t_updateMatrices(rootNode, skinUpdateIndex) {\n\t\tif (this._skinUpdateIndex !== skinUpdateIndex) {\n\t\t\tthis._skinUpdateIndex = skinUpdateIndex;\n\t\t\t_invMatrix.copy(rootNode.getWorldTransform()).invert();\n\t\t\tfor (let i = this.bones.length - 1; i >= 0; i--) {\n\t\t\t\tthis.matrices[i].mulAffine2(_invMatrix, this.bones[i].getWorldTransform());\n\t\t\t\tthis.matrices[i].mulAffine2(this.matrices[i], this.skin.inverseBindPose[i]);\n\t\t\t}\n\t\t}\n\t}\n\tupdateMatrices(rootNode, skinUpdateIndex) {\n\t\tif (this._updateBeforeCull) {\n\t\t\tthis._updateMatrices(rootNode, skinUpdateIndex);\n\t\t}\n\t}\n\tupdateMatrixPalette(rootNode, skinUpdateIndex) {\n\t\tthis._updateMatrices(rootNode, skinUpdateIndex);\n\t\tconst mp = this.matrixPalette;\n\t\tconst count = this.bones.length;\n\t\tfor (let i = 0; i < count; i++) {\n\t\t\tconst pe = this.matrices[i].data;\n\t\t\tconst base = i * 12;\n\t\t\tmp[base] = pe[0];\n\t\t\tmp[base + 1] = pe[4];\n\t\t\tmp[base + 2] = pe[8];\n\t\t\tmp[base + 3] = pe[12];\n\t\t\tmp[base + 4] = pe[1];\n\t\t\tmp[base + 5] = pe[5];\n\t\t\tmp[base + 6] = pe[9];\n\t\t\tmp[base + 7] = pe[13];\n\t\t\tmp[base + 8] = pe[2];\n\t\t\tmp[base + 9] = pe[6];\n\t\t\tmp[base + 10] = pe[10];\n\t\t\tmp[base + 11] = pe[14];\n\t\t}\n\t\tthis.uploadBones(this.skin.device);\n\t}\n}\n\nclass SkinBatchInstance extends SkinInstance {\n\tconstructor(device, nodes, rootNode) {\n\t\tsuper();\n\t\tconst numBones = nodes.length;\n\t\tthis.init(device, numBones);\n\t\tthis.device = device;\n\t\tthis.rootNode = rootNode;\n\t\tthis.bones = nodes;\n\t}\n\tupdateMatrices(rootNode, skinUpdateIndex) {}\n\tupdateMatrixPalette(rootNode, skinUpdateIndex) {\n\t\tconst mp = this.matrixPalette;\n\t\tconst count = this.bones.length;\n\t\tfor (let i = 0; i < count; i++) {\n\t\t\tconst pe = this.bones[i].getWorldTransform().data;\n\t\t\tconst base = i * 12;\n\t\t\tmp[base] = pe[0];\n\t\t\tmp[base + 1] = pe[4];\n\t\t\tmp[base + 2] = pe[8];\n\t\t\tmp[base + 3] = pe[12];\n\t\t\tmp[base + 4] = pe[1];\n\t\t\tmp[base + 5] = pe[5];\n\t\t\tmp[base + 6] = pe[9];\n\t\t\tmp[base + 7] = pe[13];\n\t\t\tmp[base + 8] = pe[2];\n\t\t\tmp[base + 9] = pe[6];\n\t\t\tmp[base + 10] = pe[10];\n\t\t\tmp[base + 11] = pe[14];\n\t\t}\n\t\tthis.uploadBones(this.device);\n\t}\n}\n\nclass RefCountedObject {\n\tconstructor() {\n\t\tthis._refCount = 0;\n\t}\n\tincRefCount() {\n\t\tthis._refCount++;\n\t}\n\tdecRefCount() {\n\t\tthis._refCount--;\n\t}\n\tget refCount() {\n\t\treturn this._refCount;\n\t}\n}\n\nlet id$2 = 0;\nclass GeometryData {\n\tconstructor() {\n\t\tthis.initDefaults();\n\t}\n\tinitDefaults() {\n\t\tthis.recreate = false;\n\t\tthis.verticesUsage = BUFFER_STATIC;\n\t\tthis.indicesUsage = BUFFER_STATIC;\n\t\tthis.maxVertices = 0;\n\t\tthis.maxIndices = 0;\n\t\tthis.vertexCount = 0;\n\t\tthis.indexCount = 0;\n\t\tthis.vertexStreamsUpdated = false;\n\t\tthis.indexStreamUpdated = false;\n\t\tthis.vertexStreamDictionary = {};\n\t\tthis.indices = null;\n\t}\n\t_changeVertexCount(count, semantic) {\n\t\tif (!this.vertexCount) {\n\t\t\tthis.vertexCount = count;\n\t\t}\n\t}\n}\nGeometryData.DEFAULT_COMPONENTS_POSITION = 3;\nGeometryData.DEFAULT_COMPONENTS_NORMAL = 3;\nGeometryData.DEFAULT_COMPONENTS_UV = 2;\nGeometryData.DEFAULT_COMPONENTS_COLORS = 4;\nclass GeometryVertexStream {\n\tconstructor(data, componentCount, dataType, dataTypeNormalize, asInt) {\n\t\tthis.data = data;\n\t\tthis.componentCount = componentCount;\n\t\tthis.dataType = dataType;\n\t\tthis.dataTypeNormalize = dataTypeNormalize;\n\t\tthis.asInt = asInt;\n\t}\n}\nclass Mesh extends RefCountedObject {\n\tconstructor(graphicsDevice, options) {\n\t\tsuper();\n\t\tthis._aabbVer = 0;\n\t\tthis._aabb = new BoundingBox();\n\t\tthis._storageVertex = false;\n\t\tthis._storageIndex = false;\n\t\tthis.id = id$2++;\n\t\tthis.device = graphicsDevice;\n\t\tthis._storageIndex = (options == null ? void 0 : options.storageIndex) || false;\n\t\tthis._storageVertex = (options == null ? void 0 : options.storageVertex) || false;\n\t\tthis.vertexBuffer = null;\n\t\tthis.indexBuffer = [null];\n\t\tthis.primitive = [{\n\t\t\ttype: 0,\n\t\t\tbase: 0,\n\t\t\tcount: 0\n\t\t}];\n\t\tthis.skin = null;\n\t\tthis._morph = null;\n\t\tthis._geometryData = null;\n\t\tthis.boneAabb = null;\n\t}\n\tstatic fromGeometry(graphicsDevice, geometry, options = {}) {\n\t\tconst mesh = new Mesh(graphicsDevice, options);\n\t\tconst {\n\t\t\tpositions,\n\t\t\tnormals,\n\t\t\ttangents,\n\t\t\tcolors,\n\t\t\tuvs,\n\t\t\tuvs1,\n\t\t\tblendIndices,\n\t\t\tblendWeights,\n\t\t\tindices\n\t\t} = geometry;\n\t\tif (positions) {\n\t\t\tmesh.setPositions(positions);\n\t\t}\n\t\tif (normals) {\n\t\t\tmesh.setNormals(normals);\n\t\t}\n\t\tif (tangents) {\n\t\t\tmesh.setVertexStream(SEMANTIC_TANGENT, tangents, 4);\n\t\t}\n\t\tif (colors) {\n\t\t\tmesh.setColors32(colors);\n\t\t}\n\t\tif (uvs) {\n\t\t\tmesh.setUvs(0, uvs);\n\t\t}\n\t\tif (uvs1) {\n\t\t\tmesh.setUvs(1, uvs1);\n\t\t}\n\t\tif (blendIndices) {\n\t\t\tmesh.setVertexStream(SEMANTIC_BLENDINDICES, blendIndices, 4, blendIndices.length / 4, TYPE_UINT8);\n\t\t}\n\t\tif (blendWeights) {\n\t\t\tmesh.setVertexStream(SEMANTIC_BLENDWEIGHT, blendWeights, 4);\n\t\t}\n\t\tif (indices) {\n\t\t\tmesh.setIndices(indices);\n\t\t}\n\t\tmesh.update();\n\t\treturn mesh;\n\t}\n\tset morph(morph) {\n\t\tif (morph !== this._morph) {\n\t\t\tif (this._morph) {\n\t\t\t\tthis._morph.decRefCount();\n\t\t\t}\n\t\t\tthis._morph = morph;\n\t\t\tif (morph) {\n\t\t\t\tmorph.incRefCount();\n\t\t\t}\n\t\t}\n\t}\n\tget morph() {\n\t\treturn this._morph;\n\t}\n\tset aabb(aabb) {\n\t\tthis._aabb = aabb;\n\t\tthis._aabbVer++;\n\t}\n\tget aabb() {\n\t\treturn this._aabb;\n\t}\n\tdestroy() {\n\t\tconst morph = this.morph;\n\t\tif (morph) {\n\t\t\tthis.morph = null;\n\t\t\tif (morph.refCount < 1) {\n\t\t\t\tmorph.destroy();\n\t\t\t}\n\t\t}\n\t\tif (this.vertexBuffer) {\n\t\t\tthis.vertexBuffer.destroy();\n\t\t\tthis.vertexBuffer = null;\n\t\t}\n\t\tfor (let j = 0; j < this.indexBuffer.length; j++) {\n\t\t\tthis._destroyIndexBuffer(j);\n\t\t}\n\t\tthis.indexBuffer.length = 0;\n\t\tthis._geometryData = null;\n\t}\n\t_destroyIndexBuffer(index) {\n\t\tif (this.indexBuffer[index]) {\n\t\t\tthis.indexBuffer[index].destroy();\n\t\t\tthis.indexBuffer[index] = null;\n\t\t}\n\t}\n\t_initBoneAabbs(morphTargets) {\n\t\tthis.boneAabb = [];\n\t\tthis.boneUsed = [];\n\t\tlet x, y, z;\n\t\tlet bMax, bMin;\n\t\tconst boneMin = [];\n\t\tconst boneMax = [];\n\t\tconst boneUsed = this.boneUsed;\n\t\tconst numBones = this.skin.boneNames.length;\n\t\tlet maxMorphX, maxMorphY, maxMorphZ;\n\t\tfor (let i = 0; i < numBones; i++) {\n\t\t\tboneMin[i] = new Vec3(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);\n\t\t\tboneMax[i] = new Vec3(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);\n\t\t}\n\t\tconst iterator = new VertexIterator(this.vertexBuffer);\n\t\tconst posElement = iterator.element[SEMANTIC_POSITION];\n\t\tconst weightsElement = iterator.element[SEMANTIC_BLENDWEIGHT];\n\t\tconst indicesElement = iterator.element[SEMANTIC_BLENDINDICES];\n\t\tconst numVerts = this.vertexBuffer.numVertices;\n\t\tfor (let j = 0; j < numVerts; j++) {\n\t\t\tfor (let k = 0; k < 4; k++) {\n\t\t\t\tconst boneWeight = weightsElement.array[weightsElement.index + k];\n\t\t\t\tif (boneWeight > 0) {\n\t\t\t\t\tconst boneIndex = indicesElement.array[indicesElement.index + k];\n\t\t\t\t\tboneUsed[boneIndex] = true;\n\t\t\t\t\tx = posElement.array[posElement.index];\n\t\t\t\t\ty = posElement.array[posElement.index + 1];\n\t\t\t\t\tz = posElement.array[posElement.index + 2];\n\t\t\t\t\tbMax = boneMax[boneIndex];\n\t\t\t\t\tbMin = boneMin[boneIndex];\n\t\t\t\t\tif (bMin.x > x) bMin.x = x;\n\t\t\t\t\tif (bMin.y > y) bMin.y = y;\n\t\t\t\t\tif (bMin.z > z) bMin.z = z;\n\t\t\t\t\tif (bMax.x < x) bMax.x = x;\n\t\t\t\t\tif (bMax.y < y) bMax.y = y;\n\t\t\t\t\tif (bMax.z < z) bMax.z = z;\n\t\t\t\t\tif (morphTargets) {\n\t\t\t\t\t\tlet minMorphX = maxMorphX = x;\n\t\t\t\t\t\tlet minMorphY = maxMorphY = y;\n\t\t\t\t\t\tlet minMorphZ = maxMorphZ = z;\n\t\t\t\t\t\tfor (let l = 0; l < morphTargets.length; l++) {\n\t\t\t\t\t\t\tconst target = morphTargets[l];\n\t\t\t\t\t\t\tconst dx = target.deltaPositions[j * 3];\n\t\t\t\t\t\t\tconst dy = target.deltaPositions[j * 3 + 1];\n\t\t\t\t\t\t\tconst dz = target.deltaPositions[j * 3 + 2];\n\t\t\t\t\t\t\tif (dx < 0) {\n\t\t\t\t\t\t\t\tminMorphX += dx;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tmaxMorphX += dx;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (dy < 0) {\n\t\t\t\t\t\t\t\tminMorphY += dy;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tmaxMorphY += dy;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (dz < 0) {\n\t\t\t\t\t\t\t\tminMorphZ += dz;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tmaxMorphZ += dz;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (bMin.x > minMorphX) bMin.x = minMorphX;\n\t\t\t\t\t\tif (bMin.y > minMorphY) bMin.y = minMorphY;\n\t\t\t\t\t\tif (bMin.z > minMorphZ) bMin.z = minMorphZ;\n\t\t\t\t\t\tif (bMax.x < maxMorphX) bMax.x = maxMorphX;\n\t\t\t\t\t\tif (bMax.y < maxMorphY) bMax.y = maxMorphY;\n\t\t\t\t\t\tif (bMax.z < maxMorphZ) bMax.z = maxMorphZ;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\titerator.next();\n\t\t}\n\t\tconst positionElement = this.vertexBuffer.getFormat().elements.find(e => e.name === SEMANTIC_POSITION);\n\t\tif (positionElement && positionElement.normalize) {\n\t\t\tconst func = (() => {\n\t\t\t\tswitch (positionElement.dataType) {\n\t\t\t\t\tcase TYPE_INT8:\n\t\t\t\t\t\treturn x => Math.max(x / 127.0, -1.0);\n\t\t\t\t\tcase TYPE_UINT8:\n\t\t\t\t\t\treturn x => x / 255.0;\n\t\t\t\t\tcase TYPE_INT16:\n\t\t\t\t\t\treturn x => Math.max(x / 32767.0, -1.0);\n\t\t\t\t\tcase TYPE_UINT16:\n\t\t\t\t\t\treturn x => x / 65535.0;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn x => x;\n\t\t\t\t}\n\t\t\t})();\n\t\t\tfor (let i = 0; i < numBones; i++) {\n\t\t\t\tif (boneUsed[i]) {\n\t\t\t\t\tconst min = boneMin[i];\n\t\t\t\t\tconst max = boneMax[i];\n\t\t\t\t\tmin.set(func(min.x), func(min.y), func(min.z));\n\t\t\t\t\tmax.set(func(max.x), func(max.y), func(max.z));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (let i = 0; i < numBones; i++) {\n\t\t\tconst aabb = new BoundingBox();\n\t\t\taabb.setMinMax(boneMin[i], boneMax[i]);\n\t\t\tthis.boneAabb.push(aabb);\n\t\t}\n\t}\n\t_initGeometryData() {\n\t\tif (!this._geometryData) {\n\t\t\tthis._geometryData = new GeometryData();\n\t\t\tif (this.vertexBuffer) {\n\t\t\t\tthis._geometryData.vertexCount = this.vertexBuffer.numVertices;\n\t\t\t\tthis._geometryData.maxVertices = this.vertexBuffer.numVertices;\n\t\t\t}\n\t\t\tif (this.indexBuffer.length > 0 && this.indexBuffer[0]) {\n\t\t\t\tthis._geometryData.indexCount = this.indexBuffer[0].numIndices;\n\t\t\t\tthis._geometryData.maxIndices = this.indexBuffer[0].numIndices;\n\t\t\t}\n\t\t}\n\t}\n\tclear(verticesDynamic, indicesDynamic, maxVertices = 0, maxIndices = 0) {\n\t\tthis._initGeometryData();\n\t\tthis._geometryData.initDefaults();\n\t\tthis._geometryData.recreate = true;\n\t\tthis._geometryData.maxVertices = maxVertices;\n\t\tthis._geometryData.maxIndices = maxIndices;\n\t\tthis._geometryData.verticesUsage = verticesDynamic ? BUFFER_STATIC : BUFFER_DYNAMIC;\n\t\tthis._geometryData.indicesUsage = indicesDynamic ? BUFFER_STATIC : BUFFER_DYNAMIC;\n\t}\n\tsetVertexStream(semantic, data, componentCount, numVertices, dataType = TYPE_FLOAT32, dataTypeNormalize = false, asInt = false) {\n\t\tthis._initGeometryData();\n\t\tconst vertexCount = numVertices || data.length / componentCount;\n\t\tthis._geometryData._changeVertexCount(vertexCount, semantic);\n\t\tthis._geometryData.vertexStreamsUpdated = true;\n\t\tthis._geometryData.vertexStreamDictionary[semantic] = new GeometryVertexStream(data, componentCount, dataType, dataTypeNormalize, asInt);\n\t}\n\tgetVertexStream(semantic, data) {\n\t\tlet count = 0;\n\t\tlet done = false;\n\t\tif (this._geometryData) {\n\t\t\tconst stream = this._geometryData.vertexStreamDictionary[semantic];\n\t\t\tif (stream) {\n\t\t\t\tdone = true;\n\t\t\t\tcount = this._geometryData.vertexCount;\n\t\t\t\tif (ArrayBuffer.isView(data)) {\n\t\t\t\t\tdata.set(stream.data);\n\t\t\t\t} else {\n\t\t\t\t\tdata.length = 0;\n\t\t\t\t\tdata.push(stream.data);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (!done) {\n\t\t\tif (this.vertexBuffer) {\n\t\t\t\tconst iterator = new VertexIterator(this.vertexBuffer);\n\t\t\t\tcount = iterator.readData(semantic, data);\n\t\t\t}\n\t\t}\n\t\treturn count;\n\t}\n\tsetPositions(positions, componentCount = GeometryData.DEFAULT_COMPONENTS_POSITION, numVertices) {\n\t\tthis.setVertexStream(SEMANTIC_POSITION, positions, componentCount, numVertices, TYPE_FLOAT32, false);\n\t}\n\tsetNormals(normals, componentCount = GeometryData.DEFAULT_COMPONENTS_NORMAL, numVertices) {\n\t\tthis.setVertexStream(SEMANTIC_NORMAL, normals, componentCount, numVertices, TYPE_FLOAT32, false);\n\t}\n\tsetUvs(channel, uvs, componentCount = GeometryData.DEFAULT_COMPONENTS_UV, numVertices) {\n\t\tthis.setVertexStream(SEMANTIC_TEXCOORD + channel, uvs, componentCount, numVertices, TYPE_FLOAT32, false);\n\t}\n\tsetColors(colors, componentCount = GeometryData.DEFAULT_COMPONENTS_COLORS, numVertices) {\n\t\tthis.setVertexStream(SEMANTIC_COLOR, colors, componentCount, numVertices, TYPE_FLOAT32, false);\n\t}\n\tsetColors32(colors, numVertices) {\n\t\tthis.setVertexStream(SEMANTIC_COLOR, colors, GeometryData.DEFAULT_COMPONENTS_COLORS, numVertices, TYPE_UINT8, true);\n\t}\n\tsetIndices(indices, numIndices) {\n\t\tthis._initGeometryData();\n\t\tthis._geometryData.indexStreamUpdated = true;\n\t\tthis._geometryData.indices = indices;\n\t\tthis._geometryData.indexCount = numIndices || indices.length;\n\t}\n\tgetPositions(positions) {\n\t\treturn this.getVertexStream(SEMANTIC_POSITION, positions);\n\t}\n\tgetNormals(normals) {\n\t\treturn this.getVertexStream(SEMANTIC_NORMAL, normals);\n\t}\n\tgetUvs(channel, uvs) {\n\t\treturn this.getVertexStream(SEMANTIC_TEXCOORD + channel, uvs);\n\t}\n\tgetColors(colors) {\n\t\treturn this.getVertexStream(SEMANTIC_COLOR, colors);\n\t}\n\tgetIndices(indices) {\n\t\tlet count = 0;\n\t\tif (this._geometryData && this._geometryData.indices) {\n\t\t\tconst streamIndices = this._geometryData.indices;\n\t\t\tcount = this._geometryData.indexCount;\n\t\t\tif (ArrayBuffer.isView(indices)) {\n\t\t\t\tindices.set(streamIndices);\n\t\t\t} else {\n\t\t\t\tindices.length = 0;\n\t\t\t\tfor (let i = 0, il = streamIndices.length; i < il; i++) {\n\t\t\t\t\tindices.push(streamIndices[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (this.indexBuffer.length > 0 && this.indexBuffer[0]) {\n\t\t\t\tconst indexBuffer = this.indexBuffer[0];\n\t\t\t\tcount = indexBuffer.readData(indices);\n\t\t\t}\n\t\t}\n\t\treturn count;\n\t}\n\tupdate(primitiveType = PRIMITIVE_TRIANGLES, updateBoundingBox = true) {\n\t\tif (this._geometryData) {\n\t\t\tif (updateBoundingBox) {\n\t\t\t\tconst stream = this._geometryData.vertexStreamDictionary[SEMANTIC_POSITION];\n\t\t\t\tif (stream) {\n\t\t\t\t\tif (stream.componentCount === 3) {\n\t\t\t\t\t\tthis._aabb.compute(stream.data, this._geometryData.vertexCount);\n\t\t\t\t\t\tthis._aabbVer++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet destroyVB = this._geometryData.recreate;\n\t\t\tif (this._geometryData.vertexCount > this._geometryData.maxVertices) {\n\t\t\t\tdestroyVB = true;\n\t\t\t\tthis._geometryData.maxVertices = this._geometryData.vertexCount;\n\t\t\t}\n\t\t\tif (destroyVB) {\n\t\t\t\tif (this.vertexBuffer) {\n\t\t\t\t\tthis.vertexBuffer.destroy();\n\t\t\t\t\tthis.vertexBuffer = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet destroyIB = this._geometryData.recreate;\n\t\t\tif (this._geometryData.indexCount > this._geometryData.maxIndices) {\n\t\t\t\tdestroyIB = true;\n\t\t\t\tthis._geometryData.maxIndices = this._geometryData.indexCount;\n\t\t\t}\n\t\t\tif (destroyIB) {\n\t\t\t\tif (this.indexBuffer.length > 0 && this.indexBuffer[0]) {\n\t\t\t\t\tthis.indexBuffer[0].destroy();\n\t\t\t\t\tthis.indexBuffer[0] = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this._geometryData.vertexStreamsUpdated) {\n\t\t\t\tthis._updateVertexBuffer();\n\t\t\t}\n\t\t\tif (this._geometryData.indexStreamUpdated) {\n\t\t\t\tthis._updateIndexBuffer();\n\t\t\t}\n\t\t\tthis.primitive[0].type = primitiveType;\n\t\t\tif (this.indexBuffer.length > 0 && this.indexBuffer[0]) {\n\t\t\t\tif (this._geometryData.indexStreamUpdated) {\n\t\t\t\t\tthis.primitive[0].count = this._geometryData.indexCount;\n\t\t\t\t\tthis.primitive[0].indexed = true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (this._geometryData.vertexStreamsUpdated) {\n\t\t\t\t\tthis.primitive[0].count = this._geometryData.vertexCount;\n\t\t\t\t\tthis.primitive[0].indexed = false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._geometryData.vertexCount = 0;\n\t\t\tthis._geometryData.indexCount = 0;\n\t\t\tthis._geometryData.vertexStreamsUpdated = false;\n\t\t\tthis._geometryData.indexStreamUpdated = false;\n\t\t\tthis._geometryData.recreate = false;\n\t\t\tthis.updateRenderStates();\n\t\t}\n\t}\n\t_buildVertexFormat(vertexCount) {\n\t\tconst vertexDesc = [];\n\t\tfor (const semantic in this._geometryData.vertexStreamDictionary) {\n\t\t\tconst stream = this._geometryData.vertexStreamDictionary[semantic];\n\t\t\tvertexDesc.push({\n\t\t\t\tsemantic: semantic,\n\t\t\t\tcomponents: stream.componentCount,\n\t\t\t\ttype: stream.dataType,\n\t\t\t\tnormalize: stream.dataTypeNormalize,\n\t\t\t\tasInt: stream.asInt\n\t\t\t});\n\t\t}\n\t\treturn new VertexFormat(this.device, vertexDesc, vertexCount);\n\t}\n\t_updateVertexBuffer() {\n\t\tif (!this.vertexBuffer) {\n\t\t\tconst allocateVertexCount = this._geometryData.maxVertices;\n\t\t\tconst format = this._buildVertexFormat(allocateVertexCount);\n\t\t\tthis.vertexBuffer = new VertexBuffer(this.device, format, allocateVertexCount, {\n\t\t\t\tusage: this._geometryData.verticesUsage,\n\t\t\t\tstorage: this._storageVertex\n\t\t\t});\n\t\t}\n\t\tconst iterator = new VertexIterator(this.vertexBuffer);\n\t\tconst numVertices = this._geometryData.vertexCount;\n\t\tfor (const semantic in this._geometryData.vertexStreamDictionary) {\n\t\t\tconst stream = this._geometryData.vertexStreamDictionary[semantic];\n\t\t\titerator.writeData(semantic, stream.data, numVertices);\n\t\t\tdelete this._geometryData.vertexStreamDictionary[semantic];\n\t\t}\n\t\titerator.end();\n\t}\n\t_updateIndexBuffer() {\n\t\tif (this.indexBuffer.length <= 0 || !this.indexBuffer[0]) {\n\t\t\tconst maxVertices = this._geometryData.maxVertices;\n\t\t\tconst createFormat = maxVertices > 0xffff || maxVertices === 0 ? INDEXFORMAT_UINT32 : INDEXFORMAT_UINT16;\n\t\t\tconst options = this._storageIndex ? {\n\t\t\t\tstorage: true\n\t\t\t} : undefined;\n\t\t\tthis.indexBuffer[0] = new IndexBuffer(this.device, createFormat, this._geometryData.maxIndices, this._geometryData.indicesUsage, undefined, options);\n\t\t}\n\t\tconst srcIndices = this._geometryData.indices;\n\t\tif (srcIndices) {\n\t\t\tconst indexBuffer = this.indexBuffer[0];\n\t\t\tindexBuffer.writeData(srcIndices, this._geometryData.indexCount);\n\t\t\tthis._geometryData.indices = null;\n\t\t}\n\t}\n\tprepareRenderState(renderStyle) {\n\t\tif (renderStyle === RENDERSTYLE_WIREFRAME) {\n\t\t\tthis.generateWireframe();\n\t\t} else if (renderStyle === RENDERSTYLE_POINTS) {\n\t\t\tthis.primitive[RENDERSTYLE_POINTS] = {\n\t\t\t\ttype: PRIMITIVE_POINTS,\n\t\t\t\tbase: 0,\n\t\t\t\tcount: this.vertexBuffer ? this.vertexBuffer.numVertices : 0,\n\t\t\t\tindexed: false\n\t\t\t};\n\t\t}\n\t}\n\tupdateRenderStates() {\n\t\tif (this.primitive[RENDERSTYLE_POINTS]) {\n\t\t\tthis.prepareRenderState(RENDERSTYLE_POINTS);\n\t\t}\n\t\tif (this.primitive[RENDERSTYLE_WIREFRAME]) {\n\t\t\tthis.prepareRenderState(RENDERSTYLE_WIREFRAME);\n\t\t}\n\t}\n\tgenerateWireframe() {\n\t\tthis._destroyIndexBuffer(RENDERSTYLE_WIREFRAME);\n\t\tconst numVertices = this.vertexBuffer.numVertices;\n\t\tconst lines = [];\n\t\tlet format;\n\t\tif (this.indexBuffer.length > 0 && this.indexBuffer[0]) {\n\t\t\tconst offsets = [[0, 1], [1, 2], [2, 0]];\n\t\t\tconst base = this.primitive[RENDERSTYLE_SOLID].base;\n\t\t\tconst count = this.primitive[RENDERSTYLE_SOLID].count;\n\t\t\tconst indexBuffer = this.indexBuffer[RENDERSTYLE_SOLID];\n\t\t\tconst srcIndices = new typedArrayIndexFormats[indexBuffer.format](indexBuffer.storage);\n\t\t\tconst seen = new Set();\n\t\t\tfor (let j = base; j < base + count; j += 3) {\n\t\t\t\tfor (let k = 0; k < 3; k++) {\n\t\t\t\t\tconst i1 = srcIndices[j + offsets[k][0]];\n\t\t\t\t\tconst i2 = srcIndices[j + offsets[k][1]];\n\t\t\t\t\tconst hash = i1 > i2 ? i2 * numVertices + i1 : i1 * numVertices + i2;\n\t\t\t\t\tif (!seen.has(hash)) {\n\t\t\t\t\t\tseen.add(hash);\n\t\t\t\t\t\tlines.push(i1, i2);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tformat = indexBuffer.format;\n\t\t} else {\n\t\t\tfor (let i = 0; i < numVertices; i += 3) {\n\t\t\t\tlines.push(i, i + 1, i + 1, i + 2, i + 2, i);\n\t\t\t}\n\t\t\tformat = lines.length > 65535 ? INDEXFORMAT_UINT32 : INDEXFORMAT_UINT16;\n\t\t}\n\t\tconst wireBuffer = new IndexBuffer(this.vertexBuffer.device, format, lines.length);\n\t\tconst dstIndices = new typedArrayIndexFormats[wireBuffer.format](wireBuffer.storage);\n\t\tdstIndices.set(lines);\n\t\twireBuffer.unlock();\n\t\tthis.primitive[RENDERSTYLE_WIREFRAME] = {\n\t\t\ttype: PRIMITIVE_LINES,\n\t\t\tbase: 0,\n\t\t\tcount: lines.length,\n\t\t\tindexed: true\n\t\t};\n\t\tthis.indexBuffer[RENDERSTYLE_WIREFRAME] = wireBuffer;\n\t}\n}\n\nconst scaleCompensatePosTransform = new Mat4();\nconst scaleCompensatePos = new Vec3();\nconst scaleCompensateRot = new Quat();\nconst scaleCompensateRot2 = new Quat();\nconst scaleCompensateScale = new Vec3();\nconst scaleCompensateScaleForParent = new Vec3();\nconst tmpMat4 = new Mat4();\nconst tmpQuat = new Quat();\nconst position$1 = new Vec3();\nconst invParentWtm$1 = new Mat4();\nconst rotation = new Quat();\nconst invParentRot = new Quat();\nconst matrix = new Mat4();\nconst target = new Vec3();\nconst up = new Vec3();\nfunction createTest(attr, value) {\n\tif (attr instanceof Function) {\n\t\treturn attr;\n\t}\n\treturn node => {\n\t\tlet x = node[attr];\n\t\tif (x instanceof Function) {\n\t\t\tx = x();\n\t\t}\n\t\treturn x === value;\n\t};\n}\nfunction findNode(node, test) {\n\tif (test(node)) {\n\t\treturn node;\n\t}\n\tconst children = node._children;\n\tconst len = children.length;\n\tfor (let i = 0; i < len; ++i) {\n\t\tconst result = findNode(children[i], test);\n\t\tif (result) {\n\t\t\treturn result;\n\t\t}\n\t}\n\treturn null;\n}\nclass GraphNode extends EventHandler {\n\tconstructor(name = 'Untitled') {\n\t\tsuper();\n\t\tthis.name = void 0;\n\t\tthis.tags = new Tags(this);\n\t\tthis._labels = {};\n\t\tthis.localPosition = new Vec3();\n\t\tthis.localRotation = new Quat();\n\t\tthis.localScale = new Vec3(1, 1, 1);\n\t\tthis.localEulerAngles = new Vec3();\n\t\tthis.position = new Vec3();\n\t\tthis.rotation = new Quat();\n\t\tthis.eulerAngles = new Vec3();\n\t\tthis._scale = null;\n\t\tthis.localTransform = new Mat4();\n\t\tthis._dirtyLocal = false;\n\t\tthis._aabbVer = 0;\n\t\tthis._frozen = false;\n\t\tthis.worldTransform = new Mat4();\n\t\tthis._dirtyWorld = false;\n\t\tthis._worldScaleSign = 0;\n\t\tthis._normalMatrix = new Mat3();\n\t\tthis._dirtyNormal = true;\n\t\tthis._right = null;\n\t\tthis._up = null;\n\t\tthis._forward = null;\n\t\tthis._parent = null;\n\t\tthis._children = [];\n\t\tthis._graphDepth = 0;\n\t\tthis._enabled = true;\n\t\tthis._enabledInHierarchy = false;\n\t\tthis.scaleCompensation = false;\n\t\tthis.name = name;\n\t}\n\tget right() {\n\t\tif (!this._right) {\n\t\t\tthis._right = new Vec3();\n\t\t}\n\t\treturn this.getWorldTransform().getX(this._right).normalize();\n\t}\n\tget up() {\n\t\tif (!this._up) {\n\t\t\tthis._up = new Vec3();\n\t\t}\n\t\treturn this.getWorldTransform().getY(this._up).normalize();\n\t}\n\tget forward() {\n\t\tif (!this._forward) {\n\t\t\tthis._forward = new Vec3();\n\t\t}\n\t\treturn this.getWorldTransform().getZ(this._forward).normalize().mulScalar(-1);\n\t}\n\tget normalMatrix() {\n\t\tconst normalMat = this._normalMatrix;\n\t\tif (this._dirtyNormal) {\n\t\t\tnormalMat.invertMat4(this.getWorldTransform()).transpose();\n\t\t\tthis._dirtyNormal = false;\n\t\t}\n\t\treturn normalMat;\n\t}\n\tset enabled(enabled) {\n\t\tif (this._enabled !== enabled) {\n\t\t\tvar _this$_parent;\n\t\t\tthis._enabled = enabled;\n\t\t\tif (enabled && (_this$_parent = this._parent) != null && _this$_parent.enabled || !enabled) {\n\t\t\t\tthis._notifyHierarchyStateChanged(this, enabled);\n\t\t\t}\n\t\t}\n\t}\n\tget enabled() {\n\t\treturn this._enabled && this._enabledInHierarchy;\n\t}\n\tget parent() {\n\t\treturn this._parent;\n\t}\n\tget path() {\n\t\tlet node = this._parent;\n\t\tif (!node) {\n\t\t\treturn '';\n\t\t}\n\t\tlet result = this.name;\n\t\twhile (node && node._parent) {\n\t\t\tresult = `${node.name}/${result}`;\n\t\t\tnode = node._parent;\n\t\t}\n\t\treturn result;\n\t}\n\tget root() {\n\t\tlet result = this;\n\t\twhile (result._parent) {\n\t\t\tresult = result._parent;\n\t\t}\n\t\treturn result;\n\t}\n\tget children() {\n\t\treturn this._children;\n\t}\n\tget graphDepth() {\n\t\treturn this._graphDepth;\n\t}\n\t_notifyHierarchyStateChanged(node, enabled) {\n\t\tnode._onHierarchyStateChanged(enabled);\n\t\tconst c = node._children;\n\t\tfor (let i = 0, len = c.length; i < len; i++) {\n\t\t\tif (c[i]._enabled) {\n\t\t\t\tthis._notifyHierarchyStateChanged(c[i], enabled);\n\t\t\t}\n\t\t}\n\t}\n\t_onHierarchyStateChanged(enabled) {\n\t\tthis._enabledInHierarchy = enabled;\n\t\tif (enabled && !this._frozen) {\n\t\t\tthis._unfreezeParentToRoot();\n\t\t}\n\t}\n\t_cloneInternal(clone) {\n\t\tclone.name = this.name;\n\t\tconst tags = this.tags._list;\n\t\tclone.tags.clear();\n\t\tfor (let i = 0; i < tags.length; i++) {\n\t\t\tclone.tags.add(tags[i]);\n\t\t}\n\t\tclone._labels = Object.assign({}, this._labels);\n\t\tclone.localPosition.copy(this.localPosition);\n\t\tclone.localRotation.copy(this.localRotation);\n\t\tclone.localScale.copy(this.localScale);\n\t\tclone.localEulerAngles.copy(this.localEulerAngles);\n\t\tclone.position.copy(this.position);\n\t\tclone.rotation.copy(this.rotation);\n\t\tclone.eulerAngles.copy(this.eulerAngles);\n\t\tclone.localTransform.copy(this.localTransform);\n\t\tclone._dirtyLocal = this._dirtyLocal;\n\t\tclone.worldTransform.copy(this.worldTransform);\n\t\tclone._dirtyWorld = this._dirtyWorld;\n\t\tclone._dirtyNormal = this._dirtyNormal;\n\t\tclone._aabbVer = this._aabbVer + 1;\n\t\tclone._enabled = this._enabled;\n\t\tclone.scaleCompensation = this.scaleCompensation;\n\t\tclone._enabledInHierarchy = false;\n\t}\n\tclone() {\n\t\tconst clone = new this.constructor();\n\t\tthis._cloneInternal(clone);\n\t\treturn clone;\n\t}\n\tcopy(source) {\n\t\tsource._cloneInternal(this);\n\t\treturn this;\n\t}\n\tdestroy() {\n\t\tthis.remove();\n\t\tconst children = this._children;\n\t\twhile (children.length) {\n\t\t\tconst child = children.pop();\n\t\t\tchild._parent = null;\n\t\t\tchild.destroy();\n\t\t}\n\t\tthis.fire('destroy', this);\n\t\tthis.off();\n\t}\n\tfind(attr, value) {\n\t\tconst results = [];\n\t\tconst test = createTest(attr, value);\n\t\tthis.forEach(node => {\n\t\t\tif (test(node)) {\n\t\t\t\tresults.push(node);\n\t\t\t}\n\t\t});\n\t\treturn results;\n\t}\n\tfindOne(attr, value) {\n\t\tconst test = createTest(attr, value);\n\t\treturn findNode(this, test);\n\t}\n\tfindByTag() {\n\t\tconst query = arguments;\n\t\tconst results = [];\n\t\tconst queryNode = (node, checkNode) => {\n\t\t\tif (checkNode && node.tags.has(...query)) {\n\t\t\t\tresults.push(node);\n\t\t\t}\n\t\t\tfor (let i = 0; i < node._children.length; i++) {\n\t\t\t\tqueryNode(node._children[i], true);\n\t\t\t}\n\t\t};\n\t\tqueryNode(this, false);\n\t\treturn results;\n\t}\n\tfindByName(name) {\n\t\treturn this.findOne('name', name);\n\t}\n\tfindByPath(path) {\n\t\tconst parts = Array.isArray(path) ? path : path.split('/');\n\t\tlet result = this;\n\t\tfor (let i = 0, imax = parts.length; i < imax; ++i) {\n\t\t\tresult = result.children.find(c => c.name === parts[i]);\n\t\t\tif (!result) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\tforEach(callback, thisArg) {\n\t\tcallback.call(thisArg, this);\n\t\tconst children = this._children;\n\t\tconst len = children.length;\n\t\tfor (let i = 0; i < len; ++i) {\n\t\t\tchildren[i].forEach(callback, thisArg);\n\t\t}\n\t}\n\tisDescendantOf(node) {\n\t\tlet parent = this._parent;\n\t\twhile (parent) {\n\t\t\tif (parent === node) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tparent = parent._parent;\n\t\t}\n\t\treturn false;\n\t}\n\tisAncestorOf(node) {\n\t\treturn node.isDescendantOf(this);\n\t}\n\tgetEulerAngles() {\n\t\tthis.getWorldTransform().getEulerAngles(this.eulerAngles);\n\t\treturn this.eulerAngles;\n\t}\n\tgetLocalEulerAngles() {\n\t\tthis.localRotation.getEulerAngles(this.localEulerAngles);\n\t\treturn this.localEulerAngles;\n\t}\n\tgetLocalPosition() {\n\t\treturn this.localPosition;\n\t}\n\tgetLocalRotation() {\n\t\treturn this.localRotation;\n\t}\n\tgetLocalScale() {\n\t\treturn this.localScale;\n\t}\n\tgetLocalTransform() {\n\t\tif (this._dirtyLocal) {\n\t\t\tthis.localTransform.setTRS(this.localPosition, this.localRotation, this.localScale);\n\t\t\tthis._dirtyLocal = false;\n\t\t}\n\t\treturn this.localTransform;\n\t}\n\tgetPosition() {\n\t\tthis.getWorldTransform().getTranslation(this.position);\n\t\treturn this.position;\n\t}\n\tgetRotation() {\n\t\tthis.rotation.setFromMat4(this.getWorldTransform());\n\t\treturn this.rotation;\n\t}\n\tgetScale() {\n\t\tif (!this._scale) {\n\t\t\tthis._scale = new Vec3();\n\t\t}\n\t\treturn this.getWorldTransform().getScale(this._scale);\n\t}\n\tgetWorldTransform() {\n\t\tif (!this._dirtyLocal && !this._dirtyWorld) {\n\t\t\treturn this.worldTransform;\n\t\t}\n\t\tif (this._parent) {\n\t\t\tthis._parent.getWorldTransform();\n\t\t}\n\t\tthis._sync();\n\t\treturn this.worldTransform;\n\t}\n\tget worldScaleSign() {\n\t\tif (this._worldScaleSign === 0) {\n\t\t\tthis._worldScaleSign = this.getWorldTransform().scaleSign;\n\t\t}\n\t\treturn this._worldScaleSign;\n\t}\n\tremove() {\n\t\tvar _this$_parent2;\n\t\t(_this$_parent2 = this._parent) == null || _this$_parent2.removeChild(this);\n\t}\n\treparent(parent, index) {\n\t\tthis.remove();\n\t\tif (parent) {\n\t\t\tif (index >= 0) {\n\t\t\t\tparent.insertChild(this, index);\n\t\t\t} else {\n\t\t\t\tparent.addChild(this);\n\t\t\t}\n\t\t}\n\t}\n\tsetLocalEulerAngles(x, y, z) {\n\t\tthis.localRotation.setFromEulerAngles(x, y, z);\n\t\tif (!this._dirtyLocal) {\n\t\t\tthis._dirtifyLocal();\n\t\t}\n\t}\n\tsetLocalPosition(x, y, z) {\n\t\tif (x instanceof Vec3) {\n\t\t\tthis.localPosition.copy(x);\n\t\t} else {\n\t\t\tthis.localPosition.set(x, y, z);\n\t\t}\n\t\tif (!this._dirtyLocal) {\n\t\t\tthis._dirtifyLocal();\n\t\t}\n\t}\n\tsetLocalRotation(x, y, z, w) {\n\t\tif (x instanceof Quat) {\n\t\t\tthis.localRotation.copy(x);\n\t\t} else {\n\t\t\tthis.localRotation.set(x, y, z, w);\n\t\t}\n\t\tif (!this._dirtyLocal) {\n\t\t\tthis._dirtifyLocal();\n\t\t}\n\t}\n\tsetLocalScale(x, y, z) {\n\t\tif (x instanceof Vec3) {\n\t\t\tthis.localScale.copy(x);\n\t\t} else {\n\t\t\tthis.localScale.set(x, y, z);\n\t\t}\n\t\tif (!this._dirtyLocal) {\n\t\t\tthis._dirtifyLocal();\n\t\t}\n\t}\n\t_dirtifyLocal() {\n\t\tif (!this._dirtyLocal) {\n\t\t\tthis._dirtyLocal = true;\n\t\t\tif (!this._dirtyWorld) {\n\t\t\t\tthis._dirtifyWorld();\n\t\t\t}\n\t\t}\n\t}\n\t_unfreezeParentToRoot() {\n\t\tlet p = this._parent;\n\t\twhile (p) {\n\t\t\tp._frozen = false;\n\t\t\tp = p._parent;\n\t\t}\n\t}\n\t_dirtifyWorld() {\n\t\tif (!this._dirtyWorld) {\n\t\t\tthis._unfreezeParentToRoot();\n\t\t}\n\t\tthis._dirtifyWorldInternal();\n\t}\n\t_dirtifyWorldInternal() {\n\t\tif (!this._dirtyWorld) {\n\t\t\tthis._frozen = false;\n\t\t\tthis._dirtyWorld = true;\n\t\t\tfor (let i = 0; i < this._children.length; i++) {\n\t\t\t\tif (!this._children[i]._dirtyWorld) {\n\t\t\t\t\tthis._children[i]._dirtifyWorldInternal();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._dirtyNormal = true;\n\t\tthis._worldScaleSign = 0;\n\t\tthis._aabbVer++;\n\t}\n\tsetPosition(x, y, z) {\n\t\tif (x instanceof Vec3) {\n\t\t\tposition$1.copy(x);\n\t\t} else {\n\t\t\tposition$1.set(x, y, z);\n\t\t}\n\t\tif (this._parent === null) {\n\t\t\tthis.localPosition.copy(position$1);\n\t\t} else {\n\t\t\tinvParentWtm$1.copy(this._parent.getWorldTransform()).invert();\n\t\t\tinvParentWtm$1.transformPoint(position$1, this.localPosition);\n\t\t}\n\t\tif (!this._dirtyLocal) {\n\t\t\tthis._dirtifyLocal();\n\t\t}\n\t}\n\tsetRotation(x, y, z, w) {\n\t\tif (x instanceof Quat) {\n\t\t\trotation.copy(x);\n\t\t} else {\n\t\t\trotation.set(x, y, z, w);\n\t\t}\n\t\tif (this._parent === null) {\n\t\t\tthis.localRotation.copy(rotation);\n\t\t} else {\n\t\t\tconst parentRot = this._parent.getRotation();\n\t\t\tinvParentRot.copy(parentRot).invert();\n\t\t\tthis.localRotation.copy(invParentRot).mul(rotation);\n\t\t}\n\t\tif (!this._dirtyLocal) {\n\t\t\tthis._dirtifyLocal();\n\t\t}\n\t}\n\tsetPositionAndRotation(position, rotation) {\n\t\tif (this._parent === null) {\n\t\t\tthis.localPosition.copy(position);\n\t\t\tthis.localRotation.copy(rotation);\n\t\t} else {\n\t\t\tconst parentWtm = this._parent.getWorldTransform();\n\t\t\tinvParentWtm$1.copy(parentWtm).invert();\n\t\t\tinvParentWtm$1.transformPoint(position, this.localPosition);\n\t\t\tthis.localRotation.setFromMat4(invParentWtm$1).mul(rotation);\n\t\t}\n\t\tif (!this._dirtyLocal) {\n\t\t\tthis._dirtifyLocal();\n\t\t}\n\t}\n\tsetEulerAngles(x, y, z) {\n\t\tthis.localRotation.setFromEulerAngles(x, y, z);\n\t\tif (this._parent !== null) {\n\t\t\tconst parentRot = this._parent.getRotation();\n\t\t\tinvParentRot.copy(parentRot).invert();\n\t\t\tthis.localRotation.mul2(invParentRot, this.localRotation);\n\t\t}\n\t\tif (!this._dirtyLocal) {\n\t\t\tthis._dirtifyLocal();\n\t\t}\n\t}\n\taddChild(node) {\n\t\tthis._prepareInsertChild(node);\n\t\tthis._children.push(node);\n\t\tthis._onInsertChild(node);\n\t}\n\taddChildAndSaveTransform(node) {\n\t\tconst wPos = node.getPosition();\n\t\tconst wRot = node.getRotation();\n\t\tthis._prepareInsertChild(node);\n\t\tnode.setPosition(tmpMat4.copy(this.worldTransform).invert().transformPoint(wPos));\n\t\tnode.setRotation(tmpQuat.copy(this.getRotation()).invert().mul(wRot));\n\t\tthis._children.push(node);\n\t\tthis._onInsertChild(node);\n\t}\n\tinsertChild(node, index) {\n\t\tthis._prepareInsertChild(node);\n\t\tthis._children.splice(index, 0, node);\n\t\tthis._onInsertChild(node);\n\t}\n\t_prepareInsertChild(node) {\n\t\tnode.remove();\n\t}\n\t_fireOnHierarchy(name, nameHierarchy, parent) {\n\t\tthis.fire(name, parent);\n\t\tfor (let i = 0; i < this._children.length; i++) {\n\t\t\tthis._children[i]._fireOnHierarchy(nameHierarchy, nameHierarchy, parent);\n\t\t}\n\t}\n\t_onInsertChild(node) {\n\t\tnode._parent = this;\n\t\tconst enabledInHierarchy = node._enabled && this.enabled;\n\t\tif (node._enabledInHierarchy !== enabledInHierarchy) {\n\t\t\tnode._enabledInHierarchy = enabledInHierarchy;\n\t\t\tnode._notifyHierarchyStateChanged(node, enabledInHierarchy);\n\t\t}\n\t\tnode._updateGraphDepth();\n\t\tnode._dirtifyWorld();\n\t\tif (this._frozen) {\n\t\t\tnode._unfreezeParentToRoot();\n\t\t}\n\t\tnode._fireOnHierarchy('insert', 'inserthierarchy', this);\n\t\tif (this.fire) this.fire('childinsert', node);\n\t}\n\t_updateGraphDepth() {\n\t\tthis._graphDepth = this._parent ? this._parent._graphDepth + 1 : 0;\n\t\tfor (let i = 0, len = this._children.length; i < len; i++) {\n\t\t\tthis._children[i]._updateGraphDepth();\n\t\t}\n\t}\n\tremoveChild(child) {\n\t\tconst index = this._children.indexOf(child);\n\t\tif (index === -1) {\n\t\t\treturn;\n\t\t}\n\t\tthis._children.splice(index, 1);\n\t\tchild._parent = null;\n\t\tchild._fireOnHierarchy('remove', 'removehierarchy', this);\n\t\tthis.fire('childremove', child);\n\t}\n\t_sync() {\n\t\tif (this._dirtyLocal) {\n\t\t\tthis.localTransform.setTRS(this.localPosition, this.localRotation, this.localScale);\n\t\t\tthis._dirtyLocal = false;\n\t\t}\n\t\tif (this._dirtyWorld) {\n\t\t\tif (this._parent === null) {\n\t\t\t\tthis.worldTransform.copy(this.localTransform);\n\t\t\t} else {\n\t\t\t\tif (this.scaleCompensation) {\n\t\t\t\t\tlet parentWorldScale;\n\t\t\t\t\tconst parent = this._parent;\n\t\t\t\t\tlet scale = this.localScale;\n\t\t\t\t\tlet parentToUseScaleFrom = parent;\n\t\t\t\t\tif (parentToUseScaleFrom) {\n\t\t\t\t\t\twhile (parentToUseScaleFrom && parentToUseScaleFrom.scaleCompensation) {\n\t\t\t\t\t\t\tparentToUseScaleFrom = parentToUseScaleFrom._parent;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (parentToUseScaleFrom) {\n\t\t\t\t\t\t\tparentToUseScaleFrom = parentToUseScaleFrom._parent;\n\t\t\t\t\t\t\tif (parentToUseScaleFrom) {\n\t\t\t\t\t\t\t\tparentWorldScale = parentToUseScaleFrom.worldTransform.getScale();\n\t\t\t\t\t\t\t\tscaleCompensateScale.mul2(parentWorldScale, this.localScale);\n\t\t\t\t\t\t\t\tscale = scaleCompensateScale;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tscaleCompensateRot2.setFromMat4(parent.worldTransform);\n\t\t\t\t\tscaleCompensateRot.mul2(scaleCompensateRot2, this.localRotation);\n\t\t\t\t\tlet tmatrix = parent.worldTransform;\n\t\t\t\t\tif (parent.scaleCompensation) {\n\t\t\t\t\t\tscaleCompensateScaleForParent.mul2(parentWorldScale, parent.getLocalScale());\n\t\t\t\t\t\tscaleCompensatePosTransform.setTRS(parent.worldTransform.getTranslation(scaleCompensatePos), scaleCompensateRot2, scaleCompensateScaleForParent);\n\t\t\t\t\t\ttmatrix = scaleCompensatePosTransform;\n\t\t\t\t\t}\n\t\t\t\t\ttmatrix.transformPoint(this.localPosition, scaleCompensatePos);\n\t\t\t\t\tthis.worldTransform.setTRS(scaleCompensatePos, scaleCompensateRot, scale);\n\t\t\t\t} else {\n\t\t\t\t\tthis.worldTransform.mulAffine2(this._parent.worldTransform, this.localTransform);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._dirtyWorld = false;\n\t\t}\n\t}\n\tsyncHierarchy() {\n\t\tif (!this._enabled) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._frozen) {\n\t\t\treturn;\n\t\t}\n\t\tthis._frozen = true;\n\t\tif (this._dirtyLocal || this._dirtyWorld) {\n\t\t\tthis._sync();\n\t\t}\n\t\tconst children = this._children;\n\t\tfor (let i = 0, len = children.length; i < len; i++) {\n\t\t\tchildren[i].syncHierarchy();\n\t\t}\n\t}\n\tlookAt(x, y, z, ux = 0, uy = 1, uz = 0) {\n\t\tif (x instanceof Vec3) {\n\t\t\ttarget.copy(x);\n\t\t\tif (y instanceof Vec3) {\n\t\t\t\tup.copy(y);\n\t\t\t} else {\n\t\t\t\tup.copy(Vec3.UP);\n\t\t\t}\n\t\t} else if (z === undefined) {\n\t\t\treturn;\n\t\t} else {\n\t\t\ttarget.set(x, y, z);\n\t\t\tup.set(ux, uy, uz);\n\t\t}\n\t\tmatrix.setLookAt(this.getPosition(), target, up);\n\t\trotation.setFromMat4(matrix);\n\t\tthis.setRotation(rotation);\n\t}\n\ttranslate(x, y, z) {\n\t\tif (x instanceof Vec3) {\n\t\t\tposition$1.copy(x);\n\t\t} else {\n\t\t\tposition$1.set(x, y, z);\n\t\t}\n\t\tposition$1.add(this.getPosition());\n\t\tthis.setPosition(position$1);\n\t}\n\ttranslateLocal(x, y, z) {\n\t\tif (x instanceof Vec3) {\n\t\t\tposition$1.copy(x);\n\t\t} else {\n\t\t\tposition$1.set(x, y, z);\n\t\t}\n\t\tthis.localRotation.transformVector(position$1, position$1);\n\t\tthis.localPosition.add(position$1);\n\t\tif (!this._dirtyLocal) {\n\t\t\tthis._dirtifyLocal();\n\t\t}\n\t}\n\trotate(x, y, z) {\n\t\trotation.setFromEulerAngles(x, y, z);\n\t\tif (this._parent === null) {\n\t\t\tthis.localRotation.mul2(rotation, this.localRotation);\n\t\t} else {\n\t\t\tconst rot = this.getRotation();\n\t\t\tconst parentRot = this._parent.getRotation();\n\t\t\tinvParentRot.copy(parentRot).invert();\n\t\t\trotation.mul2(invParentRot, rotation);\n\t\t\tthis.localRotation.mul2(rotation, rot);\n\t\t}\n\t\tif (!this._dirtyLocal) {\n\t\t\tthis._dirtifyLocal();\n\t\t}\n\t}\n\trotateLocal(x, y, z) {\n\t\trotation.setFromEulerAngles(x, y, z);\n\t\tthis.localRotation.mul(rotation);\n\t\tif (!this._dirtyLocal) {\n\t\t\tthis._dirtifyLocal();\n\t\t}\n\t}\n}\n\nclass RefCountedCache {\n\tconstructor() {\n\t\tthis.cache = new Map();\n\t}\n\tdestroy() {\n\t\tthis.cache.forEach((refCount, object) => {\n\t\t\tobject.destroy();\n\t\t});\n\t\tthis.cache.clear();\n\t}\n\tincRef(object) {\n\t\tconst refCount = (this.cache.get(object) || 0) + 1;\n\t\tthis.cache.set(object, refCount);\n\t}\n\tdecRef(object) {\n\t\tif (object) {\n\t\t\tlet refCount = this.cache.get(object);\n\t\t\tif (refCount) {\n\t\t\t\trefCount--;\n\t\t\t\tif (refCount === 0) {\n\t\t\t\t\tthis.cache.delete(object);\n\t\t\t\t\tobject.destroy();\n\t\t\t\t} else {\n\t\t\t\t\tthis.cache.set(object, refCount);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nclass LightmapCache {\n\tstatic incRef(texture) {\n\t\tthis.cache.incRef(texture);\n\t}\n\tstatic decRef(texture) {\n\t\tthis.cache.decRef(texture);\n\t}\n\tstatic destroy() {\n\t\tthis.cache.destroy();\n\t}\n}\nLightmapCache.cache = new RefCountedCache();\n\nlet id$1 = 0;\nconst _tmpAabb = new BoundingBox();\nconst _tempBoneAabb = new BoundingBox();\nconst _tempSphere = new BoundingSphere();\nconst _meshSet = new Set();\nclass InstancingData {\n\tconstructor(numObjects) {\n\t\tthis.vertexBuffer = null;\n\t\tthis.count = numObjects;\n\t}\n}\nclass ShaderInstance {\n\tconstructor() {\n\t\tthis.shader = void 0;\n\t\tthis.bindGroup = null;\n\t}\n\tgetBindGroup(device) {\n\t\tif (!this.bindGroup) {\n\t\t\tconst shader = this.shader;\n\t\t\tconst ubFormat = shader.meshUniformBufferFormat;\n\t\t\tconst uniformBuffer = new UniformBuffer(device, ubFormat, false);\n\t\t\tconst bindGroupFormat = shader.meshBindGroupFormat;\n\t\t\tthis.bindGroup = new BindGroup(device, bindGroupFormat, uniformBuffer);\n\t\t}\n\t\treturn this.bindGroup;\n\t}\n\tdestroy() {\n\t\tconst group = this.bindGroup;\n\t\tif (group) {\n\t\t\tvar _group$defaultUniform;\n\t\t\t(_group$defaultUniform = group.defaultUniformBuffer) == null || _group$defaultUniform.destroy();\n\t\t\tgroup.destroy();\n\t\t\tthis.bindGroup = null;\n\t\t}\n\t}\n}\nclass ShaderCacheEntry {\n\tconstructor() {\n\t\tthis.shaderInstances = new Map();\n\t}\n\tdestroy() {\n\t\tthis.shaderInstances.forEach(instance => instance.destroy());\n\t\tthis.shaderInstances.clear();\n\t}\n}\nclass MeshInstance {\n\tconstructor(mesh, material, node = null) {\n\t\tthis.visible = true;\n\t\tthis.castShadow = false;\n\t\tthis.transparent = false;\n\t\tthis._material = null;\n\t\tthis._shaderCache = [];\n\t\tthis.id = id$1++;\n\t\tthis.pick = true;\n\t\tif (mesh instanceof GraphNode) {\n\t\t\tconst temp = mesh;\n\t\t\tmesh = material;\n\t\t\tmaterial = node;\n\t\t\tnode = temp;\n\t\t}\n\t\tthis._key = [0, 0];\n\t\tthis.node = node;\n\t\tthis._mesh = mesh;\n\t\tmesh.incRefCount();\n\t\tthis.material = material;\n\t\tthis._shaderDefs = MASK_AFFECT_DYNAMIC << 16;\n\t\tif (mesh.vertexBuffer) {\n\t\t\tconst format = mesh.vertexBuffer.format;\n\t\t\tthis._shaderDefs |= format.hasUv0 ? SHADERDEF_UV0 : 0;\n\t\t\tthis._shaderDefs |= format.hasUv1 ? SHADERDEF_UV1 : 0;\n\t\t\tthis._shaderDefs |= format.hasColor ? SHADERDEF_VCOLOR : 0;\n\t\t\tthis._shaderDefs |= format.hasTangents ? SHADERDEF_TANGENTS : 0;\n\t\t}\n\t\tthis.layer = LAYER_WORLD;\n\t\tthis._renderStyle = RENDERSTYLE_SOLID;\n\t\tthis._receiveShadow = true;\n\t\tthis._screenSpace = false;\n\t\tthis.cull = true;\n\t\tthis._updateAabb = true;\n\t\tthis._updateAabbFunc = null;\n\t\tthis._calculateSortDistance = null;\n\t\tthis.updateKey();\n\t\tthis._skinInstance = null;\n\t\tthis._morphInstance = null;\n\t\tthis.gsplatInstance = null;\n\t\tthis.instancingData = null;\n\t\tthis._customAabb = null;\n\t\tthis.aabb = new BoundingBox();\n\t\tthis._aabbVer = -1;\n\t\tthis._aabbMeshVer = -1;\n\t\tthis.drawOrder = 0;\n\t\tthis.visibleThisFrame = false;\n\t\tthis.isVisibleFunc = null;\n\t\tthis.parameters = {};\n\t\tthis.stencilFront = null;\n\t\tthis.stencilBack = null;\n\t\tthis.flipFacesFactor = 1;\n\t}\n\tset renderStyle(renderStyle) {\n\t\tthis._renderStyle = renderStyle;\n\t\tthis.mesh.prepareRenderState(renderStyle);\n\t}\n\tget renderStyle() {\n\t\treturn this._renderStyle;\n\t}\n\tset mesh(mesh) {\n\t\tif (mesh === this._mesh) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._mesh) {\n\t\t\tthis._mesh.decRefCount();\n\t\t}\n\t\tthis._mesh = mesh;\n\t\tif (mesh) {\n\t\t\tmesh.incRefCount();\n\t\t}\n\t}\n\tget mesh() {\n\t\treturn this._mesh;\n\t}\n\tset aabb(aabb) {\n\t\tthis._aabb = aabb;\n\t}\n\tget aabb() {\n\t\tif (!this._updateAabb) {\n\t\t\treturn this._aabb;\n\t\t}\n\t\tif (this._updateAabbFunc) {\n\t\t\treturn this._updateAabbFunc(this._aabb);\n\t\t}\n\t\tlet localAabb = this._customAabb;\n\t\tlet toWorldSpace = !!localAabb;\n\t\tif (!localAabb) {\n\t\t\tlocalAabb = _tmpAabb;\n\t\t\tif (this.skinInstance) {\n\t\t\t\tif (!this.mesh.boneAabb) {\n\t\t\t\t\tconst morphTargets = this._morphInstance ? this._morphInstance.morph._targets : null;\n\t\t\t\t\tthis.mesh._initBoneAabbs(morphTargets);\n\t\t\t\t}\n\t\t\t\tconst boneUsed = this.mesh.boneUsed;\n\t\t\t\tlet first = true;\n\t\t\t\tfor (let i = 0; i < this.mesh.boneAabb.length; i++) {\n\t\t\t\t\tif (boneUsed[i]) {\n\t\t\t\t\t\t_tempBoneAabb.setFromTransformedAabb(this.mesh.boneAabb[i], this.skinInstance.matrices[i]);\n\t\t\t\t\t\tif (first) {\n\t\t\t\t\t\t\tfirst = false;\n\t\t\t\t\t\t\tlocalAabb.center.copy(_tempBoneAabb.center);\n\t\t\t\t\t\t\tlocalAabb.halfExtents.copy(_tempBoneAabb.halfExtents);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tlocalAabb.add(_tempBoneAabb);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttoWorldSpace = true;\n\t\t\t} else if (this.node._aabbVer !== this._aabbVer || this.mesh._aabbVer !== this._aabbMeshVer) {\n\t\t\t\tif (this.mesh) {\n\t\t\t\t\tlocalAabb.center.copy(this.mesh.aabb.center);\n\t\t\t\t\tlocalAabb.halfExtents.copy(this.mesh.aabb.halfExtents);\n\t\t\t\t} else {\n\t\t\t\t\tlocalAabb.center.set(0, 0, 0);\n\t\t\t\t\tlocalAabb.halfExtents.set(0, 0, 0);\n\t\t\t\t}\n\t\t\t\tif (this.mesh && this.mesh.morph) {\n\t\t\t\t\tconst morphAabb = this.mesh.morph.aabb;\n\t\t\t\t\tlocalAabb._expand(morphAabb.getMin(), morphAabb.getMax());\n\t\t\t\t}\n\t\t\t\ttoWorldSpace = true;\n\t\t\t\tthis._aabbVer = this.node._aabbVer;\n\t\t\t\tthis._aabbMeshVer = this.mesh._aabbVer;\n\t\t\t}\n\t\t}\n\t\tif (toWorldSpace) {\n\t\t\tthis._aabb.setFromTransformedAabb(localAabb, this.node.getWorldTransform());\n\t\t}\n\t\treturn this._aabb;\n\t}\n\tclearShaders() {\n\t\tconst shaderCache = this._shaderCache;\n\t\tfor (let i = 0; i < shaderCache.length; i++) {\n\t\t\tvar _shaderCache$i;\n\t\t\t(_shaderCache$i = shaderCache[i]) == null || _shaderCache$i.destroy();\n\t\t\tshaderCache[i] = null;\n\t\t}\n\t}\n\tgetShaderInstance(shaderPass, lightHash, scene, viewUniformFormat, viewBindGroupFormat, sortedLights) {\n\t\tlet shaderInstance;\n\t\tlet passEntry = this._shaderCache[shaderPass];\n\t\tif (passEntry) {\n\t\t\tshaderInstance = passEntry.shaderInstances.get(lightHash);\n\t\t} else {\n\t\t\tpassEntry = new ShaderCacheEntry();\n\t\t\tthis._shaderCache[shaderPass] = passEntry;\n\t\t}\n\t\tif (!shaderInstance) {\n\t\t\tconst mat = this._material;\n\t\t\tconst shaderDefs = this._shaderDefs;\n\t\t\tconst variantKey = `${shaderPass}_${shaderDefs}_${lightHash}`;\n\t\t\tshaderInstance = new ShaderInstance();\n\t\t\tshaderInstance.shader = mat.variants.get(variantKey);\n\t\t\tif (!shaderInstance.shader) {\n\t\t\t\tvar _this$_mesh$vertexBuf;\n\t\t\t\tconst shader = mat.getShaderVariant(this.mesh.device, scene, shaderDefs, null, shaderPass, sortedLights, viewUniformFormat, viewBindGroupFormat, (_this$_mesh$vertexBuf = this._mesh.vertexBuffer) == null ? void 0 : _this$_mesh$vertexBuf.format);\n\t\t\t\tmat.variants.set(variantKey, shader);\n\t\t\t\tshaderInstance.shader = shader;\n\t\t\t}\n\t\t\tpassEntry.shaderInstances.set(lightHash, shaderInstance);\n\t\t}\n\t\treturn shaderInstance;\n\t}\n\tset material(material) {\n\t\tthis.clearShaders();\n\t\tconst prevMat = this._material;\n\t\tif (prevMat) {\n\t\t\tprevMat.removeMeshInstanceRef(this);\n\t\t}\n\t\tthis._material = material;\n\t\tif (material) {\n\t\t\tmaterial.addMeshInstanceRef(this);\n\t\t\tthis.transparent = material.transparent;\n\t\t\tthis.updateKey();\n\t\t}\n\t}\n\tget material() {\n\t\treturn this._material;\n\t}\n\tset layer(layer) {\n\t\tthis._layer = layer;\n\t\tthis.updateKey();\n\t}\n\tget layer() {\n\t\treturn this._layer;\n\t}\n\t_updateShaderDefs(shaderDefs) {\n\t\tif (shaderDefs !== this._shaderDefs) {\n\t\t\tthis._shaderDefs = shaderDefs;\n\t\t\tthis.clearShaders();\n\t\t}\n\t}\n\tset calculateSortDistance(calculateSortDistance) {\n\t\tthis._calculateSortDistance = calculateSortDistance;\n\t}\n\tget calculateSortDistance() {\n\t\treturn this._calculateSortDistance;\n\t}\n\tset receiveShadow(val) {\n\t\tif (this._receiveShadow !== val) {\n\t\t\tthis._receiveShadow = val;\n\t\t\tthis._updateShaderDefs(val ? this._shaderDefs & ~SHADERDEF_NOSHADOW : this._shaderDefs | SHADERDEF_NOSHADOW);\n\t\t}\n\t}\n\tget receiveShadow() {\n\t\treturn this._receiveShadow;\n\t}\n\tset skinInstance(val) {\n\t\tthis._skinInstance = val;\n\t\tthis._updateShaderDefs(val ? this._shaderDefs | SHADERDEF_SKIN : this._shaderDefs & ~SHADERDEF_SKIN);\n\t\tthis._setupSkinUpdate();\n\t}\n\tget skinInstance() {\n\t\treturn this._skinInstance;\n\t}\n\tset morphInstance(val) {\n\t\tvar _this$_morphInstance;\n\t\t(_this$_morphInstance = this._morphInstance) == null || _this$_morphInstance.destroy();\n\t\tthis._morphInstance = val;\n\t\tlet shaderDefs = this._shaderDefs;\n\t\tshaderDefs = val && val.morph.useTextureMorph ? shaderDefs | SHADERDEF_MORPH_TEXTURE_BASED : shaderDefs & ~SHADERDEF_MORPH_TEXTURE_BASED;\n\t\tshaderDefs = val && val.morph.morphPositions ? shaderDefs | SHADERDEF_MORPH_POSITION : shaderDefs & ~SHADERDEF_MORPH_POSITION;\n\t\tshaderDefs = val && val.morph.morphNormals ? shaderDefs | SHADERDEF_MORPH_NORMAL : shaderDefs & ~SHADERDEF_MORPH_NORMAL;\n\t\tthis._updateShaderDefs(shaderDefs);\n\t}\n\tget morphInstance() {\n\t\treturn this._morphInstance;\n\t}\n\tset screenSpace(val) {\n\t\tif (this._screenSpace !== val) {\n\t\t\tthis._screenSpace = val;\n\t\t\tthis._updateShaderDefs(val ? this._shaderDefs | SHADERDEF_SCREENSPACE : this._shaderDefs & ~SHADERDEF_SCREENSPACE);\n\t\t}\n\t}\n\tget screenSpace() {\n\t\treturn this._screenSpace;\n\t}\n\tset key(val) {\n\t\tthis._key[SORTKEY_FORWARD] = val;\n\t}\n\tget key() {\n\t\treturn this._key[SORTKEY_FORWARD];\n\t}\n\tset mask(val) {\n\t\tconst toggles = this._shaderDefs & 0x0000FFFF;\n\t\tthis._updateShaderDefs(toggles | val << 16);\n\t}\n\tget mask() {\n\t\treturn this._shaderDefs >> 16;\n\t}\n\tset instancingCount(value) {\n\t\tif (this.instancingData) {\n\t\t\tthis.instancingData.count = value;\n\t\t}\n\t}\n\tget instancingCount() {\n\t\treturn this.instancingData ? this.instancingData.count : 0;\n\t}\n\tdestroy() {\n\t\tvar _this$_skinInstance, _this$morphInstance;\n\t\tconst mesh = this.mesh;\n\t\tif (mesh) {\n\t\t\tthis.mesh = null;\n\t\t\tif (mesh.refCount < 1) {\n\t\t\t\tmesh.destroy();\n\t\t\t}\n\t\t}\n\t\tthis.setRealtimeLightmap(MeshInstance.lightmapParamNames[0], null);\n\t\tthis.setRealtimeLightmap(MeshInstance.lightmapParamNames[1], null);\n\t\t(_this$_skinInstance = this._skinInstance) == null || _this$_skinInstance.destroy();\n\t\tthis._skinInstance = null;\n\t\t(_this$morphInstance = this.morphInstance) == null || _this$morphInstance.destroy();\n\t\tthis.morphInstance = null;\n\t\tthis.clearShaders();\n\t\tthis.material = null;\n\t}\n\tstatic _prepareRenderStyleForArray(meshInstances, renderStyle) {\n\t\tif (meshInstances) {\n\t\t\tfor (let i = 0; i < meshInstances.length; i++) {\n\t\t\t\tmeshInstances[i]._renderStyle = renderStyle;\n\t\t\t\tconst mesh = meshInstances[i].mesh;\n\t\t\t\tif (!_meshSet.has(mesh)) {\n\t\t\t\t\t_meshSet.add(mesh);\n\t\t\t\t\tmesh.prepareRenderState(renderStyle);\n\t\t\t\t}\n\t\t\t}\n\t\t\t_meshSet.clear();\n\t\t}\n\t}\n\t_isVisible(camera) {\n\t\tif (this.visible) {\n\t\t\tif (this.isVisibleFunc) {\n\t\t\t\treturn this.isVisibleFunc(camera);\n\t\t\t}\n\t\t\t_tempSphere.center = this.aabb.center;\n\t\t\t_tempSphere.radius = this._aabb.halfExtents.length();\n\t\t\treturn camera.frustum.containsSphere(_tempSphere);\n\t\t}\n\t\treturn false;\n\t}\n\tupdateKey() {\n\t\tconst material = this.material;\n\t\tconst blendType = material.alphaToCoverage || material.alphaTest ? BLEND_NORMAL : material.blendType;\n\t\tthis._key[SORTKEY_FORWARD] = (this.layer & 0x0f) << 27 | (blendType === BLEND_NONE ? 1 : 0) << 26 | (material.id & 0x1ffffff) << 0;\n\t}\n\tsetInstancing(vertexBuffer, cull = false) {\n\t\tif (vertexBuffer) {\n\t\t\tthis.instancingData = new InstancingData(vertexBuffer.numVertices);\n\t\t\tthis.instancingData.vertexBuffer = vertexBuffer;\n\t\t\tvertexBuffer.format.instancing = true;\n\t\t\tthis.cull = cull;\n\t\t} else {\n\t\t\tthis.instancingData = null;\n\t\t\tthis.cull = true;\n\t\t}\n\t\tthis._updateShaderDefs(vertexBuffer ? this._shaderDefs | SHADERDEF_INSTANCING : this._shaderDefs & ~SHADERDEF_INSTANCING);\n\t}\n\tensureMaterial(device) {\n\t\tif (!this.material) {\n\t\t\tthis.material = getDefaultMaterial(device);\n\t\t}\n\t}\n\tclearParameters() {\n\t\tthis.parameters = {};\n\t}\n\tgetParameters() {\n\t\treturn this.parameters;\n\t}\n\tgetParameter(name) {\n\t\treturn this.parameters[name];\n\t}\n\tsetParameter(name, data, passFlags = -262141) {\n\t\tif (data === undefined && typeof name === 'object') {\n\t\t\tconst uniformObject = name;\n\t\t\tif (uniformObject.length) {\n\t\t\t\tfor (let i = 0; i < uniformObject.length; i++) {\n\t\t\t\t\tthis.setParameter(uniformObject[i]);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tname = uniformObject.name;\n\t\t\tdata = uniformObject.value;\n\t\t}\n\t\tconst param = this.parameters[name];\n\t\tif (param) {\n\t\t\tparam.data = data;\n\t\t\tparam.passFlags = passFlags;\n\t\t} else {\n\t\t\tthis.parameters[name] = {\n\t\t\t\tscopeId: null,\n\t\t\t\tdata: data,\n\t\t\t\tpassFlags: passFlags\n\t\t\t};\n\t\t}\n\t}\n\tsetRealtimeLightmap(name, texture) {\n\t\tconst old = this.getParameter(name);\n\t\tif (old === texture) {\n\t\t\treturn;\n\t\t}\n\t\tif (old) {\n\t\t\tLightmapCache.decRef(old.data);\n\t\t}\n\t\tif (texture) {\n\t\t\tLightmapCache.incRef(texture);\n\t\t\tthis.setParameter(name, texture);\n\t\t} else {\n\t\t\tthis.deleteParameter(name);\n\t\t}\n\t}\n\tdeleteParameter(name) {\n\t\tif (this.parameters[name]) {\n\t\t\tdelete this.parameters[name];\n\t\t}\n\t}\n\tsetParameters(device, passFlag) {\n\t\tconst parameters = this.parameters;\n\t\tfor (const paramName in parameters) {\n\t\t\tconst parameter = parameters[paramName];\n\t\t\tif (parameter.passFlags & passFlag) {\n\t\t\t\tif (!parameter.scopeId) {\n\t\t\t\t\tparameter.scopeId = device.scope.resolve(paramName);\n\t\t\t\t}\n\t\t\t\tparameter.scopeId.setValue(parameter.data);\n\t\t\t}\n\t\t}\n\t}\n\tsetLightmapped(value) {\n\t\tif (value) {\n\t\t\tthis.mask = (this.mask | MASK_AFFECT_LIGHTMAPPED) & ~(MASK_AFFECT_DYNAMIC | MASK_BAKE);\n\t\t} else {\n\t\t\tthis.setRealtimeLightmap(MeshInstance.lightmapParamNames[0], null);\n\t\t\tthis.setRealtimeLightmap(MeshInstance.lightmapParamNames[1], null);\n\t\t\tthis._shaderDefs &= ~(SHADERDEF_LM | SHADERDEF_DIRLM | SHADERDEF_LMAMBIENT);\n\t\t\tthis.mask = (this.mask | MASK_AFFECT_DYNAMIC) & ~(MASK_AFFECT_LIGHTMAPPED | MASK_BAKE);\n\t\t}\n\t}\n\tsetCustomAabb(aabb) {\n\t\tif (aabb) {\n\t\t\tif (this._customAabb) {\n\t\t\t\tthis._customAabb.copy(aabb);\n\t\t\t} else {\n\t\t\t\tthis._customAabb = aabb.clone();\n\t\t\t}\n\t\t} else {\n\t\t\tthis._customAabb = null;\n\t\t\tthis._aabbVer = -1;\n\t\t}\n\t\tthis._setupSkinUpdate();\n\t}\n\t_setupSkinUpdate() {\n\t\tif (this._skinInstance) {\n\t\t\tthis._skinInstance._updateBeforeCull = !this._customAabb;\n\t\t}\n\t}\n}\nMeshInstance.lightmapParamNames = ['texture_lightMap', 'texture_dirLightMap'];\n\nfunction paramsIdentical(a, b) {\n\tif (a && !b) return false;\n\tif (!a && b) return false;\n\ta = a.data;\n\tb = b.data;\n\tif (a === b) return true;\n\tif (a instanceof Float32Array && b instanceof Float32Array) {\n\t\tif (a.length !== b.length) return false;\n\t\tfor (let i = 0; i < a.length; i++) {\n\t\t\tif (a[i] !== b[i]) return false;\n\t\t}\n\t\treturn true;\n\t}\n\treturn false;\n}\nfunction equalParamSets(params1, params2) {\n\tfor (const param in params1) {\n\t\tif (params1.hasOwnProperty(param) && !paramsIdentical(params1[param], params2[param])) {\n\t\t\treturn false;\n\t\t}\n\t}\n\tfor (const param in params2) {\n\t\tif (params2.hasOwnProperty(param) && !paramsIdentical(params2[param], params1[param])) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\nconst _triFanIndices = [0, 1, 3, 2, 3, 1];\nconst _triStripIndices = [0, 1, 3, 0, 3, 2];\nconst mat3 = new Mat3();\nfunction getScaleSign(mi) {\n\treturn mi.node.worldTransform.scaleSign;\n}\nclass BatchManager {\n\tconstructor(device, root, scene) {\n\t\tthis.device = device;\n\t\tthis.rootNode = root;\n\t\tthis.scene = scene;\n\t\tthis._init = false;\n\t\tthis._batchGroups = {};\n\t\tthis._batchGroupCounter = 0;\n\t\tthis._batchList = [];\n\t\tthis._dirtyGroups = [];\n\t}\n\tdestroy() {\n\t\tthis.device = null;\n\t\tthis.rootNode = null;\n\t\tthis.scene = null;\n\t\tthis._batchGroups = {};\n\t\tthis._batchList = [];\n\t\tthis._dirtyGroups = [];\n\t}\n\taddGroup(name, dynamic, maxAabbSize, id, layers) {\n\t\tif (id === undefined) {\n\t\t\tid = this._batchGroupCounter;\n\t\t\tthis._batchGroupCounter++;\n\t\t}\n\t\tif (this._batchGroups[id]) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst group = new BatchGroup(id, name, dynamic, maxAabbSize, layers);\n\t\tthis._batchGroups[id] = group;\n\t\treturn group;\n\t}\n\tremoveGroup(id) {\n\t\tif (!this._batchGroups[id]) {\n\t\t\treturn;\n\t\t}\n\t\tconst newBatchList = [];\n\t\tfor (let i = 0; i < this._batchList.length; i++) {\n\t\t\tif (this._batchList[i].batchGroupId === id) {\n\t\t\t\tthis.destroyBatch(this._batchList[i]);\n\t\t\t} else {\n\t\t\t\tnewBatchList.push(this._batchList[i]);\n\t\t\t}\n\t\t}\n\t\tthis._batchList = newBatchList;\n\t\tthis._removeModelsFromBatchGroup(this.rootNode, id);\n\t\tdelete this._batchGroups[id];\n\t}\n\tmarkGroupDirty(id) {\n\t\tif (this._dirtyGroups.indexOf(id) < 0) {\n\t\t\tthis._dirtyGroups.push(id);\n\t\t}\n\t}\n\tgetGroupByName(name) {\n\t\tconst groups = this._batchGroups;\n\t\tfor (const group in groups) {\n\t\t\tif (!groups.hasOwnProperty(group)) continue;\n\t\t\tif (groups[group].name === name) {\n\t\t\t\treturn groups[group];\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\tgetBatches(batchGroupId) {\n\t\tconst results = [];\n\t\tconst len = this._batchList.length;\n\t\tfor (let i = 0; i < len; i++) {\n\t\t\tconst batch = this._batchList[i];\n\t\t\tif (batch.batchGroupId === batchGroupId) {\n\t\t\t\tresults.push(batch);\n\t\t\t}\n\t\t}\n\t\treturn results;\n\t}\n\t_removeModelsFromBatchGroup(node, id) {\n\t\tif (!node.enabled) return;\n\t\tif (node.model && node.model.batchGroupId === id) {\n\t\t\tnode.model.batchGroupId = -1;\n\t\t}\n\t\tif (node.render && node.render.batchGroupId === id) {\n\t\t\tnode.render.batchGroupId = -1;\n\t\t}\n\t\tif (node.element && node.element.batchGroupId === id) {\n\t\t\tnode.element.batchGroupId = -1;\n\t\t}\n\t\tif (node.sprite && node.sprite.batchGroupId === id) {\n\t\t\tnode.sprite.batchGroupId = -1;\n\t\t}\n\t\tfor (let i = 0; i < node._children.length; i++) {\n\t\t\tthis._removeModelsFromBatchGroup(node._children[i], id);\n\t\t}\n\t}\n\tinsert(type, groupId, node) {\n\t\tconst group = this._batchGroups[groupId];\n\t\tif (group) {\n\t\t\tif (group._obj[type].indexOf(node) < 0) {\n\t\t\t\tgroup._obj[type].push(node);\n\t\t\t\tthis.markGroupDirty(groupId);\n\t\t\t}\n\t\t}\n\t}\n\tremove(type, groupId, node) {\n\t\tconst group = this._batchGroups[groupId];\n\t\tif (group) {\n\t\t\tconst idx = group._obj[type].indexOf(node);\n\t\t\tif (idx >= 0) {\n\t\t\t\tgroup._obj[type].splice(idx, 1);\n\t\t\t\tthis.markGroupDirty(groupId);\n\t\t\t}\n\t\t}\n\t}\n\t_extractRender(node, arr, group, groupMeshInstances) {\n\t\tif (node.render) {\n\t\t\tarr = groupMeshInstances[node.render.batchGroupId] = arr.concat(node.render.meshInstances);\n\t\t\tnode.render.removeFromLayers();\n\t\t}\n\t\treturn arr;\n\t}\n\t_extractModel(node, arr, group, groupMeshInstances) {\n\t\tif (node.model && node.model.model) {\n\t\t\tarr = groupMeshInstances[node.model.batchGroupId] = arr.concat(node.model.meshInstances);\n\t\t\tnode.model.removeModelFromLayers();\n\t\t}\n\t\treturn arr;\n\t}\n\t_extractElement(node, arr, group) {\n\t\tif (!node.element) return;\n\t\tlet valid = false;\n\t\tif (node.element._text && node.element._text._model.meshInstances.length > 0) {\n\t\t\tarr.push(node.element._text._model.meshInstances[0]);\n\t\t\tnode.element.removeModelFromLayers(node.element._text._model);\n\t\t\tvalid = true;\n\t\t} else if (node.element._image) {\n\t\t\tarr.push(node.element._image._renderable.meshInstance);\n\t\t\tnode.element.removeModelFromLayers(node.element._image._renderable.model);\n\t\t\tif (node.element._image._renderable.unmaskMeshInstance) {\n\t\t\t\tarr.push(node.element._image._renderable.unmaskMeshInstance);\n\t\t\t\tif (!node.element._image._renderable.unmaskMeshInstance.stencilFront || !node.element._image._renderable.unmaskMeshInstance.stencilBack) {\n\t\t\t\t\tnode.element._dirtifyMask();\n\t\t\t\t\tnode.element._onPrerender();\n\t\t\t\t}\n\t\t\t}\n\t\t\tvalid = true;\n\t\t}\n\t\tif (valid) {\n\t\t\tgroup._ui = true;\n\t\t}\n\t}\n\t_collectAndRemoveMeshInstances(groupMeshInstances, groupIds) {\n\t\tfor (let g = 0; g < groupIds.length; g++) {\n\t\t\tconst id = groupIds[g];\n\t\t\tconst group = this._batchGroups[id];\n\t\t\tif (!group) continue;\n\t\t\tlet arr = groupMeshInstances[id];\n\t\t\tif (!arr) arr = groupMeshInstances[id] = [];\n\t\t\tfor (let m = 0; m < group._obj.model.length; m++) {\n\t\t\t\tarr = this._extractModel(group._obj.model[m], arr, group, groupMeshInstances);\n\t\t\t}\n\t\t\tfor (let r = 0; r < group._obj.render.length; r++) {\n\t\t\t\tarr = this._extractRender(group._obj.render[r], arr, group, groupMeshInstances);\n\t\t\t}\n\t\t\tfor (let e = 0; e < group._obj.element.length; e++) {\n\t\t\t\tthis._extractElement(group._obj.element[e], arr, group);\n\t\t\t}\n\t\t\tfor (let s = 0; s < group._obj.sprite.length; s++) {\n\t\t\t\tconst node = group._obj.sprite[s];\n\t\t\t\tif (node.sprite && node.sprite._meshInstance && (group.dynamic || node.sprite.sprite._renderMode === SPRITE_RENDERMODE_SIMPLE)) {\n\t\t\t\t\tarr.push(node.sprite._meshInstance);\n\t\t\t\t\tnode.sprite.removeModelFromLayers();\n\t\t\t\t\tgroup._sprite = true;\n\t\t\t\t\tnode.sprite._batchGroup = group;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tgenerate(groupIds) {\n\t\tconst groupMeshInstances = {};\n\t\tif (!groupIds) {\n\t\t\tgroupIds = Object.keys(this._batchGroups);\n\t\t}\n\t\tconst newBatchList = [];\n\t\tfor (let i = 0; i < this._batchList.length; i++) {\n\t\t\tif (groupIds.indexOf(this._batchList[i].batchGroupId) < 0) {\n\t\t\t\tnewBatchList.push(this._batchList[i]);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis.destroyBatch(this._batchList[i]);\n\t\t}\n\t\tthis._batchList = newBatchList;\n\t\tthis._collectAndRemoveMeshInstances(groupMeshInstances, groupIds);\n\t\tif (groupIds === this._dirtyGroups) {\n\t\t\tthis._dirtyGroups.length = 0;\n\t\t} else {\n\t\t\tconst newDirtyGroups = [];\n\t\t\tfor (let i = 0; i < this._dirtyGroups.length; i++) {\n\t\t\t\tif (groupIds.indexOf(this._dirtyGroups[i]) < 0) newDirtyGroups.push(this._dirtyGroups[i]);\n\t\t\t}\n\t\t\tthis._dirtyGroups = newDirtyGroups;\n\t\t}\n\t\tlet group, lists, groupData, batch;\n\t\tfor (const groupId in groupMeshInstances) {\n\t\t\tif (!groupMeshInstances.hasOwnProperty(groupId)) continue;\n\t\t\tgroup = groupMeshInstances[groupId];\n\t\t\tgroupData = this._batchGroups[groupId];\n\t\t\tif (!groupData) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlists = this.prepare(group, groupData.dynamic, groupData.maxAabbSize, groupData._ui || groupData._sprite);\n\t\t\tfor (let i = 0; i < lists.length; i++) {\n\t\t\t\tbatch = this.create(lists[i], groupData.dynamic, parseInt(groupId, 10));\n\t\t\t\tif (batch) {\n\t\t\t\t\tbatch.addToLayers(this.scene, groupData.layers);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tprepare(meshInstances, dynamic, maxAabbSize = Number.POSITIVE_INFINITY, translucent) {\n\t\tif (meshInstances.length === 0) return [];\n\t\tconst halfMaxAabbSize = maxAabbSize * 0.5;\n\t\tconst maxInstanceCount = this.device.supportsBoneTextures ? 1024 : this.device.boneLimit;\n\t\tconst maxNumVertices = this.device.extUintElement ? 0xffffffff : 0xffff;\n\t\tconst aabb = new BoundingBox();\n\t\tconst testAabb = new BoundingBox();\n\t\tlet skipTranslucentAabb = null;\n\t\tlet sf;\n\t\tconst lists = [];\n\t\tlet j = 0;\n\t\tif (translucent) {\n\t\t\tmeshInstances.sort((a, b) => {\n\t\t\t\treturn a.drawOrder - b.drawOrder;\n\t\t\t});\n\t\t}\n\t\tlet meshInstancesLeftA = meshInstances;\n\t\tlet meshInstancesLeftB;\n\t\tconst skipMesh = translucent ? function (mi) {\n\t\t\tif (skipTranslucentAabb) {\n\t\t\t\tskipTranslucentAabb.add(mi.aabb);\n\t\t\t} else {\n\t\t\t\tskipTranslucentAabb = mi.aabb.clone();\n\t\t\t}\n\t\t\tmeshInstancesLeftB.push(mi);\n\t\t} : function (mi) {\n\t\t\tmeshInstancesLeftB.push(mi);\n\t\t};\n\t\twhile (meshInstancesLeftA.length > 0) {\n\t\t\tlists[j] = [meshInstancesLeftA[0]];\n\t\t\tmeshInstancesLeftB = [];\n\t\t\tconst material = meshInstancesLeftA[0].material;\n\t\t\tconst layer = meshInstancesLeftA[0].layer;\n\t\t\tconst defs = meshInstancesLeftA[0]._shaderDefs;\n\t\t\tconst params = meshInstancesLeftA[0].parameters;\n\t\t\tconst stencil = meshInstancesLeftA[0].stencilFront;\n\t\t\tlet vertCount = meshInstancesLeftA[0].mesh.vertexBuffer.getNumVertices();\n\t\t\tconst drawOrder = meshInstancesLeftA[0].drawOrder;\n\t\t\taabb.copy(meshInstancesLeftA[0].aabb);\n\t\t\tconst scaleSign = getScaleSign(meshInstancesLeftA[0]);\n\t\t\tconst vertexFormatBatchingHash = meshInstancesLeftA[0].mesh.vertexBuffer.format.batchingHash;\n\t\t\tconst indexed = meshInstancesLeftA[0].mesh.primitive[0].indexed;\n\t\t\tskipTranslucentAabb = null;\n\t\t\tfor (let i = 1; i < meshInstancesLeftA.length; i++) {\n\t\t\t\tconst mi = meshInstancesLeftA[i];\n\t\t\t\tif (dynamic && lists[j].length >= maxInstanceCount) {\n\t\t\t\t\tmeshInstancesLeftB = meshInstancesLeftB.concat(meshInstancesLeftA.slice(i));\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (material !== mi.material || layer !== mi.layer || vertexFormatBatchingHash !== mi.mesh.vertexBuffer.format.batchingHash || indexed !== mi.mesh.primitive[0].indexed || defs !== mi._shaderDefs || vertCount + mi.mesh.vertexBuffer.getNumVertices() > maxNumVertices) {\n\t\t\t\t\tskipMesh(mi);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\ttestAabb.copy(aabb);\n\t\t\t\ttestAabb.add(mi.aabb);\n\t\t\t\tif (testAabb.halfExtents.x > halfMaxAabbSize || testAabb.halfExtents.y > halfMaxAabbSize || testAabb.halfExtents.z > halfMaxAabbSize) {\n\t\t\t\t\tskipMesh(mi);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (stencil) {\n\t\t\t\t\tif (!(sf = mi.stencilFront) || stencil.func !== sf.func || stencil.zpass !== sf.zpass) {\n\t\t\t\t\t\tskipMesh(mi);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (scaleSign !== getScaleSign(mi)) {\n\t\t\t\t\tskipMesh(mi);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (!equalParamSets(params, mi.parameters)) {\n\t\t\t\t\tskipMesh(mi);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (translucent && skipTranslucentAabb && skipTranslucentAabb.intersects(mi.aabb) && mi.drawOrder !== drawOrder) {\n\t\t\t\t\tskipMesh(mi);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\taabb.add(mi.aabb);\n\t\t\t\tvertCount += mi.mesh.vertexBuffer.getNumVertices();\n\t\t\t\tlists[j].push(mi);\n\t\t\t}\n\t\t\tj++;\n\t\t\tmeshInstancesLeftA = meshInstancesLeftB;\n\t\t}\n\t\treturn lists;\n\t}\n\tcollectBatchedMeshData(meshInstances, dynamic) {\n\t\tlet streams = null;\n\t\tlet batchNumVerts = 0;\n\t\tlet batchNumIndices = 0;\n\t\tlet material = null;\n\t\tfor (let i = 0; i < meshInstances.length; i++) {\n\t\t\tif (meshInstances[i].visible) {\n\t\t\t\tconst mesh = meshInstances[i].mesh;\n\t\t\t\tconst numVerts = mesh.vertexBuffer.numVertices;\n\t\t\t\tbatchNumVerts += numVerts;\n\t\t\t\tif (mesh.primitive[0].indexed) {\n\t\t\t\t\tbatchNumIndices += mesh.primitive[0].count;\n\t\t\t\t} else {\n\t\t\t\t\tconst primitiveType = mesh.primitive[0].type;\n\t\t\t\t\tif (primitiveType === PRIMITIVE_TRIFAN || primitiveType === PRIMITIVE_TRISTRIP) {\n\t\t\t\t\t\tif (mesh.primitive[0].count === 4) {\n\t\t\t\t\t\t\tbatchNumIndices += 6;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!streams) {\n\t\t\t\t\tmaterial = meshInstances[i].material;\n\t\t\t\t\tstreams = {};\n\t\t\t\t\tconst elems = mesh.vertexBuffer.format.elements;\n\t\t\t\t\tfor (let j = 0; j < elems.length; j++) {\n\t\t\t\t\t\tconst semantic = elems[j].name;\n\t\t\t\t\t\tstreams[semantic] = {\n\t\t\t\t\t\t\tnumComponents: elems[j].numComponents,\n\t\t\t\t\t\t\tdataType: elems[j].dataType,\n\t\t\t\t\t\t\tnormalize: elems[j].normalize,\n\t\t\t\t\t\t\tcount: 0\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\tif (dynamic) {\n\t\t\t\t\t\tstreams[SEMANTIC_BLENDINDICES] = {\n\t\t\t\t\t\t\tnumComponents: 1,\n\t\t\t\t\t\t\tdataType: TYPE_FLOAT32,\n\t\t\t\t\t\t\tnormalize: false,\n\t\t\t\t\t\t\tcount: 0\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tstreams: streams,\n\t\t\tbatchNumVerts: batchNumVerts,\n\t\t\tbatchNumIndices: batchNumIndices,\n\t\t\tmaterial: material\n\t\t};\n\t}\n\tcreate(meshInstances, dynamic, batchGroupId) {\n\t\tif (!this._init) {\n\t\t\tconst boneLimit = `#define BONE_LIMIT ${this.device.getBoneLimit()}\\n`;\n\t\t\tthis.transformVS = `${boneLimit}#define DYNAMICBATCH\\n${shaderChunks.transformVS}`;\n\t\t\tthis.skinTexVS = shaderChunks.skinBatchTexVS;\n\t\t\tthis.skinConstVS = shaderChunks.skinBatchConstVS;\n\t\t\tthis.vertexFormats = {};\n\t\t\tthis._init = true;\n\t\t}\n\t\tlet stream = null;\n\t\tlet semantic;\n\t\tlet mesh, numVerts;\n\t\tlet batch = null;\n\t\tconst batchData = this.collectBatchedMeshData(meshInstances, dynamic);\n\t\tif (batchData.streams) {\n\t\t\tconst streams = batchData.streams;\n\t\t\tlet material = batchData.material;\n\t\t\tconst batchNumVerts = batchData.batchNumVerts;\n\t\t\tconst batchNumIndices = batchData.batchNumIndices;\n\t\t\tbatch = new Batch(meshInstances, dynamic, batchGroupId);\n\t\t\tthis._batchList.push(batch);\n\t\t\tlet indexBase, numIndices, indexData;\n\t\t\tlet verticesOffset = 0;\n\t\t\tlet indexOffset = 0;\n\t\t\tlet transform;\n\t\t\tconst indexArrayType = batchNumVerts <= 0xffff ? Uint16Array : Uint32Array;\n\t\t\tconst indices = new indexArrayType(batchNumIndices);\n\t\t\tfor (semantic in streams) {\n\t\t\t\tstream = streams[semantic];\n\t\t\t\tstream.typeArrayType = typedArrayTypes[stream.dataType];\n\t\t\t\tstream.elementByteSize = typedArrayTypesByteSize[stream.dataType];\n\t\t\t\tstream.buffer = new stream.typeArrayType(batchNumVerts * stream.numComponents);\n\t\t\t}\n\t\t\tfor (let i = 0; i < meshInstances.length; i++) {\n\t\t\t\tif (!meshInstances[i].visible) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tmesh = meshInstances[i].mesh;\n\t\t\t\tnumVerts = mesh.vertexBuffer.numVertices;\n\t\t\t\tif (!dynamic) {\n\t\t\t\t\ttransform = meshInstances[i].node.getWorldTransform();\n\t\t\t\t}\n\t\t\t\tfor (semantic in streams) {\n\t\t\t\t\tif (semantic !== SEMANTIC_BLENDINDICES) {\n\t\t\t\t\t\tstream = streams[semantic];\n\t\t\t\t\t\tconst subarray = new stream.typeArrayType(stream.buffer.buffer, stream.elementByteSize * stream.count);\n\t\t\t\t\t\tconst totalComponents = mesh.getVertexStream(semantic, subarray) * stream.numComponents;\n\t\t\t\t\t\tstream.count += totalComponents;\n\t\t\t\t\t\tif (!dynamic && stream.numComponents >= 3) {\n\t\t\t\t\t\t\tif (semantic === SEMANTIC_POSITION) {\n\t\t\t\t\t\t\t\tconst m = transform.data;\n\t\t\t\t\t\t\t\tconst m0 = m[0];\n\t\t\t\t\t\t\t\tconst m1 = m[1];\n\t\t\t\t\t\t\t\tconst m2 = m[2];\n\t\t\t\t\t\t\t\tconst m4 = m[4];\n\t\t\t\t\t\t\t\tconst m5 = m[5];\n\t\t\t\t\t\t\t\tconst m6 = m[6];\n\t\t\t\t\t\t\t\tconst m8 = m[8];\n\t\t\t\t\t\t\t\tconst m9 = m[9];\n\t\t\t\t\t\t\t\tconst m10 = m[10];\n\t\t\t\t\t\t\t\tconst m12 = m[12];\n\t\t\t\t\t\t\t\tconst m13 = m[13];\n\t\t\t\t\t\t\t\tconst m14 = m[14];\n\t\t\t\t\t\t\t\tlet x, y, z;\n\t\t\t\t\t\t\t\tfor (let j = 0; j < totalComponents; j += stream.numComponents) {\n\t\t\t\t\t\t\t\t\tx = subarray[j];\n\t\t\t\t\t\t\t\t\ty = subarray[j + 1];\n\t\t\t\t\t\t\t\t\tz = subarray[j + 2];\n\t\t\t\t\t\t\t\t\tsubarray[j] = x * m0 + y * m4 + z * m8 + m12;\n\t\t\t\t\t\t\t\t\tsubarray[j + 1] = x * m1 + y * m5 + z * m9 + m13;\n\t\t\t\t\t\t\t\t\tsubarray[j + 2] = x * m2 + y * m6 + z * m10 + m14;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (semantic === SEMANTIC_NORMAL || semantic === SEMANTIC_TANGENT) {\n\t\t\t\t\t\t\t\tmat3.invertMat4(transform).transpose();\n\t\t\t\t\t\t\t\tconst [m0, m1, m2, m3, m4, m5, m6, m7, m8] = mat3.data;\n\t\t\t\t\t\t\t\tlet x, y, z;\n\t\t\t\t\t\t\t\tfor (let j = 0; j < totalComponents; j += stream.numComponents) {\n\t\t\t\t\t\t\t\t\tx = subarray[j];\n\t\t\t\t\t\t\t\t\ty = subarray[j + 1];\n\t\t\t\t\t\t\t\t\tz = subarray[j + 2];\n\t\t\t\t\t\t\t\t\tsubarray[j] = x * m0 + y * m3 + z * m6;\n\t\t\t\t\t\t\t\t\tsubarray[j + 1] = x * m1 + y * m4 + z * m7;\n\t\t\t\t\t\t\t\t\tsubarray[j + 2] = x * m2 + y * m5 + z * m8;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (dynamic) {\n\t\t\t\t\tstream = streams[SEMANTIC_BLENDINDICES];\n\t\t\t\t\tfor (let j = 0; j < numVerts; j++) {\n\t\t\t\t\t\tstream.buffer[stream.count++] = i;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (mesh.primitive[0].indexed) {\n\t\t\t\t\tindexBase = mesh.primitive[0].base;\n\t\t\t\t\tnumIndices = mesh.primitive[0].count;\n\t\t\t\t\tconst srcFormat = mesh.indexBuffer[0].getFormat();\n\t\t\t\t\tindexData = new typedArrayIndexFormats[srcFormat](mesh.indexBuffer[0].storage);\n\t\t\t\t} else {\n\t\t\t\t\tconst primitiveType = mesh.primitive[0].type;\n\t\t\t\t\tif (primitiveType === PRIMITIVE_TRIFAN || primitiveType === PRIMITIVE_TRISTRIP) {\n\t\t\t\t\t\tif (mesh.primitive[0].count === 4) {\n\t\t\t\t\t\t\tindexBase = 0;\n\t\t\t\t\t\t\tnumIndices = 6;\n\t\t\t\t\t\t\tindexData = primitiveType === PRIMITIVE_TRIFAN ? _triFanIndices : _triStripIndices;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnumIndices = 0;\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (let j = 0; j < numIndices; j++) {\n\t\t\t\t\tindices[j + indexOffset] = indexData[indexBase + j] + verticesOffset;\n\t\t\t\t}\n\t\t\t\tindexOffset += numIndices;\n\t\t\t\tverticesOffset += numVerts;\n\t\t\t}\n\t\t\tmesh = new Mesh(this.device);\n\t\t\tfor (semantic in streams) {\n\t\t\t\tstream = streams[semantic];\n\t\t\t\tmesh.setVertexStream(semantic, stream.buffer, stream.numComponents, undefined, stream.dataType, stream.normalize);\n\t\t\t}\n\t\t\tif (indices.length > 0) {\n\t\t\t\tmesh.setIndices(indices);\n\t\t\t}\n\t\t\tmesh.update(PRIMITIVE_TRIANGLES, false);\n\t\t\tif (dynamic) {\n\t\t\t\tmaterial = material.clone();\n\t\t\t\tmaterial.chunks.transformVS = this.transformVS;\n\t\t\t\tmaterial.chunks.skinTexVS = this.skinTexVS;\n\t\t\t\tmaterial.chunks.skinConstVS = this.skinConstVS;\n\t\t\t\tmaterial.update();\n\t\t\t}\n\t\t\tconst meshInstance = new MeshInstance(mesh, material, this.rootNode);\n\t\t\tmeshInstance.castShadow = batch.origMeshInstances[0].castShadow;\n\t\t\tmeshInstance.parameters = batch.origMeshInstances[0].parameters;\n\t\t\tmeshInstance.layer = batch.origMeshInstances[0].layer;\n\t\t\tmeshInstance._shaderDefs = batch.origMeshInstances[0]._shaderDefs;\n\t\t\tmeshInstance.cull = batch.origMeshInstances[0].cull;\n\t\t\tconst batchGroup = this._batchGroups[batchGroupId];\n\t\t\tif (batchGroup && batchGroup._ui) {\n\t\t\t\tmeshInstance.cull = false;\n\t\t\t}\n\t\t\tif (dynamic) {\n\t\t\t\tconst nodes = [];\n\t\t\t\tfor (let i = 0; i < batch.origMeshInstances.length; i++) {\n\t\t\t\t\tnodes.push(batch.origMeshInstances[i].node);\n\t\t\t\t}\n\t\t\t\tmeshInstance.skinInstance = new SkinBatchInstance(this.device, nodes, this.rootNode);\n\t\t\t}\n\t\t\tmeshInstance._updateAabb = false;\n\t\t\tmeshInstance.drawOrder = batch.origMeshInstances[0].drawOrder;\n\t\t\tmeshInstance.stencilFront = batch.origMeshInstances[0].stencilFront;\n\t\t\tmeshInstance.stencilBack = batch.origMeshInstances[0].stencilBack;\n\t\t\tmeshInstance.flipFacesFactor = getScaleSign(batch.origMeshInstances[0]);\n\t\t\tmeshInstance.castShadow = batch.origMeshInstances[0].castShadow;\n\t\t\tbatch.meshInstance = meshInstance;\n\t\t\tbatch.updateBoundingBox();\n\t\t}\n\t\treturn batch;\n\t}\n\tupdateAll() {\n\t\tif (this._dirtyGroups.length > 0) {\n\t\t\tthis.generate(this._dirtyGroups);\n\t\t}\n\t\tfor (let i = 0; i < this._batchList.length; i++) {\n\t\t\tif (!this._batchList[i].dynamic) continue;\n\t\t\tthis._batchList[i].updateBoundingBox();\n\t\t}\n\t}\n\tclone(batch, clonedMeshInstances) {\n\t\tconst batch2 = new Batch(clonedMeshInstances, batch.dynamic, batch.batchGroupId);\n\t\tthis._batchList.push(batch2);\n\t\tconst nodes = [];\n\t\tfor (let i = 0; i < clonedMeshInstances.length; i++) {\n\t\t\tnodes.push(clonedMeshInstances[i].node);\n\t\t}\n\t\tbatch2.meshInstance = new MeshInstance(batch.meshInstance.mesh, batch.meshInstance.material, batch.meshInstance.node);\n\t\tbatch2.meshInstance._updateAabb = false;\n\t\tbatch2.meshInstance.parameters = clonedMeshInstances[0].parameters;\n\t\tbatch2.meshInstance.cull = clonedMeshInstances[0].cull;\n\t\tbatch2.meshInstance.layer = clonedMeshInstances[0].layer;\n\t\tif (batch.dynamic) {\n\t\t\tbatch2.meshInstance.skinInstance = new SkinBatchInstance(this.device, nodes, this.rootNode);\n\t\t}\n\t\tbatch2.meshInstance.castShadow = batch.meshInstance.castShadow;\n\t\tbatch2.meshInstance._shader = batch.meshInstance._shader.slice();\n\t\tbatch2.meshInstance.castShadow = batch.meshInstance.castShadow;\n\t\treturn batch2;\n\t}\n\tdestroyBatch(batch) {\n\t\tbatch.destroy(this.scene, this._batchGroups[batch.batchGroupId].layers);\n\t}\n}\n\nconst _colorUniformNames = ['uSceneColorMap', 'texture_grabPass'];\nclass RenderPassColorGrab extends RenderPass {\n\tconstructor(...args) {\n\t\tsuper(...args);\n\t\tthis.colorRenderTarget = null;\n\t\tthis.source = null;\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.releaseRenderTarget(this.colorRenderTarget);\n\t}\n\tshouldReallocate(targetRT, sourceTexture, sourceFormat) {\n\t\tconst targetFormat = targetRT == null ? void 0 : targetRT.colorBuffer.format;\n\t\tif (targetFormat !== sourceFormat) {\n\t\t\treturn true;\n\t\t}\n\t\tconst width = (sourceTexture == null ? void 0 : sourceTexture.width) || this.device.width;\n\t\tconst height = (sourceTexture == null ? void 0 : sourceTexture.height) || this.device.height;\n\t\treturn !targetRT || width !== targetRT.width || height !== targetRT.height;\n\t}\n\tallocateRenderTarget(renderTarget, sourceRenderTarget, device, format) {\n\t\tconst mipmaps = device.isWebGL2;\n\t\tconst texture = new Texture(device, {\n\t\t\tname: _colorUniformNames[0],\n\t\t\tformat,\n\t\t\twidth: sourceRenderTarget ? sourceRenderTarget.colorBuffer.width : device.width,\n\t\t\theight: sourceRenderTarget ? sourceRenderTarget.colorBuffer.height : device.height,\n\t\t\tmipmaps,\n\t\t\tminFilter: mipmaps ? FILTER_LINEAR_MIPMAP_LINEAR : FILTER_LINEAR,\n\t\t\tmagFilter: FILTER_LINEAR,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE\n\t\t});\n\t\tif (renderTarget) {\n\t\t\trenderTarget.destroyFrameBuffers();\n\t\t\trenderTarget._colorBuffer = texture;\n\t\t\trenderTarget._colorBuffers = [texture];\n\t\t} else {\n\t\t\trenderTarget = new RenderTarget({\n\t\t\t\tname: 'ColorGrabRT',\n\t\t\t\tcolorBuffer: texture,\n\t\t\t\tdepth: false,\n\t\t\t\tstencil: false,\n\t\t\t\tautoResolve: false\n\t\t\t});\n\t\t}\n\t\treturn renderTarget;\n\t}\n\treleaseRenderTarget(rt) {\n\t\tif (rt) {\n\t\t\trt.destroyTextureBuffers();\n\t\t\trt.destroy();\n\t\t}\n\t}\n\tframeUpdate() {\n\t\tvar _sourceRt$colorBuffer;\n\t\tconst device = this.device;\n\t\tconst sourceRt = this.source;\n\t\tconst sourceFormat = (_sourceRt$colorBuffer = sourceRt == null ? void 0 : sourceRt.colorBuffer.format) != null ? _sourceRt$colorBuffer : this.device.backBufferFormat;\n\t\tif (this.shouldReallocate(this.colorRenderTarget, sourceRt == null ? void 0 : sourceRt.colorBuffer, sourceFormat)) {\n\t\t\tthis.releaseRenderTarget(this.colorRenderTarget);\n\t\t\tthis.colorRenderTarget = this.allocateRenderTarget(this.colorRenderTarget, sourceRt, device, sourceFormat);\n\t\t}\n\t\tconst colorBuffer = this.colorRenderTarget.colorBuffer;\n\t\t_colorUniformNames.forEach(name => device.scope.resolve(name).setValue(colorBuffer));\n\t}\n\texecute() {\n\t\tconst device = this.device;\n\t\tconst sourceRt = this.source;\n\t\tconst colorBuffer = this.colorRenderTarget.colorBuffer;\n\t\tif (device.isWebGPU) {\n\t\t\tdevice.copyRenderTarget(sourceRt, this.colorRenderTarget, true, false);\n\t\t\tdevice.mipmapRenderer.generate(this.colorRenderTarget.colorBuffer.impl);\n\t\t} else if (device.isWebGL2) {\n\t\t\tdevice.copyRenderTarget(sourceRt, this.colorRenderTarget, true, false);\n\t\t\tdevice.activeTexture(device.maxCombinedTextures - 1);\n\t\t\tdevice.bindTexture(colorBuffer);\n\t\t\tdevice.gl.generateMipmap(colorBuffer.impl._glTarget);\n\t\t} else {\n\t\t\tif (!colorBuffer.impl._glTexture) {\n\t\t\t\tcolorBuffer.impl.initialize(device, colorBuffer);\n\t\t\t}\n\t\t\tdevice.bindTexture(colorBuffer);\n\t\t\tconst gl = device.gl;\n\t\t\tgl.copyTexImage2D(gl.TEXTURE_2D, 0, colorBuffer.impl._glFormat, 0, 0, colorBuffer.width, colorBuffer.height, 0);\n\t\t\tcolorBuffer._needsUpload = false;\n\t\t\tcolorBuffer._needsMipmapsUpload = false;\n\t\t}\n\t}\n}\n\nconst _depthUniformNames$1 = ['uSceneDepthMap', 'uDepthMap'];\nclass RenderPassDepthGrab extends RenderPass {\n\tconstructor(device, camera) {\n\t\tsuper(device);\n\t\tthis.depthRenderTarget = null;\n\t\tthis.camera = null;\n\t\tthis.camera = camera;\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.releaseRenderTarget(this.depthRenderTarget);\n\t}\n\tshouldReallocate(targetRT, sourceTexture) {\n\t\tconst width = (sourceTexture == null ? void 0 : sourceTexture.width) || this.device.width;\n\t\tconst height = (sourceTexture == null ? void 0 : sourceTexture.height) || this.device.height;\n\t\treturn !targetRT || width !== targetRT.width || height !== targetRT.height;\n\t}\n\tallocateRenderTarget(renderTarget, sourceRenderTarget, device, format, isDepth) {\n\t\tconst texture = new Texture(device, {\n\t\t\tname: _depthUniformNames$1[0],\n\t\t\tformat,\n\t\t\twidth: sourceRenderTarget ? sourceRenderTarget.colorBuffer.width : device.width,\n\t\t\theight: sourceRenderTarget ? sourceRenderTarget.colorBuffer.height : device.height,\n\t\t\tmipmaps: false,\n\t\t\tminFilter: FILTER_NEAREST,\n\t\t\tmagFilter: FILTER_NEAREST,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE\n\t\t});\n\t\tif (renderTarget) {\n\t\t\trenderTarget.destroyFrameBuffers();\n\t\t\tif (isDepth) {\n\t\t\t\trenderTarget._depthBuffer = texture;\n\t\t\t} else {\n\t\t\t\trenderTarget._colorBuffer = texture;\n\t\t\t\trenderTarget._colorBuffers = [texture];\n\t\t\t}\n\t\t} else {\n\t\t\trenderTarget = new RenderTarget({\n\t\t\t\tname: 'DepthGrabRT',\n\t\t\t\tcolorBuffer: isDepth ? null : texture,\n\t\t\t\tdepthBuffer: isDepth ? texture : null,\n\t\t\t\tdepth: !isDepth,\n\t\t\t\tstencil: device.supportsStencil,\n\t\t\t\tautoResolve: false\n\t\t\t});\n\t\t}\n\t\treturn renderTarget;\n\t}\n\treleaseRenderTarget(rt) {\n\t\tif (rt) {\n\t\t\trt.destroyTextureBuffers();\n\t\t\trt.destroy();\n\t\t}\n\t}\n\tbefore() {\n\t\tvar _camera$renderTarget, _camera$renderTarget$, _camera$renderTarget2, _camera$renderTarget3;\n\t\tconst camera = this.camera;\n\t\tconst device = this.device;\n\t\tconst destinationRt = (_camera$renderTarget = camera == null ? void 0 : camera.renderTarget) != null ? _camera$renderTarget : device.backBuffer;\n\t\tlet useDepthBuffer = true;\n\t\tlet format = destinationRt.stencil ? PIXELFORMAT_DEPTHSTENCIL : PIXELFORMAT_DEPTH;\n\t\tif (device.isWebGPU) {\n\t\t\tconst numSamples = destinationRt.samples;\n\t\t\tif (numSamples > 1) {\n\t\t\t\tformat = PIXELFORMAT_R32F;\n\t\t\t\tuseDepthBuffer = false;\n\t\t\t}\n\t\t}\n\t\tconst sourceTexture = (_camera$renderTarget$ = (_camera$renderTarget2 = camera.renderTarget) == null ? void 0 : _camera$renderTarget2.depthBuffer) != null ? _camera$renderTarget$ : (_camera$renderTarget3 = camera.renderTarget) == null ? void 0 : _camera$renderTarget3.colorBuffer;\n\t\tif (this.shouldReallocate(this.depthRenderTarget, sourceTexture)) {\n\t\t\tthis.releaseRenderTarget(this.depthRenderTarget);\n\t\t\tthis.depthRenderTarget = this.allocateRenderTarget(this.depthRenderTarget, camera.renderTarget, device, format, useDepthBuffer);\n\t\t}\n\t\tconst colorBuffer = useDepthBuffer ? this.depthRenderTarget.depthBuffer : this.depthRenderTarget.colorBuffer;\n\t\t_depthUniformNames$1.forEach(name => device.scope.resolve(name).setValue(colorBuffer));\n\t}\n\texecute() {\n\t\tconst device = this.device;\n\t\tif (device.isWebGL2 && device.renderTarget.samples > 1) {\n\t\t\tconst src = device.renderTarget.impl._glFrameBuffer;\n\t\t\tconst dest = this.depthRenderTarget;\n\t\t\tdevice.renderTarget = dest;\n\t\t\tdevice.updateBegin();\n\t\t\tthis.depthRenderTarget.impl.internalResolve(device, src, dest.impl._glFrameBuffer, this.depthRenderTarget, device.gl.DEPTH_BUFFER_BIT);\n\t\t} else {\n\t\t\tdevice.copyRenderTarget(device.renderTarget, this.depthRenderTarget, false, true);\n\t\t}\n\t}\n}\n\nconst webgl1DepthClearColor = new Color(254.0 / 255, 254.0 / 255, 254.0 / 255, 254.0 / 255);\nconst tempMeshInstances$2 = [];\nconst lights$1 = [[], [], []];\nconst _depthUniformNames = ['uSceneDepthMap', 'uDepthMap'];\nclass RenderPassDepth extends RenderPass {\n\tconstructor(device, renderer, camera) {\n\t\tsuper(device);\n\t\tthis.renderer = renderer;\n\t\tthis.camera = camera;\n\t\tthis.setupRenderTarget();\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tif (this.renderTarget) {\n\t\t\tthis.renderTarget.destroyTextureBuffers();\n\t\t\tthis.renderTarget.destroy();\n\t\t\tthis.renderTarget = null;\n\t\t}\n\t}\n\tupdate(scene) {\n\t\tthis.scene = scene;\n\t}\n\tsetupRenderTarget() {\n\t\tconst texture = new Texture(this.device, {\n\t\t\tname: _depthUniformNames[0],\n\t\t\tformat: PIXELFORMAT_RGBA8,\n\t\t\twidth: 4,\n\t\t\theight: 4,\n\t\t\tmipmaps: false,\n\t\t\tminFilter: FILTER_NEAREST,\n\t\t\tmagFilter: FILTER_NEAREST,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE\n\t\t});\n\t\tconst renderTarget = new RenderTarget({\n\t\t\tname: `${_depthUniformNames[0]}RT}`,\n\t\t\tcolorBuffer: texture,\n\t\t\tdepth: true,\n\t\t\tstencil: false\n\t\t});\n\t\tthis.init(renderTarget, {});\n\t\tthis.setClearColor(webgl1DepthClearColor);\n\t\tthis.setClearDepth(1.0);\n\t}\n\tbefore() {\n\t\tconst device = this.device;\n\t\tconst colorBuffer = this.renderTarget.colorBuffer;\n\t\t_depthUniformNames.forEach(name => device.scope.resolve(name).setValue(colorBuffer));\n\t}\n\texecute() {\n\t\tconst {\n\t\t\tdevice,\n\t\t\trenderer,\n\t\t\tcamera,\n\t\t\tscene,\n\t\t\trenderTarget\n\t\t} = this;\n\t\tconst layers = scene.layers.layerList;\n\t\tconst subLayerEnabled = scene.layers.subLayerEnabled;\n\t\tconst isTransparent = scene.layers.subLayerList;\n\t\tfor (let i = 0; i < layers.length; i++) {\n\t\t\tconst layer = layers[i];\n\t\t\tif (layer.enabled && subLayerEnabled[i]) {\n\t\t\t\tif (layer.camerasSet.has(camera)) {\n\t\t\t\t\tif (layer.id === LAYERID_DEPTH) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst culledInstances = layer.getCulledInstances(camera);\n\t\t\t\t\tconst meshInstances = isTransparent[i] ? culledInstances.transparent : culledInstances.opaque;\n\t\t\t\t\tfor (let j = 0; j < meshInstances.length; j++) {\n\t\t\t\t\t\tvar _meshInstance$materia;\n\t\t\t\t\t\tconst meshInstance = meshInstances[j];\n\t\t\t\t\t\tif ((_meshInstance$materia = meshInstance.material) != null && _meshInstance$materia.depthWrite) {\n\t\t\t\t\t\t\ttempMeshInstances$2.push(meshInstance);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\trenderer.setCameraUniforms(camera, renderTarget);\n\t\t\t\t\trenderer.renderForward(camera, tempMeshInstances$2, lights$1, SHADER_DEPTH, meshInstance => {\n\t\t\t\t\t\tdevice.setBlendState(BlendState.NOBLEND);\n\t\t\t\t\t}, layer);\n\t\t\t\t\ttempMeshInstances$2.length = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst _deviceCoord = new Vec3();\nconst _halfSize = new Vec3();\nconst _point$1 = new Vec3();\nconst _invViewProjMat = new Mat4();\nconst _frustumPoints = [new Vec3(), new Vec3(), new Vec3(), new Vec3(), new Vec3(), new Vec3(), new Vec3(), new Vec3()];\nclass Camera {\n\tconstructor() {\n\t\tthis.shaderPassInfo = null;\n\t\tthis.renderPassColorGrab = null;\n\t\tthis.renderPassDepthGrab = null;\n\t\tthis.renderPasses = [];\n\t\tthis.jitter = 0;\n\t\tthis._aspectRatio = 16 / 9;\n\t\tthis._aspectRatioMode = ASPECT_AUTO;\n\t\tthis._calculateProjection = null;\n\t\tthis._calculateTransform = null;\n\t\tthis._clearColor = new Color(0.75, 0.75, 0.75, 1);\n\t\tthis._clearColorBuffer = true;\n\t\tthis._clearDepth = 1;\n\t\tthis._clearDepthBuffer = true;\n\t\tthis._clearStencil = 0;\n\t\tthis._clearStencilBuffer = true;\n\t\tthis._cullFaces = true;\n\t\tthis._farClip = 1000;\n\t\tthis._flipFaces = false;\n\t\tthis._fov = 45;\n\t\tthis._frustumCulling = true;\n\t\tthis._horizontalFov = false;\n\t\tthis._layers = [LAYERID_WORLD, LAYERID_DEPTH, LAYERID_SKYBOX, LAYERID_UI, LAYERID_IMMEDIATE];\n\t\tthis._layersSet = new Set(this._layers);\n\t\tthis._nearClip = 0.1;\n\t\tthis._node = null;\n\t\tthis._orthoHeight = 10;\n\t\tthis._projection = PROJECTION_PERSPECTIVE;\n\t\tthis._rect = new Vec4(0, 0, 1, 1);\n\t\tthis._renderTarget = null;\n\t\tthis._scissorRect = new Vec4(0, 0, 1, 1);\n\t\tthis._scissorRectClear = false;\n\t\tthis._aperture = 16.0;\n\t\tthis._shutter = 1.0 / 1000.0;\n\t\tthis._sensitivity = 1000;\n\t\tthis._projMat = new Mat4();\n\t\tthis._projMatDirty = true;\n\t\tthis._projMatSkybox = new Mat4();\n\t\tthis._viewMat = new Mat4();\n\t\tthis._viewMatDirty = true;\n\t\tthis._viewProjMat = new Mat4();\n\t\tthis._viewProjMatDirty = true;\n\t\tthis._shaderMatricesVersion = 0;\n\t\tthis._viewProjInverse = new Mat4();\n\t\tthis._viewProjCurrent = null;\n\t\tthis._viewProjPrevious = new Mat4();\n\t\tthis._jitters = [0, 0, 0, 0];\n\t\tthis.frustum = new Frustum();\n\t\tthis._xr = null;\n\t\tthis._xrProperties = {\n\t\t\thorizontalFov: this._horizontalFov,\n\t\t\tfov: this._fov,\n\t\t\taspectRatio: this._aspectRatio,\n\t\t\tfarClip: this._farClip,\n\t\t\tnearClip: this._nearClip\n\t\t};\n\t}\n\tdestroy() {\n\t\tvar _this$renderPassColor, _this$renderPassDepth;\n\t\t(_this$renderPassColor = this.renderPassColorGrab) == null || _this$renderPassColor.destroy();\n\t\tthis.renderPassColorGrab = null;\n\t\t(_this$renderPassDepth = this.renderPassDepthGrab) == null || _this$renderPassDepth.destroy();\n\t\tthis.renderPassDepthGrab = null;\n\t\tthis.renderPasses.length = 0;\n\t}\n\t_storeShaderMatrices(viewProjMat, jitterX, jitterY, renderVersion) {\n\t\tif (this._shaderMatricesVersion !== renderVersion) {\n\t\t\tvar _this$_viewProjCurren, _this$_viewProjCurren2;\n\t\t\tthis._shaderMatricesVersion = renderVersion;\n\t\t\tthis._viewProjPrevious.copy((_this$_viewProjCurren = this._viewProjCurrent) != null ? _this$_viewProjCurren : viewProjMat);\n\t\t\t(_this$_viewProjCurren2 = this._viewProjCurrent) != null ? _this$_viewProjCurren2 : this._viewProjCurrent = new Mat4();\n\t\t\tthis._viewProjCurrent.copy(viewProjMat);\n\t\t\tthis._viewProjInverse.invert(viewProjMat);\n\t\t\tthis._jitters[2] = this._jitters[0];\n\t\t\tthis._jitters[3] = this._jitters[1];\n\t\t\tthis._jitters[0] = jitterX;\n\t\t\tthis._jitters[1] = jitterY;\n\t\t}\n\t}\n\tget fullSizeClearRect() {\n\t\tconst rect = this._scissorRectClear ? this.scissorRect : this._rect;\n\t\treturn rect.x === 0 && rect.y === 0 && rect.z === 1 && rect.w === 1;\n\t}\n\tset aspectRatio(newValue) {\n\t\tif (this._aspectRatio !== newValue) {\n\t\t\tthis._aspectRatio = newValue;\n\t\t\tthis._projMatDirty = true;\n\t\t}\n\t}\n\tget aspectRatio() {\n\t\tvar _this$xr;\n\t\treturn (_this$xr = this.xr) != null && _this$xr.active ? this._xrProperties.aspectRatio : this._aspectRatio;\n\t}\n\tset aspectRatioMode(newValue) {\n\t\tif (this._aspectRatioMode !== newValue) {\n\t\t\tthis._aspectRatioMode = newValue;\n\t\t\tthis._projMatDirty = true;\n\t\t}\n\t}\n\tget aspectRatioMode() {\n\t\treturn this._aspectRatioMode;\n\t}\n\tset calculateProjection(newValue) {\n\t\tthis._calculateProjection = newValue;\n\t\tthis._projMatDirty = true;\n\t}\n\tget calculateProjection() {\n\t\treturn this._calculateProjection;\n\t}\n\tset calculateTransform(newValue) {\n\t\tthis._calculateTransform = newValue;\n\t}\n\tget calculateTransform() {\n\t\treturn this._calculateTransform;\n\t}\n\tset clearColor(newValue) {\n\t\tthis._clearColor.copy(newValue);\n\t}\n\tget clearColor() {\n\t\treturn this._clearColor;\n\t}\n\tset clearColorBuffer(newValue) {\n\t\tthis._clearColorBuffer = newValue;\n\t}\n\tget clearColorBuffer() {\n\t\treturn this._clearColorBuffer;\n\t}\n\tset clearDepth(newValue) {\n\t\tthis._clearDepth = newValue;\n\t}\n\tget clearDepth() {\n\t\treturn this._clearDepth;\n\t}\n\tset clearDepthBuffer(newValue) {\n\t\tthis._clearDepthBuffer = newValue;\n\t}\n\tget clearDepthBuffer() {\n\t\treturn this._clearDepthBuffer;\n\t}\n\tset clearStencil(newValue) {\n\t\tthis._clearStencil = newValue;\n\t}\n\tget clearStencil() {\n\t\treturn this._clearStencil;\n\t}\n\tset clearStencilBuffer(newValue) {\n\t\tthis._clearStencilBuffer = newValue;\n\t}\n\tget clearStencilBuffer() {\n\t\treturn this._clearStencilBuffer;\n\t}\n\tset cullFaces(newValue) {\n\t\tthis._cullFaces = newValue;\n\t}\n\tget cullFaces() {\n\t\treturn this._cullFaces;\n\t}\n\tset farClip(newValue) {\n\t\tif (this._farClip !== newValue) {\n\t\t\tthis._farClip = newValue;\n\t\t\tthis._projMatDirty = true;\n\t\t}\n\t}\n\tget farClip() {\n\t\tvar _this$xr2;\n\t\treturn (_this$xr2 = this.xr) != null && _this$xr2.active ? this._xrProperties.farClip : this._farClip;\n\t}\n\tset flipFaces(newValue) {\n\t\tthis._flipFaces = newValue;\n\t}\n\tget flipFaces() {\n\t\treturn this._flipFaces;\n\t}\n\tset fov(newValue) {\n\t\tif (this._fov !== newValue) {\n\t\t\tthis._fov = newValue;\n\t\t\tthis._projMatDirty = true;\n\t\t}\n\t}\n\tget fov() {\n\t\tvar _this$xr3;\n\t\treturn (_this$xr3 = this.xr) != null && _this$xr3.active ? this._xrProperties.fov : this._fov;\n\t}\n\tset frustumCulling(newValue) {\n\t\tthis._frustumCulling = newValue;\n\t}\n\tget frustumCulling() {\n\t\treturn this._frustumCulling;\n\t}\n\tset horizontalFov(newValue) {\n\t\tif (this._horizontalFov !== newValue) {\n\t\t\tthis._horizontalFov = newValue;\n\t\t\tthis._projMatDirty = true;\n\t\t}\n\t}\n\tget horizontalFov() {\n\t\tvar _this$xr4;\n\t\treturn (_this$xr4 = this.xr) != null && _this$xr4.active ? this._xrProperties.horizontalFov : this._horizontalFov;\n\t}\n\tset layers(newValue) {\n\t\tthis._layers = newValue.slice(0);\n\t\tthis._layersSet = new Set(this._layers);\n\t}\n\tget layers() {\n\t\treturn this._layers;\n\t}\n\tget layersSet() {\n\t\treturn this._layersSet;\n\t}\n\tset nearClip(newValue) {\n\t\tif (this._nearClip !== newValue) {\n\t\t\tthis._nearClip = newValue;\n\t\t\tthis._projMatDirty = true;\n\t\t}\n\t}\n\tget nearClip() {\n\t\tvar _this$xr5;\n\t\treturn (_this$xr5 = this.xr) != null && _this$xr5.active ? this._xrProperties.nearClip : this._nearClip;\n\t}\n\tset node(newValue) {\n\t\tthis._node = newValue;\n\t}\n\tget node() {\n\t\treturn this._node;\n\t}\n\tset orthoHeight(newValue) {\n\t\tif (this._orthoHeight !== newValue) {\n\t\t\tthis._orthoHeight = newValue;\n\t\t\tthis._projMatDirty = true;\n\t\t}\n\t}\n\tget orthoHeight() {\n\t\treturn this._orthoHeight;\n\t}\n\tset projection(newValue) {\n\t\tif (this._projection !== newValue) {\n\t\t\tthis._projection = newValue;\n\t\t\tthis._projMatDirty = true;\n\t\t}\n\t}\n\tget projection() {\n\t\treturn this._projection;\n\t}\n\tget projectionMatrix() {\n\t\tthis._evaluateProjectionMatrix();\n\t\treturn this._projMat;\n\t}\n\tset rect(newValue) {\n\t\tthis._rect.copy(newValue);\n\t}\n\tget rect() {\n\t\treturn this._rect;\n\t}\n\tset renderTarget(newValue) {\n\t\tthis._renderTarget = newValue;\n\t}\n\tget renderTarget() {\n\t\treturn this._renderTarget;\n\t}\n\tset scissorRect(newValue) {\n\t\tthis._scissorRect.copy(newValue);\n\t}\n\tget scissorRect() {\n\t\treturn this._scissorRect;\n\t}\n\tget viewMatrix() {\n\t\tif (this._viewMatDirty) {\n\t\t\tconst wtm = this._node.getWorldTransform();\n\t\t\tthis._viewMat.copy(wtm).invert();\n\t\t\tthis._viewMatDirty = false;\n\t\t}\n\t\treturn this._viewMat;\n\t}\n\tset aperture(newValue) {\n\t\tthis._aperture = newValue;\n\t}\n\tget aperture() {\n\t\treturn this._aperture;\n\t}\n\tset sensitivity(newValue) {\n\t\tthis._sensitivity = newValue;\n\t}\n\tget sensitivity() {\n\t\treturn this._sensitivity;\n\t}\n\tset shutter(newValue) {\n\t\tthis._shutter = newValue;\n\t}\n\tget shutter() {\n\t\treturn this._shutter;\n\t}\n\tset xr(newValue) {\n\t\tif (this._xr !== newValue) {\n\t\t\tthis._xr = newValue;\n\t\t\tthis._projMatDirty = true;\n\t\t}\n\t}\n\tget xr() {\n\t\treturn this._xr;\n\t}\n\tclone() {\n\t\treturn new Camera().copy(this);\n\t}\n\tcopy(other) {\n\t\tthis._aspectRatio = other._aspectRatio;\n\t\tthis._farClip = other._farClip;\n\t\tthis._fov = other._fov;\n\t\tthis._horizontalFov = other._horizontalFov;\n\t\tthis._nearClip = other._nearClip;\n\t\tthis._xrProperties.aspectRatio = other._xrProperties.aspectRatio;\n\t\tthis._xrProperties.farClip = other._xrProperties.farClip;\n\t\tthis._xrProperties.fov = other._xrProperties.fov;\n\t\tthis._xrProperties.horizontalFov = other._xrProperties.horizontalFov;\n\t\tthis._xrProperties.nearClip = other._xrProperties.nearClip;\n\t\tthis.aspectRatioMode = other.aspectRatioMode;\n\t\tthis.calculateProjection = other.calculateProjection;\n\t\tthis.calculateTransform = other.calculateTransform;\n\t\tthis.clearColor = other.clearColor;\n\t\tthis.clearColorBuffer = other.clearColorBuffer;\n\t\tthis.clearDepth = other.clearDepth;\n\t\tthis.clearDepthBuffer = other.clearDepthBuffer;\n\t\tthis.clearStencil = other.clearStencil;\n\t\tthis.clearStencilBuffer = other.clearStencilBuffer;\n\t\tthis.cullFaces = other.cullFaces;\n\t\tthis.flipFaces = other.flipFaces;\n\t\tthis.frustumCulling = other.frustumCulling;\n\t\tthis.layers = other.layers;\n\t\tthis.orthoHeight = other.orthoHeight;\n\t\tthis.projection = other.projection;\n\t\tthis.rect = other.rect;\n\t\tthis.renderTarget = other.renderTarget;\n\t\tthis.scissorRect = other.scissorRect;\n\t\tthis.aperture = other.aperture;\n\t\tthis.shutter = other.shutter;\n\t\tthis.sensitivity = other.sensitivity;\n\t\tthis.shaderPassInfo = other.shaderPassInfo;\n\t\tthis.jitter = other.jitter;\n\t\tthis._projMatDirty = true;\n\t\treturn this;\n\t}\n\t_enableRenderPassColorGrab(device, enable) {\n\t\tif (enable) {\n\t\t\tif (!this.renderPassColorGrab) {\n\t\t\t\tthis.renderPassColorGrab = new RenderPassColorGrab(device);\n\t\t\t}\n\t\t} else {\n\t\t\tvar _this$renderPassColor2;\n\t\t\t(_this$renderPassColor2 = this.renderPassColorGrab) == null || _this$renderPassColor2.destroy();\n\t\t\tthis.renderPassColorGrab = null;\n\t\t}\n\t}\n\t_enableRenderPassDepthGrab(device, renderer, enable) {\n\t\tif (enable) {\n\t\t\tif (!this.renderPassDepthGrab) {\n\t\t\t\tthis.renderPassDepthGrab = device.isWebGL1 ? new RenderPassDepth(device, renderer, this) : new RenderPassDepthGrab(device, this);\n\t\t\t}\n\t\t} else {\n\t\t\tvar _this$renderPassDepth2;\n\t\t\t(_this$renderPassDepth2 = this.renderPassDepthGrab) == null || _this$renderPassDepth2.destroy();\n\t\t\tthis.renderPassDepthGrab = null;\n\t\t}\n\t}\n\t_updateViewProjMat() {\n\t\tif (this._projMatDirty || this._viewMatDirty || this._viewProjMatDirty) {\n\t\t\tthis._viewProjMat.mul2(this.projectionMatrix, this.viewMatrix);\n\t\t\tthis._viewProjMatDirty = false;\n\t\t}\n\t}\n\tworldToScreen(worldCoord, cw, ch, screenCoord = new Vec3()) {\n\t\tthis._updateViewProjMat();\n\t\tthis._viewProjMat.transformPoint(worldCoord, screenCoord);\n\t\tconst vpm = this._viewProjMat.data;\n\t\tconst w = worldCoord.x * vpm[3] + worldCoord.y * vpm[7] + worldCoord.z * vpm[11] + 1 * vpm[15];\n\t\tscreenCoord.x = (screenCoord.x / w + 1) * 0.5 * cw;\n\t\tscreenCoord.y = (1 - screenCoord.y / w) * 0.5 * ch;\n\t\treturn screenCoord;\n\t}\n\tscreenToWorld(x, y, z, cw, ch, worldCoord = new Vec3()) {\n\t\tconst range = this.farClip - this.nearClip;\n\t\t_deviceCoord.set(x / cw, (ch - y) / ch, z / range);\n\t\t_deviceCoord.mulScalar(2);\n\t\t_deviceCoord.sub(Vec3.ONE);\n\t\tif (this._projection === PROJECTION_PERSPECTIVE) {\n\t\t\tMat4._getPerspectiveHalfSize(_halfSize, this.fov, this.aspectRatio, this.nearClip, this.horizontalFov);\n\t\t\t_halfSize.x *= _deviceCoord.x;\n\t\t\t_halfSize.y *= _deviceCoord.y;\n\t\t\tconst invView = this._node.getWorldTransform();\n\t\t\t_halfSize.z = -this.nearClip;\n\t\t\tinvView.transformPoint(_halfSize, _point$1);\n\t\t\tconst cameraPos = this._node.getPosition();\n\t\t\tworldCoord.sub2(_point$1, cameraPos);\n\t\t\tworldCoord.normalize();\n\t\t\tworldCoord.mulScalar(z);\n\t\t\tworldCoord.add(cameraPos);\n\t\t} else {\n\t\t\tthis._updateViewProjMat();\n\t\t\t_invViewProjMat.copy(this._viewProjMat).invert();\n\t\t\t_invViewProjMat.transformPoint(_deviceCoord, worldCoord);\n\t\t}\n\t\treturn worldCoord;\n\t}\n\t_evaluateProjectionMatrix() {\n\t\tif (this._projMatDirty) {\n\t\t\tif (this._projection === PROJECTION_PERSPECTIVE) {\n\t\t\t\tthis._projMat.setPerspective(this.fov, this.aspectRatio, this.nearClip, this.farClip, this.horizontalFov);\n\t\t\t\tthis._projMatSkybox.copy(this._projMat);\n\t\t\t} else {\n\t\t\t\tconst y = this._orthoHeight;\n\t\t\t\tconst x = y * this.aspectRatio;\n\t\t\t\tthis._projMat.setOrtho(-x, x, -y, y, this.nearClip, this.farClip);\n\t\t\t\tthis._projMatSkybox.setPerspective(this.fov, this.aspectRatio, this.nearClip, this.farClip);\n\t\t\t}\n\t\t\tthis._projMatDirty = false;\n\t\t}\n\t}\n\tgetProjectionMatrixSkybox() {\n\t\tthis._evaluateProjectionMatrix();\n\t\treturn this._projMatSkybox;\n\t}\n\tgetExposure() {\n\t\tconst ev100 = Math.log2(this._aperture * this._aperture / this._shutter * 100.0 / this._sensitivity);\n\t\treturn 1.0 / (Math.pow(2.0, ev100) * 1.2);\n\t}\n\tgetScreenSize(sphere) {\n\t\tif (this._projection === PROJECTION_PERSPECTIVE) {\n\t\t\tconst distance = this._node.getPosition().distance(sphere.center);\n\t\t\tif (distance < sphere.radius) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\tconst viewAngle = Math.asin(sphere.radius / distance);\n\t\t\tconst sphereViewHeight = Math.tan(viewAngle);\n\t\t\tconst screenViewHeight = Math.tan(this.fov / 2 * math.DEG_TO_RAD);\n\t\t\treturn Math.min(sphereViewHeight / screenViewHeight, 1);\n\t\t}\n\t\treturn math.clamp(sphere.radius / this._orthoHeight, 0, 1);\n\t}\n\tgetFrustumCorners(near = this.nearClip, far = this.farClip) {\n\t\tconst fov = this.fov * Math.PI / 180.0;\n\t\tlet y = this._projection === PROJECTION_PERSPECTIVE ? Math.tan(fov / 2.0) * near : this._orthoHeight;\n\t\tlet x = y * this.aspectRatio;\n\t\tconst points = _frustumPoints;\n\t\tpoints[0].x = x;\n\t\tpoints[0].y = -y;\n\t\tpoints[0].z = -near;\n\t\tpoints[1].x = x;\n\t\tpoints[1].y = y;\n\t\tpoints[1].z = -near;\n\t\tpoints[2].x = -x;\n\t\tpoints[2].y = y;\n\t\tpoints[2].z = -near;\n\t\tpoints[3].x = -x;\n\t\tpoints[3].y = -y;\n\t\tpoints[3].z = -near;\n\t\tif (this._projection === PROJECTION_PERSPECTIVE) {\n\t\t\ty = Math.tan(fov / 2.0) * far;\n\t\t\tx = y * this.aspectRatio;\n\t\t}\n\t\tpoints[4].x = x;\n\t\tpoints[4].y = -y;\n\t\tpoints[4].z = -far;\n\t\tpoints[5].x = x;\n\t\tpoints[5].y = y;\n\t\tpoints[5].z = -far;\n\t\tpoints[6].x = -x;\n\t\tpoints[6].y = y;\n\t\tpoints[6].z = -far;\n\t\tpoints[7].x = -x;\n\t\tpoints[7].y = -y;\n\t\tpoints[7].z = -far;\n\t\treturn points;\n\t}\n\tsetXrProperties(properties) {\n\t\tObject.assign(this._xrProperties, properties);\n\t\tthis._projMatDirty = true;\n\t}\n}\n\nclass LitShaderOptions {\n\tconstructor() {\n\t\tthis.hasTangents = false;\n\t\tthis.chunks = {};\n\t\tthis.pass = 0;\n\t\tthis.alphaTest = false;\n\t\tthis.blendType = BLEND_NONE;\n\t\tthis.separateAmbient = false;\n\t\tthis.screenSpace = false;\n\t\tthis.skin = false;\n\t\tthis.useInstancing = false;\n\t\tthis.useMorphPosition = false;\n\t\tthis.useMorphNormal = false;\n\t\tthis.useMorphTextureBased = false;\n\t\tthis.nineSlicedMode = 0;\n\t\tthis.clusteredLightingEnabled = true;\n\t\tthis.clusteredLightingCookiesEnabled = false;\n\t\tthis.clusteredLightingShadowsEnabled = false;\n\t\tthis.clusteredLightingShadowType = 0;\n\t\tthis.clusteredLightingAreaLightsEnabled = false;\n\t\tthis.vertexColors = false;\n\t\tthis.lightMapEnabled = false;\n\t\tthis.dirLightMapEnabled = false;\n\t\tthis.useHeights = false;\n\t\tthis.useNormals = false;\n\t\tthis.useClearCoatNormals = false;\n\t\tthis.useAo = false;\n\t\tthis.diffuseMapEnabled = false;\n\t\tthis.useAmbientTint = false;\n\t\tthis.customFragmentShader = null;\n\t\tthis.pixelSnap = false;\n\t\tthis.shadingModel = 0;\n\t\tthis.ambientSH = false;\n\t\tthis.fastTbn = false;\n\t\tthis.twoSidedLighting = false;\n\t\tthis.occludeDirect = false;\n\t\tthis.occludeSpecular = 0;\n\t\tthis.occludeSpecularFloat = false;\n\t\tthis.useMsdf = false;\n\t\tthis.msdfTextAttribute = false;\n\t\tthis.alphaToCoverage = false;\n\t\tthis.opacityFadesSpecular = false;\n\t\tthis.opacityDither = DITHER_NONE;\n\t\tthis.opacityShadowDither = DITHER_NONE;\n\t\tthis.cubeMapProjection = 0;\n\t\tthis.conserveEnergy = false;\n\t\tthis.useSpecular = false;\n\t\tthis.useSpecularityFactor = false;\n\t\tthis.enableGGXSpecular = false;\n\t\tthis.fresnelModel = 0;\n\t\tthis.useRefraction = false;\n\t\tthis.useClearCoat = false;\n\t\tthis.useSheen = false;\n\t\tthis.useIridescence = false;\n\t\tthis.useMetalness = false;\n\t\tthis.useDynamicRefraction = false;\n\t\tthis.dispersion = false;\n\t\tthis.fog = FOG_NONE;\n\t\tthis.gamma = GAMMA_NONE;\n\t\tthis.toneMap = -1;\n\t\tthis.fixSeams = false;\n\t\tthis.reflectionSource = null;\n\t\tthis.reflectionEncoding = null;\n\t\tthis.reflectionCubemapEncoding = null;\n\t\tthis.ambientSource = 'constant';\n\t\tthis.ambientEncoding = null;\n\t\tthis.skyboxIntensity = 1.0;\n\t\tthis.useCubeMapRotation = false;\n\t\tthis.lightMapWithoutAmbient = false;\n\t\tthis.lights = [];\n\t\tthis.noShadow = false;\n\t\tthis.lightMaskDynamic = 0x0;\n\t\tthis.userAttributes = {};\n\t}\n}\n\nclass LitMaterialOptions {\n\tconstructor() {\n\t\tthis.usedUvs = void 0;\n\t\tthis.shaderChunk = void 0;\n\t\tthis.litOptions = new LitShaderOptions();\n\t}\n}\n\nclass LitMaterialOptionsBuilder {\n\tstatic update(litOptions, material, scene, objDefs, pass, sortedLights) {\n\t\tLitMaterialOptionsBuilder.updateSharedOptions(litOptions, material, scene, objDefs, pass);\n\t\tLitMaterialOptionsBuilder.updateMaterialOptions(litOptions, material);\n\t\tLitMaterialOptionsBuilder.updateEnvOptions(litOptions, material, scene);\n\t\tLitMaterialOptionsBuilder.updateLightingOptions(litOptions, material, objDefs, sortedLights);\n\t\tif (pass === SHADER_FORWARDHDR) {\n\t\t\tlitOptions.gamma = GAMMA_SRGBHDR;\n\t\t\tlitOptions.toneMap = TONEMAP_LINEAR;\n\t\t}\n\t}\n\tstatic updateSharedOptions(litOptions, material, scene, objDefs, pass) {\n\t\tlitOptions.chunks = material.chunks;\n\t\tlitOptions.pass = pass;\n\t\tlitOptions.alphaTest = material.alphaTest > 0;\n\t\tlitOptions.blendType = material.blendType;\n\t\tlitOptions.screenSpace = objDefs && (objDefs & SHADERDEF_SCREENSPACE) !== 0;\n\t\tlitOptions.skin = objDefs && (objDefs & SHADERDEF_SKIN) !== 0;\n\t\tlitOptions.useInstancing = objDefs && (objDefs & SHADERDEF_INSTANCING) !== 0;\n\t\tlitOptions.useMorphPosition = objDefs && (objDefs & SHADERDEF_MORPH_POSITION) !== 0;\n\t\tlitOptions.useMorphNormal = objDefs && (objDefs & SHADERDEF_MORPH_NORMAL) !== 0;\n\t\tlitOptions.useMorphTextureBased = objDefs && (objDefs & SHADERDEF_MORPH_TEXTURE_BASED) !== 0;\n\t\tlitOptions.hasTangents = objDefs && (objDefs & SHADERDEF_TANGENTS) !== 0;\n\t\tlitOptions.nineSlicedMode = material.nineSlicedMode || SPRITE_RENDERMODE_SIMPLE;\n\t\tif (material.useLighting && scene.clusteredLightingEnabled) {\n\t\t\tlitOptions.clusteredLightingEnabled = true;\n\t\t\tlitOptions.clusteredLightingCookiesEnabled = scene.lighting.cookiesEnabled;\n\t\t\tlitOptions.clusteredLightingShadowsEnabled = scene.lighting.shadowsEnabled;\n\t\t\tlitOptions.clusteredLightingShadowType = scene.lighting.shadowType;\n\t\t\tlitOptions.clusteredLightingAreaLightsEnabled = scene.lighting.areaLightsEnabled;\n\t\t} else {\n\t\t\tlitOptions.clusteredLightingEnabled = false;\n\t\t\tlitOptions.clusteredLightingCookiesEnabled = false;\n\t\t\tlitOptions.clusteredLightingShadowsEnabled = false;\n\t\t\tlitOptions.clusteredLightingAreaLightsEnabled = false;\n\t\t}\n\t}\n\tstatic updateMaterialOptions(litOptions, material) {\n\t\tlitOptions.useAmbientTint = false;\n\t\tlitOptions.separateAmbient = false;\n\t\tlitOptions.customFragmentShader = null;\n\t\tlitOptions.pixelSnap = material.pixelSnap;\n\t\tlitOptions.shadingModel = material.shadingModel;\n\t\tlitOptions.ambientSH = material.ambientSH;\n\t\tlitOptions.fastTbn = material.fastTbn;\n\t\tlitOptions.twoSidedLighting = material.twoSidedLighting;\n\t\tlitOptions.occludeDirect = material.occludeDirect;\n\t\tlitOptions.occludeSpecular = material.occludeSpecular;\n\t\tlitOptions.occludeSpecularFloat = material.occludeSpecularIntensity !== 1.0;\n\t\tlitOptions.useMsdf = false;\n\t\tlitOptions.msdfTextAttribute = false;\n\t\tlitOptions.alphaToCoverage = material.alphaToCoverage;\n\t\tlitOptions.opacityFadesSpecular = material.opacityFadesSpecular;\n\t\tlitOptions.opacityDither = material.opacityDither;\n\t\tlitOptions.cubeMapProjection = CUBEPROJ_NONE;\n\t\tlitOptions.conserveEnergy = material.conserveEnergy && material.shadingModel === SPECULAR_BLINN;\n\t\tlitOptions.useSpecular = material.hasSpecular;\n\t\tlitOptions.useSpecularityFactor = material.hasSpecularityFactor;\n\t\tlitOptions.enableGGXSpecular = material.ggxSpecular;\n\t\tlitOptions.fresnelModel = material.fresnelModel;\n\t\tlitOptions.useRefraction = material.hasRefraction;\n\t\tlitOptions.useClearCoat = material.hasClearCoat;\n\t\tlitOptions.useSheen = material.hasSheen;\n\t\tlitOptions.useIridescence = material.hasIrridescence;\n\t\tlitOptions.useMetalness = material.hasMetalness;\n\t\tlitOptions.useDynamicRefraction = material.dynamicRefraction;\n\t\tlitOptions.dispersion = material.dispersion > 0;\n\t\tlitOptions.vertexColors = false;\n\t\tlitOptions.lightMapEnabled = material.hasLighting;\n\t\tlitOptions.dirLightMapEnabled = material.dirLightMap;\n\t\tlitOptions.useHeights = material.hasHeights;\n\t\tlitOptions.useNormals = material.hasNormals;\n\t\tlitOptions.useClearCoatNormals = material.hasClearCoatNormals;\n\t\tlitOptions.useAo = material.hasAo;\n\t\tlitOptions.diffuseMapEnabled = material.hasDiffuseMap;\n\t}\n\tstatic updateEnvOptions(litOptions, material, scene) {\n\t\tlitOptions.fog = material.useFog ? scene.fog : 'none';\n\t\tlitOptions.gamma = material.useGammaTonemap ? scene.gammaCorrection : GAMMA_NONE;\n\t\tlitOptions.toneMap = material.useGammaTonemap ? scene.toneMapping : -1;\n\t\tlitOptions.fixSeams = false;\n\t\tif (material.useSkybox && scene.envAtlas && scene.skybox) {\n\t\t\tlitOptions.reflectionSource = 'envAtlasHQ';\n\t\t\tlitOptions.reflectionEncoding = scene.envAtlas.encoding;\n\t\t\tlitOptions.reflectionCubemapEncoding = scene.skybox.encoding;\n\t\t} else if (material.useSkybox && scene.envAtlas) {\n\t\t\tlitOptions.reflectionSource = 'envAtlas';\n\t\t\tlitOptions.reflectionEncoding = scene.envAtlas.encoding;\n\t\t} else if (material.useSkybox && scene.skybox) {\n\t\t\tlitOptions.reflectionSource = 'cubeMap';\n\t\t\tlitOptions.reflectionEncoding = scene.skybox.encoding;\n\t\t} else {\n\t\t\tlitOptions.reflectionSource = null;\n\t\t\tlitOptions.reflectionEncoding = null;\n\t\t}\n\t\tif (material.ambientSH) {\n\t\t\tlitOptions.ambientSource = 'ambientSH';\n\t\t\tlitOptions.ambientEncoding = null;\n\t\t} else if (litOptions.reflectionSource && scene.envAtlas) {\n\t\t\tlitOptions.ambientSource = 'envAtlas';\n\t\t\tlitOptions.ambientEncoding = scene.envAtlas.encoding;\n\t\t} else {\n\t\t\tlitOptions.ambientSource = 'constant';\n\t\t\tlitOptions.ambientEncoding = null;\n\t\t}\n\t\tconst hasSkybox = !!litOptions.reflectionSource;\n\t\tlitOptions.skyboxIntensity = hasSkybox;\n\t\tlitOptions.useCubeMapRotation = hasSkybox && scene._skyboxRotationShaderInclude;\n\t}\n\tstatic updateLightingOptions(litOptions, material, objDefs, sortedLights) {\n\t\tlitOptions.lightMapWithoutAmbient = false;\n\t\tif (material.useLighting) {\n\t\t\tconst lightsFiltered = [];\n\t\t\tconst mask = objDefs ? objDefs >> 16 : MASK_AFFECT_DYNAMIC;\n\t\t\tlitOptions.lightMaskDynamic = !!(mask & MASK_AFFECT_DYNAMIC);\n\t\t\tlitOptions.lightMapWithoutAmbient = false;\n\t\t\tif (sortedLights) {\n\t\t\t\tLitMaterialOptionsBuilder.collectLights(LIGHTTYPE_DIRECTIONAL, sortedLights[LIGHTTYPE_DIRECTIONAL], lightsFiltered, mask);\n\t\t\t\tLitMaterialOptionsBuilder.collectLights(LIGHTTYPE_OMNI, sortedLights[LIGHTTYPE_OMNI], lightsFiltered, mask);\n\t\t\t\tLitMaterialOptionsBuilder.collectLights(LIGHTTYPE_SPOT, sortedLights[LIGHTTYPE_SPOT], lightsFiltered, mask);\n\t\t\t}\n\t\t\tlitOptions.lights = lightsFiltered;\n\t\t} else {\n\t\t\tlitOptions.lights = [];\n\t\t}\n\t\tif (litOptions.lights.length === 0 || (objDefs & SHADERDEF_NOSHADOW) !== 0) {\n\t\t\tlitOptions.noShadow = true;\n\t\t}\n\t}\n\tstatic collectLights(lType, lights, lightsFiltered, mask) {\n\t\tfor (let i = 0; i < lights.length; i++) {\n\t\t\tconst light = lights[i];\n\t\t\tif (light.enabled) {\n\t\t\t\tif (light.mask & mask) {\n\t\t\t\t\tlightsFiltered.push(light);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nclass ChunkBuilder {\n\tconstructor() {\n\t\tthis.code = '';\n\t}\n\tappend(...chunks) {\n\t\tchunks.forEach(chunk => {\n\t\t\tif (chunk.endsWith('\\n')) {\n\t\t\t\tthis.code += chunk;\n\t\t\t} else {\n\t\t\t\tthis.code += `${chunk}\\n`;\n\t\t\t}\n\t\t});\n\t}\n\tprepend(...chunks) {\n\t\tchunks.forEach(chunk => {\n\t\t\tif (chunk.endsWith('\\n')) {\n\t\t\t\tthis.code = chunk + this.code;\n\t\t\t} else {\n\t\t\t\tthis.code = `${chunk}\\n${this.code}`;\n\t\t\t}\n\t\t});\n\t}\n}\n\nconst decodeTable = {\n\t'linear': 'decodeLinear',\n\t'srgb': 'decodeGamma',\n\t'rgbm': 'decodeRGBM',\n\t'rgbe': 'decodeRGBE',\n\t'rgbp': 'decodeRGBP'\n};\nconst encodeTable = {\n\t'linear': 'encodeLinear',\n\t'srgb': 'encodeGamma',\n\t'rgbm': 'encodeRGBM',\n\t'rgbe': 'encodeRGBE',\n\t'rgbp': 'encodeRGBP'\n};\nclass ChunkUtils {\n\tstatic decodeFunc(encoding) {\n\t\treturn decodeTable[encoding] || 'decodeGamma';\n\t}\n\tstatic encodeFunc(encoding) {\n\t\treturn encodeTable[encoding] || 'encodeGamma';\n\t}\n}\n\nconst _viewMat = new Mat4();\nconst _viewProjMat = new Mat4();\nconst _viewportMatrix = new Mat4();\nclass LightCamera {\n\tstatic create(name, lightType, face) {\n\t\tconst camera = new Camera();\n\t\tcamera.node = new GraphNode(name);\n\t\tcamera.aspectRatio = 1;\n\t\tcamera.aspectRatioMode = ASPECT_MANUAL;\n\t\tcamera._scissorRectClear = true;\n\t\tswitch (lightType) {\n\t\t\tcase LIGHTTYPE_OMNI:\n\t\t\t\tcamera.node.setRotation(LightCamera.pointLightRotations[face]);\n\t\t\t\tcamera.fov = 90;\n\t\t\t\tcamera.projection = PROJECTION_PERSPECTIVE;\n\t\t\t\tbreak;\n\t\t\tcase LIGHTTYPE_SPOT:\n\t\t\t\tcamera.projection = PROJECTION_PERSPECTIVE;\n\t\t\t\tbreak;\n\t\t\tcase LIGHTTYPE_DIRECTIONAL:\n\t\t\t\tcamera.projection = PROJECTION_ORTHOGRAPHIC;\n\t\t\t\tbreak;\n\t\t}\n\t\treturn camera;\n\t}\n\tstatic evalSpotCookieMatrix(light) {\n\t\tlet cookieCamera = LightCamera._spotCookieCamera;\n\t\tif (!cookieCamera) {\n\t\t\tcookieCamera = LightCamera.create('SpotCookieCamera', LIGHTTYPE_SPOT);\n\t\t\tLightCamera._spotCookieCamera = cookieCamera;\n\t\t}\n\t\tcookieCamera.fov = light._outerConeAngle * 2;\n\t\tconst cookieNode = cookieCamera._node;\n\t\tcookieNode.setPosition(light._node.getPosition());\n\t\tcookieNode.setRotation(light._node.getRotation());\n\t\tcookieNode.rotateLocal(-90, 0, 0);\n\t\t_viewMat.setTRS(cookieNode.getPosition(), cookieNode.getRotation(), Vec3.ONE).invert();\n\t\t_viewProjMat.mul2(cookieCamera.projectionMatrix, _viewMat);\n\t\tconst cookieMatrix = light.cookieMatrix;\n\t\tconst rectViewport = light.atlasViewport;\n\t\t_viewportMatrix.setViewport(rectViewport.x, rectViewport.y, rectViewport.z, rectViewport.w);\n\t\tcookieMatrix.mul2(_viewportMatrix, _viewProjMat);\n\t\treturn cookieMatrix;\n\t}\n}\nLightCamera.pointLightRotations = [new Quat().setFromEulerAngles(0, 90, 180), new Quat().setFromEulerAngles(0, -90, 180), new Quat().setFromEulerAngles(90, 0, 0), new Quat().setFromEulerAngles(-90, 0, 0), new Quat().setFromEulerAngles(0, 180, 180), new Quat().setFromEulerAngles(0, 0, 180)];\nLightCamera._spotCookieCamera = null;\n\nconst epsilon$1 = 0.000001;\nconst tempVec3$1 = new Vec3();\nconst tempAreaLightSizes = new Float32Array(6);\nconst areaHalfAxisWidth = new Vec3(-0.5, 0, 0);\nconst areaHalfAxisHeight = new Vec3(0, 0, 0.5);\nconst TextureIndex8 = {\n\tFLAGS: 0,\n\tCOLOR_A: 1,\n\tCOLOR_B: 2,\n\tSPOT_ANGLES: 3,\n\tSHADOW_BIAS: 4,\n\tCOOKIE_A: 5,\n\tCOOKIE_B: 6,\n\tCOUNT_ALWAYS: 7,\n\tPOSITION_X: 7,\n\tPOSITION_Y: 8,\n\tPOSITION_Z: 9,\n\tRANGE: 10,\n\tSPOT_DIRECTION_X: 11,\n\tSPOT_DIRECTION_Y: 12,\n\tSPOT_DIRECTION_Z: 13,\n\tPROJ_MAT_00: 14,\n\tATLAS_VIEWPORT_A: 14,\n\tPROJ_MAT_01: 15,\n\tATLAS_VIEWPORT_B: 15,\n\tPROJ_MAT_02: 16,\n\tPROJ_MAT_03: 17,\n\tPROJ_MAT_10: 18,\n\tPROJ_MAT_11: 19,\n\tPROJ_MAT_12: 20,\n\tPROJ_MAT_13: 21,\n\tPROJ_MAT_20: 22,\n\tPROJ_MAT_21: 23,\n\tPROJ_MAT_22: 24,\n\tPROJ_MAT_23: 25,\n\tPROJ_MAT_30: 26,\n\tPROJ_MAT_31: 27,\n\tPROJ_MAT_32: 28,\n\tPROJ_MAT_33: 29,\n\tAREA_DATA_WIDTH_X: 30,\n\tAREA_DATA_WIDTH_Y: 31,\n\tAREA_DATA_WIDTH_Z: 32,\n\tAREA_DATA_HEIGHT_X: 33,\n\tAREA_DATA_HEIGHT_Y: 34,\n\tAREA_DATA_HEIGHT_Z: 35,\n\tCOUNT: 36\n};\nconst TextureIndexFloat = {\n\tPOSITION_RANGE: 0,\n\tSPOT_DIRECTION: 1,\n\tPROJ_MAT_0: 2,\n\tATLAS_VIEWPORT: 2,\n\tPROJ_MAT_1: 3,\n\tPROJ_MAT_2: 4,\n\tPROJ_MAT_3: 5,\n\tAREA_DATA_WIDTH: 6,\n\tAREA_DATA_HEIGHT: 7,\n\tCOUNT: 8\n};\nconst FORMAT_FLOAT = 0;\nconst FORMAT_8BIT = 1;\nconst shaderDefinesDeviceCache = new DeviceCache();\nclass LightsBuffer {\n\tstatic getLightTextureFormat(device) {\n\t\treturn device.extTextureFloat && device.maxTextures > 8 ? FORMAT_FLOAT : FORMAT_8BIT;\n\t}\n\tstatic getShaderDefines(device) {\n\t\treturn shaderDefinesDeviceCache.get(device, () => {\n\t\t\tconst buildShaderDefines = (device, object, prefix, floatOffset) => {\n\t\t\t\treturn Object.keys(object).map(key => `#define ${prefix}${key} ${object[key]}${floatOffset}`).join('\\n');\n\t\t\t};\n\t\t\tconst lightTextureFormat = LightsBuffer.getLightTextureFormat(device);\n\t\t\tconst clusterTextureFormat = lightTextureFormat === FORMAT_FLOAT ? 'FLOAT' : '8BIT';\n\t\t\tconst floatOffset = device.supportsTextureFetch ? '' : '.5';\n\t\t\treturn `\n\t\t\t\t\t\t\t\t\\n#define CLUSTER_TEXTURE_${clusterTextureFormat}\n\t\t\t\t\t\t\t\t${buildShaderDefines(device, TextureIndex8, 'CLUSTER_TEXTURE_8_', floatOffset)}\n\t\t\t\t\t\t\t\t${buildShaderDefines(device, TextureIndexFloat, 'CLUSTER_TEXTURE_F_', floatOffset)}\n\t\t\t\t\t\t`;\n\t\t});\n\t}\n\tconstructor(device) {\n\t\tthis.device = device;\n\t\tthis.cookiesEnabled = false;\n\t\tthis.shadowsEnabled = false;\n\t\tthis.areaLightsEnabled = false;\n\t\tthis.maxLights = 255;\n\t\tlet pixelsPerLight8 = TextureIndex8.COUNT_ALWAYS;\n\t\tlet pixelsPerLightFloat = 0;\n\t\tthis.lightTextureFormat = LightsBuffer.getLightTextureFormat(device);\n\t\tif (this.lightTextureFormat === FORMAT_FLOAT) {\n\t\t\tpixelsPerLightFloat = TextureIndexFloat.COUNT;\n\t\t} else {\n\t\t\tpixelsPerLight8 = TextureIndex8.COUNT;\n\t\t}\n\t\tthis.lights8 = new Uint8ClampedArray(4 * pixelsPerLight8 * this.maxLights);\n\t\tthis.lightsTexture8 = this.createTexture(this.device, pixelsPerLight8, this.maxLights, PIXELFORMAT_RGBA8, 'LightsTexture8');\n\t\tthis._lightsTexture8Id = this.device.scope.resolve('lightsTexture8');\n\t\tif (pixelsPerLightFloat) {\n\t\t\tthis.lightsFloat = new Float32Array(4 * pixelsPerLightFloat * this.maxLights);\n\t\t\tthis.lightsTextureFloat = this.createTexture(this.device, pixelsPerLightFloat, this.maxLights, PIXELFORMAT_RGBA32F, 'LightsTextureFloat');\n\t\t\tthis._lightsTextureFloatId = this.device.scope.resolve('lightsTextureFloat');\n\t\t} else {\n\t\t\tthis.lightsFloat = null;\n\t\t\tthis.lightsTextureFloat = null;\n\t\t\tthis._lightsTextureFloatId = undefined;\n\t\t}\n\t\tthis._lightsTextureInvSizeId = this.device.scope.resolve('lightsTextureInvSize');\n\t\tthis._lightsTextureInvSizeData = new Float32Array(4);\n\t\tthis._lightsTextureInvSizeData[0] = pixelsPerLightFloat ? 1.0 / this.lightsTextureFloat.width : 0;\n\t\tthis._lightsTextureInvSizeData[1] = pixelsPerLightFloat ? 1.0 / this.lightsTextureFloat.height : 0;\n\t\tthis._lightsTextureInvSizeData[2] = 1.0 / this.lightsTexture8.width;\n\t\tthis._lightsTextureInvSizeData[3] = 1.0 / this.lightsTexture8.height;\n\t\tthis.invMaxColorValue = 0;\n\t\tthis.invMaxAttenuation = 0;\n\t\tthis.boundsMin = new Vec3();\n\t\tthis.boundsDelta = new Vec3();\n\t}\n\tdestroy() {\n\t\tif (this.lightsTexture8) {\n\t\t\tthis.lightsTexture8.destroy();\n\t\t\tthis.lightsTexture8 = null;\n\t\t}\n\t\tif (this.lightsTextureFloat) {\n\t\t\tthis.lightsTextureFloat.destroy();\n\t\t\tthis.lightsTextureFloat = null;\n\t\t}\n\t}\n\tcreateTexture(device, width, height, format, name) {\n\t\tconst tex = new Texture(device, {\n\t\t\tname: name,\n\t\t\twidth: width,\n\t\t\theight: height,\n\t\t\tmipmaps: false,\n\t\t\tformat: format,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\ttype: TEXTURETYPE_DEFAULT,\n\t\t\tmagFilter: FILTER_NEAREST,\n\t\t\tminFilter: FILTER_NEAREST,\n\t\t\tanisotropy: 1\n\t\t});\n\t\treturn tex;\n\t}\n\tsetCompressionRanges(maxAttenuation, maxColorValue) {\n\t\tthis.invMaxColorValue = 1 / maxColorValue;\n\t\tthis.invMaxAttenuation = 1 / maxAttenuation;\n\t}\n\tsetBounds(min, delta) {\n\t\tthis.boundsMin.copy(min);\n\t\tthis.boundsDelta.copy(delta);\n\t}\n\tuploadTextures() {\n\t\tif (this.lightsTextureFloat) {\n\t\t\tthis.lightsTextureFloat.lock().set(this.lightsFloat);\n\t\t\tthis.lightsTextureFloat.unlock();\n\t\t}\n\t\tthis.lightsTexture8.lock().set(this.lights8);\n\t\tthis.lightsTexture8.unlock();\n\t}\n\tupdateUniforms() {\n\t\tthis._lightsTexture8Id.setValue(this.lightsTexture8);\n\t\tif (this.lightTextureFormat === FORMAT_FLOAT) {\n\t\t\tthis._lightsTextureFloatId.setValue(this.lightsTextureFloat);\n\t\t}\n\t\tthis._lightsTextureInvSizeId.setValue(this._lightsTextureInvSizeData);\n\t}\n\tgetSpotDirection(direction, spot) {\n\t\tconst mat = spot._node.getWorldTransform();\n\t\tmat.getY(direction).mulScalar(-1);\n\t\tdirection.normalize();\n\t}\n\tgetLightAreaSizes(light) {\n\t\tconst mat = light._node.getWorldTransform();\n\t\tmat.transformVector(areaHalfAxisWidth, tempVec3$1);\n\t\ttempAreaLightSizes[0] = tempVec3$1.x;\n\t\ttempAreaLightSizes[1] = tempVec3$1.y;\n\t\ttempAreaLightSizes[2] = tempVec3$1.z;\n\t\tmat.transformVector(areaHalfAxisHeight, tempVec3$1);\n\t\ttempAreaLightSizes[3] = tempVec3$1.x;\n\t\ttempAreaLightSizes[4] = tempVec3$1.y;\n\t\ttempAreaLightSizes[5] = tempVec3$1.z;\n\t\treturn tempAreaLightSizes;\n\t}\n\taddLightDataFlags(data8, index, light, isSpot, castShadows, shadowIntensity) {\n\t\tdata8[index + 0] = isSpot ? 255 : 0;\n\t\tdata8[index + 1] = light._shape * 64;\n\t\tdata8[index + 2] = light._falloffMode * 255;\n\t\tdata8[index + 3] = castShadows ? shadowIntensity * 255 : 0;\n\t}\n\taddLightDataColor(data8, index, light, gammaCorrection, isCookie) {\n\t\tconst invMaxColorValue = this.invMaxColorValue;\n\t\tconst color = gammaCorrection ? light._linearFinalColor : light._finalColor;\n\t\tFloatPacking.float2Bytes(color[0] * invMaxColorValue, data8, index + 0, 2);\n\t\tFloatPacking.float2Bytes(color[1] * invMaxColorValue, data8, index + 2, 2);\n\t\tFloatPacking.float2Bytes(color[2] * invMaxColorValue, data8, index + 4, 2);\n\t\tdata8[index + 6] = isCookie ? 255 : 0;\n\t\tconst isDynamic = !!(light.mask & MASK_AFFECT_DYNAMIC);\n\t\tconst isLightmapped = !!(light.mask & MASK_AFFECT_LIGHTMAPPED);\n\t\tdata8[index + 7] = isDynamic && isLightmapped ? 127 : isLightmapped ? 255 : 0;\n\t}\n\taddLightDataSpotAngles(data8, index, light) {\n\t\tFloatPacking.float2Bytes(light._innerConeAngleCos * (0.5 - epsilon$1) + 0.5, data8, index + 0, 2);\n\t\tFloatPacking.float2Bytes(light._outerConeAngleCos * (0.5 - epsilon$1) + 0.5, data8, index + 2, 2);\n\t}\n\taddLightDataShadowBias(data8, index, light) {\n\t\tconst lightRenderData = light.getRenderData(null, 0);\n\t\tconst biases = light._getUniformBiasValues(lightRenderData);\n\t\tFloatPacking.float2BytesRange(biases.bias, data8, index, -1, 20, 2);\n\t\tFloatPacking.float2Bytes(biases.normalBias, data8, index + 2, 2);\n\t}\n\taddLightDataPositionRange(data8, index, light, pos) {\n\t\tconst normPos = tempVec3$1.sub2(pos, this.boundsMin).div(this.boundsDelta);\n\t\tFloatPacking.float2Bytes(normPos.x, data8, index + 0, 4);\n\t\tFloatPacking.float2Bytes(normPos.y, data8, index + 4, 4);\n\t\tFloatPacking.float2Bytes(normPos.z, data8, index + 8, 4);\n\t\tFloatPacking.float2Bytes(light.attenuationEnd * this.invMaxAttenuation, data8, index + 12, 4);\n\t}\n\taddLightDataSpotDirection(data8, index, light) {\n\t\tthis.getSpotDirection(tempVec3$1, light);\n\t\tFloatPacking.float2Bytes(tempVec3$1.x * (0.5 - epsilon$1) + 0.5, data8, index + 0, 4);\n\t\tFloatPacking.float2Bytes(tempVec3$1.y * (0.5 - epsilon$1) + 0.5, data8, index + 4, 4);\n\t\tFloatPacking.float2Bytes(tempVec3$1.z * (0.5 - epsilon$1) + 0.5, data8, index + 8, 4);\n\t}\n\taddLightDataLightProjMatrix(data8, index, lightProjectionMatrix) {\n\t\tconst matData = lightProjectionMatrix.data;\n\t\tfor (let m = 0; m < 12; m++) {\n\t\t\tFloatPacking.float2BytesRange(matData[m], data8, index + 4 * m, -2, 2, 4);\n\t\t}\n\t\tfor (let m = 12; m < 16; m++) {\n\t\t\tFloatPacking.float2MantissaExponent(matData[m], data8, index + 4 * m, 4);\n\t\t}\n\t}\n\taddLightDataCookies(data8, index, light) {\n\t\tconst isRgb = light._cookieChannel === 'rgb';\n\t\tdata8[index + 0] = Math.floor(light.cookieIntensity * 255);\n\t\tdata8[index + 1] = isRgb ? 255 : 0;\n\t\tif (!isRgb) {\n\t\t\tconst channel = light._cookieChannel;\n\t\t\tdata8[index + 4] = channel === 'rrr' ? 255 : 0;\n\t\t\tdata8[index + 5] = channel === 'ggg' ? 255 : 0;\n\t\t\tdata8[index + 6] = channel === 'bbb' ? 255 : 0;\n\t\t\tdata8[index + 7] = channel === 'aaa' ? 255 : 0;\n\t\t}\n\t}\n\taddLightAtlasViewport(data8, index, atlasViewport) {\n\t\tFloatPacking.float2Bytes(atlasViewport.x, data8, index + 0, 2);\n\t\tFloatPacking.float2Bytes(atlasViewport.y, data8, index + 2, 2);\n\t\tFloatPacking.float2Bytes(atlasViewport.z / 3, data8, index + 4, 2);\n\t}\n\taddLightAreaSizes(data8, index, light) {\n\t\tconst areaSizes = this.getLightAreaSizes(light);\n\t\tfor (let i = 0; i < 6; i++) {\n\t\t\tFloatPacking.float2MantissaExponent(areaSizes[i], data8, index + 4 * i, 4);\n\t\t}\n\t}\n\taddLightData(light, lightIndex, gammaCorrection) {\n\t\tconst isSpot = light._type === LIGHTTYPE_SPOT;\n\t\tconst hasAtlasViewport = light.atlasViewportAllocated;\n\t\tconst isCookie = this.cookiesEnabled && !!light._cookie && hasAtlasViewport;\n\t\tconst isArea = this.areaLightsEnabled && light.shape !== LIGHTSHAPE_PUNCTUAL;\n\t\tconst castShadows = this.shadowsEnabled && light.castShadows && hasAtlasViewport;\n\t\tconst pos = light._node.getPosition();\n\t\tlet lightProjectionMatrix = null;\n\t\tlet atlasViewport = null;\n\t\tif (isSpot) {\n\t\t\tif (castShadows) {\n\t\t\t\tconst lightRenderData = light.getRenderData(null, 0);\n\t\t\t\tlightProjectionMatrix = lightRenderData.shadowMatrix;\n\t\t\t} else if (isCookie) {\n\t\t\t\tlightProjectionMatrix = LightCamera.evalSpotCookieMatrix(light);\n\t\t\t}\n\t\t} else {\n\t\t\tif (castShadows || isCookie) {\n\t\t\t\tatlasViewport = light.atlasViewport;\n\t\t\t}\n\t\t}\n\t\tconst data8 = this.lights8;\n\t\tconst data8Start = lightIndex * this.lightsTexture8.width * 4;\n\t\tthis.addLightDataFlags(data8, data8Start + 4 * TextureIndex8.FLAGS, light, isSpot, castShadows, light.shadowIntensity);\n\t\tthis.addLightDataColor(data8, data8Start + 4 * TextureIndex8.COLOR_A, light, gammaCorrection, isCookie);\n\t\tif (isSpot) {\n\t\t\tthis.addLightDataSpotAngles(data8, data8Start + 4 * TextureIndex8.SPOT_ANGLES, light);\n\t\t}\n\t\tif (light.castShadows) {\n\t\t\tthis.addLightDataShadowBias(data8, data8Start + 4 * TextureIndex8.SHADOW_BIAS, light);\n\t\t}\n\t\tif (isCookie) {\n\t\t\tthis.addLightDataCookies(data8, data8Start + 4 * TextureIndex8.COOKIE_A, light);\n\t\t}\n\t\tif (this.lightTextureFormat === FORMAT_FLOAT) {\n\t\t\tconst dataFloat = this.lightsFloat;\n\t\t\tconst dataFloatStart = lightIndex * this.lightsTextureFloat.width * 4;\n\t\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.POSITION_RANGE + 0] = pos.x;\n\t\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.POSITION_RANGE + 1] = pos.y;\n\t\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.POSITION_RANGE + 2] = pos.z;\n\t\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.POSITION_RANGE + 3] = light.attenuationEnd;\n\t\t\tif (isSpot) {\n\t\t\t\tthis.getSpotDirection(tempVec3$1, light);\n\t\t\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.SPOT_DIRECTION + 0] = tempVec3$1.x;\n\t\t\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.SPOT_DIRECTION + 1] = tempVec3$1.y;\n\t\t\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.SPOT_DIRECTION + 2] = tempVec3$1.z;\n\t\t\t}\n\t\t\tif (lightProjectionMatrix) {\n\t\t\t\tconst matData = lightProjectionMatrix.data;\n\t\t\t\tfor (let m = 0; m < 16; m++) {\n\t\t\t\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.PROJ_MAT_0 + m] = matData[m];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (atlasViewport) {\n\t\t\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.ATLAS_VIEWPORT + 0] = atlasViewport.x;\n\t\t\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.ATLAS_VIEWPORT + 1] = atlasViewport.y;\n\t\t\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.ATLAS_VIEWPORT + 2] = atlasViewport.z / 3;\n\t\t\t}\n\t\t\tif (isArea) {\n\t\t\t\tconst areaSizes = this.getLightAreaSizes(light);\n\t\t\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.AREA_DATA_WIDTH + 0] = areaSizes[0];\n\t\t\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.AREA_DATA_WIDTH + 1] = areaSizes[1];\n\t\t\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.AREA_DATA_WIDTH + 2] = areaSizes[2];\n\t\t\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.AREA_DATA_HEIGHT + 0] = areaSizes[3];\n\t\t\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.AREA_DATA_HEIGHT + 1] = areaSizes[4];\n\t\t\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.AREA_DATA_HEIGHT + 2] = areaSizes[5];\n\t\t\t}\n\t\t} else {\n\t\t\tthis.addLightDataPositionRange(data8, data8Start + 4 * TextureIndex8.POSITION_X, light, pos);\n\t\t\tif (isSpot) {\n\t\t\t\tthis.addLightDataSpotDirection(data8, data8Start + 4 * TextureIndex8.SPOT_DIRECTION_X, light);\n\t\t\t}\n\t\t\tif (lightProjectionMatrix) {\n\t\t\t\tthis.addLightDataLightProjMatrix(data8, data8Start + 4 * TextureIndex8.PROJ_MAT_00, lightProjectionMatrix);\n\t\t\t}\n\t\t\tif (atlasViewport) {\n\t\t\t\tthis.addLightAtlasViewport(data8, data8Start + 4 * TextureIndex8.ATLAS_VIEWPORT_A, atlasViewport);\n\t\t\t}\n\t\t\tif (isArea) {\n\t\t\t\tthis.addLightAreaSizes(data8, data8Start + 4 * TextureIndex8.AREA_DATA_WIDTH_X, light);\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst builtinAttributes = {\n\tvertex_normal: SEMANTIC_NORMAL,\n\tvertex_tangent: SEMANTIC_TANGENT,\n\tvertex_texCoord0: SEMANTIC_TEXCOORD0,\n\tvertex_texCoord1: SEMANTIC_TEXCOORD1,\n\tvertex_color: SEMANTIC_COLOR,\n\tvertex_boneWeights: SEMANTIC_BLENDWEIGHT,\n\tvertex_boneIndices: SEMANTIC_BLENDINDICES\n};\nconst builtinVaryings = {\n\tvVertexColor: 'vec4',\n\tvPositionW: 'vec3',\n\tvNormalV: 'vec3',\n\tvNormalW: 'vec3',\n\tvTangentW: 'vec3',\n\tvBinormalW: 'vec3',\n\tvObjectSpaceUpW: 'vec3',\n\tvUv0: 'vec2',\n\tvUv1: 'vec2'\n};\nclass LitShader {\n\tconstructor(device, options) {\n\t\tthis.device = device;\n\t\tthis.options = options;\n\t\tthis.attributes = {\n\t\t\tvertex_position: SEMANTIC_POSITION\n\t\t};\n\t\tif (options.userAttributes) {\n\t\t\tfor (const [semantic, name] of Object.entries(options.userAttributes)) {\n\t\t\t\tthis.attributes[name] = semantic;\n\t\t\t}\n\t\t}\n\t\tif (options.chunks) {\n\t\t\tconst userChunks = options.chunks;\n\t\t\tthis.chunks = Object.create(shaderChunks);\n\t\t\tfor (const chunkName in shaderChunks) {\n\t\t\t\tif (userChunks.hasOwnProperty(chunkName)) {\n\t\t\t\t\tconst chunk = userChunks[chunkName];\n\t\t\t\t\tfor (const a in builtinAttributes) {\n\t\t\t\t\t\tif (builtinAttributes.hasOwnProperty(a) && chunk.indexOf(a) >= 0) {\n\t\t\t\t\t\t\tthis.attributes[a] = builtinAttributes[a];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tthis.chunks[chunkName] = chunk;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthis.chunks = shaderChunks;\n\t\t}\n\t\tthis.shaderPassInfo = ShaderPass.get(this.device).getByIndex(options.pass);\n\t\tthis.shadowPass = this.shaderPassInfo.isShadow;\n\t\tthis.lighting = options.lights.length > 0 || options.dirLightMapEnabled || options.clusteredLightingEnabled;\n\t\tthis.reflections = !!options.reflectionSource;\n\t\tthis.needsNormal = this.lighting || this.reflections || options.useSpecular || options.ambientSH || options.useHeights || options.enableGGXSpecular || options.clusteredLightingEnabled && !this.shadowPass || options.useClearCoatNormals;\n\t\tthis.needsNormal = this.needsNormal && !this.shadowPass;\n\t\tthis.needsSceneColor = options.useDynamicRefraction;\n\t\tthis.needsScreenSize = options.useDynamicRefraction;\n\t\tthis.needsTransforms = options.useDynamicRefraction;\n\t\tthis.varyings = '';\n\t\tthis.varyingDefines = '';\n\t\tthis.vshader = null;\n\t\tthis.frontendDecl = null;\n\t\tthis.frontendCode = null;\n\t\tthis.frontendFunc = null;\n\t\tthis.lightingUv = null;\n\t\tthis.defines = [];\n\t\tthis.fshader = null;\n\t}\n\t_vsAddBaseCode(code, chunks, options) {\n\t\tcode += chunks.baseVS;\n\t\tif (options.nineSlicedMode === SPRITE_RENDERMODE_SLICED || options.nineSlicedMode === SPRITE_RENDERMODE_TILED) {\n\t\t\tcode += chunks.baseNineSlicedVS;\n\t\t}\n\t\treturn code;\n\t}\n\t_vsAddTransformCode(code, device, chunks, options) {\n\t\tcode += this.chunks.transformVS;\n\t\treturn code;\n\t}\n\t_setMapTransform(codes, name, id, uv) {\n\t\tconst checkId = id + uv * 100;\n\t\tif (!codes[3][checkId]) {\n\t\t\tconst varName = `texture_${name}MapTransform`;\n\t\t\tcodes[0] += `uniform vec3 ${varName}0;\\n`;\n\t\t\tcodes[0] += `uniform vec3 ${varName}1;\\n`;\n\t\t\tcodes[1] += `varying vec2 vUV${uv}_${id};\\n`;\n\t\t\tcodes[2] += `   vUV${uv}_${id} = vec2(dot(vec3(uv${uv}, 1), ${varName}0), dot(vec3(uv${uv}, 1), ${varName}1));\\n`;\n\t\t\tcodes[3][checkId] = true;\n\t\t}\n\t\treturn codes;\n\t}\n\t_fsGetBaseCode() {\n\t\tconst options = this.options;\n\t\tconst chunks = this.chunks;\n\t\tlet result = this.chunks.basePS;\n\t\tif (options.nineSlicedMode === SPRITE_RENDERMODE_SLICED) {\n\t\t\tresult += chunks.baseNineSlicedPS;\n\t\t} else if (options.nineSlicedMode === SPRITE_RENDERMODE_TILED) {\n\t\t\tresult += chunks.baseNineSlicedTiledPS;\n\t\t}\n\t\treturn result;\n\t}\n\t_fsGetStartCode(code, device, chunks, options) {\n\t\tlet result = chunks.startPS;\n\t\tif (options.nineSlicedMode === SPRITE_RENDERMODE_SLICED) {\n\t\t\tresult += chunks.startNineSlicedPS;\n\t\t} else if (options.nineSlicedMode === SPRITE_RENDERMODE_TILED) {\n\t\t\tresult += chunks.startNineSlicedTiledPS;\n\t\t}\n\t\treturn result;\n\t}\n\t_getLightSourceShapeString(shape) {\n\t\tswitch (shape) {\n\t\t\tcase LIGHTSHAPE_RECT:\n\t\t\t\treturn 'Rect';\n\t\t\tcase LIGHTSHAPE_DISK:\n\t\t\t\treturn 'Disk';\n\t\t\tcase LIGHTSHAPE_SPHERE:\n\t\t\t\treturn 'Sphere';\n\t\t\tdefault:\n\t\t\t\treturn '';\n\t\t}\n\t}\n\tgenerateVertexShader(useUv, useUnmodifiedUv, mapTransforms) {\n\t\tconst device = this.device;\n\t\tconst options = this.options;\n\t\tconst chunks = this.chunks;\n\t\tlet code = '';\n\t\tlet codeBody = '';\n\t\tcode = this._vsAddBaseCode(code, chunks, options);\n\t\tcodeBody += '   vPositionW    = getWorldPosition();\\n';\n\t\tif (this.options.pass === SHADER_DEPTH || this.options.pass === SHADER_PREPASS_VELOCITY) {\n\t\t\tcode += 'varying float vDepth;\\n';\n\t\t\tcode += '#ifndef VIEWMATRIX\\n';\n\t\t\tcode += '#define VIEWMATRIX\\n';\n\t\t\tcode += 'uniform mat4 matrix_view;\\n';\n\t\t\tcode += '#endif\\n';\n\t\t\tcode += '#ifndef CAMERAPLANES\\n';\n\t\t\tcode += '#define CAMERAPLANES\\n';\n\t\t\tcode += 'uniform vec4 camera_params;\\n\\n';\n\t\t\tcode += '#endif\\n';\n\t\t\tcodeBody += '    vDepth = -(matrix_view * vec4(vPositionW,1.0)).z * camera_params.x;\\n';\n\t\t}\n\t\tif (this.options.pass === SHADER_PREPASS_VELOCITY) ;\n\t\tif (this.options.useInstancing) {\n\t\t\tthis.attributes.instance_line1 = SEMANTIC_ATTR12;\n\t\t\tthis.attributes.instance_line2 = SEMANTIC_ATTR13;\n\t\t\tthis.attributes.instance_line3 = SEMANTIC_ATTR14;\n\t\t\tthis.attributes.instance_line4 = SEMANTIC_ATTR15;\n\t\t\tcode += chunks.instancingVS;\n\t\t}\n\t\tif (this.needsNormal) {\n\t\t\tthis.attributes.vertex_normal = SEMANTIC_NORMAL;\n\t\t\tcodeBody += '   vNormalW = getNormal();\\n';\n\t\t\tif (options.reflectionSource === 'sphereMap' && device.fragmentUniformsCount <= 16) {\n\t\t\t\tcode += chunks.viewNormalVS;\n\t\t\t\tcodeBody += '   vNormalV    = getViewNormal();\\n';\n\t\t\t}\n\t\t\tif (options.hasTangents && (options.useHeights || options.useNormals || options.enableGGXSpecular)) {\n\t\t\t\tthis.attributes.vertex_tangent = SEMANTIC_TANGENT;\n\t\t\t\tcode += chunks.tangentBinormalVS;\n\t\t\t\tcodeBody += '   vTangentW   = getTangent();\\n';\n\t\t\t\tcodeBody += '   vBinormalW  = getBinormal();\\n';\n\t\t\t} else if (options.enableGGXSpecular || !device.extStandardDerivatives) {\n\t\t\t\tcodeBody += '   vObjectSpaceUpW = normalize(dNormalMatrix * vec3(0, 1, 0));\\n';\n\t\t\t}\n\t\t}\n\t\tconst maxUvSets = 2;\n\t\tfor (let i = 0; i < maxUvSets; i++) {\n\t\t\tif (useUv[i]) {\n\t\t\t\tthis.attributes[`vertex_texCoord${i}`] = `TEXCOORD${i}`;\n\t\t\t\tcode += chunks[`uv${i}VS`];\n\t\t\t\tcodeBody += `   vec2 uv${i} = getUv${i}();\\n`;\n\t\t\t}\n\t\t\tif (useUnmodifiedUv[i]) {\n\t\t\t\tcodeBody += `   vUv${i} = uv${i};\\n`;\n\t\t\t}\n\t\t}\n\t\tconst codes = [code, this.varyings, codeBody, []];\n\t\tmapTransforms.forEach(mapTransform => {\n\t\t\tthis._setMapTransform(codes, mapTransform.name, mapTransform.id, mapTransform.uv);\n\t\t});\n\t\tcode = codes[0];\n\t\tthis.varyings = codes[1];\n\t\tcodeBody = codes[2];\n\t\tif (options.vertexColors) {\n\t\t\tthis.attributes.vertex_color = SEMANTIC_COLOR;\n\t\t\tcodeBody += '   vVertexColor = vertex_color;\\n';\n\t\t}\n\t\tif (options.useMsdf && options.msdfTextAttribute) {\n\t\t\tthis.attributes.vertex_outlineParameters = SEMANTIC_ATTR8;\n\t\t\tthis.attributes.vertex_shadowParameters = SEMANTIC_ATTR9;\n\t\t\tcodeBody += '    unpackMsdfParams();\\n';\n\t\t\tcode += chunks.msdfVS;\n\t\t}\n\t\tif (options.useMorphPosition || options.useMorphNormal) {\n\t\t\tif (options.useMorphTextureBased) {\n\t\t\t\tcode += '#define MORPHING_TEXTURE_BASED\\n';\n\t\t\t\tif (options.useMorphPosition) {\n\t\t\t\t\tcode += '#define MORPHING_TEXTURE_BASED_POSITION\\n';\n\t\t\t\t}\n\t\t\t\tif (options.useMorphNormal) {\n\t\t\t\t\tcode += '#define MORPHING_TEXTURE_BASED_NORMAL\\n';\n\t\t\t\t}\n\t\t\t\tthis.attributes.morph_vertex_id = SEMANTIC_ATTR15;\n\t\t\t\tconst morphIdType = device.isWebGPU ? 'uint' : 'float';\n\t\t\t\tcode += `attribute ${morphIdType} morph_vertex_id;\\n`;\n\t\t\t} else {\n\t\t\t\tcode += '#define MORPHING\\n';\n\t\t\t\tif (options.useMorphPosition) {\n\t\t\t\t\tthis.attributes.morph_pos0 = SEMANTIC_ATTR8;\n\t\t\t\t\tthis.attributes.morph_pos1 = SEMANTIC_ATTR9;\n\t\t\t\t\tthis.attributes.morph_pos2 = SEMANTIC_ATTR10;\n\t\t\t\t\tthis.attributes.morph_pos3 = SEMANTIC_ATTR11;\n\t\t\t\t\tcode += '#define MORPHING_POS03\\n';\n\t\t\t\t\tcode += 'attribute vec3 morph_pos0;\\n';\n\t\t\t\t\tcode += 'attribute vec3 morph_pos1;\\n';\n\t\t\t\t\tcode += 'attribute vec3 morph_pos2;\\n';\n\t\t\t\t\tcode += 'attribute vec3 morph_pos3;\\n';\n\t\t\t\t} else if (options.useMorphNormal) {\n\t\t\t\t\tthis.attributes.morph_nrm0 = SEMANTIC_ATTR8;\n\t\t\t\t\tthis.attributes.morph_nrm1 = SEMANTIC_ATTR9;\n\t\t\t\t\tthis.attributes.morph_nrm2 = SEMANTIC_ATTR10;\n\t\t\t\t\tthis.attributes.morph_nrm3 = SEMANTIC_ATTR11;\n\t\t\t\t\tcode += '#define MORPHING_NRM03\\n';\n\t\t\t\t\tcode += 'attribute vec3 morph_nrm0;\\n';\n\t\t\t\t\tcode += 'attribute vec3 morph_nrm1;\\n';\n\t\t\t\t\tcode += 'attribute vec3 morph_nrm2;\\n';\n\t\t\t\t\tcode += 'attribute vec3 morph_nrm3;\\n';\n\t\t\t\t}\n\t\t\t\tif (!options.useMorphNormal) {\n\t\t\t\t\tthis.attributes.morph_pos4 = SEMANTIC_ATTR12;\n\t\t\t\t\tthis.attributes.morph_pos5 = SEMANTIC_ATTR13;\n\t\t\t\t\tthis.attributes.morph_pos6 = SEMANTIC_ATTR14;\n\t\t\t\t\tthis.attributes.morph_pos7 = SEMANTIC_ATTR15;\n\t\t\t\t\tcode += '#define MORPHING_POS47\\n';\n\t\t\t\t\tcode += 'attribute vec3 morph_pos4;\\n';\n\t\t\t\t\tcode += 'attribute vec3 morph_pos5;\\n';\n\t\t\t\t\tcode += 'attribute vec3 morph_pos6;\\n';\n\t\t\t\t\tcode += 'attribute vec3 morph_pos7;\\n';\n\t\t\t\t} else {\n\t\t\t\t\tthis.attributes.morph_nrm4 = SEMANTIC_ATTR12;\n\t\t\t\t\tthis.attributes.morph_nrm5 = SEMANTIC_ATTR13;\n\t\t\t\t\tthis.attributes.morph_nrm6 = SEMANTIC_ATTR14;\n\t\t\t\t\tthis.attributes.morph_nrm7 = SEMANTIC_ATTR15;\n\t\t\t\t\tcode += '#define MORPHING_NRM47\\n';\n\t\t\t\t\tcode += 'attribute vec3 morph_nrm4;\\n';\n\t\t\t\t\tcode += 'attribute vec3 morph_nrm5;\\n';\n\t\t\t\t\tcode += 'attribute vec3 morph_nrm6;\\n';\n\t\t\t\t\tcode += 'attribute vec3 morph_nrm7;\\n';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (options.skin) {\n\t\t\tthis.attributes.vertex_boneWeights = SEMANTIC_BLENDWEIGHT;\n\t\t\tthis.attributes.vertex_boneIndices = SEMANTIC_BLENDINDICES;\n\t\t\tcode += ShaderGenerator.skinCode(device, chunks);\n\t\t\tcode += '#define SKIN\\n';\n\t\t} else if (options.useInstancing) {\n\t\t\tcode += '#define INSTANCING\\n';\n\t\t}\n\t\tif (options.screenSpace) {\n\t\t\tcode += '#define SCREENSPACE\\n';\n\t\t}\n\t\tif (options.pixelSnap) {\n\t\t\tcode += '#define PIXELSNAP\\n';\n\t\t}\n\t\tcode = this._vsAddTransformCode(code, device, chunks, options);\n\t\tif (this.needsNormal) {\n\t\t\tcode += chunks.normalVS;\n\t\t}\n\t\tcode += '\\n';\n\t\tcode += chunks.startVS;\n\t\tcode += codeBody;\n\t\tcode += chunks.endVS;\n\t\tcode += '}';\n\t\tObject.keys(builtinVaryings).forEach(v => {\n\t\t\tif (code.indexOf(v) >= 0) {\n\t\t\t\tthis.varyings += `varying ${builtinVaryings[v]} ${v};\\n`;\n\t\t\t\tthis.varyingDefines += `#define VARYING_${v.toUpperCase()}\\n`;\n\t\t\t}\n\t\t});\n\t\tconst shaderPassDefines = this.shaderPassInfo.shaderDefines;\n\t\tthis.vshader = shaderPassDefines + this.varyings + code;\n\t}\n\t_fsGetBeginCode() {\n\t\tlet code = this.shaderPassInfo.shaderDefines;\n\t\tfor (let i = 0; i < this.defines.length; i++) {\n\t\t\tcode += `#define ${this.defines[i]}\\n`;\n\t\t}\n\t\treturn code;\n\t}\n\t_fsGetPickPassCode() {\n\t\tlet code = this._fsGetBeginCode();\n\t\tcode += 'uniform vec4 uColor;\\n';\n\t\tcode += this.varyings;\n\t\tcode += this.varyingDefines;\n\t\tcode += this.frontendDecl;\n\t\tcode += this.frontendCode;\n\t\tcode += ShaderGenerator.begin();\n\t\tcode += this.frontendFunc;\n\t\tcode += '    gl_FragColor = uColor;\\n';\n\t\tcode += ShaderGenerator.end();\n\t\treturn code;\n\t}\n\t_fsGetDepthPassCode() {\n\t\tconst chunks = this.chunks;\n\t\tlet code = this._fsGetBeginCode();\n\t\tcode += 'varying float vDepth;\\n';\n\t\tcode += this.varyings;\n\t\tcode += this.varyingDefines;\n\t\tcode += chunks.packDepthPS;\n\t\tcode += this.frontendDecl;\n\t\tcode += this.frontendCode;\n\t\tcode += ShaderGenerator.begin();\n\t\tcode += this.frontendFunc;\n\t\tcode += '    gl_FragColor = packFloat(vDepth);\\n';\n\t\tcode += ShaderGenerator.end();\n\t\treturn code;\n\t}\n\t_fsGetPrePassVelocityCode() {\n\t\treturn this._fsGetDepthPassCode();\n\t}\n\t_fsGetShadowPassCode() {\n\t\tconst device = this.device;\n\t\tconst options = this.options;\n\t\tconst chunks = this.chunks;\n\t\tconst varyings = this.varyings;\n\t\tconst lightType = this.shaderPassInfo.lightType;\n\t\tlet shadowType = this.shaderPassInfo.shadowType;\n\t\tif (lightType !== LIGHTTYPE_DIRECTIONAL && options.clusteredLightingEnabled) {\n\t\t\tif (shadowType === SHADOW_VSM8 || shadowType === SHADOW_VSM16 || shadowType === SHADOW_VSM32 || shadowType === SHADOW_PCSS) {\n\t\t\t\tshadowType = SHADOW_PCF3;\n\t\t\t}\n\t\t}\n\t\tlet code = this._fsGetBeginCode();\n\t\tif (device.extStandardDerivatives && device.isWebGL1) {\n\t\t\tcode += 'uniform vec2 polygonOffset;\\n';\n\t\t}\n\t\tif (shadowType === SHADOW_VSM32) {\n\t\t\tif (device.textureFloatHighPrecision) {\n\t\t\t\tcode += '#define VSM_EXPONENT 15.0\\n\\n';\n\t\t\t} else {\n\t\t\t\tcode += '#define VSM_EXPONENT 5.54\\n\\n';\n\t\t\t}\n\t\t} else if (shadowType === SHADOW_VSM16) {\n\t\t\tcode += '#define VSM_EXPONENT 5.54\\n\\n';\n\t\t}\n\t\tif (lightType !== LIGHTTYPE_DIRECTIONAL) {\n\t\t\tcode += 'uniform vec3 view_position;\\n';\n\t\t\tcode += 'uniform float light_radius;\\n';\n\t\t}\n\t\tcode += varyings;\n\t\tcode += this.varyingDefines;\n\t\tcode += this.frontendDecl;\n\t\tcode += this.frontendCode;\n\t\tconst mayPackDepth = shadowType === SHADOW_PCF1 || shadowType === SHADOW_PCF3 || shadowType === SHADOW_PCF5 || shadowType === SHADOW_PCSS;\n\t\tconst mustPackDepth = lightType === LIGHTTYPE_OMNI && shadowType !== SHADOW_PCSS && !options.clusteredLightingEnabled;\n\t\tconst usePackedDepth = mayPackDepth && !device.supportsDepthShadow || mustPackDepth;\n\t\tif (usePackedDepth) {\n\t\t\tcode += chunks.packDepthPS;\n\t\t} else if (shadowType === SHADOW_VSM8) {\n\t\t\tcode += 'vec2 encodeFloatRG( float v ) {\\n';\n\t\t\tcode += '    vec2 enc = vec2(1.0, 255.0) * v;\\n';\n\t\t\tcode += '    enc = fract(enc);\\n';\n\t\t\tcode += '    enc -= enc.yy * vec2(1.0/255.0, 1.0/255.0);\\n';\n\t\t\tcode += '    return enc;\\n';\n\t\t\tcode += '}\\n\\n';\n\t\t}\n\t\tif (shadowType === SHADOW_PCSS) {\n\t\t\tcode += shaderChunks.linearizeDepthPS;\n\t\t}\n\t\tcode += ShaderGenerator.begin();\n\t\tcode += this.frontendFunc;\n\t\tconst isVsm = shadowType === SHADOW_VSM8 || shadowType === SHADOW_VSM16 || shadowType === SHADOW_VSM32;\n\t\tconst applySlopeScaleBias = device.isWebGL1 && device.extStandardDerivatives;\n\t\tconst usePerspectiveDepth = lightType === LIGHTTYPE_DIRECTIONAL || !isVsm && lightType === LIGHTTYPE_SPOT;\n\t\tlet hasModifiedDepth = false;\n\t\tif (usePerspectiveDepth) {\n\t\t\tcode += '    float depth = gl_FragCoord.z;\\n';\n\t\t} else {\n\t\t\tcode += '    float depth = min(distance(view_position, vPositionW) / light_radius, 0.99999);\\n';\n\t\t\thasModifiedDepth = true;\n\t\t}\n\t\tif (applySlopeScaleBias) {\n\t\t\tcode += '    float minValue = 2.3374370500153186e-10; //(1.0 / 255.0) / (256.0 * 256.0 * 256.0);\\n';\n\t\t\tcode += '    depth += polygonOffset.x * max(abs(dFdx(depth)), abs(dFdy(depth))) + minValue * polygonOffset.y;\\n';\n\t\t\thasModifiedDepth = true;\n\t\t}\n\t\tif (usePackedDepth) {\n\t\t\tcode += '    gl_FragColor = packFloat(depth);\\n';\n\t\t} else if (!isVsm) {\n\t\t\tconst exportR32 = shadowType === SHADOW_PCSS;\n\t\t\tif (exportR32) {\n\t\t\t\tcode += '    gl_FragColor.r = depth;\\n';\n\t\t\t} else {\n\t\t\t\tif (hasModifiedDepth) {\n\t\t\t\t\tcode += '    gl_FragDepth = depth;\\n';\n\t\t\t\t}\n\t\t\t\tcode += '    gl_FragColor = vec4(1.0);\\n';\n\t\t\t}\n\t\t} else if (shadowType === SHADOW_VSM8) {\n\t\t\tcode += '    gl_FragColor = vec4(encodeFloatRG(depth), encodeFloatRG(depth*depth));\\n';\n\t\t} else {\n\t\t\tcode += chunks.storeEVSMPS;\n\t\t}\n\t\tcode += ShaderGenerator.end();\n\t\treturn code;\n\t}\n\t_fsGetLitPassCode() {\n\t\tconst device = this.device;\n\t\tconst options = this.options;\n\t\tconst chunks = this.chunks;\n\t\tconst decl = new ChunkBuilder();\n\t\tconst func = new ChunkBuilder();\n\t\tconst backend = new ChunkBuilder();\n\t\tconst code = new ChunkBuilder();\n\t\tif (options.opacityFadesSpecular === false) {\n\t\t\tdecl.append('uniform float material_alphaFade;');\n\t\t}\n\t\tif (options.useSpecular) {\n\t\t\tthis.defines.push('LIT_SPECULAR');\n\t\t\tif (this.reflections) {\n\t\t\t\tthis.defines.push('LIT_REFLECTIONS');\n\t\t\t}\n\t\t\tif (options.useClearCoat) {\n\t\t\t\tthis.defines.push('LIT_CLEARCOAT');\n\t\t\t}\n\t\t\tif (options.fresnelModel > 0) {\n\t\t\t\tthis.defines.push('LIT_SPECULAR_FRESNEL');\n\t\t\t}\n\t\t\tif (options.conserveEnergy) {\n\t\t\t\tthis.defines.push('LIT_CONSERVE_ENERGY');\n\t\t\t}\n\t\t\tif (options.useSheen) {\n\t\t\t\tthis.defines.push('LIT_SHEEN');\n\t\t\t}\n\t\t\tif (options.useIridescence) {\n\t\t\t\tthis.defines.push('LIT_IRIDESCENCE');\n\t\t\t}\n\t\t}\n\t\tconst shadowTypeUsed = [];\n\t\tlet numShadowLights = 0;\n\t\tlet shadowedDirectionalLightUsed = false;\n\t\tlet useVsm = false;\n\t\tlet usePcss = false;\n\t\tlet hasAreaLights = options.lights.some(light => {\n\t\t\treturn light._shape && light._shape !== LIGHTSHAPE_PUNCTUAL;\n\t\t});\n\t\tif (options.clusteredLightingEnabled && options.clusteredLightingAreaLightsEnabled) {\n\t\t\thasAreaLights = true;\n\t\t}\n\t\tif (hasAreaLights || options.clusteredLightingEnabled) {\n\t\t\tlet areaLutsPrecision = 'highp';\n\t\t\tif (device.areaLightLutFormat === PIXELFORMAT_RGBA8) {\n\t\t\t\tdecl.append('#define AREA_R8_G8_B8_A8_LUTS');\n\t\t\t\tareaLutsPrecision = 'lowp';\n\t\t\t}\n\t\t\tdecl.append('#define AREA_LIGHTS');\n\t\t\tdecl.append(`uniform ${areaLutsPrecision} sampler2D areaLightsLutTex1;`);\n\t\t\tdecl.append(`uniform ${areaLutsPrecision} sampler2D areaLightsLutTex2;`);\n\t\t}\n\t\tfor (let i = 0; i < options.lights.length; i++) {\n\t\t\tconst light = options.lights[i];\n\t\t\tconst lightType = light._type;\n\t\t\tif (options.clusteredLightingEnabled && lightType !== LIGHTTYPE_DIRECTIONAL) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst lightShape = hasAreaLights && light._shape ? light._shape : LIGHTSHAPE_PUNCTUAL;\n\t\t\tdecl.append(`uniform vec3 light${i}_color;`);\n\t\t\tif (light._shadowType === SHADOW_PCSS && light.castShadows && !options.noShadow) {\n\t\t\t\tdecl.append(`uniform float light${i}_shadowSearchArea;`);\n\t\t\t\tdecl.append(`uniform vec4 light${i}_cameraParams;`);\n\t\t\t}\n\t\t\tif (lightType === LIGHTTYPE_DIRECTIONAL) {\n\t\t\t\tdecl.append(`uniform vec3 light${i}_direction;`);\n\t\t\t} else {\n\t\t\t\tdecl.append(`uniform vec3 light${i}_position;`);\n\t\t\t\tdecl.append(`uniform float light${i}_radius;`);\n\t\t\t\tif (lightType === LIGHTTYPE_SPOT) {\n\t\t\t\t\tdecl.append(`uniform vec3 light${i}_direction;`);\n\t\t\t\t\tdecl.append(`uniform float light${i}_innerConeAngle;`);\n\t\t\t\t\tdecl.append(`uniform float light${i}_outerConeAngle;`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (lightShape !== LIGHTSHAPE_PUNCTUAL) {\n\t\t\t\tif (lightType === LIGHTTYPE_DIRECTIONAL) {\n\t\t\t\t\tdecl.append(`uniform vec3 light${i}_position;`);\n\t\t\t\t}\n\t\t\t\tdecl.append(`uniform vec3 light${i}_halfWidth;`);\n\t\t\t\tdecl.append(`uniform vec3 light${i}_halfHeight;`);\n\t\t\t}\n\t\t\tif (light.castShadows && !options.noShadow) {\n\t\t\t\tdecl.append(`uniform mat4 light${i}_shadowMatrix;`);\n\t\t\t\tdecl.append(`uniform float light${i}_shadowIntensity;`);\n\t\t\t\tif (lightType === LIGHTTYPE_DIRECTIONAL) {\n\t\t\t\t\tdecl.append(`uniform mat4 light${i}_shadowMatrixPalette[4];`);\n\t\t\t\t\tdecl.append(`uniform float light${i}_shadowCascadeDistances[4];`);\n\t\t\t\t\tdecl.append(`uniform float light${i}_shadowCascadeCount;`);\n\t\t\t\t}\n\t\t\t\tdecl.append(`uniform vec4 light${i}_shadowParams;`);\n\t\t\t\tif (lightType === LIGHTTYPE_DIRECTIONAL) {\n\t\t\t\t\tshadowedDirectionalLightUsed = true;\n\t\t\t\t}\n\t\t\t\tif (lightType === LIGHTTYPE_OMNI) {\n\t\t\t\t\tdecl.append(`uniform samplerCube light${i}_shadowMap;`);\n\t\t\t\t} else {\n\t\t\t\t\tif (light._isPcf && device.supportsDepthShadow) {\n\t\t\t\t\t\tdecl.append(`uniform sampler2DShadow light${i}_shadowMap;`);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdecl.append(`uniform sampler2D light${i}_shadowMap;`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tnumShadowLights++;\n\t\t\t\tshadowTypeUsed[light._shadowType] = true;\n\t\t\t\tif (light._isVsm) useVsm = true;\n\t\t\t\tif (light._shadowType === SHADOW_PCSS) usePcss = true;\n\t\t\t}\n\t\t\tif (light._cookie) {\n\t\t\t\tif (light._cookie._cubemap) {\n\t\t\t\t\tif (lightType === LIGHTTYPE_OMNI) {\n\t\t\t\t\t\tdecl.append(`uniform samplerCube light${i}_cookie;`);\n\t\t\t\t\t\tdecl.append(`uniform float light${i}_cookieIntensity;`);\n\t\t\t\t\t\tif (!light.castShadows || options.noShadow) {\n\t\t\t\t\t\t\tdecl.append(`uniform mat4 light${i}_shadowMatrix;`);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (lightType === LIGHTTYPE_SPOT) {\n\t\t\t\t\t\tdecl.append(`uniform sampler2D light${i}_cookie;`);\n\t\t\t\t\t\tdecl.append(`uniform float light${i}_cookieIntensity;`);\n\t\t\t\t\t\tif (!light.castShadows || options.noShadow) {\n\t\t\t\t\t\t\tdecl.append(`uniform mat4 light${i}_shadowMatrix;`);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (light._cookieTransform) {\n\t\t\t\t\t\t\tdecl.append(`uniform vec4 light${i}_cookieMatrix;`);\n\t\t\t\t\t\t\tdecl.append(`uniform vec2 light${i}_cookieOffset;`);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst hasTBN = this.needsNormal && (options.useNormals || options.useClearCoatNormals || options.enableGGXSpecular && !options.useHeights);\n\t\tif (hasTBN) {\n\t\t\tif (options.hasTangents) {\n\t\t\t\tfunc.append(options.fastTbn ? chunks.TBNfastPS : chunks.TBNPS);\n\t\t\t} else {\n\t\t\t\tif (device.extStandardDerivatives && (options.useNormals || options.useClearCoatNormals)) {\n\t\t\t\t\tfunc.append(chunks.TBNderivativePS.replace(/\\$UV/g, this.lightingUv));\n\t\t\t\t} else {\n\t\t\t\t\tfunc.append(chunks.TBNObjectSpacePS);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (options.twoSidedLighting) {\n\t\t\t\tfunc.append(chunks.twoSidedLightingPS);\n\t\t\t}\n\t\t}\n\t\tfunc.append(chunks.sphericalPS);\n\t\tfunc.append(chunks.decodePS);\n\t\tfunc.append(ShaderGenerator.gammaCode(options.gamma, chunks));\n\t\tfunc.append(ShaderGenerator.tonemapCode(options.toneMap, chunks));\n\t\tfunc.append(ShaderGenerator.fogCode(options.fog, chunks));\n\t\tfunc.append(this.frontendCode);\n\t\tif (options.useCubeMapRotation) {\n\t\t\tdecl.append('#define CUBEMAP_ROTATION');\n\t\t}\n\t\tif (this.needsNormal) {\n\t\t\tfunc.append(chunks.cubeMapRotatePS);\n\t\t\tfunc.append(options.cubeMapProjection > 0 ? chunks.cubeMapProjectBoxPS : chunks.cubeMapProjectNonePS);\n\t\t\tfunc.append(options.skyboxIntensity ? chunks.envMultiplyPS : chunks.envConstPS);\n\t\t}\n\t\tif (this.lighting && options.useSpecular || this.reflections) {\n\t\t\tif (options.useMetalness) {\n\t\t\t\tfunc.append(chunks.metalnessModulatePS);\n\t\t\t}\n\t\t\tif (options.fresnelModel === FRESNEL_SCHLICK) {\n\t\t\t\tfunc.append(chunks.fresnelSchlickPS);\n\t\t\t}\n\t\t\tif (options.useIridescence) {\n\t\t\t\tfunc.append(chunks.iridescenceDiffractionPS);\n\t\t\t}\n\t\t}\n\t\tif (options.useAo) {\n\t\t\tfunc.append(chunks.aoDiffuseOccPS);\n\t\t\tswitch (options.occludeSpecular) {\n\t\t\t\tcase SPECOCC_AO:\n\t\t\t\t\tfunc.append(options.occludeSpecularFloat ? chunks.aoSpecOccSimplePS : chunks.aoSpecOccConstSimplePS);\n\t\t\t\t\tbreak;\n\t\t\t\tcase SPECOCC_GLOSSDEPENDENT:\n\t\t\t\t\tfunc.append(options.occludeSpecularFloat ? chunks.aoSpecOccPS : chunks.aoSpecOccConstPS);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (options.reflectionSource === 'envAtlasHQ') {\n\t\t\tfunc.append(options.fixSeams ? chunks.fixCubemapSeamsStretchPS : chunks.fixCubemapSeamsNonePS);\n\t\t\tfunc.append(chunks.envAtlasPS);\n\t\t\tfunc.append(chunks.reflectionEnvHQPS.replace(/\\$DECODE_CUBEMAP/g, ChunkUtils.decodeFunc(options.reflectionCubemapEncoding)).replace(/\\$DECODE/g, ChunkUtils.decodeFunc(options.reflectionEncoding)));\n\t\t} else if (options.reflectionSource === 'envAtlas') {\n\t\t\tfunc.append(chunks.envAtlasPS);\n\t\t\tfunc.append(chunks.reflectionEnvPS.replace(/\\$DECODE/g, ChunkUtils.decodeFunc(options.reflectionEncoding)));\n\t\t} else if (options.reflectionSource === 'cubeMap') {\n\t\t\tfunc.append(options.fixSeams ? chunks.fixCubemapSeamsStretchPS : chunks.fixCubemapSeamsNonePS);\n\t\t\tfunc.append(chunks.reflectionCubePS.replace(/\\$DECODE/g, ChunkUtils.decodeFunc(options.reflectionEncoding)));\n\t\t} else if (options.reflectionSource === 'sphereMap') {\n\t\t\tfunc.append(chunks.reflectionSpherePS.replace(/\\$DECODE/g, ChunkUtils.decodeFunc(options.reflectionEncoding)));\n\t\t}\n\t\tif (this.reflections) {\n\t\t\tif (options.useClearCoat) {\n\t\t\t\tfunc.append(chunks.reflectionCCPS);\n\t\t\t}\n\t\t\tif (options.useSheen) {\n\t\t\t\tfunc.append(chunks.reflectionSheenPS);\n\t\t\t}\n\t\t}\n\t\tif (options.useRefraction) {\n\t\t\tif (options.useDynamicRefraction) {\n\t\t\t\tif (options.dispersion) {\n\t\t\t\t\tdecl.append('uniform float material_dispersion;');\n\t\t\t\t\tdecl.append('#define DISPERSION\\n');\n\t\t\t\t}\n\t\t\t\tfunc.append(chunks.refractionDynamicPS);\n\t\t\t} else if (this.reflections) {\n\t\t\t\tfunc.append(chunks.refractionCubePS);\n\t\t\t}\n\t\t}\n\t\tif (options.useSheen) {\n\t\t\tfunc.append(chunks.lightSheenPS);\n\t\t}\n\t\tif (options.clusteredLightingEnabled) {\n\t\t\tfunc.append(chunks.clusteredLightUtilsPS);\n\t\t\tif (options.clusteredLightingCookiesEnabled) {\n\t\t\t\tfunc.append(chunks.clusteredLightCookiesPS);\n\t\t\t}\n\t\t\tif (options.clusteredLightingShadowsEnabled && !options.noShadow) {\n\t\t\t\tshadowTypeUsed[SHADOW_PCF3] = true;\n\t\t\t\tshadowTypeUsed[SHADOW_PCF5] = true;\n\t\t\t\tshadowTypeUsed[SHADOW_PCSS] = true;\n\t\t\t}\n\t\t}\n\t\tif (numShadowLights > 0 || options.clusteredLightingEnabled) {\n\t\t\tif (shadowedDirectionalLightUsed) {\n\t\t\t\tfunc.append(chunks.shadowCascadesPS);\n\t\t\t}\n\t\t\tif (shadowTypeUsed[SHADOW_PCF1] || shadowTypeUsed[SHADOW_PCF3]) {\n\t\t\t\tfunc.append(chunks.shadowStandardPS);\n\t\t\t}\n\t\t\tif (shadowTypeUsed[SHADOW_PCF5] && !device.isWebGL1) {\n\t\t\t\tfunc.append(chunks.shadowStandardGL2PS);\n\t\t\t}\n\t\t\tif (useVsm) {\n\t\t\t\tfunc.append(chunks.shadowVSM_commonPS);\n\t\t\t\tif (shadowTypeUsed[SHADOW_VSM8]) {\n\t\t\t\t\tfunc.append(chunks.shadowVSM8PS);\n\t\t\t\t}\n\t\t\t\tif (shadowTypeUsed[SHADOW_VSM16]) {\n\t\t\t\t\tfunc.append(device.extTextureHalfFloatLinear ? chunks.shadowEVSMPS.replace(/\\$/g, '16') : chunks.shadowEVSMnPS.replace(/\\$/g, '16'));\n\t\t\t\t}\n\t\t\t\tif (shadowTypeUsed[SHADOW_VSM32]) {\n\t\t\t\t\tfunc.append(device.extTextureFloatLinear ? chunks.shadowEVSMPS.replace(/\\$/g, '32') : chunks.shadowEVSMnPS.replace(/\\$/g, '32'));\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (usePcss) {\n\t\t\t\tfunc.append(chunks.linearizeDepthPS);\n\t\t\t\tfunc.append(chunks.shadowPCSSPS);\n\t\t\t}\n\t\t\tif (!(device.isWebGL2 || device.isWebGPU || device.extStandardDerivatives)) {\n\t\t\t\tfunc.append(chunks.biasConstPS);\n\t\t\t}\n\t\t}\n\t\tif (options.enableGGXSpecular) func.append('uniform float material_anisotropy;');\n\t\tif (this.lighting) {\n\t\t\tfunc.append(chunks.lightDiffuseLambertPS);\n\t\t\tif (hasAreaLights || options.clusteredLightingAreaLightsEnabled) {\n\t\t\t\tfunc.append(chunks.ltcPS);\n\t\t\t}\n\t\t}\n\t\tlet useOldAmbient = false;\n\t\tif (options.useSpecular) {\n\t\t\tif (this.lighting) {\n\t\t\t\tfunc.append(options.shadingModel === SPECULAR_PHONG ? chunks.lightSpecularPhongPS : options.enableGGXSpecular ? chunks.lightSpecularAnisoGGXPS : chunks.lightSpecularBlinnPS);\n\t\t\t}\n\t\t\tif (!options.fresnelModel && !this.reflections && !options.diffuseMapEnabled) {\n\t\t\t\tdecl.append('uniform vec3 material_ambient;');\n\t\t\t\tdecl.append('#define LIT_OLD_AMBIENT');\n\t\t\t\tuseOldAmbient = true;\n\t\t\t}\n\t\t}\n\t\tfunc.append(chunks.combinePS);\n\t\tif (options.lightMapEnabled) {\n\t\t\tfunc.append(options.useSpecular && options.dirLightMapEnabled ? chunks.lightmapDirAddPS : chunks.lightmapAddPS);\n\t\t}\n\t\tconst addAmbient = !options.lightMapEnabled || options.lightMapWithoutAmbient;\n\t\tif (addAmbient) {\n\t\t\tif (options.ambientSource === 'ambientSH') {\n\t\t\t\tfunc.append(chunks.ambientSHPS);\n\t\t\t} else if (options.ambientSource === 'envAtlas') {\n\t\t\t\tif (options.reflectionSource !== 'envAtlas' && options.reflectionSource !== 'envAtlasHQ') {\n\t\t\t\t\tfunc.append(chunks.envAtlasPS);\n\t\t\t\t}\n\t\t\t\tfunc.append(chunks.ambientEnvPS.replace(/\\$DECODE/g, ChunkUtils.decodeFunc(options.ambientEncoding)));\n\t\t\t} else {\n\t\t\t\tfunc.append(chunks.ambientConstantPS);\n\t\t\t}\n\t\t}\n\t\tif (options.useAmbientTint && !useOldAmbient) {\n\t\t\tdecl.append('uniform vec3 material_ambient;');\n\t\t}\n\t\tif (options.useMsdf) {\n\t\t\tif (!options.msdfTextAttribute) {\n\t\t\t\tdecl.append('#define UNIFORM_TEXT_PARAMETERS');\n\t\t\t}\n\t\t\tfunc.append(chunks.msdfPS);\n\t\t}\n\t\tif (this.needsNormal) {\n\t\t\tfunc.append(chunks.viewDirPS);\n\t\t\tif (options.useSpecular) {\n\t\t\t\tfunc.append(options.enableGGXSpecular ? chunks.reflDirAnisoPS : chunks.reflDirPS);\n\t\t\t}\n\t\t}\n\t\tlet hasPointLights = false;\n\t\tlet usesLinearFalloff = false;\n\t\tlet usesInvSquaredFalloff = false;\n\t\tlet usesSpot = false;\n\t\tlet usesCookie = false;\n\t\tlet usesCookieNow;\n\t\tif (options.clusteredLightingEnabled && this.lighting) {\n\t\t\tusesSpot = true;\n\t\t\thasPointLights = true;\n\t\t\tusesLinearFalloff = true;\n\t\t\tusesCookie = true;\n\t\t\tfunc.append(chunks.floatUnpackingPS);\n\t\t\tif (options.lightMaskDynamic) {\n\t\t\t\tdecl.append('#define CLUSTER_MESH_DYNAMIC_LIGHTS');\n\t\t\t}\n\t\t\tif (options.clusteredLightingCookiesEnabled) {\n\t\t\t\tdecl.append('#define CLUSTER_COOKIES');\n\t\t\t}\n\t\t\tif (options.clusteredLightingShadowsEnabled && !options.noShadow) {\n\t\t\t\tdecl.append('#define CLUSTER_SHADOWS');\n\t\t\t\tdecl.append(`#define CLUSTER_SHADOW_TYPE_${shadowTypeToString[options.clusteredLightingShadowType]}`);\n\t\t\t}\n\t\t\tif (options.clusteredLightingAreaLightsEnabled) {\n\t\t\t\tdecl.append('#define CLUSTER_AREALIGHTS');\n\t\t\t}\n\t\t\tdecl.append(LightsBuffer.getShaderDefines(device));\n\t\t\tif (options.clusteredLightingShadowsEnabled && !options.noShadow) {\n\t\t\t\tfunc.append(chunks.clusteredLightShadowsPS);\n\t\t\t}\n\t\t\tfunc.append(chunks.clusteredLightPS);\n\t\t}\n\t\tcode.append(this._fsGetStartCode(code, device, chunks, options));\n\t\tif (this.needsNormal) {\n\t\t\tcode.append('    dVertexNormalW = normalize(vNormalW);');\n\t\t\tif ((options.useHeights || options.useNormals) && options.hasTangents) {\n\t\t\t\tcode.append('    dTangentW = vTangentW;');\n\t\t\t\tcode.append('    dBinormalW = vBinormalW;');\n\t\t\t}\n\t\t\tcode.append('    getViewDir();');\n\t\t\tif (hasTBN) {\n\t\t\t\tcode.append('    getTBN(dTangentW, dBinormalW, dVertexNormalW);');\n\t\t\t\tif (options.twoSidedLighting) {\n\t\t\t\t\tcode.append('    handleTwoSidedLighting();');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcode.append(this.frontendFunc);\n\t\tif (this.needsNormal) {\n\t\t\tif (options.useSpecular) {\n\t\t\t\tbackend.append('    getReflDir(litArgs_worldNormal, dViewDirW, litArgs_gloss, dTBN);');\n\t\t\t}\n\t\t\tif (options.useClearCoat) {\n\t\t\t\tbackend.append('    ccReflDirW = normalize(-reflect(dViewDirW, litArgs_clearcoat_worldNormal));');\n\t\t\t}\n\t\t}\n\t\tif (this.lighting && options.useSpecular || this.reflections) {\n\t\t\tif (options.useMetalness) {\n\t\t\t\tbackend.append('    float f0 = 1.0 / litArgs_ior; f0 = (f0 - 1.0) / (f0 + 1.0); f0 *= f0;');\n\t\t\t\tbackend.append('    litArgs_specularity = getSpecularModulate(litArgs_specularity, litArgs_albedo, litArgs_metalness, f0);');\n\t\t\t\tbackend.append('    litArgs_albedo = getAlbedoModulate(litArgs_albedo, litArgs_metalness);');\n\t\t\t}\n\t\t\tif (options.useIridescence) {\n\t\t\t\tbackend.append('    vec3 iridescenceFresnel = getIridescence(saturate(dot(dViewDirW, litArgs_worldNormal)), litArgs_specularity, litArgs_iridescence_thickness);');\n\t\t\t}\n\t\t}\n\t\tif (addAmbient) {\n\t\t\tbackend.append('    addAmbient(litArgs_worldNormal);');\n\t\t\tif (options.conserveEnergy && options.useSpecular) {\n\t\t\t\tbackend.append('   dDiffuseLight = dDiffuseLight * (1.0 - litArgs_specularity);');\n\t\t\t}\n\t\t\tif (options.separateAmbient) {\n\t\t\t\tbackend.append(`\n\t\t\t\t\t\t\t\t\t\tvec3 dAmbientLight = dDiffuseLight;\n\t\t\t\t\t\t\t\t\t\tdDiffuseLight = vec3(0);\n\t\t\t\t\t\t\t\t`);\n\t\t\t}\n\t\t}\n\t\tif (options.useAmbientTint && !useOldAmbient) {\n\t\t\tbackend.append('    dDiffuseLight *= material_ambient;');\n\t\t}\n\t\tif (options.useAo && !options.occludeDirect) {\n\t\t\tbackend.append('    occludeDiffuse(litArgs_ao);');\n\t\t}\n\t\tif (options.lightMapEnabled) {\n\t\t\tbackend.append(`    addLightMap(\n\t\t\t\t\t\t\t\tlitArgs_lightmap, \n\t\t\t\t\t\t\t\tlitArgs_lightmapDir, \n\t\t\t\t\t\t\t\tlitArgs_worldNormal, \n\t\t\t\t\t\t\t\tdViewDirW, \n\t\t\t\t\t\t\t\tdReflDirW, \n\t\t\t\t\t\t\t\tlitArgs_gloss, \n\t\t\t\t\t\t\t\tlitArgs_specularity, \n\t\t\t\t\t\t\t\tdVertexNormalW,\n\t\t\t\t\t\t\t\tdTBN\n\t\t\t\t\t\t#if defined(LIT_IRIDESCENCE)\n\t\t\t\t\t\t\t\t, iridescenceFresnel,\n\t\t\t\t\t\t\t\tlitArgs_iridescence_intensity\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t);`);\n\t\t}\n\t\tif (this.lighting || this.reflections) {\n\t\t\tif (this.reflections) {\n\t\t\t\tif (options.useClearCoat) {\n\t\t\t\t\tbackend.append('    addReflectionCC(ccReflDirW, litArgs_clearcoat_gloss);');\n\t\t\t\t\tif (options.fresnelModel > 0) {\n\t\t\t\t\t\tbackend.append('    ccFresnel = getFresnelCC(dot(dViewDirW, litArgs_clearcoat_worldNormal));');\n\t\t\t\t\t\tbackend.append('    ccReflection.rgb *= ccFresnel;');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbackend.append('    ccFresnel = 0.0;');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (options.useSpecularityFactor) {\n\t\t\t\t\tbackend.append('    ccReflection.rgb *= litArgs_specularityFactor;');\n\t\t\t\t}\n\t\t\t\tif (options.useSheen) {\n\t\t\t\t\tbackend.append('    addReflectionSheen(litArgs_worldNormal, dViewDirW, litArgs_sheen_gloss);');\n\t\t\t\t}\n\t\t\t\tbackend.append('    addReflection(dReflDirW, litArgs_gloss);');\n\t\t\t\tif (options.fresnelModel > 0) {\n\t\t\t\t\tbackend.append(`    dReflection.rgb *= \n\t\t\t\t\t\t\t\t\t\t\t\tgetFresnel(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdot(dViewDirW, litArgs_worldNormal), \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlitArgs_gloss, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlitArgs_specularity\n\t\t\t\t\t\t\t\t\t\t\t\t#if defined(LIT_IRIDESCENCE)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t, iridescenceFresnel,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlitArgs_iridescence_intensity\n\t\t\t\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);`);\n\t\t\t\t} else {\n\t\t\t\t\tbackend.append('    dReflection.rgb *= litArgs_specularity;');\n\t\t\t\t}\n\t\t\t\tif (options.useSpecularityFactor) {\n\t\t\t\t\tbackend.append('    dReflection.rgb *= litArgs_specularityFactor;');\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (hasAreaLights) {\n\t\t\t\tbackend.append('    dSpecularLight *= litArgs_specularity;');\n\t\t\t\tif (options.useSpecular) {\n\t\t\t\t\tbackend.append('    calcLTCLightValues(litArgs_gloss, litArgs_worldNormal, dViewDirW, litArgs_specularity, litArgs_clearcoat_gloss, litArgs_clearcoat_worldNormal, litArgs_clearcoat_specularity);');\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (let i = 0; i < options.lights.length; i++) {\n\t\t\t\tconst light = options.lights[i];\n\t\t\t\tconst lightType = light._type;\n\t\t\t\tif (options.clusteredLightingEnabled && lightType !== LIGHTTYPE_DIRECTIONAL) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tusesCookieNow = false;\n\t\t\t\tconst lightShape = hasAreaLights && light._shape ? light.shape : LIGHTSHAPE_PUNCTUAL;\n\t\t\t\tconst shapeString = hasAreaLights && light._shape ? this._getLightSourceShapeString(lightShape) : '';\n\t\t\t\tif (lightShape !== LIGHTSHAPE_PUNCTUAL) {\n\t\t\t\t\tbackend.append(`    calc${shapeString}LightValues(light${i}_position, light${i}_halfWidth, light${i}_halfHeight);`);\n\t\t\t\t}\n\t\t\t\tif (lightType === LIGHTTYPE_DIRECTIONAL) {\n\t\t\t\t\tbackend.append(`    dLightDirNormW = light${i}_direction;`);\n\t\t\t\t\tbackend.append('    dAtten = 1.0;');\n\t\t\t\t} else {\n\t\t\t\t\tif (light._cookie) {\n\t\t\t\t\t\tif (lightType === LIGHTTYPE_SPOT && !light._cookie._cubemap) {\n\t\t\t\t\t\t\tusesCookie = true;\n\t\t\t\t\t\t\tusesCookieNow = true;\n\t\t\t\t\t\t} else if (lightType === LIGHTTYPE_OMNI && light._cookie._cubemap) {\n\t\t\t\t\t\t\tusesCookie = true;\n\t\t\t\t\t\t\tusesCookieNow = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbackend.append(`    getLightDirPoint(light${i}_position);`);\n\t\t\t\t\thasPointLights = true;\n\t\t\t\t\tif (usesCookieNow) {\n\t\t\t\t\t\tif (lightType === LIGHTTYPE_SPOT) {\n\t\t\t\t\t\t\tbackend.append(`    dAtten3 = getCookie2D${light._cookieFalloff ? '' : 'Clip'}${light._cookieTransform ? 'Xform' : ''}(light${i}_cookie, light${i}_shadowMatrix, light${i}_cookieIntensity${light._cookieTransform ? `, light${i}_cookieMatrix, light${i}_cookieOffset` : ''}).${light._cookieChannel};`);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbackend.append(`    dAtten3 = getCookieCube(light${i}_cookie, light${i}_shadowMatrix, light${i}_cookieIntensity).${light._cookieChannel};`);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (lightShape === LIGHTSHAPE_PUNCTUAL) {\n\t\t\t\t\t\tif (light._falloffMode === LIGHTFALLOFF_LINEAR) {\n\t\t\t\t\t\t\tbackend.append(`    dAtten = getFalloffLinear(light${i}_radius, dLightDirW);`);\n\t\t\t\t\t\t\tusesLinearFalloff = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbackend.append(`    dAtten = getFalloffInvSquared(light${i}_radius, dLightDirW);`);\n\t\t\t\t\t\t\tusesInvSquaredFalloff = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbackend.append(`    dAtten = getFalloffWindow(light${i}_radius, dLightDirW);`);\n\t\t\t\t\t\tusesInvSquaredFalloff = true;\n\t\t\t\t\t}\n\t\t\t\t\tbackend.append('    if (dAtten > 0.00001) {');\n\t\t\t\t\tif (lightType === LIGHTTYPE_SPOT) {\n\t\t\t\t\t\tif (!(usesCookieNow && !light._cookieFalloff)) {\n\t\t\t\t\t\t\tbackend.append(`    dAtten *= getSpotEffect(light${i}_direction, light${i}_innerConeAngle, light${i}_outerConeAngle, dLightDirNormW);`);\n\t\t\t\t\t\t\tusesSpot = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (lightShape !== LIGHTSHAPE_PUNCTUAL) {\n\t\t\t\t\tif (lightType === LIGHTTYPE_DIRECTIONAL) {\n\t\t\t\t\t\tbackend.append('    dAttenD = getLightDiffuse(litArgs_worldNormal, dViewDirW, dLightDirW, dLightDirNormW);');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbackend.append(`    dAttenD = get${shapeString}LightDiffuse(litArgs_worldNormal, dViewDirW, dLightDirW, dLightDirNormW) * 16.0;`);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tbackend.append('    dAtten *= getLightDiffuse(litArgs_worldNormal, dViewDirW, dLightDirW, dLightDirNormW);');\n\t\t\t\t}\n\t\t\t\tif (light.castShadows && !options.noShadow) {\n\t\t\t\t\tconst pcssShadows = light._shadowType === SHADOW_PCSS;\n\t\t\t\t\tconst vsmShadows = light._shadowType === SHADOW_VSM8 || light._shadowType === SHADOW_VSM16 || light._shadowType === SHADOW_VSM32;\n\t\t\t\t\tconst pcfShadows = light._shadowType === SHADOW_PCF1 || light._shadowType === SHADOW_PCF3 || light._shadowType === SHADOW_PCF5;\n\t\t\t\t\tlet shadowReadMode = null;\n\t\t\t\t\tlet evsmExp;\n\t\t\t\t\tswitch (light._shadowType) {\n\t\t\t\t\t\tcase SHADOW_VSM8:\n\t\t\t\t\t\t\tshadowReadMode = 'VSM8';\n\t\t\t\t\t\t\tevsmExp = '0.0';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase SHADOW_VSM16:\n\t\t\t\t\t\t\tshadowReadMode = 'VSM16';\n\t\t\t\t\t\t\tevsmExp = '5.54';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase SHADOW_VSM32:\n\t\t\t\t\t\t\tshadowReadMode = 'VSM32';\n\t\t\t\t\t\t\tif (device.textureFloatHighPrecision) {\n\t\t\t\t\t\t\t\tevsmExp = '15.0';\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tevsmExp = '5.54';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase SHADOW_PCF1:\n\t\t\t\t\t\t\tshadowReadMode = 'PCF1x1';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase SHADOW_PCF5:\n\t\t\t\t\t\t\tshadowReadMode = 'PCF5x5';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase SHADOW_PCSS:\n\t\t\t\t\t\t\tshadowReadMode = 'PCSS';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase SHADOW_PCF3:\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tshadowReadMode = 'PCF3x3';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif (shadowReadMode !== null) {\n\t\t\t\t\t\tif (light._normalOffsetBias && !light._isVsm) {\n\t\t\t\t\t\t\tfunc.append('#define SHADOW_SAMPLE_NORMAL_OFFSET');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (lightType === LIGHTTYPE_DIRECTIONAL) {\n\t\t\t\t\t\t\tfunc.append('#define SHADOW_SAMPLE_ORTHO');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ((pcfShadows || pcssShadows) && device.isWebGL2 || device.isWebGPU || device.extStandardDerivatives) {\n\t\t\t\t\t\t\tfunc.append('#define SHADOW_SAMPLE_SOURCE_ZBUFFER');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (lightType === LIGHTTYPE_OMNI) {\n\t\t\t\t\t\t\tfunc.append('#define SHADOW_SAMPLE_POINT');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst coordCode = chunks.shadowSampleCoordPS;\n\t\t\t\t\t\tfunc.append(coordCode.replace('$LIGHT', i));\n\t\t\t\t\t\tfunc.append('#undef SHADOW_SAMPLE_NORMAL_OFFSET');\n\t\t\t\t\t\tfunc.append('#undef SHADOW_SAMPLE_ORTHO');\n\t\t\t\t\t\tfunc.append('#undef SHADOW_SAMPLE_SOURCE_ZBUFFER');\n\t\t\t\t\t\tfunc.append('#undef SHADOW_SAMPLE_POINT');\n\t\t\t\t\t\tlet shadowMatrix = `light${i}_shadowMatrix`;\n\t\t\t\t\t\tif (lightType === LIGHTTYPE_DIRECTIONAL && light.numCascades > 1) {\n\t\t\t\t\t\t\tbackend.append(`    getShadowCascadeMatrix(light${i}_shadowMatrixPalette, light${i}_shadowCascadeDistances, light${i}_shadowCascadeCount);`);\n\t\t\t\t\t\t\tshadowMatrix = 'cascadeShadowMat';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbackend.append(`    dShadowCoord = getShadowSampleCoord${i}(${shadowMatrix}, light${i}_shadowParams, vPositionW, dLightPosW, dLightDirW, dLightDirNormW, dVertexNormalW);`);\n\t\t\t\t\t\tif (lightType === LIGHTTYPE_DIRECTIONAL) {\n\t\t\t\t\t\t\tbackend.append(`    fadeShadow(light${i}_shadowCascadeDistances);`);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlet shadowCoordArgs = `SHADOWMAP_PASS(light${i}_shadowMap), dShadowCoord, light${i}_shadowParams`;\n\t\t\t\t\t\tif (vsmShadows) {\n\t\t\t\t\t\t\tshadowCoordArgs = `${shadowCoordArgs}, ${evsmExp}, dLightDirW`;\n\t\t\t\t\t\t} else if (pcssShadows) {\n\t\t\t\t\t\t\tlet penumbraSizeArg = `vec2(light${i}_shadowSearchArea)`;\n\t\t\t\t\t\t\tif (lightShape !== LIGHTSHAPE_PUNCTUAL) {\n\t\t\t\t\t\t\t\tpenumbraSizeArg = `vec2(length(light${i}_halfWidth), length(light${i}_halfHeight)) * light${i}_shadowSearchArea`;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tshadowCoordArgs = `${shadowCoordArgs}, light${i}_cameraParams, ${penumbraSizeArg}, dLightDirW`;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (lightType === LIGHTTYPE_OMNI) {\n\t\t\t\t\t\t\tshadowReadMode = `Point${shadowReadMode}`;\n\t\t\t\t\t\t\tif (!pcssShadows) {\n\t\t\t\t\t\t\t\tshadowCoordArgs = `${shadowCoordArgs}, dLightDirW`;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (lightType === LIGHTTYPE_SPOT) {\n\t\t\t\t\t\t\tshadowReadMode = `Spot${shadowReadMode}`;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbackend.append(`    float shadow${i} = getShadow${shadowReadMode}(${shadowCoordArgs});`);\n\t\t\t\t\t\tbackend.append(`    dAtten *= mix(1.0, shadow${i}, light${i}_shadowIntensity);`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (lightShape !== LIGHTSHAPE_PUNCTUAL) {\n\t\t\t\t\tif (options.conserveEnergy && options.useSpecular) {\n\t\t\t\t\t\tbackend.append(`    dDiffuseLight += ((dAttenD * dAtten) * light${i}_color${usesCookieNow ? ' * dAtten3' : ''}) * (1.0 - dLTCSpecFres);`);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbackend.append(`    dDiffuseLight += (dAttenD * dAtten) * light${i}_color${usesCookieNow ? ' * dAtten3' : ''};`);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (hasAreaLights && options.conserveEnergy && options.useSpecular) {\n\t\t\t\t\t\tbackend.append(`    dDiffuseLight += (dAtten * light${i}_color${usesCookieNow ? ' * dAtten3' : ''}) * (1.0 - litArgs_specularity);`);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbackend.append(`    dDiffuseLight += dAtten * light${i}_color${usesCookieNow ? ' * dAtten3' : ''};`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (options.useSpecular) {\n\t\t\t\t\tbackend.append('    dHalfDirW = normalize(-dLightDirNormW + dViewDirW);');\n\t\t\t\t}\n\t\t\t\tif (light.affectSpecularity) {\n\t\t\t\t\tif (lightShape !== LIGHTSHAPE_PUNCTUAL) {\n\t\t\t\t\t\tif (options.useClearCoat) {\n\t\t\t\t\t\t\tbackend.append(`    ccSpecularLight += ccLTCSpecFres * get${shapeString}LightSpecular(litArgs_clearcoat_worldNormal, dViewDirW) * dAtten * light${i}_color${usesCookieNow ? ' * dAtten3' : ''};`);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (options.useSpecular) {\n\t\t\t\t\t\t\tbackend.append(`    dSpecularLight += dLTCSpecFres * get${shapeString}LightSpecular(litArgs_worldNormal, dViewDirW) * dAtten * light${i}_color${usesCookieNow ? ' * dAtten3' : ''};`);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlet calcFresnel = false;\n\t\t\t\t\t\tif (lightType === LIGHTTYPE_DIRECTIONAL && options.fresnelModel > 0) {\n\t\t\t\t\t\t\tcalcFresnel = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (options.useClearCoat) {\n\t\t\t\t\t\t\tbackend.append(`    ccSpecularLight += getLightSpecular(dHalfDirW, ccReflDirW, litArgs_clearcoat_worldNormal, dViewDirW, dLightDirNormW, litArgs_clearcoat_gloss, dTBN) * dAtten * light${i}_color${usesCookieNow ? ' * dAtten3' : ''}${calcFresnel ? ' * getFresnelCC(dot(dViewDirW, dHalfDirW));' : ';'}`);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (options.useSheen) {\n\t\t\t\t\t\t\tbackend.append(`    sSpecularLight += getLightSpecularSheen(dHalfDirW, litArgs_worldNormal, dViewDirW, dLightDirNormW, litArgs_sheen_gloss) * dAtten * light${i}_color${usesCookieNow ? ' * dAtten3;' : ';'}`);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (options.useSpecular) {\n\t\t\t\t\t\t\tbackend.append(`    dSpecularLight += getLightSpecular(dHalfDirW, dReflDirW, litArgs_worldNormal, dViewDirW, dLightDirNormW, litArgs_gloss, dTBN) * dAtten * light${i}_color${usesCookieNow ? ' * dAtten3' : ''}${calcFresnel ? ` \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t* getFresnel(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdot(dViewDirW, dHalfDirW), \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlitArgs_gloss, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlitArgs_specularity\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t#if defined(LIT_IRIDESCENCE)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t, iridescenceFresnel, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlitArgs_iridescence_intensity\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);` : '* litArgs_specularity;'}`);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (lightType !== LIGHTTYPE_DIRECTIONAL) {\n\t\t\t\t\tbackend.append('    }');\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (options.clusteredLightingEnabled && this.lighting) {\n\t\t\t\tusesLinearFalloff = true;\n\t\t\t\tusesInvSquaredFalloff = true;\n\t\t\t\thasPointLights = true;\n\t\t\t\tbackend.append(`    addClusteredLights(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlitArgs_worldNormal, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdViewDirW, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdReflDirW,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t#if defined(LIT_CLEARCOAT)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tccReflDirW,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlitArgs_gloss, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlitArgs_specularity, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdVertexNormalW, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdTBN, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t#if defined(LIT_IRIDESCENCE)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiridescenceFresnel,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlitArgs_clearcoat_worldNormal, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlitArgs_clearcoat_gloss,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlitArgs_sheen_gloss,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlitArgs_iridescence_intensity\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);`);\n\t\t\t}\n\t\t\tif (hasAreaLights) {\n\t\t\t\tif (options.useClearCoat) {\n\t\t\t\t\tbackend.append('    litArgs_clearcoat_specularity = 1.0;');\n\t\t\t\t}\n\t\t\t\tif (options.useSpecular) {\n\t\t\t\t\tbackend.append('    litArgs_specularity = vec3(1);');\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (options.useRefraction) {\n\t\t\t\tbackend.append(`    addRefraction(\n\t\t\t\t\t\t\t\t\t\t\t\tlitArgs_worldNormal, \n\t\t\t\t\t\t\t\t\t\t\t\tdViewDirW, \n\t\t\t\t\t\t\t\t\t\t\t\tlitArgs_thickness, \n\t\t\t\t\t\t\t\t\t\t\t\tlitArgs_gloss, \n\t\t\t\t\t\t\t\t\t\t\t\tlitArgs_specularity, \n\t\t\t\t\t\t\t\t\t\t\t\tlitArgs_albedo, \n\t\t\t\t\t\t\t\t\t\t\t\tlitArgs_transmission,\n\t\t\t\t\t\t\t\t\t\t\t\tlitArgs_ior,\n\t\t\t\t\t\t\t\t\t\t\t\tlitArgs_dispersion\n\t\t\t\t\t\t\t\t\t\t#if defined(LIT_IRIDESCENCE)\n\t\t\t\t\t\t\t\t\t\t\t\t, iridescenceFresnel, \n\t\t\t\t\t\t\t\t\t\t\t\tlitArgs_iridescence_intensity\n\t\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\t);`);\n\t\t\t}\n\t\t}\n\t\tif (options.useAo) {\n\t\t\tif (options.occludeDirect) {\n\t\t\t\tbackend.append('    occludeDiffuse(litArgs_ao);');\n\t\t\t}\n\t\t\tif (options.occludeSpecular === SPECOCC_AO || options.occludeSpecular === SPECOCC_GLOSSDEPENDENT) {\n\t\t\t\tbackend.append('    occludeSpecular(litArgs_gloss, litArgs_ao, litArgs_worldNormal, dViewDirW);');\n\t\t\t}\n\t\t}\n\t\tif (options.useSpecularityFactor) {\n\t\t\tbackend.append('    dSpecularLight *= litArgs_specularityFactor;');\n\t\t}\n\t\tif (options.opacityFadesSpecular === false) {\n\t\t\tif (options.blendType === BLEND_NORMAL || options.blendType === BLEND_PREMULTIPLIED) {\n\t\t\t\tbackend.append('float specLum = dot((dSpecularLight + dReflection.rgb * dReflection.a), vec3( 0.2126, 0.7152, 0.0722 ));');\n\t\t\t\tbackend.append('#ifdef LIT_CLEARCOAT\\n specLum += dot(ccSpecularLight * litArgs_clearcoat_specularity + ccReflection.rgb * litArgs_clearcoat_specularity, vec3( 0.2126, 0.7152, 0.0722 ));\\n#endif');\n\t\t\t\tbackend.append('litArgs_opacity = clamp(litArgs_opacity + gammaCorrectInput(specLum), 0.0, 1.0);');\n\t\t\t}\n\t\t\tbackend.append('litArgs_opacity *= material_alphaFade;');\n\t\t}\n\t\tbackend.append(chunks.endPS);\n\t\tif (options.blendType === BLEND_NORMAL || options.blendType === BLEND_ADDITIVEALPHA || options.alphaToCoverage) {\n\t\t\tbackend.append(chunks.outputAlphaPS);\n\t\t} else if (options.blendType === BLEND_PREMULTIPLIED) {\n\t\t\tbackend.append(chunks.outputAlphaPremulPS);\n\t\t} else {\n\t\t\tbackend.append(chunks.outputAlphaOpaquePS);\n\t\t}\n\t\tif (options.useMsdf) {\n\t\t\tbackend.append('    gl_FragColor = applyMsdf(gl_FragColor);');\n\t\t}\n\t\tbackend.append(chunks.outputPS);\n\t\tbackend.append(chunks.debugOutputPS);\n\t\tif (hasPointLights) {\n\t\t\tfunc.prepend(chunks.lightDirPointPS);\n\t\t}\n\t\tif (usesLinearFalloff) {\n\t\t\tfunc.prepend(chunks.falloffLinearPS);\n\t\t}\n\t\tif (usesInvSquaredFalloff) {\n\t\t\tfunc.prepend(chunks.falloffInvSquaredPS);\n\t\t}\n\t\tif (usesSpot) {\n\t\t\tfunc.prepend(chunks.spotPS);\n\t\t}\n\t\tif (usesCookie && !options.clusteredLightingEnabled) {\n\t\t\tfunc.prepend(chunks.cookiePS);\n\t\t}\n\t\tlet structCode = '';\n\t\tconst backendCode = `void evaluateBackend() {\\n${backend.code}\\n}`;\n\t\tfunc.append(backendCode);\n\t\tcode.append(chunks.debugProcessFrontendPS);\n\t\tcode.append('    evaluateBackend();');\n\t\tcode.append(ShaderGenerator.end());\n\t\tconst mergedCode = decl.code + func.code + code.code;\n\t\tif (mergedCode.includes('dTBN')) structCode += 'mat3 dTBN;\\n';\n\t\tif (mergedCode.includes('dVertexNormalW')) structCode += 'vec3 dVertexNormalW;\\n';\n\t\tif (mergedCode.includes('dTangentW')) structCode += 'vec3 dTangentW;\\n';\n\t\tif (mergedCode.includes('dBinormalW')) structCode += 'vec3 dBinormalW;\\n';\n\t\tif (mergedCode.includes('dViewDirW')) structCode += 'vec3 dViewDirW;\\n';\n\t\tif (mergedCode.includes('dReflDirW')) structCode += 'vec3 dReflDirW;\\n';\n\t\tif (mergedCode.includes('dHalfDirW')) structCode += 'vec3 dHalfDirW;\\n';\n\t\tif (mergedCode.includes('ccReflDirW')) structCode += 'vec3 ccReflDirW;\\n';\n\t\tif (mergedCode.includes('dLightDirNormW')) structCode += 'vec3 dLightDirNormW;\\n';\n\t\tif (mergedCode.includes('dLightDirW')) structCode += 'vec3 dLightDirW;\\n';\n\t\tif (mergedCode.includes('dLightPosW')) structCode += 'vec3 dLightPosW;\\n';\n\t\tif (mergedCode.includes('dShadowCoord')) structCode += 'vec3 dShadowCoord;\\n';\n\t\tif (mergedCode.includes('dReflection')) structCode += 'vec4 dReflection;\\n';\n\t\tif (mergedCode.includes('dDiffuseLight')) structCode += 'vec3 dDiffuseLight;\\n';\n\t\tif (mergedCode.includes('dSpecularLight')) structCode += 'vec3 dSpecularLight;\\n';\n\t\tif (mergedCode.includes('dAtten')) structCode += 'float dAtten;\\n';\n\t\tif (mergedCode.includes('dAttenD')) structCode += 'float dAttenD;\\n';\n\t\tif (mergedCode.includes('dAtten3')) structCode += 'vec3 dAtten3;\\n';\n\t\tif (mergedCode.includes('dMsdf')) structCode += 'vec4 dMsdf;\\n';\n\t\tif (mergedCode.includes('ccFresnel')) structCode += 'float ccFresnel;\\n';\n\t\tif (mergedCode.includes('ccReflection')) structCode += 'vec3 ccReflection;\\n';\n\t\tif (mergedCode.includes('ccSpecularLight')) structCode += 'vec3 ccSpecularLight;\\n';\n\t\tif (mergedCode.includes('ccSpecularityNoFres')) structCode += 'float ccSpecularityNoFres;\\n';\n\t\tif (mergedCode.includes('sSpecularLight')) structCode += 'vec3 sSpecularLight;\\n';\n\t\tif (mergedCode.includes('sReflection')) structCode += 'vec3 sReflection;\\n';\n\t\tconst result = this._fsGetBeginCode() + this.varyings + this.varyingDefines + this._fsGetBaseCode() + structCode + this.frontendDecl + mergedCode;\n\t\treturn result;\n\t}\n\tgenerateFragmentShader(frontendDecl, frontendCode, frontendFunc, lightingUv) {\n\t\tvar _this$handleCompatibi;\n\t\tconst options = this.options;\n\t\tthis.frontendDecl = frontendDecl;\n\t\tthis.frontendCode = frontendCode;\n\t\tthis.frontendFunc = frontendFunc;\n\t\tthis.lightingUv = lightingUv;\n\t\tif (options.pass === SHADER_PICK) {\n\t\t\tthis.fshader = this._fsGetPickPassCode();\n\t\t} else if (options.pass === SHADER_DEPTH) {\n\t\t\tthis.fshader = this._fsGetDepthPassCode();\n\t\t} else if (options.pass === SHADER_PREPASS_VELOCITY) {\n\t\t\tthis.fshader = this._fsGetPrePassVelocityCode();\n\t\t} else if (this.shadowPass) {\n\t\t\tthis.fshader = this._fsGetShadowPassCode();\n\t\t} else if (options.customFragmentShader) {\n\t\t\tthis.fshader = this._fsGetBeginCode() + options.customFragmentShader;\n\t\t} else {\n\t\t\tthis.fshader = this._fsGetLitPassCode();\n\t\t}\n\t\t(_this$handleCompatibi = this.handleCompatibility) == null || _this$handleCompatibi.call(this);\n\t}\n\tgetDefinition() {\n\t\tconst definition = ShaderUtils.createDefinition(this.device, {\n\t\t\tname: 'LitShader',\n\t\t\tattributes: this.attributes,\n\t\t\tvertexCode: this.vshader,\n\t\t\tfragmentCode: this.fshader\n\t\t});\n\t\tif (this.shaderPassInfo.isForward) {\n\t\t\tdefinition.tag = SHADERTAG_MATERIAL;\n\t\t}\n\t\treturn definition;\n\t}\n}\n\nconst LitOptionsUtils = {\n\tgenerateKey(options) {\n\t\treturn `lit${Object.keys(options).sort().map(key => {\n\t\t\tif (key === 'chunks') {\n\t\t\t\treturn LitOptionsUtils.generateChunksKey(options);\n\t\t\t} else if (key === 'lights') {\n\t\t\t\treturn LitOptionsUtils.generateLightsKey(options);\n\t\t\t}\n\t\t\treturn key + options[key];\n\t\t}).join('\\n')}`;\n\t},\n\tgenerateLightsKey(options) {\n\t\treturn `lights:${options.lights.map(light => {\n\t\t\treturn !options.clusteredLightingEnabled || light._type === LIGHTTYPE_DIRECTIONAL ? `${light.key},` : '';\n\t\t}).join('')}`;\n\t},\n\tgenerateChunksKey(options) {\n\t\tvar _options$chunks;\n\t\treturn `chunks:\\n${Object.keys((_options$chunks = options.chunks) != null ? _options$chunks : {}).sort().map(key => key + options.chunks[key]).join('')}`;\n\t}\n};\n\nconst dummyUvs = [0, 1, 2, 3, 4, 5, 6, 7];\nclass ShaderGeneratorLit extends ShaderGenerator {\n\tgenerateKey(options) {\n\t\tconst key = `lit${dummyUvs.map((dummy, index) => {\n\t\t\treturn options.usedUvs[index] ? '1' : '0';\n\t\t}).join('')}${options.shaderChunk}${LitOptionsUtils.generateKey(options.litOptions)}`;\n\t\treturn key;\n\t}\n\tcreateShaderDefinition(device, options) {\n\t\tconst litShader = new LitShader(device, options.litOptions);\n\t\tconst decl = new ChunkBuilder();\n\t\tconst code = new ChunkBuilder();\n\t\tconst func = new ChunkBuilder();\n\t\tdecl.append('uniform float textureBias;');\n\t\tdecl.append(litShader.chunks.litShaderArgsPS);\n\t\tcode.append(options.shaderChunk);\n\t\tfunc.code = 'evaluateFrontend();';\n\t\tfunc.code = `\\n${func.code.split('\\n').map(l => `    ${l}`).join('\\n')}\\n\\n`;\n\t\tconst usedUvSets = options.usedUvs || [true];\n\t\tconst mapTransforms = [];\n\t\tlitShader.generateVertexShader(usedUvSets, usedUvSets, mapTransforms);\n\t\tlitShader.generateFragmentShader(decl.code, code.code, func.code, 'vUv0');\n\t\treturn litShader.getDefinition();\n\t}\n}\nconst lit = new ShaderGeneratorLit();\n\nconst options = new LitMaterialOptions();\nclass LitMaterial extends Material {\n\tconstructor(...args) {\n\t\tsuper(...args);\n\t\tthis.usedUvs = [true];\n\t\tthis.shaderChunk = 'void evaluateFrontend() {}\\n';\n\t\tthis.chunks = null;\n\t\tthis.useLighting = true;\n\t\tthis.useFog = true;\n\t\tthis.useGammaTonemap = true;\n\t\tthis.useSkybox = true;\n\t\tthis.shadingModel = SPECULAR_BLINN;\n\t\tthis.ambientSH = null;\n\t\tthis.pixelSnap = false;\n\t\tthis.nineSlicedMode = null;\n\t\tthis.fastTbn = false;\n\t\tthis.twoSidedLighting = false;\n\t\tthis.occludeDirect = false;\n\t\tthis.occludeSpecular = SPECOCC_AO;\n\t\tthis.occludeSpecularIntensity = 1;\n\t\tthis.opacityFadesSpecular = true;\n\t\tthis.opacityDither = DITHER_NONE;\n\t\tthis.opacityShadowDither = DITHER_NONE;\n\t\tthis.conserveEnergy = true;\n\t\tthis.ggxSpecular = false;\n\t\tthis.fresnelModel = FRESNEL_SCHLICK;\n\t\tthis.dynamicRefraction = false;\n\t\tthis.hasAo = false;\n\t\tthis.hasSpecular = false;\n\t\tthis.hasSpecularityFactor = false;\n\t\tthis.hasLighting = false;\n\t\tthis.hasHeights = false;\n\t\tthis.hasNormals = false;\n\t\tthis.hasSheen = false;\n\t\tthis.hasRefraction = false;\n\t\tthis.hasIrridescence = false;\n\t\tthis.hasMetalness = false;\n\t\tthis.hasClearCoat = false;\n\t\tthis.hasClearCoatNormals = false;\n\t}\n\tgetShaderVariant(device, scene, objDefs, unused, pass, sortedLights, viewUniformFormat, viewBindGroupFormat, vertexFormat) {\n\t\toptions.usedUvs = this.usedUvs.slice();\n\t\toptions.shaderChunk = this.shaderChunk;\n\t\tLitMaterialOptionsBuilder.update(options.litOptions, this, scene, objDefs, pass, sortedLights);\n\t\tconst processingOptions = new ShaderProcessorOptions(viewUniformFormat, viewBindGroupFormat, vertexFormat);\n\t\tconst library = getProgramLibrary(device);\n\t\tlibrary.register('lit', lit);\n\t\tconst shader = library.getProgram('lit', options, processingOptions, this.userId);\n\t\treturn shader;\n\t}\n}\n\nconst tempVec3 = new Vec3();\nconst tempMin3 = new Vec3();\nconst tempMax3 = new Vec3();\nconst tempBox = new BoundingBox();\nconst epsilon = 0.000001;\nclass ClusterLight {\n\tconstructor() {\n\t\tthis.light = null;\n\t\tthis.min = new Vec3();\n\t\tthis.max = new Vec3();\n\t}\n}\nclass WorldClusters {\n\tconstructor(device) {\n\t\tthis.clusterTexture = void 0;\n\t\tthis.device = device;\n\t\tthis.name = 'Untitled';\n\t\tthis.reportCount = 0;\n\t\tthis.boundsMin = new Vec3();\n\t\tthis.boundsMax = new Vec3();\n\t\tthis.boundsDelta = new Vec3();\n\t\tthis._cells = new Vec3(1, 1, 1);\n\t\tthis._cellsLimit = new Vec3();\n\t\tthis.cells = this._cells;\n\t\tthis.maxCellLightCount = 4;\n\t\tthis._maxAttenuation = 0;\n\t\tthis._maxColorValue = 0;\n\t\tthis._usedLights = [];\n\t\tthis._usedLights.push(new ClusterLight());\n\t\tthis.lightsBuffer = new LightsBuffer(device);\n\t\tthis.registerUniforms(device);\n\t}\n\tset maxCellLightCount(count) {\n\t\tif (count !== this._maxCellLightCount) {\n\t\t\tthis._maxCellLightCount = count;\n\t\t\tthis._cellsDirty = true;\n\t\t}\n\t}\n\tget maxCellLightCount() {\n\t\treturn this._maxCellLightCount;\n\t}\n\tset cells(value) {\n\t\ttempVec3.copy(value).floor();\n\t\tif (!this._cells.equals(tempVec3)) {\n\t\t\tthis._cells.copy(tempVec3);\n\t\t\tthis._cellsLimit.copy(tempVec3).sub(Vec3.ONE);\n\t\t\tthis._cellsDirty = true;\n\t\t}\n\t}\n\tget cells() {\n\t\treturn this._cells;\n\t}\n\tdestroy() {\n\t\tthis.lightsBuffer.destroy();\n\t\tthis.releaseClusterTexture();\n\t}\n\treleaseClusterTexture() {\n\t\tif (this.clusterTexture) {\n\t\t\tthis.clusterTexture.destroy();\n\t\t\tthis.clusterTexture = null;\n\t\t}\n\t}\n\tregisterUniforms(device) {\n\t\tthis._clusterSkipId = device.scope.resolve('clusterSkip');\n\t\tthis._clusterMaxCellsId = device.scope.resolve('clusterMaxCells');\n\t\tthis._clusterWorldTextureId = device.scope.resolve('clusterWorldTexture');\n\t\tthis._clusterTextureSizeId = device.scope.resolve('clusterTextureSize');\n\t\tthis._clusterTextureSizeData = new Float32Array(3);\n\t\tthis._clusterBoundsMinId = device.scope.resolve('clusterBoundsMin');\n\t\tthis._clusterBoundsMinData = new Float32Array(3);\n\t\tthis._clusterBoundsDeltaId = device.scope.resolve('clusterBoundsDelta');\n\t\tthis._clusterBoundsDeltaData = new Float32Array(3);\n\t\tthis._clusterCellsCountByBoundsSizeId = device.scope.resolve('clusterCellsCountByBoundsSize');\n\t\tthis._clusterCellsCountByBoundsSizeData = new Float32Array(3);\n\t\tthis._clusterCellsDotId = device.scope.resolve('clusterCellsDot');\n\t\tthis._clusterCellsDotData = new Float32Array(3);\n\t\tthis._clusterCellsMaxId = device.scope.resolve('clusterCellsMax');\n\t\tthis._clusterCellsMaxData = new Float32Array(3);\n\t\tthis._clusterCompressionLimit0Id = device.scope.resolve('clusterCompressionLimit0');\n\t\tthis._clusterCompressionLimit0Data = new Float32Array(2);\n\t}\n\tupdateParams(lightingParams) {\n\t\tif (lightingParams) {\n\t\t\tthis.cells = lightingParams.cells;\n\t\t\tthis.maxCellLightCount = lightingParams.maxLightsPerCell;\n\t\t\tthis.lightsBuffer.cookiesEnabled = lightingParams.cookiesEnabled;\n\t\t\tthis.lightsBuffer.shadowsEnabled = lightingParams.shadowsEnabled;\n\t\t\tthis.lightsBuffer.areaLightsEnabled = lightingParams.areaLightsEnabled;\n\t\t}\n\t}\n\tupdateCells() {\n\t\tif (this._cellsDirty) {\n\t\t\tthis._cellsDirty = false;\n\t\t\tconst cx = this._cells.x;\n\t\t\tconst cy = this._cells.y;\n\t\t\tconst cz = this._cells.z;\n\t\t\tconst numCells = cx * cy * cz;\n\t\t\tconst totalPixels = this.maxCellLightCount * numCells;\n\t\t\tlet width = Math.ceil(Math.sqrt(totalPixels));\n\t\t\twidth = math.roundUp(width, this.maxCellLightCount);\n\t\t\tconst height = Math.ceil(totalPixels / width);\n\t\t\tthis._clusterCellsMaxData[0] = cx;\n\t\t\tthis._clusterCellsMaxData[1] = cy;\n\t\t\tthis._clusterCellsMaxData[2] = cz;\n\t\t\tthis._clusterCellsDotData[0] = this.maxCellLightCount;\n\t\t\tthis._clusterCellsDotData[1] = cx * cz * this.maxCellLightCount;\n\t\t\tthis._clusterCellsDotData[2] = cx * this.maxCellLightCount;\n\t\t\tthis.clusters = new Uint8ClampedArray(totalPixels);\n\t\t\tthis.counts = new Int32Array(numCells);\n\t\t\tthis._clusterTextureSizeData[0] = width;\n\t\t\tthis._clusterTextureSizeData[1] = 1.0 / width;\n\t\t\tthis._clusterTextureSizeData[2] = 1.0 / height;\n\t\t\tthis.releaseClusterTexture();\n\t\t\tthis.clusterTexture = this.lightsBuffer.createTexture(this.device, width, height, PIXELFORMAT_L8, 'ClusterTexture');\n\t\t}\n\t}\n\tuploadTextures() {\n\t\tthis.clusterTexture.lock().set(this.clusters);\n\t\tthis.clusterTexture.unlock();\n\t\tthis.lightsBuffer.uploadTextures();\n\t}\n\tupdateUniforms() {\n\t\tthis._clusterSkipId.setValue(this._usedLights.length > 1 ? 0 : 1);\n\t\tthis.lightsBuffer.updateUniforms();\n\t\tthis._clusterWorldTextureId.setValue(this.clusterTexture);\n\t\tthis._clusterMaxCellsId.setValue(this.maxCellLightCount);\n\t\tconst boundsDelta = this.boundsDelta;\n\t\tthis._clusterCellsCountByBoundsSizeData[0] = this._cells.x / boundsDelta.x;\n\t\tthis._clusterCellsCountByBoundsSizeData[1] = this._cells.y / boundsDelta.y;\n\t\tthis._clusterCellsCountByBoundsSizeData[2] = this._cells.z / boundsDelta.z;\n\t\tthis._clusterCellsCountByBoundsSizeId.setValue(this._clusterCellsCountByBoundsSizeData);\n\t\tthis._clusterBoundsMinData[0] = this.boundsMin.x;\n\t\tthis._clusterBoundsMinData[1] = this.boundsMin.y;\n\t\tthis._clusterBoundsMinData[2] = this.boundsMin.z;\n\t\tthis._clusterBoundsDeltaData[0] = boundsDelta.x;\n\t\tthis._clusterBoundsDeltaData[1] = boundsDelta.y;\n\t\tthis._clusterBoundsDeltaData[2] = boundsDelta.z;\n\t\tthis._clusterCompressionLimit0Data[0] = this._maxAttenuation;\n\t\tthis._clusterCompressionLimit0Data[1] = this._maxColorValue;\n\t\tthis._clusterTextureSizeId.setValue(this._clusterTextureSizeData);\n\t\tthis._clusterBoundsMinId.setValue(this._clusterBoundsMinData);\n\t\tthis._clusterBoundsDeltaId.setValue(this._clusterBoundsDeltaData);\n\t\tthis._clusterCellsDotId.setValue(this._clusterCellsDotData);\n\t\tthis._clusterCellsMaxId.setValue(this._clusterCellsMaxData);\n\t\tthis._clusterCompressionLimit0Id.setValue(this._clusterCompressionLimit0Data);\n\t}\n\tevalLightCellMinMax(clusteredLight, min, max) {\n\t\tmin.copy(clusteredLight.min);\n\t\tmin.sub(this.boundsMin);\n\t\tmin.div(this.boundsDelta);\n\t\tmin.mul2(min, this.cells);\n\t\tmin.floor();\n\t\tmax.copy(clusteredLight.max);\n\t\tmax.sub(this.boundsMin);\n\t\tmax.div(this.boundsDelta);\n\t\tmax.mul2(max, this.cells);\n\t\tmax.ceil();\n\t\tmin.max(Vec3.ZERO);\n\t\tmax.min(this._cellsLimit);\n\t}\n\tcollectLights(lights) {\n\t\tconst maxLights = this.lightsBuffer.maxLights;\n\t\tconst usedLights = this._usedLights;\n\t\tlet lightIndex = 1;\n\t\tlights.forEach(light => {\n\t\t\tconst runtimeLight = !!(light.mask & (MASK_AFFECT_DYNAMIC | MASK_AFFECT_LIGHTMAPPED));\n\t\t\tconst zeroAngleSpotlight = light.type === LIGHTTYPE_SPOT && light._outerConeAngle === 0;\n\t\t\tif (light.enabled && light.type !== LIGHTTYPE_DIRECTIONAL && light.visibleThisFrame && light.intensity > 0 && runtimeLight && !zeroAngleSpotlight) {\n\t\t\t\tif (lightIndex < maxLights) {\n\t\t\t\t\tlet clusteredLight;\n\t\t\t\t\tif (lightIndex < usedLights.length) {\n\t\t\t\t\t\tclusteredLight = usedLights[lightIndex];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclusteredLight = new ClusterLight();\n\t\t\t\t\t\tusedLights.push(clusteredLight);\n\t\t\t\t\t}\n\t\t\t\t\tclusteredLight.light = light;\n\t\t\t\t\tlight.getBoundingBox(tempBox);\n\t\t\t\t\tclusteredLight.min.copy(tempBox.getMin());\n\t\t\t\t\tclusteredLight.max.copy(tempBox.getMax());\n\t\t\t\t\tlightIndex++;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tusedLights.length = lightIndex;\n\t}\n\tevaluateBounds() {\n\t\tconst usedLights = this._usedLights;\n\t\tconst min = this.boundsMin;\n\t\tconst max = this.boundsMax;\n\t\tif (usedLights.length > 1) {\n\t\t\tmin.copy(usedLights[1].min);\n\t\t\tmax.copy(usedLights[1].max);\n\t\t\tfor (let i = 2; i < usedLights.length; i++) {\n\t\t\t\tmin.min(usedLights[i].min);\n\t\t\t\tmax.max(usedLights[i].max);\n\t\t\t}\n\t\t} else {\n\t\t\tmin.set(0, 0, 0);\n\t\t\tmax.set(1, 1, 1);\n\t\t}\n\t\tthis.boundsDelta.sub2(max, min);\n\t\tthis.lightsBuffer.setBounds(min, this.boundsDelta);\n\t}\n\tevaluateCompressionLimits(gammaCorrection) {\n\t\tlet maxAttenuation = 0;\n\t\tlet maxColorValue = 0;\n\t\tconst usedLights = this._usedLights;\n\t\tfor (let i = 1; i < usedLights.length; i++) {\n\t\t\tconst light = usedLights[i].light;\n\t\t\tmaxAttenuation = Math.max(light.attenuationEnd, maxAttenuation);\n\t\t\tconst color = gammaCorrection ? light._linearFinalColor : light._finalColor;\n\t\t\tmaxColorValue = Math.max(color[0], maxColorValue);\n\t\t\tmaxColorValue = Math.max(color[1], maxColorValue);\n\t\t\tmaxColorValue = Math.max(color[2], maxColorValue);\n\t\t}\n\t\tthis._maxAttenuation = maxAttenuation + epsilon;\n\t\tthis._maxColorValue = maxColorValue + epsilon;\n\t\tthis.lightsBuffer.setCompressionRanges(this._maxAttenuation, this._maxColorValue);\n\t}\n\tupdateClusters(gammaCorrection) {\n\t\tthis.counts.fill(0);\n\t\tthis.clusters.fill(0);\n\t\tconst divX = this._cells.x;\n\t\tconst divZ = this._cells.z;\n\t\tconst counts = this.counts;\n\t\tconst limit = this._maxCellLightCount;\n\t\tconst clusters = this.clusters;\n\t\tconst pixelsPerCellCount = this.maxCellLightCount;\n\t\tconst usedLights = this._usedLights;\n\t\tfor (let i = 1; i < usedLights.length; i++) {\n\t\t\tconst clusteredLight = usedLights[i];\n\t\t\tconst light = clusteredLight.light;\n\t\t\tthis.lightsBuffer.addLightData(light, i, gammaCorrection);\n\t\t\tthis.evalLightCellMinMax(clusteredLight, tempMin3, tempMax3);\n\t\t\tconst xStart = tempMin3.x;\n\t\t\tconst xEnd = tempMax3.x;\n\t\t\tconst yStart = tempMin3.y;\n\t\t\tconst yEnd = tempMax3.y;\n\t\t\tconst zStart = tempMin3.z;\n\t\t\tconst zEnd = tempMax3.z;\n\t\t\tfor (let x = xStart; x <= xEnd; x++) {\n\t\t\t\tfor (let z = zStart; z <= zEnd; z++) {\n\t\t\t\t\tfor (let y = yStart; y <= yEnd; y++) {\n\t\t\t\t\t\tconst clusterIndex = x + divX * (z + y * divZ);\n\t\t\t\t\t\tconst count = counts[clusterIndex];\n\t\t\t\t\t\tif (count < limit) {\n\t\t\t\t\t\t\tclusters[pixelsPerCellCount * clusterIndex + count] = i;\n\t\t\t\t\t\t\tcounts[clusterIndex] = count + 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tupdate(lights, gammaCorrection, lightingParams) {\n\t\tthis.updateParams(lightingParams);\n\t\tthis.updateCells();\n\t\tthis.collectLights(lights);\n\t\tthis.evaluateBounds();\n\t\tthis.evaluateCompressionLimits(gammaCorrection);\n\t\tthis.updateClusters(gammaCorrection);\n\t\tthis.uploadTextures();\n\t}\n\tactivate() {\n\t\tthis.updateUniforms();\n\t}\n}\n\nclass ShadowMap {\n\tconstructor(texture, targets) {\n\t\tthis.texture = texture;\n\t\tthis.cached = false;\n\t\tthis.renderTargets = targets;\n\t}\n\tdestroy() {\n\t\tif (this.texture) {\n\t\t\tthis.texture.destroy();\n\t\t\tthis.texture = null;\n\t\t}\n\t\tconst targets = this.renderTargets;\n\t\tfor (let i = 0; i < targets.length; i++) {\n\t\t\ttargets[i].destroy();\n\t\t}\n\t\tthis.renderTargets.length = 0;\n\t}\n\tstatic getShadowFormat(device, shadowType) {\n\t\tif (shadowType === SHADOW_VSM32) {\n\t\t\treturn PIXELFORMAT_RGBA32F;\n\t\t} else if (shadowType === SHADOW_VSM16) {\n\t\t\treturn PIXELFORMAT_RGBA16F;\n\t\t} else if (shadowType === SHADOW_PCF5) {\n\t\t\treturn PIXELFORMAT_DEPTH;\n\t\t} else if ((shadowType === SHADOW_PCF1 || shadowType === SHADOW_PCF3) && device.supportsDepthShadow) {\n\t\t\treturn PIXELFORMAT_DEPTH;\n\t\t} else if (shadowType === SHADOW_PCSS && !device.isWebGL1) {\n\t\t\treturn PIXELFORMAT_R32F;\n\t\t}\n\t\treturn PIXELFORMAT_RGBA8;\n\t}\n\tstatic getShadowFiltering(device, shadowType) {\n\t\tif ((shadowType === SHADOW_PCF1 || shadowType === SHADOW_PCF3 || shadowType === SHADOW_PCSS) && !device.supportsDepthShadow) {\n\t\t\treturn FILTER_NEAREST;\n\t\t} else if (shadowType === SHADOW_VSM32) {\n\t\t\treturn device.extTextureFloatLinear ? FILTER_LINEAR : FILTER_NEAREST;\n\t\t} else if (shadowType === SHADOW_VSM16) {\n\t\t\treturn device.extTextureHalfFloatLinear ? FILTER_LINEAR : FILTER_NEAREST;\n\t\t}\n\t\treturn FILTER_LINEAR;\n\t}\n\tstatic create(device, light) {\n\t\tlet shadowMap = null;\n\t\tif (light._type === LIGHTTYPE_OMNI) {\n\t\t\tshadowMap = this.createCubemap(device, light._shadowResolution, light._shadowType);\n\t\t} else {\n\t\t\tshadowMap = this.create2dMap(device, light._shadowResolution, light._shadowType);\n\t\t}\n\t\treturn shadowMap;\n\t}\n\tstatic createAtlas(device, resolution, shadowType) {\n\t\tconst shadowMap = this.create2dMap(device, resolution, shadowType);\n\t\tconst targets = shadowMap.renderTargets;\n\t\tconst rt = targets[0];\n\t\tfor (let i = 0; i < 5; i++) {\n\t\t\ttargets.push(rt);\n\t\t}\n\t\treturn shadowMap;\n\t}\n\tstatic create2dMap(device, size, shadowType) {\n\t\tconst format = this.getShadowFormat(device, shadowType);\n\t\tconst filter = this.getShadowFiltering(device, shadowType);\n\t\tconst texture = new Texture(device, {\n\t\t\tformat: format,\n\t\t\twidth: size,\n\t\t\theight: size,\n\t\t\tmipmaps: false,\n\t\t\tminFilter: filter,\n\t\t\tmagFilter: filter,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\tname: 'ShadowMap2D'\n\t\t});\n\t\tlet target = null;\n\t\tif (shadowType === SHADOW_PCF5 || (shadowType === SHADOW_PCF1 || shadowType === SHADOW_PCF3) && device.supportsDepthShadow) {\n\t\t\ttexture.compareOnRead = true;\n\t\t\ttexture.compareFunc = FUNC_LESS;\n\t\t\ttarget = new RenderTarget({\n\t\t\t\tdepthBuffer: texture\n\t\t\t});\n\t\t} else {\n\t\t\ttarget = new RenderTarget({\n\t\t\t\tcolorBuffer: texture,\n\t\t\t\tdepth: true\n\t\t\t});\n\t\t}\n\t\tif (device.isWebGPU) {\n\t\t\ttarget.flipY = true;\n\t\t}\n\t\treturn new ShadowMap(texture, [target]);\n\t}\n\tstatic createCubemap(device, size, shadowType) {\n\t\tconst format = shadowType === SHADOW_PCSS && !device.isWebGL1 ? PIXELFORMAT_R32F : PIXELFORMAT_RGBA8;\n\t\tconst cubemap = new Texture(device, {\n\t\t\tformat: format,\n\t\t\twidth: size,\n\t\t\theight: size,\n\t\t\tcubemap: true,\n\t\t\tmipmaps: false,\n\t\t\tminFilter: FILTER_NEAREST,\n\t\t\tmagFilter: FILTER_NEAREST,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\tname: 'ShadowMapCube'\n\t\t});\n\t\tconst targets = [];\n\t\tfor (let i = 0; i < 6; i++) {\n\t\t\tconst target = new RenderTarget({\n\t\t\t\tcolorBuffer: cubemap,\n\t\t\t\tface: i,\n\t\t\t\tdepth: true\n\t\t\t});\n\t\t\ttargets.push(target);\n\t\t}\n\t\treturn new ShadowMap(cubemap, targets);\n\t}\n}\n\nconst _tempArray = [];\nconst _tempArray2 = [];\nconst _viewport$3 = new Vec4();\nconst _scissor = new Vec4();\nclass Slot {\n\tconstructor(rect) {\n\t\tthis.size = Math.floor(rect.w * 1024);\n\t\tthis.used = false;\n\t\tthis.lightId = -1;\n\t\tthis.rect = rect;\n\t}\n}\nclass LightTextureAtlas {\n\tconstructor(device) {\n\t\tthis.device = device;\n\t\tthis.version = 1;\n\t\tthis.shadowAtlasResolution = 2048;\n\t\tthis.shadowAtlas = null;\n\t\tthis.shadowEdgePixels = 3;\n\t\tthis.cookieAtlasResolution = 4;\n\t\tthis.cookieAtlas = new Texture(this.device, {\n\t\t\tname: 'CookieAtlas',\n\t\t\twidth: this.cookieAtlasResolution,\n\t\t\theight: this.cookieAtlasResolution,\n\t\t\tformat: PIXELFORMAT_RGBA8,\n\t\t\tcubemap: false,\n\t\t\tmipmaps: false,\n\t\t\tminFilter: FILTER_NEAREST,\n\t\t\tmagFilter: FILTER_NEAREST,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE\n\t\t});\n\t\tthis.cookieRenderTarget = new RenderTarget({\n\t\t\tcolorBuffer: this.cookieAtlas,\n\t\t\tdepth: false,\n\t\t\tflipY: true\n\t\t});\n\t\tthis.slots = [];\n\t\tthis.atlasSplit = [];\n\t\tthis.cubeSlotsOffsets = [new Vec2(0, 0), new Vec2(0, 1), new Vec2(1, 0), new Vec2(1, 1), new Vec2(2, 0), new Vec2(2, 1)];\n\t\tthis.scissorVec = new Vec4();\n\t\tthis.allocateShadowAtlas(1);\n\t\tthis.allocateCookieAtlas(1);\n\t\tthis.allocateUniforms();\n\t}\n\tdestroy() {\n\t\tthis.destroyShadowAtlas();\n\t\tthis.destroyCookieAtlas();\n\t}\n\tdestroyShadowAtlas() {\n\t\tvar _this$shadowAtlas;\n\t\t(_this$shadowAtlas = this.shadowAtlas) == null || _this$shadowAtlas.destroy();\n\t\tthis.shadowAtlas = null;\n\t}\n\tdestroyCookieAtlas() {\n\t\tvar _this$cookieAtlas, _this$cookieRenderTar;\n\t\t(_this$cookieAtlas = this.cookieAtlas) == null || _this$cookieAtlas.destroy();\n\t\tthis.cookieAtlas = null;\n\t\t(_this$cookieRenderTar = this.cookieRenderTarget) == null || _this$cookieRenderTar.destroy();\n\t\tthis.cookieRenderTarget = null;\n\t}\n\tallocateShadowAtlas(resolution) {\n\t\tif (!this.shadowAtlas || this.shadowAtlas.texture.width !== resolution) {\n\t\t\tthis.version++;\n\t\t\tthis.destroyShadowAtlas();\n\t\t\tthis.shadowAtlas = ShadowMap.createAtlas(this.device, resolution, SHADOW_PCF3);\n\t\t\tthis.shadowAtlas.cached = true;\n\t\t\tconst scissorOffset = 4 / this.shadowAtlasResolution;\n\t\t\tthis.scissorVec.set(scissorOffset, scissorOffset, -2 * scissorOffset, -2 * scissorOffset);\n\t\t}\n\t}\n\tallocateCookieAtlas(resolution) {\n\t\tif (this.cookieAtlas.width !== resolution) {\n\t\t\tthis.cookieRenderTarget.resize(resolution, resolution);\n\t\t\tthis.version++;\n\t\t}\n\t}\n\tallocateUniforms() {\n\t\tthis._shadowAtlasTextureId = this.device.scope.resolve('shadowAtlasTexture');\n\t\tthis._shadowAtlasParamsId = this.device.scope.resolve('shadowAtlasParams');\n\t\tthis._shadowAtlasParams = new Float32Array(2);\n\t\tthis._cookieAtlasTextureId = this.device.scope.resolve('cookieAtlasTexture');\n\t}\n\tupdateUniforms() {\n\t\tconst isShadowFilterPcf = true;\n\t\tconst rt = this.shadowAtlas.renderTargets[0];\n\t\tconst isDepthShadow = !this.device.isWebGL1 && isShadowFilterPcf;\n\t\tconst shadowBuffer = isDepthShadow ? rt.depthBuffer : rt.colorBuffer;\n\t\tthis._shadowAtlasTextureId.setValue(shadowBuffer);\n\t\tthis._shadowAtlasParams[0] = this.shadowAtlasResolution;\n\t\tthis._shadowAtlasParams[1] = this.shadowEdgePixels;\n\t\tthis._shadowAtlasParamsId.setValue(this._shadowAtlasParams);\n\t\tthis._cookieAtlasTextureId.setValue(this.cookieAtlas);\n\t}\n\tsubdivide(numLights, lightingParams) {\n\t\tlet atlasSplit = lightingParams.atlasSplit;\n\t\tif (!atlasSplit) {\n\t\t\tconst gridSize = Math.ceil(Math.sqrt(numLights));\n\t\t\tatlasSplit = _tempArray2;\n\t\t\tatlasSplit[0] = gridSize;\n\t\t\tatlasSplit.length = 1;\n\t\t}\n\t\tconst arraysEqual = (a, b) => a.length === b.length && a.every((v, i) => v === b[i]);\n\t\tif (!arraysEqual(atlasSplit, this.atlasSplit)) {\n\t\t\tthis.version++;\n\t\t\tthis.slots.length = 0;\n\t\t\tthis.atlasSplit.length = 0;\n\t\t\tthis.atlasSplit.push(...atlasSplit);\n\t\t\tconst splitCount = this.atlasSplit[0];\n\t\t\tif (splitCount > 1) {\n\t\t\t\tconst invSize = 1 / splitCount;\n\t\t\t\tfor (let i = 0; i < splitCount; i++) {\n\t\t\t\t\tfor (let j = 0; j < splitCount; j++) {\n\t\t\t\t\t\tconst rect = new Vec4(i * invSize, j * invSize, invSize, invSize);\n\t\t\t\t\t\tconst nextLevelSplit = this.atlasSplit[1 + i * splitCount + j];\n\t\t\t\t\t\tif (nextLevelSplit > 1) {\n\t\t\t\t\t\t\tfor (let x = 0; x < nextLevelSplit; x++) {\n\t\t\t\t\t\t\t\tfor (let y = 0; y < nextLevelSplit; y++) {\n\t\t\t\t\t\t\t\t\tconst invSizeNext = invSize / nextLevelSplit;\n\t\t\t\t\t\t\t\t\tconst rectNext = new Vec4(rect.x + x * invSizeNext, rect.y + y * invSizeNext, invSizeNext, invSizeNext);\n\t\t\t\t\t\t\t\t\tthis.slots.push(new Slot(rectNext));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.slots.push(new Slot(rect));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.slots.push(new Slot(new Vec4(0, 0, 1, 1)));\n\t\t\t}\n\t\t\tthis.slots.sort((a, b) => {\n\t\t\t\treturn b.size - a.size;\n\t\t\t});\n\t\t}\n\t}\n\tcollectLights(localLights, lightingParams) {\n\t\tconst cookiesEnabled = lightingParams.cookiesEnabled;\n\t\tconst shadowsEnabled = lightingParams.shadowsEnabled;\n\t\tlet needsShadowAtlas = false;\n\t\tlet needsCookieAtlas = false;\n\t\tconst lights = _tempArray;\n\t\tlights.length = 0;\n\t\tconst processLights = list => {\n\t\t\tfor (let i = 0; i < list.length; i++) {\n\t\t\t\tconst light = list[i];\n\t\t\t\tif (light.visibleThisFrame) {\n\t\t\t\t\tconst lightShadow = shadowsEnabled && light.castShadows;\n\t\t\t\t\tconst lightCookie = cookiesEnabled && !!light.cookie;\n\t\t\t\t\tneedsShadowAtlas || (needsShadowAtlas = lightShadow);\n\t\t\t\t\tneedsCookieAtlas || (needsCookieAtlas = lightCookie);\n\t\t\t\t\tif (lightShadow || lightCookie) {\n\t\t\t\t\t\tlights.push(light);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tif (cookiesEnabled || shadowsEnabled) {\n\t\t\tprocessLights(localLights);\n\t\t}\n\t\tlights.sort((a, b) => {\n\t\t\treturn b.maxScreenSize - a.maxScreenSize;\n\t\t});\n\t\tif (needsShadowAtlas) {\n\t\t\tthis.allocateShadowAtlas(this.shadowAtlasResolution);\n\t\t}\n\t\tif (needsCookieAtlas) {\n\t\t\tthis.allocateCookieAtlas(this.cookieAtlasResolution);\n\t\t}\n\t\tif (needsShadowAtlas || needsCookieAtlas) {\n\t\t\tthis.subdivide(lights.length, lightingParams);\n\t\t}\n\t\treturn lights;\n\t}\n\tsetupSlot(light, rect) {\n\t\tlight.atlasViewport.copy(rect);\n\t\tconst faceCount = light.numShadowFaces;\n\t\tfor (let face = 0; face < faceCount; face++) {\n\t\t\tif (light.castShadows || light._cookie) {\n\t\t\t\t_viewport$3.copy(rect);\n\t\t\t\t_scissor.copy(rect);\n\t\t\t\tif (light._type === LIGHTTYPE_SPOT) {\n\t\t\t\t\t_viewport$3.add(this.scissorVec);\n\t\t\t\t}\n\t\t\t\tif (light._type === LIGHTTYPE_OMNI) {\n\t\t\t\t\tconst smallSize = _viewport$3.z / 3;\n\t\t\t\t\tconst offset = this.cubeSlotsOffsets[face];\n\t\t\t\t\t_viewport$3.x += smallSize * offset.x;\n\t\t\t\t\t_viewport$3.y += smallSize * offset.y;\n\t\t\t\t\t_viewport$3.z = smallSize;\n\t\t\t\t\t_viewport$3.w = smallSize;\n\t\t\t\t\t_scissor.copy(_viewport$3);\n\t\t\t\t}\n\t\t\t\tif (light.castShadows) {\n\t\t\t\t\tconst lightRenderData = light.getRenderData(null, face);\n\t\t\t\t\tlightRenderData.shadowViewport.copy(_viewport$3);\n\t\t\t\t\tlightRenderData.shadowScissor.copy(_scissor);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tassignSlot(light, slotIndex, slotReassigned) {\n\t\tlight.atlasViewportAllocated = true;\n\t\tconst slot = this.slots[slotIndex];\n\t\tslot.lightId = light.id;\n\t\tslot.used = true;\n\t\tif (slotReassigned) {\n\t\t\tlight.atlasSlotUpdated = true;\n\t\t\tlight.atlasVersion = this.version;\n\t\t\tlight.atlasSlotIndex = slotIndex;\n\t\t}\n\t}\n\tupdate(localLights, lightingParams) {\n\t\tthis.shadowAtlasResolution = lightingParams.shadowAtlasResolution;\n\t\tthis.cookieAtlasResolution = lightingParams.cookieAtlasResolution;\n\t\tconst lights = this.collectLights(localLights, lightingParams);\n\t\tif (lights.length > 0) {\n\t\t\tconst slots = this.slots;\n\t\t\tfor (let i = 0; i < slots.length; i++) {\n\t\t\t\tslots[i].used = false;\n\t\t\t}\n\t\t\tconst assignCount = Math.min(lights.length, slots.length);\n\t\t\tfor (let i = 0; i < assignCount; i++) {\n\t\t\t\tconst light = lights[i];\n\t\t\t\tif (light.castShadows) {\n\t\t\t\t\tlight._shadowMap = this.shadowAtlas;\n\t\t\t\t}\n\t\t\t\tconst previousSlot = slots[light.atlasSlotIndex];\n\t\t\t\tif (light.atlasVersion === this.version && light.id === (previousSlot == null ? void 0 : previousSlot.lightId)) {\n\t\t\t\t\tconst _previousSlot = slots[light.atlasSlotIndex];\n\t\t\t\t\tif (_previousSlot.size === slots[i].size && !_previousSlot.used) {\n\t\t\t\t\t\tthis.assignSlot(light, light.atlasSlotIndex, false);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet usedCount = 0;\n\t\t\tfor (let i = 0; i < assignCount; i++) {\n\t\t\t\twhile (usedCount < slots.length && slots[usedCount].used) {\n\t\t\t\t\tusedCount++;\n\t\t\t\t}\n\t\t\t\tconst light = lights[i];\n\t\t\t\tif (!light.atlasViewportAllocated) {\n\t\t\t\t\tthis.assignSlot(light, usedCount, true);\n\t\t\t\t}\n\t\t\t\tconst slot = slots[light.atlasSlotIndex];\n\t\t\t\tthis.setupSlot(light, slot.rect);\n\t\t\t}\n\t\t}\n\t\tthis.updateUniforms();\n\t}\n}\n\nconst lightCubeDir = [new Vec3(-1, 0, 0), new Vec3(1, 0, 0), new Vec3(0, -1, 0), new Vec3(0, 1, 0), new Vec3(0, 0, -1), new Vec3(0, 0, 1)];\nclass LightCube {\n\tconstructor() {\n\t\tthis.colors = new Float32Array(6 * 3);\n\t}\n\tupdate(ambientLight, lights) {\n\t\tconst colors = this.colors;\n\t\tconst {\n\t\t\tr,\n\t\t\tg,\n\t\t\tb\n\t\t} = ambientLight;\n\t\tfor (let j = 0; j < 6; j++) {\n\t\t\tcolors[j * 3] = r;\n\t\t\tcolors[j * 3 + 1] = g;\n\t\t\tcolors[j * 3 + 2] = b;\n\t\t}\n\t\tfor (let j = 0; j < lights.length; j++) {\n\t\t\tconst light = lights[j];\n\t\t\tif (light._type === LIGHTTYPE_DIRECTIONAL) {\n\t\t\t\tfor (let c = 0; c < 6; c++) {\n\t\t\t\t\tconst weight = Math.max(lightCubeDir[c].dot(light._direction), 0) * light._intensity;\n\t\t\t\t\tconst lightColor = light._color;\n\t\t\t\t\tcolors[c * 3] += lightColor.r * weight;\n\t\t\t\t\tcolors[c * 3 + 1] += lightColor.g * weight;\n\t\t\t\t\tcolors[c * 3 + 2] += lightColor.b * weight;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nclass ShadowMapCache {\n\tconstructor() {\n\t\tthis.cache = new Map();\n\t}\n\tdestroy() {\n\t\tthis.clear();\n\t\tthis.cache = null;\n\t}\n\tclear() {\n\t\tthis.cache.forEach(shadowMaps => {\n\t\t\tshadowMaps.forEach(shadowMap => {\n\t\t\t\tshadowMap.destroy();\n\t\t\t});\n\t\t});\n\t\tthis.cache.clear();\n\t}\n\tgetKey(light) {\n\t\tconst isCubeMap = light._type === LIGHTTYPE_OMNI;\n\t\tconst shadowType = light._shadowType;\n\t\tconst resolution = light._shadowResolution;\n\t\treturn `${isCubeMap}-${shadowType}-${resolution}`;\n\t}\n\tget(device, light) {\n\t\tconst key = this.getKey(light);\n\t\tconst shadowMaps = this.cache.get(key);\n\t\tif (shadowMaps && shadowMaps.length) {\n\t\t\treturn shadowMaps.pop();\n\t\t}\n\t\tconst shadowMap = ShadowMap.create(device, light);\n\t\tshadowMap.cached = true;\n\t\treturn shadowMap;\n\t}\n\tadd(light, shadowMap) {\n\t\tconst key = this.getKey(light);\n\t\tconst shadowMaps = this.cache.get(key);\n\t\tif (shadowMaps) {\n\t\t\tshadowMaps.push(shadowMap);\n\t\t} else {\n\t\t\tthis.cache.set(key, [shadowMap]);\n\t\t}\n\t}\n}\n\nclass RenderPassShadowLocalNonClustered extends RenderPass {\n\tconstructor(device, shadowRenderer, light, face, applyVsm) {\n\t\tsuper(device);\n\t\tthis.requiresCubemaps = false;\n\t\tthis.shadowRenderer = shadowRenderer;\n\t\tthis.light = light;\n\t\tthis.face = face;\n\t\tthis.applyVsm = applyVsm;\n\t\tthis.shadowCamera = shadowRenderer.prepareFace(light, null, face);\n\t\tshadowRenderer.setupRenderPass(this, this.shadowCamera, true);\n\t}\n\texecute() {\n\t\tthis.shadowRenderer.renderFace(this.light, null, this.face, false);\n\t}\n\tafter() {\n\t\tif (this.applyVsm) {\n\t\t\tthis.shadowRenderer.renderVsm(this.light, this.shadowCamera);\n\t\t}\n\t}\n}\n\nclass ShadowRendererLocal {\n\tconstructor(renderer, shadowRenderer) {\n\t\tthis.shadowLights = [];\n\t\tthis.renderer = void 0;\n\t\tthis.shadowRenderer = void 0;\n\t\tthis.device = void 0;\n\t\tthis.renderer = renderer;\n\t\tthis.shadowRenderer = shadowRenderer;\n\t\tthis.device = renderer.device;\n\t}\n\tcull(light, comp, casters = null) {\n\t\tconst isClustered = this.renderer.scene.clusteredLightingEnabled;\n\t\tlight.visibleThisFrame = true;\n\t\tif (!isClustered) {\n\t\t\tif (!light._shadowMap) {\n\t\t\t\tlight._shadowMap = ShadowMap.create(this.device, light);\n\t\t\t}\n\t\t}\n\t\tconst type = light._type;\n\t\tconst faceCount = type === LIGHTTYPE_SPOT ? 1 : 6;\n\t\tfor (let face = 0; face < faceCount; face++) {\n\t\t\tconst lightRenderData = light.getRenderData(null, face);\n\t\t\tconst shadowCam = lightRenderData.shadowCamera;\n\t\t\tshadowCam.nearClip = light.attenuationEnd / 1000;\n\t\t\tshadowCam.farClip = light.attenuationEnd;\n\t\t\tlightRenderData.depthRangeCompensation = shadowCam.farClip - shadowCam.nearClip;\n\t\t\tconst shadowCamNode = shadowCam._node;\n\t\t\tconst lightNode = light._node;\n\t\t\tshadowCamNode.setPosition(lightNode.getPosition());\n\t\t\tif (type === LIGHTTYPE_SPOT) {\n\t\t\t\tshadowCam.fov = light._outerConeAngle * 2;\n\t\t\t\tshadowCamNode.setRotation(lightNode.getRotation());\n\t\t\t\tshadowCamNode.rotateLocal(-90, 0, 0);\n\t\t\t} else if (type === LIGHTTYPE_OMNI) {\n\t\t\t\tif (isClustered) {\n\t\t\t\t\tconst tileSize = this.shadowRenderer.lightTextureAtlas.shadowAtlasResolution * light.atlasViewport.z / 3;\n\t\t\t\t\tconst texelSize = 2 / tileSize;\n\t\t\t\t\tconst filterSize = texelSize * this.shadowRenderer.lightTextureAtlas.shadowEdgePixels;\n\t\t\t\t\tshadowCam.fov = Math.atan(1 + filterSize) * math.RAD_TO_DEG * 2;\n\t\t\t\t} else {\n\t\t\t\t\tshadowCam.fov = 90;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.renderer.updateCameraFrustum(shadowCam);\n\t\t\tthis.shadowRenderer.cullShadowCasters(comp, light, lightRenderData.visibleCasters, shadowCam, casters);\n\t\t}\n\t}\n\tprepareLights(shadowLights, lights) {\n\t\tlet shadowCamera;\n\t\tfor (let i = 0; i < lights.length; i++) {\n\t\t\tconst light = lights[i];\n\t\t\tif (this.shadowRenderer.needsShadowRendering(light) && light.atlasViewportAllocated) {\n\t\t\t\tshadowLights.push(light);\n\t\t\t\tfor (let face = 0; face < light.numShadowFaces; face++) {\n\t\t\t\t\tshadowCamera = this.shadowRenderer.prepareFace(light, null, face);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn shadowCamera;\n\t}\n\tbuildNonClusteredRenderPasses(frameGraph, localLights) {\n\t\tfor (let i = 0; i < localLights.length; i++) {\n\t\t\tconst light = localLights[i];\n\t\t\tif (this.shadowRenderer.needsShadowRendering(light)) {\n\t\t\t\tconst applyVsm = light._type === LIGHTTYPE_SPOT;\n\t\t\t\tconst faceCount = light.numShadowFaces;\n\t\t\t\tfor (let face = 0; face < faceCount; face++) {\n\t\t\t\t\tconst renderPass = new RenderPassShadowLocalNonClustered(this.device, this.shadowRenderer, light, face, applyVsm);\n\t\t\t\t\tframeGraph.addRenderPass(renderPass);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nclass RenderPassShadowDirectional extends RenderPass {\n\tconstructor(device, shadowRenderer, light, camera, allCascadesRendering) {\n\t\tsuper(device);\n\t\tthis.shadowRenderer = shadowRenderer;\n\t\tthis.light = light;\n\t\tthis.camera = camera;\n\t\tthis.allCascadesRendering = allCascadesRendering;\n\t}\n\texecute() {\n\t\tconst {\n\t\t\tlight,\n\t\t\tcamera,\n\t\t\tshadowRenderer,\n\t\t\tallCascadesRendering\n\t\t} = this;\n\t\tconst faceCount = light.numShadowFaces;\n\t\tconst shadowUpdateOverrides = light.shadowUpdateOverrides;\n\t\tfor (let face = 0; face < faceCount; face++) {\n\t\t\tif ((shadowUpdateOverrides == null ? void 0 : shadowUpdateOverrides[face]) !== SHADOWUPDATE_NONE) {\n\t\t\t\tshadowRenderer.renderFace(light, camera, face, !allCascadesRendering);\n\t\t\t}\n\t\t\tif ((shadowUpdateOverrides == null ? void 0 : shadowUpdateOverrides[face]) === SHADOWUPDATE_THISFRAME) {\n\t\t\t\tshadowUpdateOverrides[face] = SHADOWUPDATE_NONE;\n\t\t\t}\n\t\t}\n\t}\n\tafter() {\n\t\tthis.shadowRenderer.renderVsm(this.light, this.camera);\n\t}\n}\n\nconst visibleSceneAabb = new BoundingBox();\nconst center = new Vec3();\nconst shadowCamView$1 = new Mat4();\nconst aabbPoints = [new Vec3(), new Vec3(), new Vec3(), new Vec3(), new Vec3(), new Vec3(), new Vec3(), new Vec3()];\nconst _depthRange = {\n\tmin: 0,\n\tmax: 0\n};\nfunction getDepthRange(cameraViewMatrix, aabbMin, aabbMax) {\n\taabbPoints[0].x = aabbPoints[1].x = aabbPoints[2].x = aabbPoints[3].x = aabbMin.x;\n\taabbPoints[1].y = aabbPoints[3].y = aabbPoints[7].y = aabbPoints[5].y = aabbMin.y;\n\taabbPoints[2].z = aabbPoints[3].z = aabbPoints[6].z = aabbPoints[7].z = aabbMin.z;\n\taabbPoints[4].x = aabbPoints[5].x = aabbPoints[6].x = aabbPoints[7].x = aabbMax.x;\n\taabbPoints[0].y = aabbPoints[2].y = aabbPoints[4].y = aabbPoints[6].y = aabbMax.y;\n\taabbPoints[0].z = aabbPoints[1].z = aabbPoints[4].z = aabbPoints[5].z = aabbMax.z;\n\tlet minz = 9999999999;\n\tlet maxz = -9999999999;\n\tfor (let i = 0; i < 8; ++i) {\n\t\tcameraViewMatrix.transformPoint(aabbPoints[i], aabbPoints[i]);\n\t\tconst z = aabbPoints[i].z;\n\t\tif (z < minz) minz = z;\n\t\tif (z > maxz) maxz = z;\n\t}\n\t_depthRange.min = minz;\n\t_depthRange.max = maxz;\n\treturn _depthRange;\n}\nclass ShadowRendererDirectional {\n\tconstructor(renderer, shadowRenderer) {\n\t\tthis.renderer = void 0;\n\t\tthis.shadowRenderer = void 0;\n\t\tthis.device = void 0;\n\t\tthis.renderer = renderer;\n\t\tthis.shadowRenderer = shadowRenderer;\n\t\tthis.device = renderer.device;\n\t}\n\tcull(light, comp, camera, casters = null) {\n\t\tlight.visibleThisFrame = true;\n\t\tif (!light._shadowMap) {\n\t\t\tlight._shadowMap = ShadowMap.create(this.device, light);\n\t\t}\n\t\tconst nearDist = camera._nearClip;\n\t\tthis.generateSplitDistances(light, nearDist, Math.min(camera._farClip, light.shadowDistance));\n\t\tconst shadowUpdateOverrides = light.shadowUpdateOverrides;\n\t\tfor (let cascade = 0; cascade < light.numCascades; cascade++) {\n\t\t\tif ((shadowUpdateOverrides == null ? void 0 : shadowUpdateOverrides[cascade]) === SHADOWUPDATE_NONE) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tconst lightRenderData = light.getRenderData(camera, cascade);\n\t\t\tconst shadowCam = lightRenderData.shadowCamera;\n\t\t\tshadowCam.renderTarget = light._shadowMap.renderTargets[0];\n\t\t\tlightRenderData.shadowViewport.copy(light.cascades[cascade]);\n\t\t\tlightRenderData.shadowScissor.copy(light.cascades[cascade]);\n\t\t\tconst shadowCamNode = shadowCam._node;\n\t\t\tconst lightNode = light._node;\n\t\t\tshadowCamNode.setPosition(lightNode.getPosition());\n\t\t\tshadowCamNode.setRotation(lightNode.getRotation());\n\t\t\tshadowCamNode.rotateLocal(-90, 0, 0);\n\t\t\tconst frustumNearDist = cascade === 0 ? nearDist : light._shadowCascadeDistances[cascade - 1];\n\t\t\tconst frustumFarDist = light._shadowCascadeDistances[cascade];\n\t\t\tconst frustumPoints = camera.getFrustumCorners(frustumNearDist, frustumFarDist);\n\t\t\tcenter.set(0, 0, 0);\n\t\t\tconst cameraWorldMat = camera.node.getWorldTransform();\n\t\t\tfor (let i = 0; i < 8; i++) {\n\t\t\t\tcameraWorldMat.transformPoint(frustumPoints[i], frustumPoints[i]);\n\t\t\t\tcenter.add(frustumPoints[i]);\n\t\t\t}\n\t\t\tcenter.mulScalar(1 / 8);\n\t\t\tlet radius = 0;\n\t\t\tfor (let i = 0; i < 8; i++) {\n\t\t\t\tconst dist = frustumPoints[i].sub(center).length();\n\t\t\t\tif (dist > radius) {\n\t\t\t\t\tradius = dist;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst right = shadowCamNode.right;\n\t\t\tconst up = shadowCamNode.up;\n\t\t\tconst lightDir = shadowCamNode.forward;\n\t\t\tconst sizeRatio = 0.25 * light._shadowResolution / radius;\n\t\t\tconst x = Math.ceil(center.dot(up) * sizeRatio) / sizeRatio;\n\t\t\tconst y = Math.ceil(center.dot(right) * sizeRatio) / sizeRatio;\n\t\t\tconst scaledUp = up.mulScalar(x);\n\t\t\tconst scaledRight = right.mulScalar(y);\n\t\t\tconst dot = center.dot(lightDir);\n\t\t\tconst scaledDir = lightDir.mulScalar(dot);\n\t\t\tcenter.add2(scaledUp, scaledRight).add(scaledDir);\n\t\t\tshadowCamNode.setPosition(center);\n\t\t\tshadowCamNode.translateLocal(0, 0, 1000000);\n\t\t\tshadowCam.nearClip = 0.01;\n\t\t\tshadowCam.farClip = 2000000;\n\t\t\tshadowCam.orthoHeight = radius;\n\t\t\tthis.renderer.updateCameraFrustum(shadowCam);\n\t\t\tthis.shadowRenderer.cullShadowCasters(comp, light, lightRenderData.visibleCasters, shadowCam, casters);\n\t\t\tlet emptyAabb = true;\n\t\t\tconst visibleCasters = lightRenderData.visibleCasters;\n\t\t\tfor (let i = 0; i < visibleCasters.length; i++) {\n\t\t\t\tconst meshInstance = visibleCasters[i];\n\t\t\t\tif (emptyAabb) {\n\t\t\t\t\temptyAabb = false;\n\t\t\t\t\tvisibleSceneAabb.copy(meshInstance.aabb);\n\t\t\t\t} else {\n\t\t\t\t\tvisibleSceneAabb.add(meshInstance.aabb);\n\t\t\t\t}\n\t\t\t}\n\t\t\tshadowCamView$1.copy(shadowCamNode.getWorldTransform()).invert();\n\t\t\tconst depthRange = getDepthRange(shadowCamView$1, visibleSceneAabb.getMin(), visibleSceneAabb.getMax());\n\t\t\tshadowCamNode.translateLocal(0, 0, depthRange.max + 0.1);\n\t\t\tshadowCam.farClip = depthRange.max - depthRange.min + 0.2;\n\t\t\tlightRenderData.depthRangeCompensation = shadowCam.farClip;\n\t\t\tlightRenderData.projectionCompensation = radius;\n\t\t}\n\t}\n\tgenerateSplitDistances(light, nearDist, farDist) {\n\t\tlight._shadowCascadeDistances.fill(farDist);\n\t\tfor (let i = 1; i < light.numCascades; i++) {\n\t\t\tconst fraction = i / light.numCascades;\n\t\t\tconst linearDist = nearDist + (farDist - nearDist) * fraction;\n\t\t\tconst logDist = nearDist * (farDist / nearDist) ** fraction;\n\t\t\tconst dist = math.lerp(linearDist, logDist, light.cascadeDistribution);\n\t\t\tlight._shadowCascadeDistances[i - 1] = dist;\n\t\t}\n\t}\n\tgetLightRenderPass(light, camera) {\n\t\tlet renderPass = null;\n\t\tif (this.shadowRenderer.needsShadowRendering(light)) {\n\t\t\tconst faceCount = light.numShadowFaces;\n\t\t\tconst shadowUpdateOverrides = light.shadowUpdateOverrides;\n\t\t\tlet allCascadesRendering = true;\n\t\t\tlet shadowCamera;\n\t\t\tfor (let face = 0; face < faceCount; face++) {\n\t\t\t\tif ((shadowUpdateOverrides == null ? void 0 : shadowUpdateOverrides[face]) === SHADOWUPDATE_NONE) {\n\t\t\t\t\tallCascadesRendering = false;\n\t\t\t\t}\n\t\t\t\tshadowCamera = this.shadowRenderer.prepareFace(light, camera, face);\n\t\t\t}\n\t\t\trenderPass = new RenderPassShadowDirectional(this.device, this.shadowRenderer, light, camera, allCascadesRendering);\n\t\t\tthis.shadowRenderer.setupRenderPass(renderPass, shadowCamera, allCascadesRendering);\n\t\t}\n\t\treturn renderPass;\n\t}\n}\n\nfunction gauss(x, sigma) {\n\treturn Math.exp(-(x * x) / (2.0 * sigma * sigma));\n}\nfunction gaussWeights(kernelSize) {\n\tconst sigma = (kernelSize - 1) / (2 * 3);\n\tconst halfWidth = (kernelSize - 1) * 0.5;\n\tconst values = new Array(kernelSize);\n\tlet sum = 0.0;\n\tfor (let i = 0; i < kernelSize; ++i) {\n\t\tvalues[i] = gauss(i - halfWidth, sigma);\n\t\tsum += values[i];\n\t}\n\tfor (let i = 0; i < kernelSize; ++i) {\n\t\tvalues[i] /= sum;\n\t}\n\treturn values;\n}\nconst tempSet$1 = new Set();\nconst shadowCamView = new Mat4();\nconst shadowCamViewProj = new Mat4();\nconst pixelOffset = new Float32Array(2);\nconst blurScissorRect = new Vec4(1, 1, 0, 0);\nconst viewportMatrix = new Mat4();\nclass ShadowRenderer {\n\tconstructor(renderer, lightTextureAtlas) {\n\t\tthis.shadowPassCache = [];\n\t\tthis.device = renderer.device;\n\t\tthis.renderer = renderer;\n\t\tthis.lightTextureAtlas = lightTextureAtlas;\n\t\tconst scope = this.device.scope;\n\t\tthis.polygonOffsetId = scope.resolve('polygonOffset');\n\t\tthis.polygonOffset = new Float32Array(2);\n\t\tthis.sourceId = scope.resolve('source');\n\t\tthis.pixelOffsetId = scope.resolve('pixelOffset');\n\t\tthis.weightId = scope.resolve('weight[0]');\n\t\tthis.blurVsmShaderCode = [shaderChunks.blurVSMPS, `#define GAUSS\\n${shaderChunks.blurVSMPS}`];\n\t\tconst packed = '#define PACKED\\n';\n\t\tthis.blurPackedVsmShaderCode = [packed + this.blurVsmShaderCode[0], packed + this.blurVsmShaderCode[1]];\n\t\tthis.blurVsmShader = [{}, {}];\n\t\tthis.blurPackedVsmShader = [{}, {}];\n\t\tthis.blurVsmWeights = {};\n\t\tthis.shadowMapLightRadiusId = scope.resolve('light_radius');\n\t\tthis.viewUniformFormat = null;\n\t\tthis.viewBindGroupFormat = null;\n\t\tthis.blendStateWrite = new BlendState();\n\t\tthis.blendStateNoWrite = new BlendState();\n\t\tthis.blendStateNoWrite.setColorWrite(false, false, false, false);\n\t}\n\tstatic createShadowCamera(device, shadowType, type, face) {\n\t\tconst shadowCam = LightCamera.create('ShadowCamera', type, face);\n\t\tif (shadowType >= SHADOW_VSM8 && shadowType <= SHADOW_VSM32) {\n\t\t\tshadowCam.clearColor = new Color(0, 0, 0, 0);\n\t\t} else {\n\t\t\tshadowCam.clearColor = new Color(1, 1, 1, 1);\n\t\t}\n\t\tshadowCam.clearDepthBuffer = true;\n\t\tshadowCam.clearStencilBuffer = false;\n\t\treturn shadowCam;\n\t}\n\tstatic setShadowCameraSettings(shadowCam, device, shadowType, type, isClustered) {\n\t\tlet hwPcf = shadowType === SHADOW_PCF5 || (shadowType === SHADOW_PCF1 || shadowType === SHADOW_PCF3) && device.supportsDepthShadow;\n\t\tif (type === LIGHTTYPE_OMNI && !isClustered) {\n\t\t\thwPcf = false;\n\t\t}\n\t\tshadowCam.clearColorBuffer = !hwPcf;\n\t}\n\t_cullShadowCastersInternal(meshInstances, visible, camera) {\n\t\tconst numInstances = meshInstances.length;\n\t\tfor (let i = 0; i < numInstances; i++) {\n\t\t\tconst meshInstance = meshInstances[i];\n\t\t\tif (meshInstance.castShadow) {\n\t\t\t\tif (!meshInstance.cull || meshInstance._isVisible(camera)) {\n\t\t\t\t\tmeshInstance.visibleThisFrame = true;\n\t\t\t\t\tvisible.push(meshInstance);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tcullShadowCasters(comp, light, visible, camera, casters) {\n\t\tvisible.length = 0;\n\t\tif (casters) {\n\t\t\tthis._cullShadowCastersInternal(casters, visible, camera);\n\t\t} else {\n\t\t\tconst layers = comp.layerList;\n\t\t\tconst len = layers.length;\n\t\t\tfor (let i = 0; i < len; i++) {\n\t\t\t\tconst layer = layers[i];\n\t\t\t\tif (layer._lightsSet.has(light)) {\n\t\t\t\t\tif (!tempSet$1.has(layer)) {\n\t\t\t\t\t\ttempSet$1.add(layer);\n\t\t\t\t\t\tthis._cullShadowCastersInternal(layer.shadowCasters, visible, camera);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\ttempSet$1.clear();\n\t\t}\n\t\tvisible.sort(this.renderer.sortCompareDepth);\n\t}\n\tsetupRenderState(device, light) {\n\t\tif (device.isWebGL1 && device.extStandardDerivatives) {\n\t\t\tif (light._type === LIGHTTYPE_OMNI) {\n\t\t\t\tthis.polygonOffset[0] = 0;\n\t\t\t\tthis.polygonOffset[1] = 0;\n\t\t\t\tthis.polygonOffsetId.setValue(this.polygonOffset);\n\t\t\t} else {\n\t\t\t\tthis.polygonOffset[0] = light.shadowBias * -1000.0;\n\t\t\t\tthis.polygonOffset[1] = light.shadowBias * -1000.0;\n\t\t\t\tthis.polygonOffsetId.setValue(this.polygonOffset);\n\t\t\t}\n\t\t}\n\t\tconst isClustered = this.renderer.scene.clusteredLightingEnabled;\n\t\tconst gpuOrGl2 = device.isWebGL2 || device.isWebGPU;\n\t\tconst useShadowSampler = isClustered ? light._isPcf && gpuOrGl2 : light._isPcf && gpuOrGl2 && light._type !== LIGHTTYPE_OMNI;\n\t\tdevice.setBlendState(useShadowSampler ? this.blendStateNoWrite : this.blendStateWrite);\n\t\tdevice.setDepthState(light.shadowDepthState);\n\t\tdevice.setStencilState(null, null);\n\t}\n\tdispatchUniforms(light, shadowCam, lightRenderData, face) {\n\t\tconst shadowCamNode = shadowCam._node;\n\t\tif (light._type !== LIGHTTYPE_DIRECTIONAL) {\n\t\t\tthis.renderer.dispatchViewPos(shadowCamNode.getPosition());\n\t\t\tthis.shadowMapLightRadiusId.setValue(light.attenuationEnd);\n\t\t}\n\t\tshadowCamView.setTRS(shadowCamNode.getPosition(), shadowCamNode.getRotation(), Vec3.ONE).invert();\n\t\tshadowCamViewProj.mul2(shadowCam.projectionMatrix, shadowCamView);\n\t\tconst rectViewport = lightRenderData.shadowViewport;\n\t\tshadowCam.rect = rectViewport;\n\t\tshadowCam.scissorRect = lightRenderData.shadowScissor;\n\t\tviewportMatrix.setViewport(rectViewport.x, rectViewport.y, rectViewport.z, rectViewport.w);\n\t\tlightRenderData.shadowMatrix.mul2(viewportMatrix, shadowCamViewProj);\n\t\tif (light._type === LIGHTTYPE_DIRECTIONAL) {\n\t\t\tlight._shadowMatrixPalette.set(lightRenderData.shadowMatrix.data, face * 16);\n\t\t}\n\t}\n\tgetShadowPass(light) {\n\t\tvar _this$shadowPassCache;\n\t\tconst lightType = light._type;\n\t\tconst shadowType = light._shadowType;\n\t\tlet shadowPassInfo = (_this$shadowPassCache = this.shadowPassCache[lightType]) == null ? void 0 : _this$shadowPassCache[shadowType];\n\t\tif (!shadowPassInfo) {\n\t\t\tconst shadowPassName = `ShadowPass_${lightType}_${shadowType}`;\n\t\t\tshadowPassInfo = ShaderPass.get(this.device).allocate(shadowPassName, {\n\t\t\t\tisShadow: true,\n\t\t\t\tlightType: lightType,\n\t\t\t\tshadowType: shadowType\n\t\t\t});\n\t\t\tif (!this.shadowPassCache[lightType]) {\n\t\t\t\tthis.shadowPassCache[lightType] = [];\n\t\t\t}\n\t\t\tthis.shadowPassCache[lightType][shadowType] = shadowPassInfo;\n\t\t}\n\t\treturn shadowPassInfo.index;\n\t}\n\tsubmitCasters(visibleCasters, light) {\n\t\tconst device = this.device;\n\t\tconst renderer = this.renderer;\n\t\tconst scene = renderer.scene;\n\t\tconst passFlags = 1 << SHADER_SHADOW;\n\t\tconst shadowPass = this.getShadowPass(light);\n\t\tconst count = visibleCasters.length;\n\t\tfor (let i = 0; i < count; i++) {\n\t\t\tconst meshInstance = visibleCasters[i];\n\t\t\tconst mesh = meshInstance.mesh;\n\t\t\tmeshInstance.ensureMaterial(device);\n\t\t\tconst material = meshInstance.material;\n\t\t\trenderer.setBaseConstants(device, material);\n\t\t\trenderer.setSkinning(device, meshInstance);\n\t\t\tif (material.dirty) {\n\t\t\t\tmaterial.updateUniforms(device, scene);\n\t\t\t\tmaterial.dirty = false;\n\t\t\t}\n\t\t\tif (material.chunks) {\n\t\t\t\trenderer.setupCullMode(true, 1, meshInstance);\n\t\t\t\tmaterial.setParameters(device);\n\t\t\t\tmeshInstance.setParameters(device, passFlags);\n\t\t\t}\n\t\t\tconst shaderInstance = meshInstance.getShaderInstance(shadowPass, 0, scene, this.viewUniformFormat, this.viewBindGroupFormat);\n\t\t\tconst shadowShader = shaderInstance.shader;\n\t\t\tmeshInstance._key[SORTKEY_DEPTH] = shadowShader.id;\n\t\t\tdevice.setShader(shadowShader);\n\t\t\trenderer.setVertexBuffers(device, mesh);\n\t\t\trenderer.setMorphing(device, meshInstance.morphInstance);\n\t\t\tthis.renderer.setupMeshUniformBuffers(shaderInstance, meshInstance);\n\t\t\tconst style = meshInstance.renderStyle;\n\t\t\tdevice.setIndexBuffer(mesh.indexBuffer[style]);\n\t\t\trenderer.drawInstance(device, meshInstance, mesh, style);\n\t\t\trenderer._shadowDrawCalls++;\n\t\t}\n\t}\n\tneedsShadowRendering(light) {\n\t\tconst needs = light.enabled && light.castShadows && light.shadowUpdateMode !== SHADOWUPDATE_NONE && light.visibleThisFrame;\n\t\tif (light.shadowUpdateMode === SHADOWUPDATE_THISFRAME) {\n\t\t\tlight.shadowUpdateMode = SHADOWUPDATE_NONE;\n\t\t}\n\t\tif (needs) {\n\t\t\tthis.renderer._shadowMapUpdates += light.numShadowFaces;\n\t\t}\n\t\treturn needs;\n\t}\n\tgetLightRenderData(light, camera, face) {\n\t\treturn light.getRenderData(light._type === LIGHTTYPE_DIRECTIONAL ? camera : null, face);\n\t}\n\tsetupRenderPass(renderPass, shadowCamera, clearRenderTarget) {\n\t\tconst rt = shadowCamera.renderTarget;\n\t\trenderPass.init(rt);\n\t\trenderPass.depthStencilOps.clearDepthValue = 1;\n\t\trenderPass.depthStencilOps.clearDepth = clearRenderTarget;\n\t\tif (rt.depthBuffer) {\n\t\t\trenderPass.depthStencilOps.storeDepth = true;\n\t\t} else {\n\t\t\trenderPass.colorOps.clearValue.copy(shadowCamera.clearColor);\n\t\t\trenderPass.colorOps.clear = clearRenderTarget;\n\t\t\trenderPass.depthStencilOps.storeDepth = false;\n\t\t}\n\t\trenderPass.requiresCubemaps = false;\n\t}\n\tprepareFace(light, camera, face) {\n\t\tconst type = light._type;\n\t\tconst shadowType = light._shadowType;\n\t\tconst isClustered = this.renderer.scene.clusteredLightingEnabled;\n\t\tconst lightRenderData = this.getLightRenderData(light, camera, face);\n\t\tconst shadowCam = lightRenderData.shadowCamera;\n\t\tShadowRenderer.setShadowCameraSettings(shadowCam, this.device, shadowType, type, isClustered);\n\t\tconst renderTargetIndex = type === LIGHTTYPE_DIRECTIONAL ? 0 : face;\n\t\tshadowCam.renderTarget = light._shadowMap.renderTargets[renderTargetIndex];\n\t\treturn shadowCam;\n\t}\n\trenderFace(light, camera, face, clear, insideRenderPass = true) {\n\t\tconst device = this.device;\n\t\tconst lightRenderData = this.getLightRenderData(light, camera, face);\n\t\tconst shadowCam = lightRenderData.shadowCamera;\n\t\tthis.dispatchUniforms(light, shadowCam, lightRenderData, face);\n\t\tconst rt = shadowCam.renderTarget;\n\t\tconst renderer = this.renderer;\n\t\trenderer.setCameraUniforms(shadowCam, rt);\n\t\tif (device.supportsUniformBuffers) {\n\t\t\trenderer.setupViewUniformBuffers(lightRenderData.viewBindGroups, this.viewUniformFormat, this.viewBindGroupFormat, 1);\n\t\t}\n\t\tif (insideRenderPass) {\n\t\t\trenderer.setupViewport(shadowCam, rt);\n\t\t\tif (clear) {\n\t\t\t\trenderer.clear(shadowCam);\n\t\t\t}\n\t\t} else {\n\t\t\trenderer.clearView(shadowCam, rt, true, false);\n\t\t}\n\t\tthis.setupRenderState(device, light);\n\t\tthis.submitCasters(lightRenderData.visibleCasters, light);\n\t}\n\trender(light, camera, insideRenderPass = true) {\n\t\tif (this.needsShadowRendering(light)) {\n\t\t\tconst faceCount = light.numShadowFaces;\n\t\t\tfor (let face = 0; face < faceCount; face++) {\n\t\t\t\tthis.prepareFace(light, camera, face);\n\t\t\t\tthis.renderFace(light, camera, face, true, insideRenderPass);\n\t\t\t}\n\t\t\tthis.renderVsm(light, camera);\n\t\t}\n\t}\n\trenderVsm(light, camera) {\n\t\tif (light._isVsm && light._vsmBlurSize > 1) {\n\t\t\tconst isClustered = this.renderer.scene.clusteredLightingEnabled;\n\t\t\tif (!isClustered || light._type === LIGHTTYPE_DIRECTIONAL) {\n\t\t\t\tthis.applyVsmBlur(light, camera);\n\t\t\t}\n\t\t}\n\t}\n\tgetVsmBlurShader(isVsm8, blurMode, filterSize) {\n\t\tlet blurShader = (isVsm8 ? this.blurPackedVsmShader : this.blurVsmShader)[blurMode][filterSize];\n\t\tif (!blurShader) {\n\t\t\tthis.blurVsmWeights[filterSize] = gaussWeights(filterSize);\n\t\t\tconst blurVS = shaderChunks.fullscreenQuadVS;\n\t\t\tlet blurFS = `#define SAMPLES ${filterSize}\\n`;\n\t\t\tif (isVsm8) {\n\t\t\t\tblurFS += this.blurPackedVsmShaderCode[blurMode];\n\t\t\t} else {\n\t\t\t\tblurFS += this.blurVsmShaderCode[blurMode];\n\t\t\t}\n\t\t\tconst blurShaderName = `blurVsm${blurMode}${filterSize}${isVsm8}`;\n\t\t\tblurShader = createShaderFromCode(this.device, blurVS, blurFS, blurShaderName);\n\t\t\tif (isVsm8) {\n\t\t\t\tthis.blurPackedVsmShader[blurMode][filterSize] = blurShader;\n\t\t\t} else {\n\t\t\t\tthis.blurVsmShader[blurMode][filterSize] = blurShader;\n\t\t\t}\n\t\t}\n\t\treturn blurShader;\n\t}\n\tapplyVsmBlur(light, camera) {\n\t\tconst device = this.device;\n\t\tdevice.setBlendState(BlendState.NOBLEND);\n\t\tconst lightRenderData = light.getRenderData(light._type === LIGHTTYPE_DIRECTIONAL ? camera : null, 0);\n\t\tconst shadowCam = lightRenderData.shadowCamera;\n\t\tconst origShadowMap = shadowCam.renderTarget;\n\t\tconst tempShadowMap = this.renderer.shadowMapCache.get(device, light);\n\t\tconst tempRt = tempShadowMap.renderTargets[0];\n\t\tconst isVsm8 = light._shadowType === SHADOW_VSM8;\n\t\tconst blurMode = light.vsmBlurMode;\n\t\tconst filterSize = light._vsmBlurSize;\n\t\tconst blurShader = this.getVsmBlurShader(isVsm8, blurMode, filterSize);\n\t\tblurScissorRect.z = light._shadowResolution - 2;\n\t\tblurScissorRect.w = blurScissorRect.z;\n\t\tthis.sourceId.setValue(origShadowMap.colorBuffer);\n\t\tpixelOffset[0] = 1 / light._shadowResolution;\n\t\tpixelOffset[1] = 0;\n\t\tthis.pixelOffsetId.setValue(pixelOffset);\n\t\tif (blurMode === BLUR_GAUSSIAN) this.weightId.setValue(this.blurVsmWeights[filterSize]);\n\t\tdrawQuadWithShader(device, tempRt, blurShader, null, blurScissorRect);\n\t\tthis.sourceId.setValue(tempRt.colorBuffer);\n\t\tpixelOffset[1] = pixelOffset[0];\n\t\tpixelOffset[0] = 0;\n\t\tthis.pixelOffsetId.setValue(pixelOffset);\n\t\tdrawQuadWithShader(device, origShadowMap, blurShader, null, blurScissorRect);\n\t\tthis.renderer.shadowMapCache.add(light, tempShadowMap);\n\t}\n\tinitViewBindGroupFormat() {\n\t\tif (this.device.supportsUniformBuffers && !this.viewUniformFormat) {\n\t\t\tthis.viewUniformFormat = new UniformBufferFormat(this.device, [new UniformFormat('matrix_viewProjection', UNIFORMTYPE_MAT4)]);\n\t\t\tthis.viewBindGroupFormat = new BindGroupFormat(this.device, [new BindUniformBufferFormat(UNIFORM_BUFFER_DEFAULT_SLOT_NAME, SHADERSTAGE_VERTEX | SHADERSTAGE_FRAGMENT)]);\n\t\t}\n\t}\n\tframeUpdate() {\n\t\tthis.initViewBindGroupFormat();\n\t}\n}\n\nconst tempClusterArray = [];\nclass WorldClustersAllocator {\n\tconstructor(graphicsDevice) {\n\t\tthis._empty = null;\n\t\tthis._allocated = [];\n\t\tthis._clusters = new Map();\n\t\tthis.device = graphicsDevice;\n\t}\n\tdestroy() {\n\t\tif (this._empty) {\n\t\t\tthis._empty.destroy();\n\t\t\tthis._empty = null;\n\t\t}\n\t\tthis._allocated.forEach(cluster => {\n\t\t\tcluster.destroy();\n\t\t});\n\t\tthis._allocated.length = 0;\n\t}\n\tget count() {\n\t\treturn this._allocated.length;\n\t}\n\tget empty() {\n\t\tif (!this._empty) {\n\t\t\tconst empty = new WorldClusters(this.device);\n\t\t\tempty.name = 'ClusterEmpty';\n\t\t\tempty.update([], false, null);\n\t\t\tthis._empty = empty;\n\t\t}\n\t\treturn this._empty;\n\t}\n\tassign(renderPasses) {\n\t\tconst empty = this.empty;\n\t\ttempClusterArray.push(...this._allocated);\n\t\tthis._allocated.length = 0;\n\t\tthis._clusters.clear();\n\t\tconst passCount = renderPasses.length;\n\t\tfor (let p = 0; p < passCount; p++) {\n\t\t\tconst renderPass = renderPasses[p];\n\t\t\tconst renderActions = renderPass.renderActions;\n\t\t\tif (renderActions) {\n\t\t\t\tconst count = renderActions.length;\n\t\t\t\tfor (let i = 0; i < count; i++) {\n\t\t\t\t\tconst ra = renderActions[i];\n\t\t\t\t\tra.lightClusters = null;\n\t\t\t\t\tconst layer = ra.layer;\n\t\t\t\t\tif (layer.hasClusteredLights && layer.meshInstances.length) {\n\t\t\t\t\t\tconst hash = layer.getLightIdHash();\n\t\t\t\t\t\tconst existingRenderAction = this._clusters.get(hash);\n\t\t\t\t\t\tlet clusters = existingRenderAction == null ? void 0 : existingRenderAction.lightClusters;\n\t\t\t\t\t\tif (!clusters) {\n\t\t\t\t\t\t\tvar _tempClusterArray$pop;\n\t\t\t\t\t\t\tclusters = (_tempClusterArray$pop = tempClusterArray.pop()) != null ? _tempClusterArray$pop : new WorldClusters(this.device);\n\t\t\t\t\t\t\tthis._allocated.push(clusters);\n\t\t\t\t\t\t\tthis._clusters.set(hash, ra);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tra.lightClusters = clusters;\n\t\t\t\t\t}\n\t\t\t\t\tif (!ra.lightClusters) {\n\t\t\t\t\t\tra.lightClusters = empty;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\ttempClusterArray.forEach(item => item.destroy());\n\t\ttempClusterArray.length = 0;\n\t}\n\tupdate(renderPasses, gammaCorrection, lighting) {\n\t\tthis.assign(renderPasses);\n\t\tthis._clusters.forEach(renderAction => {\n\t\t\tconst layer = renderAction.layer;\n\t\t\tconst cluster = renderAction.lightClusters;\n\t\t\tcluster.update(layer.clusteredLightsSet, gammaCorrection, lighting);\n\t\t});\n\t}\n}\n\nconst textureBlitVertexShader$1 = `\n\tattribute vec2 vertex_position;\n\tvarying vec2 uv0;\n\tvoid main(void) {\n\t\tgl_Position = vec4(vertex_position, 0.5, 1.0);\n\t\tuv0 = vertex_position.xy * 0.5 + 0.5;\n\t\t#ifndef WEBGPU\n\t\t\tuv0.y = 1.0 - uv0.y;\n\t\t#endif\n\t}`;\nconst textureBlitFragmentShader$1 = `\n\tvarying vec2 uv0;\n\tuniform sampler2D blitTexture;\n\tvoid main(void) {\n\t\tgl_FragColor = texture2D(blitTexture, uv0);\n\t}`;\nconst textureCubeBlitFragmentShader = `\n\tvarying vec2 uv0;\n\tuniform samplerCube blitTexture;\n\tuniform mat4 invViewProj;\n\tvoid main(void) {\n\t\tvec4 projPos = vec4(uv0 * 2.0 - 1.0, 0.5, 1.0);\n\t\tvec4 worldPos = invViewProj * projPos;\n\t\tgl_FragColor = textureCube(blitTexture, worldPos.xyz);\n\t}`;\nconst _viewport$2 = new Vec4();\nconst _invViewProjMatrices = [];\nclass RenderPassCookieRenderer extends RenderPass {\n\tconstructor(device, cubeSlotsOffsets) {\n\t\tsuper(device);\n\t\tthis._quadRenderer2D = null;\n\t\tthis._quadRendererCube = null;\n\t\tthis._filteredLights = [];\n\t\tthis._cubeSlotsOffsets = cubeSlotsOffsets;\n\t\tthis.requiresCubemaps = false;\n\t\tthis.blitTextureId = device.scope.resolve('blitTexture');\n\t\tthis.invViewProjId = device.scope.resolve('invViewProj');\n\t}\n\tdestroy() {\n\t\tvar _this$_quadRenderer2D, _this$_quadRendererCu;\n\t\t(_this$_quadRenderer2D = this._quadRenderer2D) == null || _this$_quadRenderer2D.destroy();\n\t\tthis._quadRenderer2D = null;\n\t\t(_this$_quadRendererCu = this._quadRendererCube) == null || _this$_quadRendererCu.destroy();\n\t\tthis._quadRendererCube = null;\n\t}\n\tstatic create(renderTarget, cubeSlotsOffsets) {\n\t\tconst renderPass = new RenderPassCookieRenderer(renderTarget.device, cubeSlotsOffsets);\n\t\trenderPass.init(renderTarget);\n\t\trenderPass.colorOps.clear = false;\n\t\trenderPass.depthStencilOps.clearDepth = false;\n\t\treturn renderPass;\n\t}\n\tupdate(lights) {\n\t\tconst filteredLights = this._filteredLights;\n\t\tthis.filter(lights, filteredLights);\n\t\tthis.executeEnabled = filteredLights.length > 0;\n\t}\n\tfilter(lights, filteredLights) {\n\t\tfor (let i = 0; i < lights.length; i++) {\n\t\t\tconst light = lights[i];\n\t\t\tif (light._type === LIGHTTYPE_DIRECTIONAL) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!light.atlasViewportAllocated) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!light.atlasSlotUpdated) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (light.enabled && light.cookie && light.visibleThisFrame) {\n\t\t\t\tfilteredLights.push(light);\n\t\t\t}\n\t\t}\n\t}\n\tinitInvViewProjMatrices() {\n\t\tif (!_invViewProjMatrices.length) {\n\t\t\tfor (let face = 0; face < 6; face++) {\n\t\t\t\tconst camera = LightCamera.create(null, LIGHTTYPE_OMNI, face);\n\t\t\t\tconst projMat = camera.projectionMatrix;\n\t\t\t\tconst viewMat = camera.node.getLocalTransform().clone().invert();\n\t\t\t\t_invViewProjMatrices[face] = new Mat4().mul2(projMat, viewMat).invert();\n\t\t\t}\n\t\t}\n\t}\n\tget quadRenderer2D() {\n\t\tif (!this._quadRenderer2D) {\n\t\t\tconst shader = createShaderFromCode(this.device, textureBlitVertexShader$1, textureBlitFragmentShader$1, 'cookieRenderer2d');\n\t\t\tthis._quadRenderer2D = new QuadRender(shader);\n\t\t}\n\t\treturn this._quadRenderer2D;\n\t}\n\tget quadRendererCube() {\n\t\tif (!this._quadRendererCube) {\n\t\t\tconst shader = createShaderFromCode(this.device, textureBlitVertexShader$1, textureCubeBlitFragmentShader, 'cookieRendererCube');\n\t\t\tthis._quadRendererCube = new QuadRender(shader);\n\t\t}\n\t\treturn this._quadRendererCube;\n\t}\n\texecute() {\n\t\tconst device = this.device;\n\t\tdevice.setBlendState(BlendState.NOBLEND);\n\t\tdevice.setCullMode(CULLFACE_NONE);\n\t\tdevice.setDepthState(DepthState.NODEPTH);\n\t\tdevice.setStencilState();\n\t\tconst renderTargetWidth = this.renderTarget.colorBuffer.width;\n\t\tconst cubeSlotsOffsets = this._cubeSlotsOffsets;\n\t\tconst filteredLights = this._filteredLights;\n\t\tfor (let i = 0; i < filteredLights.length; i++) {\n\t\t\tconst light = filteredLights[i];\n\t\t\tconst faceCount = light.numShadowFaces;\n\t\t\tconst quad = faceCount > 1 ? this.quadRendererCube : this.quadRenderer2D;\n\t\t\tif (faceCount > 1) {\n\t\t\t\tthis.initInvViewProjMatrices();\n\t\t\t}\n\t\t\tthis.blitTextureId.setValue(light.cookie);\n\t\t\tfor (let face = 0; face < faceCount; face++) {\n\t\t\t\t_viewport$2.copy(light.atlasViewport);\n\t\t\t\tif (faceCount > 1) {\n\t\t\t\t\tconst smallSize = _viewport$2.z / 3;\n\t\t\t\t\tconst offset = cubeSlotsOffsets[face];\n\t\t\t\t\t_viewport$2.x += smallSize * offset.x;\n\t\t\t\t\t_viewport$2.y += smallSize * offset.y;\n\t\t\t\t\t_viewport$2.z = smallSize;\n\t\t\t\t\t_viewport$2.w = smallSize;\n\t\t\t\t\tthis.invViewProjId.setValue(_invViewProjMatrices[face].data);\n\t\t\t\t}\n\t\t\t\t_viewport$2.mulScalar(renderTargetWidth);\n\t\t\t\tquad.render(_viewport$2);\n\t\t\t}\n\t\t}\n\t\tfilteredLights.length = 0;\n\t}\n}\n\nclass RenderPassShadowLocalClustered extends RenderPass {\n\tconstructor(device, shadowRenderer, shadowRendererLocal) {\n\t\tsuper(device);\n\t\tthis.requiresCubemaps = false;\n\t\tthis.shadowRenderer = shadowRenderer;\n\t\tthis.shadowRendererLocal = shadowRendererLocal;\n\t}\n\tupdate(localLights) {\n\t\tconst shadowLights = this.shadowRendererLocal.shadowLights;\n\t\tconst shadowCamera = this.shadowRendererLocal.prepareLights(shadowLights, localLights);\n\t\tconst count = shadowLights.length;\n\t\tthis.enabled = count > 0;\n\t\tif (count) {\n\t\t\tthis.shadowRenderer.setupRenderPass(this, shadowCamera, false);\n\t\t}\n\t}\n\texecute() {\n\t\tconst shadowLights = this.shadowRendererLocal.shadowLights;\n\t\tconst count = shadowLights.length;\n\t\tfor (let i = 0; i < count; i++) {\n\t\t\tconst light = shadowLights[i];\n\t\t\tfor (let face = 0; face < light.numShadowFaces; face++) {\n\t\t\t\tthis.shadowRenderer.renderFace(light, null, face, true);\n\t\t\t}\n\t\t}\n\t\tshadowLights.length = 0;\n\t}\n}\n\nclass RenderPassUpdateClustered extends RenderPass {\n\tconstructor(device, renderer, shadowRenderer, shadowRendererLocal, lightTextureAtlas) {\n\t\tsuper(device);\n\t\tthis.renderer = renderer;\n\t\tthis.frameGraph = null;\n\t\tthis.cookiesRenderPass = RenderPassCookieRenderer.create(lightTextureAtlas.cookieRenderTarget, lightTextureAtlas.cubeSlotsOffsets);\n\t\tthis.beforePasses.push(this.cookiesRenderPass);\n\t\tthis.shadowRenderPass = new RenderPassShadowLocalClustered(device, shadowRenderer, shadowRendererLocal);\n\t\tthis.beforePasses.push(this.shadowRenderPass);\n\t}\n\tupdate(frameGraph, shadowsEnabled, cookiesEnabled, lights, localLights) {\n\t\tthis.frameGraph = frameGraph;\n\t\tthis.cookiesRenderPass.enabled = cookiesEnabled;\n\t\tif (cookiesEnabled) {\n\t\t\tthis.cookiesRenderPass.update(lights);\n\t\t}\n\t\tthis.shadowRenderPass.enabled = shadowsEnabled;\n\t\tif (shadowsEnabled) {\n\t\t\tthis.shadowRenderPass.update(localLights);\n\t\t}\n\t}\n\tdestroy() {\n\t\tthis.cookiesRenderPass.destroy();\n\t\tthis.cookiesRenderPass = null;\n\t}\n\texecute() {\n\t\tconst {\n\t\t\trenderer\n\t\t} = this;\n\t\tconst {\n\t\t\tscene\n\t\t} = renderer;\n\t\trenderer.worldClustersAllocator.update(this.frameGraph.renderPasses, scene.gammaCorrection, scene.lighting);\n\t}\n}\n\nconst base64String = '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';\nlet data = null;\nconst initData = () => {\n\tif (!data) {\n\t\tconst binaryString = atob(base64String);\n\t\tdata = Uint8Array.from(binaryString, char => char.charCodeAt(0));\n\t}\n};\nconst blueNoiseData = () => {\n\tinitData();\n\treturn data;\n};\nclass BlueNoise {\n\tconstructor(seed = 0) {\n\t\tthis.seed = 0;\n\t\tthis.seed = seed * 4;\n\t\tinitData();\n\t}\n\t_next() {\n\t\tthis.seed = (this.seed + 4) % data.length;\n\t}\n\tvalue() {\n\t\tthis._next();\n\t\treturn data[this.seed] / 255;\n\t}\n\tvec4(dest = new Vec4()) {\n\t\tthis._next();\n\t\treturn dest.set(data[this.seed], data[this.seed + 1], data[this.seed + 2], data[this.seed + 3]).mulScalar(1 / 255);\n\t}\n}\n\nconst createTexture = (device, namePrefix, size, data) => {\n\tconst texture = new Texture(device, {\n\t\tname: `${namePrefix}${size}`,\n\t\twidth: size,\n\t\theight: size,\n\t\tformat: PIXELFORMAT_RGBA8,\n\t\taddressU: ADDRESS_REPEAT,\n\t\taddressV: ADDRESS_REPEAT,\n\t\ttype: TEXTURETYPE_DEFAULT,\n\t\tmagFilter: FILTER_NEAREST,\n\t\tminFilter: FILTER_NEAREST,\n\t\tanisotropy: 1,\n\t\tmipmaps: false\n\t});\n\ttexture.lock().set(data);\n\ttexture.unlock();\n\treturn texture;\n};\nconst deviceCacheBlueNoise = new DeviceCache();\nconst getBlueNoiseTexture = device => {\n\treturn deviceCacheBlueNoise.get(device, () => {\n\t\tconst data = blueNoiseData();\n\t\tconst size = Math.sqrt(data.length / 4);\n\t\treturn createTexture(device, 'BlueNoise', size, data);\n\t});\n};\n\nlet _skinUpdateIndex = 0;\nconst viewProjMat = new Mat4();\nconst viewInvMat = new Mat4();\nconst viewMat = new Mat4();\nconst viewMat3 = new Mat3();\nconst tempSphere$1 = new BoundingSphere();\nconst _flipYMat = new Mat4().setScale(1, -1, 1);\nconst _tempLightSet = new Set();\nconst _tempLayerSet = new Set();\nconst _fixProjRangeMat = new Mat4().set([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 1]);\nconst _haltonSequence = [new Vec2(0.5, 0.333333), new Vec2(0.25, 0.666667), new Vec2(0.75, 0.111111), new Vec2(0.125, 0.444444), new Vec2(0.625, 0.777778), new Vec2(0.375, 0.222222), new Vec2(0.875, 0.555556), new Vec2(0.0625, 0.888889), new Vec2(0.5625, 0.037037), new Vec2(0.3125, 0.370370), new Vec2(0.8125, 0.703704), new Vec2(0.1875, 0.148148), new Vec2(0.6875, 0.481481), new Vec2(0.4375, 0.814815), new Vec2(0.9375, 0.259259), new Vec2(0.03125, 0.592593)];\nconst _tempProjMat0 = new Mat4();\nconst _tempProjMat1 = new Mat4();\nconst _tempProjMat2 = new Mat4();\nconst _tempProjMat3 = new Mat4();\nconst _tempProjMat4 = new Mat4();\nconst _tempProjMat5 = new Mat4();\nconst _tempSet = new Set();\nconst _tempMeshInstances = [];\nconst _tempMeshInstancesSkinned = [];\nclass Renderer {\n\tconstructor(graphicsDevice) {\n\t\tthis.clustersDebugRendered = false;\n\t\tthis.processingMeshInstances = new Set();\n\t\tthis.worldClustersAllocator = void 0;\n\t\tthis.lights = [];\n\t\tthis.localLights = [];\n\t\tthis.cameraDirShadowLights = new Map();\n\t\tthis.dirLightShadows = new Map();\n\t\tthis.blueNoise = new BlueNoise(123);\n\t\tthis.device = graphicsDevice;\n\t\tthis.scene = null;\n\t\tthis.worldClustersAllocator = new WorldClustersAllocator(graphicsDevice);\n\t\tthis.lightTextureAtlas = new LightTextureAtlas(graphicsDevice);\n\t\tthis.shadowMapCache = new ShadowMapCache();\n\t\tthis.shadowRenderer = new ShadowRenderer(this, this.lightTextureAtlas);\n\t\tthis._shadowRendererLocal = new ShadowRendererLocal(this, this.shadowRenderer);\n\t\tthis._shadowRendererDirectional = new ShadowRendererDirectional(this, this.shadowRenderer);\n\t\tthis._renderPassUpdateClustered = new RenderPassUpdateClustered(this.device, this, this.shadowRenderer, this._shadowRendererLocal, this.lightTextureAtlas);\n\t\tthis.viewUniformFormat = null;\n\t\tthis.viewBindGroupFormat = null;\n\t\tthis._skinTime = 0;\n\t\tthis._morphTime = 0;\n\t\tthis._cullTime = 0;\n\t\tthis._shadowMapTime = 0;\n\t\tthis._lightClustersTime = 0;\n\t\tthis._layerCompositionUpdateTime = 0;\n\t\tthis._shadowDrawCalls = 0;\n\t\tthis._skinDrawCalls = 0;\n\t\tthis._instancedDrawCalls = 0;\n\t\tthis._shadowMapUpdates = 0;\n\t\tthis._numDrawCallsCulled = 0;\n\t\tthis._camerasRendered = 0;\n\t\tthis._lightClusters = 0;\n\t\tconst scope = graphicsDevice.scope;\n\t\tthis.boneTextureId = scope.resolve('texture_poseMap');\n\t\tthis.boneTextureSizeId = scope.resolve('texture_poseMapSize');\n\t\tthis.poseMatrixId = scope.resolve('matrix_pose[0]');\n\t\tthis.modelMatrixId = scope.resolve('matrix_model');\n\t\tthis.normalMatrixId = scope.resolve('matrix_normal');\n\t\tthis.viewInvId = scope.resolve('matrix_viewInverse');\n\t\tthis.viewPos = new Float32Array(3);\n\t\tthis.viewPosId = scope.resolve('view_position');\n\t\tthis.projId = scope.resolve('matrix_projection');\n\t\tthis.projSkyboxId = scope.resolve('matrix_projectionSkybox');\n\t\tthis.viewId = scope.resolve('matrix_view');\n\t\tthis.viewId3 = scope.resolve('matrix_view3');\n\t\tthis.viewProjId = scope.resolve('matrix_viewProjection');\n\t\tthis.flipYId = scope.resolve('projectionFlipY');\n\t\tthis.tbnBasis = scope.resolve('tbnBasis');\n\t\tthis.nearClipId = scope.resolve('camera_near');\n\t\tthis.farClipId = scope.resolve('camera_far');\n\t\tthis.cameraParams = new Float32Array(4);\n\t\tthis.cameraParamsId = scope.resolve('camera_params');\n\t\tthis.viewIndexId = scope.resolve('view_index');\n\t\tthis.blueNoiseJitterVersion = 0;\n\t\tthis.blueNoiseJitterVec = new Vec4();\n\t\tthis.blueNoiseJitterData = new Float32Array(4);\n\t\tthis.blueNoiseJitterId = scope.resolve('blueNoiseJitter');\n\t\tthis.blueNoiseTextureId = scope.resolve('blueNoiseTex32');\n\t\tthis.alphaTestId = scope.resolve('alpha_ref');\n\t\tthis.opacityMapId = scope.resolve('texture_opacityMap');\n\t\tthis.exposureId = scope.resolve('exposure');\n\t\tthis.twoSidedLightingNegScaleFactorId = scope.resolve('twoSidedLightingNegScaleFactor');\n\t\tthis.twoSidedLightingNegScaleFactorId.setValue(0);\n\t\tthis.morphWeightsA = scope.resolve('morph_weights_a');\n\t\tthis.morphWeightsB = scope.resolve('morph_weights_b');\n\t\tthis.morphPositionTex = scope.resolve('morphPositionTex');\n\t\tthis.morphNormalTex = scope.resolve('morphNormalTex');\n\t\tthis.morphTexParams = scope.resolve('morph_tex_params');\n\t\tthis.lightCube = new LightCube();\n\t\tthis.constantLightCube = scope.resolve('lightCube[0]');\n\t}\n\tdestroy() {\n\t\tthis.shadowRenderer = null;\n\t\tthis._shadowRendererLocal = null;\n\t\tthis._shadowRendererDirectional = null;\n\t\tthis.shadowMapCache.destroy();\n\t\tthis.shadowMapCache = null;\n\t\tthis._renderPassUpdateClustered.destroy();\n\t\tthis._renderPassUpdateClustered = null;\n\t\tthis.lightTextureAtlas.destroy();\n\t\tthis.lightTextureAtlas = null;\n\t}\n\tsortCompare(drawCallA, drawCallB) {\n\t\tif (drawCallA.layer === drawCallB.layer) {\n\t\t\tif (drawCallA.drawOrder && drawCallB.drawOrder) {\n\t\t\t\treturn drawCallA.drawOrder - drawCallB.drawOrder;\n\t\t\t} else if (drawCallA.zdist && drawCallB.zdist) {\n\t\t\t\treturn drawCallB.zdist - drawCallA.zdist;\n\t\t\t} else if (drawCallA.zdist2 && drawCallB.zdist2) {\n\t\t\t\treturn drawCallA.zdist2 - drawCallB.zdist2;\n\t\t\t}\n\t\t}\n\t\treturn drawCallB._key[SORTKEY_FORWARD] - drawCallA._key[SORTKEY_FORWARD];\n\t}\n\tsortCompareMesh(drawCallA, drawCallB) {\n\t\tif (drawCallA.layer === drawCallB.layer) {\n\t\t\tif (drawCallA.drawOrder && drawCallB.drawOrder) {\n\t\t\t\treturn drawCallA.drawOrder - drawCallB.drawOrder;\n\t\t\t} else if (drawCallA.zdist && drawCallB.zdist) {\n\t\t\t\treturn drawCallB.zdist - drawCallA.zdist;\n\t\t\t}\n\t\t}\n\t\tconst keyA = drawCallA._key[SORTKEY_FORWARD];\n\t\tconst keyB = drawCallB._key[SORTKEY_FORWARD];\n\t\tif (keyA === keyB && drawCallA.mesh && drawCallB.mesh) {\n\t\t\treturn drawCallB.mesh.id - drawCallA.mesh.id;\n\t\t}\n\t\treturn keyB - keyA;\n\t}\n\tsortCompareDepth(drawCallA, drawCallB) {\n\t\tconst keyA = drawCallA._key[SORTKEY_DEPTH];\n\t\tconst keyB = drawCallB._key[SORTKEY_DEPTH];\n\t\tif (keyA === keyB && drawCallA.mesh && drawCallB.mesh) {\n\t\t\treturn drawCallB.mesh.id - drawCallA.mesh.id;\n\t\t}\n\t\treturn keyB - keyA;\n\t}\n\tsetupViewport(camera, renderTarget) {\n\t\tconst device = this.device;\n\t\tconst pixelWidth = renderTarget ? renderTarget.width : device.width;\n\t\tconst pixelHeight = renderTarget ? renderTarget.height : device.height;\n\t\tconst rect = camera.rect;\n\t\tlet x = Math.floor(rect.x * pixelWidth);\n\t\tlet y = Math.floor(rect.y * pixelHeight);\n\t\tlet w = Math.floor(rect.z * pixelWidth);\n\t\tlet h = Math.floor(rect.w * pixelHeight);\n\t\tdevice.setViewport(x, y, w, h);\n\t\tif (camera._scissorRectClear) {\n\t\t\tconst scissorRect = camera.scissorRect;\n\t\t\tx = Math.floor(scissorRect.x * pixelWidth);\n\t\t\ty = Math.floor(scissorRect.y * pixelHeight);\n\t\t\tw = Math.floor(scissorRect.z * pixelWidth);\n\t\t\th = Math.floor(scissorRect.w * pixelHeight);\n\t\t}\n\t\tdevice.setScissor(x, y, w, h);\n\t}\n\tsetCameraUniforms(camera, target) {\n\t\tconst flipY = target == null ? void 0 : target.flipY;\n\t\tlet viewCount = 1;\n\t\tif (camera.xr && camera.xr.session) {\n\t\t\tvar _camera$_node;\n\t\t\tconst transform = ((_camera$_node = camera._node) == null || (_camera$_node = _camera$_node.parent) == null ? void 0 : _camera$_node.getWorldTransform()) || null;\n\t\t\tconst views = camera.xr.views;\n\t\t\tviewCount = views.list.length;\n\t\t\tfor (let v = 0; v < viewCount; v++) {\n\t\t\t\tconst view = views.list[v];\n\t\t\t\tview.updateTransforms(transform);\n\t\t\t\tcamera.frustum.setFromMat4(view.projViewOffMat);\n\t\t\t}\n\t\t} else {\n\t\t\tlet projMat = camera.projectionMatrix;\n\t\t\tif (camera.calculateProjection) {\n\t\t\t\tcamera.calculateProjection(projMat, VIEW_CENTER);\n\t\t\t}\n\t\t\tlet projMatSkybox = camera.getProjectionMatrixSkybox();\n\t\t\tif (flipY) {\n\t\t\t\tprojMat = _tempProjMat0.mul2(_flipYMat, projMat);\n\t\t\t\tprojMatSkybox = _tempProjMat1.mul2(_flipYMat, projMatSkybox);\n\t\t\t}\n\t\t\tif (this.device.isWebGPU) {\n\t\t\t\tprojMat = _tempProjMat2.mul2(_fixProjRangeMat, projMat);\n\t\t\t\tprojMatSkybox = _tempProjMat3.mul2(_fixProjRangeMat, projMatSkybox);\n\t\t\t}\n\t\t\tconst {\n\t\t\t\tjitter\n\t\t\t} = camera;\n\t\t\tlet jitterX = 0;\n\t\t\tlet jitterY = 0;\n\t\t\tif (jitter > 0) {\n\t\t\t\tconst targetWidth = target ? target.width : this.device.width;\n\t\t\t\tconst targetHeight = target ? target.height : this.device.height;\n\t\t\t\tconst offset = _haltonSequence[this.device.renderVersion % _haltonSequence.length];\n\t\t\t\tjitterX = jitter * (offset.x * 2 - 1) / targetWidth;\n\t\t\t\tjitterY = jitter * (offset.y * 2 - 1) / targetHeight;\n\t\t\t\tprojMat = _tempProjMat4.copy(projMat);\n\t\t\t\tprojMat.data[8] = jitterX;\n\t\t\t\tprojMat.data[9] = jitterY;\n\t\t\t\tprojMatSkybox = _tempProjMat5.copy(projMatSkybox);\n\t\t\t\tprojMatSkybox.data[8] = jitterX;\n\t\t\t\tprojMatSkybox.data[9] = jitterY;\n\t\t\t\tif (this.blueNoiseJitterVersion !== this.device.renderVersion) {\n\t\t\t\t\tthis.blueNoiseJitterVersion = this.device.renderVersion;\n\t\t\t\t\tthis.blueNoise.vec4(this.blueNoiseJitterVec);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst jitterVec = jitter > 0 ? this.blueNoiseJitterVec : Vec4.ZERO;\n\t\t\tthis.blueNoiseJitterData[0] = jitterVec.x;\n\t\t\tthis.blueNoiseJitterData[1] = jitterVec.y;\n\t\t\tthis.blueNoiseJitterData[2] = jitterVec.z;\n\t\t\tthis.blueNoiseJitterData[3] = jitterVec.w;\n\t\t\tthis.blueNoiseJitterId.setValue(this.blueNoiseJitterData);\n\t\t\tthis.projId.setValue(projMat.data);\n\t\t\tthis.projSkyboxId.setValue(projMatSkybox.data);\n\t\t\tif (camera.calculateTransform) {\n\t\t\t\tcamera.calculateTransform(viewInvMat, VIEW_CENTER);\n\t\t\t} else {\n\t\t\t\tconst pos = camera._node.getPosition();\n\t\t\t\tconst rot = camera._node.getRotation();\n\t\t\t\tviewInvMat.setTRS(pos, rot, Vec3.ONE);\n\t\t\t}\n\t\t\tthis.viewInvId.setValue(viewInvMat.data);\n\t\t\tviewMat.copy(viewInvMat).invert();\n\t\t\tthis.viewId.setValue(viewMat.data);\n\t\t\tviewMat3.setFromMat4(viewMat);\n\t\t\tthis.viewId3.setValue(viewMat3.data);\n\t\t\tviewProjMat.mul2(projMat, viewMat);\n\t\t\tthis.viewProjId.setValue(viewProjMat.data);\n\t\t\tcamera._storeShaderMatrices(viewProjMat, jitterX, jitterY, this.device.renderVersion);\n\t\t\tthis.flipYId.setValue(flipY ? -1 : 1);\n\t\t\tthis.dispatchViewPos(camera._node.getPosition());\n\t\t\tcamera.frustum.setFromMat4(viewProjMat);\n\t\t}\n\t\tthis.tbnBasis.setValue(flipY ? -1 : 1);\n\t\tconst n = camera._nearClip;\n\t\tconst f = camera._farClip;\n\t\tthis.nearClipId.setValue(n);\n\t\tthis.farClipId.setValue(f);\n\t\tthis.cameraParams[0] = 1 / f;\n\t\tthis.cameraParams[1] = f;\n\t\tthis.cameraParams[2] = n;\n\t\tthis.cameraParams[3] = camera.projection === PROJECTION_ORTHOGRAPHIC ? 1 : 0;\n\t\tthis.cameraParamsId.setValue(this.cameraParams);\n\t\tthis.exposureId.setValue(this.scene.physicalUnits ? camera.getExposure() : this.scene.exposure);\n\t\treturn viewCount;\n\t}\n\tclear(camera, clearColor, clearDepth, clearStencil) {\n\t\tconst flags = ((clearColor != null ? clearColor : camera._clearColorBuffer) ? CLEARFLAG_COLOR : 0) | ((clearDepth != null ? clearDepth : camera._clearDepthBuffer) ? CLEARFLAG_DEPTH : 0) | ((clearStencil != null ? clearStencil : camera._clearStencilBuffer) ? CLEARFLAG_STENCIL : 0);\n\t\tif (flags) {\n\t\t\tconst device = this.device;\n\t\t\tdevice.clear({\n\t\t\t\tcolor: [camera._clearColor.r, camera._clearColor.g, camera._clearColor.b, camera._clearColor.a],\n\t\t\t\tdepth: camera._clearDepth,\n\t\t\t\tstencil: camera._clearStencil,\n\t\t\t\tflags: flags\n\t\t\t});\n\t\t}\n\t}\n\tsetCamera(camera, target, clear, renderAction = null) {\n\t\tthis.setCameraUniforms(camera, target);\n\t\tthis.clearView(camera, target, clear, false);\n\t}\n\tclearView(camera, target, clear, forceWrite) {\n\t\tconst device = this.device;\n\t\tdevice.setRenderTarget(target);\n\t\tdevice.updateBegin();\n\t\tif (forceWrite) {\n\t\t\tdevice.setColorWrite(true, true, true, true);\n\t\t\tdevice.setDepthWrite(true);\n\t\t}\n\t\tthis.setupViewport(camera, target);\n\t\tif (clear) {\n\t\t\tconst options = camera._clearOptions;\n\t\t\tdevice.clear(options ? options : {\n\t\t\t\tcolor: [camera._clearColor.r, camera._clearColor.g, camera._clearColor.b, camera._clearColor.a],\n\t\t\t\tdepth: camera._clearDepth,\n\t\t\t\tflags: (camera._clearColorBuffer ? CLEARFLAG_COLOR : 0) | (camera._clearDepthBuffer ? CLEARFLAG_DEPTH : 0) | (camera._clearStencilBuffer ? CLEARFLAG_STENCIL : 0),\n\t\t\t\tstencil: camera._clearStencil\n\t\t\t});\n\t\t}\n\t}\n\tsetupCullMode(cullFaces, flipFactor, drawCall) {\n\t\tconst material = drawCall.material;\n\t\tlet mode = CULLFACE_NONE;\n\t\tif (cullFaces) {\n\t\t\tlet flipFaces = 1;\n\t\t\tif (material.cull === CULLFACE_FRONT || material.cull === CULLFACE_BACK) {\n\t\t\t\tflipFaces = flipFactor * drawCall.flipFacesFactor * drawCall.node.worldScaleSign;\n\t\t\t}\n\t\t\tif (flipFaces < 0) {\n\t\t\t\tmode = material.cull === CULLFACE_FRONT ? CULLFACE_BACK : CULLFACE_FRONT;\n\t\t\t} else {\n\t\t\t\tmode = material.cull;\n\t\t\t}\n\t\t}\n\t\tthis.device.setCullMode(mode);\n\t\tif (mode === CULLFACE_NONE && material.cull === CULLFACE_NONE) {\n\t\t\tthis.twoSidedLightingNegScaleFactorId.setValue(drawCall.node.worldScaleSign);\n\t\t}\n\t}\n\tupdateCameraFrustum(camera) {\n\t\tif (camera.xr && camera.xr.views.list.length) {\n\t\t\tconst view = camera.xr.views.list[0];\n\t\t\tviewProjMat.mul2(view.projMat, view.viewOffMat);\n\t\t\tcamera.frustum.setFromMat4(viewProjMat);\n\t\t\treturn;\n\t\t}\n\t\tconst projMat = camera.projectionMatrix;\n\t\tif (camera.calculateProjection) {\n\t\t\tcamera.calculateProjection(projMat, VIEW_CENTER);\n\t\t}\n\t\tif (camera.calculateTransform) {\n\t\t\tcamera.calculateTransform(viewInvMat, VIEW_CENTER);\n\t\t} else {\n\t\t\tconst pos = camera._node.getPosition();\n\t\t\tconst rot = camera._node.getRotation();\n\t\t\tviewInvMat.setTRS(pos, rot, Vec3.ONE);\n\t\t\tthis.viewInvId.setValue(viewInvMat.data);\n\t\t}\n\t\tviewMat.copy(viewInvMat).invert();\n\t\tviewProjMat.mul2(projMat, viewMat);\n\t\tcamera.frustum.setFromMat4(viewProjMat);\n\t}\n\tsetBaseConstants(device, material) {\n\t\tdevice.setCullMode(material.cull);\n\t\tif (material.opacityMap) {\n\t\t\tthis.opacityMapId.setValue(material.opacityMap);\n\t\t}\n\t\tif (material.opacityMap || material.alphaTest > 0) {\n\t\t\tthis.alphaTestId.setValue(material.alphaTest);\n\t\t}\n\t}\n\tupdateCpuSkinMatrices(drawCalls) {\n\t\t_skinUpdateIndex++;\n\t\tconst drawCallsCount = drawCalls.length;\n\t\tif (drawCallsCount === 0) return;\n\t\tfor (let i = 0; i < drawCallsCount; i++) {\n\t\t\tconst si = drawCalls[i].skinInstance;\n\t\t\tif (si) {\n\t\t\t\tsi.updateMatrices(drawCalls[i].node, _skinUpdateIndex);\n\t\t\t\tsi._dirty = true;\n\t\t\t}\n\t\t}\n\t}\n\tupdateGpuSkinMatrices(drawCalls) {\n\t\tfor (const drawCall of drawCalls) {\n\t\t\tconst skin = drawCall.skinInstance;\n\t\t\tif (skin && skin._dirty) {\n\t\t\t\tskin.updateMatrixPalette(drawCall.node, _skinUpdateIndex);\n\t\t\t\tskin._dirty = false;\n\t\t\t}\n\t\t}\n\t}\n\tupdateMorphing(drawCalls) {\n\t\tfor (const drawCall of drawCalls) {\n\t\t\tconst morphInst = drawCall.morphInstance;\n\t\t\tif (morphInst && morphInst._dirty) {\n\t\t\t\tmorphInst.update();\n\t\t\t}\n\t\t}\n\t}\n\tupdateGSplats(drawCalls) {\n\t\tfor (const drawCall of drawCalls) {\n\t\t\tvar _drawCall$gsplatInsta;\n\t\t\t(_drawCall$gsplatInsta = drawCall.gsplatInstance) == null || _drawCall$gsplatInsta.update();\n\t\t}\n\t}\n\tgpuUpdate(drawCalls) {\n\t\tthis.updateGpuSkinMatrices(drawCalls);\n\t\tthis.updateMorphing(drawCalls);\n\t\tthis.updateGSplats(drawCalls);\n\t}\n\tsetVertexBuffers(device, mesh) {\n\t\tdevice.setVertexBuffer(mesh.vertexBuffer);\n\t}\n\tsetMorphing(device, morphInstance) {\n\t\tif (morphInstance) {\n\t\t\tif (morphInstance.morph.useTextureMorph) {\n\t\t\t\tdevice.setVertexBuffer(morphInstance.morph.vertexBufferIds);\n\t\t\t\tthis.morphPositionTex.setValue(morphInstance.texturePositions);\n\t\t\t\tthis.morphNormalTex.setValue(morphInstance.textureNormals);\n\t\t\t\tthis.morphTexParams.setValue(morphInstance._textureParams);\n\t\t\t} else {\n\t\t\t\tfor (let t = 0; t < morphInstance._activeVertexBuffers.length; t++) {\n\t\t\t\t\tconst vb = morphInstance._activeVertexBuffers[t];\n\t\t\t\t\tif (vb) {\n\t\t\t\t\t\tconst semantic = SEMANTIC_ATTR + (t + 8);\n\t\t\t\t\t\tvb.format.elements[0].name = semantic;\n\t\t\t\t\t\tvb.format.elements[0].scopeId = device.scope.resolve(semantic);\n\t\t\t\t\t\tvb.format.update();\n\t\t\t\t\t\tdevice.setVertexBuffer(vb);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.morphWeightsA.setValue(morphInstance._shaderMorphWeightsA);\n\t\t\t\tthis.morphWeightsB.setValue(morphInstance._shaderMorphWeightsB);\n\t\t\t}\n\t\t}\n\t}\n\tsetSkinning(device, meshInstance) {\n\t\tconst skinInstance = meshInstance.skinInstance;\n\t\tif (skinInstance) {\n\t\t\tthis._skinDrawCalls++;\n\t\t\tif (device.supportsBoneTextures) {\n\t\t\t\tconst boneTexture = skinInstance.boneTexture;\n\t\t\t\tthis.boneTextureId.setValue(boneTexture);\n\t\t\t\tthis.boneTextureSizeId.setValue(skinInstance.boneTextureSize);\n\t\t\t} else {\n\t\t\t\tthis.poseMatrixId.setValue(skinInstance.matrixPalette);\n\t\t\t}\n\t\t}\n\t}\n\tdispatchViewPos(position) {\n\t\tconst vp = this.viewPos;\n\t\tvp[0] = position.x;\n\t\tvp[1] = position.y;\n\t\tvp[2] = position.z;\n\t\tthis.viewPosId.setValue(vp);\n\t}\n\tinitViewBindGroupFormat(isClustered) {\n\t\tif (this.device.supportsUniformBuffers && !this.viewUniformFormat) {\n\t\t\tconst uniforms = [new UniformFormat('matrix_viewProjection', UNIFORMTYPE_MAT4), new UniformFormat('cubeMapRotationMatrix', UNIFORMTYPE_MAT3), new UniformFormat('view_position', UNIFORMTYPE_VEC3), new UniformFormat('skyboxIntensity', UNIFORMTYPE_FLOAT), new UniformFormat('exposure', UNIFORMTYPE_FLOAT), new UniformFormat('textureBias', UNIFORMTYPE_FLOAT)];\n\t\t\tif (isClustered) {\n\t\t\t\tuniforms.push(...[new UniformFormat('clusterCellsCountByBoundsSize', UNIFORMTYPE_VEC3), new UniformFormat('clusterTextureSize', UNIFORMTYPE_VEC3), new UniformFormat('clusterBoundsMin', UNIFORMTYPE_VEC3), new UniformFormat('clusterBoundsDelta', UNIFORMTYPE_VEC3), new UniformFormat('clusterCellsDot', UNIFORMTYPE_VEC3), new UniformFormat('clusterCellsMax', UNIFORMTYPE_VEC3), new UniformFormat('clusterCompressionLimit0', UNIFORMTYPE_VEC2), new UniformFormat('shadowAtlasParams', UNIFORMTYPE_VEC2), new UniformFormat('clusterMaxCells', UNIFORMTYPE_INT), new UniformFormat('clusterSkip', UNIFORMTYPE_FLOAT)]);\n\t\t\t}\n\t\t\tthis.viewUniformFormat = new UniformBufferFormat(this.device, uniforms);\n\t\t\tconst formats = [new BindUniformBufferFormat(UNIFORM_BUFFER_DEFAULT_SLOT_NAME, SHADERSTAGE_VERTEX | SHADERSTAGE_FRAGMENT), new BindTextureFormat('lightsTextureFloat', SHADERSTAGE_FRAGMENT, TEXTUREDIMENSION_2D, SAMPLETYPE_UNFILTERABLE_FLOAT), new BindTextureFormat('lightsTexture8', SHADERSTAGE_FRAGMENT, TEXTUREDIMENSION_2D, SAMPLETYPE_UNFILTERABLE_FLOAT), new BindTextureFormat('shadowAtlasTexture', SHADERSTAGE_FRAGMENT, TEXTUREDIMENSION_2D, SAMPLETYPE_DEPTH), new BindTextureFormat('cookieAtlasTexture', SHADERSTAGE_FRAGMENT, TEXTUREDIMENSION_2D, SAMPLETYPE_FLOAT), new BindTextureFormat('areaLightsLutTex1', SHADERSTAGE_FRAGMENT, TEXTUREDIMENSION_2D, SAMPLETYPE_FLOAT), new BindTextureFormat('areaLightsLutTex2', SHADERSTAGE_FRAGMENT, TEXTUREDIMENSION_2D, SAMPLETYPE_FLOAT)];\n\t\t\tif (isClustered) {\n\t\t\t\tformats.push(...[new BindTextureFormat('clusterWorldTexture', SHADERSTAGE_FRAGMENT, TEXTUREDIMENSION_2D, SAMPLETYPE_UNFILTERABLE_FLOAT)]);\n\t\t\t}\n\t\t\tthis.viewBindGroupFormat = new BindGroupFormat(this.device, formats);\n\t\t}\n\t}\n\tsetupViewUniformBuffers(viewBindGroups, viewUniformFormat, viewBindGroupFormat, viewCount) {\n\t\tconst device = this.device;\n\t\twhile (viewBindGroups.length < viewCount) {\n\t\t\tconst ub = new UniformBuffer(device, viewUniformFormat, false);\n\t\t\tconst bg = new BindGroup(device, viewBindGroupFormat, ub);\n\t\t\tviewBindGroups.push(bg);\n\t\t}\n\t\tconst viewBindGroup = viewBindGroups[0];\n\t\tviewBindGroup.defaultUniformBuffer.update();\n\t\tviewBindGroup.update();\n\t\tdevice.setBindGroup(BINDGROUP_VIEW, viewBindGroup);\n\t}\n\tsetupMeshUniformBuffers(shaderInstance, meshInstance) {\n\t\tconst device = this.device;\n\t\tif (device.supportsUniformBuffers) {\n\t\t\tthis.modelMatrixId.setValue(meshInstance.node.worldTransform.data);\n\t\t\tthis.normalMatrixId.setValue(meshInstance.node.normalMatrix.data);\n\t\t\tconst meshBindGroup = shaderInstance.getBindGroup(device);\n\t\t\tmeshBindGroup.defaultUniformBuffer.update();\n\t\t\tmeshBindGroup.update();\n\t\t\tdevice.setBindGroup(BINDGROUP_MESH, meshBindGroup);\n\t\t}\n\t}\n\tdrawInstance(device, meshInstance, mesh, style, normal) {\n\t\tconst modelMatrix = meshInstance.node.worldTransform;\n\t\tthis.modelMatrixId.setValue(modelMatrix.data);\n\t\tif (normal) {\n\t\t\tthis.normalMatrixId.setValue(meshInstance.node.normalMatrix.data);\n\t\t}\n\t\tconst instancingData = meshInstance.instancingData;\n\t\tif (instancingData) {\n\t\t\tif (instancingData.count > 0) {\n\t\t\t\tthis._instancedDrawCalls++;\n\t\t\t\tdevice.setVertexBuffer(instancingData.vertexBuffer);\n\t\t\t\tdevice.draw(mesh.primitive[style], instancingData.count);\n\t\t\t} else {\n\t\t\t\tdevice.clearVertexBuffer();\n\t\t\t}\n\t\t} else {\n\t\t\tdevice.draw(mesh.primitive[style]);\n\t\t}\n\t}\n\tdrawInstance2(device, meshInstance, mesh, style) {\n\t\tconst instancingData = meshInstance.instancingData;\n\t\tif (instancingData) {\n\t\t\tif (instancingData.count > 0) {\n\t\t\t\tthis._instancedDrawCalls++;\n\t\t\t\tdevice.draw(mesh.primitive[style], instancingData.count, true);\n\t\t\t} else {\n\t\t\t\tdevice.clearVertexBuffer();\n\t\t\t}\n\t\t} else {\n\t\t\tdevice.draw(mesh.primitive[style], undefined, true);\n\t\t}\n\t}\n\tcull(camera, drawCalls, culledInstances) {\n\t\tconst opaque = culledInstances.opaque;\n\t\topaque.length = 0;\n\t\tconst transparent = culledInstances.transparent;\n\t\ttransparent.length = 0;\n\t\tconst doCull = camera.frustumCulling;\n\t\tconst count = drawCalls.length;\n\t\tfor (let i = 0; i < count; i++) {\n\t\t\tconst drawCall = drawCalls[i];\n\t\t\tif (drawCall.visible) {\n\t\t\t\tconst visible = !doCull || !drawCall.cull || drawCall._isVisible(camera);\n\t\t\t\tif (visible) {\n\t\t\t\t\tdrawCall.visibleThisFrame = true;\n\t\t\t\t\tconst bucket = drawCall.transparent ? transparent : opaque;\n\t\t\t\t\tbucket.push(drawCall);\n\t\t\t\t\tif (drawCall.skinInstance || drawCall.morphInstance || drawCall.gsplatInstance) {\n\t\t\t\t\t\tthis.processingMeshInstances.add(drawCall);\n\t\t\t\t\t\tif (drawCall.gsplatInstance) {\n\t\t\t\t\t\t\tdrawCall.gsplatInstance.cameras.push(camera);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tcollectLights(comp) {\n\t\tthis.lights.length = 0;\n\t\tthis.localLights.length = 0;\n\t\tconst stats = this.scene._stats;\n\t\tconst count = comp.layerList.length;\n\t\tfor (let i = 0; i < count; i++) {\n\t\t\tconst layer = comp.layerList[i];\n\t\t\tif (!_tempLayerSet.has(layer)) {\n\t\t\t\t_tempLayerSet.add(layer);\n\t\t\t\tconst lights = layer._lights;\n\t\t\t\tfor (let j = 0; j < lights.length; j++) {\n\t\t\t\t\tconst light = lights[j];\n\t\t\t\t\tif (!_tempLightSet.has(light)) {\n\t\t\t\t\t\t_tempLightSet.add(light);\n\t\t\t\t\t\tthis.lights.push(light);\n\t\t\t\t\t\tif (light._type !== LIGHTTYPE_DIRECTIONAL) {\n\t\t\t\t\t\t\tthis.localLights.push(light);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tstats.lights = this.lights.length;\n\t\t_tempLightSet.clear();\n\t\t_tempLayerSet.clear();\n\t}\n\tcullLights(camera, lights) {\n\t\tconst clusteredLightingEnabled = this.scene.clusteredLightingEnabled;\n\t\tconst physicalUnits = this.scene.physicalUnits;\n\t\tfor (let i = 0; i < lights.length; i++) {\n\t\t\tconst light = lights[i];\n\t\t\tif (light.enabled) {\n\t\t\t\tif (light._type !== LIGHTTYPE_DIRECTIONAL) {\n\t\t\t\t\tlight.getBoundingSphere(tempSphere$1);\n\t\t\t\t\tif (camera.frustum.containsSphere(tempSphere$1)) {\n\t\t\t\t\t\tlight.visibleThisFrame = true;\n\t\t\t\t\t\tlight.usePhysicalUnits = physicalUnits;\n\t\t\t\t\t\tconst screenSize = camera.getScreenSize(tempSphere$1);\n\t\t\t\t\t\tlight.maxScreenSize = Math.max(light.maxScreenSize, screenSize);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (!clusteredLightingEnabled) {\n\t\t\t\t\t\t\tif (light.castShadows && !light.shadowMap) {\n\t\t\t\t\t\t\t\tlight.visibleThisFrame = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tlight.usePhysicalUnits = this.scene.physicalUnits;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tcullShadowmaps(comp) {\n\t\tconst isClustered = this.scene.clusteredLightingEnabled;\n\t\tfor (let i = 0; i < this.localLights.length; i++) {\n\t\t\tconst light = this.localLights[i];\n\t\t\tif (light._type !== LIGHTTYPE_DIRECTIONAL) {\n\t\t\t\tif (isClustered) {\n\t\t\t\t\tif (light.atlasSlotUpdated && light.shadowUpdateMode === SHADOWUPDATE_NONE) {\n\t\t\t\t\t\tlight.shadowUpdateMode = SHADOWUPDATE_THISFRAME;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (light.shadowUpdateMode === SHADOWUPDATE_NONE && light.castShadows) {\n\t\t\t\t\t\tif (!light.getRenderData(null, 0).shadowCamera.renderTarget) {\n\t\t\t\t\t\t\tlight.shadowUpdateMode = SHADOWUPDATE_THISFRAME;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (light.visibleThisFrame && light.castShadows && light.shadowUpdateMode !== SHADOWUPDATE_NONE) {\n\t\t\t\t\tthis._shadowRendererLocal.cull(light, comp);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.cameraDirShadowLights.clear();\n\t\tconst cameras = comp.cameras;\n\t\tfor (let i = 0; i < cameras.length; i++) {\n\t\t\tconst cameraComponent = cameras[i];\n\t\t\tif (cameraComponent.enabled) {\n\t\t\t\tconst camera = cameraComponent.camera;\n\t\t\t\tlet lightList;\n\t\t\t\tconst cameraLayers = camera.layers;\n\t\t\t\tfor (let l = 0; l < cameraLayers.length; l++) {\n\t\t\t\t\tconst cameraLayer = comp.getLayerById(cameraLayers[l]);\n\t\t\t\t\tif (cameraLayer) {\n\t\t\t\t\t\tconst layerDirLights = cameraLayer.splitLights[LIGHTTYPE_DIRECTIONAL];\n\t\t\t\t\t\tfor (let j = 0; j < layerDirLights.length; j++) {\n\t\t\t\t\t\t\tconst light = layerDirLights[j];\n\t\t\t\t\t\t\tif (light.castShadows && !_tempSet.has(light)) {\n\t\t\t\t\t\t\t\tvar _lightList;\n\t\t\t\t\t\t\t\t_tempSet.add(light);\n\t\t\t\t\t\t\t\tlightList = (_lightList = lightList) != null ? _lightList : [];\n\t\t\t\t\t\t\t\tlightList.push(light);\n\t\t\t\t\t\t\t\tthis._shadowRendererDirectional.cull(light, comp, camera);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (lightList) {\n\t\t\t\t\tthis.cameraDirShadowLights.set(camera, lightList);\n\t\t\t\t}\n\t\t\t\t_tempSet.clear();\n\t\t\t}\n\t\t}\n\t}\n\tcullComposition(comp) {\n\t\tthis.processingMeshInstances.clear();\n\t\tconst numCameras = comp.cameras.length;\n\t\tfor (let i = 0; i < numCameras; i++) {\n\t\t\tconst camera = comp.cameras[i];\n\t\t\tlet currentRenderTarget;\n\t\t\tlet cameraChanged = true;\n\t\t\tthis._camerasRendered++;\n\t\t\tconst layerIds = camera.layers;\n\t\t\tfor (let j = 0; j < layerIds.length; j++) {\n\t\t\t\tconst layer = comp.getLayerById(layerIds[j]);\n\t\t\t\tif (layer && layer.enabled) {\n\t\t\t\t\tvar _camera$renderTarget;\n\t\t\t\t\tconst renderTarget = (_camera$renderTarget = camera.renderTarget) != null ? _camera$renderTarget : layer.renderTarget;\n\t\t\t\t\tif (cameraChanged || renderTarget !== currentRenderTarget) {\n\t\t\t\t\t\tcameraChanged = false;\n\t\t\t\t\t\tcurrentRenderTarget = renderTarget;\n\t\t\t\t\t\tcamera.frameUpdate(renderTarget);\n\t\t\t\t\t\tthis.updateCameraFrustum(camera.camera);\n\t\t\t\t\t}\n\t\t\t\t\tthis.cullLights(camera.camera, layer._lights);\n\t\t\t\t\tlayer.onPreCull == null || layer.onPreCull(comp.camerasMap.get(camera));\n\t\t\t\t\tconst culledInstances = layer.getCulledInstances(camera.camera);\n\t\t\t\t\tthis.cull(camera.camera, layer.meshInstances, culledInstances);\n\t\t\t\t\tlayer.onPostCull == null || layer.onPostCull(comp.camerasMap.get(camera));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this.scene.clusteredLightingEnabled) {\n\t\t\tthis.updateLightTextureAtlas();\n\t\t}\n\t\tthis.cullShadowmaps(comp);\n\t}\n\tupdateShaders(drawCalls, onlyLitShaders) {\n\t\tconst count = drawCalls.length;\n\t\tfor (let i = 0; i < count; i++) {\n\t\t\tconst mat = drawCalls[i].material;\n\t\t\tif (mat) {\n\t\t\t\tif (!_tempSet.has(mat)) {\n\t\t\t\t\t_tempSet.add(mat);\n\t\t\t\t\tif (mat.getShaderVariant !== Material.prototype.getShaderVariant) {\n\t\t\t\t\t\tif (onlyLitShaders) {\n\t\t\t\t\t\t\tif (!mat.useLighting || mat.emitter && !mat.emitter.lighting) {\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmat.clearVariants();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_tempSet.clear();\n\t}\n\tupdateFrameUniforms() {\n\t\tthis.blueNoiseTextureId.setValue(getBlueNoiseTexture(this.device));\n\t}\n\tbeginFrame(comp) {\n\t\tconst scene = this.scene;\n\t\tconst updateShaders = scene.updateShaders;\n\t\tconst layers = comp.layerList;\n\t\tconst layerCount = layers.length;\n\t\tfor (let i = 0; i < layerCount; i++) {\n\t\t\tconst layer = layers[i];\n\t\t\tconst meshInstances = layer.meshInstances;\n\t\t\tconst count = meshInstances.length;\n\t\t\tfor (let j = 0; j < count; j++) {\n\t\t\t\tconst meshInst = meshInstances[j];\n\t\t\t\tmeshInst.visibleThisFrame = false;\n\t\t\t\tif (updateShaders) {\n\t\t\t\t\t_tempMeshInstances.push(meshInst);\n\t\t\t\t}\n\t\t\t\tif (meshInst.skinInstance) {\n\t\t\t\t\t_tempMeshInstancesSkinned.push(meshInst);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (updateShaders) {\n\t\t\tconst onlyLitShaders = !scene.updateShaders;\n\t\t\tthis.updateShaders(_tempMeshInstances, onlyLitShaders);\n\t\t\tscene.updateShaders = false;\n\t\t\tscene._shaderVersion++;\n\t\t}\n\t\tthis.updateFrameUniforms();\n\t\tthis.updateCpuSkinMatrices(_tempMeshInstancesSkinned);\n\t\t_tempMeshInstances.length = 0;\n\t\t_tempMeshInstancesSkinned.length = 0;\n\t\tconst lights = this.lights;\n\t\tconst lightCount = lights.length;\n\t\tfor (let i = 0; i < lightCount; i++) {\n\t\t\tlights[i].beginFrame();\n\t\t}\n\t}\n\tupdateLightTextureAtlas() {\n\t\tthis.lightTextureAtlas.update(this.localLights, this.scene.lighting);\n\t}\n\tupdateLayerComposition(comp) {\n\t\tconst len = comp.layerList.length;\n\t\tfor (let i = 0; i < len; i++) {\n\t\t\tcomp.layerList[i]._postRenderCounter = 0;\n\t\t}\n\t\tconst scene = this.scene;\n\t\tconst shaderVersion = scene._shaderVersion;\n\t\tfor (let i = 0; i < len; i++) {\n\t\t\tconst layer = comp.layerList[i];\n\t\t\tlayer._shaderVersion = shaderVersion;\n\t\t\tlayer._preRenderCalledForCameras = 0;\n\t\t\tlayer._postRenderCalledForCameras = 0;\n\t\t\tconst transparent = comp.subLayerList[i];\n\t\t\tif (transparent) {\n\t\t\t\tlayer._postRenderCounter |= 2;\n\t\t\t} else {\n\t\t\t\tlayer._postRenderCounter |= 1;\n\t\t\t}\n\t\t\tlayer._postRenderCounterMax = layer._postRenderCounter;\n\t\t}\n\t\tcomp._update();\n\t}\n\tframeUpdate() {\n\t\tthis.clustersDebugRendered = false;\n\t\tthis.initViewBindGroupFormat(this.scene.clusteredLightingEnabled);\n\t\tthis.dirLightShadows.clear();\n\t}\n}\n\nclass RenderAction {\n\tconstructor() {\n\t\tthis.layer = null;\n\t\tthis.transparent = false;\n\t\tthis.camera = null;\n\t\tthis.renderTarget = null;\n\t\tthis.lightClusters = null;\n\t\tthis.clearColor = false;\n\t\tthis.clearDepth = false;\n\t\tthis.clearStencil = false;\n\t\tthis.triggerPostprocess = false;\n\t\tthis.firstCameraUse = false;\n\t\tthis.lastCameraUse = false;\n\t\tthis.viewBindGroups = [];\n\t\tthis.useCameraPasses = false;\n\t}\n\tdestroy() {\n\t\tthis.viewBindGroups.forEach(bg => {\n\t\t\tbg.defaultUniformBuffer.destroy();\n\t\t\tbg.destroy();\n\t\t});\n\t\tthis.viewBindGroups.length = 0;\n\t}\n\tsetupClears(camera, layer) {\n\t\tthis.clearColor = (camera == null ? void 0 : camera.clearColorBuffer) || layer.clearColorBuffer;\n\t\tthis.clearDepth = (camera == null ? void 0 : camera.clearDepthBuffer) || layer.clearDepthBuffer;\n\t\tthis.clearStencil = (camera == null ? void 0 : camera.clearStencilBuffer) || layer.clearStencilBuffer;\n\t}\n}\n\nclass RenderPassForward extends RenderPass {\n\tconstructor(device, layerComposition, scene, renderer) {\n\t\tsuper(device);\n\t\tthis.layerComposition = void 0;\n\t\tthis.scene = void 0;\n\t\tthis.renderer = void 0;\n\t\tthis.renderActions = [];\n\t\tthis.noDepthClear = false;\n\t\tthis.layerComposition = layerComposition;\n\t\tthis.scene = scene;\n\t\tthis.renderer = renderer;\n\t}\n\taddRenderAction(renderAction) {\n\t\tthis.renderActions.push(renderAction);\n\t}\n\taddLayer(cameraComponent, layer, transparent, autoClears = true) {\n\t\tconst ra = new RenderAction();\n\t\tra.renderTarget = this.renderTarget;\n\t\tra.camera = cameraComponent;\n\t\tra.layer = layer;\n\t\tra.transparent = transparent;\n\t\tif (autoClears) {\n\t\t\tconst firstRa = this.renderActions.length === 0;\n\t\t\tra.setupClears(firstRa ? cameraComponent : undefined, layer);\n\t\t}\n\t\tthis.addRenderAction(ra);\n\t}\n\taddLayers(composition, cameraComponent, startIndex, firstLayerClears, lastLayerId, lastLayerIsTransparent = true) {\n\t\tconst {\n\t\t\tlayerList,\n\t\t\tsubLayerEnabled,\n\t\t\tsubLayerList\n\t\t} = composition;\n\t\tlet clearRenderTarget = firstLayerClears;\n\t\tlet index = startIndex;\n\t\twhile (index < layerList.length) {\n\t\t\tconst layer = layerList[index];\n\t\t\tconst isTransparent = subLayerList[index];\n\t\t\tconst enabled = layer.enabled && subLayerEnabled[index];\n\t\t\tconst renderedbyCamera = cameraComponent.camera.layersSet.has(layer.id);\n\t\t\tif (enabled && renderedbyCamera) {\n\t\t\t\tthis.addLayer(cameraComponent, layer, isTransparent, clearRenderTarget);\n\t\t\t\tclearRenderTarget = false;\n\t\t\t}\n\t\t\tindex++;\n\t\t\tif (layer.id === lastLayerId && isTransparent === lastLayerIsTransparent) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn index;\n\t}\n\tupdateDirectionalShadows() {\n\t\tconst {\n\t\t\trenderer,\n\t\t\trenderActions\n\t\t} = this;\n\t\tfor (let i = 0; i < renderActions.length; i++) {\n\t\t\tconst renderAction = renderActions[i];\n\t\t\tconst cameraComp = renderAction.camera;\n\t\t\tconst camera = cameraComp.camera;\n\t\t\tconst shadowDirLights = this.renderer.cameraDirShadowLights.get(camera);\n\t\t\tif (shadowDirLights) {\n\t\t\t\tfor (let l = 0; l < shadowDirLights.length; l++) {\n\t\t\t\t\tconst light = shadowDirLights[l];\n\t\t\t\t\tif (renderer.dirLightShadows.get(light) !== camera) {\n\t\t\t\t\t\trenderer.dirLightShadows.set(light, camera);\n\t\t\t\t\t\tconst shadowPass = renderer._shadowRendererDirectional.getLightRenderPass(light, camera);\n\t\t\t\t\t\tif (shadowPass) {\n\t\t\t\t\t\t\tthis.beforePasses.push(shadowPass);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tupdateClears() {\n\t\tconst renderAction = this.renderActions[0];\n\t\tif (renderAction) {\n\t\t\tconst cameraComponent = renderAction.camera;\n\t\t\tconst camera = cameraComponent.camera;\n\t\t\tconst fullSizeClearRect = camera.fullSizeClearRect;\n\t\t\tthis.setClearColor(fullSizeClearRect && renderAction.clearColor ? camera.clearColor : undefined);\n\t\t\tthis.setClearDepth(fullSizeClearRect && renderAction.clearDepth && !this.noDepthClear ? camera.clearDepth : undefined);\n\t\t\tthis.setClearStencil(fullSizeClearRect && renderAction.clearStencil ? camera.clearStencil : undefined);\n\t\t}\n\t}\n\tframeUpdate() {\n\t\tsuper.frameUpdate();\n\t\tthis.updateDirectionalShadows();\n\t\tthis.updateClears();\n\t}\n\tbefore() {\n\t\tconst {\n\t\t\trenderActions\n\t\t} = this;\n\t\tif (renderActions.length) {\n\t\t\tconst ra = renderActions[0];\n\t\t\tif (ra.camera.onPreRender && ra.firstCameraUse) {\n\t\t\t\tra.camera.onPreRender();\n\t\t\t}\n\t\t}\n\t}\n\texecute() {\n\t\tconst {\n\t\t\tlayerComposition,\n\t\t\trenderActions\n\t\t} = this;\n\t\tfor (let i = 0; i < renderActions.length; i++) {\n\t\t\tconst ra = renderActions[i];\n\t\t\tif (layerComposition.isEnabled(ra.layer, ra.transparent)) {\n\t\t\t\tthis.renderRenderAction(ra, i === 0);\n\t\t\t}\n\t\t}\n\t}\n\tafter() {\n\t\tconst {\n\t\t\trenderActions\n\t\t} = this;\n\t\tif (renderActions.length) {\n\t\t\tconst ra = renderActions[renderActions.length - 1];\n\t\t\tif (ra.camera.onPostRender && ra.lastCameraUse) {\n\t\t\t\tra.camera.onPostRender();\n\t\t\t}\n\t\t}\n\t\tthis.beforePasses.length = 0;\n\t}\n\trenderRenderAction(renderAction, firstRenderAction) {\n\t\tconst {\n\t\t\trenderer,\n\t\t\tlayerComposition\n\t\t} = this;\n\t\tconst device = renderer.device;\n\t\tconst {\n\t\t\tlayer,\n\t\t\ttransparent,\n\t\t\tcamera\n\t\t} = renderAction;\n\t\tconst cameraPass = layerComposition.camerasMap.get(camera);\n\t\tif (!transparent && layer.onPreRenderOpaque) {\n\t\t\tlayer.onPreRenderOpaque(cameraPass);\n\t\t} else if (transparent && layer.onPreRenderTransparent) {\n\t\t\tlayer.onPreRenderTransparent(cameraPass);\n\t\t}\n\t\tif (!(layer._preRenderCalledForCameras & 1 << cameraPass)) {\n\t\t\tif (layer.onPreRender) {\n\t\t\t\tlayer.onPreRender(cameraPass);\n\t\t\t}\n\t\t\tlayer._preRenderCalledForCameras |= 1 << cameraPass;\n\t\t}\n\t\tif (camera) {\n\t\t\tvar _camera$camera$shader, _camera$camera$shader2;\n\t\t\tconst options = {\n\t\t\t\tlightClusters: renderAction.lightClusters\n\t\t\t};\n\t\t\tconst shaderPass = (_camera$camera$shader = (_camera$camera$shader2 = camera.camera.shaderPassInfo) == null ? void 0 : _camera$camera$shader2.index) != null ? _camera$camera$shader : layer.shaderPass;\n\t\t\tif (!firstRenderAction || !camera.camera.fullSizeClearRect) {\n\t\t\t\toptions.clearColor = renderAction.clearColor;\n\t\t\t\toptions.clearDepth = renderAction.clearDepth;\n\t\t\t\toptions.clearStencil = renderAction.clearStencil;\n\t\t\t}\n\t\t\trenderer.renderForwardLayer(camera.camera, renderAction.renderTarget, layer, transparent, shaderPass, renderAction.viewBindGroups, options);\n\t\t\tdevice.setBlendState(BlendState.NOBLEND);\n\t\t\tdevice.setStencilState(null, null);\n\t\t\tdevice.setAlphaToCoverage(false);\n\t\t}\n\t\tif (!transparent && layer.onPostRenderOpaque) {\n\t\t\tlayer.onPostRenderOpaque(cameraPass);\n\t\t} else if (transparent && layer.onPostRenderTransparent) {\n\t\t\tlayer.onPostRenderTransparent(cameraPass);\n\t\t}\n\t\tif (layer.onPostRender && !(layer._postRenderCalledForCameras & 1 << cameraPass)) {\n\t\t\tlayer._postRenderCounter &= ~(transparent ? 2 : 1);\n\t\t\tif (layer._postRenderCounter === 0) {\n\t\t\t\tlayer.onPostRender(cameraPass);\n\t\t\t\tlayer._postRenderCalledForCameras |= 1 << cameraPass;\n\t\t\t\tlayer._postRenderCounter = layer._postRenderCounterMax;\n\t\t\t}\n\t\t}\n\t}\n}\n\nclass RenderPassPostprocessing extends RenderPass {\n\tconstructor(device, renderer, renderAction) {\n\t\tsuper(device);\n\t\tthis.renderer = renderer;\n\t\tthis.renderAction = renderAction;\n\t\tthis.requiresCubemaps = false;\n\t}\n\texecute() {\n\t\tconst renderAction = this.renderAction;\n\t\tconst camera = renderAction.camera;\n\t\tcamera.onPostprocessing();\n\t}\n}\n\nconst _noLights = [[], [], []];\nconst _drawCallList = {\n\tdrawCalls: [],\n\tshaderInstances: [],\n\tisNewMaterial: [],\n\tlightMaskChanged: [],\n\tclear: function () {\n\t\tthis.drawCalls.length = 0;\n\t\tthis.shaderInstances.length = 0;\n\t\tthis.isNewMaterial.length = 0;\n\t\tthis.lightMaskChanged.length = 0;\n\t}\n};\nfunction vogelDiskPrecalculationSamples(numSamples) {\n\tconst samples = [];\n\tfor (let i = 0; i < numSamples; ++i) {\n\t\tconst r = Math.sqrt(i + 0.5) / Math.sqrt(numSamples);\n\t\tsamples.push(r);\n\t}\n\treturn samples;\n}\nfunction vogelSpherePrecalculationSamples(numSamples) {\n\tconst samples = [];\n\tfor (let i = 0; i < numSamples; i++) {\n\t\tconst weight = i / numSamples;\n\t\tconst radius = Math.sqrt(1.0 - weight * weight);\n\t\tsamples.push(radius);\n\t}\n\treturn samples;\n}\nclass ForwardRenderer extends Renderer {\n\tconstructor(graphicsDevice) {\n\t\tsuper(graphicsDevice);\n\t\tconst device = this.device;\n\t\tthis._forwardDrawCalls = 0;\n\t\tthis._materialSwitches = 0;\n\t\tthis._depthMapTime = 0;\n\t\tthis._forwardTime = 0;\n\t\tthis._sortTime = 0;\n\t\tconst scope = device.scope;\n\t\tthis.fogColorId = scope.resolve('fog_color');\n\t\tthis.fogStartId = scope.resolve('fog_start');\n\t\tthis.fogEndId = scope.resolve('fog_end');\n\t\tthis.fogDensityId = scope.resolve('fog_density');\n\t\tthis.ambientId = scope.resolve('light_globalAmbient');\n\t\tthis.skyboxIntensityId = scope.resolve('skyboxIntensity');\n\t\tthis.cubeMapRotationMatrixId = scope.resolve('cubeMapRotationMatrix');\n\t\tthis.pcssDiskSamplesId = scope.resolve('pcssDiskSamples[0]');\n\t\tthis.pcssSphereSamplesId = scope.resolve('pcssSphereSamples[0]');\n\t\tthis.lightColorId = [];\n\t\tthis.lightDir = [];\n\t\tthis.lightDirId = [];\n\t\tthis.lightShadowMapId = [];\n\t\tthis.lightShadowMatrixId = [];\n\t\tthis.lightShadowParamsId = [];\n\t\tthis.lightShadowIntensity = [];\n\t\tthis.lightRadiusId = [];\n\t\tthis.lightPos = [];\n\t\tthis.lightPosId = [];\n\t\tthis.lightWidth = [];\n\t\tthis.lightWidthId = [];\n\t\tthis.lightHeight = [];\n\t\tthis.lightHeightId = [];\n\t\tthis.lightInAngleId = [];\n\t\tthis.lightOutAngleId = [];\n\t\tthis.lightCookieId = [];\n\t\tthis.lightCookieIntId = [];\n\t\tthis.lightCookieMatrixId = [];\n\t\tthis.lightCookieOffsetId = [];\n\t\tthis.lightShadowSearchAreaId = [];\n\t\tthis.lightCameraParamsId = [];\n\t\tthis.shadowMatrixPaletteId = [];\n\t\tthis.shadowCascadeDistancesId = [];\n\t\tthis.shadowCascadeCountId = [];\n\t\tthis.screenSizeId = scope.resolve('uScreenSize');\n\t\tthis._screenSize = new Float32Array(4);\n\t\tthis.fogColor = new Float32Array(3);\n\t\tthis.ambientColor = new Float32Array(3);\n\t\tthis.pcssDiskSamples = vogelDiskPrecalculationSamples(16);\n\t\tthis.pcssSphereSamples = vogelSpherePrecalculationSamples(16);\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t}\n\tdispatchGlobalLights(scene) {\n\t\tthis.ambientColor[0] = scene.ambientLight.r;\n\t\tthis.ambientColor[1] = scene.ambientLight.g;\n\t\tthis.ambientColor[2] = scene.ambientLight.b;\n\t\tif (scene.gammaCorrection) {\n\t\t\tfor (let i = 0; i < 3; i++) {\n\t\t\t\tthis.ambientColor[i] = Math.pow(this.ambientColor[i], 2.2);\n\t\t\t}\n\t\t}\n\t\tif (scene.physicalUnits) {\n\t\t\tfor (let i = 0; i < 3; i++) {\n\t\t\t\tthis.ambientColor[i] *= scene.ambientLuminance;\n\t\t\t}\n\t\t}\n\t\tthis.ambientId.setValue(this.ambientColor);\n\t\tthis.skyboxIntensityId.setValue(scene.physicalUnits ? scene.skyboxLuminance : scene.skyboxIntensity);\n\t\tthis.cubeMapRotationMatrixId.setValue(scene._skyboxRotationMat3.data);\n\t}\n\t_resolveLight(scope, i) {\n\t\tconst light = `light${i}`;\n\t\tthis.lightColorId[i] = scope.resolve(`${light}_color`);\n\t\tthis.lightDir[i] = new Float32Array(3);\n\t\tthis.lightDirId[i] = scope.resolve(`${light}_direction`);\n\t\tthis.lightShadowMapId[i] = scope.resolve(`${light}_shadowMap`);\n\t\tthis.lightShadowMatrixId[i] = scope.resolve(`${light}_shadowMatrix`);\n\t\tthis.lightShadowParamsId[i] = scope.resolve(`${light}_shadowParams`);\n\t\tthis.lightShadowIntensity[i] = scope.resolve(`${light}_shadowIntensity`);\n\t\tthis.lightShadowSearchAreaId[i] = scope.resolve(`${light}_shadowSearchArea`);\n\t\tthis.lightRadiusId[i] = scope.resolve(`${light}_radius`);\n\t\tthis.lightPos[i] = new Float32Array(3);\n\t\tthis.lightPosId[i] = scope.resolve(`${light}_position`);\n\t\tthis.lightWidth[i] = new Float32Array(3);\n\t\tthis.lightWidthId[i] = scope.resolve(`${light}_halfWidth`);\n\t\tthis.lightHeight[i] = new Float32Array(3);\n\t\tthis.lightHeightId[i] = scope.resolve(`${light}_halfHeight`);\n\t\tthis.lightInAngleId[i] = scope.resolve(`${light}_innerConeAngle`);\n\t\tthis.lightOutAngleId[i] = scope.resolve(`${light}_outerConeAngle`);\n\t\tthis.lightCookieId[i] = scope.resolve(`${light}_cookie`);\n\t\tthis.lightCookieIntId[i] = scope.resolve(`${light}_cookieIntensity`);\n\t\tthis.lightCookieMatrixId[i] = scope.resolve(`${light}_cookieMatrix`);\n\t\tthis.lightCookieOffsetId[i] = scope.resolve(`${light}_cookieOffset`);\n\t\tthis.lightCameraParamsId[i] = scope.resolve(`${light}_cameraParams`);\n\t\tthis.shadowMatrixPaletteId[i] = scope.resolve(`${light}_shadowMatrixPalette[0]`);\n\t\tthis.shadowCascadeDistancesId[i] = scope.resolve(`${light}_shadowCascadeDistances[0]`);\n\t\tthis.shadowCascadeCountId[i] = scope.resolve(`${light}_shadowCascadeCount`);\n\t}\n\tsetLTCDirectionalLight(wtm, cnt, dir, campos, far) {\n\t\tthis.lightPos[cnt][0] = campos.x - dir.x * far;\n\t\tthis.lightPos[cnt][1] = campos.y - dir.y * far;\n\t\tthis.lightPos[cnt][2] = campos.z - dir.z * far;\n\t\tthis.lightPosId[cnt].setValue(this.lightPos[cnt]);\n\t\tconst hWidth = wtm.transformVector(new Vec3(-0.5, 0, 0));\n\t\tthis.lightWidth[cnt][0] = hWidth.x * far;\n\t\tthis.lightWidth[cnt][1] = hWidth.y * far;\n\t\tthis.lightWidth[cnt][2] = hWidth.z * far;\n\t\tthis.lightWidthId[cnt].setValue(this.lightWidth[cnt]);\n\t\tconst hHeight = wtm.transformVector(new Vec3(0, 0, 0.5));\n\t\tthis.lightHeight[cnt][0] = hHeight.x * far;\n\t\tthis.lightHeight[cnt][1] = hHeight.y * far;\n\t\tthis.lightHeight[cnt][2] = hHeight.z * far;\n\t\tthis.lightHeightId[cnt].setValue(this.lightHeight[cnt]);\n\t}\n\tdispatchDirectLights(dirs, scene, mask, camera) {\n\t\tlet cnt = 0;\n\t\tconst scope = this.device.scope;\n\t\tfor (let i = 0; i < dirs.length; i++) {\n\t\t\tif (!(dirs[i].mask & mask)) continue;\n\t\t\tconst directional = dirs[i];\n\t\t\tconst wtm = directional._node.getWorldTransform();\n\t\t\tif (!this.lightColorId[cnt]) {\n\t\t\t\tthis._resolveLight(scope, cnt);\n\t\t\t}\n\t\t\tthis.lightColorId[cnt].setValue(scene.gammaCorrection ? directional._linearFinalColor : directional._finalColor);\n\t\t\twtm.getY(directional._direction).mulScalar(-1);\n\t\t\tdirectional._direction.normalize();\n\t\t\tthis.lightDir[cnt][0] = directional._direction.x;\n\t\t\tthis.lightDir[cnt][1] = directional._direction.y;\n\t\t\tthis.lightDir[cnt][2] = directional._direction.z;\n\t\t\tthis.lightDirId[cnt].setValue(this.lightDir[cnt]);\n\t\t\tif (directional.shape !== LIGHTSHAPE_PUNCTUAL) {\n\t\t\t\tthis.setLTCDirectionalLight(wtm, cnt, directional._direction, camera._node.getPosition(), camera.farClip);\n\t\t\t}\n\t\t\tif (directional.castShadows) {\n\t\t\t\tconst lightRenderData = directional.getRenderData(camera, 0);\n\t\t\t\tconst biases = directional._getUniformBiasValues(lightRenderData);\n\t\t\t\tthis.lightShadowMapId[cnt].setValue(lightRenderData.shadowBuffer);\n\t\t\t\tthis.lightShadowMatrixId[cnt].setValue(lightRenderData.shadowMatrix.data);\n\t\t\t\tthis.shadowMatrixPaletteId[cnt].setValue(directional._shadowMatrixPalette);\n\t\t\t\tthis.shadowCascadeDistancesId[cnt].setValue(directional._shadowCascadeDistances);\n\t\t\t\tthis.shadowCascadeCountId[cnt].setValue(directional.numCascades);\n\t\t\t\tthis.lightShadowIntensity[cnt].setValue(directional.shadowIntensity);\n\t\t\t\tconst projectionCompensation = 50.0 / lightRenderData.projectionCompensation;\n\t\t\t\tconst shadowRT = lightRenderData.shadowCamera.renderTarget;\n\t\t\t\tif (shadowRT) {\n\t\t\t\t\tconst pixelsPerMeter = directional.penumbraSize / shadowRT.width;\n\t\t\t\t\tthis.lightShadowSearchAreaId[cnt].setValue(pixelsPerMeter * projectionCompensation);\n\t\t\t\t}\n\t\t\t\tconst cameraParams = directional._shadowCameraParams;\n\t\t\t\tcameraParams.length = 4;\n\t\t\t\tcameraParams[0] = lightRenderData.depthRangeCompensation;\n\t\t\t\tcameraParams[1] = lightRenderData.shadowCamera._farClip;\n\t\t\t\tcameraParams[2] = lightRenderData.shadowCamera._nearClip;\n\t\t\t\tcameraParams[3] = 1;\n\t\t\t\tthis.lightCameraParamsId[cnt].setValue(cameraParams);\n\t\t\t\tconst params = directional._shadowRenderParams;\n\t\t\t\tparams.length = 4;\n\t\t\t\tparams[0] = directional._shadowResolution;\n\t\t\t\tparams[1] = biases.normalBias;\n\t\t\t\tparams[2] = biases.bias;\n\t\t\t\tparams[3] = 0;\n\t\t\t\tthis.lightShadowParamsId[cnt].setValue(params);\n\t\t\t}\n\t\t\tcnt++;\n\t\t}\n\t\treturn cnt;\n\t}\n\tsetLTCPositionalLight(wtm, cnt) {\n\t\tconst hWidth = wtm.transformVector(new Vec3(-0.5, 0, 0));\n\t\tthis.lightWidth[cnt][0] = hWidth.x;\n\t\tthis.lightWidth[cnt][1] = hWidth.y;\n\t\tthis.lightWidth[cnt][2] = hWidth.z;\n\t\tthis.lightWidthId[cnt].setValue(this.lightWidth[cnt]);\n\t\tconst hHeight = wtm.transformVector(new Vec3(0, 0, 0.5));\n\t\tthis.lightHeight[cnt][0] = hHeight.x;\n\t\tthis.lightHeight[cnt][1] = hHeight.y;\n\t\tthis.lightHeight[cnt][2] = hHeight.z;\n\t\tthis.lightHeightId[cnt].setValue(this.lightHeight[cnt]);\n\t}\n\tdispatchOmniLight(scene, scope, omni, cnt) {\n\t\tconst wtm = omni._node.getWorldTransform();\n\t\tif (!this.lightColorId[cnt]) {\n\t\t\tthis._resolveLight(scope, cnt);\n\t\t}\n\t\tthis.lightRadiusId[cnt].setValue(omni.attenuationEnd);\n\t\tthis.lightColorId[cnt].setValue(scene.gammaCorrection ? omni._linearFinalColor : omni._finalColor);\n\t\twtm.getTranslation(omni._position);\n\t\tthis.lightPos[cnt][0] = omni._position.x;\n\t\tthis.lightPos[cnt][1] = omni._position.y;\n\t\tthis.lightPos[cnt][2] = omni._position.z;\n\t\tthis.lightPosId[cnt].setValue(this.lightPos[cnt]);\n\t\tif (omni.shape !== LIGHTSHAPE_PUNCTUAL) {\n\t\t\tthis.setLTCPositionalLight(wtm, cnt);\n\t\t}\n\t\tif (omni.castShadows) {\n\t\t\tconst lightRenderData = omni.getRenderData(null, 0);\n\t\t\tthis.lightShadowMapId[cnt].setValue(lightRenderData.shadowBuffer);\n\t\t\tconst biases = omni._getUniformBiasValues(lightRenderData);\n\t\t\tconst params = omni._shadowRenderParams;\n\t\t\tparams.length = 4;\n\t\t\tparams[0] = omni._shadowResolution;\n\t\t\tparams[1] = biases.normalBias;\n\t\t\tparams[2] = biases.bias;\n\t\t\tparams[3] = 1.0 / omni.attenuationEnd;\n\t\t\tthis.lightShadowParamsId[cnt].setValue(params);\n\t\t\tthis.lightShadowIntensity[cnt].setValue(omni.shadowIntensity);\n\t\t\tconst pixelsPerMeter = omni.penumbraSize / lightRenderData.shadowCamera.renderTarget.width;\n\t\t\tthis.lightShadowSearchAreaId[cnt].setValue(pixelsPerMeter);\n\t\t\tconst cameraParams = omni._shadowCameraParams;\n\t\t\tcameraParams.length = 4;\n\t\t\tcameraParams[0] = lightRenderData.depthRangeCompensation;\n\t\t\tcameraParams[1] = lightRenderData.shadowCamera._farClip;\n\t\t\tcameraParams[2] = lightRenderData.shadowCamera._nearClip;\n\t\t\tcameraParams[3] = 0;\n\t\t\tthis.lightCameraParamsId[cnt].setValue(cameraParams);\n\t\t}\n\t\tif (omni._cookie) {\n\t\t\tthis.lightCookieId[cnt].setValue(omni._cookie);\n\t\t\tthis.lightShadowMatrixId[cnt].setValue(wtm.data);\n\t\t\tthis.lightCookieIntId[cnt].setValue(omni.cookieIntensity);\n\t\t}\n\t}\n\tdispatchSpotLight(scene, scope, spot, cnt) {\n\t\tconst wtm = spot._node.getWorldTransform();\n\t\tif (!this.lightColorId[cnt]) {\n\t\t\tthis._resolveLight(scope, cnt);\n\t\t}\n\t\tthis.lightInAngleId[cnt].setValue(spot._innerConeAngleCos);\n\t\tthis.lightOutAngleId[cnt].setValue(spot._outerConeAngleCos);\n\t\tthis.lightRadiusId[cnt].setValue(spot.attenuationEnd);\n\t\tthis.lightColorId[cnt].setValue(scene.gammaCorrection ? spot._linearFinalColor : spot._finalColor);\n\t\twtm.getTranslation(spot._position);\n\t\tthis.lightPos[cnt][0] = spot._position.x;\n\t\tthis.lightPos[cnt][1] = spot._position.y;\n\t\tthis.lightPos[cnt][2] = spot._position.z;\n\t\tthis.lightPosId[cnt].setValue(this.lightPos[cnt]);\n\t\tif (spot.shape !== LIGHTSHAPE_PUNCTUAL) {\n\t\t\tthis.setLTCPositionalLight(wtm, cnt);\n\t\t}\n\t\twtm.getY(spot._direction).mulScalar(-1);\n\t\tspot._direction.normalize();\n\t\tthis.lightDir[cnt][0] = spot._direction.x;\n\t\tthis.lightDir[cnt][1] = spot._direction.y;\n\t\tthis.lightDir[cnt][2] = spot._direction.z;\n\t\tthis.lightDirId[cnt].setValue(this.lightDir[cnt]);\n\t\tif (spot.castShadows) {\n\t\t\tconst lightRenderData = spot.getRenderData(null, 0);\n\t\t\tthis.lightShadowMapId[cnt].setValue(lightRenderData.shadowBuffer);\n\t\t\tthis.lightShadowMatrixId[cnt].setValue(lightRenderData.shadowMatrix.data);\n\t\t\tconst biases = spot._getUniformBiasValues(lightRenderData);\n\t\t\tconst params = spot._shadowRenderParams;\n\t\t\tparams.length = 4;\n\t\t\tparams[0] = spot._shadowResolution;\n\t\t\tparams[1] = biases.normalBias;\n\t\t\tparams[2] = biases.bias;\n\t\t\tparams[3] = 1.0 / spot.attenuationEnd;\n\t\t\tthis.lightShadowParamsId[cnt].setValue(params);\n\t\t\tthis.lightShadowIntensity[cnt].setValue(spot.shadowIntensity);\n\t\t\tconst pixelsPerMeter = spot.penumbraSize / lightRenderData.shadowCamera.renderTarget.width;\n\t\t\tconst fov = lightRenderData.shadowCamera._fov * Math.PI / 180.0;\n\t\t\tconst fovRatio = 1.0 / Math.tan(fov / 2.0);\n\t\t\tthis.lightShadowSearchAreaId[cnt].setValue(pixelsPerMeter * fovRatio);\n\t\t\tconst cameraParams = spot._shadowCameraParams;\n\t\t\tcameraParams.length = 4;\n\t\t\tcameraParams[0] = lightRenderData.depthRangeCompensation;\n\t\t\tcameraParams[1] = lightRenderData.shadowCamera._farClip;\n\t\t\tcameraParams[2] = lightRenderData.shadowCamera._nearClip;\n\t\t\tcameraParams[3] = 0;\n\t\t\tthis.lightCameraParamsId[cnt].setValue(cameraParams);\n\t\t}\n\t\tif (spot._cookie) {\n\t\t\tif (!spot.castShadows) {\n\t\t\t\tconst cookieMatrix = LightCamera.evalSpotCookieMatrix(spot);\n\t\t\t\tthis.lightShadowMatrixId[cnt].setValue(cookieMatrix.data);\n\t\t\t}\n\t\t\tthis.lightCookieId[cnt].setValue(spot._cookie);\n\t\t\tthis.lightCookieIntId[cnt].setValue(spot.cookieIntensity);\n\t\t\tif (spot._cookieTransform) {\n\t\t\t\tspot._cookieTransformUniform[0] = spot._cookieTransform.x;\n\t\t\t\tspot._cookieTransformUniform[1] = spot._cookieTransform.y;\n\t\t\t\tspot._cookieTransformUniform[2] = spot._cookieTransform.z;\n\t\t\t\tspot._cookieTransformUniform[3] = spot._cookieTransform.w;\n\t\t\t\tthis.lightCookieMatrixId[cnt].setValue(spot._cookieTransformUniform);\n\t\t\t\tspot._cookieOffsetUniform[0] = spot._cookieOffset.x;\n\t\t\t\tspot._cookieOffsetUniform[1] = spot._cookieOffset.y;\n\t\t\t\tthis.lightCookieOffsetId[cnt].setValue(spot._cookieOffsetUniform);\n\t\t\t}\n\t\t}\n\t}\n\tdispatchLocalLights(sortedLights, scene, mask, usedDirLights) {\n\t\tlet cnt = usedDirLights;\n\t\tconst scope = this.device.scope;\n\t\tconst omnis = sortedLights[LIGHTTYPE_OMNI];\n\t\tconst numOmnis = omnis.length;\n\t\tfor (let i = 0; i < numOmnis; i++) {\n\t\t\tconst omni = omnis[i];\n\t\t\tif (!(omni.mask & mask)) continue;\n\t\t\tthis.dispatchOmniLight(scene, scope, omni, cnt);\n\t\t\tcnt++;\n\t\t}\n\t\tconst spts = sortedLights[LIGHTTYPE_SPOT];\n\t\tconst numSpts = spts.length;\n\t\tfor (let i = 0; i < numSpts; i++) {\n\t\t\tconst spot = spts[i];\n\t\t\tif (!(spot.mask & mask)) continue;\n\t\t\tthis.dispatchSpotLight(scene, scope, spot, cnt);\n\t\t\tcnt++;\n\t\t}\n\t}\n\trenderForwardPrepareMaterials(camera, drawCalls, sortedLights, layer, pass) {\n\t\tvar _layer$getLightHash;\n\t\tconst addCall = (drawCall, shaderInstance, isNewMaterial, lightMaskChanged) => {\n\t\t\t_drawCallList.drawCalls.push(drawCall);\n\t\t\t_drawCallList.shaderInstances.push(shaderInstance);\n\t\t\t_drawCallList.isNewMaterial.push(isNewMaterial);\n\t\t\t_drawCallList.lightMaskChanged.push(lightMaskChanged);\n\t\t};\n\t\t_drawCallList.clear();\n\t\tconst device = this.device;\n\t\tconst scene = this.scene;\n\t\tconst clusteredLightingEnabled = scene.clusteredLightingEnabled;\n\t\tconst lightHash = (_layer$getLightHash = layer == null ? void 0 : layer.getLightHash(clusteredLightingEnabled)) != null ? _layer$getLightHash : 0;\n\t\tlet prevMaterial = null,\n\t\t\tprevObjDefs,\n\t\t\tprevLightMask;\n\t\tconst drawCallsCount = drawCalls.length;\n\t\tfor (let i = 0; i < drawCallsCount; i++) {\n\t\t\tconst drawCall = drawCalls[i];\n\t\t\tdrawCall.ensureMaterial(device);\n\t\t\tconst material = drawCall.material;\n\t\t\tconst objDefs = drawCall._shaderDefs;\n\t\t\tconst lightMask = drawCall.mask;\n\t\t\tif (material && material === prevMaterial && objDefs !== prevObjDefs) {\n\t\t\t\tprevMaterial = null;\n\t\t\t}\n\t\t\tif (material !== prevMaterial) {\n\t\t\t\tthis._materialSwitches++;\n\t\t\t\tmaterial._scene = scene;\n\t\t\t\tif (material.dirty) {\n\t\t\t\t\tmaterial.updateUniforms(device, scene);\n\t\t\t\t\tmaterial.dirty = false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst shaderInstance = drawCall.getShaderInstance(pass, lightHash, scene, this.viewUniformFormat, this.viewBindGroupFormat, sortedLights);\n\t\t\taddCall(drawCall, shaderInstance, material !== prevMaterial, !prevMaterial || lightMask !== prevLightMask);\n\t\t\tprevMaterial = material;\n\t\t\tprevObjDefs = objDefs;\n\t\t\tprevLightMask = lightMask;\n\t\t}\n\t\treturn _drawCallList;\n\t}\n\trenderForwardInternal(camera, preparedCalls, sortedLights, pass, drawCallback, flipFaces) {\n\t\tconst device = this.device;\n\t\tconst scene = this.scene;\n\t\tconst passFlag = 1 << pass;\n\t\tconst flipFactor = flipFaces ? -1 : 1;\n\t\tconst clusteredLightingEnabled = this.scene.clusteredLightingEnabled;\n\t\tconst preparedCallsCount = preparedCalls.drawCalls.length;\n\t\tfor (let i = 0; i < preparedCallsCount; i++) {\n\t\t\tvar _drawCall$stencilFron, _drawCall$stencilBack;\n\t\t\tconst drawCall = preparedCalls.drawCalls[i];\n\t\t\tconst newMaterial = preparedCalls.isNewMaterial[i];\n\t\t\tconst lightMaskChanged = preparedCalls.lightMaskChanged[i];\n\t\t\tconst shaderInstance = preparedCalls.shaderInstances[i];\n\t\t\tconst material = drawCall.material;\n\t\t\tconst lightMask = drawCall.mask;\n\t\t\tif (newMaterial) {\n\t\t\t\tconst asyncCompile = false;\n\t\t\t\tdevice.setShader(shaderInstance.shader, asyncCompile);\n\t\t\t\tmaterial.setParameters(device);\n\t\t\t\tif (lightMaskChanged) {\n\t\t\t\t\tconst usedDirLights = this.dispatchDirectLights(sortedLights[LIGHTTYPE_DIRECTIONAL], scene, lightMask, camera);\n\t\t\t\t\tif (!clusteredLightingEnabled) {\n\t\t\t\t\t\tthis.dispatchLocalLights(sortedLights, scene, lightMask, usedDirLights);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.alphaTestId.setValue(material.alphaTest);\n\t\t\t\tdevice.setBlendState(material.blendState);\n\t\t\t\tdevice.setDepthState(material.depthState);\n\t\t\t\tdevice.setAlphaToCoverage(material.alphaToCoverage);\n\t\t\t}\n\t\t\tthis.setupCullMode(camera._cullFaces, flipFactor, drawCall);\n\t\t\tconst stencilFront = (_drawCall$stencilFron = drawCall.stencilFront) != null ? _drawCall$stencilFron : material.stencilFront;\n\t\t\tconst stencilBack = (_drawCall$stencilBack = drawCall.stencilBack) != null ? _drawCall$stencilBack : material.stencilBack;\n\t\t\tdevice.setStencilState(stencilFront, stencilBack);\n\t\t\tconst mesh = drawCall.mesh;\n\t\t\tdrawCall.setParameters(device, passFlag);\n\t\t\tthis.setVertexBuffers(device, mesh);\n\t\t\tthis.setMorphing(device, drawCall.morphInstance);\n\t\t\tthis.setSkinning(device, drawCall);\n\t\t\tthis.setupMeshUniformBuffers(shaderInstance, drawCall);\n\t\t\tconst style = drawCall.renderStyle;\n\t\t\tdevice.setIndexBuffer(mesh.indexBuffer[style]);\n\t\t\tdrawCallback == null || drawCallback(drawCall, i);\n\t\t\tif (camera.xr && camera.xr.session && camera.xr.views.list.length) {\n\t\t\t\tconst views = camera.xr.views;\n\t\t\t\tfor (let v = 0; v < views.list.length; v++) {\n\t\t\t\t\tconst view = views.list[v];\n\t\t\t\t\tdevice.setViewport(view.viewport.x, view.viewport.y, view.viewport.z, view.viewport.w);\n\t\t\t\t\tthis.projId.setValue(view.projMat.data);\n\t\t\t\t\tthis.projSkyboxId.setValue(view.projMat.data);\n\t\t\t\t\tthis.viewId.setValue(view.viewOffMat.data);\n\t\t\t\t\tthis.viewInvId.setValue(view.viewInvOffMat.data);\n\t\t\t\t\tthis.viewId3.setValue(view.viewMat3.data);\n\t\t\t\t\tthis.viewProjId.setValue(view.projViewOffMat.data);\n\t\t\t\t\tthis.viewPosId.setValue(view.positionData);\n\t\t\t\t\tthis.viewIndexId.setValue(v);\n\t\t\t\t\tif (v === 0) {\n\t\t\t\t\t\tthis.drawInstance(device, drawCall, mesh, style, true);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.drawInstance2(device, drawCall, mesh, style);\n\t\t\t\t\t}\n\t\t\t\t\tthis._forwardDrawCalls++;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.drawInstance(device, drawCall, mesh, style, true);\n\t\t\t\tthis._forwardDrawCalls++;\n\t\t\t}\n\t\t\tif (i < preparedCallsCount - 1 && !preparedCalls.isNewMaterial[i + 1]) {\n\t\t\t\tmaterial.setParameters(device, drawCall.parameters);\n\t\t\t}\n\t\t}\n\t}\n\trenderForward(camera, allDrawCalls, sortedLights, pass, drawCallback, layer, flipFaces) {\n\t\tconst preparedCalls = this.renderForwardPrepareMaterials(camera, allDrawCalls, sortedLights, layer, pass);\n\t\tthis.renderForwardInternal(camera, preparedCalls, sortedLights, pass, drawCallback, flipFaces);\n\t\t_drawCallList.clear();\n\t}\n\trenderForwardLayer(camera, renderTarget, layer, transparent, shaderPass, viewBindGroups, options = {}) {\n\t\tvar _options$clearColor, _options$clearDepth, _options$clearStencil;\n\t\tconst {\n\t\t\tscene,\n\t\t\tdevice\n\t\t} = this;\n\t\tconst clusteredLightingEnabled = scene.clusteredLightingEnabled;\n\t\tthis.setupViewport(camera, renderTarget);\n\t\tconst clearColor = (_options$clearColor = options.clearColor) != null ? _options$clearColor : false;\n\t\tconst clearDepth = (_options$clearDepth = options.clearDepth) != null ? _options$clearDepth : false;\n\t\tconst clearStencil = (_options$clearStencil = options.clearStencil) != null ? _options$clearStencil : false;\n\t\tif (clearColor || clearDepth || clearStencil) {\n\t\t\tthis.clear(camera, clearColor, clearDepth, clearStencil);\n\t\t}\n\t\tlet visible, splitLights;\n\t\tif (layer) {\n\t\t\tlayer.sortVisible(camera, transparent);\n\t\t\tconst culledInstances = layer.getCulledInstances(camera);\n\t\t\tvisible = transparent ? culledInstances.transparent : culledInstances.opaque;\n\t\t\tscene.immediate.onPreRenderLayer(layer, visible, transparent);\n\t\t\tif (layer.requiresLightCube) {\n\t\t\t\tthis.lightCube.update(scene.ambientLight, layer._lights);\n\t\t\t\tthis.constantLightCube.setValue(this.lightCube.colors);\n\t\t\t}\n\t\t\tsplitLights = layer.splitLights;\n\t\t} else {\n\t\t\tvar _options$splitLights;\n\t\t\tvisible = options.meshInstances;\n\t\t\tsplitLights = (_options$splitLights = options.splitLights) != null ? _options$splitLights : _noLights;\n\t\t}\n\t\tif (clusteredLightingEnabled) {\n\t\t\tvar _options$lightCluster;\n\t\t\tconst lightClusters = (_options$lightCluster = options.lightClusters) != null ? _options$lightCluster : this.worldClustersAllocator.empty;\n\t\t\tlightClusters.activate();\n\t\t\tif (layer) {\n\t\t\t\tif (!this.clustersDebugRendered && scene.lighting.debugLayer === layer.id) {\n\t\t\t\t\tthis.clustersDebugRendered = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tscene._activeCamera = camera;\n\t\tconst viewCount = this.setCameraUniforms(camera, renderTarget);\n\t\tif (device.supportsUniformBuffers) {\n\t\t\tthis.setupViewUniformBuffers(viewBindGroups, this.viewUniformFormat, this.viewBindGroupFormat, viewCount);\n\t\t}\n\t\tconst flipFaces = !!(camera._flipFaces ^ (renderTarget == null ? void 0 : renderTarget.flipY));\n\t\tconst forwardDrawCalls = this._forwardDrawCalls;\n\t\tthis.renderForward(camera, visible, splitLights, shaderPass, layer == null ? void 0 : layer.onDrawCall, layer, flipFaces);\n\t\tif (layer) {\n\t\t\tlayer._forwardDrawCalls += this._forwardDrawCalls - forwardDrawCalls;\n\t\t}\n\t}\n\tsetSceneConstants() {\n\t\tconst scene = this.scene;\n\t\tthis.dispatchGlobalLights(scene);\n\t\tif (scene.fog !== FOG_NONE) {\n\t\t\tthis.fogColor[0] = scene.fogColor.r;\n\t\t\tthis.fogColor[1] = scene.fogColor.g;\n\t\t\tthis.fogColor[2] = scene.fogColor.b;\n\t\t\tif (scene.gammaCorrection) {\n\t\t\t\tfor (let i = 0; i < 3; i++) {\n\t\t\t\t\tthis.fogColor[i] = Math.pow(this.fogColor[i], 2.2);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.fogColorId.setValue(this.fogColor);\n\t\t\tif (scene.fog === FOG_LINEAR) {\n\t\t\t\tthis.fogStartId.setValue(scene.fogStart);\n\t\t\t\tthis.fogEndId.setValue(scene.fogEnd);\n\t\t\t} else {\n\t\t\t\tthis.fogDensityId.setValue(scene.fogDensity);\n\t\t\t}\n\t\t}\n\t\tconst device = this.device;\n\t\tthis._screenSize[0] = device.width;\n\t\tthis._screenSize[1] = device.height;\n\t\tthis._screenSize[2] = 1 / device.width;\n\t\tthis._screenSize[3] = 1 / device.height;\n\t\tthis.screenSizeId.setValue(this._screenSize);\n\t\tthis.pcssDiskSamplesId.setValue(this.pcssDiskSamples);\n\t\tthis.pcssSphereSamplesId.setValue(this.pcssSphereSamples);\n\t}\n\tbuildFrameGraph(frameGraph, layerComposition) {\n\t\tconst scene = this.scene;\n\t\tconst webgl1 = this.device.isWebGL1;\n\t\tframeGraph.reset();\n\t\tthis.update(layerComposition);\n\t\tif (scene.clusteredLightingEnabled) {\n\t\t\tconst {\n\t\t\t\tshadowsEnabled,\n\t\t\t\tcookiesEnabled\n\t\t\t} = scene.lighting;\n\t\t\tthis._renderPassUpdateClustered.update(frameGraph, shadowsEnabled, cookiesEnabled, this.lights, this.localLights);\n\t\t\tframeGraph.addRenderPass(this._renderPassUpdateClustered);\n\t\t} else {\n\t\t\tthis._shadowRendererLocal.buildNonClusteredRenderPasses(frameGraph, this.localLights);\n\t\t}\n\t\tlet startIndex = 0;\n\t\tlet newStart = true;\n\t\tlet renderTarget = null;\n\t\tconst renderActions = layerComposition._renderActions;\n\t\tfor (let i = startIndex; i < renderActions.length; i++) {\n\t\t\tconst renderAction = renderActions[i];\n\t\t\tconst {\n\t\t\t\tlayer,\n\t\t\t\tcamera\n\t\t\t} = renderAction;\n\t\t\tif (renderAction.useCameraPasses) {\n\t\t\t\tcamera.camera.renderPasses.forEach(renderPass => {\n\t\t\t\t\tframeGraph.addRenderPass(renderPass);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst depthPass = camera.camera.renderPassDepthGrab;\n\t\t\t\tif (depthPass && webgl1 && renderAction.firstCameraUse) {\n\t\t\t\t\tdepthPass.options.resizeSource = camera.camera.renderTarget;\n\t\t\t\t\tdepthPass.update(this.scene);\n\t\t\t\t\tframeGraph.addRenderPass(depthPass);\n\t\t\t\t}\n\t\t\t\tconst isDepthLayer = layer.id === LAYERID_DEPTH;\n\t\t\t\tif (webgl1 && isDepthLayer && !camera.renderSceneColorMap) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst isGrabPass = isDepthLayer && (camera.renderSceneColorMap || camera.renderSceneDepthMap);\n\t\t\t\tif (newStart) {\n\t\t\t\t\tnewStart = false;\n\t\t\t\t\tstartIndex = i;\n\t\t\t\t\trenderTarget = renderAction.renderTarget;\n\t\t\t\t}\n\t\t\t\tconst nextRenderAction = renderActions[i + 1];\n\t\t\t\tconst isNextLayerDepth = nextRenderAction ? nextRenderAction.layer.id === LAYERID_DEPTH : false;\n\t\t\t\tconst isNextLayerGrabPass = isNextLayerDepth && (camera.renderSceneColorMap || camera.renderSceneDepthMap) && !webgl1;\n\t\t\t\tconst nextNeedDirShadows = nextRenderAction ? nextRenderAction.firstCameraUse && this.cameraDirShadowLights.has(nextRenderAction.camera.camera) : false;\n\t\t\t\tif (!nextRenderAction || nextRenderAction.renderTarget !== renderTarget || nextNeedDirShadows || isNextLayerGrabPass || isGrabPass) {\n\t\t\t\t\tconst isDepthOnly = isDepthLayer && startIndex === i;\n\t\t\t\t\tif (!isDepthOnly) {\n\t\t\t\t\t\tthis.addMainRenderPass(frameGraph, layerComposition, renderTarget, startIndex, i);\n\t\t\t\t\t}\n\t\t\t\t\tif (isDepthLayer) {\n\t\t\t\t\t\tif (camera.renderSceneColorMap) {\n\t\t\t\t\t\t\tconst colorGrabPass = camera.camera.renderPassColorGrab;\n\t\t\t\t\t\t\tcolorGrabPass.source = camera.renderTarget;\n\t\t\t\t\t\t\tframeGraph.addRenderPass(colorGrabPass);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (camera.renderSceneDepthMap && !webgl1) {\n\t\t\t\t\t\t\tframeGraph.addRenderPass(camera.camera.renderPassDepthGrab);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (renderAction.triggerPostprocess && camera != null && camera.onPostprocessing) {\n\t\t\t\t\t\tconst renderPass = new RenderPassPostprocessing(this.device, this, renderAction);\n\t\t\t\t\t\tframeGraph.addRenderPass(renderPass);\n\t\t\t\t\t}\n\t\t\t\t\tnewStart = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\taddMainRenderPass(frameGraph, layerComposition, renderTarget, startIndex, endIndex) {\n\t\tconst renderPass = new RenderPassForward(this.device, layerComposition, this.scene, this);\n\t\trenderPass.init(renderTarget);\n\t\tconst renderActions = layerComposition._renderActions;\n\t\tfor (let i = startIndex; i <= endIndex; i++) {\n\t\t\trenderPass.addRenderAction(renderActions[i]);\n\t\t}\n\t\tframeGraph.addRenderPass(renderPass);\n\t}\n\tupdate(comp) {\n\t\tthis.frameUpdate();\n\t\tthis.shadowRenderer.frameUpdate();\n\t\tthis.scene._updateSkyMesh();\n\t\tthis.updateLayerComposition(comp);\n\t\tthis.collectLights(comp);\n\t\tthis.beginFrame(comp);\n\t\tthis.setSceneConstants();\n\t\tthis.cullComposition(comp);\n\t\tthis.gpuUpdate(this.processingMeshInstances);\n\t}\n}\n\nfunction sortManual(drawCallA, drawCallB) {\n\treturn drawCallA.drawOrder - drawCallB.drawOrder;\n}\nfunction sortMaterialMesh(drawCallA, drawCallB) {\n\tconst keyA = drawCallA._key[SORTKEY_FORWARD];\n\tconst keyB = drawCallB._key[SORTKEY_FORWARD];\n\tif (keyA === keyB && drawCallA.mesh && drawCallB.mesh) {\n\t\treturn drawCallB.mesh.id - drawCallA.mesh.id;\n\t}\n\treturn keyB - keyA;\n}\nfunction sortBackToFront(drawCallA, drawCallB) {\n\treturn drawCallB.zdist - drawCallA.zdist;\n}\nfunction sortFrontToBack(drawCallA, drawCallB) {\n\treturn drawCallA.zdist - drawCallB.zdist;\n}\nconst sortCallbacks = [null, sortManual, sortMaterialMesh, sortBackToFront, sortFrontToBack];\nlet layerCounter = 0;\nconst lightKeys = [];\nconst _tempMaterials = new Set();\nclass CulledInstances {\n\tconstructor() {\n\t\tthis.opaque = [];\n\t\tthis.transparent = [];\n\t}\n}\nclass Layer {\n\tconstructor(options = {}) {\n\t\tvar _options$enabled, _options$opaqueSortMo, _options$transparentS, _options$shaderPass;\n\t\tthis.meshInstances = [];\n\t\tthis.meshInstancesSet = new Set();\n\t\tthis.shadowCasters = [];\n\t\tthis.shadowCastersSet = new Set();\n\t\tthis._visibleInstances = new WeakMap();\n\t\tthis._lights = [];\n\t\tthis._lightsSet = new Set();\n\t\tthis._clusteredLightsSet = new Set();\n\t\tthis._splitLights = [[], [], []];\n\t\tthis._splitLightsDirty = true;\n\t\tthis.requiresLightCube = false;\n\t\tthis.cameras = [];\n\t\tthis.camerasSet = new Set();\n\t\tthis._dirtyComposition = false;\n\t\tif (options.id !== undefined) {\n\t\t\tthis.id = options.id;\n\t\t\tlayerCounter = Math.max(this.id + 1, layerCounter);\n\t\t} else {\n\t\t\tthis.id = layerCounter++;\n\t\t}\n\t\tthis.name = options.name;\n\t\tthis._enabled = (_options$enabled = options.enabled) != null ? _options$enabled : true;\n\t\tthis._refCounter = this._enabled ? 1 : 0;\n\t\tthis.opaqueSortMode = (_options$opaqueSortMo = options.opaqueSortMode) != null ? _options$opaqueSortMo : SORTMODE_MATERIALMESH;\n\t\tthis.transparentSortMode = (_options$transparentS = options.transparentSortMode) != null ? _options$transparentS : SORTMODE_BACK2FRONT;\n\t\tif (options.renderTarget) {\n\t\t\tthis.renderTarget = options.renderTarget;\n\t\t}\n\t\tthis.shaderPass = (_options$shaderPass = options.shaderPass) != null ? _options$shaderPass : SHADER_FORWARD;\n\t\tthis._clearColorBuffer = !!options.clearColorBuffer;\n\t\tthis._clearDepthBuffer = !!options.clearDepthBuffer;\n\t\tthis._clearStencilBuffer = !!options.clearStencilBuffer;\n\t\tthis.onPreCull = options.onPreCull;\n\t\tthis.onPreRender = options.onPreRender;\n\t\tthis.onPreRenderOpaque = options.onPreRenderOpaque;\n\t\tthis.onPreRenderTransparent = options.onPreRenderTransparent;\n\t\tthis.onPostCull = options.onPostCull;\n\t\tthis.onPostRender = options.onPostRender;\n\t\tthis.onPostRenderOpaque = options.onPostRenderOpaque;\n\t\tthis.onPostRenderTransparent = options.onPostRenderTransparent;\n\t\tthis.onDrawCall = options.onDrawCall;\n\t\tthis.onEnable = options.onEnable;\n\t\tthis.onDisable = options.onDisable;\n\t\tif (this._enabled && this.onEnable) {\n\t\t\tthis.onEnable();\n\t\t}\n\t\tthis.layerReference = options.layerReference;\n\t\tthis.customSortCallback = null;\n\t\tthis.customCalculateSortValues = null;\n\t\tthis._lightHash = 0;\n\t\tthis._lightHashDirty = false;\n\t\tthis._lightIdHash = 0;\n\t\tthis._lightIdHashDirty = false;\n\t\tthis._shaderVersion = -1;\n\t}\n\tset enabled(val) {\n\t\tif (val !== this._enabled) {\n\t\t\tthis._dirtyComposition = true;\n\t\t\tthis._enabled = val;\n\t\t\tif (val) {\n\t\t\t\tthis.incrementCounter();\n\t\t\t\tif (this.onEnable) this.onEnable();\n\t\t\t} else {\n\t\t\t\tthis.decrementCounter();\n\t\t\t\tif (this.onDisable) this.onDisable();\n\t\t\t}\n\t\t}\n\t}\n\tget enabled() {\n\t\treturn this._enabled;\n\t}\n\tset clearColorBuffer(val) {\n\t\tthis._clearColorBuffer = val;\n\t\tthis._dirtyComposition = true;\n\t}\n\tget clearColorBuffer() {\n\t\treturn this._clearColorBuffer;\n\t}\n\tset clearDepthBuffer(val) {\n\t\tthis._clearDepthBuffer = val;\n\t\tthis._dirtyComposition = true;\n\t}\n\tget clearDepthBuffer() {\n\t\treturn this._clearDepthBuffer;\n\t}\n\tset clearStencilBuffer(val) {\n\t\tthis._clearStencilBuffer = val;\n\t\tthis._dirtyComposition = true;\n\t}\n\tget clearStencilBuffer() {\n\t\treturn this._clearStencilBuffer;\n\t}\n\tget hasClusteredLights() {\n\t\treturn this._clusteredLightsSet.size > 0;\n\t}\n\tget clusteredLightsSet() {\n\t\treturn this._clusteredLightsSet;\n\t}\n\tincrementCounter() {\n\t\tif (this._refCounter === 0) {\n\t\t\tthis._enabled = true;\n\t\t\tif (this.onEnable) this.onEnable();\n\t\t}\n\t\tthis._refCounter++;\n\t}\n\tdecrementCounter() {\n\t\tif (this._refCounter === 1) {\n\t\t\tthis._enabled = false;\n\t\t\tif (this.onDisable) this.onDisable();\n\t\t} else if (this._refCounter === 0) {\n\t\t\treturn;\n\t\t}\n\t\tthis._refCounter--;\n\t}\n\taddMeshInstances(meshInstances, skipShadowCasters) {\n\t\tconst destMeshInstances = this.meshInstances;\n\t\tconst destMeshInstancesSet = this.meshInstancesSet;\n\t\tfor (let i = 0; i < meshInstances.length; i++) {\n\t\t\tconst mi = meshInstances[i];\n\t\t\tif (!destMeshInstancesSet.has(mi)) {\n\t\t\t\tdestMeshInstances.push(mi);\n\t\t\t\tdestMeshInstancesSet.add(mi);\n\t\t\t\t_tempMaterials.add(mi.material);\n\t\t\t}\n\t\t}\n\t\tif (!skipShadowCasters) {\n\t\t\tthis.addShadowCasters(meshInstances);\n\t\t}\n\t\tif (_tempMaterials.size > 0) {\n\t\t\tconst sceneShaderVer = this._shaderVersion;\n\t\t\t_tempMaterials.forEach(mat => {\n\t\t\t\tif (sceneShaderVer >= 0 && mat._shaderVersion !== sceneShaderVer) {\n\t\t\t\t\tif (mat.getShaderVariant !== Material.prototype.getShaderVariant) {\n\t\t\t\t\t\tmat.clearVariants();\n\t\t\t\t\t}\n\t\t\t\t\tmat._shaderVersion = sceneShaderVer;\n\t\t\t\t}\n\t\t\t});\n\t\t\t_tempMaterials.clear();\n\t\t}\n\t}\n\tremoveMeshInstances(meshInstances, skipShadowCasters) {\n\t\tconst destMeshInstances = this.meshInstances;\n\t\tconst destMeshInstancesSet = this.meshInstancesSet;\n\t\tfor (let i = 0; i < meshInstances.length; i++) {\n\t\t\tconst mi = meshInstances[i];\n\t\t\tif (destMeshInstancesSet.has(mi)) {\n\t\t\t\tdestMeshInstancesSet.delete(mi);\n\t\t\t\tconst j = destMeshInstances.indexOf(mi);\n\t\t\t\tif (j >= 0) {\n\t\t\t\t\tdestMeshInstances.splice(j, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (!skipShadowCasters) {\n\t\t\tthis.removeShadowCasters(meshInstances);\n\t\t}\n\t}\n\taddShadowCasters(meshInstances) {\n\t\tconst shadowCasters = this.shadowCasters;\n\t\tconst shadowCastersSet = this.shadowCastersSet;\n\t\tfor (let i = 0; i < meshInstances.length; i++) {\n\t\t\tconst mi = meshInstances[i];\n\t\t\tif (mi.castShadow && !shadowCastersSet.has(mi)) {\n\t\t\t\tshadowCastersSet.add(mi);\n\t\t\t\tshadowCasters.push(mi);\n\t\t\t}\n\t\t}\n\t}\n\tremoveShadowCasters(meshInstances) {\n\t\tconst shadowCasters = this.shadowCasters;\n\t\tconst shadowCastersSet = this.shadowCastersSet;\n\t\tfor (let i = 0; i < meshInstances.length; i++) {\n\t\t\tconst mi = meshInstances[i];\n\t\t\tif (shadowCastersSet.has(mi)) {\n\t\t\t\tshadowCastersSet.delete(mi);\n\t\t\t\tconst j = shadowCasters.indexOf(mi);\n\t\t\t\tif (j >= 0) {\n\t\t\t\t\tshadowCasters.splice(j, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tclearMeshInstances(skipShadowCasters = false) {\n\t\tthis.meshInstances.length = 0;\n\t\tthis.meshInstancesSet.clear();\n\t\tif (!skipShadowCasters) {\n\t\t\tthis.shadowCasters.length = 0;\n\t\t\tthis.shadowCastersSet.clear();\n\t\t}\n\t}\n\tmarkLightsDirty() {\n\t\tthis._lightHashDirty = true;\n\t\tthis._lightIdHashDirty = true;\n\t\tthis._splitLightsDirty = true;\n\t}\n\taddLight(light) {\n\t\tconst l = light.light;\n\t\tif (!this._lightsSet.has(l)) {\n\t\t\tthis._lightsSet.add(l);\n\t\t\tthis._lights.push(l);\n\t\t\tthis.markLightsDirty();\n\t\t}\n\t\tif (l.type !== LIGHTTYPE_DIRECTIONAL) {\n\t\t\tthis._clusteredLightsSet.add(l);\n\t\t}\n\t}\n\tremoveLight(light) {\n\t\tconst l = light.light;\n\t\tif (this._lightsSet.has(l)) {\n\t\t\tthis._lightsSet.delete(l);\n\t\t\tthis._lights.splice(this._lights.indexOf(l), 1);\n\t\t\tthis.markLightsDirty();\n\t\t}\n\t\tif (l.type !== LIGHTTYPE_DIRECTIONAL) {\n\t\t\tthis._clusteredLightsSet.delete(l);\n\t\t}\n\t}\n\tclearLights() {\n\t\tthis._lightsSet.forEach(light => light.removeLayer(this));\n\t\tthis._lightsSet.clear();\n\t\tthis._clusteredLightsSet.clear();\n\t\tthis._lights.length = 0;\n\t\tthis.markLightsDirty();\n\t}\n\tget splitLights() {\n\t\tif (this._splitLightsDirty) {\n\t\t\tthis._splitLightsDirty = false;\n\t\t\tconst splitLights = this._splitLights;\n\t\t\tfor (let i = 0; i < splitLights.length; i++) {\n\t\t\t\tsplitLights[i].length = 0;\n\t\t\t}\n\t\t\tconst lights = this._lights;\n\t\t\tfor (let i = 0; i < lights.length; i++) {\n\t\t\t\tconst light = lights[i];\n\t\t\t\tif (light.enabled) {\n\t\t\t\t\tsplitLights[light._type].push(light);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (let i = 0; i < splitLights.length; i++) {\n\t\t\t\tsplitLights[i].sort((a, b) => a.key - b.key);\n\t\t\t}\n\t\t}\n\t\treturn this._splitLights;\n\t}\n\tevaluateLightHash(localLights, directionalLights, useIds) {\n\t\tlet hash = 0;\n\t\tconst lights = this._lights;\n\t\tfor (let i = 0; i < lights.length; i++) {\n\t\t\tconst isLocalLight = lights[i].type !== LIGHTTYPE_DIRECTIONAL;\n\t\t\tif (localLights && isLocalLight || directionalLights && !isLocalLight) {\n\t\t\t\tlightKeys.push(useIds ? lights[i].id : lights[i].key);\n\t\t\t}\n\t\t}\n\t\tif (lightKeys.length > 0) {\n\t\t\tlightKeys.sort();\n\t\t\thash = hash32Fnv1a(lightKeys);\n\t\t\tlightKeys.length = 0;\n\t\t}\n\t\treturn hash;\n\t}\n\tgetLightHash(isClustered) {\n\t\tif (this._lightHashDirty) {\n\t\t\tthis._lightHashDirty = false;\n\t\t\tthis._lightHash = this.evaluateLightHash(!isClustered, true, false);\n\t\t}\n\t\treturn this._lightHash;\n\t}\n\tgetLightIdHash() {\n\t\tif (this._lightIdHashDirty) {\n\t\t\tthis._lightIdHashDirty = false;\n\t\t\tthis._lightIdHash = this.evaluateLightHash(true, false, true);\n\t\t}\n\t\treturn this._lightIdHash;\n\t}\n\taddCamera(camera) {\n\t\tif (!this.camerasSet.has(camera.camera)) {\n\t\t\tthis.camerasSet.add(camera.camera);\n\t\t\tthis.cameras.push(camera);\n\t\t\tthis._dirtyComposition = true;\n\t\t}\n\t}\n\tremoveCamera(camera) {\n\t\tif (this.camerasSet.has(camera.camera)) {\n\t\t\tthis.camerasSet.delete(camera.camera);\n\t\t\tconst index = this.cameras.indexOf(camera);\n\t\t\tthis.cameras.splice(index, 1);\n\t\t\tthis._dirtyComposition = true;\n\t\t}\n\t}\n\tclearCameras() {\n\t\tthis.cameras.length = 0;\n\t\tthis.camerasSet.clear();\n\t\tthis._dirtyComposition = true;\n\t}\n\t_calculateSortDistances(drawCalls, drawCallsCount, camPos, camFwd) {\n\t\tfor (let i = 0; i < drawCallsCount; i++) {\n\t\t\tconst drawCall = drawCalls[i];\n\t\t\tif (drawCall.layer <= LAYER_FX) continue;\n\t\t\tif (drawCall.calculateSortDistance) {\n\t\t\t\tdrawCall.zdist = drawCall.calculateSortDistance(drawCall, camPos, camFwd);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst meshPos = drawCall.aabb.center;\n\t\t\tconst tempx = meshPos.x - camPos.x;\n\t\t\tconst tempy = meshPos.y - camPos.y;\n\t\t\tconst tempz = meshPos.z - camPos.z;\n\t\t\tdrawCall.zdist = tempx * camFwd.x + tempy * camFwd.y + tempz * camFwd.z;\n\t\t}\n\t}\n\tgetCulledInstances(camera) {\n\t\tlet instances = this._visibleInstances.get(camera);\n\t\tif (!instances) {\n\t\t\tinstances = new CulledInstances();\n\t\t\tthis._visibleInstances.set(camera, instances);\n\t\t}\n\t\treturn instances;\n\t}\n\tsortVisible(camera, transparent) {\n\t\tconst sortMode = transparent ? this.transparentSortMode : this.opaqueSortMode;\n\t\tif (sortMode === SORTMODE_NONE) {\n\t\t\treturn;\n\t\t}\n\t\tconst culledInstances = this.getCulledInstances(camera);\n\t\tconst instances = transparent ? culledInstances.transparent : culledInstances.opaque;\n\t\tconst cameraNode = camera.node;\n\t\tif (sortMode === SORTMODE_CUSTOM) {\n\t\t\tconst sortPos = cameraNode.getPosition();\n\t\t\tconst sortDir = cameraNode.forward;\n\t\t\tif (this.customCalculateSortValues) {\n\t\t\t\tthis.customCalculateSortValues(instances, instances.length, sortPos, sortDir);\n\t\t\t}\n\t\t\tif (this.customSortCallback) {\n\t\t\t\tinstances.sort(this.customSortCallback);\n\t\t\t}\n\t\t} else {\n\t\t\tif (sortMode === SORTMODE_BACK2FRONT || sortMode === SORTMODE_FRONT2BACK) {\n\t\t\t\tconst sortPos = cameraNode.getPosition();\n\t\t\t\tconst sortDir = cameraNode.forward;\n\t\t\t\tthis._calculateSortDistances(instances, instances.length, sortPos, sortDir);\n\t\t\t}\n\t\t\tinstances.sort(sortCallbacks[sortMode]);\n\t\t}\n\t}\n}\n\nconst cmpPriority = (a, b) => a.priority - b.priority;\nconst sortPriority = arr => arr.sort(cmpPriority);\n\nclass LayerComposition extends EventHandler {\n\tconstructor(name = 'Untitled') {\n\t\tsuper();\n\t\tthis.layerList = [];\n\t\tthis.layerIdMap = new Map();\n\t\tthis.layerNameMap = new Map();\n\t\tthis.layerOpaqueIndexMap = new Map();\n\t\tthis.layerTransparentIndexMap = new Map();\n\t\tthis.subLayerList = [];\n\t\tthis.subLayerEnabled = [];\n\t\tthis.cameras = [];\n\t\tthis.camerasMap = new Map();\n\t\tthis._renderActions = [];\n\t\tthis._dirty = false;\n\t\tthis.name = name;\n\t\tthis._opaqueOrder = {};\n\t\tthis._transparentOrder = {};\n\t}\n\tdestroy() {\n\t\tthis.destroyRenderActions();\n\t}\n\tdestroyRenderActions() {\n\t\tthis._renderActions.forEach(ra => ra.destroy());\n\t\tthis._renderActions.length = 0;\n\t}\n\t_update() {\n\t\tconst len = this.layerList.length;\n\t\tif (!this._dirty) {\n\t\t\tfor (let i = 0; i < len; i++) {\n\t\t\t\tif (this.layerList[i]._dirtyComposition) {\n\t\t\t\t\tthis._dirty = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this._dirty) {\n\t\t\tthis._dirty = false;\n\t\t\tthis.cameras.length = 0;\n\t\t\tfor (let i = 0; i < len; i++) {\n\t\t\t\tconst layer = this.layerList[i];\n\t\t\t\tlayer._dirtyComposition = false;\n\t\t\t\tfor (let j = 0; j < layer.cameras.length; j++) {\n\t\t\t\t\tconst camera = layer.cameras[j];\n\t\t\t\t\tconst index = this.cameras.indexOf(camera);\n\t\t\t\t\tif (index < 0) {\n\t\t\t\t\t\tthis.cameras.push(camera);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.cameras.length > 1) {\n\t\t\t\tsortPriority(this.cameras);\n\t\t\t}\n\t\t\tthis.camerasMap.clear();\n\t\t\tfor (let i = 0; i < this.cameras.length; i++) {\n\t\t\t\tthis.camerasMap.set(this.cameras[i], i);\n\t\t\t}\n\t\t\tlet renderActionCount = 0;\n\t\t\tthis.destroyRenderActions();\n\t\t\tfor (let i = 0; i < this.cameras.length; i++) {\n\t\t\t\tconst camera = this.cameras[i];\n\t\t\t\tif (camera.camera.renderPasses.length > 0) {\n\t\t\t\t\tthis.addDummyRenderAction(renderActionCount, camera);\n\t\t\t\t\trenderActionCount++;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tlet cameraFirstRenderAction = true;\n\t\t\t\tconst cameraFirstRenderActionIndex = renderActionCount;\n\t\t\t\tlet lastRenderAction = null;\n\t\t\t\tlet postProcessMarked = false;\n\t\t\t\tfor (let j = 0; j < len; j++) {\n\t\t\t\t\tconst layer = this.layerList[j];\n\t\t\t\t\tconst isLayerEnabled = layer.enabled && this.subLayerEnabled[j];\n\t\t\t\t\tif (isLayerEnabled) {\n\t\t\t\t\t\tif (layer.cameras.length > 0) {\n\t\t\t\t\t\t\tif (camera.layers.indexOf(layer.id) >= 0) {\n\t\t\t\t\t\t\t\tif (!postProcessMarked && layer.id === camera.disablePostEffectsLayer) {\n\t\t\t\t\t\t\t\t\tpostProcessMarked = true;\n\t\t\t\t\t\t\t\t\tif (lastRenderAction) {\n\t\t\t\t\t\t\t\t\t\tlastRenderAction.triggerPostprocess = true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconst isTransparent = this.subLayerList[j];\n\t\t\t\t\t\t\t\tlastRenderAction = this.addRenderAction(renderActionCount, layer, isTransparent, camera, cameraFirstRenderAction, postProcessMarked);\n\t\t\t\t\t\t\t\trenderActionCount++;\n\t\t\t\t\t\t\t\tcameraFirstRenderAction = false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (cameraFirstRenderActionIndex < renderActionCount) {\n\t\t\t\t\tlastRenderAction.lastCameraUse = true;\n\t\t\t\t}\n\t\t\t\tif (!postProcessMarked && lastRenderAction) {\n\t\t\t\t\tlastRenderAction.triggerPostprocess = true;\n\t\t\t\t}\n\t\t\t\tif (camera.renderTarget && camera.postEffectsEnabled) {\n\t\t\t\t\tthis.propagateRenderTarget(cameraFirstRenderActionIndex - 1, camera);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._logRenderActions();\n\t\t}\n\t}\n\tgetNextRenderAction(renderActionIndex) {\n\t\tconst renderAction = new RenderAction();\n\t\tthis._renderActions.push(renderAction);\n\t\treturn renderAction;\n\t}\n\taddDummyRenderAction(renderActionIndex, camera) {\n\t\tconst renderAction = this.getNextRenderAction(renderActionIndex);\n\t\trenderAction.camera = camera;\n\t\trenderAction.useCameraPasses = true;\n\t}\n\taddRenderAction(renderActionIndex, layer, isTransparent, camera, cameraFirstRenderAction, postProcessMarked) {\n\t\tlet rt = layer.renderTarget;\n\t\tif (camera && camera.renderTarget) {\n\t\t\tif (layer.id !== LAYERID_DEPTH) {\n\t\t\t\trt = camera.renderTarget;\n\t\t\t}\n\t\t}\n\t\tlet used = false;\n\t\tconst renderActions = this._renderActions;\n\t\tfor (let i = renderActionIndex - 1; i >= 0; i--) {\n\t\t\tif (renderActions[i].camera === camera && renderActions[i].renderTarget === rt) {\n\t\t\t\tused = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (postProcessMarked && camera.postEffectsEnabled) {\n\t\t\trt = null;\n\t\t}\n\t\tconst renderAction = this.getNextRenderAction(renderActionIndex);\n\t\trenderAction.triggerPostprocess = false;\n\t\trenderAction.layer = layer;\n\t\trenderAction.transparent = isTransparent;\n\t\trenderAction.camera = camera;\n\t\trenderAction.renderTarget = rt;\n\t\trenderAction.firstCameraUse = cameraFirstRenderAction;\n\t\trenderAction.lastCameraUse = false;\n\t\tconst needsCameraClear = cameraFirstRenderAction || !used;\n\t\tconst needsLayerClear = layer.clearColorBuffer || layer.clearDepthBuffer || layer.clearStencilBuffer;\n\t\tif (needsCameraClear || needsLayerClear) {\n\t\t\trenderAction.setupClears(needsCameraClear ? camera : undefined, layer);\n\t\t}\n\t\treturn renderAction;\n\t}\n\tpropagateRenderTarget(startIndex, fromCamera) {\n\t\tfor (let a = startIndex; a >= 0; a--) {\n\t\t\tconst ra = this._renderActions[a];\n\t\t\tconst layer = ra.layer;\n\t\t\tif (ra.renderTarget && layer.id !== LAYERID_DEPTH) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (layer.id === LAYERID_DEPTH) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (ra.useCameraPasses) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tconst thisCamera = ra == null ? void 0 : ra.camera.camera;\n\t\t\tif (thisCamera) {\n\t\t\t\tif (!fromCamera.camera.rect.equals(thisCamera.rect) || !fromCamera.camera.scissorRect.equals(thisCamera.scissorRect)) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tra.renderTarget = fromCamera.renderTarget;\n\t\t}\n\t}\n\t_logRenderActions() {}\n\t_isLayerAdded(layer) {\n\t\tconst found = this.layerIdMap.get(layer.id) === layer;\n\t\treturn found;\n\t}\n\t_isSublayerAdded(layer, transparent) {\n\t\tconst map = transparent ? this.layerTransparentIndexMap : this.layerOpaqueIndexMap;\n\t\tif (map.get(layer) !== undefined) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpush(layer) {\n\t\tif (this._isLayerAdded(layer)) return;\n\t\tthis.layerList.push(layer);\n\t\tthis.layerList.push(layer);\n\t\tthis._opaqueOrder[layer.id] = this.subLayerList.push(false) - 1;\n\t\tthis._transparentOrder[layer.id] = this.subLayerList.push(true) - 1;\n\t\tthis.subLayerEnabled.push(true);\n\t\tthis.subLayerEnabled.push(true);\n\t\tthis._updateLayerMaps();\n\t\tthis._dirty = true;\n\t\tthis.fire('add', layer);\n\t}\n\tinsert(layer, index) {\n\t\tif (this._isLayerAdded(layer)) return;\n\t\tthis.layerList.splice(index, 0, layer, layer);\n\t\tthis.subLayerList.splice(index, 0, false, true);\n\t\tconst count = this.layerList.length;\n\t\tthis._updateOpaqueOrder(index, count - 1);\n\t\tthis._updateTransparentOrder(index, count - 1);\n\t\tthis.subLayerEnabled.splice(index, 0, true, true);\n\t\tthis._updateLayerMaps();\n\t\tthis._dirty = true;\n\t\tthis.fire('add', layer);\n\t}\n\tremove(layer) {\n\t\tlet id = this.layerList.indexOf(layer);\n\t\tdelete this._opaqueOrder[id];\n\t\tdelete this._transparentOrder[id];\n\t\twhile (id >= 0) {\n\t\t\tthis.layerList.splice(id, 1);\n\t\t\tthis.subLayerList.splice(id, 1);\n\t\t\tthis.subLayerEnabled.splice(id, 1);\n\t\t\tid = this.layerList.indexOf(layer);\n\t\t\tthis._dirty = true;\n\t\t\tthis.fire('remove', layer);\n\t\t}\n\t\tconst count = this.layerList.length;\n\t\tthis._updateOpaqueOrder(0, count - 1);\n\t\tthis._updateTransparentOrder(0, count - 1);\n\t\tthis._updateLayerMaps();\n\t}\n\tpushOpaque(layer) {\n\t\tif (this._isSublayerAdded(layer, false)) return;\n\t\tthis.layerList.push(layer);\n\t\tthis._opaqueOrder[layer.id] = this.subLayerList.push(false) - 1;\n\t\tthis.subLayerEnabled.push(true);\n\t\tthis._updateLayerMaps();\n\t\tthis._dirty = true;\n\t\tthis.fire('add', layer);\n\t}\n\tinsertOpaque(layer, index) {\n\t\tif (this._isSublayerAdded(layer, false)) return;\n\t\tthis.layerList.splice(index, 0, layer);\n\t\tthis.subLayerList.splice(index, 0, false);\n\t\tconst count = this.subLayerList.length;\n\t\tthis._updateOpaqueOrder(index, count - 1);\n\t\tthis.subLayerEnabled.splice(index, 0, true);\n\t\tthis._updateLayerMaps();\n\t\tthis._dirty = true;\n\t\tthis.fire('add', layer);\n\t}\n\tremoveOpaque(layer) {\n\t\tfor (let i = 0, len = this.layerList.length; i < len; i++) {\n\t\t\tif (this.layerList[i] === layer && !this.subLayerList[i]) {\n\t\t\t\tthis.layerList.splice(i, 1);\n\t\t\t\tthis.subLayerList.splice(i, 1);\n\t\t\t\tlen--;\n\t\t\t\tthis._updateOpaqueOrder(i, len - 1);\n\t\t\t\tthis.subLayerEnabled.splice(i, 1);\n\t\t\t\tthis._dirty = true;\n\t\t\t\tif (this.layerList.indexOf(layer) < 0) {\n\t\t\t\t\tthis.fire('remove', layer);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tthis._updateLayerMaps();\n\t}\n\tpushTransparent(layer) {\n\t\tif (this._isSublayerAdded(layer, true)) return;\n\t\tthis.layerList.push(layer);\n\t\tthis._transparentOrder[layer.id] = this.subLayerList.push(true) - 1;\n\t\tthis.subLayerEnabled.push(true);\n\t\tthis._updateLayerMaps();\n\t\tthis._dirty = true;\n\t\tthis.fire('add', layer);\n\t}\n\tinsertTransparent(layer, index) {\n\t\tif (this._isSublayerAdded(layer, true)) return;\n\t\tthis.layerList.splice(index, 0, layer);\n\t\tthis.subLayerList.splice(index, 0, true);\n\t\tconst count = this.subLayerList.length;\n\t\tthis._updateTransparentOrder(index, count - 1);\n\t\tthis.subLayerEnabled.splice(index, 0, true);\n\t\tthis._updateLayerMaps();\n\t\tthis._dirty = true;\n\t\tthis.fire('add', layer);\n\t}\n\tremoveTransparent(layer) {\n\t\tfor (let i = 0, len = this.layerList.length; i < len; i++) {\n\t\t\tif (this.layerList[i] === layer && this.subLayerList[i]) {\n\t\t\t\tthis.layerList.splice(i, 1);\n\t\t\t\tthis.subLayerList.splice(i, 1);\n\t\t\t\tlen--;\n\t\t\t\tthis._updateTransparentOrder(i, len - 1);\n\t\t\t\tthis.subLayerEnabled.splice(i, 1);\n\t\t\t\tthis._dirty = true;\n\t\t\t\tif (this.layerList.indexOf(layer) < 0) {\n\t\t\t\t\tthis.fire('remove', layer);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tthis._updateLayerMaps();\n\t}\n\tgetOpaqueIndex(layer) {\n\t\tvar _this$layerOpaqueInde;\n\t\treturn (_this$layerOpaqueInde = this.layerOpaqueIndexMap.get(layer)) != null ? _this$layerOpaqueInde : -1;\n\t}\n\tgetTransparentIndex(layer) {\n\t\tvar _this$layerTransparen;\n\t\treturn (_this$layerTransparen = this.layerTransparentIndexMap.get(layer)) != null ? _this$layerTransparen : -1;\n\t}\n\tisEnabled(layer, transparent) {\n\t\tconst index = transparent ? this.getTransparentIndex(layer) : this.getOpaqueIndex(layer);\n\t\treturn this.subLayerEnabled[index];\n\t}\n\t_updateLayerMaps() {\n\t\tthis.layerIdMap.clear();\n\t\tthis.layerNameMap.clear();\n\t\tthis.layerOpaqueIndexMap.clear();\n\t\tthis.layerTransparentIndexMap.clear();\n\t\tfor (let i = 0; i < this.layerList.length; i++) {\n\t\t\tconst layer = this.layerList[i];\n\t\t\tthis.layerIdMap.set(layer.id, layer);\n\t\t\tthis.layerNameMap.set(layer.name, layer);\n\t\t\tconst subLayerIndexMap = this.subLayerList[i] ? this.layerTransparentIndexMap : this.layerOpaqueIndexMap;\n\t\t\tsubLayerIndexMap.set(layer, i);\n\t\t}\n\t}\n\tgetLayerById(id) {\n\t\tvar _this$layerIdMap$get;\n\t\treturn (_this$layerIdMap$get = this.layerIdMap.get(id)) != null ? _this$layerIdMap$get : null;\n\t}\n\tgetLayerByName(name) {\n\t\tvar _this$layerNameMap$ge;\n\t\treturn (_this$layerNameMap$ge = this.layerNameMap.get(name)) != null ? _this$layerNameMap$ge : null;\n\t}\n\t_updateOpaqueOrder(startIndex, endIndex) {\n\t\tfor (let i = startIndex; i <= endIndex; i++) {\n\t\t\tif (this.subLayerList[i] === false) {\n\t\t\t\tthis._opaqueOrder[this.layerList[i].id] = i;\n\t\t\t}\n\t\t}\n\t}\n\t_updateTransparentOrder(startIndex, endIndex) {\n\t\tfor (let i = startIndex; i <= endIndex; i++) {\n\t\t\tif (this.subLayerList[i] === true) {\n\t\t\t\tthis._transparentOrder[this.layerList[i].id] = i;\n\t\t\t}\n\t\t}\n\t}\n\t_sortLayersDescending(layersA, layersB, order) {\n\t\tlet topLayerA = -1;\n\t\tlet topLayerB = -1;\n\t\tfor (let i = 0, len = layersA.length; i < len; i++) {\n\t\t\tconst id = layersA[i];\n\t\t\tif (order.hasOwnProperty(id)) {\n\t\t\t\ttopLayerA = Math.max(topLayerA, order[id]);\n\t\t\t}\n\t\t}\n\t\tfor (let i = 0, len = layersB.length; i < len; i++) {\n\t\t\tconst id = layersB[i];\n\t\t\tif (order.hasOwnProperty(id)) {\n\t\t\t\ttopLayerB = Math.max(topLayerB, order[id]);\n\t\t\t}\n\t\t}\n\t\tif (topLayerA === -1 && topLayerB !== -1) {\n\t\t\treturn 1;\n\t\t} else if (topLayerB === -1 && topLayerA !== -1) {\n\t\t\treturn -1;\n\t\t}\n\t\treturn topLayerB - topLayerA;\n\t}\n\tsortTransparentLayers(layersA, layersB) {\n\t\treturn this._sortLayersDescending(layersA, layersB, this._transparentOrder);\n\t}\n\tsortOpaqueLayers(layersA, layersB) {\n\t\treturn this._sortLayersDescending(layersA, layersB, this._opaqueOrder);\n\t}\n}\n\nconst tmpVec = new Vec3();\nconst tmpBiases = {\n\tbias: 0,\n\tnormalBias: 0\n};\nconst chanId = {\n\tr: 0,\n\tg: 1,\n\tb: 2,\n\ta: 3\n};\nconst lightTypes = {\n\t'directional': LIGHTTYPE_DIRECTIONAL,\n\t'omni': LIGHTTYPE_OMNI,\n\t'point': LIGHTTYPE_OMNI,\n\t'spot': LIGHTTYPE_SPOT\n};\nconst directionalCascades = [[new Vec4(0, 0, 1, 1)], [new Vec4(0, 0, 0.5, 0.5), new Vec4(0, 0.5, 0.5, 0.5)], [new Vec4(0, 0, 0.5, 0.5), new Vec4(0, 0.5, 0.5, 0.5), new Vec4(0.5, 0, 0.5, 0.5)], [new Vec4(0, 0, 0.5, 0.5), new Vec4(0, 0.5, 0.5, 0.5), new Vec4(0.5, 0, 0.5, 0.5), new Vec4(0.5, 0.5, 0.5, 0.5)]];\nlet id = 0;\nclass LightRenderData {\n\tconstructor(device, camera, face, light) {\n\t\tthis.light = light;\n\t\tthis.camera = camera;\n\t\tthis.shadowCamera = ShadowRenderer.createShadowCamera(device, light._shadowType, light._type, face);\n\t\tthis.shadowMatrix = new Mat4();\n\t\tthis.shadowViewport = new Vec4(0, 0, 1, 1);\n\t\tthis.shadowScissor = new Vec4(0, 0, 1, 1);\n\t\tthis.depthRangeCompensation = 0;\n\t\tthis.projectionCompensation = 0;\n\t\tthis.face = face;\n\t\tthis.visibleCasters = [];\n\t\tthis.viewBindGroups = [];\n\t}\n\tdestroy() {\n\t\tthis.viewBindGroups.forEach(bg => {\n\t\t\tbg.defaultUniformBuffer.destroy();\n\t\t\tbg.destroy();\n\t\t});\n\t\tthis.viewBindGroups.length = 0;\n\t}\n\tget shadowBuffer() {\n\t\tconst rt = this.shadowCamera.renderTarget;\n\t\tif (rt) {\n\t\t\tconst light = this.light;\n\t\t\tif (light._type === LIGHTTYPE_OMNI) {\n\t\t\t\treturn rt.colorBuffer;\n\t\t\t}\n\t\t\treturn light._isPcf && light.device.supportsDepthShadow ? rt.depthBuffer : rt.colorBuffer;\n\t\t}\n\t\treturn null;\n\t}\n}\nclass Light {\n\tconstructor(graphicsDevice, clusteredLighting) {\n\t\tthis.layers = new Set();\n\t\tthis.clusteredLighting = void 0;\n\t\tthis.shadowDepthState = DepthState.DEFAULT.clone();\n\t\tthis.device = graphicsDevice;\n\t\tthis.clusteredLighting = clusteredLighting;\n\t\tthis.id = id++;\n\t\tthis._type = LIGHTTYPE_DIRECTIONAL;\n\t\tthis._color = new Color(0.8, 0.8, 0.8);\n\t\tthis._intensity = 1;\n\t\tthis._affectSpecularity = true;\n\t\tthis._luminance = 0;\n\t\tthis._castShadows = false;\n\t\tthis._enabled = false;\n\t\tthis._mask = MASK_AFFECT_DYNAMIC;\n\t\tthis.isStatic = false;\n\t\tthis.key = 0;\n\t\tthis.bakeDir = true;\n\t\tthis.bakeNumSamples = 1;\n\t\tthis.bakeArea = 0;\n\t\tthis.attenuationStart = 10;\n\t\tthis.attenuationEnd = 10;\n\t\tthis._falloffMode = LIGHTFALLOFF_LINEAR;\n\t\tthis._shadowType = SHADOW_PCF3;\n\t\tthis._vsmBlurSize = 11;\n\t\tthis.vsmBlurMode = BLUR_GAUSSIAN;\n\t\tthis.vsmBias = 0.01 * 0.25;\n\t\tthis._cookie = null;\n\t\tthis.cookieIntensity = 1;\n\t\tthis._cookieFalloff = true;\n\t\tthis._cookieChannel = 'rgb';\n\t\tthis._cookieTransform = null;\n\t\tthis._cookieTransformUniform = new Float32Array(4);\n\t\tthis._cookieOffset = null;\n\t\tthis._cookieOffsetUniform = new Float32Array(2);\n\t\tthis._cookieTransformSet = false;\n\t\tthis._cookieOffsetSet = false;\n\t\tthis._innerConeAngle = 40;\n\t\tthis._outerConeAngle = 45;\n\t\tthis.cascades = null;\n\t\tthis._shadowMatrixPalette = null;\n\t\tthis._shadowCascadeDistances = null;\n\t\tthis.numCascades = 1;\n\t\tthis.cascadeDistribution = 0.5;\n\t\tthis._shape = LIGHTSHAPE_PUNCTUAL;\n\t\tthis._finalColor = new Float32Array([0.8, 0.8, 0.8]);\n\t\tconst c = Math.pow(this._finalColor[0], 2.2);\n\t\tthis._linearFinalColor = new Float32Array([c, c, c]);\n\t\tthis._position = new Vec3(0, 0, 0);\n\t\tthis._direction = new Vec3(0, 0, 0);\n\t\tthis._innerConeAngleCos = Math.cos(this._innerConeAngle * Math.PI / 180);\n\t\tthis._updateOuterAngle(this._outerConeAngle);\n\t\tthis._usePhysicalUnits = undefined;\n\t\tthis._shadowMap = null;\n\t\tthis._shadowRenderParams = [];\n\t\tthis._shadowCameraParams = [];\n\t\tthis.shadowDistance = 40;\n\t\tthis._shadowResolution = 1024;\n\t\tthis._shadowBias = -0.0005;\n\t\tthis.shadowIntensity = 1.0;\n\t\tthis._normalOffsetBias = 0.0;\n\t\tthis.shadowUpdateMode = SHADOWUPDATE_REALTIME;\n\t\tthis.shadowUpdateOverrides = null;\n\t\tthis._penumbraSize = 1.0;\n\t\tthis._isVsm = false;\n\t\tthis._isPcf = true;\n\t\tthis._cookieMatrix = null;\n\t\tthis._atlasViewport = null;\n\t\tthis.atlasViewportAllocated = false;\n\t\tthis.atlasVersion = 0;\n\t\tthis.atlasSlotIndex = 0;\n\t\tthis.atlasSlotUpdated = false;\n\t\tthis._node = null;\n\t\tthis._renderData = [];\n\t\tthis.visibleThisFrame = false;\n\t\tthis.maxScreenSize = 0;\n\t\tthis._updateShadowBias();\n\t}\n\tdestroy() {\n\t\tthis._destroyShadowMap();\n\t\tthis.releaseRenderData();\n\t\tthis._renderData = null;\n\t}\n\treleaseRenderData() {\n\t\tif (this._renderData) {\n\t\t\tfor (let i = 0; i < this._renderData.length; i++) {\n\t\t\t\tthis._renderData[i].destroy();\n\t\t\t}\n\t\t\tthis._renderData.length = 0;\n\t\t}\n\t}\n\taddLayer(layer) {\n\t\tthis.layers.add(layer);\n\t}\n\tremoveLayer(layer) {\n\t\tthis.layers.delete(layer);\n\t}\n\tset shadowBias(value) {\n\t\tif (this._shadowBias !== value) {\n\t\t\tthis._shadowBias = value;\n\t\t\tthis._updateShadowBias();\n\t\t}\n\t}\n\tget shadowBias() {\n\t\treturn this._shadowBias;\n\t}\n\tset numCascades(value) {\n\t\tif (!this.cascades || this.numCascades !== value) {\n\t\t\tthis.cascades = directionalCascades[value - 1];\n\t\t\tthis._shadowMatrixPalette = new Float32Array(4 * 16);\n\t\t\tthis._shadowCascadeDistances = new Float32Array(4);\n\t\t\tthis._destroyShadowMap();\n\t\t\tthis.updateKey();\n\t\t}\n\t}\n\tget numCascades() {\n\t\treturn this.cascades.length;\n\t}\n\tset shadowMap(shadowMap) {\n\t\tif (this._shadowMap !== shadowMap) {\n\t\t\tthis._destroyShadowMap();\n\t\t\tthis._shadowMap = shadowMap;\n\t\t}\n\t}\n\tget shadowMap() {\n\t\treturn this._shadowMap;\n\t}\n\tset mask(value) {\n\t\tif (this._mask !== value) {\n\t\t\tthis._mask = value;\n\t\t\tthis.updateKey();\n\t\t}\n\t}\n\tget mask() {\n\t\treturn this._mask;\n\t}\n\tget numShadowFaces() {\n\t\tconst type = this._type;\n\t\tif (type === LIGHTTYPE_DIRECTIONAL) {\n\t\t\treturn this.numCascades;\n\t\t} else if (type === LIGHTTYPE_OMNI) {\n\t\t\treturn 6;\n\t\t}\n\t\treturn 1;\n\t}\n\tset type(value) {\n\t\tif (this._type === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis._type = value;\n\t\tthis._destroyShadowMap();\n\t\tthis._updateShadowBias();\n\t\tthis.updateKey();\n\t\tconst stype = this._shadowType;\n\t\tthis._shadowType = null;\n\t\tthis.shadowUpdateOverrides = null;\n\t\tthis.shadowType = stype;\n\t}\n\tget type() {\n\t\treturn this._type;\n\t}\n\tset shape(value) {\n\t\tif (this._shape === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis._shape = value;\n\t\tthis._destroyShadowMap();\n\t\tthis.updateKey();\n\t\tconst stype = this._shadowType;\n\t\tthis._shadowType = null;\n\t\tthis.shadowType = stype;\n\t}\n\tget shape() {\n\t\treturn this._shape;\n\t}\n\tset usePhysicalUnits(value) {\n\t\tif (this._usePhysicalUnits !== value) {\n\t\t\tthis._usePhysicalUnits = value;\n\t\t\tthis._updateFinalColor();\n\t\t}\n\t}\n\tget usePhysicalUnits() {\n\t\treturn this._usePhysicalUnits;\n\t}\n\tset shadowType(value) {\n\t\tif (this._shadowType === value) {\n\t\t\treturn;\n\t\t}\n\t\tconst device = this.device;\n\t\tif (this._type === LIGHTTYPE_OMNI && value !== SHADOW_PCF3 && value !== SHADOW_PCSS) {\n\t\t\tvalue = SHADOW_PCF3;\n\t\t}\n\t\tconst supportsDepthShadow = device.supportsDepthShadow;\n\t\tif (value === SHADOW_PCF5 && !supportsDepthShadow) {\n\t\t\tvalue = SHADOW_PCF3;\n\t\t}\n\t\tif (value === SHADOW_VSM32 && (!device.textureFloatRenderable || !device.textureFloatFilterable)) {\n\t\t\tvalue = SHADOW_VSM16;\n\t\t}\n\t\tif (value === SHADOW_VSM16 && !device.textureHalfFloatRenderable) {\n\t\t\tvalue = SHADOW_VSM8;\n\t\t}\n\t\tthis._isVsm = value >= SHADOW_VSM8 && value <= SHADOW_VSM32;\n\t\tthis._isPcf = value === SHADOW_PCF1 || value === SHADOW_PCF3 || value === SHADOW_PCF5;\n\t\tthis._shadowType = value;\n\t\tthis._destroyShadowMap();\n\t\tthis.updateKey();\n\t}\n\tget shadowType() {\n\t\treturn this._shadowType;\n\t}\n\tset enabled(value) {\n\t\tif (this._enabled !== value) {\n\t\t\tthis._enabled = value;\n\t\t\tthis.layersDirty();\n\t\t}\n\t}\n\tget enabled() {\n\t\treturn this._enabled;\n\t}\n\tset castShadows(value) {\n\t\tif (this._castShadows !== value) {\n\t\t\tthis._castShadows = value;\n\t\t\tthis._destroyShadowMap();\n\t\t\tthis.layersDirty();\n\t\t\tthis.updateKey();\n\t\t}\n\t}\n\tget castShadows() {\n\t\treturn this._castShadows && this._mask !== MASK_BAKE && this._mask !== 0;\n\t}\n\tget bakeShadows() {\n\t\treturn this._castShadows && this._mask === MASK_BAKE;\n\t}\n\tset shadowResolution(value) {\n\t\tif (this._shadowResolution !== value) {\n\t\t\tif (this._type === LIGHTTYPE_OMNI) {\n\t\t\t\tvalue = Math.min(value, this.device.maxCubeMapSize);\n\t\t\t} else {\n\t\t\t\tvalue = Math.min(value, this.device.maxTextureSize);\n\t\t\t}\n\t\t\tthis._shadowResolution = value;\n\t\t\tthis._destroyShadowMap();\n\t\t}\n\t}\n\tget shadowResolution() {\n\t\treturn this._shadowResolution;\n\t}\n\tset vsmBlurSize(value) {\n\t\tif (this._vsmBlurSize === value) {\n\t\t\treturn;\n\t\t}\n\t\tif (value % 2 === 0) value++;\n\t\tthis._vsmBlurSize = value;\n\t}\n\tget vsmBlurSize() {\n\t\treturn this._vsmBlurSize;\n\t}\n\tset normalOffsetBias(value) {\n\t\tif (this._normalOffsetBias === value) {\n\t\t\treturn;\n\t\t}\n\t\tif (!this._normalOffsetBias && value || this._normalOffsetBias && !value) {\n\t\t\tthis.updateKey();\n\t\t}\n\t\tthis._normalOffsetBias = value;\n\t}\n\tget normalOffsetBias() {\n\t\treturn this._normalOffsetBias;\n\t}\n\tset falloffMode(value) {\n\t\tif (this._falloffMode === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis._falloffMode = value;\n\t\tthis.updateKey();\n\t}\n\tget falloffMode() {\n\t\treturn this._falloffMode;\n\t}\n\tset innerConeAngle(value) {\n\t\tif (this._innerConeAngle === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis._innerConeAngle = value;\n\t\tthis._innerConeAngleCos = Math.cos(value * Math.PI / 180);\n\t\tif (this._usePhysicalUnits) {\n\t\t\tthis._updateFinalColor();\n\t\t}\n\t}\n\tget innerConeAngle() {\n\t\treturn this._innerConeAngle;\n\t}\n\tset outerConeAngle(value) {\n\t\tif (this._outerConeAngle === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis._outerConeAngle = value;\n\t\tthis._updateOuterAngle(value);\n\t\tif (this._usePhysicalUnits) {\n\t\t\tthis._updateFinalColor();\n\t\t}\n\t}\n\tget outerConeAngle() {\n\t\treturn this._outerConeAngle;\n\t}\n\tset penumbraSize(value) {\n\t\tthis._penumbraSize = value;\n\t}\n\tget penumbraSize() {\n\t\treturn this._penumbraSize;\n\t}\n\t_updateOuterAngle(angle) {\n\t\tconst radAngle = angle * Math.PI / 180;\n\t\tthis._outerConeAngleCos = Math.cos(radAngle);\n\t\tthis._outerConeAngleSin = Math.sin(radAngle);\n\t}\n\tset intensity(value) {\n\t\tif (this._intensity !== value) {\n\t\t\tthis._intensity = value;\n\t\t\tthis._updateFinalColor();\n\t\t}\n\t}\n\tget intensity() {\n\t\treturn this._intensity;\n\t}\n\tset affectSpecularity(value) {\n\t\tif (this._type === LIGHTTYPE_DIRECTIONAL) {\n\t\t\tthis._affectSpecularity = value;\n\t\t\tthis.updateKey();\n\t\t}\n\t}\n\tget affectSpecularity() {\n\t\treturn this._affectSpecularity;\n\t}\n\tset luminance(value) {\n\t\tif (this._luminance !== value) {\n\t\t\tthis._luminance = value;\n\t\t\tthis._updateFinalColor();\n\t\t}\n\t}\n\tget luminance() {\n\t\treturn this._luminance;\n\t}\n\tget cookieMatrix() {\n\t\tif (!this._cookieMatrix) {\n\t\t\tthis._cookieMatrix = new Mat4();\n\t\t}\n\t\treturn this._cookieMatrix;\n\t}\n\tget atlasViewport() {\n\t\tif (!this._atlasViewport) {\n\t\t\tthis._atlasViewport = new Vec4(0, 0, 1, 1);\n\t\t}\n\t\treturn this._atlasViewport;\n\t}\n\tset cookie(value) {\n\t\tif (this._cookie === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis._cookie = value;\n\t\tthis.updateKey();\n\t}\n\tget cookie() {\n\t\treturn this._cookie;\n\t}\n\tset cookieFalloff(value) {\n\t\tif (this._cookieFalloff === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis._cookieFalloff = value;\n\t\tthis.updateKey();\n\t}\n\tget cookieFalloff() {\n\t\treturn this._cookieFalloff;\n\t}\n\tset cookieChannel(value) {\n\t\tif (this._cookieChannel === value) {\n\t\t\treturn;\n\t\t}\n\t\tif (value.length < 3) {\n\t\t\tconst chr = value.charAt(value.length - 1);\n\t\t\tconst addLen = 3 - value.length;\n\t\t\tfor (let i = 0; i < addLen; i++) {\n\t\t\t\tvalue += chr;\n\t\t\t}\n\t\t}\n\t\tthis._cookieChannel = value;\n\t\tthis.updateKey();\n\t}\n\tget cookieChannel() {\n\t\treturn this._cookieChannel;\n\t}\n\tset cookieTransform(value) {\n\t\tif (this._cookieTransform === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis._cookieTransform = value;\n\t\tthis._cookieTransformSet = !!value;\n\t\tif (value && !this._cookieOffset) {\n\t\t\tthis.cookieOffset = new Vec2();\n\t\t\tthis._cookieOffsetSet = false;\n\t\t}\n\t\tthis.updateKey();\n\t}\n\tget cookieTransform() {\n\t\treturn this._cookieTransform;\n\t}\n\tset cookieOffset(value) {\n\t\tif (this._cookieOffset === value) {\n\t\t\treturn;\n\t\t}\n\t\tconst xformNew = !!(this._cookieTransformSet || value);\n\t\tif (xformNew && !value && this._cookieOffset) {\n\t\t\tthis._cookieOffset.set(0, 0);\n\t\t} else {\n\t\t\tthis._cookieOffset = value;\n\t\t}\n\t\tthis._cookieOffsetSet = !!value;\n\t\tif (value && !this._cookieTransform) {\n\t\t\tthis.cookieTransform = new Vec4(1, 1, 0, 0);\n\t\t\tthis._cookieTransformSet = false;\n\t\t}\n\t\tthis.updateKey();\n\t}\n\tget cookieOffset() {\n\t\treturn this._cookieOffset;\n\t}\n\tbeginFrame() {\n\t\tthis.visibleThisFrame = this._type === LIGHTTYPE_DIRECTIONAL && this._enabled;\n\t\tthis.maxScreenSize = 0;\n\t\tthis.atlasViewportAllocated = false;\n\t\tthis.atlasSlotUpdated = false;\n\t}\n\t_destroyShadowMap() {\n\t\tthis.releaseRenderData();\n\t\tif (this._shadowMap) {\n\t\t\tif (!this._shadowMap.cached) {\n\t\t\t\tthis._shadowMap.destroy();\n\t\t\t}\n\t\t\tthis._shadowMap = null;\n\t\t}\n\t\tif (this.shadowUpdateMode === SHADOWUPDATE_NONE) {\n\t\t\tthis.shadowUpdateMode = SHADOWUPDATE_THISFRAME;\n\t\t}\n\t\tif (this.shadowUpdateOverrides) {\n\t\t\tfor (let i = 0; i < this.shadowUpdateOverrides.length; i++) {\n\t\t\t\tif (this.shadowUpdateOverrides[i] === SHADOWUPDATE_NONE) {\n\t\t\t\t\tthis.shadowUpdateOverrides[i] = SHADOWUPDATE_THISFRAME;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tgetRenderData(camera, face) {\n\t\tfor (let i = 0; i < this._renderData.length; i++) {\n\t\t\tconst current = this._renderData[i];\n\t\t\tif (current.camera === camera && current.face === face) {\n\t\t\t\treturn current;\n\t\t\t}\n\t\t}\n\t\tconst rd = new LightRenderData(this.device, camera, face, this);\n\t\tthis._renderData.push(rd);\n\t\treturn rd;\n\t}\n\tclone() {\n\t\tconst clone = new Light(this.device, this.clusteredLighting);\n\t\tclone.type = this._type;\n\t\tclone.setColor(this._color);\n\t\tclone.intensity = this._intensity;\n\t\tclone.affectSpecularity = this._affectSpecularity;\n\t\tclone.luminance = this._luminance;\n\t\tclone.castShadows = this.castShadows;\n\t\tclone._enabled = this._enabled;\n\t\tclone.attenuationStart = this.attenuationStart;\n\t\tclone.attenuationEnd = this.attenuationEnd;\n\t\tclone.falloffMode = this._falloffMode;\n\t\tclone.shadowType = this._shadowType;\n\t\tclone.vsmBlurSize = this._vsmBlurSize;\n\t\tclone.vsmBlurMode = this.vsmBlurMode;\n\t\tclone.vsmBias = this.vsmBias;\n\t\tclone.penumbraSize = this.penumbraSize;\n\t\tclone.shadowUpdateMode = this.shadowUpdateMode;\n\t\tclone.mask = this.mask;\n\t\tif (this.shadowUpdateOverrides) {\n\t\t\tclone.shadowUpdateOverrides = this.shadowUpdateOverrides.slice();\n\t\t}\n\t\tclone.innerConeAngle = this._innerConeAngle;\n\t\tclone.outerConeAngle = this._outerConeAngle;\n\t\tclone.numCascades = this.numCascades;\n\t\tclone.cascadeDistribution = this.cascadeDistribution;\n\t\tclone.shape = this._shape;\n\t\tclone.shadowDepthState.copy(this.shadowDepthState);\n\t\tclone.shadowBias = this.shadowBias;\n\t\tclone.normalOffsetBias = this._normalOffsetBias;\n\t\tclone.shadowResolution = this._shadowResolution;\n\t\tclone.shadowDistance = this.shadowDistance;\n\t\tclone.shadowIntensity = this.shadowIntensity;\n\t\treturn clone;\n\t}\n\tstatic getLightUnitConversion(type, outerAngle = Math.PI / 4, innerAngle = 0) {\n\t\tswitch (type) {\n\t\t\tcase LIGHTTYPE_SPOT:\n\t\t\t\t{\n\t\t\t\t\tconst falloffEnd = Math.cos(outerAngle);\n\t\t\t\t\tconst falloffStart = Math.cos(innerAngle);\n\t\t\t\t\treturn 2 * Math.PI * (1 - falloffStart + (falloffStart - falloffEnd) / 2.0);\n\t\t\t\t}\n\t\t\tcase LIGHTTYPE_OMNI:\n\t\t\t\treturn 4 * Math.PI;\n\t\t\tcase LIGHTTYPE_DIRECTIONAL:\n\t\t\t\treturn 1;\n\t\t}\n\t}\n\t_getUniformBiasValues(lightRenderData) {\n\t\tconst farClip = lightRenderData.shadowCamera._farClip;\n\t\tswitch (this._type) {\n\t\t\tcase LIGHTTYPE_OMNI:\n\t\t\t\ttmpBiases.bias = this.shadowBias;\n\t\t\t\ttmpBiases.normalBias = this._normalOffsetBias;\n\t\t\t\tbreak;\n\t\t\tcase LIGHTTYPE_SPOT:\n\t\t\t\tif (this._isVsm) {\n\t\t\t\t\ttmpBiases.bias = -0.00001 * 20;\n\t\t\t\t} else {\n\t\t\t\t\ttmpBiases.bias = this.shadowBias * 20;\n\t\t\t\t\tif (this.device.isWebGL1 && this.device.extStandardDerivatives) tmpBiases.bias *= -100;\n\t\t\t\t}\n\t\t\t\ttmpBiases.normalBias = this._isVsm ? this.vsmBias / (this.attenuationEnd / 7.0) : this._normalOffsetBias;\n\t\t\t\tbreak;\n\t\t\tcase LIGHTTYPE_DIRECTIONAL:\n\t\t\t\tif (this._isVsm) {\n\t\t\t\t\ttmpBiases.bias = -0.00001 * 20;\n\t\t\t\t} else {\n\t\t\t\t\ttmpBiases.bias = this.shadowBias / farClip * 100;\n\t\t\t\t\tif (this.device.isWebGL1 && this.device.extStandardDerivatives) tmpBiases.bias *= -100;\n\t\t\t\t}\n\t\t\t\ttmpBiases.normalBias = this._isVsm ? this.vsmBias / (farClip / 7.0) : this._normalOffsetBias;\n\t\t\t\tbreak;\n\t\t}\n\t\treturn tmpBiases;\n\t}\n\tgetColor() {\n\t\treturn this._color;\n\t}\n\tgetBoundingSphere(sphere) {\n\t\tif (this._type === LIGHTTYPE_SPOT) {\n\t\t\tconst size = this.attenuationEnd;\n\t\t\tconst angle = this._outerConeAngle;\n\t\t\tconst cosAngle = this._outerConeAngleCos;\n\t\t\tconst node = this._node;\n\t\t\ttmpVec.copy(node.up);\n\t\t\tif (angle > 45) {\n\t\t\t\tsphere.radius = size * this._outerConeAngleSin;\n\t\t\t\ttmpVec.mulScalar(-size * cosAngle);\n\t\t\t} else {\n\t\t\t\tsphere.radius = size / (2 * cosAngle);\n\t\t\t\ttmpVec.mulScalar(-sphere.radius);\n\t\t\t}\n\t\t\tsphere.center.add2(node.getPosition(), tmpVec);\n\t\t} else if (this._type === LIGHTTYPE_OMNI) {\n\t\t\tsphere.center = this._node.getPosition();\n\t\t\tsphere.radius = this.attenuationEnd;\n\t\t}\n\t}\n\tgetBoundingBox(box) {\n\t\tif (this._type === LIGHTTYPE_SPOT) {\n\t\t\tconst range = this.attenuationEnd;\n\t\t\tconst angle = this._outerConeAngle;\n\t\t\tconst node = this._node;\n\t\t\tconst scl = Math.abs(Math.sin(angle * math.DEG_TO_RAD) * range);\n\t\t\tbox.center.set(0, -range * 0.5, 0);\n\t\t\tbox.halfExtents.set(scl, range * 0.5, scl);\n\t\t\tbox.setFromTransformedAabb(box, node.getWorldTransform(), true);\n\t\t} else if (this._type === LIGHTTYPE_OMNI) {\n\t\t\tbox.center.copy(this._node.getPosition());\n\t\t\tbox.halfExtents.set(this.attenuationEnd, this.attenuationEnd, this.attenuationEnd);\n\t\t}\n\t}\n\t_updateShadowBias() {\n\t\tconst device = this.device;\n\t\tif (device.isWebGL2 || device.isWebGPU) {\n\t\t\tif (this._type === LIGHTTYPE_OMNI && !this.clusteredLighting) {\n\t\t\t\tthis.shadowDepthState.depthBias = 0;\n\t\t\t\tthis.shadowDepthState.depthBiasSlope = 0;\n\t\t\t} else {\n\t\t\t\tconst bias = this.shadowBias * -1000.0;\n\t\t\t\tthis.shadowDepthState.depthBias = bias;\n\t\t\t\tthis.shadowDepthState.depthBiasSlope = bias;\n\t\t\t}\n\t\t}\n\t}\n\t_updateFinalColor() {\n\t\tconst color = this._color;\n\t\tconst r = color.r;\n\t\tconst g = color.g;\n\t\tconst b = color.b;\n\t\tlet i = this._intensity;\n\t\tif (this._usePhysicalUnits) {\n\t\t\ti = this._luminance / Light.getLightUnitConversion(this._type, this._outerConeAngle * math.DEG_TO_RAD, this._innerConeAngle * math.DEG_TO_RAD);\n\t\t}\n\t\tconst finalColor = this._finalColor;\n\t\tconst linearFinalColor = this._linearFinalColor;\n\t\tfinalColor[0] = r * i;\n\t\tfinalColor[1] = g * i;\n\t\tfinalColor[2] = b * i;\n\t\tif (i >= 1) {\n\t\t\tlinearFinalColor[0] = Math.pow(r, 2.2) * i;\n\t\t\tlinearFinalColor[1] = Math.pow(g, 2.2) * i;\n\t\t\tlinearFinalColor[2] = Math.pow(b, 2.2) * i;\n\t\t} else {\n\t\t\tlinearFinalColor[0] = Math.pow(finalColor[0], 2.2);\n\t\t\tlinearFinalColor[1] = Math.pow(finalColor[1], 2.2);\n\t\t\tlinearFinalColor[2] = Math.pow(finalColor[2], 2.2);\n\t\t}\n\t}\n\tsetColor() {\n\t\tif (arguments.length === 1) {\n\t\t\tthis._color.set(arguments[0].r, arguments[0].g, arguments[0].b);\n\t\t} else if (arguments.length === 3) {\n\t\t\tthis._color.set(arguments[0], arguments[1], arguments[2]);\n\t\t}\n\t\tthis._updateFinalColor();\n\t}\n\tlayersDirty() {\n\t\tthis.layers.forEach(layer => {\n\t\t\tlayer.markLightsDirty();\n\t\t});\n\t}\n\tupdateKey() {\n\t\tlet key = this._type << 29 | (this._castShadows ? 1 : 0) << 28 | this._shadowType << 25 | this._falloffMode << 23 | (this._normalOffsetBias !== 0.0 ? 1 : 0) << 22 | (this._cookie ? 1 : 0) << 21 | (this._cookieFalloff ? 1 : 0) << 20 | chanId[this._cookieChannel.charAt(0)] << 18 | (this._cookieTransform ? 1 : 0) << 12 | this._shape << 10 | this.numCascades - 1 << 8 | (this.affectSpecularity ? 1 : 0) << 7 | this.mask << 6;\n\t\tif (this._cookieChannel.length === 3) {\n\t\t\tkey |= chanId[this._cookieChannel.charAt(1)] << 16;\n\t\t\tkey |= chanId[this._cookieChannel.charAt(2)] << 14;\n\t\t}\n\t\tif (key !== this.key) {\n\t\t\tthis.layersDirty();\n\t\t}\n\t\tthis.key = key;\n\t}\n}\n\nclass LightingParams {\n\tconstructor(supportsAreaLights, maxTextureSize, dirtyLightsFnc) {\n\t\tthis._areaLightsEnabled = false;\n\t\tthis._cells = new Vec3(10, 3, 10);\n\t\tthis._maxLightsPerCell = 255;\n\t\tthis._shadowsEnabled = true;\n\t\tthis._shadowType = SHADOW_PCF3;\n\t\tthis._shadowAtlasResolution = 2048;\n\t\tthis._cookiesEnabled = false;\n\t\tthis._cookieAtlasResolution = 2048;\n\t\tthis.debugLayer = void 0;\n\t\tthis.atlasSplit = null;\n\t\tthis._supportsAreaLights = supportsAreaLights;\n\t\tthis._maxTextureSize = maxTextureSize;\n\t\tthis._dirtyLightsFnc = dirtyLightsFnc;\n\t}\n\tapplySettings(render) {\n\t\tvar _render$lightingShado, _render$lightingCooki, _render$lightingAreaL, _render$lightingShado2, _render$lightingCooki2, _render$lightingMaxLi, _render$lightingShado3;\n\t\tthis.shadowsEnabled = (_render$lightingShado = render.lightingShadowsEnabled) != null ? _render$lightingShado : this.shadowsEnabled;\n\t\tthis.cookiesEnabled = (_render$lightingCooki = render.lightingCookiesEnabled) != null ? _render$lightingCooki : this.cookiesEnabled;\n\t\tthis.areaLightsEnabled = (_render$lightingAreaL = render.lightingAreaLightsEnabled) != null ? _render$lightingAreaL : this.areaLightsEnabled;\n\t\tthis.shadowAtlasResolution = (_render$lightingShado2 = render.lightingShadowAtlasResolution) != null ? _render$lightingShado2 : this.shadowAtlasResolution;\n\t\tthis.cookieAtlasResolution = (_render$lightingCooki2 = render.lightingCookieAtlasResolution) != null ? _render$lightingCooki2 : this.cookieAtlasResolution;\n\t\tthis.maxLightsPerCell = (_render$lightingMaxLi = render.lightingMaxLightsPerCell) != null ? _render$lightingMaxLi : this.maxLightsPerCell;\n\t\tthis.shadowType = (_render$lightingShado3 = render.lightingShadowType) != null ? _render$lightingShado3 : this.shadowType;\n\t\tif (render.lightingCells) {\n\t\t\tthis.cell = new Vec3(render.lightingCells);\n\t\t}\n\t}\n\tset cells(value) {\n\t\tthis._cells.copy(value);\n\t}\n\tget cells() {\n\t\treturn this._cells;\n\t}\n\tset maxLightsPerCell(value) {\n\t\tthis._maxLightsPerCell = math.clamp(value, 1, 255);\n\t}\n\tget maxLightsPerCell() {\n\t\treturn this._maxLightsPerCell;\n\t}\n\tset cookieAtlasResolution(value) {\n\t\tthis._cookieAtlasResolution = math.clamp(value, 32, this._maxTextureSize);\n\t}\n\tget cookieAtlasResolution() {\n\t\treturn this._cookieAtlasResolution;\n\t}\n\tset shadowAtlasResolution(value) {\n\t\tthis._shadowAtlasResolution = math.clamp(value, 32, this._maxTextureSize);\n\t}\n\tget shadowAtlasResolution() {\n\t\treturn this._shadowAtlasResolution;\n\t}\n\tset shadowType(value) {\n\t\tif (this._shadowType !== value) {\n\t\t\tthis._shadowType = value;\n\t\t\tthis._dirtyLightsFnc();\n\t\t}\n\t}\n\tget shadowType() {\n\t\treturn this._shadowType;\n\t}\n\tset cookiesEnabled(value) {\n\t\tif (this._cookiesEnabled !== value) {\n\t\t\tthis._cookiesEnabled = value;\n\t\t\tthis._dirtyLightsFnc();\n\t\t}\n\t}\n\tget cookiesEnabled() {\n\t\treturn this._cookiesEnabled;\n\t}\n\tset areaLightsEnabled(value) {\n\t\tif (this._supportsAreaLights) {\n\t\t\tif (this._areaLightsEnabled !== value) {\n\t\t\t\tthis._areaLightsEnabled = value;\n\t\t\t\tthis._dirtyLightsFnc();\n\t\t\t}\n\t\t}\n\t}\n\tget areaLightsEnabled() {\n\t\treturn this._areaLightsEnabled;\n\t}\n\tset shadowsEnabled(value) {\n\t\tif (this._shadowsEnabled !== value) {\n\t\t\tthis._shadowsEnabled = value;\n\t\t\tthis._dirtyLightsFnc();\n\t\t}\n\t}\n\tget shadowsEnabled() {\n\t\treturn this._shadowsEnabled;\n\t}\n}\n\nconst textureMorphVertexShader = `\n\tattribute vec2 vertex_position;\n\tvarying vec2 uv0;\n\tvoid main(void) {\n\t\tgl_Position = vec4(vertex_position, 0.5, 1.0);\n\t\tuv0 = vertex_position.xy * 0.5 + 0.5;\n\t}\n\t`;\nconst blendStateAdditive = new BlendState(true, BLENDEQUATION_ADD, BLENDMODE_ONE, BLENDMODE_ONE);\nclass MorphInstance {\n\tconstructor(morph) {\n\t\tthis.morph = morph;\n\t\tmorph.incRefCount();\n\t\tthis.device = morph.device;\n\t\tthis._weights = [];\n\t\tthis._weightMap = new Map();\n\t\tfor (let v = 0; v < morph._targets.length; v++) {\n\t\t\tconst target = morph._targets[v];\n\t\t\tif (target.name) {\n\t\t\t\tthis._weightMap.set(target.name, v);\n\t\t\t}\n\t\t\tthis.setWeight(v, target.defaultWeight);\n\t\t}\n\t\tthis._activeTargets = [];\n\t\tif (morph.useTextureMorph) {\n\t\t\tthis.shaderCache = {};\n\t\t\tthis.maxSubmitCount = this.device.maxTextures;\n\t\t\tthis._shaderMorphWeights = new Float32Array(this.maxSubmitCount);\n\t\t\tconst createRT = (name, textureVar) => {\n\t\t\t\tthis[textureVar] = morph._createTexture(name, morph._renderTextureFormat);\n\t\t\t\treturn new RenderTarget({\n\t\t\t\t\tcolorBuffer: this[textureVar],\n\t\t\t\t\tdepth: false\n\t\t\t\t});\n\t\t\t};\n\t\t\tif (morph.morphPositions) {\n\t\t\t\tthis.rtPositions = createRT('MorphRTPos', 'texturePositions');\n\t\t\t}\n\t\t\tif (morph.morphNormals) {\n\t\t\t\tthis.rtNormals = createRT('MorphRTNrm', 'textureNormals');\n\t\t\t}\n\t\t\tthis._textureParams = new Float32Array([morph.morphTextureWidth, morph.morphTextureHeight, 1 / morph.morphTextureWidth, 1 / morph.morphTextureHeight]);\n\t\t\tfor (let i = 0; i < this.maxSubmitCount; i++) {\n\t\t\t\tthis[`morphBlendTex${i}`] = this.device.scope.resolve(`morphBlendTex${i}`);\n\t\t\t}\n\t\t\tthis.morphFactor = this.device.scope.resolve('morphFactor[0]');\n\t\t\tthis.zeroTextures = false;\n\t\t} else {\n\t\t\tthis.maxSubmitCount = 8;\n\t\t\tthis._shaderMorphWeights = new Float32Array(this.maxSubmitCount);\n\t\t\tthis._shaderMorphWeightsA = new Float32Array(this._shaderMorphWeights.buffer, 0, 4);\n\t\t\tthis._shaderMorphWeightsB = new Float32Array(this._shaderMorphWeights.buffer, 4 * 4, 4);\n\t\t\tthis._activeVertexBuffers = new Array(this.maxSubmitCount);\n\t\t}\n\t}\n\tdestroy() {\n\t\tthis.shader = null;\n\t\tconst morph = this.morph;\n\t\tif (morph) {\n\t\t\tthis.morph = null;\n\t\t\tmorph.decRefCount();\n\t\t\tif (morph.refCount < 1) {\n\t\t\t\tmorph.destroy();\n\t\t\t}\n\t\t}\n\t\tif (this.rtPositions) {\n\t\t\tthis.rtPositions.destroy();\n\t\t\tthis.rtPositions = null;\n\t\t}\n\t\tif (this.texturePositions) {\n\t\t\tthis.texturePositions.destroy();\n\t\t\tthis.texturePositions = null;\n\t\t}\n\t\tif (this.rtNormals) {\n\t\t\tthis.rtNormals.destroy();\n\t\t\tthis.rtNormals = null;\n\t\t}\n\t\tif (this.textureNormals) {\n\t\t\tthis.textureNormals.destroy();\n\t\t\tthis.textureNormals = null;\n\t\t}\n\t}\n\tclone() {\n\t\treturn new MorphInstance(this.morph);\n\t}\n\t_getWeightIndex(key) {\n\t\tif (typeof key === 'string') {\n\t\t\tconst index = this._weightMap.get(key);\n\t\t\treturn index;\n\t\t}\n\t\treturn key;\n\t}\n\tgetWeight(key) {\n\t\tconst index = this._getWeightIndex(key);\n\t\treturn this._weights[index];\n\t}\n\tsetWeight(key, weight) {\n\t\tconst index = this._getWeightIndex(key);\n\t\tthis._weights[index] = weight;\n\t\tthis._dirty = true;\n\t}\n\t_getFragmentShader(numTextures) {\n\t\tlet fragmentShader = '';\n\t\tif (numTextures > 0) {\n\t\t\tfragmentShader += 'varying vec2 uv0;\\n' + `uniform highp float morphFactor[${numTextures}];\\n`;\n\t\t}\n\t\tfor (let i = 0; i < numTextures; i++) {\n\t\t\tfragmentShader += `uniform highp sampler2D morphBlendTex${i};\\n`;\n\t\t}\n\t\tfragmentShader += 'void main (void) {\\n' + '    highp vec4 color = vec4(0, 0, 0, 1);\\n';\n\t\tfor (let i = 0; i < numTextures; i++) {\n\t\t\tfragmentShader += `    color.xyz += morphFactor[${i}] * texture2D(morphBlendTex${i}, uv0).xyz;\\n`;\n\t\t}\n\t\tfragmentShader += '    gl_FragColor = color;\\n' + '}\\n';\n\t\treturn fragmentShader;\n\t}\n\t_getShader(count) {\n\t\tlet shader = this.shaderCache[count];\n\t\tif (!shader) {\n\t\t\tconst fs = this._getFragmentShader(count);\n\t\t\tshader = createShaderFromCode(this.device, textureMorphVertexShader, fs, `textureMorph${count}`);\n\t\t\tthis.shaderCache[count] = shader;\n\t\t}\n\t\treturn shader;\n\t}\n\t_updateTextureRenderTarget(renderTarget, srcTextureName) {\n\t\tconst device = this.device;\n\t\tconst submitBatch = (usedCount, blending) => {\n\t\t\tthis.morphFactor.setValue(this._shaderMorphWeights);\n\t\t\tdevice.setBlendState(blending ? blendStateAdditive : BlendState.NOBLEND);\n\t\t\tconst shader = this._getShader(usedCount);\n\t\t\tdrawQuadWithShader(device, renderTarget, shader);\n\t\t};\n\t\tlet usedCount = 0;\n\t\tlet blending = false;\n\t\tconst count = this._activeTargets.length;\n\t\tfor (let i = 0; i < count; i++) {\n\t\t\tconst activeTarget = this._activeTargets[i];\n\t\t\tconst tex = activeTarget.target[srcTextureName];\n\t\t\tif (tex) {\n\t\t\t\tthis[`morphBlendTex${usedCount}`].setValue(tex);\n\t\t\t\tthis._shaderMorphWeights[usedCount] = activeTarget.weight;\n\t\t\t\tusedCount++;\n\t\t\t\tif (usedCount >= this.maxSubmitCount) {\n\t\t\t\t\tsubmitBatch(usedCount, blending);\n\t\t\t\t\tusedCount = 0;\n\t\t\t\t\tblending = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (usedCount > 0 || count === 0 && !this.zeroTextures) {\n\t\t\tsubmitBatch(usedCount, blending);\n\t\t}\n\t}\n\t_updateTextureMorph() {\n\t\tthis.device;\n\t\tif (this._activeTargets.length > 0 || !this.zeroTextures) {\n\t\t\tif (this.rtPositions) {\n\t\t\t\tthis._updateTextureRenderTarget(this.rtPositions, 'texturePositions');\n\t\t\t}\n\t\t\tif (this.rtNormals) {\n\t\t\t\tthis._updateTextureRenderTarget(this.rtNormals, 'textureNormals');\n\t\t\t}\n\t\t\tthis.zeroTextures = this._activeTargets.length === 0;\n\t\t}\n\t}\n\t_updateVertexMorph() {\n\t\tconst count = this.maxSubmitCount;\n\t\tfor (let i = 0; i < count; i++) {\n\t\t\tthis._shaderMorphWeights[i] = 0;\n\t\t\tthis._activeVertexBuffers[i] = null;\n\t\t}\n\t\tlet posIndex = 0;\n\t\tlet nrmIndex = this.morph.morphPositions ? 4 : 0;\n\t\tfor (let i = 0; i < this._activeTargets.length; i++) {\n\t\t\tconst target = this._activeTargets[i].target;\n\t\t\tif (target._vertexBufferPositions) {\n\t\t\t\tthis._activeVertexBuffers[posIndex] = target._vertexBufferPositions;\n\t\t\t\tthis._shaderMorphWeights[posIndex] = this._activeTargets[i].weight;\n\t\t\t\tposIndex++;\n\t\t\t}\n\t\t\tif (target._vertexBufferNormals) {\n\t\t\t\tthis._activeVertexBuffers[nrmIndex] = target._vertexBufferNormals;\n\t\t\t\tthis._shaderMorphWeights[nrmIndex] = this._activeTargets[i].weight;\n\t\t\t\tnrmIndex++;\n\t\t\t}\n\t\t}\n\t}\n\tupdate() {\n\t\tthis._dirty = false;\n\t\tconst targets = this.morph._targets;\n\t\tlet activeCount = 0;\n\t\tconst epsilon = 0.00001;\n\t\tfor (let i = 0; i < targets.length; i++) {\n\t\t\tconst absWeight = Math.abs(this.getWeight(i));\n\t\t\tif (absWeight > epsilon) {\n\t\t\t\tif (this._activeTargets.length <= activeCount) {\n\t\t\t\t\tthis._activeTargets[activeCount] = {};\n\t\t\t\t}\n\t\t\t\tconst activeTarget = this._activeTargets[activeCount++];\n\t\t\t\tactiveTarget.absWeight = absWeight;\n\t\t\t\tactiveTarget.weight = this.getWeight(i);\n\t\t\t\tactiveTarget.target = targets[i];\n\t\t\t}\n\t\t}\n\t\tthis._activeTargets.length = activeCount;\n\t\tconst maxActiveTargets = this.morph.maxActiveTargets;\n\t\tif (this._activeTargets.length > maxActiveTargets) {\n\t\t\tthis._activeTargets.sort((l, r) => {\n\t\t\t\treturn l.absWeight < r.absWeight ? 1 : r.absWeight < l.absWeight ? -1 : 0;\n\t\t\t});\n\t\t\tthis._activeTargets.length = maxActiveTargets;\n\t\t}\n\t\tif (this.morph.useTextureMorph) {\n\t\t\tthis._updateTextureMorph();\n\t\t} else {\n\t\t\tthis._updateVertexMorph();\n\t\t}\n\t}\n}\n\nclass Model {\n\tconstructor() {\n\t\tthis.graph = null;\n\t\tthis.meshInstances = [];\n\t\tthis.skinInstances = [];\n\t\tthis.morphInstances = [];\n\t\tthis.cameras = [];\n\t\tthis.lights = [];\n\t\tthis._shadersVersion = 0;\n\t\tthis._immutable = false;\n\t}\n\tgetGraph() {\n\t\treturn this.graph;\n\t}\n\tsetGraph(graph) {\n\t\tthis.graph = graph;\n\t}\n\tgetCameras() {\n\t\treturn this.cameras;\n\t}\n\tsetCameras(cameras) {\n\t\tthis.cameras = cameras;\n\t}\n\tgetLights() {\n\t\treturn this.lights;\n\t}\n\tsetLights(lights) {\n\t\tthis.lights = lights;\n\t}\n\tgetMaterials() {\n\t\tconst materials = [];\n\t\tfor (let i = 0; i < this.meshInstances.length; i++) {\n\t\t\tconst meshInstance = this.meshInstances[i];\n\t\t\tif (materials.indexOf(meshInstance.material) === -1) {\n\t\t\t\tmaterials.push(meshInstance.material);\n\t\t\t}\n\t\t}\n\t\treturn materials;\n\t}\n\tclone() {\n\t\tconst srcNodes = [];\n\t\tconst cloneNodes = [];\n\t\tconst _duplicate = function _duplicate(node) {\n\t\t\tconst newNode = node.clone();\n\t\t\tsrcNodes.push(node);\n\t\t\tcloneNodes.push(newNode);\n\t\t\tfor (let idx = 0; idx < node._children.length; idx++) {\n\t\t\t\tnewNode.addChild(_duplicate(node._children[idx]));\n\t\t\t}\n\t\t\treturn newNode;\n\t\t};\n\t\tconst cloneGraph = _duplicate(this.graph);\n\t\tconst cloneMeshInstances = [];\n\t\tconst cloneSkinInstances = [];\n\t\tconst cloneMorphInstances = [];\n\t\tfor (let i = 0; i < this.skinInstances.length; i++) {\n\t\t\tconst skin = this.skinInstances[i].skin;\n\t\t\tconst cloneSkinInstance = new SkinInstance(skin);\n\t\t\tconst bones = [];\n\t\t\tfor (let j = 0; j < skin.boneNames.length; j++) {\n\t\t\t\tconst boneName = skin.boneNames[j];\n\t\t\t\tconst bone = cloneGraph.findByName(boneName);\n\t\t\t\tbones.push(bone);\n\t\t\t}\n\t\t\tcloneSkinInstance.bones = bones;\n\t\t\tcloneSkinInstances.push(cloneSkinInstance);\n\t\t}\n\t\tfor (let i = 0; i < this.morphInstances.length; i++) {\n\t\t\tconst morph = this.morphInstances[i].morph;\n\t\t\tconst cloneMorphInstance = new MorphInstance(morph);\n\t\t\tcloneMorphInstances.push(cloneMorphInstance);\n\t\t}\n\t\tfor (let i = 0; i < this.meshInstances.length; i++) {\n\t\t\tconst meshInstance = this.meshInstances[i];\n\t\t\tconst nodeIndex = srcNodes.indexOf(meshInstance.node);\n\t\t\tconst cloneMeshInstance = new MeshInstance(meshInstance.mesh, meshInstance.material, cloneNodes[nodeIndex]);\n\t\t\tif (meshInstance.skinInstance) {\n\t\t\t\tconst skinInstanceIndex = this.skinInstances.indexOf(meshInstance.skinInstance);\n\t\t\t\tcloneMeshInstance.skinInstance = cloneSkinInstances[skinInstanceIndex];\n\t\t\t}\n\t\t\tif (meshInstance.morphInstance) {\n\t\t\t\tconst morphInstanceIndex = this.morphInstances.indexOf(meshInstance.morphInstance);\n\t\t\t\tcloneMeshInstance.morphInstance = cloneMorphInstances[morphInstanceIndex];\n\t\t\t}\n\t\t\tcloneMeshInstances.push(cloneMeshInstance);\n\t\t}\n\t\tconst clone = new Model();\n\t\tclone.graph = cloneGraph;\n\t\tclone.meshInstances = cloneMeshInstances;\n\t\tclone.skinInstances = cloneSkinInstances;\n\t\tclone.morphInstances = cloneMorphInstances;\n\t\tclone.getGraph().syncHierarchy();\n\t\treturn clone;\n\t}\n\tdestroy() {\n\t\tconst meshInstances = this.meshInstances;\n\t\tfor (let i = 0; i < meshInstances.length; i++) {\n\t\t\tmeshInstances[i].destroy();\n\t\t}\n\t\tthis.meshInstances.length = 0;\n\t}\n\tgenerateWireframe() {\n\t\tMeshInstance._prepareRenderStyleForArray(this.meshInstances, RENDERSTYLE_WIREFRAME);\n\t}\n}\n\nclass Morph extends RefCountedObject {\n\tconstructor(targets, graphicsDevice, {\n\t\tpreferHighPrecision = false\n\t} = {}) {\n\t\tsuper();\n\t\tthis._aabb = void 0;\n\t\tthis.preferHighPrecision = void 0;\n\t\tthis.device = graphicsDevice;\n\t\tthis.preferHighPrecision = preferHighPrecision;\n\t\tthis._targets = targets.slice();\n\t\tconst device = this.device;\n\t\tif (device.supportsMorphTargetTexturesCore) {\n\t\t\tconst renderableHalf = device.extTextureHalfFloat && device.textureHalfFloatRenderable ? PIXELFORMAT_RGBA16F : undefined;\n\t\t\tconst renderableFloat = device.extTextureFloat && device.textureFloatRenderable ? PIXELFORMAT_RGBA32F : undefined;\n\t\t\tthis._renderTextureFormat = this.preferHighPrecision ? renderableFloat != null ? renderableFloat : renderableHalf : renderableHalf != null ? renderableHalf : renderableFloat;\n\t\t\tconst textureHalf = device.extTextureHalfFloat && device.textureHalfFloatUpdatable ? PIXELFORMAT_RGBA16F : undefined;\n\t\t\tconst textureFloat = device.extTextureFloat ? PIXELFORMAT_RGB32F : undefined;\n\t\t\tthis._textureFormat = this.preferHighPrecision ? textureFloat != null ? textureFloat : textureHalf : textureHalf != null ? textureHalf : textureFloat;\n\t\t\tif (this._renderTextureFormat !== undefined && this._textureFormat !== undefined) {\n\t\t\t\tthis._useTextureMorph = true;\n\t\t\t}\n\t\t}\n\t\tthis._init();\n\t\tthis._updateMorphFlags();\n\t}\n\tget aabb() {\n\t\tif (!this._aabb) {\n\t\t\tconst min = new Vec3();\n\t\t\tconst max = new Vec3();\n\t\t\tfor (let i = 0; i < this._targets.length; i++) {\n\t\t\t\tconst targetAabb = this._targets[i].aabb;\n\t\t\t\tmin.min(targetAabb.getMin());\n\t\t\t\tmax.max(targetAabb.getMax());\n\t\t\t}\n\t\t\tthis._aabb = new BoundingBox();\n\t\t\tthis._aabb.setMinMax(min, max);\n\t\t}\n\t\treturn this._aabb;\n\t}\n\tget morphPositions() {\n\t\treturn this._morphPositions;\n\t}\n\tget morphNormals() {\n\t\treturn this._morphNormals;\n\t}\n\tget maxActiveTargets() {\n\t\tif (this._useTextureMorph) {\n\t\t\treturn this._targets.length;\n\t\t}\n\t\treturn this._morphPositions && this._morphNormals ? 4 : 8;\n\t}\n\tget useTextureMorph() {\n\t\treturn this._useTextureMorph;\n\t}\n\t_init() {\n\t\tif (this._useTextureMorph) {\n\t\t\tthis._useTextureMorph = this._initTextureBased();\n\t\t}\n\t\tif (!this._useTextureMorph) {\n\t\t\tfor (let i = 0; i < this._targets.length; i++) {\n\t\t\t\tthis._targets[i]._initVertexBuffers(this.device);\n\t\t\t}\n\t\t}\n\t\tfor (let i = 0; i < this._targets.length; i++) {\n\t\t\tthis._targets[i]._postInit();\n\t\t}\n\t}\n\t_findSparseSet(deltaArrays, ids, usedDataIndices, floatRounding) {\n\t\tlet freeIndex = 1;\n\t\tconst dataCount = deltaArrays[0].length;\n\t\tfor (let v = 0; v < dataCount; v += 3) {\n\t\t\tlet vertexUsed = false;\n\t\t\tfor (let i = 0; i < deltaArrays.length; i++) {\n\t\t\t\tconst data = deltaArrays[i];\n\t\t\t\tif (data[v] !== 0 || data[v + 1] !== 0 || data[v + 2] !== 0) {\n\t\t\t\t\tvertexUsed = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (vertexUsed) {\n\t\t\t\tids.push(freeIndex + floatRounding);\n\t\t\t\tusedDataIndices.push(v / 3);\n\t\t\t\tfreeIndex++;\n\t\t\t} else {\n\t\t\t\tids.push(0 + floatRounding);\n\t\t\t}\n\t\t}\n\t\treturn freeIndex;\n\t}\n\t_initTextureBased() {\n\t\tconst useUintIds = this.device.isWebGPU;\n\t\tconst floatRounding = useUintIds ? 0 : 0.2;\n\t\tconst deltaArrays = [],\n\t\t\tdeltaInfos = [];\n\t\tfor (let i = 0; i < this._targets.length; i++) {\n\t\t\tconst target = this._targets[i];\n\t\t\tif (target.options.deltaPositions) {\n\t\t\t\tdeltaArrays.push(target.options.deltaPositions);\n\t\t\t\tdeltaInfos.push({\n\t\t\t\t\ttarget: target,\n\t\t\t\t\tname: 'texturePositions'\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (target.options.deltaNormals) {\n\t\t\t\tdeltaArrays.push(target.options.deltaNormals);\n\t\t\t\tdeltaInfos.push({\n\t\t\t\t\ttarget: target,\n\t\t\t\t\tname: 'textureNormals'\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tconst ids = [],\n\t\t\tusedDataIndices = [];\n\t\tconst freeIndex = this._findSparseSet(deltaArrays, ids, usedDataIndices, floatRounding);\n\t\tconst maxTextureSize = Math.min(this.device.maxTextureSize, 4096);\n\t\tlet morphTextureWidth = Math.ceil(Math.sqrt(freeIndex));\n\t\tmorphTextureWidth = Math.min(morphTextureWidth, maxTextureSize);\n\t\tconst morphTextureHeight = Math.ceil(freeIndex / morphTextureWidth);\n\t\tif (morphTextureHeight > maxTextureSize) {\n\t\t\treturn false;\n\t\t}\n\t\tthis.morphTextureWidth = morphTextureWidth;\n\t\tthis.morphTextureHeight = morphTextureHeight;\n\t\tlet halfFloat = false;\n\t\tlet numComponents = 3;\n\t\tconst float2Half = FloatPacking.float2Half;\n\t\tif (this._textureFormat === PIXELFORMAT_RGBA16F) {\n\t\t\thalfFloat = true;\n\t\t\tnumComponents = 4;\n\t\t}\n\t\tconst textures = [];\n\t\tfor (let i = 0; i < deltaArrays.length; i++) {\n\t\t\ttextures.push(this._createTexture('MorphTarget', this._textureFormat));\n\t\t}\n\t\tfor (let i = 0; i < deltaArrays.length; i++) {\n\t\t\tconst data = deltaArrays[i];\n\t\t\tconst texture = textures[i];\n\t\t\tconst textureData = texture.lock();\n\t\t\tif (halfFloat) {\n\t\t\t\tfor (let v = 0; v < usedDataIndices.length; v++) {\n\t\t\t\t\tconst index = usedDataIndices[v] * 3;\n\t\t\t\t\tconst dstIndex = v * numComponents + numComponents;\n\t\t\t\t\ttextureData[dstIndex] = float2Half(data[index]);\n\t\t\t\t\ttextureData[dstIndex + 1] = float2Half(data[index + 1]);\n\t\t\t\t\ttextureData[dstIndex + 2] = float2Half(data[index + 2]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (let v = 0; v < usedDataIndices.length; v++) {\n\t\t\t\t\tconst index = usedDataIndices[v] * 3;\n\t\t\t\t\tconst dstIndex = v * numComponents + numComponents;\n\t\t\t\t\ttextureData[dstIndex] = data[index];\n\t\t\t\t\ttextureData[dstIndex + 1] = data[index + 1];\n\t\t\t\t\ttextureData[dstIndex + 2] = data[index + 2];\n\t\t\t\t}\n\t\t\t}\n\t\t\ttexture.unlock();\n\t\t\tconst target = deltaInfos[i].target;\n\t\t\ttarget._setTexture(deltaInfos[i].name, texture);\n\t\t}\n\t\tconst formatDesc = [{\n\t\t\tsemantic: SEMANTIC_ATTR15,\n\t\t\tcomponents: 1,\n\t\t\ttype: useUintIds ? TYPE_UINT32 : TYPE_FLOAT32\n\t\t}];\n\t\tthis.vertexBufferIds = new VertexBuffer(this.device, new VertexFormat(this.device, formatDesc, ids.length), ids.length, {\n\t\t\tdata: useUintIds ? new Uint32Array(ids) : new Float32Array(ids)\n\t\t});\n\t\treturn true;\n\t}\n\tdestroy() {\n\t\tvar _this$vertexBufferIds;\n\t\t(_this$vertexBufferIds = this.vertexBufferIds) == null || _this$vertexBufferIds.destroy();\n\t\tthis.vertexBufferIds = null;\n\t\tfor (let i = 0; i < this._targets.length; i++) {\n\t\t\tthis._targets[i].destroy();\n\t\t}\n\t\tthis._targets.length = 0;\n\t}\n\tget targets() {\n\t\treturn this._targets;\n\t}\n\t_updateMorphFlags() {\n\t\tthis._morphPositions = false;\n\t\tthis._morphNormals = false;\n\t\tfor (let i = 0; i < this._targets.length; i++) {\n\t\t\tconst target = this._targets[i];\n\t\t\tif (target.morphPositions) {\n\t\t\t\tthis._morphPositions = true;\n\t\t\t}\n\t\t\tif (target.morphNormals) {\n\t\t\t\tthis._morphNormals = true;\n\t\t\t}\n\t\t}\n\t}\n\t_createTexture(name, format) {\n\t\treturn new Texture(this.device, {\n\t\t\twidth: this.morphTextureWidth,\n\t\t\theight: this.morphTextureHeight,\n\t\t\tformat: format,\n\t\t\tcubemap: false,\n\t\t\tmipmaps: false,\n\t\t\tminFilter: FILTER_NEAREST,\n\t\t\tmagFilter: FILTER_NEAREST,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\tname: name\n\t\t});\n\t}\n}\n\nclass MorphTarget {\n\tconstructor(options) {\n\t\tthis.used = false;\n\t\tif (arguments.length === 2) {\n\t\t\toptions = arguments[1];\n\t\t}\n\t\tthis.options = options;\n\t\tthis._name = options.name;\n\t\tthis._defaultWeight = options.defaultWeight || 0;\n\t\tthis._aabb = options.aabb;\n\t\tthis.deltaPositions = options.deltaPositions;\n\t}\n\tdestroy() {\n\t\tvar _this$_vertexBufferPo, _this$_vertexBufferNo, _this$texturePosition, _this$textureNormals;\n\t\t(_this$_vertexBufferPo = this._vertexBufferPositions) == null || _this$_vertexBufferPo.destroy();\n\t\tthis._vertexBufferPositions = null;\n\t\t(_this$_vertexBufferNo = this._vertexBufferNormals) == null || _this$_vertexBufferNo.destroy();\n\t\tthis._vertexBufferNormals = null;\n\t\t(_this$texturePosition = this.texturePositions) == null || _this$texturePosition.destroy();\n\t\tthis.texturePositions = null;\n\t\t(_this$textureNormals = this.textureNormals) == null || _this$textureNormals.destroy();\n\t\tthis.textureNormals = null;\n\t}\n\tget name() {\n\t\treturn this._name;\n\t}\n\tget defaultWeight() {\n\t\treturn this._defaultWeight;\n\t}\n\tget aabb() {\n\t\tif (!this._aabb) {\n\t\t\tthis._aabb = new BoundingBox();\n\t\t\tif (this.deltaPositions) {\n\t\t\t\tthis._aabb.compute(this.deltaPositions);\n\t\t\t}\n\t\t}\n\t\treturn this._aabb;\n\t}\n\tget morphPositions() {\n\t\treturn !!this._vertexBufferPositions || !!this.texturePositions;\n\t}\n\tget morphNormals() {\n\t\treturn !!this._vertexBufferNormals || !!this.textureNormals;\n\t}\n\tclone() {\n\t\treturn new MorphTarget(this.options);\n\t}\n\t_postInit() {\n\t\tif (!this.options.preserveData) {\n\t\t\tthis.options = null;\n\t\t}\n\t\tthis.used = true;\n\t}\n\t_initVertexBuffers(graphicsDevice) {\n\t\tconst options = this.options;\n\t\tthis._vertexBufferPositions = this._createVertexBuffer(graphicsDevice, options.deltaPositions, options.deltaPositionsType);\n\t\tthis._vertexBufferNormals = this._createVertexBuffer(graphicsDevice, options.deltaNormals, options.deltaNormalsType);\n\t\tif (this._vertexBufferPositions) {\n\t\t\tthis.deltaPositions = this._vertexBufferPositions.lock();\n\t\t}\n\t}\n\t_createVertexBuffer(device, data, dataType = TYPE_FLOAT32) {\n\t\tif (data) {\n\t\t\tconst formatDesc = [{\n\t\t\t\tsemantic: SEMANTIC_ATTR0,\n\t\t\t\tcomponents: 3,\n\t\t\t\ttype: dataType\n\t\t\t}];\n\t\t\treturn new VertexBuffer(device, new VertexFormat(device, formatDesc), data.length / 3, {\n\t\t\t\tdata: data\n\t\t\t});\n\t\t}\n\t\treturn null;\n\t}\n\t_setTexture(name, texture) {\n\t\tthis[name] = texture;\n\t}\n}\n\nclass ShaderGeneratorParticle extends ShaderGenerator {\n\tgenerateKey(options) {\n\t\tlet key = 'particle';\n\t\tfor (const prop in options) {\n\t\t\tif (options.hasOwnProperty(prop)) {\n\t\t\t\tkey += options[prop];\n\t\t\t}\n\t\t}\n\t\treturn key;\n\t}\n\t_animTex(options) {\n\t\tlet vshader = '';\n\t\tvshader += options.animTexLoop ? shaderChunks.particleAnimFrameLoopVS : shaderChunks.particleAnimFrameClampVS;\n\t\tvshader += shaderChunks.particleAnimTexVS;\n\t\treturn vshader;\n\t}\n\tcreateShaderDefinition(device, options) {\n\t\tconst executionDefine = `#define PARTICLE_${options.useCpu ? 'CPU' : 'GPU'}\\n`;\n\t\tlet fshader = `#define PARTICLE\\n${executionDefine}`;\n\t\tlet vshader = `#define VERTEXSHADER\\n${executionDefine}`;\n\t\tif (options.mesh) vshader += '#define USE_MESH\\n';\n\t\tif (options.localSpace) vshader += '#define LOCAL_SPACE\\n';\n\t\tif (options.screenSpace) vshader += '#define SCREEN_SPACE\\n';\n\t\tif (options.animTex) vshader += '\\nuniform vec2 animTexTilesParams;\\n';\n\t\tif (options.animTex) vshader += '\\nuniform vec4 animTexParams;\\n';\n\t\tif (options.animTex) vshader += '\\nuniform vec2 animTexIndexParams;\\n';\n\t\tif (options.normal === 2) vshader += '\\nvarying mat3 ParticleMat;\\n';\n\t\tif (options.normal === 1) vshader += '\\nvarying vec3 Normal;\\n';\n\t\tif (options.soft) vshader += '\\nvarying float vDepth;\\n';\n\t\tconst faceVS = options.customFace ? shaderChunks.particle_customFaceVS : shaderChunks.particle_billboardVS;\n\t\tif (!options.useCpu) {\n\t\t\tvshader += shaderChunks.particle_initVS;\n\t\t\tvshader += options.pack8 ? shaderChunks.particleInputRgba8PS : shaderChunks.particleInputFloatPS;\n\t\t\tif (options.soft > 0) vshader += shaderChunks.screenDepthPS;\n\t\t\tvshader += shaderChunks.particleVS;\n\t\t\tif (options.localSpace) vshader += shaderChunks.particle_localShiftVS;\n\t\t\tif (options.animTex) vshader += this._animTex(options);\n\t\t\tif (options.wrap) vshader += shaderChunks.particle_wrapVS;\n\t\t\tif (options.alignToMotion) vshader += shaderChunks.particle_pointAlongVS;\n\t\t\tvshader += options.mesh ? shaderChunks.particle_meshVS : faceVS;\n\t\t\tif (options.normal === 1) vshader += shaderChunks.particle_normalVS;\n\t\t\tif (options.normal === 2) vshader += shaderChunks.particle_TBNVS;\n\t\t\tif (options.stretch > 0.0) vshader += shaderChunks.particle_stretchVS;\n\t\t\tvshader += shaderChunks.particle_endVS;\n\t\t\tif (options.soft > 0) vshader += shaderChunks.particle_softVS;\n\t\t} else {\n\t\t\tif (options.soft > 0) vshader += shaderChunks.screenDepthPS;\n\t\t\tvshader += shaderChunks.particle_cpuVS;\n\t\t\tif (options.localSpace) vshader += shaderChunks.particle_localShiftVS;\n\t\t\tif (options.animTex) vshader += this._animTex(options);\n\t\t\tif (options.alignToMotion) vshader += shaderChunks.particle_pointAlongVS;\n\t\t\tvshader += options.mesh ? shaderChunks.particle_meshVS : faceVS;\n\t\t\tif (options.normal === 1) vshader += shaderChunks.particle_normalVS;\n\t\t\tif (options.normal === 2) vshader += shaderChunks.particle_TBNVS;\n\t\t\tif (options.stretch > 0.0) vshader += shaderChunks.particle_stretchVS;\n\t\t\tvshader += shaderChunks.particle_cpu_endVS;\n\t\t\tif (options.soft > 0) vshader += shaderChunks.particle_softVS;\n\t\t}\n\t\tvshader += '}\\n';\n\t\tif (options.normal > 0) {\n\t\t\tif (options.normal === 1) {\n\t\t\t\tfshader += '\\nvarying vec3 Normal;\\n';\n\t\t\t} else if (options.normal === 2) {\n\t\t\t\tfshader += '\\nvarying mat3 ParticleMat;\\n';\n\t\t\t}\n\t\t\tfshader += '\\nuniform vec3 lightCube[6];\\n';\n\t\t}\n\t\tif (options.soft) fshader += '\\nvarying float vDepth;\\n';\n\t\tif (options.normal === 0 && options.fog === 'none') options.srgb = false;\n\t\tfshader += shaderChunks.decodePS;\n\t\tfshader += ShaderGenerator.gammaCode(options.gamma);\n\t\tfshader += ShaderGenerator.tonemapCode(options.toneMap);\n\t\tif (options.fog === 'linear') {\n\t\t\tfshader += shaderChunks.fogLinearPS;\n\t\t} else if (options.fog === 'exp') {\n\t\t\tfshader += shaderChunks.fogExpPS;\n\t\t} else if (options.fog === 'exp2') {\n\t\t\tfshader += shaderChunks.fogExp2PS;\n\t\t} else {\n\t\t\tfshader += shaderChunks.fogNonePS;\n\t\t}\n\t\tif (options.normal === 2) fshader += '\\nuniform sampler2D normalMap;\\n';\n\t\tif (options.soft > 0) fshader += shaderChunks.screenDepthPS;\n\t\tfshader += shaderChunks.particlePS;\n\t\tif (options.soft > 0) fshader += shaderChunks.particle_softPS;\n\t\tif (options.normal === 1) fshader += '\\nvec3 normal = Normal;\\n';\n\t\tif (options.normal === 2) fshader += shaderChunks.particle_normalMapPS;\n\t\tif (options.normal > 0) fshader += options.halflambert ? shaderChunks.particle_halflambertPS : shaderChunks.particle_lambertPS;\n\t\tif (options.normal > 0) fshader += shaderChunks.particle_lightingPS;\n\t\tif (options.blend === BLEND_NORMAL) {\n\t\t\tfshader += shaderChunks.particle_blendNormalPS;\n\t\t} else if (options.blend === BLEND_ADDITIVE) {\n\t\t\tfshader += shaderChunks.particle_blendAddPS;\n\t\t} else if (options.blend === BLEND_MULTIPLICATIVE) {\n\t\t\tfshader += shaderChunks.particle_blendMultiplyPS;\n\t\t}\n\t\tfshader += shaderChunks.particle_endPS;\n\t\treturn ShaderUtils.createDefinition(device, {\n\t\t\tname: 'ParticleShader',\n\t\t\tvertexCode: vshader,\n\t\t\tfragmentCode: fshader\n\t\t});\n\t}\n}\nconst particle = new ShaderGeneratorParticle();\n\nlet nonUniformScale;\nlet uniformScale = 1;\nconst particleTexChannels$1 = 4;\nconst rotMat = new Mat4();\nconst rotMatInv = new Mat4();\nconst randomPosTformed = new Vec3();\nconst randomPos = new Vec3();\nconst rndFactor3Vec = new Vec3();\nconst particlePosPrev = new Vec3();\nconst velocityVec = new Vec3();\nconst localVelocityVec = new Vec3();\nconst velocityVec2 = new Vec3();\nconst localVelocityVec2 = new Vec3();\nconst radialVelocityVec = new Vec3();\nconst particlePos = new Vec3();\nconst particleFinalPos = new Vec3();\nconst moveDirVec = new Vec3();\nconst tmpVec3$1 = new Vec3();\nfunction frac(f) {\n\treturn f - Math.floor(f);\n}\nfunction saturate$1(x) {\n\treturn Math.max(Math.min(x, 1), 0);\n}\nfunction glMod(x, y) {\n\treturn x - y * Math.floor(x / y);\n}\nfunction encodeFloatRGBA(v) {\n\tlet encX = frac(v);\n\tlet encY = frac(255.0 * v);\n\tlet encZ = frac(65025.0 * v);\n\tlet encW = frac(160581375.0 * v);\n\tencX -= encY / 255.0;\n\tencY -= encZ / 255.0;\n\tencZ -= encW / 255.0;\n\tencW -= encW / 255.0;\n\treturn [encX, encY, encZ, encW];\n}\nfunction encodeFloatRG(v) {\n\tlet encX = frac(v);\n\tlet encY = frac(255.0 * v);\n\tencX -= encY / 255.0;\n\tencY -= encY / 255.0;\n\treturn [encX, encY];\n}\nclass ParticleCPUUpdater {\n\tconstructor(emitter) {\n\t\tthis._emitter = emitter;\n\t}\n\tcalcSpawnPosition(particleTex, spawnMatrix, extentsInnerRatioUniform, emitterPos, i) {\n\t\tconst emitter = this._emitter;\n\t\tconst rX = Math.random();\n\t\tconst rY = Math.random();\n\t\tconst rZ = Math.random();\n\t\tconst rW = Math.random();\n\t\tif (emitter.useCpu) {\n\t\t\tparticleTex[i * particleTexChannels$1 + 0 + emitter.numParticlesPot * 2 * particleTexChannels$1] = rX;\n\t\t\tparticleTex[i * particleTexChannels$1 + 1 + emitter.numParticlesPot * 2 * particleTexChannels$1] = rY;\n\t\t\tparticleTex[i * particleTexChannels$1 + 2 + emitter.numParticlesPot * 2 * particleTexChannels$1] = rZ;\n\t\t}\n\t\trandomPos.x = rX - 0.5;\n\t\trandomPos.y = rY - 0.5;\n\t\trandomPos.z = rZ - 0.5;\n\t\tif (emitter.emitterShape === EMITTERSHAPE_BOX) {\n\t\t\tconst max = Math.max(Math.abs(randomPos.x), Math.max(Math.abs(randomPos.y), Math.abs(randomPos.z)));\n\t\t\tconst edgeX = max + (0.5 - max) * extentsInnerRatioUniform[0];\n\t\t\tconst edgeY = max + (0.5 - max) * extentsInnerRatioUniform[1];\n\t\t\tconst edgeZ = max + (0.5 - max) * extentsInnerRatioUniform[2];\n\t\t\trandomPos.x = edgeX * (max === Math.abs(randomPos.x) ? Math.sign(randomPos.x) : 2 * randomPos.x);\n\t\t\trandomPos.y = edgeY * (max === Math.abs(randomPos.y) ? Math.sign(randomPos.y) : 2 * randomPos.y);\n\t\t\trandomPos.z = edgeZ * (max === Math.abs(randomPos.z) ? Math.sign(randomPos.z) : 2 * randomPos.z);\n\t\t\tif (!emitter.localSpace) {\n\t\t\t\trandomPosTformed.copy(emitterPos).add(spawnMatrix.transformPoint(randomPos));\n\t\t\t} else {\n\t\t\t\trandomPosTformed.copy(spawnMatrix.transformPoint(randomPos));\n\t\t\t}\n\t\t} else {\n\t\t\trandomPos.normalize();\n\t\t\tconst spawnBoundsSphereInnerRatio = emitter.emitterRadius === 0 ? 0 : emitter.emitterRadiusInner / emitter.emitterRadius;\n\t\t\tconst r = rW * (1.0 - spawnBoundsSphereInnerRatio) + spawnBoundsSphereInnerRatio;\n\t\t\tif (!emitter.localSpace) {\n\t\t\t\trandomPosTformed.copy(emitterPos).add(randomPos.mulScalar(r * emitter.emitterRadius));\n\t\t\t} else {\n\t\t\t\trandomPosTformed.copy(randomPos.mulScalar(r * emitter.emitterRadius));\n\t\t\t}\n\t\t}\n\t\tconst particleRate = math.lerp(emitter.rate, emitter.rate2, rX);\n\t\tlet startSpawnTime = -particleRate * i;\n\t\tif (emitter.pack8) {\n\t\t\tconst packX = (randomPosTformed.x - emitter.worldBounds.center.x) / emitter.worldBoundsSize.x + 0.5;\n\t\t\tconst packY = (randomPosTformed.y - emitter.worldBounds.center.y) / emitter.worldBoundsSize.y + 0.5;\n\t\t\tconst packZ = (randomPosTformed.z - emitter.worldBounds.center.z) / emitter.worldBoundsSize.z + 0.5;\n\t\t\tlet packA = math.lerp(emitter.startAngle * math.DEG_TO_RAD, emitter.startAngle2 * math.DEG_TO_RAD, rX);\n\t\t\tpackA = packA % (Math.PI * 2) / (Math.PI * 2);\n\t\t\tconst rg0 = encodeFloatRG(packX);\n\t\t\tparticleTex[i * particleTexChannels$1] = rg0[0];\n\t\t\tparticleTex[i * particleTexChannels$1 + 1] = rg0[1];\n\t\t\tconst ba0 = encodeFloatRG(packY);\n\t\t\tparticleTex[i * particleTexChannels$1 + 2] = ba0[0];\n\t\t\tparticleTex[i * particleTexChannels$1 + 3] = ba0[1];\n\t\t\tconst rg1 = encodeFloatRG(packZ);\n\t\t\tparticleTex[i * particleTexChannels$1 + 0 + emitter.numParticlesPot * particleTexChannels$1] = rg1[0];\n\t\t\tparticleTex[i * particleTexChannels$1 + 1 + emitter.numParticlesPot * particleTexChannels$1] = rg1[1];\n\t\t\tconst ba1 = encodeFloatRG(packA);\n\t\t\tparticleTex[i * particleTexChannels$1 + 2 + emitter.numParticlesPot * particleTexChannels$1] = ba1[0];\n\t\t\tparticleTex[i * particleTexChannels$1 + 3 + emitter.numParticlesPot * particleTexChannels$1] = ba1[1];\n\t\t\tconst a2 = 1.0;\n\t\t\tparticleTex[i * particleTexChannels$1 + 3 + emitter.numParticlesPot * particleTexChannels$1 * 2] = a2;\n\t\t\tconst maxNegLife = Math.max(emitter.lifetime, (emitter.numParticles - 1.0) * Math.max(emitter.rate, emitter.rate2));\n\t\t\tconst maxPosLife = emitter.lifetime + 1.0;\n\t\t\tstartSpawnTime = (startSpawnTime + maxNegLife) / (maxNegLife + maxPosLife);\n\t\t\tconst rgba3 = encodeFloatRGBA(startSpawnTime);\n\t\t\tparticleTex[i * particleTexChannels$1 + 0 + emitter.numParticlesPot * particleTexChannels$1 * 3] = rgba3[0];\n\t\t\tparticleTex[i * particleTexChannels$1 + 1 + emitter.numParticlesPot * particleTexChannels$1 * 3] = rgba3[1];\n\t\t\tparticleTex[i * particleTexChannels$1 + 2 + emitter.numParticlesPot * particleTexChannels$1 * 3] = rgba3[2];\n\t\t\tparticleTex[i * particleTexChannels$1 + 3 + emitter.numParticlesPot * particleTexChannels$1 * 3] = rgba3[3];\n\t\t} else {\n\t\t\tparticleTex[i * particleTexChannels$1] = randomPosTformed.x;\n\t\t\tparticleTex[i * particleTexChannels$1 + 1] = randomPosTformed.y;\n\t\t\tparticleTex[i * particleTexChannels$1 + 2] = randomPosTformed.z;\n\t\t\tparticleTex[i * particleTexChannels$1 + 3] = math.lerp(emitter.startAngle * math.DEG_TO_RAD, emitter.startAngle2 * math.DEG_TO_RAD, rX);\n\t\t\tparticleTex[i * particleTexChannels$1 + 3 + emitter.numParticlesPot * particleTexChannels$1] = startSpawnTime;\n\t\t}\n\t}\n\tupdate(data, vbToSort, particleTex, spawnMatrix, extentsInnerRatioUniform, emitterPos, delta, isOnStop) {\n\t\tlet a, b, c;\n\t\tconst emitter = this._emitter;\n\t\tif (emitter.meshInstance.node) {\n\t\t\tconst fullMat = emitter.meshInstance.node.worldTransform;\n\t\t\tfor (let j = 0; j < 12; j++) {\n\t\t\t\trotMat.data[j] = fullMat.data[j];\n\t\t\t}\n\t\t\trotMatInv.copy(rotMat);\n\t\t\trotMatInv.invert();\n\t\t\tnonUniformScale = emitter.meshInstance.node.localScale;\n\t\t\tuniformScale = Math.max(Math.max(nonUniformScale.x, nonUniformScale.y), nonUniformScale.z);\n\t\t}\n\t\temitterPos = emitter.meshInstance.node === null || emitter.localSpace ? Vec3.ZERO : emitter.meshInstance.node.getPosition();\n\t\tconst posCam = emitter.camera ? emitter.camera._node.getPosition() : Vec3.ZERO;\n\t\tconst vertSize = !emitter.useMesh ? 15 : 17;\n\t\tlet cf, cc;\n\t\tlet rotSpeed, rotSpeed2, scale2, alpha, alpha2, radialSpeed, radialSpeed2;\n\t\tconst precision1 = emitter.precision - 1;\n\t\tfor (let i = 0; i < emitter.numParticles; i++) {\n\t\t\tconst id = Math.floor(emitter.vbCPU[i * emitter.numParticleVerts * (emitter.useMesh ? 6 : 4) + 3]);\n\t\t\tconst rndFactor = particleTex[id * particleTexChannels$1 + 0 + emitter.numParticlesPot * 2 * particleTexChannels$1];\n\t\t\trndFactor3Vec.x = rndFactor;\n\t\t\trndFactor3Vec.y = particleTex[id * particleTexChannels$1 + 1 + emitter.numParticlesPot * 2 * particleTexChannels$1];\n\t\t\trndFactor3Vec.z = particleTex[id * particleTexChannels$1 + 2 + emitter.numParticlesPot * 2 * particleTexChannels$1];\n\t\t\tconst particleRate = emitter.rate + (emitter.rate2 - emitter.rate) * rndFactor;\n\t\t\tconst particleLifetime = emitter.lifetime;\n\t\t\tlet life = particleTex[id * particleTexChannels$1 + 3 + emitter.numParticlesPot * particleTexChannels$1] + delta;\n\t\t\tconst nlife = saturate$1(life / particleLifetime);\n\t\t\tlet scale = 0;\n\t\t\tlet alphaDiv = 0;\n\t\t\tconst angle = 0;\n\t\t\tconst respawn = life - delta <= 0.0 || life >= particleLifetime;\n\t\t\tif (respawn) {\n\t\t\t\tthis.calcSpawnPosition(particleTex, spawnMatrix, extentsInnerRatioUniform, emitterPos, id);\n\t\t\t}\n\t\t\tlet particleEnabled = life > 0.0 && life < particleLifetime;\n\t\t\tif (particleEnabled) {\n\t\t\t\tc = nlife * precision1;\n\t\t\t\tcf = Math.floor(c);\n\t\t\t\tcc = Math.ceil(c);\n\t\t\t\tc %= 1;\n\t\t\t\ta = emitter.qRotSpeed[cf];\n\t\t\t\tb = emitter.qRotSpeed[cc];\n\t\t\t\trotSpeed = a + (b - a) * c;\n\t\t\t\ta = emitter.qRotSpeed2[cf];\n\t\t\t\tb = emitter.qRotSpeed2[cc];\n\t\t\t\trotSpeed2 = a + (b - a) * c;\n\t\t\t\ta = emitter.qScale[cf];\n\t\t\t\tb = emitter.qScale[cc];\n\t\t\t\tscale = a + (b - a) * c;\n\t\t\t\ta = emitter.qScale2[cf];\n\t\t\t\tb = emitter.qScale2[cc];\n\t\t\t\tscale2 = a + (b - a) * c;\n\t\t\t\ta = emitter.qAlpha[cf];\n\t\t\t\tb = emitter.qAlpha[cc];\n\t\t\t\talpha = a + (b - a) * c;\n\t\t\t\ta = emitter.qAlpha2[cf];\n\t\t\t\tb = emitter.qAlpha2[cc];\n\t\t\t\talpha2 = a + (b - a) * c;\n\t\t\t\ta = emitter.qRadialSpeed[cf];\n\t\t\t\tb = emitter.qRadialSpeed[cc];\n\t\t\t\tradialSpeed = a + (b - a) * c;\n\t\t\t\ta = emitter.qRadialSpeed2[cf];\n\t\t\t\tb = emitter.qRadialSpeed2[cc];\n\t\t\t\tradialSpeed2 = a + (b - a) * c;\n\t\t\t\tradialSpeed += (radialSpeed2 - radialSpeed) * (rndFactor * 100.0 % 1.0);\n\t\t\t\tparticlePosPrev.x = particleTex[id * particleTexChannels$1];\n\t\t\t\tparticlePosPrev.y = particleTex[id * particleTexChannels$1 + 1];\n\t\t\t\tparticlePosPrev.z = particleTex[id * particleTexChannels$1 + 2];\n\t\t\t\tif (!emitter.localSpace) {\n\t\t\t\t\tradialVelocityVec.copy(particlePosPrev).sub(emitterPos);\n\t\t\t\t} else {\n\t\t\t\t\tradialVelocityVec.copy(particlePosPrev);\n\t\t\t\t}\n\t\t\t\tradialVelocityVec.normalize().mulScalar(radialSpeed);\n\t\t\t\tcf *= 3;\n\t\t\t\tcc *= 3;\n\t\t\t\ta = emitter.qLocalVelocity[cf];\n\t\t\t\tb = emitter.qLocalVelocity[cc];\n\t\t\t\tlocalVelocityVec.x = a + (b - a) * c;\n\t\t\t\ta = emitter.qLocalVelocity[cf + 1];\n\t\t\t\tb = emitter.qLocalVelocity[cc + 1];\n\t\t\t\tlocalVelocityVec.y = a + (b - a) * c;\n\t\t\t\ta = emitter.qLocalVelocity[cf + 2];\n\t\t\t\tb = emitter.qLocalVelocity[cc + 2];\n\t\t\t\tlocalVelocityVec.z = a + (b - a) * c;\n\t\t\t\ta = emitter.qLocalVelocity2[cf];\n\t\t\t\tb = emitter.qLocalVelocity2[cc];\n\t\t\t\tlocalVelocityVec2.x = a + (b - a) * c;\n\t\t\t\ta = emitter.qLocalVelocity2[cf + 1];\n\t\t\t\tb = emitter.qLocalVelocity2[cc + 1];\n\t\t\t\tlocalVelocityVec2.y = a + (b - a) * c;\n\t\t\t\ta = emitter.qLocalVelocity2[cf + 2];\n\t\t\t\tb = emitter.qLocalVelocity2[cc + 2];\n\t\t\t\tlocalVelocityVec2.z = a + (b - a) * c;\n\t\t\t\ta = emitter.qVelocity[cf];\n\t\t\t\tb = emitter.qVelocity[cc];\n\t\t\t\tvelocityVec.x = a + (b - a) * c;\n\t\t\t\ta = emitter.qVelocity[cf + 1];\n\t\t\t\tb = emitter.qVelocity[cc + 1];\n\t\t\t\tvelocityVec.y = a + (b - a) * c;\n\t\t\t\ta = emitter.qVelocity[cf + 2];\n\t\t\t\tb = emitter.qVelocity[cc + 2];\n\t\t\t\tvelocityVec.z = a + (b - a) * c;\n\t\t\t\ta = emitter.qVelocity2[cf];\n\t\t\t\tb = emitter.qVelocity2[cc];\n\t\t\t\tvelocityVec2.x = a + (b - a) * c;\n\t\t\t\ta = emitter.qVelocity2[cf + 1];\n\t\t\t\tb = emitter.qVelocity2[cc + 1];\n\t\t\t\tvelocityVec2.y = a + (b - a) * c;\n\t\t\t\ta = emitter.qVelocity2[cf + 2];\n\t\t\t\tb = emitter.qVelocity2[cc + 2];\n\t\t\t\tvelocityVec2.z = a + (b - a) * c;\n\t\t\t\tlocalVelocityVec.x += (localVelocityVec2.x - localVelocityVec.x) * rndFactor3Vec.x;\n\t\t\t\tlocalVelocityVec.y += (localVelocityVec2.y - localVelocityVec.y) * rndFactor3Vec.y;\n\t\t\t\tlocalVelocityVec.z += (localVelocityVec2.z - localVelocityVec.z) * rndFactor3Vec.z;\n\t\t\t\tif (emitter.initialVelocity > 0) {\n\t\t\t\t\tif (emitter.emitterShape === EMITTERSHAPE_SPHERE) {\n\t\t\t\t\t\trandomPos.copy(rndFactor3Vec).mulScalar(2).sub(Vec3.ONE).normalize();\n\t\t\t\t\t\tlocalVelocityVec.add(randomPos.mulScalar(emitter.initialVelocity));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlocalVelocityVec.add(Vec3.FORWARD.mulScalar(emitter.initialVelocity));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvelocityVec.x += (velocityVec2.x - velocityVec.x) * rndFactor3Vec.x;\n\t\t\t\tvelocityVec.y += (velocityVec2.y - velocityVec.y) * rndFactor3Vec.y;\n\t\t\t\tvelocityVec.z += (velocityVec2.z - velocityVec.z) * rndFactor3Vec.z;\n\t\t\t\trotSpeed += (rotSpeed2 - rotSpeed) * rndFactor3Vec.y;\n\t\t\t\tscale = (scale + (scale2 - scale) * (rndFactor * 10000.0 % 1.0)) * uniformScale;\n\t\t\t\talphaDiv = (alpha2 - alpha) * (rndFactor * 1000.0 % 1.0);\n\t\t\t\tif (emitter.meshInstance.node) {\n\t\t\t\t\tif (!emitter.localSpace) {\n\t\t\t\t\t\trotMat.transformPoint(localVelocityVec, localVelocityVec);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlocalVelocityVec.x /= nonUniformScale.x;\n\t\t\t\t\t\tlocalVelocityVec.y /= nonUniformScale.y;\n\t\t\t\t\t\tlocalVelocityVec.z /= nonUniformScale.z;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!emitter.localSpace) {\n\t\t\t\t\tlocalVelocityVec.add(velocityVec.mul(nonUniformScale));\n\t\t\t\t\tlocalVelocityVec.add(radialVelocityVec.mul(nonUniformScale));\n\t\t\t\t} else {\n\t\t\t\t\trotMatInv.transformPoint(velocityVec, velocityVec);\n\t\t\t\t\tlocalVelocityVec.add(velocityVec).add(radialVelocityVec);\n\t\t\t\t}\n\t\t\t\tmoveDirVec.copy(localVelocityVec);\n\t\t\t\tparticlePos.copy(particlePosPrev).add(localVelocityVec.mulScalar(delta));\n\t\t\t\tparticleFinalPos.copy(particlePos);\n\t\t\t\tparticleTex[id * particleTexChannels$1] = particleFinalPos.x;\n\t\t\t\tparticleTex[id * particleTexChannels$1 + 1] = particleFinalPos.y;\n\t\t\t\tparticleTex[id * particleTexChannels$1 + 2] = particleFinalPos.z;\n\t\t\t\tparticleTex[id * particleTexChannels$1 + 3] += rotSpeed * delta;\n\t\t\t\tif (emitter.wrap && emitter.wrapBounds) {\n\t\t\t\t\tif (!emitter.localSpace) {\n\t\t\t\t\t\tparticleFinalPos.sub(emitterPos);\n\t\t\t\t\t}\n\t\t\t\t\tparticleFinalPos.x = glMod(particleFinalPos.x, emitter.wrapBounds.x) - emitter.wrapBounds.x * 0.5;\n\t\t\t\t\tparticleFinalPos.y = glMod(particleFinalPos.y, emitter.wrapBounds.y) - emitter.wrapBounds.y * 0.5;\n\t\t\t\t\tparticleFinalPos.z = glMod(particleFinalPos.z, emitter.wrapBounds.z) - emitter.wrapBounds.z * 0.5;\n\t\t\t\t\tif (!emitter.localSpace) {\n\t\t\t\t\t\tparticleFinalPos.add(emitterPos);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (emitter.sort > 0) {\n\t\t\t\t\tif (emitter.sort === 1) {\n\t\t\t\t\t\ttmpVec3$1.copy(particleFinalPos).sub(posCam);\n\t\t\t\t\t\temitter.particleDistance[id] = -(tmpVec3$1.x * tmpVec3$1.x + tmpVec3$1.y * tmpVec3$1.y + tmpVec3$1.z * tmpVec3$1.z);\n\t\t\t\t\t} else if (emitter.sort === 2) {\n\t\t\t\t\t\temitter.particleDistance[id] = life;\n\t\t\t\t\t} else if (emitter.sort === 3) {\n\t\t\t\t\t\temitter.particleDistance[id] = -life;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (isOnStop) {\n\t\t\t\tif (life < 0) {\n\t\t\t\t\tparticleTex[id * particleTexChannels$1 + 3 + emitter.numParticlesPot * 2 * particleTexChannels$1] = -1;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (life >= particleLifetime) {\n\t\t\t\t\tlife -= Math.max(particleLifetime, (emitter.numParticles - 1) * particleRate);\n\t\t\t\t\tparticleTex[id * particleTexChannels$1 + 3 + emitter.numParticlesPot * 2 * particleTexChannels$1] = emitter.loop ? 1 : -1;\n\t\t\t\t}\n\t\t\t\tif (life < 0 && emitter.loop) {\n\t\t\t\t\tparticleTex[id * particleTexChannels$1 + 3 + emitter.numParticlesPot * 2 * particleTexChannels$1] = 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (particleTex[id * particleTexChannels$1 + 3 + emitter.numParticlesPot * 2 * particleTexChannels$1] < 0) {\n\t\t\t\tparticleEnabled = false;\n\t\t\t}\n\t\t\tparticleTex[id * particleTexChannels$1 + 3 + emitter.numParticlesPot * particleTexChannels$1] = life;\n\t\t\tfor (let v = 0; v < emitter.numParticleVerts; v++) {\n\t\t\t\tconst vbOffset = (i * emitter.numParticleVerts + v) * (emitter.useMesh ? 6 : 4);\n\t\t\t\tlet quadX = emitter.vbCPU[vbOffset];\n\t\t\t\tlet quadY = emitter.vbCPU[vbOffset + 1];\n\t\t\t\tlet quadZ = emitter.vbCPU[vbOffset + 2];\n\t\t\t\tif (!particleEnabled) {\n\t\t\t\t\tquadX = quadY = quadZ = 0;\n\t\t\t\t}\n\t\t\t\tconst w = i * emitter.numParticleVerts * vertSize + v * vertSize;\n\t\t\t\tdata[w] = particleFinalPos.x;\n\t\t\t\tdata[w + 1] = particleFinalPos.y;\n\t\t\t\tdata[w + 2] = particleFinalPos.z;\n\t\t\t\tdata[w + 3] = nlife;\n\t\t\t\tdata[w + 4] = emitter.alignToMotion ? angle : particleTex[id * particleTexChannels$1 + 3];\n\t\t\t\tdata[w + 5] = scale;\n\t\t\t\tdata[w + 6] = alphaDiv;\n\t\t\t\tdata[w + 7] = moveDirVec.x;\n\t\t\t\tdata[w + 8] = quadX;\n\t\t\t\tdata[w + 9] = quadY;\n\t\t\t\tdata[w + 10] = quadZ;\n\t\t\t\tdata[w + 11] = moveDirVec.y;\n\t\t\t\tdata[w + 12] = id;\n\t\t\t\tdata[w + 13] = moveDirVec.z;\n\t\t\t\tdata[w + 14] = emitter.vbCPU[vbOffset + 3];\n\t\t\t\tif (emitter.useMesh) {\n\t\t\t\t\tdata[w + 15] = emitter.vbCPU[vbOffset + 4];\n\t\t\t\t\tdata[w + 16] = emitter.vbCPU[vbOffset + 5];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (emitter.sort > PARTICLESORT_NONE && emitter.camera) {\n\t\t\tconst vbStride = emitter.useMesh ? 6 : 4;\n\t\t\tconst particleDistance = emitter.particleDistance;\n\t\t\tfor (let i = 0; i < emitter.numParticles; i++) {\n\t\t\t\tvbToSort[i][0] = i;\n\t\t\t\tvbToSort[i][1] = particleDistance[Math.floor(emitter.vbCPU[i * emitter.numParticleVerts * vbStride + 3])];\n\t\t\t}\n\t\t\temitter.vbOld.set(emitter.vbCPU);\n\t\t\tvbToSort.sort((p1, p2) => {\n\t\t\t\treturn p1[1] - p2[1];\n\t\t\t});\n\t\t\tfor (let i = 0; i < emitter.numParticles; i++) {\n\t\t\t\tconst src = vbToSort[i][0] * emitter.numParticleVerts * vbStride;\n\t\t\t\tconst dest = i * emitter.numParticleVerts * vbStride;\n\t\t\t\tfor (let j = 0; j < emitter.numParticleVerts * vbStride; j++) {\n\t\t\t\t\temitter.vbCPU[dest + j] = emitter.vbOld[src + j];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst spawnMatrix3 = new Mat3();\nconst emitterMatrix3 = new Mat3();\nconst emitterMatrix3Inv = new Mat3();\nclass ParticleGPUUpdater {\n\tconstructor(emitter, gd) {\n\t\tthis._emitter = emitter;\n\t\tthis.frameRandomUniform = new Float32Array(3);\n\t\tthis.emitterPosUniform = new Float32Array(3);\n\t\tthis.emitterScaleUniform = new Float32Array([1, 1, 1]);\n\t\tthis.worldBoundsMulUniform = new Float32Array(3);\n\t\tthis.worldBoundsAddUniform = new Float32Array(3);\n\t\tthis.inBoundsSizeUniform = new Float32Array(3);\n\t\tthis.inBoundsCenterUniform = new Float32Array(3);\n\t\tthis.constantParticleTexIN = gd.scope.resolve('particleTexIN');\n\t\tthis.constantParticleTexOUT = gd.scope.resolve('particleTexOUT');\n\t\tthis.constantEmitterPos = gd.scope.resolve('emitterPos');\n\t\tthis.constantEmitterScale = gd.scope.resolve('emitterScale');\n\t\tthis.constantSpawnBounds = gd.scope.resolve('spawnBounds');\n\t\tthis.constantSpawnPosInnerRatio = gd.scope.resolve('spawnPosInnerRatio');\n\t\tthis.constantSpawnBoundsSphere = gd.scope.resolve('spawnBoundsSphere');\n\t\tthis.constantSpawnBoundsSphereInnerRatio = gd.scope.resolve('spawnBoundsSphereInnerRatio');\n\t\tthis.constantInitialVelocity = gd.scope.resolve('initialVelocity');\n\t\tthis.constantFrameRandom = gd.scope.resolve('frameRandom');\n\t\tthis.constantDelta = gd.scope.resolve('delta');\n\t\tthis.constantRate = gd.scope.resolve('rate');\n\t\tthis.constantRateDiv = gd.scope.resolve('rateDiv');\n\t\tthis.constantLifetime = gd.scope.resolve('lifetime');\n\t\tthis.constantGraphSampleSize = gd.scope.resolve('graphSampleSize');\n\t\tthis.constantGraphNumSamples = gd.scope.resolve('graphNumSamples');\n\t\tthis.constantInternalTex0 = gd.scope.resolve('internalTex0');\n\t\tthis.constantInternalTex1 = gd.scope.resolve('internalTex1');\n\t\tthis.constantInternalTex2 = gd.scope.resolve('internalTex2');\n\t\tthis.constantInternalTex3 = gd.scope.resolve('internalTex3');\n\t\tthis.constantEmitterMatrix = gd.scope.resolve('emitterMatrix');\n\t\tthis.constantEmitterMatrixInv = gd.scope.resolve('emitterMatrixInv');\n\t\tthis.constantNumParticles = gd.scope.resolve('numParticles');\n\t\tthis.constantNumParticlesPot = gd.scope.resolve('numParticlesPot');\n\t\tthis.constantLocalVelocityDivMult = gd.scope.resolve('localVelocityDivMult');\n\t\tthis.constantVelocityDivMult = gd.scope.resolve('velocityDivMult');\n\t\tthis.constantRotSpeedDivMult = gd.scope.resolve('rotSpeedDivMult');\n\t\tthis.constantSeed = gd.scope.resolve('seed');\n\t\tthis.constantStartAngle = gd.scope.resolve('startAngle');\n\t\tthis.constantStartAngle2 = gd.scope.resolve('startAngle2');\n\t\tthis.constantOutBoundsMul = gd.scope.resolve('outBoundsMul');\n\t\tthis.constantOutBoundsAdd = gd.scope.resolve('outBoundsAdd');\n\t\tthis.constantInBoundsSize = gd.scope.resolve('inBoundsSize');\n\t\tthis.constantInBoundsCenter = gd.scope.resolve('inBoundsCenter');\n\t\tthis.constantMaxVel = gd.scope.resolve('maxVel');\n\t\tthis.constantFaceTangent = gd.scope.resolve('faceTangent');\n\t\tthis.constantFaceBinorm = gd.scope.resolve('faceBinorm');\n\t}\n\t_setInputBounds() {\n\t\tthis.inBoundsSizeUniform[0] = this._emitter.prevWorldBoundsSize.x;\n\t\tthis.inBoundsSizeUniform[1] = this._emitter.prevWorldBoundsSize.y;\n\t\tthis.inBoundsSizeUniform[2] = this._emitter.prevWorldBoundsSize.z;\n\t\tthis.constantInBoundsSize.setValue(this.inBoundsSizeUniform);\n\t\tthis.inBoundsCenterUniform[0] = this._emitter.prevWorldBoundsCenter.x;\n\t\tthis.inBoundsCenterUniform[1] = this._emitter.prevWorldBoundsCenter.y;\n\t\tthis.inBoundsCenterUniform[2] = this._emitter.prevWorldBoundsCenter.z;\n\t\tthis.constantInBoundsCenter.setValue(this.inBoundsCenterUniform);\n\t}\n\trandomize() {\n\t\tthis.frameRandomUniform[0] = Math.random();\n\t\tthis.frameRandomUniform[1] = Math.random();\n\t\tthis.frameRandomUniform[2] = Math.random();\n\t}\n\tupdate(device, spawnMatrix, extentsInnerRatioUniform, delta, isOnStop) {\n\t\tconst emitter = this._emitter;\n\t\tdevice.setBlendState(BlendState.NOBLEND);\n\t\tdevice.setDepthState(DepthState.NODEPTH);\n\t\tdevice.setCullMode(CULLFACE_NONE);\n\t\tthis.randomize();\n\t\tthis.constantGraphSampleSize.setValue(1.0 / emitter.precision);\n\t\tthis.constantGraphNumSamples.setValue(emitter.precision);\n\t\tthis.constantNumParticles.setValue(emitter.numParticles);\n\t\tthis.constantNumParticlesPot.setValue(emitter.numParticlesPot);\n\t\tthis.constantInternalTex0.setValue(emitter.internalTex0);\n\t\tthis.constantInternalTex1.setValue(emitter.internalTex1);\n\t\tthis.constantInternalTex2.setValue(emitter.internalTex2);\n\t\tthis.constantInternalTex3.setValue(emitter.internalTex3);\n\t\tconst node = emitter.meshInstance.node;\n\t\tconst emitterScale = node === null ? Vec3.ONE : node.localScale;\n\t\tif (emitter.pack8) {\n\t\t\tthis.worldBoundsMulUniform[0] = emitter.worldBoundsMul.x;\n\t\t\tthis.worldBoundsMulUniform[1] = emitter.worldBoundsMul.y;\n\t\t\tthis.worldBoundsMulUniform[2] = emitter.worldBoundsMul.z;\n\t\t\tthis.constantOutBoundsMul.setValue(this.worldBoundsMulUniform);\n\t\t\tthis.worldBoundsAddUniform[0] = emitter.worldBoundsAdd.x;\n\t\t\tthis.worldBoundsAddUniform[1] = emitter.worldBoundsAdd.y;\n\t\t\tthis.worldBoundsAddUniform[2] = emitter.worldBoundsAdd.z;\n\t\t\tthis.constantOutBoundsAdd.setValue(this.worldBoundsAddUniform);\n\t\t\tthis._setInputBounds();\n\t\t\tlet maxVel = emitter.maxVel * Math.max(Math.max(emitterScale.x, emitterScale.y), emitterScale.z);\n\t\t\tmaxVel = Math.max(maxVel, 1);\n\t\t\tthis.constantMaxVel.setValue(maxVel);\n\t\t}\n\t\tconst emitterPos = node === null || emitter.localSpace ? Vec3.ZERO : node.getPosition();\n\t\tconst emitterMatrix = node === null ? Mat4.IDENTITY : node.getWorldTransform();\n\t\tif (emitter.emitterShape === EMITTERSHAPE_BOX) {\n\t\t\tspawnMatrix3.setFromMat4(spawnMatrix);\n\t\t\tthis.constantSpawnBounds.setValue(spawnMatrix3.data);\n\t\t\tthis.constantSpawnPosInnerRatio.setValue(extentsInnerRatioUniform);\n\t\t} else {\n\t\t\tthis.constantSpawnBoundsSphere.setValue(emitter.emitterRadius);\n\t\t\tthis.constantSpawnBoundsSphereInnerRatio.setValue(emitter.emitterRadius === 0 ? 0 : emitter.emitterRadiusInner / emitter.emitterRadius);\n\t\t}\n\t\tthis.constantInitialVelocity.setValue(emitter.initialVelocity);\n\t\temitterMatrix3.setFromMat4(emitterMatrix);\n\t\temitterMatrix3Inv.invertMat4(emitterMatrix);\n\t\tthis.emitterPosUniform[0] = emitterPos.x;\n\t\tthis.emitterPosUniform[1] = emitterPos.y;\n\t\tthis.emitterPosUniform[2] = emitterPos.z;\n\t\tthis.constantEmitterPos.setValue(this.emitterPosUniform);\n\t\tthis.constantFrameRandom.setValue(this.frameRandomUniform);\n\t\tthis.constantDelta.setValue(delta);\n\t\tthis.constantRate.setValue(emitter.rate);\n\t\tthis.constantRateDiv.setValue(emitter.rate2 - emitter.rate);\n\t\tthis.constantStartAngle.setValue(emitter.startAngle * math.DEG_TO_RAD);\n\t\tthis.constantStartAngle2.setValue(emitter.startAngle2 * math.DEG_TO_RAD);\n\t\tthis.constantSeed.setValue(emitter.seed);\n\t\tthis.constantLifetime.setValue(emitter.lifetime);\n\t\tthis.emitterScaleUniform[0] = emitterScale.x;\n\t\tthis.emitterScaleUniform[1] = emitterScale.y;\n\t\tthis.emitterScaleUniform[2] = emitterScale.z;\n\t\tthis.constantEmitterScale.setValue(this.emitterScaleUniform);\n\t\tthis.constantEmitterMatrix.setValue(emitterMatrix3.data);\n\t\tthis.constantEmitterMatrixInv.setValue(emitterMatrix3Inv.data);\n\t\tthis.constantLocalVelocityDivMult.setValue(emitter.localVelocityUMax);\n\t\tthis.constantVelocityDivMult.setValue(emitter.velocityUMax);\n\t\tthis.constantRotSpeedDivMult.setValue(emitter.rotSpeedUMax[0]);\n\t\tlet texIN = emitter.swapTex ? emitter.particleTexOUT : emitter.particleTexIN;\n\t\ttexIN = emitter.beenReset ? emitter.particleTexStart : texIN;\n\t\tconst texOUT = emitter.swapTex ? emitter.particleTexIN : emitter.particleTexOUT;\n\t\tthis.constantParticleTexIN.setValue(texIN);\n\t\tdrawQuadWithShader(device, emitter.swapTex ? emitter.rtParticleTexIN : emitter.rtParticleTexOUT, !isOnStop ? emitter.loop ? emitter.shaderParticleUpdateRespawn : emitter.shaderParticleUpdateNoRespawn : emitter.shaderParticleUpdateOnStop);\n\t\temitter.material.setParameter('particleTexOUT', texIN);\n\t\temitter.material.setParameter('particleTexIN', texOUT);\n\t\temitter.beenReset = false;\n\t\temitter.swapTex = !emitter.swapTex;\n\t\temitter.prevWorldBoundsSize.copy(emitter.worldBoundsSize);\n\t\temitter.prevWorldBoundsCenter.copy(emitter.worldBounds.center);\n\t\tif (emitter.pack8) {\n\t\t\tthis._setInputBounds();\n\t\t}\n\t}\n}\n\nconst particleVerts = [[-1, -1], [1, -1], [1, 1], [-1, 1]];\nfunction _createTexture(device, width, height, pixelData, format = PIXELFORMAT_RGBA32F, mult8Bit, filter) {\n\tlet mipFilter = FILTER_NEAREST;\n\tif (filter && format === PIXELFORMAT_RGBA8) {\n\t\tmipFilter = FILTER_LINEAR;\n\t}\n\tconst texture = new Texture(device, {\n\t\twidth: width,\n\t\theight: height,\n\t\tformat: format,\n\t\tcubemap: false,\n\t\tmipmaps: false,\n\t\tminFilter: mipFilter,\n\t\tmagFilter: mipFilter,\n\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\tname: 'ParticleSystemTexture'\n\t});\n\tconst pixels = texture.lock();\n\tif (format === PIXELFORMAT_RGBA8) {\n\t\tconst temp = new Uint8Array(pixelData.length);\n\t\tfor (let i = 0; i < pixelData.length; i++) {\n\t\t\ttemp[i] = pixelData[i] * mult8Bit * 255;\n\t\t}\n\t\tpixelData = temp;\n\t}\n\tpixels.set(pixelData);\n\ttexture.unlock();\n\treturn texture;\n}\nfunction saturate(x) {\n\treturn Math.max(Math.min(x, 1), 0);\n}\nconst default0Curve = new Curve([0, 0, 1, 0]);\nconst default1Curve = new Curve([0, 1, 1, 1]);\nconst default0Curve3 = new CurveSet([0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]);\nconst default1Curve3 = new CurveSet([0, 1, 1, 1], [0, 1, 1, 1], [0, 1, 1, 1]);\nlet particleTexHeight = 2;\nconst particleTexChannels = 4;\nconst extentsInnerRatioUniform = new Float32Array(3);\nconst spawnMatrix = new Mat4();\nconst tmpVec3 = new Vec3();\nconst bMin = new Vec3();\nconst bMax = new Vec3();\nlet setPropertyTarget;\nlet setPropertyOptions;\nfunction setProperty(pName, defaultVal) {\n\tif (setPropertyOptions[pName] !== undefined && setPropertyOptions[pName] !== null) {\n\t\tsetPropertyTarget[pName] = setPropertyOptions[pName];\n\t} else {\n\t\tsetPropertyTarget[pName] = defaultVal;\n\t}\n}\nfunction pack3NFloats(a, b, c) {\n\tconst packed = a * 255 << 16 | b * 255 << 8 | c * 255;\n\treturn packed / (1 << 24);\n}\nfunction packTextureXYZ_NXYZ(qXYZ, qXYZ2) {\n\tconst num = qXYZ.length / 3;\n\tconst colors = new Array(num * 4);\n\tfor (let i = 0; i < num; i++) {\n\t\tcolors[i * 4] = qXYZ[i * 3];\n\t\tcolors[i * 4 + 1] = qXYZ[i * 3 + 1];\n\t\tcolors[i * 4 + 2] = qXYZ[i * 3 + 2];\n\t\tcolors[i * 4 + 3] = pack3NFloats(qXYZ2[i * 3], qXYZ2[i * 3 + 1], qXYZ2[i * 3 + 2]);\n\t}\n\treturn colors;\n}\nfunction packTextureRGBA(qRGB, qA) {\n\tconst colors = new Array(qA.length * 4);\n\tfor (let i = 0; i < qA.length; i++) {\n\t\tcolors[i * 4] = qRGB[i * 3];\n\t\tcolors[i * 4 + 1] = qRGB[i * 3 + 1];\n\t\tcolors[i * 4 + 2] = qRGB[i * 3 + 2];\n\t\tcolors[i * 4 + 3] = qA[i];\n\t}\n\treturn colors;\n}\nfunction packTexture5Floats(qA, qB, qC, qD, qE) {\n\tconst colors = new Array(qA.length * 4);\n\tfor (let i = 0; i < qA.length; i++) {\n\t\tcolors[i * 4] = qA[i];\n\t\tcolors[i * 4 + 1] = qB[i];\n\t\tcolors[i * 4 + 2] = 0;\n\t\tcolors[i * 4 + 3] = pack3NFloats(qC[i], qD[i], qE[i]);\n\t}\n\treturn colors;\n}\nfunction packTexture2Floats(qA, qB) {\n\tconst colors = new Array(qA.length * 4);\n\tfor (let i = 0; i < qA.length; i++) {\n\t\tcolors[i * 4] = qA[i];\n\t\tcolors[i * 4 + 1] = qB[i];\n\t\tcolors[i * 4 + 2] = 0;\n\t\tcolors[i * 4 + 3] = 0;\n\t}\n\treturn colors;\n}\nfunction calcEndTime(emitter) {\n\tconst interval = Math.max(emitter.rate, emitter.rate2) * emitter.numParticles + emitter.lifetime;\n\treturn Date.now() + interval * 1000;\n}\nfunction subGraph(A, B) {\n\tconst r = new Float32Array(A.length);\n\tfor (let i = 0; i < A.length; i++) {\n\t\tr[i] = A[i] - B[i];\n\t}\n\treturn r;\n}\nfunction maxUnsignedGraphValue(A, outUMax) {\n\tconst chans = outUMax.length;\n\tconst values = A.length / chans;\n\tfor (let i = 0; i < values; i++) {\n\t\tfor (let j = 0; j < chans; j++) {\n\t\t\tconst a = Math.abs(A[i * chans + j]);\n\t\t\toutUMax[j] = Math.max(outUMax[j], a);\n\t\t}\n\t}\n}\nfunction normalizeGraph(A, uMax) {\n\tconst chans = uMax.length;\n\tconst values = A.length / chans;\n\tfor (let i = 0; i < values; i++) {\n\t\tfor (let j = 0; j < chans; j++) {\n\t\t\tA[i * chans + j] /= uMax[j] === 0 ? 1 : uMax[j];\n\t\t\tA[i * chans + j] *= 0.5;\n\t\t\tA[i * chans + j] += 0.5;\n\t\t}\n\t}\n}\nfunction divGraphFrom2Curves(curve1, curve2, outUMax) {\n\tconst sub = subGraph(curve2, curve1);\n\tmaxUnsignedGraphValue(sub, outUMax);\n\tnormalizeGraph(sub, outUMax);\n\treturn sub;\n}\nconst particleEmitterDeviceCache = new DeviceCache();\nclass ParticleEmitter {\n\tconstructor(graphicsDevice, options) {\n\t\tthis.graphicsDevice = graphicsDevice;\n\t\tconst gd = graphicsDevice;\n\t\tconst precision = 32;\n\t\tthis.precision = precision;\n\t\tthis._addTimeTime = 0;\n\t\tsetPropertyTarget = this;\n\t\tsetPropertyOptions = options;\n\t\tsetProperty('numParticles', 1);\n\t\tif (this.numParticles > graphicsDevice.maxTextureSize) {\n\t\t\tthis.numParticles = graphicsDevice.maxTextureSize;\n\t\t}\n\t\tsetProperty('rate', 1);\n\t\tsetProperty('rate2', this.rate);\n\t\tsetProperty('lifetime', 50);\n\t\tsetProperty('emitterExtents', new Vec3(0, 0, 0));\n\t\tsetProperty('emitterExtentsInner', new Vec3(0, 0, 0));\n\t\tsetProperty('emitterRadius', 0);\n\t\tsetProperty('emitterRadiusInner', 0);\n\t\tsetProperty('emitterShape', EMITTERSHAPE_BOX);\n\t\tsetProperty('initialVelocity', 1);\n\t\tsetProperty('wrap', false);\n\t\tsetProperty('localSpace', false);\n\t\tsetProperty('screenSpace', false);\n\t\tsetProperty('wrapBounds', null);\n\t\tsetProperty('colorMap', this.defaultParamTexture);\n\t\tsetProperty('normalMap', null);\n\t\tsetProperty('loop', true);\n\t\tsetProperty('preWarm', false);\n\t\tsetProperty('sort', PARTICLESORT_NONE);\n\t\tsetProperty('mode', PARTICLEMODE_GPU);\n\t\tsetProperty('scene', null);\n\t\tsetProperty('lighting', false);\n\t\tsetProperty('halfLambert', false);\n\t\tsetProperty('intensity', 1.0);\n\t\tsetProperty('stretch', 0.0);\n\t\tsetProperty('alignToMotion', false);\n\t\tsetProperty('depthSoftening', 0);\n\t\tsetProperty('mesh', null);\n\t\tsetProperty('particleNormal', new Vec3(0, 1, 0));\n\t\tsetProperty('orientation', PARTICLEORIENTATION_SCREEN);\n\t\tsetProperty('depthWrite', false);\n\t\tsetProperty('noFog', false);\n\t\tsetProperty('blendType', BLEND_NORMAL);\n\t\tsetProperty('node', null);\n\t\tsetProperty('startAngle', 0);\n\t\tsetProperty('startAngle2', this.startAngle);\n\t\tsetProperty('animTilesX', 1);\n\t\tsetProperty('animTilesY', 1);\n\t\tsetProperty('animStartFrame', 0);\n\t\tsetProperty('animNumFrames', 1);\n\t\tsetProperty('animNumAnimations', 1);\n\t\tsetProperty('animIndex', 0);\n\t\tsetProperty('randomizeAnimIndex', false);\n\t\tsetProperty('animSpeed', 1);\n\t\tsetProperty('animLoop', true);\n\t\tthis._gpuUpdater = new ParticleGPUUpdater(this, gd);\n\t\tthis._cpuUpdater = new ParticleCPUUpdater(this);\n\t\tthis.emitterPosUniform = new Float32Array(3);\n\t\tthis.wrapBoundsUniform = new Float32Array(3);\n\t\tthis.emitterScaleUniform = new Float32Array([1, 1, 1]);\n\t\tsetProperty('colorGraph', default1Curve3);\n\t\tsetProperty('colorGraph2', this.colorGraph);\n\t\tsetProperty('scaleGraph', default1Curve);\n\t\tsetProperty('scaleGraph2', this.scaleGraph);\n\t\tsetProperty('alphaGraph', default1Curve);\n\t\tsetProperty('alphaGraph2', this.alphaGraph);\n\t\tsetProperty('localVelocityGraph', default0Curve3);\n\t\tsetProperty('localVelocityGraph2', this.localVelocityGraph);\n\t\tsetProperty('velocityGraph', default0Curve3);\n\t\tsetProperty('velocityGraph2', this.velocityGraph);\n\t\tsetProperty('rotationSpeedGraph', default0Curve);\n\t\tsetProperty('rotationSpeedGraph2', this.rotationSpeedGraph);\n\t\tsetProperty('radialSpeedGraph', default0Curve);\n\t\tsetProperty('radialSpeedGraph2', this.radialSpeedGraph);\n\t\tthis.animTilesParams = new Float32Array(2);\n\t\tthis.animParams = new Float32Array(4);\n\t\tthis.animIndexParams = new Float32Array(2);\n\t\tthis.internalTex0 = null;\n\t\tthis.internalTex1 = null;\n\t\tthis.internalTex2 = null;\n\t\tthis.colorParam = null;\n\t\tthis.vbToSort = null;\n\t\tthis.vbOld = null;\n\t\tthis.particleDistance = null;\n\t\tthis.camera = null;\n\t\tthis.swapTex = false;\n\t\tthis.useMesh = true;\n\t\tthis.useCpu = !graphicsDevice.supportsGpuParticles;\n\t\tthis.pack8 = true;\n\t\tthis.localBounds = new BoundingBox();\n\t\tthis.worldBoundsNoTrail = new BoundingBox();\n\t\tthis.worldBoundsTrail = [new BoundingBox(), new BoundingBox()];\n\t\tthis.worldBounds = new BoundingBox();\n\t\tthis.worldBoundsSize = new Vec3();\n\t\tthis.prevWorldBoundsSize = new Vec3();\n\t\tthis.prevWorldBoundsCenter = new Vec3();\n\t\tthis.prevEmitterExtents = this.emitterExtents;\n\t\tthis.prevEmitterRadius = this.emitterRadius;\n\t\tthis.worldBoundsMul = new Vec3();\n\t\tthis.worldBoundsAdd = new Vec3();\n\t\tthis.timeToSwitchBounds = 0;\n\t\tthis.shaderParticleUpdateRespawn = null;\n\t\tthis.shaderParticleUpdateNoRespawn = null;\n\t\tthis.shaderParticleUpdateOnStop = null;\n\t\tthis.numParticleVerts = 0;\n\t\tthis.numParticleIndices = 0;\n\t\tthis.material = null;\n\t\tthis.meshInstance = null;\n\t\tthis.drawOrder = 0;\n\t\tthis.seed = Math.random();\n\t\tthis.fixedTimeStep = 1.0 / 60;\n\t\tthis.maxSubSteps = 10;\n\t\tthis.simTime = 0;\n\t\tthis.simTimeTotal = 0;\n\t\tthis.beenReset = false;\n\t\tthis._layer = null;\n\t\tthis.rebuild();\n\t}\n\tget defaultParamTexture() {\n\t\treturn particleEmitterDeviceCache.get(this.graphicsDevice, () => {\n\t\t\tconst resolution = 16;\n\t\t\tconst centerPoint = resolution * 0.5 + 0.5;\n\t\t\tconst dtex = new Float32Array(resolution * resolution * 4);\n\t\t\tfor (let y = 0; y < resolution; y++) {\n\t\t\t\tfor (let x = 0; x < resolution; x++) {\n\t\t\t\t\tconst xgrad = x + 1 - centerPoint;\n\t\t\t\t\tconst ygrad = y + 1 - centerPoint;\n\t\t\t\t\tconst c = saturate(1 - saturate(Math.sqrt(xgrad * xgrad + ygrad * ygrad) / resolution) - 0.5);\n\t\t\t\t\tconst p = y * resolution + x;\n\t\t\t\t\tdtex[p * 4] = 1;\n\t\t\t\t\tdtex[p * 4 + 1] = 1;\n\t\t\t\t\tdtex[p * 4 + 2] = 1;\n\t\t\t\t\tdtex[p * 4 + 3] = c;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst texture = _createTexture(this.graphicsDevice, resolution, resolution, dtex, PIXELFORMAT_RGBA8, 1.0, true);\n\t\t\ttexture.minFilter = FILTER_LINEAR;\n\t\t\ttexture.magFilter = FILTER_LINEAR;\n\t\t\treturn texture;\n\t\t});\n\t}\n\tonChangeCamera() {\n\t\tthis.regenShader();\n\t\tthis.resetMaterial();\n\t}\n\tcalculateBoundsMad() {\n\t\tthis.worldBoundsMul.x = 1.0 / this.worldBoundsSize.x;\n\t\tthis.worldBoundsMul.y = 1.0 / this.worldBoundsSize.y;\n\t\tthis.worldBoundsMul.z = 1.0 / this.worldBoundsSize.z;\n\t\tthis.worldBoundsAdd.copy(this.worldBounds.center).mul(this.worldBoundsMul).mulScalar(-1);\n\t\tthis.worldBoundsAdd.x += 0.5;\n\t\tthis.worldBoundsAdd.y += 0.5;\n\t\tthis.worldBoundsAdd.z += 0.5;\n\t}\n\tcalculateWorldBounds() {\n\t\tif (!this.node) return;\n\t\tthis.prevWorldBoundsSize.copy(this.worldBoundsSize);\n\t\tthis.prevWorldBoundsCenter.copy(this.worldBounds.center);\n\t\tif (!this.useCpu) {\n\t\t\tlet recalculateLocalBounds = false;\n\t\t\tif (this.emitterShape === EMITTERSHAPE_BOX) {\n\t\t\t\trecalculateLocalBounds = !this.emitterExtents.equals(this.prevEmitterExtents);\n\t\t\t} else {\n\t\t\t\trecalculateLocalBounds = !(this.emitterRadius === this.prevEmitterRadius);\n\t\t\t}\n\t\t\tif (recalculateLocalBounds) {\n\t\t\t\tthis.calculateLocalBounds();\n\t\t\t}\n\t\t}\n\t\tconst nodeWT = this.node.getWorldTransform();\n\t\tif (this.localSpace) {\n\t\t\tthis.worldBoundsNoTrail.copy(this.localBounds);\n\t\t} else {\n\t\t\tthis.worldBoundsNoTrail.setFromTransformedAabb(this.localBounds, nodeWT);\n\t\t}\n\t\tthis.worldBoundsTrail[0].add(this.worldBoundsNoTrail);\n\t\tthis.worldBoundsTrail[1].add(this.worldBoundsNoTrail);\n\t\tconst now = this.simTimeTotal;\n\t\tif (now >= this.timeToSwitchBounds) {\n\t\t\tthis.worldBoundsTrail[0].copy(this.worldBoundsTrail[1]);\n\t\t\tthis.worldBoundsTrail[1].copy(this.worldBoundsNoTrail);\n\t\t\tthis.timeToSwitchBounds = now + this.lifetime;\n\t\t}\n\t\tthis.worldBounds.copy(this.worldBoundsTrail[0]);\n\t\tthis.worldBoundsSize.copy(this.worldBounds.halfExtents).mulScalar(2);\n\t\tif (this.localSpace) {\n\t\t\tthis.meshInstance.aabb.setFromTransformedAabb(this.worldBounds, nodeWT);\n\t\t\tthis.meshInstance.mesh.aabb.setFromTransformedAabb(this.worldBounds, nodeWT);\n\t\t} else {\n\t\t\tthis.meshInstance.aabb.copy(this.worldBounds);\n\t\t\tthis.meshInstance.mesh.aabb.copy(this.worldBounds);\n\t\t}\n\t\tthis.meshInstance._aabbVer = 1 - this.meshInstance._aabbVer;\n\t\tif (this.pack8) this.calculateBoundsMad();\n\t}\n\tresetWorldBounds() {\n\t\tif (!this.node) return;\n\t\tthis.worldBoundsNoTrail.setFromTransformedAabb(this.localBounds, this.localSpace ? Mat4.IDENTITY : this.node.getWorldTransform());\n\t\tthis.worldBoundsTrail[0].copy(this.worldBoundsNoTrail);\n\t\tthis.worldBoundsTrail[1].copy(this.worldBoundsNoTrail);\n\t\tthis.worldBounds.copy(this.worldBoundsTrail[0]);\n\t\tthis.worldBoundsSize.copy(this.worldBounds.halfExtents).mulScalar(2);\n\t\tthis.prevWorldBoundsSize.copy(this.worldBoundsSize);\n\t\tthis.prevWorldBoundsCenter.copy(this.worldBounds.center);\n\t\tthis.simTimeTotal = 0;\n\t\tthis.timeToSwitchBounds = 0;\n\t}\n\tcalculateLocalBounds() {\n\t\tlet minx = Number.MAX_VALUE;\n\t\tlet miny = Number.MAX_VALUE;\n\t\tlet minz = Number.MAX_VALUE;\n\t\tlet maxx = -Number.MAX_VALUE;\n\t\tlet maxy = -Number.MAX_VALUE;\n\t\tlet maxz = -Number.MAX_VALUE;\n\t\tlet maxR = 0;\n\t\tlet maxScale = 0;\n\t\tconst stepWeight = this.lifetime / this.precision;\n\t\tconst wVels = [this.qVelocity, this.qVelocity2];\n\t\tconst lVels = [this.qLocalVelocity, this.qLocalVelocity2];\n\t\tconst accumX = [0, 0];\n\t\tconst accumY = [0, 0];\n\t\tconst accumZ = [0, 0];\n\t\tconst accumR = [0, 0];\n\t\tconst accumW = [0, 0];\n\t\tlet x, y, z;\n\t\tfor (let i = 0; i < this.precision + 1; i++) {\n\t\t\tconst index = Math.min(i, this.precision - 1);\n\t\t\tfor (let j = 0; j < 2; j++) {\n\t\t\t\tx = lVels[j][index * 3 + 0] * stepWeight + accumX[j];\n\t\t\t\ty = lVels[j][index * 3 + 1] * stepWeight + accumY[j];\n\t\t\t\tz = lVels[j][index * 3 + 2] * stepWeight + accumZ[j];\n\t\t\t\tminx = Math.min(x, minx);\n\t\t\t\tminy = Math.min(y, miny);\n\t\t\t\tminz = Math.min(z, minz);\n\t\t\t\tmaxx = Math.max(x, maxx);\n\t\t\t\tmaxy = Math.max(y, maxy);\n\t\t\t\tmaxz = Math.max(z, maxz);\n\t\t\t\taccumX[j] = x;\n\t\t\t\taccumY[j] = y;\n\t\t\t\taccumZ[j] = z;\n\t\t\t}\n\t\t\tfor (let j = 0; j < 2; j++) {\n\t\t\t\taccumW[j] += stepWeight * Math.sqrt(wVels[j][index * 3 + 0] * wVels[j][index * 3 + 0] + wVels[j][index * 3 + 1] * wVels[j][index * 3 + 1] + wVels[j][index * 3 + 2] * wVels[j][index * 3 + 2]);\n\t\t\t}\n\t\t\taccumR[0] += this.qRadialSpeed[index] * stepWeight;\n\t\t\taccumR[1] += this.qRadialSpeed2[index] * stepWeight;\n\t\t\tmaxR = Math.max(maxR, Math.max(Math.abs(accumR[0]), Math.abs(accumR[1])));\n\t\t\tmaxScale = Math.max(maxScale, this.qScale[index]);\n\t\t}\n\t\tif (this.emitterShape === EMITTERSHAPE_BOX) {\n\t\t\tx = this.emitterExtents.x * 0.5;\n\t\t\ty = this.emitterExtents.y * 0.5;\n\t\t\tz = this.emitterExtents.z * 0.5;\n\t\t} else {\n\t\t\tx = this.emitterRadius;\n\t\t\ty = this.emitterRadius;\n\t\t\tz = this.emitterRadius;\n\t\t}\n\t\tconst w = Math.max(accumW[0], accumW[1]);\n\t\tbMin.x = minx - maxScale - x - maxR - w;\n\t\tbMin.y = miny - maxScale - y - maxR - w;\n\t\tbMin.z = minz - maxScale - z - maxR - w;\n\t\tbMax.x = maxx + maxScale + x + maxR + w;\n\t\tbMax.y = maxy + maxScale + y + maxR + w;\n\t\tbMax.z = maxz + maxScale + z + maxR + w;\n\t\tthis.localBounds.setMinMax(bMin, bMax);\n\t}\n\trebuild() {\n\t\tconst gd = this.graphicsDevice;\n\t\tif (this.colorMap === null) this.colorMap = this.defaultParamTexture;\n\t\tthis.spawnBounds = this.emitterShape === EMITTERSHAPE_BOX ? this.emitterExtents : this.emitterRadius;\n\t\tthis.useCpu = this.useCpu || this.sort > PARTICLESORT_NONE || gd.maxVertexTextures <= 1 || gd.fragmentUniformsCount < 64 || gd.forceCpuParticles || !gd.extTextureFloat;\n\t\tthis._destroyResources();\n\t\tthis.pack8 = (this.pack8 || !gd.textureFloatRenderable) && !this.useCpu;\n\t\tparticleTexHeight = this.useCpu || this.pack8 ? 4 : 2;\n\t\tthis.useMesh = false;\n\t\tif (this.mesh) {\n\t\t\tconst totalVertCount = this.numParticles * this.mesh.vertexBuffer.numVertices;\n\t\t\tif (totalVertCount > 65535) ; else {\n\t\t\t\tthis.useMesh = true;\n\t\t\t}\n\t\t}\n\t\tthis.numParticlesPot = math.nextPowerOfTwo(this.numParticles);\n\t\tthis.rebuildGraphs();\n\t\tthis.calculateLocalBounds();\n\t\tthis.resetWorldBounds();\n\t\tif (this.node) {\n\t\t\tthis.worldBounds.setFromTransformedAabb(this.localBounds, this.localSpace ? Mat4.IDENTITY : this.node.getWorldTransform());\n\t\t\tthis.worldBoundsTrail[0].copy(this.worldBounds);\n\t\t\tthis.worldBoundsTrail[1].copy(this.worldBounds);\n\t\t\tthis.worldBoundsSize.copy(this.worldBounds.halfExtents).mulScalar(2);\n\t\t\tthis.prevWorldBoundsSize.copy(this.worldBoundsSize);\n\t\t\tthis.prevWorldBoundsCenter.copy(this.worldBounds.center);\n\t\t\tif (this.pack8) this.calculateBoundsMad();\n\t\t}\n\t\tthis.vbToSort = new Array(this.numParticles);\n\t\tfor (let iSort = 0; iSort < this.numParticles; iSort++) this.vbToSort[iSort] = [0, 0];\n\t\tthis.particleDistance = new Float32Array(this.numParticles);\n\t\tthis._gpuUpdater.randomize();\n\t\tthis.particleTex = new Float32Array(this.numParticlesPot * particleTexHeight * particleTexChannels);\n\t\tconst emitterPos = this.node === null || this.localSpace ? Vec3.ZERO : this.node.getPosition();\n\t\tif (this.emitterShape === EMITTERSHAPE_BOX) {\n\t\t\tif (this.node === null || this.localSpace) {\n\t\t\t\tspawnMatrix.setTRS(Vec3.ZERO, Quat.IDENTITY, this.spawnBounds);\n\t\t\t} else {\n\t\t\t\tspawnMatrix.setTRS(Vec3.ZERO, this.node.getRotation(), tmpVec3.copy(this.spawnBounds).mul(this.node.localScale));\n\t\t\t}\n\t\t\textentsInnerRatioUniform[0] = this.emitterExtents.x !== 0 ? this.emitterExtentsInner.x / this.emitterExtents.x : 0;\n\t\t\textentsInnerRatioUniform[1] = this.emitterExtents.y !== 0 ? this.emitterExtentsInner.y / this.emitterExtents.y : 0;\n\t\t\textentsInnerRatioUniform[2] = this.emitterExtents.z !== 0 ? this.emitterExtentsInner.z / this.emitterExtents.z : 0;\n\t\t}\n\t\tfor (let i = 0; i < this.numParticles; i++) {\n\t\t\tthis._cpuUpdater.calcSpawnPosition(this.particleTex, spawnMatrix, extentsInnerRatioUniform, emitterPos, i);\n\t\t\tif (this.useCpu) this.particleTex[i * particleTexChannels + 3 + this.numParticlesPot * 2 * particleTexChannels] = 1;\n\t\t}\n\t\tthis.particleTexStart = new Float32Array(this.numParticlesPot * particleTexHeight * particleTexChannels);\n\t\tfor (let i = 0; i < this.particleTexStart.length; i++) {\n\t\t\tthis.particleTexStart[i] = this.particleTex[i];\n\t\t}\n\t\tif (!this.useCpu) {\n\t\t\tif (this.pack8) {\n\t\t\t\tthis.particleTexIN = _createTexture(gd, this.numParticlesPot, particleTexHeight, this.particleTex, PIXELFORMAT_RGBA8, 1, false);\n\t\t\t\tthis.particleTexOUT = _createTexture(gd, this.numParticlesPot, particleTexHeight, this.particleTex, PIXELFORMAT_RGBA8, 1, false);\n\t\t\t\tthis.particleTexStart = _createTexture(gd, this.numParticlesPot, particleTexHeight, this.particleTexStart, PIXELFORMAT_RGBA8, 1, false);\n\t\t\t} else {\n\t\t\t\tthis.particleTexIN = _createTexture(gd, this.numParticlesPot, particleTexHeight, this.particleTex);\n\t\t\t\tthis.particleTexOUT = _createTexture(gd, this.numParticlesPot, particleTexHeight, this.particleTex);\n\t\t\t\tthis.particleTexStart = _createTexture(gd, this.numParticlesPot, particleTexHeight, this.particleTexStart);\n\t\t\t}\n\t\t\tthis.rtParticleTexIN = new RenderTarget({\n\t\t\t\tcolorBuffer: this.particleTexIN,\n\t\t\t\tdepth: false\n\t\t\t});\n\t\t\tthis.rtParticleTexOUT = new RenderTarget({\n\t\t\t\tcolorBuffer: this.particleTexOUT,\n\t\t\t\tdepth: false\n\t\t\t});\n\t\t\tthis.swapTex = false;\n\t\t}\n\t\tconst shaderCodeStart = (this.localSpace ? '#define LOCAL_SPACE\\n' : '') + shaderChunks.particleUpdaterInitPS + (this.pack8 ? shaderChunks.particleInputRgba8PS + shaderChunks.particleOutputRgba8PS : shaderChunks.particleInputFloatPS + shaderChunks.particleOutputFloatPS) + (this.emitterShape === EMITTERSHAPE_BOX ? shaderChunks.particleUpdaterAABBPS : shaderChunks.particleUpdaterSpherePS) + shaderChunks.particleUpdaterStartPS;\n\t\tconst shaderCodeRespawn = shaderCodeStart + shaderChunks.particleUpdaterRespawnPS + shaderChunks.particleUpdaterEndPS;\n\t\tconst shaderCodeNoRespawn = shaderCodeStart + shaderChunks.particleUpdaterNoRespawnPS + shaderChunks.particleUpdaterEndPS;\n\t\tconst shaderCodeOnStop = shaderCodeStart + shaderChunks.particleUpdaterOnStopPS + shaderChunks.particleUpdaterEndPS;\n\t\tconst params = `${this.emitterShape}${this.pack8}${this.localSpace}`;\n\t\tthis.shaderParticleUpdateRespawn = createShaderFromCode(gd, shaderChunks.fullscreenQuadVS, shaderCodeRespawn, `fsQuad0${params}`);\n\t\tthis.shaderParticleUpdateNoRespawn = createShaderFromCode(gd, shaderChunks.fullscreenQuadVS, shaderCodeNoRespawn, `fsQuad1${params}`);\n\t\tthis.shaderParticleUpdateOnStop = createShaderFromCode(gd, shaderChunks.fullscreenQuadVS, shaderCodeOnStop, `fsQuad2${params}`);\n\t\tthis.numParticleVerts = this.useMesh ? this.mesh.vertexBuffer.numVertices : 4;\n\t\tthis.numParticleIndices = this.useMesh ? this.mesh.indexBuffer[0].numIndices : 6;\n\t\tthis._allocate(this.numParticles);\n\t\tconst mesh = new Mesh(gd);\n\t\tmesh.vertexBuffer = this.vertexBuffer;\n\t\tmesh.indexBuffer[0] = this.indexBuffer;\n\t\tmesh.primitive[0].type = PRIMITIVE_TRIANGLES;\n\t\tmesh.primitive[0].base = 0;\n\t\tmesh.primitive[0].count = this.numParticles * this.numParticleIndices;\n\t\tmesh.primitive[0].indexed = true;\n\t\tthis.material = new Material();\n\t\tthis.material.name = this.node.name;\n\t\tthis.material.cull = CULLFACE_NONE;\n\t\tthis.material.alphaWrite = false;\n\t\tthis.material.blendType = this.blendType;\n\t\tthis.material.depthWrite = this.depthWrite;\n\t\tthis.material.emitter = this;\n\t\tthis.regenShader();\n\t\tthis.resetMaterial();\n\t\tconst wasVisible = this.meshInstance ? this.meshInstance.visible : true;\n\t\tthis.meshInstance = new MeshInstance(mesh, this.material, this.node);\n\t\tthis.meshInstance.pick = false;\n\t\tthis.meshInstance.updateKey();\n\t\tthis.meshInstance.cull = true;\n\t\tif (this.localSpace) {\n\t\t\tthis.meshInstance.aabb.setFromTransformedAabb(this.worldBounds, this.node.getWorldTransform());\n\t\t} else {\n\t\t\tthis.meshInstance.aabb.copy(this.worldBounds);\n\t\t}\n\t\tthis.meshInstance._updateAabb = false;\n\t\tthis.meshInstance.visible = wasVisible;\n\t\tthis._initializeTextures();\n\t\tthis.resetTime();\n\t\tthis.addTime(0, false);\n\t\tif (this.preWarm) this.prewarm(this.lifetime);\n\t}\n\t_isAnimated() {\n\t\treturn this.animNumFrames >= 1 && (this.animTilesX > 1 || this.animTilesY > 1) && (this.colorMap && this.colorMap !== this.defaultParamTexture || this.normalMap);\n\t}\n\trebuildGraphs() {\n\t\tconst precision = this.precision;\n\t\tconst gd = this.graphicsDevice;\n\t\tthis.qLocalVelocity = this.localVelocityGraph.quantize(precision);\n\t\tthis.qVelocity = this.velocityGraph.quantize(precision);\n\t\tthis.qColor = this.colorGraph.quantizeClamped(precision, 0, 1);\n\t\tthis.qRotSpeed = this.rotationSpeedGraph.quantize(precision);\n\t\tthis.qScale = this.scaleGraph.quantize(precision);\n\t\tthis.qAlpha = this.alphaGraph.quantize(precision);\n\t\tthis.qRadialSpeed = this.radialSpeedGraph.quantize(precision);\n\t\tthis.qLocalVelocity2 = this.localVelocityGraph2.quantize(precision);\n\t\tthis.qVelocity2 = this.velocityGraph2.quantize(precision);\n\t\tthis.qColor2 = this.colorGraph2.quantizeClamped(precision, 0, 1);\n\t\tthis.qRotSpeed2 = this.rotationSpeedGraph2.quantize(precision);\n\t\tthis.qScale2 = this.scaleGraph2.quantize(precision);\n\t\tthis.qAlpha2 = this.alphaGraph2.quantize(precision);\n\t\tthis.qRadialSpeed2 = this.radialSpeedGraph2.quantize(precision);\n\t\tfor (let i = 0; i < precision; i++) {\n\t\t\tthis.qRotSpeed[i] *= math.DEG_TO_RAD;\n\t\t\tthis.qRotSpeed2[i] *= math.DEG_TO_RAD;\n\t\t}\n\t\tthis.localVelocityUMax = new Float32Array(3);\n\t\tthis.velocityUMax = new Float32Array(3);\n\t\tthis.colorUMax = new Float32Array(3);\n\t\tthis.rotSpeedUMax = [0];\n\t\tthis.scaleUMax = [0];\n\t\tthis.alphaUMax = [0];\n\t\tthis.radialSpeedUMax = [0];\n\t\tthis.qLocalVelocityDiv = divGraphFrom2Curves(this.qLocalVelocity, this.qLocalVelocity2, this.localVelocityUMax);\n\t\tthis.qVelocityDiv = divGraphFrom2Curves(this.qVelocity, this.qVelocity2, this.velocityUMax);\n\t\tthis.qColorDiv = divGraphFrom2Curves(this.qColor, this.qColor2, this.colorUMax);\n\t\tthis.qRotSpeedDiv = divGraphFrom2Curves(this.qRotSpeed, this.qRotSpeed2, this.rotSpeedUMax);\n\t\tthis.qScaleDiv = divGraphFrom2Curves(this.qScale, this.qScale2, this.scaleUMax);\n\t\tthis.qAlphaDiv = divGraphFrom2Curves(this.qAlpha, this.qAlpha2, this.alphaUMax);\n\t\tthis.qRadialSpeedDiv = divGraphFrom2Curves(this.qRadialSpeed, this.qRadialSpeed2, this.radialSpeedUMax);\n\t\tif (this.pack8) {\n\t\t\tconst umax = [0, 0, 0];\n\t\t\tmaxUnsignedGraphValue(this.qVelocity, umax);\n\t\t\tconst umax2 = [0, 0, 0];\n\t\t\tmaxUnsignedGraphValue(this.qVelocity2, umax2);\n\t\t\tconst lumax = [0, 0, 0];\n\t\t\tmaxUnsignedGraphValue(this.qLocalVelocity, lumax);\n\t\t\tconst lumax2 = [0, 0, 0];\n\t\t\tmaxUnsignedGraphValue(this.qLocalVelocity2, lumax2);\n\t\t\tconst rumax = [0];\n\t\t\tmaxUnsignedGraphValue(this.qRadialSpeed, rumax);\n\t\t\tconst rumax2 = [0];\n\t\t\tmaxUnsignedGraphValue(this.qRadialSpeed2, rumax2);\n\t\t\tlet maxVel = Math.max(umax[0], umax2[0]);\n\t\t\tmaxVel = Math.max(maxVel, umax[1]);\n\t\t\tmaxVel = Math.max(maxVel, umax2[1]);\n\t\t\tmaxVel = Math.max(maxVel, umax[2]);\n\t\t\tmaxVel = Math.max(maxVel, umax2[2]);\n\t\t\tlet lmaxVel = Math.max(lumax[0], lumax2[0]);\n\t\t\tlmaxVel = Math.max(lmaxVel, lumax[1]);\n\t\t\tlmaxVel = Math.max(lmaxVel, lumax2[1]);\n\t\t\tlmaxVel = Math.max(lmaxVel, lumax[2]);\n\t\t\tlmaxVel = Math.max(lmaxVel, lumax2[2]);\n\t\t\tconst maxRad = Math.max(rumax[0], rumax2[0]);\n\t\t\tthis.maxVel = maxVel + lmaxVel + maxRad;\n\t\t}\n\t\tif (!this.useCpu) {\n\t\t\tthis.internalTex0 = _createTexture(gd, precision, 1, packTextureXYZ_NXYZ(this.qLocalVelocity, this.qLocalVelocityDiv));\n\t\t\tthis.internalTex1 = _createTexture(gd, precision, 1, packTextureXYZ_NXYZ(this.qVelocity, this.qVelocityDiv));\n\t\t\tthis.internalTex2 = _createTexture(gd, precision, 1, packTexture5Floats(this.qRotSpeed, this.qScale, this.qScaleDiv, this.qRotSpeedDiv, this.qAlphaDiv));\n\t\t\tthis.internalTex3 = _createTexture(gd, precision, 1, packTexture2Floats(this.qRadialSpeed, this.qRadialSpeedDiv));\n\t\t}\n\t\tthis.colorParam = _createTexture(gd, precision, 1, packTextureRGBA(this.qColor, this.qAlpha), PIXELFORMAT_RGBA8, 1.0, true);\n\t}\n\t_initializeTextures() {\n\t\tif (this.colorMap) {\n\t\t\tthis.material.setParameter('colorMap', this.colorMap);\n\t\t\tif (this.lighting && this.normalMap) {\n\t\t\t\tthis.material.setParameter('normalMap', this.normalMap);\n\t\t\t}\n\t\t}\n\t}\n\tregenShader() {\n\t\tconst programLib = getProgramLibrary(this.graphicsDevice);\n\t\tprogramLib.register('particle', particle);\n\t\tconst hasNormal = this.normalMap !== null;\n\t\tthis.normalOption = 0;\n\t\tif (this.lighting) {\n\t\t\tthis.normalOption = hasNormal ? 2 : 1;\n\t\t}\n\t\tthis.material.getShaderVariant = function (dev, sc, defs, unused, pass, sortedLights, viewUniformFormat, viewBindGroupFormat) {\n\t\t\tif (this.emitter.scene) {\n\t\t\t\tif (this.emitter.camera !== this.emitter.scene._activeCamera) {\n\t\t\t\t\tthis.emitter.camera = this.emitter.scene._activeCamera;\n\t\t\t\t\tthis.emitter.onChangeCamera();\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst inTools = this.emitter.inTools;\n\t\t\tconst processingOptions = new ShaderProcessorOptions(viewUniformFormat, viewBindGroupFormat);\n\t\t\tconst shader = programLib.getProgram('particle', {\n\t\t\t\tpass: SHADER_FORWARD,\n\t\t\t\tuseCpu: this.emitter.useCpu,\n\t\t\t\tnormal: this.emitter.normalOption,\n\t\t\t\thalflambert: this.emitter.halfLambert,\n\t\t\t\tstretch: this.emitter.stretch,\n\t\t\t\talignToMotion: this.emitter.alignToMotion,\n\t\t\t\tsoft: this.emitter.depthSoftening,\n\t\t\t\tmesh: this.emitter.useMesh,\n\t\t\t\tgamma: this.emitter.scene ? this.emitter.scene.gammaCorrection : 0,\n\t\t\t\ttoneMap: this.emitter.scene ? this.emitter.scene.toneMapping : 0,\n\t\t\t\tfog: this.emitter.scene && !this.emitter.noFog ? this.emitter.scene.fog : 'none',\n\t\t\t\twrap: this.emitter.wrap && this.emitter.wrapBounds,\n\t\t\t\tlocalSpace: this.emitter.localSpace,\n\t\t\t\tscreenSpace: inTools ? false : this.emitter.screenSpace,\n\t\t\t\tblend: this.blendType,\n\t\t\t\tanimTex: this.emitter._isAnimated(),\n\t\t\t\tanimTexLoop: this.emitter.animLoop,\n\t\t\t\tpack8: this.emitter.pack8,\n\t\t\t\tcustomFace: this.emitter.orientation !== PARTICLEORIENTATION_SCREEN\n\t\t\t}, processingOptions);\n\t\t\treturn shader;\n\t\t};\n\t\tthis.material.shader = this.material.getShaderVariant();\n\t}\n\tresetMaterial() {\n\t\tconst material = this.material;\n\t\tmaterial.setParameter('stretch', this.stretch);\n\t\tif (this._isAnimated()) {\n\t\t\tmaterial.setParameter('animTexTilesParams', this.animTilesParams);\n\t\t\tmaterial.setParameter('animTexParams', this.animParams);\n\t\t\tmaterial.setParameter('animTexIndexParams', this.animIndexParams);\n\t\t}\n\t\tmaterial.setParameter('colorMult', this.intensity);\n\t\tif (!this.useCpu) {\n\t\t\tmaterial.setParameter('internalTex0', this.internalTex0);\n\t\t\tmaterial.setParameter('internalTex1', this.internalTex1);\n\t\t\tmaterial.setParameter('internalTex2', this.internalTex2);\n\t\t\tmaterial.setParameter('internalTex3', this.internalTex3);\n\t\t}\n\t\tmaterial.setParameter('colorParam', this.colorParam);\n\t\tmaterial.setParameter('numParticles', this.numParticles);\n\t\tmaterial.setParameter('numParticlesPot', this.numParticlesPot);\n\t\tmaterial.setParameter('lifetime', this.lifetime);\n\t\tmaterial.setParameter('rate', this.rate);\n\t\tmaterial.setParameter('rateDiv', this.rate2 - this.rate);\n\t\tmaterial.setParameter('seed', this.seed);\n\t\tmaterial.setParameter('scaleDivMult', this.scaleUMax[0]);\n\t\tmaterial.setParameter('alphaDivMult', this.alphaUMax[0]);\n\t\tmaterial.setParameter('radialSpeedDivMult', this.radialSpeedUMax[0]);\n\t\tmaterial.setParameter('graphNumSamples', this.precision);\n\t\tmaterial.setParameter('graphSampleSize', 1.0 / this.precision);\n\t\tmaterial.setParameter('emitterScale', new Float32Array([1, 1, 1]));\n\t\tif (this.pack8) {\n\t\t\tthis._gpuUpdater._setInputBounds();\n\t\t\tmaterial.setParameter('inBoundsSize', this._gpuUpdater.inBoundsSizeUniform);\n\t\t\tmaterial.setParameter('inBoundsCenter', this._gpuUpdater.inBoundsCenterUniform);\n\t\t\tmaterial.setParameter('maxVel', this.maxVel);\n\t\t}\n\t\tif (this.wrap && this.wrapBounds) {\n\t\t\tthis.wrapBoundsUniform[0] = this.wrapBounds.x;\n\t\t\tthis.wrapBoundsUniform[1] = this.wrapBounds.y;\n\t\t\tthis.wrapBoundsUniform[2] = this.wrapBounds.z;\n\t\t\tmaterial.setParameter('wrapBounds', this.wrapBoundsUniform);\n\t\t}\n\t\tif (this.colorMap) {\n\t\t\tmaterial.setParameter('colorMap', this.colorMap);\n\t\t}\n\t\tif (this.lighting) {\n\t\t\tif (this.normalMap) {\n\t\t\t\tmaterial.setParameter('normalMap', this.normalMap);\n\t\t\t}\n\t\t}\n\t\tif (this.depthSoftening > 0) {\n\t\t\tmaterial.setParameter('softening', 1.0 / (this.depthSoftening * this.depthSoftening * 100));\n\t\t}\n\t\tif (this.stretch > 0.0) material.cull = CULLFACE_NONE;\n\t\tthis._compParticleFaceParams();\n\t}\n\t_compParticleFaceParams() {\n\t\tlet tangent, binormal;\n\t\tif (this.orientation === PARTICLEORIENTATION_SCREEN) {\n\t\t\ttangent = new Float32Array([1, 0, 0]);\n\t\t\tbinormal = new Float32Array([0, 0, 1]);\n\t\t} else {\n\t\t\tlet n;\n\t\t\tif (this.orientation === PARTICLEORIENTATION_WORLD) {\n\t\t\t\tn = this.particleNormal.normalize();\n\t\t\t} else {\n\t\t\t\tconst emitterMat = this.node === null ? Mat4.IDENTITY : this.node.getWorldTransform();\n\t\t\t\tn = emitterMat.transformVector(this.particleNormal).normalize();\n\t\t\t}\n\t\t\tconst t = new Vec3(1, 0, 0);\n\t\t\tif (Math.abs(t.dot(n)) === 1) {\n\t\t\t\tt.set(0, 0, 1);\n\t\t\t}\n\t\t\tconst b = new Vec3().cross(n, t).normalize();\n\t\t\tt.cross(b, n).normalize();\n\t\t\ttangent = new Float32Array([t.x, t.y, t.z]);\n\t\t\tbinormal = new Float32Array([b.x, b.y, b.z]);\n\t\t}\n\t\tthis.material.setParameter('faceTangent', tangent);\n\t\tthis.material.setParameter('faceBinorm', binormal);\n\t}\n\t_allocate(numParticles) {\n\t\tconst psysVertCount = numParticles * this.numParticleVerts;\n\t\tconst psysIndexCount = numParticles * this.numParticleIndices;\n\t\tif (this.vertexBuffer === undefined || this.vertexBuffer.getNumVertices() !== psysVertCount) {\n\t\t\tif (!this.useCpu) {\n\t\t\t\tconst elements = [{\n\t\t\t\t\tsemantic: SEMANTIC_ATTR0,\n\t\t\t\t\tcomponents: 4,\n\t\t\t\t\ttype: TYPE_FLOAT32\n\t\t\t\t}];\n\t\t\t\tif (this.useMesh) {\n\t\t\t\t\telements.push({\n\t\t\t\t\t\tsemantic: SEMANTIC_ATTR1,\n\t\t\t\t\t\tcomponents: 2,\n\t\t\t\t\t\ttype: TYPE_FLOAT32\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tconst particleFormat = new VertexFormat(this.graphicsDevice, elements);\n\t\t\t\tthis.vertexBuffer = new VertexBuffer(this.graphicsDevice, particleFormat, psysVertCount, {\n\t\t\t\t\tusage: BUFFER_DYNAMIC\n\t\t\t\t});\n\t\t\t\tthis.indexBuffer = new IndexBuffer(this.graphicsDevice, INDEXFORMAT_UINT16, psysIndexCount);\n\t\t\t} else {\n\t\t\t\tconst elements = [{\n\t\t\t\t\tsemantic: SEMANTIC_ATTR0,\n\t\t\t\t\tcomponents: 4,\n\t\t\t\t\ttype: TYPE_FLOAT32\n\t\t\t\t}, {\n\t\t\t\t\tsemantic: SEMANTIC_ATTR1,\n\t\t\t\t\tcomponents: 4,\n\t\t\t\t\ttype: TYPE_FLOAT32\n\t\t\t\t}, {\n\t\t\t\t\tsemantic: SEMANTIC_ATTR2,\n\t\t\t\t\tcomponents: 4,\n\t\t\t\t\ttype: TYPE_FLOAT32\n\t\t\t\t}, {\n\t\t\t\t\tsemantic: SEMANTIC_ATTR3,\n\t\t\t\t\tcomponents: 1,\n\t\t\t\t\ttype: TYPE_FLOAT32\n\t\t\t\t}, {\n\t\t\t\t\tsemantic: SEMANTIC_ATTR4,\n\t\t\t\t\tcomponents: this.useMesh ? 4 : 2,\n\t\t\t\t\ttype: TYPE_FLOAT32\n\t\t\t\t}];\n\t\t\t\tconst particleFormat = new VertexFormat(this.graphicsDevice, elements);\n\t\t\t\tthis.vertexBuffer = new VertexBuffer(this.graphicsDevice, particleFormat, psysVertCount, {\n\t\t\t\t\tusage: BUFFER_DYNAMIC\n\t\t\t\t});\n\t\t\t\tthis.indexBuffer = new IndexBuffer(this.graphicsDevice, INDEXFORMAT_UINT16, psysIndexCount);\n\t\t\t}\n\t\t\tconst data = new Float32Array(this.vertexBuffer.lock());\n\t\t\tlet meshData, stride, texCoordOffset;\n\t\t\tif (this.useMesh) {\n\t\t\t\tmeshData = new Float32Array(this.mesh.vertexBuffer.lock());\n\t\t\t\tstride = meshData.length / this.mesh.vertexBuffer.numVertices;\n\t\t\t\tfor (let elem = 0; elem < this.mesh.vertexBuffer.format.elements.length; elem++) {\n\t\t\t\t\tif (this.mesh.vertexBuffer.format.elements[elem].name === SEMANTIC_TEXCOORD0) {\n\t\t\t\t\t\ttexCoordOffset = this.mesh.vertexBuffer.format.elements[elem].offset / 4;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (let i = 0; i < psysVertCount; i++) {\n\t\t\t\tconst id = Math.floor(i / this.numParticleVerts);\n\t\t\t\tif (!this.useMesh) {\n\t\t\t\t\tconst vertID = i % 4;\n\t\t\t\t\tdata[i * 4] = particleVerts[vertID][0];\n\t\t\t\t\tdata[i * 4 + 1] = particleVerts[vertID][1];\n\t\t\t\t\tdata[i * 4 + 2] = 0;\n\t\t\t\t\tdata[i * 4 + 3] = id;\n\t\t\t\t} else {\n\t\t\t\t\tconst vert = i % this.numParticleVerts;\n\t\t\t\t\tdata[i * 6] = meshData[vert * stride];\n\t\t\t\t\tdata[i * 6 + 1] = meshData[vert * stride + 1];\n\t\t\t\t\tdata[i * 6 + 2] = meshData[vert * stride + 2];\n\t\t\t\t\tdata[i * 6 + 3] = id;\n\t\t\t\t\tdata[i * 6 + 4] = meshData[vert * stride + texCoordOffset + 0];\n\t\t\t\t\tdata[i * 6 + 5] = 1.0 - meshData[vert * stride + texCoordOffset + 1];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.useCpu) {\n\t\t\t\tthis.vbCPU = new Float32Array(data);\n\t\t\t\tthis.vbOld = new Float32Array(this.vbCPU.length);\n\t\t\t}\n\t\t\tthis.vertexBuffer.unlock();\n\t\t\tif (this.useMesh) {\n\t\t\t\tthis.mesh.vertexBuffer.unlock();\n\t\t\t}\n\t\t\tlet dst = 0;\n\t\t\tconst indices = new Uint16Array(this.indexBuffer.lock());\n\t\t\tif (this.useMesh) meshData = new Uint16Array(this.mesh.indexBuffer[0].lock());\n\t\t\tfor (let i = 0; i < numParticles; i++) {\n\t\t\t\tif (!this.useMesh) {\n\t\t\t\t\tconst baseIndex = i * 4;\n\t\t\t\t\tindices[dst++] = baseIndex;\n\t\t\t\t\tindices[dst++] = baseIndex + 1;\n\t\t\t\t\tindices[dst++] = baseIndex + 2;\n\t\t\t\t\tindices[dst++] = baseIndex;\n\t\t\t\t\tindices[dst++] = baseIndex + 2;\n\t\t\t\t\tindices[dst++] = baseIndex + 3;\n\t\t\t\t} else {\n\t\t\t\t\tfor (let j = 0; j < this.numParticleIndices; j++) {\n\t\t\t\t\t\tindices[i * this.numParticleIndices + j] = meshData[j] + i * this.numParticleVerts;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.indexBuffer.unlock();\n\t\t\tif (this.useMesh) this.mesh.indexBuffer[0].unlock();\n\t\t}\n\t}\n\treset() {\n\t\tthis.beenReset = true;\n\t\tthis.seed = Math.random();\n\t\tthis.material.setParameter('seed', this.seed);\n\t\tif (this.useCpu) {\n\t\t\tfor (let i = 0; i < this.particleTexStart.length; i++) {\n\t\t\t\tthis.particleTex[i] = this.particleTexStart[i];\n\t\t\t}\n\t\t} else {\n\t\t\tthis._initializeTextures();\n\t\t}\n\t\tthis.resetWorldBounds();\n\t\tthis.resetTime();\n\t\tconst origLoop = this.loop;\n\t\tthis.loop = true;\n\t\tthis.addTime(0, false);\n\t\tthis.loop = origLoop;\n\t\tif (this.preWarm) {\n\t\t\tthis.prewarm(this.lifetime);\n\t\t}\n\t}\n\tprewarm(time) {\n\t\tconst lifetimeFraction = time / this.lifetime;\n\t\tconst iterations = Math.min(Math.floor(lifetimeFraction * this.precision), this.precision);\n\t\tconst stepDelta = time / iterations;\n\t\tfor (let i = 0; i < iterations; i++) {\n\t\t\tthis.addTime(stepDelta, false);\n\t\t}\n\t}\n\tresetTime() {\n\t\tthis.endTime = calcEndTime(this);\n\t}\n\tfinishFrame() {\n\t\tif (this.useCpu) this.vertexBuffer.unlock();\n\t}\n\taddTime(delta, isOnStop) {\n\t\tconst device = this.graphicsDevice;\n\t\tthis.simTimeTotal += delta;\n\t\tthis.calculateWorldBounds();\n\t\tif (this._isAnimated()) {\n\t\t\tconst tilesParams = this.animTilesParams;\n\t\t\ttilesParams[0] = 1.0 / this.animTilesX;\n\t\t\ttilesParams[1] = 1.0 / this.animTilesY;\n\t\t\tconst params = this.animParams;\n\t\t\tparams[0] = this.animStartFrame;\n\t\t\tparams[1] = this.animNumFrames * this.animSpeed;\n\t\t\tparams[2] = this.animNumFrames - 1;\n\t\t\tparams[3] = this.animNumAnimations - 1;\n\t\t\tconst animIndexParams = this.animIndexParams;\n\t\t\tanimIndexParams[0] = this.animIndex;\n\t\t\tanimIndexParams[1] = this.randomizeAnimIndex;\n\t\t}\n\t\tif (this.scene) {\n\t\t\tif (this.camera !== this.scene._activeCamera) {\n\t\t\t\tthis.camera = this.scene._activeCamera;\n\t\t\t\tthis.onChangeCamera();\n\t\t\t}\n\t\t}\n\t\tif (this.emitterShape === EMITTERSHAPE_BOX) {\n\t\t\textentsInnerRatioUniform[0] = this.emitterExtents.x !== 0 ? this.emitterExtentsInner.x / this.emitterExtents.x : 0;\n\t\t\textentsInnerRatioUniform[1] = this.emitterExtents.y !== 0 ? this.emitterExtentsInner.y / this.emitterExtents.y : 0;\n\t\t\textentsInnerRatioUniform[2] = this.emitterExtents.z !== 0 ? this.emitterExtentsInner.z / this.emitterExtents.z : 0;\n\t\t\tif (this.meshInstance.node === null) {\n\t\t\t\tspawnMatrix.setTRS(Vec3.ZERO, Quat.IDENTITY, this.emitterExtents);\n\t\t\t} else {\n\t\t\t\tspawnMatrix.setTRS(Vec3.ZERO, this.meshInstance.node.getRotation(), tmpVec3.copy(this.emitterExtents).mul(this.meshInstance.node.localScale));\n\t\t\t}\n\t\t}\n\t\tlet emitterPos;\n\t\tconst emitterScale = this.meshInstance.node === null ? Vec3.ONE : this.meshInstance.node.localScale;\n\t\tthis.emitterScaleUniform[0] = emitterScale.x;\n\t\tthis.emitterScaleUniform[1] = emitterScale.y;\n\t\tthis.emitterScaleUniform[2] = emitterScale.z;\n\t\tthis.material.setParameter('emitterScale', this.emitterScaleUniform);\n\t\tif (this.localSpace && this.meshInstance.node) {\n\t\t\temitterPos = this.meshInstance.node.getPosition();\n\t\t\tthis.emitterPosUniform[0] = emitterPos.x;\n\t\t\tthis.emitterPosUniform[1] = emitterPos.y;\n\t\t\tthis.emitterPosUniform[2] = emitterPos.z;\n\t\t\tthis.material.setParameter('emitterPos', this.emitterPosUniform);\n\t\t}\n\t\tthis._compParticleFaceParams();\n\t\tif (!this.useCpu) {\n\t\t\tthis._gpuUpdater.update(device, spawnMatrix, extentsInnerRatioUniform, delta, isOnStop);\n\t\t} else {\n\t\t\tconst data = new Float32Array(this.vertexBuffer.lock());\n\t\t\tthis._cpuUpdater.update(data, this.vbToSort, this.particleTex, spawnMatrix, extentsInnerRatioUniform, emitterPos, delta, isOnStop);\n\t\t}\n\t\tif (!this.loop) {\n\t\t\tif (Date.now() > this.endTime) {\n\t\t\t\tif (this.onFinished) this.onFinished();\n\t\t\t\tthis.meshInstance.visible = false;\n\t\t\t}\n\t\t}\n\t\tif (this.meshInstance) {\n\t\t\tthis.meshInstance.drawOrder = this.drawOrder;\n\t\t}\n\t}\n\t_destroyResources() {\n\t\tif (this.particleTexIN) {\n\t\t\tthis.particleTexIN.destroy();\n\t\t\tthis.particleTexIN = null;\n\t\t}\n\t\tif (this.particleTexOUT) {\n\t\t\tthis.particleTexOUT.destroy();\n\t\t\tthis.particleTexOUT = null;\n\t\t}\n\t\tif (this.particleTexStart && this.particleTexStart.destroy) {\n\t\t\tthis.particleTexStart.destroy();\n\t\t\tthis.particleTexStart = null;\n\t\t}\n\t\tif (this.rtParticleTexIN) {\n\t\t\tthis.rtParticleTexIN.destroy();\n\t\t\tthis.rtParticleTexIN = null;\n\t\t}\n\t\tif (this.rtParticleTexOUT) {\n\t\t\tthis.rtParticleTexOUT.destroy();\n\t\t\tthis.rtParticleTexOUT = null;\n\t\t}\n\t\tif (this.internalTex0) {\n\t\t\tthis.internalTex0.destroy();\n\t\t\tthis.internalTex0 = null;\n\t\t}\n\t\tif (this.internalTex1) {\n\t\t\tthis.internalTex1.destroy();\n\t\t\tthis.internalTex1 = null;\n\t\t}\n\t\tif (this.internalTex2) {\n\t\t\tthis.internalTex2.destroy();\n\t\t\tthis.internalTex2 = null;\n\t\t}\n\t\tif (this.internalTex3) {\n\t\t\tthis.internalTex3.destroy();\n\t\t\tthis.internalTex3 = null;\n\t\t}\n\t\tif (this.colorParam) {\n\t\t\tthis.colorParam.destroy();\n\t\t\tthis.colorParam = null;\n\t\t}\n\t\tif (this.vertexBuffer) {\n\t\t\tthis.vertexBuffer.destroy();\n\t\t\tthis.vertexBuffer = undefined;\n\t\t}\n\t\tif (this.indexBuffer) {\n\t\t\tthis.indexBuffer.destroy();\n\t\t\tthis.indexBuffer = undefined;\n\t\t}\n\t\tif (this.material) {\n\t\t\tthis.material.destroy();\n\t\t\tthis.material = null;\n\t\t}\n\t}\n\tdestroy() {\n\t\tthis.camera = null;\n\t\tthis._destroyResources();\n\t}\n}\n\nconst mip2size = [128, 64, 16, 8, 4, 2];\nconst fShader = `\n\t\t#include \"decodePS\"\n\t\t#include \"gamma\"\n\t\t#include \"tonemapping\"\n\t\t#include \"envMultiplyPS\"\n\n\t\t#ifdef SKY_CUBEMAP\n\t\t\t\t#include \"cubemapSeams\"\n\t\t\t\t#include \"skyboxHDRPS\"\n\t\t#else\n\t\t\t\t#include \"sphericalPS\"\n\t\t\t\t#include \"envAtlasPS\"\n\t\t\t\t#include \"skyboxEnvPS\"\n\t\t#endif\n`;\nclass ShaderGeneratorSkybox extends ShaderGenerator {\n\tgenerateKey(options) {\n\t\tconst sharedKey = `skybox-${options.type}-${options.encoding}-${options.gamma}-${options.toneMapping}-${options.skymesh}`;\n\t\treturn sharedKey + (options.type === 'cubemap' ? `-${options.mip}` : '');\n\t}\n\tcreateShaderDefinition(device, options) {\n\t\tconst defines = new Map();\n\t\tdefines.set('SKYBOX_DECODE_FNC', ChunkUtils.decodeFunc(options.encoding));\n\t\tif (options.skymesh !== SKYTYPE_INFINITE) defines.set('SKYMESH', '');\n\t\tif (options.type === 'cubemap') {\n\t\t\tdefines.set('SKY_CUBEMAP', '');\n\t\t\tdefines.set('SKYBOX_MIP', (1 - 1 / mip2size[options.mip]).toString());\n\t\t}\n\t\tconst includes = new Map();\n\t\tincludes.set('decodePS', shaderChunks.decodePS);\n\t\tincludes.set('gamma', ShaderGenerator.gammaCode(options.gamma));\n\t\tincludes.set('tonemapping', ShaderGenerator.tonemapCode(options.toneMapping));\n\t\tincludes.set('envMultiplyPS', shaderChunks.envMultiplyPS);\n\t\tif (options.type === 'cubemap') {\n\t\t\tincludes.set('cubemapSeams', options.mip ? shaderChunks.fixCubemapSeamsStretchPS : shaderChunks.fixCubemapSeamsNonePS);\n\t\t\tincludes.set('skyboxHDRPS', shaderChunks.skyboxHDRPS);\n\t\t} else {\n\t\t\tincludes.set('sphericalPS', shaderChunks.sphericalPS);\n\t\t\tincludes.set('envAtlasPS', shaderChunks.envAtlasPS);\n\t\t\tincludes.set('skyboxEnvPS', shaderChunks.skyboxEnvPS);\n\t\t}\n\t\treturn ShaderUtils.createDefinition(device, {\n\t\t\tname: 'SkyboxShader',\n\t\t\tattributes: {\n\t\t\t\taPosition: SEMANTIC_POSITION\n\t\t\t},\n\t\t\tvertexCode: shaderChunks.skyboxVS,\n\t\t\tvertexDefines: defines,\n\t\t\tfragmentCode: fShader,\n\t\t\tfragmentDefines: defines,\n\t\t\tfragmentIncludes: includes\n\t\t});\n\t}\n}\nconst skybox = new ShaderGeneratorSkybox();\n\nconst calculateNormals = (positions, indices) => {\n\tconst triangleCount = indices.length / 3;\n\tconst vertexCount = positions.length / 3;\n\tconst p1 = new Vec3();\n\tconst p2 = new Vec3();\n\tconst p3 = new Vec3();\n\tconst p1p2 = new Vec3();\n\tconst p1p3 = new Vec3();\n\tconst faceNormal = new Vec3();\n\tconst normals = [];\n\tfor (let i = 0; i < positions.length; i++) {\n\t\tnormals[i] = 0;\n\t}\n\tfor (let i = 0; i < triangleCount; i++) {\n\t\tconst i1 = indices[i * 3];\n\t\tconst i2 = indices[i * 3 + 1];\n\t\tconst i3 = indices[i * 3 + 2];\n\t\tp1.set(positions[i1 * 3], positions[i1 * 3 + 1], positions[i1 * 3 + 2]);\n\t\tp2.set(positions[i2 * 3], positions[i2 * 3 + 1], positions[i2 * 3 + 2]);\n\t\tp3.set(positions[i3 * 3], positions[i3 * 3 + 1], positions[i3 * 3 + 2]);\n\t\tp1p2.sub2(p2, p1);\n\t\tp1p3.sub2(p3, p1);\n\t\tfaceNormal.cross(p1p2, p1p3).normalize();\n\t\tnormals[i1 * 3] += faceNormal.x;\n\t\tnormals[i1 * 3 + 1] += faceNormal.y;\n\t\tnormals[i1 * 3 + 2] += faceNormal.z;\n\t\tnormals[i2 * 3] += faceNormal.x;\n\t\tnormals[i2 * 3 + 1] += faceNormal.y;\n\t\tnormals[i2 * 3 + 2] += faceNormal.z;\n\t\tnormals[i3 * 3] += faceNormal.x;\n\t\tnormals[i3 * 3 + 1] += faceNormal.y;\n\t\tnormals[i3 * 3 + 2] += faceNormal.z;\n\t}\n\tfor (let i = 0; i < vertexCount; i++) {\n\t\tconst nx = normals[i * 3];\n\t\tconst ny = normals[i * 3 + 1];\n\t\tconst nz = normals[i * 3 + 2];\n\t\tconst invLen = 1 / Math.sqrt(nx * nx + ny * ny + nz * nz);\n\t\tnormals[i * 3] *= invLen;\n\t\tnormals[i * 3 + 1] *= invLen;\n\t\tnormals[i * 3 + 2] *= invLen;\n\t}\n\treturn normals;\n};\nconst calculateTangents = (positions, normals, uvs, indices) => {\n\tconst triangleCount = indices.length / 3;\n\tconst vertexCount = positions.length / 3;\n\tconst v1 = new Vec3();\n\tconst v2 = new Vec3();\n\tconst v3 = new Vec3();\n\tconst w1 = new Vec2();\n\tconst w2 = new Vec2();\n\tconst w3 = new Vec2();\n\tconst sdir = new Vec3();\n\tconst tdir = new Vec3();\n\tconst tan1 = new Float32Array(vertexCount * 3);\n\tconst tan2 = new Float32Array(vertexCount * 3);\n\tconst tangents = [];\n\tfor (let i = 0; i < triangleCount; i++) {\n\t\tconst i1 = indices[i * 3];\n\t\tconst i2 = indices[i * 3 + 1];\n\t\tconst i3 = indices[i * 3 + 2];\n\t\tv1.set(positions[i1 * 3], positions[i1 * 3 + 1], positions[i1 * 3 + 2]);\n\t\tv2.set(positions[i2 * 3], positions[i2 * 3 + 1], positions[i2 * 3 + 2]);\n\t\tv3.set(positions[i3 * 3], positions[i3 * 3 + 1], positions[i3 * 3 + 2]);\n\t\tw1.set(uvs[i1 * 2], uvs[i1 * 2 + 1]);\n\t\tw2.set(uvs[i2 * 2], uvs[i2 * 2 + 1]);\n\t\tw3.set(uvs[i3 * 2], uvs[i3 * 2 + 1]);\n\t\tconst x1 = v2.x - v1.x;\n\t\tconst x2 = v3.x - v1.x;\n\t\tconst y1 = v2.y - v1.y;\n\t\tconst y2 = v3.y - v1.y;\n\t\tconst z1 = v2.z - v1.z;\n\t\tconst z2 = v3.z - v1.z;\n\t\tconst s1 = w2.x - w1.x;\n\t\tconst s2 = w3.x - w1.x;\n\t\tconst _t = w2.y - w1.y;\n\t\tconst _t2 = w3.y - w1.y;\n\t\tconst area = s1 * _t2 - s2 * _t;\n\t\tif (area === 0) {\n\t\t\tsdir.set(0, 1, 0);\n\t\t\ttdir.set(1, 0, 0);\n\t\t} else {\n\t\t\tconst r = 1 / area;\n\t\t\tsdir.set((_t2 * x1 - _t * x2) * r, (_t2 * y1 - _t * y2) * r, (_t2 * z1 - _t * z2) * r);\n\t\t\ttdir.set((s1 * x2 - s2 * x1) * r, (s1 * y2 - s2 * y1) * r, (s1 * z2 - s2 * z1) * r);\n\t\t}\n\t\ttan1[i1 * 3 + 0] += sdir.x;\n\t\ttan1[i1 * 3 + 1] += sdir.y;\n\t\ttan1[i1 * 3 + 2] += sdir.z;\n\t\ttan1[i2 * 3 + 0] += sdir.x;\n\t\ttan1[i2 * 3 + 1] += sdir.y;\n\t\ttan1[i2 * 3 + 2] += sdir.z;\n\t\ttan1[i3 * 3 + 0] += sdir.x;\n\t\ttan1[i3 * 3 + 1] += sdir.y;\n\t\ttan1[i3 * 3 + 2] += sdir.z;\n\t\ttan2[i1 * 3 + 0] += tdir.x;\n\t\ttan2[i1 * 3 + 1] += tdir.y;\n\t\ttan2[i1 * 3 + 2] += tdir.z;\n\t\ttan2[i2 * 3 + 0] += tdir.x;\n\t\ttan2[i2 * 3 + 1] += tdir.y;\n\t\ttan2[i2 * 3 + 2] += tdir.z;\n\t\ttan2[i3 * 3 + 0] += tdir.x;\n\t\ttan2[i3 * 3 + 1] += tdir.y;\n\t\ttan2[i3 * 3 + 2] += tdir.z;\n\t}\n\tconst t1 = new Vec3();\n\tconst t2 = new Vec3();\n\tconst n = new Vec3();\n\tconst temp = new Vec3();\n\tfor (let i = 0; i < vertexCount; i++) {\n\t\tn.set(normals[i * 3], normals[i * 3 + 1], normals[i * 3 + 2]);\n\t\tt1.set(tan1[i * 3], tan1[i * 3 + 1], tan1[i * 3 + 2]);\n\t\tt2.set(tan2[i * 3], tan2[i * 3 + 1], tan2[i * 3 + 2]);\n\t\tconst ndott = n.dot(t1);\n\t\ttemp.copy(n).mulScalar(ndott);\n\t\ttemp.sub2(t1, temp).normalize();\n\t\ttangents[i * 4] = temp.x;\n\t\ttangents[i * 4 + 1] = temp.y;\n\t\ttangents[i * 4 + 2] = temp.z;\n\t\ttemp.cross(n, t1);\n\t\ttangents[i * 4 + 3] = temp.dot(t2) < 0.0 ? -1.0 : 1.0;\n\t}\n\treturn tangents;\n};\n\nclass Geometry {\n\tconstructor() {\n\t\tthis.positions = void 0;\n\t\tthis.normals = void 0;\n\t\tthis.colors = void 0;\n\t\tthis.uvs = void 0;\n\t\tthis.uvs1 = void 0;\n\t\tthis.blendIndices = void 0;\n\t\tthis.blendWeights = void 0;\n\t\tthis.tangents = void 0;\n\t\tthis.indices = void 0;\n\t}\n\tcalculateNormals() {\n\t\tthis.normals = calculateNormals(this.positions, this.indices);\n\t}\n\tcalculateTangents() {\n\t\tthis.tangents = calculateTangents(this.positions, this.normals, this.uvs, this.indices);\n\t}\n}\n\nconst primitiveUv1Padding$1 = 4.0 / 64;\nconst primitiveUv1PaddingScale$1 = 1.0 - primitiveUv1Padding$1 * 2;\nclass BoxGeometry extends Geometry {\n\tconstructor(opts = {}) {\n\t\tvar _opts$halfExtents, _opts$widthSegments, _opts$lengthSegments, _opts$heightSegments, _opts$yOffset;\n\t\tsuper();\n\t\tconst he = (_opts$halfExtents = opts.halfExtents) != null ? _opts$halfExtents : new Vec3(0.5, 0.5, 0.5);\n\t\tconst ws = (_opts$widthSegments = opts.widthSegments) != null ? _opts$widthSegments : 1;\n\t\tconst ls = (_opts$lengthSegments = opts.lengthSegments) != null ? _opts$lengthSegments : 1;\n\t\tconst hs = (_opts$heightSegments = opts.heightSegments) != null ? _opts$heightSegments : 1;\n\t\tconst yOffset = (_opts$yOffset = opts.yOffset) != null ? _opts$yOffset : 0;\n\t\tconst minY = -he.y + yOffset;\n\t\tconst maxY = he.y + yOffset;\n\t\tconst corners = [new Vec3(-he.x, minY, he.z), new Vec3(he.x, minY, he.z), new Vec3(he.x, maxY, he.z), new Vec3(-he.x, maxY, he.z), new Vec3(he.x, minY, -he.z), new Vec3(-he.x, minY, -he.z), new Vec3(-he.x, maxY, -he.z), new Vec3(he.x, maxY, -he.z)];\n\t\tconst faceAxes = [[0, 1, 3], [4, 5, 7], [3, 2, 6], [1, 0, 4], [1, 4, 2], [5, 0, 6]];\n\t\tconst faceNormals = [[0, 0, 1], [0, 0, -1], [0, 1, 0], [0, -1, 0], [1, 0, 0], [-1, 0, 0]];\n\t\tconst sides = {\n\t\t\tFRONT: 0,\n\t\t\tBACK: 1,\n\t\t\tTOP: 2,\n\t\t\tBOTTOM: 3,\n\t\t\tRIGHT: 4,\n\t\t\tLEFT: 5\n\t\t};\n\t\tconst positions = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\t\tconst indices = [];\n\t\tlet vcounter = 0;\n\t\tconst generateFace = (side, uSegments, vSegments) => {\n\t\t\tconst temp1 = new Vec3();\n\t\t\tconst temp2 = new Vec3();\n\t\t\tconst temp3 = new Vec3();\n\t\t\tconst r = new Vec3();\n\t\t\tfor (let i = 0; i <= uSegments; i++) {\n\t\t\t\tfor (let j = 0; j <= vSegments; j++) {\n\t\t\t\t\ttemp1.lerp(corners[faceAxes[side][0]], corners[faceAxes[side][1]], i / uSegments);\n\t\t\t\t\ttemp2.lerp(corners[faceAxes[side][0]], corners[faceAxes[side][2]], j / vSegments);\n\t\t\t\t\ttemp3.sub2(temp2, corners[faceAxes[side][0]]);\n\t\t\t\t\tr.add2(temp1, temp3);\n\t\t\t\t\tlet u = i / uSegments;\n\t\t\t\t\tlet v = j / vSegments;\n\t\t\t\t\tpositions.push(r.x, r.y, r.z);\n\t\t\t\t\tnormals.push(faceNormals[side][0], faceNormals[side][1], faceNormals[side][2]);\n\t\t\t\t\tuvs.push(u, 1 - v);\n\t\t\t\t\tu = u * primitiveUv1PaddingScale$1 + primitiveUv1Padding$1;\n\t\t\t\t\tv = v * primitiveUv1PaddingScale$1 + primitiveUv1Padding$1;\n\t\t\t\t\tu /= 3;\n\t\t\t\t\tv /= 3;\n\t\t\t\t\tu += side % 3 / 3;\n\t\t\t\t\tv += Math.floor(side / 3) / 3;\n\t\t\t\t\tif (i < uSegments && j < vSegments) {\n\t\t\t\t\t\tindices.push(vcounter + vSegments + 1, vcounter + 1, vcounter);\n\t\t\t\t\t\tindices.push(vcounter + vSegments + 1, vcounter + vSegments + 2, vcounter + 1);\n\t\t\t\t\t}\n\t\t\t\t\tvcounter++;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tgenerateFace(sides.FRONT, ws, hs);\n\t\tgenerateFace(sides.BACK, ws, hs);\n\t\tgenerateFace(sides.TOP, ws, ls);\n\t\tgenerateFace(sides.BOTTOM, ws, ls);\n\t\tgenerateFace(sides.RIGHT, ls, hs);\n\t\tgenerateFace(sides.LEFT, ls, hs);\n\t\tthis.positions = positions;\n\t\tthis.normals = normals;\n\t\tthis.uvs = uvs;\n\t\tthis.uvs1 = uvs;\n\t\tthis.indices = indices;\n\t\tif (opts.calculateTangents) {\n\t\t\tthis.tangents = calculateTangents(positions, normals, uvs, indices);\n\t\t}\n\t}\n}\n\nclass SphereGeometry extends Geometry {\n\tconstructor(opts = {}) {\n\t\tvar _opts$radius, _opts$latitudeBands, _opts$longitudeBands;\n\t\tsuper();\n\t\tconst radius = (_opts$radius = opts.radius) != null ? _opts$radius : 0.5;\n\t\tconst latitudeBands = (_opts$latitudeBands = opts.latitudeBands) != null ? _opts$latitudeBands : 16;\n\t\tconst longitudeBands = (_opts$longitudeBands = opts.longitudeBands) != null ? _opts$longitudeBands : 16;\n\t\tconst positions = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\t\tconst indices = [];\n\t\tfor (let lat = 0; lat <= latitudeBands; lat++) {\n\t\t\tconst theta = lat * Math.PI / latitudeBands;\n\t\t\tconst sinTheta = Math.sin(theta);\n\t\t\tconst cosTheta = Math.cos(theta);\n\t\t\tfor (let lon = 0; lon <= longitudeBands; lon++) {\n\t\t\t\tconst phi = lon * 2 * Math.PI / longitudeBands - Math.PI / 2;\n\t\t\t\tconst sinPhi = Math.sin(phi);\n\t\t\t\tconst cosPhi = Math.cos(phi);\n\t\t\t\tconst x = cosPhi * sinTheta;\n\t\t\t\tconst y = cosTheta;\n\t\t\t\tconst z = sinPhi * sinTheta;\n\t\t\t\tconst u = 1 - lon / longitudeBands;\n\t\t\t\tconst v = 1 - lat / latitudeBands;\n\t\t\t\tpositions.push(x * radius, y * radius, z * radius);\n\t\t\t\tnormals.push(x, y, z);\n\t\t\t\tuvs.push(u, 1 - v);\n\t\t\t}\n\t\t}\n\t\tfor (let lat = 0; lat < latitudeBands; ++lat) {\n\t\t\tfor (let lon = 0; lon < longitudeBands; ++lon) {\n\t\t\t\tconst first = lat * (longitudeBands + 1) + lon;\n\t\t\t\tconst second = first + longitudeBands + 1;\n\t\t\t\tindices.push(first + 1, second, first);\n\t\t\t\tindices.push(first + 1, second + 1, second);\n\t\t\t}\n\t\t}\n\t\tthis.positions = positions;\n\t\tthis.normals = normals;\n\t\tthis.uvs = uvs;\n\t\tthis.uvs1 = uvs;\n\t\tthis.indices = indices;\n\t\tif (opts.calculateTangents) {\n\t\t\tthis.tangents = calculateTangents(positions, normals, uvs, indices);\n\t\t}\n\t}\n}\n\nclass DomeGeometry extends SphereGeometry {\n\tconstructor(opts = {}) {\n\t\tvar _opts$latitudeBands, _opts$longitudeBands;\n\t\tconst radius = 0.5;\n\t\tconst latitudeBands = (_opts$latitudeBands = opts.latitudeBands) != null ? _opts$latitudeBands : 16;\n\t\tconst longitudeBands = (_opts$longitudeBands = opts.longitudeBands) != null ? _opts$longitudeBands : 16;\n\t\tsuper({\n\t\t\tradius,\n\t\t\tlatitudeBands,\n\t\t\tlongitudeBands\n\t\t});\n\t\tconst bottomLimit = 0.1;\n\t\tconst curvatureRadius = 0.95;\n\t\tconst curvatureRadiusSq = curvatureRadius * curvatureRadius;\n\t\tconst positions = this.positions;\n\t\tfor (let i = 0; i < positions.length; i += 3) {\n\t\t\tconst x = positions[i] / radius;\n\t\t\tlet y = positions[i + 1] / radius;\n\t\t\tconst z = positions[i + 2] / radius;\n\t\t\tif (y < 0) {\n\t\t\t\ty *= 0.3;\n\t\t\t\tif (x * x + z * z < curvatureRadiusSq) {\n\t\t\t\t\ty = -bottomLimit;\n\t\t\t\t}\n\t\t\t}\n\t\t\ty += bottomLimit;\n\t\t\ty *= radius;\n\t\t\tpositions[i + 1] = y;\n\t\t}\n\t}\n}\n\nclass SkyGeometry {\n\tstatic create(device, type) {\n\t\tswitch (type) {\n\t\t\tcase SKYTYPE_BOX:\n\t\t\t\treturn SkyGeometry.box(device);\n\t\t\tcase SKYTYPE_DOME:\n\t\t\t\treturn SkyGeometry.dome(device);\n\t\t}\n\t\treturn SkyGeometry.infinite(device);\n\t}\n\tstatic infinite(device) {\n\t\treturn Mesh.fromGeometry(device, new BoxGeometry(device));\n\t}\n\tstatic box(device) {\n\t\treturn Mesh.fromGeometry(device, new BoxGeometry({\n\t\t\tyOffset: 0.5\n\t\t}));\n\t}\n\tstatic dome(device) {\n\t\tconst geom = new DomeGeometry({\n\t\t\tlatitudeBands: 50,\n\t\t\tlongitudeBands: 50\n\t\t});\n\t\tgeom.normals = undefined;\n\t\tgeom.uvs = undefined;\n\t\treturn Mesh.fromGeometry(device, geom);\n\t}\n}\n\nclass SkyMesh {\n\tconstructor(device, scene, node, texture, type) {\n\t\tthis.meshInstance = null;\n\t\tconst material = new Material();\n\t\tmaterial.name = 'SkyMaterial';\n\t\tmaterial.getShaderVariant = function (dev, sc, defs, unused, pass, sortedLights, viewUniformFormat, viewBindGroupFormat) {\n\t\t\tconst options = {\n\t\t\t\tpass: pass,\n\t\t\t\tencoding: texture.encoding,\n\t\t\t\tgamma: pass === SHADER_FORWARDHDR ? scene.gammaCorrection ? GAMMA_SRGBHDR : GAMMA_NONE : scene.gammaCorrection,\n\t\t\t\ttoneMapping: pass === SHADER_FORWARDHDR ? TONEMAP_LINEAR : scene.toneMapping,\n\t\t\t\tskymesh: type\n\t\t\t};\n\t\t\tif (texture.cubemap) {\n\t\t\t\toptions.type = 'cubemap';\n\t\t\t\toptions.mip = texture.fixCubemapSeams ? scene.skyboxMip : 0;\n\t\t\t\toptions.fixSeams = texture.fixCubemapSeams;\n\t\t\t} else {\n\t\t\t\toptions.type = 'envAtlas';\n\t\t\t}\n\t\t\tconst processingOptions = new ShaderProcessorOptions(viewUniformFormat, viewBindGroupFormat);\n\t\t\tconst library = getProgramLibrary(device);\n\t\t\tlibrary.register('skybox', skybox);\n\t\t\treturn library.getProgram('skybox', options, processingOptions);\n\t\t};\n\t\tif (texture.cubemap) {\n\t\t\tmaterial.setParameter('texture_cubeMap', texture);\n\t\t} else {\n\t\t\tmaterial.setParameter('texture_envAtlas', texture);\n\t\t\tmaterial.setParameter('mipLevel', scene._skyboxMip);\n\t\t}\n\t\tmaterial.cull = CULLFACE_FRONT;\n\t\tmaterial.depthWrite = false;\n\t\tconst skyLayer = scene.layers.getLayerById(LAYERID_SKYBOX);\n\t\tif (skyLayer) {\n\t\t\tconst mesh = SkyGeometry.create(device, type);\n\t\t\tconst meshInstance = new MeshInstance(mesh, material, node);\n\t\t\tthis.meshInstance = meshInstance;\n\t\t\tmeshInstance.cull = false;\n\t\t\tmeshInstance.pick = false;\n\t\t\tskyLayer.addMeshInstances([meshInstance]);\n\t\t\tthis.skyLayer = skyLayer;\n\t\t}\n\t}\n\tdestroy() {\n\t\tif (this.meshInstance) {\n\t\t\tif (this.skyLayer) {\n\t\t\t\tthis.skyLayer.removeMeshInstances([this.meshInstance]);\n\t\t\t}\n\t\t\tthis.meshInstance.destroy();\n\t\t\tthis.meshInstance = null;\n\t\t}\n\t}\n}\n\nclass Sky {\n\tconstructor(scene) {\n\t\tthis._type = SKYTYPE_INFINITE;\n\t\tthis._center = new Vec3(0, 1, 0);\n\t\tthis.skyMesh = null;\n\t\tthis.node = new GraphNode('SkyMeshNode');\n\t\tthis.device = scene.device;\n\t\tthis.scene = scene;\n\t\tthis.center = new Vec3(0, 1, 0);\n\t\tthis.centerArray = new Float32Array(3);\n\t\tthis.projectedSkydomeCenterId = this.device.scope.resolve('projectedSkydomeCenter');\n\t}\n\tapplySettings(render) {\n\t\tvar _render$skyType, _render$skyMeshPositi, _render$skyMeshRotati, _render$skyMeshScale;\n\t\tthis.type = (_render$skyType = render.skyType) != null ? _render$skyType : SKYTYPE_INFINITE;\n\t\tthis.node.setLocalPosition(new Vec3((_render$skyMeshPositi = render.skyMeshPosition) != null ? _render$skyMeshPositi : [0, 0, 0]));\n\t\tthis.node.setLocalEulerAngles(new Vec3((_render$skyMeshRotati = render.skyMeshRotation) != null ? _render$skyMeshRotati : [0, 0, 0]));\n\t\tthis.node.setLocalScale(new Vec3((_render$skyMeshScale = render.skyMeshScale) != null ? _render$skyMeshScale : [1, 1, 1]));\n\t\tif (render.skyCenter) {\n\t\t\tthis._center = new Vec3(render.skyCenter);\n\t\t}\n\t}\n\tset type(value) {\n\t\tif (this._type !== value) {\n\t\t\tthis._type = value;\n\t\t\tthis.scene.updateShaders = true;\n\t\t\tthis.updateSkyMesh();\n\t\t}\n\t}\n\tget type() {\n\t\treturn this._type;\n\t}\n\tset center(value) {\n\t\tthis._center.copy(value);\n\t}\n\tget center() {\n\t\treturn this._center;\n\t}\n\tupdateSkyMesh() {\n\t\tconst texture = this.scene._getSkyboxTex();\n\t\tif (texture) {\n\t\t\tthis.resetSkyMesh();\n\t\t\tthis.skyMesh = new SkyMesh(this.device, this.scene, this.node, texture, this.type);\n\t\t\tthis.scene.fire('set:skybox', texture);\n\t\t}\n\t}\n\tresetSkyMesh() {\n\t\tvar _this$skyMesh;\n\t\t(_this$skyMesh = this.skyMesh) == null || _this$skyMesh.destroy();\n\t\tthis.skyMesh = null;\n\t}\n\tupdate() {\n\t\tif (this.type !== SKYTYPE_INFINITE) {\n\t\t\tconst {\n\t\t\t\tcenter,\n\t\t\t\tcenterArray\n\t\t\t} = this;\n\t\t\tconst temp = new Vec3();\n\t\t\tthis.node.getWorldTransform().transformPoint(center, temp);\n\t\t\tcenterArray[0] = temp.x;\n\t\t\tcenterArray[1] = temp.y;\n\t\t\tcenterArray[2] = temp.z;\n\t\t\tthis.projectedSkydomeCenterId.setValue(centerArray);\n\t\t}\n\t}\n}\n\nconst identityGraphNode = new GraphNode();\nidentityGraphNode.worldTransform = Mat4.IDENTITY;\nidentityGraphNode._dirtyWorld = identityGraphNode._dirtyNormal = false;\nclass ImmediateBatch {\n\tconstructor(device, material, layer) {\n\t\tthis.material = material;\n\t\tthis.layer = layer;\n\t\tthis.positions = [];\n\t\tthis.colors = [];\n\t\tthis.mesh = new Mesh(device);\n\t\tthis.meshInstance = null;\n\t}\n\taddLines(positions, color) {\n\t\tconst destPos = this.positions;\n\t\tconst count = positions.length;\n\t\tfor (let i = 0; i < count; i++) {\n\t\t\tconst pos = positions[i];\n\t\t\tdestPos.push(pos.x, pos.y, pos.z);\n\t\t}\n\t\tconst destCol = this.colors;\n\t\tif (color.length) {\n\t\t\tfor (let i = 0; i < count; i++) {\n\t\t\t\tconst col = color[i];\n\t\t\t\tdestCol.push(col.r, col.g, col.b, col.a);\n\t\t\t}\n\t\t} else {\n\t\t\tfor (let i = 0; i < count; i++) {\n\t\t\t\tdestCol.push(color.r, color.g, color.b, color.a);\n\t\t\t}\n\t\t}\n\t}\n\taddLinesArrays(positions, color) {\n\t\tconst destPos = this.positions;\n\t\tfor (let i = 0; i < positions.length; i += 3) {\n\t\t\tdestPos.push(positions[i], positions[i + 1], positions[i + 2]);\n\t\t}\n\t\tconst destCol = this.colors;\n\t\tif (color.length) {\n\t\t\tfor (let i = 0; i < color.length; i += 4) {\n\t\t\t\tdestCol.push(color[i], color[i + 1], color[i + 2], color[i + 3]);\n\t\t\t}\n\t\t} else {\n\t\t\tconst count = positions.length / 3;\n\t\t\tfor (let i = 0; i < count; i++) {\n\t\t\t\tdestCol.push(color.r, color.g, color.b, color.a);\n\t\t\t}\n\t\t}\n\t}\n\tonPreRender(visibleList, transparent) {\n\t\tif (this.positions.length > 0 && this.material.transparent === transparent) {\n\t\t\tthis.mesh.setPositions(this.positions);\n\t\t\tthis.mesh.setColors(this.colors);\n\t\t\tthis.mesh.update(PRIMITIVE_LINES, false);\n\t\t\tif (!this.meshInstance) {\n\t\t\t\tthis.meshInstance = new MeshInstance(this.mesh, this.material, identityGraphNode);\n\t\t\t}\n\t\t\tvisibleList.push(this.meshInstance);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.positions.length = 0;\n\t\tthis.colors.length = 0;\n\t}\n}\n\nclass ImmediateBatches {\n\tconstructor(device) {\n\t\tthis.device = device;\n\t\tthis.map = new Map();\n\t}\n\tgetBatch(material, layer) {\n\t\tlet batch = this.map.get(material);\n\t\tif (!batch) {\n\t\t\tbatch = new ImmediateBatch(this.device, material, layer);\n\t\t\tthis.map.set(material, batch);\n\t\t}\n\t\treturn batch;\n\t}\n\tonPreRender(visibleList, transparent) {\n\t\tthis.map.forEach(batch => {\n\t\t\tbatch.onPreRender(visibleList, transparent);\n\t\t});\n\t}\n\tclear() {\n\t\tthis.map.forEach(batch => batch.clear());\n\t}\n}\n\nconst tempPoints = [];\nconst vec = new Vec3();\nclass Immediate {\n\tconstructor(device) {\n\t\tthis.device = device;\n\t\tthis.quadMesh = null;\n\t\tthis.textureShader = null;\n\t\tthis.depthTextureShader = null;\n\t\tthis.cubeLocalPos = null;\n\t\tthis.cubeWorldPos = null;\n\t\tthis.batchesMap = new Map();\n\t\tthis.allBatches = new Set();\n\t\tthis.updatedLayers = new Set();\n\t\tthis._materialDepth = null;\n\t\tthis._materialNoDepth = null;\n\t\tthis.layerMeshInstances = new Map();\n\t}\n\tcreateMaterial(depthTest) {\n\t\tconst material = new BasicMaterial();\n\t\tmaterial.vertexColors = true;\n\t\tmaterial.blendType = BLEND_NORMAL;\n\t\tmaterial.depthTest = depthTest;\n\t\tmaterial.update();\n\t\treturn material;\n\t}\n\tget materialDepth() {\n\t\tif (!this._materialDepth) {\n\t\t\tthis._materialDepth = this.createMaterial(true);\n\t\t}\n\t\treturn this._materialDepth;\n\t}\n\tget materialNoDepth() {\n\t\tif (!this._materialNoDepth) {\n\t\t\tthis._materialNoDepth = this.createMaterial(false);\n\t\t}\n\t\treturn this._materialNoDepth;\n\t}\n\tgetBatch(layer, depthTest) {\n\t\tlet batches = this.batchesMap.get(layer);\n\t\tif (!batches) {\n\t\t\tbatches = new ImmediateBatches(this.device);\n\t\t\tthis.batchesMap.set(layer, batches);\n\t\t}\n\t\tthis.allBatches.add(batches);\n\t\tconst material = depthTest ? this.materialDepth : this.materialNoDepth;\n\t\treturn batches.getBatch(material, layer);\n\t}\n\tgetShader(id, fragment) {\n\t\tif (!this[id]) {\n\t\t\tconst vertex = `\n\t\t\t\tattribute vec2 vertex_position;\n\t\t\t\tuniform mat4 matrix_model;\n\t\t\t\tvarying vec2 uv0;\n\t\t\t\tvoid main(void) {\n\t\t\t\t\tgl_Position = matrix_model * vec4(vertex_position, 0, 1);\n\t\t\t\t\tuv0 = vertex_position.xy + 0.5;\n\t\t\t\t}\n\t\t\t`;\n\t\t\tthis[id] = createShaderFromCode(this.device, vertex, fragment, `DebugShader:${id}`);\n\t\t}\n\t\treturn this[id];\n\t}\n\tgetTextureShader() {\n\t\treturn this.getShader('textureShader', `\n\t\t\tvarying vec2 uv0;\n\t\t\tuniform sampler2D colorMap;\n\t\t\tvoid main (void) {\n\t\t\t\tgl_FragColor = vec4(texture2D(colorMap, uv0).xyz, 1);\n\t\t\t}\n\t\t`);\n\t}\n\tgetUnfilterableTextureShader() {\n\t\treturn this.getShader('textureShaderUnfilterable', `\n\t\t\tvarying vec2 uv0;\n\t\t\tuniform highp sampler2D colorMap;\n\t\t\tvoid main (void) {\n\t\t\t\tivec2 uv = ivec2(uv0 * textureSize(colorMap, 0));\n\t\t\t\tgl_FragColor = vec4(texelFetch(colorMap, uv, 0).xyz, 1);\n\t\t\t}\n\t\t`);\n\t}\n\tgetDepthTextureShader() {\n\t\treturn this.getShader('depthTextureShader', `\n\t\t\t${shaderChunks.screenDepthPS}\n\t\t\tvarying vec2 uv0;\n\t\t\tvoid main() {\n\t\t\t\tfloat depth = getLinearScreenDepth(getImageEffectUV(uv0)) * camera_params.x;\n\t\t\t\tgl_FragColor = vec4(vec3(depth), 1.0);\n\t\t\t}\n\t\t`);\n\t}\n\tgetQuadMesh() {\n\t\tif (!this.quadMesh) {\n\t\t\tthis.quadMesh = new Mesh(this.device);\n\t\t\tthis.quadMesh.setPositions([-0.5, -0.5, 0, 0.5, -0.5, 0, -0.5, 0.5, 0, 0.5, 0.5, 0]);\n\t\t\tthis.quadMesh.update(PRIMITIVE_TRISTRIP);\n\t\t}\n\t\treturn this.quadMesh;\n\t}\n\tdrawMesh(material, matrix, mesh, meshInstance, layer) {\n\t\tif (!meshInstance) {\n\t\t\tconst graphNode = this.getGraphNode(matrix);\n\t\t\tmeshInstance = new MeshInstance(mesh, material, graphNode);\n\t\t}\n\t\tlet layerMeshInstances = this.layerMeshInstances.get(layer);\n\t\tif (!layerMeshInstances) {\n\t\t\tlayerMeshInstances = [];\n\t\t\tthis.layerMeshInstances.set(layer, layerMeshInstances);\n\t\t}\n\t\tlayerMeshInstances.push(meshInstance);\n\t}\n\tdrawWireAlignedBox(min, max, color, depthTest, layer, mat) {\n\t\tif (mat) {\n\t\t\tconst mulPoint = (x, y, z) => {\n\t\t\t\tvec.set(x, y, z);\n\t\t\t\tmat.transformPoint(vec, vec);\n\t\t\t\ttempPoints.push(vec.x, vec.y, vec.z);\n\t\t\t};\n\t\t\tmulPoint(min.x, min.y, min.z);\n\t\t\tmulPoint(min.x, max.y, min.z);\n\t\t\tmulPoint(min.x, max.y, min.z);\n\t\t\tmulPoint(max.x, max.y, min.z);\n\t\t\tmulPoint(max.x, max.y, min.z);\n\t\t\tmulPoint(max.x, min.y, min.z);\n\t\t\tmulPoint(max.x, min.y, min.z);\n\t\t\tmulPoint(min.x, min.y, min.z);\n\t\t\tmulPoint(min.x, min.y, max.z);\n\t\t\tmulPoint(min.x, max.y, max.z);\n\t\t\tmulPoint(min.x, max.y, max.z);\n\t\t\tmulPoint(max.x, max.y, max.z);\n\t\t\tmulPoint(max.x, max.y, max.z);\n\t\t\tmulPoint(max.x, min.y, max.z);\n\t\t\tmulPoint(max.x, min.y, max.z);\n\t\t\tmulPoint(min.x, min.y, max.z);\n\t\t\tmulPoint(min.x, min.y, min.z);\n\t\t\tmulPoint(min.x, min.y, max.z);\n\t\t\tmulPoint(min.x, max.y, min.z);\n\t\t\tmulPoint(min.x, max.y, max.z);\n\t\t\tmulPoint(max.x, max.y, min.z);\n\t\t\tmulPoint(max.x, max.y, max.z);\n\t\t\tmulPoint(max.x, min.y, min.z);\n\t\t\tmulPoint(max.x, min.y, max.z);\n\t\t} else {\n\t\t\ttempPoints.push(min.x, min.y, min.z, min.x, max.y, min.z, min.x, max.y, min.z, max.x, max.y, min.z, max.x, max.y, min.z, max.x, min.y, min.z, max.x, min.y, min.z, min.x, min.y, min.z, min.x, min.y, max.z, min.x, max.y, max.z, min.x, max.y, max.z, max.x, max.y, max.z, max.x, max.y, max.z, max.x, min.y, max.z, max.x, min.y, max.z, min.x, min.y, max.z, min.x, min.y, min.z, min.x, min.y, max.z, min.x, max.y, min.z, min.x, max.y, max.z, max.x, max.y, min.z, max.x, max.y, max.z, max.x, min.y, min.z, max.x, min.y, max.z);\n\t\t}\n\t\tconst batch = this.getBatch(layer, depthTest);\n\t\tbatch.addLinesArrays(tempPoints, color);\n\t\ttempPoints.length = 0;\n\t}\n\tdrawWireSphere(center, radius, color, numSegments, depthTest, layer) {\n\t\tconst step = 2 * Math.PI / numSegments;\n\t\tlet angle = 0;\n\t\tfor (let i = 0; i < numSegments; i++) {\n\t\t\tconst sin0 = Math.sin(angle);\n\t\t\tconst cos0 = Math.cos(angle);\n\t\t\tangle += step;\n\t\t\tconst sin1 = Math.sin(angle);\n\t\t\tconst cos1 = Math.cos(angle);\n\t\t\ttempPoints.push(center.x + radius * sin0, center.y, center.z + radius * cos0);\n\t\t\ttempPoints.push(center.x + radius * sin1, center.y, center.z + radius * cos1);\n\t\t\ttempPoints.push(center.x + radius * sin0, center.y + radius * cos0, center.z);\n\t\t\ttempPoints.push(center.x + radius * sin1, center.y + radius * cos1, center.z);\n\t\t\ttempPoints.push(center.x, center.y + radius * sin0, center.z + radius * cos0);\n\t\t\ttempPoints.push(center.x, center.y + radius * sin1, center.z + radius * cos1);\n\t\t}\n\t\tconst batch = this.getBatch(layer, depthTest);\n\t\tbatch.addLinesArrays(tempPoints, color);\n\t\ttempPoints.length = 0;\n\t}\n\tgetGraphNode(matrix) {\n\t\tconst graphNode = new GraphNode('ImmediateDebug');\n\t\tgraphNode.worldTransform = matrix;\n\t\tgraphNode._dirtyWorld = graphNode._dirtyNormal = false;\n\t\treturn graphNode;\n\t}\n\tonPreRenderLayer(layer, visibleList, transparent) {\n\t\tthis.batchesMap.forEach((batches, batchLayer) => {\n\t\t\tif (batchLayer === layer) {\n\t\t\t\tbatches.onPreRender(visibleList, transparent);\n\t\t\t}\n\t\t});\n\t\tif (!this.updatedLayers.has(layer)) {\n\t\t\tthis.updatedLayers.add(layer);\n\t\t\tconst meshInstances = this.layerMeshInstances.get(layer);\n\t\t\tif (meshInstances) {\n\t\t\t\tfor (let i = 0; i < meshInstances.length; i++) {\n\t\t\t\t\tvisibleList.push(meshInstances[i]);\n\t\t\t\t}\n\t\t\t\tmeshInstances.length = 0;\n\t\t\t}\n\t\t}\n\t}\n\tonPostRender() {\n\t\tthis.allBatches.forEach(batch => batch.clear());\n\t\tthis.allBatches.clear();\n\t\tthis.updatedLayers.clear();\n\t}\n}\n\nconst _goldenAngle = 2.399963229728653;\nconst random = {\n\tcirclePoint(point) {\n\t\tconst r = Math.sqrt(Math.random());\n\t\tconst theta = Math.random() * 2 * Math.PI;\n\t\tpoint.x = r * Math.cos(theta);\n\t\tpoint.y = r * Math.sin(theta);\n\t},\n\tcirclePointDeterministic(point, index, numPoints) {\n\t\tconst theta = index * _goldenAngle;\n\t\tconst r = Math.sqrt(index) / Math.sqrt(numPoints);\n\t\tpoint.x = r * Math.cos(theta);\n\t\tpoint.y = r * Math.sin(theta);\n\t},\n\tspherePointDeterministic(point, index, numPoints, start = 0, end = 1) {\n\t\tstart = 1 - 2 * start;\n\t\tend = 1 - 2 * end;\n\t\tconst y = math.lerp(start, end, index / numPoints);\n\t\tconst radius = Math.sqrt(1 - y * y);\n\t\tconst theta = _goldenAngle * index;\n\t\tpoint.x = Math.cos(theta) * radius;\n\t\tpoint.y = y;\n\t\tpoint.z = Math.sin(theta) * radius;\n\t},\n\tradicalInverse(i) {\n\t\tlet bits = (i << 16 | i >>> 16) >>> 0;\n\t\tbits = ((bits & 0x55555555) << 1 | (bits & 0xAAAAAAAA) >>> 1) >>> 0;\n\t\tbits = ((bits & 0x33333333) << 2 | (bits & 0xCCCCCCCC) >>> 2) >>> 0;\n\t\tbits = ((bits & 0x0F0F0F0F) << 4 | (bits & 0xF0F0F0F0) >>> 4) >>> 0;\n\t\tbits = ((bits & 0x00FF00FF) << 8 | (bits & 0xFF00FF00) >>> 8) >>> 0;\n\t\treturn bits * 2.3283064365386963e-10;\n\t}\n};\n\nconst getProjectionName = projection => {\n\tswitch (projection) {\n\t\tcase TEXTUREPROJECTION_CUBE:\n\t\t\treturn 'Cubemap';\n\t\tcase TEXTUREPROJECTION_OCTAHEDRAL:\n\t\t\treturn 'Octahedral';\n\t\tdefault:\n\t\t\treturn 'Equirect';\n\t}\n};\nconst packFloat32ToRGBA8 = (value, array, offset) => {\n\tif (value <= 0) {\n\t\tarray[offset + 0] = 0;\n\t\tarray[offset + 1] = 0;\n\t\tarray[offset + 2] = 0;\n\t\tarray[offset + 3] = 0;\n\t} else if (value >= 1.0) {\n\t\tarray[offset + 0] = 255;\n\t\tarray[offset + 1] = 0;\n\t\tarray[offset + 2] = 0;\n\t\tarray[offset + 3] = 0;\n\t} else {\n\t\tlet encX = 1 * value % 1;\n\t\tlet encY = 255 * value % 1;\n\t\tlet encZ = 65025 * value % 1;\n\t\tconst encW = 16581375.0 * value % 1;\n\t\tencX -= encY / 255;\n\t\tencY -= encZ / 255;\n\t\tencZ -= encW / 255;\n\t\tarray[offset + 0] = Math.min(255, Math.floor(encX * 256));\n\t\tarray[offset + 1] = Math.min(255, Math.floor(encY * 256));\n\t\tarray[offset + 2] = Math.min(255, Math.floor(encZ * 256));\n\t\tarray[offset + 3] = Math.min(255, Math.floor(encW * 256));\n\t}\n};\nconst packSamples = samples => {\n\tconst numSamples = samples.length;\n\tconst w = Math.min(numSamples, 512);\n\tconst h = Math.ceil(numSamples / w);\n\tconst data = new Uint8Array(w * h * 4);\n\tlet off = 0;\n\tfor (let i = 0; i < numSamples; i += 4) {\n\t\tpackFloat32ToRGBA8(samples[i + 0] * 0.5 + 0.5, data, off + 0);\n\t\tpackFloat32ToRGBA8(samples[i + 1] * 0.5 + 0.5, data, off + 4);\n\t\tpackFloat32ToRGBA8(samples[i + 2] * 0.5 + 0.5, data, off + 8);\n\t\tpackFloat32ToRGBA8(samples[i + 3] / 8, data, off + 12);\n\t\toff += 16;\n\t}\n\treturn {\n\t\twidth: w,\n\t\theight: h,\n\t\tdata: data\n\t};\n};\nconst hemisphereSamplePhong = (dstVec, x, y, specularPower) => {\n\tconst phi = y * 2 * Math.PI;\n\tconst cosTheta = Math.pow(1 - x, 1 / (specularPower + 1));\n\tconst sinTheta = Math.sqrt(1 - cosTheta * cosTheta);\n\tdstVec.set(Math.cos(phi) * sinTheta, Math.sin(phi) * sinTheta, cosTheta).normalize();\n};\nconst hemisphereSampleLambert = (dstVec, x, y) => {\n\tconst phi = y * 2 * Math.PI;\n\tconst cosTheta = Math.sqrt(1 - x);\n\tconst sinTheta = Math.sqrt(x);\n\tdstVec.set(Math.cos(phi) * sinTheta, Math.sin(phi) * sinTheta, cosTheta).normalize();\n};\nconst hemisphereSampleGGX = (dstVec, x, y, a) => {\n\tconst phi = y * 2 * Math.PI;\n\tconst cosTheta = Math.sqrt((1 - x) / (1 + (a * a - 1) * x));\n\tconst sinTheta = Math.sqrt(1 - cosTheta * cosTheta);\n\tdstVec.set(Math.cos(phi) * sinTheta, Math.sin(phi) * sinTheta, cosTheta).normalize();\n};\nconst D_GGX = (NoH, linearRoughness) => {\n\tconst a = NoH * linearRoughness;\n\tconst k = linearRoughness / (1.0 - NoH * NoH + a * a);\n\treturn k * k * (1 / Math.PI);\n};\nconst generatePhongSamples = (numSamples, specularPower) => {\n\tconst H = new Vec3();\n\tconst result = [];\n\tfor (let i = 0; i < numSamples; ++i) {\n\t\themisphereSamplePhong(H, i / numSamples, random.radicalInverse(i), specularPower);\n\t\tresult.push(H.x, H.y, H.z, 0);\n\t}\n\treturn result;\n};\nconst generateLambertSamples = (numSamples, sourceTotalPixels) => {\n\tconst pixelsPerSample = sourceTotalPixels / numSamples;\n\tconst H = new Vec3();\n\tconst result = [];\n\tfor (let i = 0; i < numSamples; ++i) {\n\t\themisphereSampleLambert(H, i / numSamples, random.radicalInverse(i));\n\t\tconst pdf = H.z / Math.PI;\n\t\tconst mipLevel = 0.5 * Math.log2(pixelsPerSample / pdf);\n\t\tresult.push(H.x, H.y, H.z, mipLevel);\n\t}\n\treturn result;\n};\nconst requiredSamplesGGX = {\n\t'16': {\n\t\t'2': 26,\n\t\t'8': 20,\n\t\t'32': 17,\n\t\t'128': 16,\n\t\t'512': 16\n\t},\n\t'32': {\n\t\t'2': 53,\n\t\t'8': 40,\n\t\t'32': 34,\n\t\t'128': 32,\n\t\t'512': 32\n\t},\n\t'128': {\n\t\t'2': 214,\n\t\t'8': 163,\n\t\t'32': 139,\n\t\t'128': 130,\n\t\t'512': 128\n\t},\n\t'1024': {\n\t\t'2': 1722,\n\t\t'8': 1310,\n\t\t'32': 1114,\n\t\t'128': 1041,\n\t\t'512': 1025\n\t}\n};\nconst getRequiredSamplesGGX = (numSamples, specularPower) => {\n\tconst table = requiredSamplesGGX[numSamples];\n\treturn table && table[specularPower] || numSamples;\n};\nconst generateGGXSamples = (numSamples, specularPower, sourceTotalPixels) => {\n\tconst pixelsPerSample = sourceTotalPixels / numSamples;\n\tconst roughness = 1 - Math.log2(specularPower) / 11.0;\n\tconst a = roughness * roughness;\n\tconst H = new Vec3();\n\tconst L = new Vec3();\n\tconst N = new Vec3(0, 0, 1);\n\tconst result = [];\n\tconst requiredSamples = getRequiredSamplesGGX(numSamples, specularPower);\n\tfor (let i = 0; i < requiredSamples; ++i) {\n\t\themisphereSampleGGX(H, i / requiredSamples, random.radicalInverse(i), a);\n\t\tconst NoH = H.z;\n\t\tL.set(H.x, H.y, H.z).mulScalar(2 * NoH).sub(N);\n\t\tif (L.z > 0) {\n\t\t\tconst pdf = D_GGX(Math.min(1, NoH), a) / 4 + 0.001;\n\t\t\tconst mipLevel = 0.5 * Math.log2(pixelsPerSample / pdf);\n\t\t\tresult.push(L.x, L.y, L.z, mipLevel);\n\t\t}\n\t}\n\twhile (result.length < numSamples * 4) {\n\t\tresult.push(0, 0, 0, 0);\n\t}\n\treturn result;\n};\nconst createSamplesTex = (device, name, samples) => {\n\tconst packedSamples = packSamples(samples);\n\treturn new Texture(device, {\n\t\tname: name,\n\t\twidth: packedSamples.width,\n\t\theight: packedSamples.height,\n\t\tmipmaps: false,\n\t\tminFilter: FILTER_NEAREST,\n\t\tmagFilter: FILTER_NEAREST,\n\t\tlevels: [packedSamples.data]\n\t});\n};\nclass SimpleCache {\n\tconstructor(destroyContent = true) {\n\t\tthis.map = new Map();\n\t\tthis.destroyContent = destroyContent;\n\t}\n\tdestroy() {\n\t\tif (this.destroyContent) {\n\t\t\tthis.map.forEach((value, key) => {\n\t\t\t\tvalue.destroy();\n\t\t\t});\n\t\t}\n\t}\n\tget(key, missFunc) {\n\t\tif (!this.map.has(key)) {\n\t\t\tconst result = missFunc();\n\t\t\tthis.map.set(key, result);\n\t\t\treturn result;\n\t\t}\n\t\treturn this.map.get(key);\n\t}\n}\nconst samplesCache = new SimpleCache(false);\nconst deviceCache$1 = new DeviceCache();\nconst getCachedTexture = (device, key, getSamplesFnc) => {\n\tconst cache = deviceCache$1.get(device, () => {\n\t\treturn new SimpleCache();\n\t});\n\treturn cache.get(key, () => {\n\t\treturn createSamplesTex(device, key, samplesCache.get(key, getSamplesFnc));\n\t});\n};\nconst generateLambertSamplesTex = (device, numSamples, sourceTotalPixels) => {\n\tconst key = `lambert-samples-${numSamples}-${sourceTotalPixels}`;\n\treturn getCachedTexture(device, key, () => {\n\t\treturn generateLambertSamples(numSamples, sourceTotalPixels);\n\t});\n};\nconst generatePhongSamplesTex = (device, numSamples, specularPower) => {\n\tconst key = `phong-samples-${numSamples}-${specularPower}`;\n\treturn getCachedTexture(device, key, () => {\n\t\treturn generatePhongSamples(numSamples, specularPower);\n\t});\n};\nconst generateGGXSamplesTex = (device, numSamples, specularPower, sourceTotalPixels) => {\n\tconst key = `ggx-samples-${numSamples}-${specularPower}-${sourceTotalPixels}`;\n\treturn getCachedTexture(device, key, () => {\n\t\treturn generateGGXSamples(numSamples, specularPower, sourceTotalPixels);\n\t});\n};\nconst vsCode = `\nattribute vec2 vertex_position;\n\nuniform vec4 uvMod;\n\nvarying vec2 vUv0;\n\nvoid main(void) {\n\t\tgl_Position = vec4(vertex_position, 0.5, 1.0);\n\t\tvUv0 = getImageEffectUV((vertex_position.xy * 0.5 + 0.5) * uvMod.xy + uvMod.zw);\n}\n`;\nfunction reprojectTexture(source, target, options = {}) {\n\tvar _options$seamPixels, _options$rect$z, _options$rect, _options$rect$w, _options$rect2;\n\tif (source instanceof GraphicsDevice) {\n\t\tsource = arguments[1];\n\t\ttarget = arguments[2];\n\t\toptions = {};\n\t\tif (arguments[3] !== undefined) {\n\t\t\toptions.specularPower = arguments[3];\n\t\t}\n\t\tif (arguments[4] !== undefined) {\n\t\t\toptions.numSamples = arguments[4];\n\t\t}\n\t}\n\tconst seamPixels = (_options$seamPixels = options.seamPixels) != null ? _options$seamPixels : 0;\n\tconst innerWidth = ((_options$rect$z = (_options$rect = options.rect) == null ? void 0 : _options$rect.z) != null ? _options$rect$z : target.width) - seamPixels * 2;\n\tconst innerHeight = ((_options$rect$w = (_options$rect2 = options.rect) == null ? void 0 : _options$rect2.w) != null ? _options$rect$w : target.height) - seamPixels * 2;\n\tif (innerWidth < 1 || innerHeight < 1) {\n\t\treturn false;\n\t}\n\tconst funcNames = {\n\t\t'none': 'reproject',\n\t\t'lambert': 'prefilterSamplesUnweighted',\n\t\t'phong': 'prefilterSamplesUnweighted',\n\t\t'ggx': 'prefilterSamples'\n\t};\n\tconst specularPower = options.hasOwnProperty('specularPower') ? options.specularPower : 1;\n\tconst face = options.hasOwnProperty('face') ? options.face : null;\n\tconst distribution = options.hasOwnProperty('distribution') ? options.distribution : specularPower === 1 ? 'none' : 'phong';\n\tconst processFunc = funcNames[distribution] || 'reproject';\n\tconst prefilterSamples = processFunc.startsWith('prefilterSamples');\n\tconst decodeFunc = ChunkUtils.decodeFunc(source.encoding);\n\tconst encodeFunc = ChunkUtils.encodeFunc(target.encoding);\n\tconst sourceFunc = `sample${getProjectionName(source.projection)}`;\n\tconst targetFunc = `getDirection${getProjectionName(target.projection)}`;\n\tconst numSamples = options.hasOwnProperty('numSamples') ? options.numSamples : 1024;\n\tconst shaderKey = `${processFunc}_${decodeFunc}_${encodeFunc}_${sourceFunc}_${targetFunc}_${numSamples}`;\n\tconst device = source.device;\n\tlet shader = getProgramLibrary(device).getCachedShader(shaderKey);\n\tif (!shader) {\n\t\tconst defines = `#define PROCESS_FUNC ${processFunc}\\n${prefilterSamples ? '#define USE_SAMPLES_TEX\\n' : ''}${source.cubemap ? '#define CUBEMAP_SOURCE\\n' : ''}#define DECODE_FUNC ${decodeFunc}\\n` + `#define ENCODE_FUNC ${encodeFunc}\\n` + `#define SOURCE_FUNC ${sourceFunc}\\n` + `#define TARGET_FUNC ${targetFunc}\\n` + `#define NUM_SAMPLES ${numSamples}\\n` + `#define NUM_SAMPLES_SQRT ${Math.round(Math.sqrt(numSamples)).toFixed(1)}\\n`;\n\t\tshader = createShaderFromCode(device, vsCode, `${defines}\\n${shaderChunks.reprojectPS}`, shaderKey);\n\t}\n\tdevice.setBlendState(BlendState.NOBLEND);\n\tconst constantSource = device.scope.resolve(source.cubemap ? 'sourceCube' : 'sourceTex');\n\tconstantSource.setValue(source);\n\tconst constantParams = device.scope.resolve('params');\n\tdevice.scope.resolve('params2');\n\tconst uvModParam = device.scope.resolve('uvMod');\n\tif (seamPixels > 0) {\n\t\tuvModParam.setValue([(innerWidth + seamPixels * 2) / innerWidth, (innerHeight + seamPixels * 2) / innerHeight, -seamPixels / innerWidth, -seamPixels / innerHeight]);\n\t} else {\n\t\tuvModParam.setValue([1, 1, 0, 0]);\n\t}\n\tconst params = [0, source.fixCubemapSeams ? 1.0 / source.width : 0.0, target.fixCubemapSeams ? 1.0 / target.width : 0.0];\n\tif (prefilterSamples) {\n\t\tconst sourceTotalPixels = source.width * source.height * (source.cubemap ? 6 : 1);\n\t\tconst samplesTex = distribution === 'ggx' ? generateGGXSamplesTex(device, numSamples, specularPower, sourceTotalPixels) : distribution === 'lambert' ? generateLambertSamplesTex(device, numSamples, sourceTotalPixels) : generatePhongSamplesTex(device, numSamples, specularPower);\n\t\tdevice.scope.resolve('samplesTex').setValue(samplesTex);\n\t\tdevice.scope.resolve('samplesTexInverseSize').setValue([1.0 / samplesTex.width, 1.0 / samplesTex.height]);\n\t}\n\tfor (let f = 0; f < (target.cubemap ? 6 : 1); f++) {\n\t\tif (face === null || f === face) {\n\t\t\tvar _options;\n\t\t\tconst renderTarget = new RenderTarget({\n\t\t\t\tcolorBuffer: target,\n\t\t\t\tface: f,\n\t\t\t\tdepth: false,\n\t\t\t\tflipY: device.isWebGPU\n\t\t\t});\n\t\t\tparams[0] = f;\n\t\t\tconstantParams.setValue(params);\n\t\t\tdrawQuadWithShader(device, renderTarget, shader, (_options = options) == null ? void 0 : _options.rect);\n\t\t\trenderTarget.destroy();\n\t\t}\n\t}\n\treturn true;\n}\n\nconst fixCubemapSeams = true;\nconst calcLevels = (width, height = 0) => {\n\treturn 1 + Math.floor(Math.log2(Math.max(width, height)));\n};\nconst supportsFloat16 = device => {\n\treturn device.extTextureHalfFloat && device.textureHalfFloatRenderable;\n};\nconst supportsFloat32 = device => {\n\treturn device.extTextureFloat && device.textureFloatRenderable;\n};\nconst lightingSourcePixelFormat = device => {\n\treturn supportsFloat16(device) ? PIXELFORMAT_RGBA16F : supportsFloat32(device) ? PIXELFORMAT_RGBA32F : PIXELFORMAT_RGBA8;\n};\nconst lightingPixelFormat = device => {\n\treturn PIXELFORMAT_RGBA8;\n};\nconst createCubemap = (device, size, format, mipmaps) => {\n\treturn new Texture(device, {\n\t\tname: `lighting-${size}`,\n\t\tcubemap: true,\n\t\twidth: size,\n\t\theight: size,\n\t\tformat: format,\n\t\ttype: TEXTURETYPE_RGBP ,\n\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\tfixCubemapSeams: fixCubemapSeams,\n\t\tmipmaps: !!mipmaps\n\t});\n};\nclass EnvLighting {\n\tstatic generateSkyboxCubemap(source, size) {\n\t\tconst device = source.device;\n\t\tconst result = createCubemap(device, size || (source.cubemap ? source.width : source.width / 4), PIXELFORMAT_RGBA8, false);\n\t\treprojectTexture(source, result, {\n\t\t\tnumSamples: 1024\n\t\t});\n\t\treturn result;\n\t}\n\tstatic generateLightingSource(source, options) {\n\t\tconst device = source.device;\n\t\tconst format = lightingSourcePixelFormat(device);\n\t\tconst result = (options == null ? void 0 : options.target) || new Texture(device, {\n\t\t\tname: 'lighting-source',\n\t\t\tcubemap: true,\n\t\t\twidth: (options == null ? void 0 : options.size) || 128,\n\t\t\theight: (options == null ? void 0 : options.size) || 128,\n\t\t\tformat: format,\n\t\t\ttype: format === PIXELFORMAT_RGBA8 ? TEXTURETYPE_RGBP : TEXTURETYPE_DEFAULT,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\tfixCubemapSeams: false,\n\t\t\tmipmaps: true\n\t\t});\n\t\treprojectTexture(source, result, {\n\t\t\tnumSamples: source.mipmaps ? 1 : 1024\n\t\t});\n\t\treturn result;\n\t}\n\tstatic generateAtlas(source, options) {\n\t\tconst device = source.device;\n\t\tconst format = lightingPixelFormat();\n\t\tconst result = (options == null ? void 0 : options.target) || new Texture(device, {\n\t\t\tname: 'envAtlas',\n\t\t\twidth: (options == null ? void 0 : options.size) || 512,\n\t\t\theight: (options == null ? void 0 : options.size) || 512,\n\t\t\tformat: format,\n\t\t\ttype: TEXTURETYPE_RGBP ,\n\t\t\tprojection: TEXTUREPROJECTION_EQUIRECT,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\tmipmaps: false\n\t\t});\n\t\tconst s = result.width / 512;\n\t\tconst rect = new Vec4(0, 0, 512 * s, 256 * s);\n\t\tconst levels = calcLevels(256) - calcLevels(4);\n\t\tfor (let i = 0; i < levels; ++i) {\n\t\t\treprojectTexture(source, result, {\n\t\t\t\tnumSamples: 1,\n\t\t\t\trect: rect,\n\t\t\t\tseamPixels: s\n\t\t\t});\n\t\t\trect.x += rect.w;\n\t\t\trect.y += rect.w;\n\t\t\trect.z = Math.max(1, Math.floor(rect.z * 0.5));\n\t\t\trect.w = Math.max(1, Math.floor(rect.w * 0.5));\n\t\t}\n\t\trect.set(0, 256 * s, 256 * s, 128 * s);\n\t\tfor (let i = 1; i < 7; ++i) {\n\t\t\treprojectTexture(source, result, {\n\t\t\t\tnumSamples: (options == null ? void 0 : options.numReflectionSamples) || 1024,\n\t\t\t\tdistribution: (options == null ? void 0 : options.distribution) || 'ggx',\n\t\t\t\tspecularPower: Math.max(1, 2048 >> i * 2),\n\t\t\t\trect: rect,\n\t\t\t\tseamPixels: s\n\t\t\t});\n\t\t\trect.y += rect.w;\n\t\t\trect.z = Math.max(1, Math.floor(rect.z * 0.5));\n\t\t\trect.w = Math.max(1, Math.floor(rect.w * 0.5));\n\t\t}\n\t\trect.set(128 * s, (256 + 128) * s, 64 * s, 32 * s);\n\t\treprojectTexture(source, result, {\n\t\t\tnumSamples: (options == null ? void 0 : options.numAmbientSamples) || 2048,\n\t\t\tdistribution: 'lambert',\n\t\t\trect: rect,\n\t\t\tseamPixels: s\n\t\t});\n\t\treturn result;\n\t}\n\tstatic generatePrefilteredAtlas(sources, options) {\n\t\tconst device = sources[0].device;\n\t\tconst format = sources[0].format;\n\t\tconst type = sources[0].type;\n\t\tconst result = (options == null ? void 0 : options.target) || new Texture(device, {\n\t\t\tname: 'envPrefilteredAtlas',\n\t\t\twidth: (options == null ? void 0 : options.size) || 512,\n\t\t\theight: (options == null ? void 0 : options.size) || 512,\n\t\t\tformat: format,\n\t\t\ttype: type,\n\t\t\tprojection: TEXTUREPROJECTION_EQUIRECT,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\tmipmaps: false\n\t\t});\n\t\tconst s = result.width / 512;\n\t\tconst rect = new Vec4(0, 0, 512 * s, 256 * s);\n\t\tconst levels = calcLevels(512);\n\t\tfor (let i = 0; i < levels; ++i) {\n\t\t\treprojectTexture(sources[0], result, {\n\t\t\t\tnumSamples: 1,\n\t\t\t\trect: rect,\n\t\t\t\tseamPixels: s\n\t\t\t});\n\t\t\trect.x += rect.w;\n\t\t\trect.y += rect.w;\n\t\t\trect.z = Math.max(1, Math.floor(rect.z * 0.5));\n\t\t\trect.w = Math.max(1, Math.floor(rect.w * 0.5));\n\t\t}\n\t\trect.set(0, 256 * s, 256 * s, 128 * s);\n\t\tfor (let i = 1; i < sources.length; ++i) {\n\t\t\treprojectTexture(sources[i], result, {\n\t\t\t\tnumSamples: 1,\n\t\t\t\trect: rect,\n\t\t\t\tseamPixels: s\n\t\t\t});\n\t\t\trect.y += rect.w;\n\t\t\trect.z = Math.max(1, Math.floor(rect.z * 0.5));\n\t\t\trect.w = Math.max(1, Math.floor(rect.w * 0.5));\n\t\t}\n\t\trect.set(128 * s, (256 + 128) * s, 64 * s, 32 * s);\n\t\tif (options != null && options.legacyAmbient) {\n\t\t\treprojectTexture(sources[5], result, {\n\t\t\t\tnumSamples: 1,\n\t\t\t\trect: rect,\n\t\t\t\tseamPixels: s\n\t\t\t});\n\t\t} else {\n\t\t\treprojectTexture(sources[0], result, {\n\t\t\t\tnumSamples: (options == null ? void 0 : options.numSamples) || 2048,\n\t\t\t\tdistribution: 'lambert',\n\t\t\t\trect: rect,\n\t\t\t\tseamPixels: s\n\t\t\t});\n\t\t}\n\t\treturn result;\n\t}\n}\n\nclass Scene extends EventHandler {\n\tconstructor(graphicsDevice) {\n\t\tsuper();\n\t\tthis.ambientBake = false;\n\t\tthis.ambientBakeOcclusionBrightness = 0;\n\t\tthis.ambientBakeOcclusionContrast = 0;\n\t\tthis.ambientLight = new Color(0, 0, 0);\n\t\tthis.ambientLuminance = 0;\n\t\tthis.exposure = 1;\n\t\tthis.fogColor = new Color(0, 0, 0);\n\t\tthis.fogDensity = 0;\n\t\tthis.fogEnd = 1000;\n\t\tthis.fogStart = 1;\n\t\tthis.lightmapSizeMultiplier = 1;\n\t\tthis.lightmapMaxResolution = 2048;\n\t\tthis.lightmapMode = BAKE_COLORDIR;\n\t\tthis.lightmapFilterEnabled = false;\n\t\tthis.lightmapHDR = false;\n\t\tthis.root = null;\n\t\tthis.physicalUnits = false;\n\t\tthis._envAtlas = null;\n\t\tthis._skyboxCubeMap = null;\n\t\tthis.device = graphicsDevice;\n\t\tthis._gravity = new Vec3(0, -9.8, 0);\n\t\tthis._layers = null;\n\t\tthis._fog = FOG_NONE;\n\t\tthis._gammaCorrection = GAMMA_SRGB;\n\t\tthis._toneMapping = 0;\n\t\tthis._prefilteredCubemaps = [];\n\t\tthis._internalEnvAtlas = null;\n\t\tthis._skyboxIntensity = 1;\n\t\tthis._skyboxLuminance = 0;\n\t\tthis._skyboxMip = 0;\n\t\tthis._skyboxRotationShaderInclude = false;\n\t\tthis._skyboxRotation = new Quat();\n\t\tthis._skyboxRotationMat3 = new Mat3();\n\t\tthis._skyboxRotationMat4 = new Mat4();\n\t\tthis._ambientBakeNumSamples = 1;\n\t\tthis._ambientBakeSpherePart = 0.4;\n\t\tthis._lightmapFilterRange = 10;\n\t\tthis._lightmapFilterSmoothness = 0.2;\n\t\tthis._clusteredLightingEnabled = true;\n\t\tthis._lightingParams = new LightingParams(this.device.supportsAreaLights, this.device.maxTextureSize, () => {\n\t\t\tthis.updateShaders = true;\n\t\t});\n\t\tthis._sky = new Sky(this);\n\t\tthis._stats = {\n\t\t\tmeshInstances: 0,\n\t\t\tlights: 0,\n\t\t\tdynamicLights: 0,\n\t\t\tbakedLights: 0,\n\t\t\tupdateShadersTime: 0\n\t\t};\n\t\tthis.updateShaders = true;\n\t\tthis._shaderVersion = 0;\n\t\tthis.immediate = new Immediate(this.device);\n\t}\n\tget defaultDrawLayer() {\n\t\treturn this.layers.getLayerById(LAYERID_IMMEDIATE);\n\t}\n\tset ambientBakeNumSamples(value) {\n\t\tthis._ambientBakeNumSamples = math.clamp(Math.floor(value), 1, 255);\n\t}\n\tget ambientBakeNumSamples() {\n\t\treturn this._ambientBakeNumSamples;\n\t}\n\tset ambientBakeSpherePart(value) {\n\t\tthis._ambientBakeSpherePart = math.clamp(value, 0.001, 1);\n\t}\n\tget ambientBakeSpherePart() {\n\t\treturn this._ambientBakeSpherePart;\n\t}\n\tset clusteredLightingEnabled(value) {\n\t\tif (this.device.isWebGPU && !value) {\n\t\t\treturn;\n\t\t}\n\t\tif (!this._clusteredLightingEnabled && value) {\n\t\t\tconsole.error('Turning on disabled clustered lighting is not currently supported');\n\t\t\treturn;\n\t\t}\n\t\tthis._clusteredLightingEnabled = value;\n\t}\n\tget clusteredLightingEnabled() {\n\t\treturn this._clusteredLightingEnabled;\n\t}\n\tset envAtlas(value) {\n\t\tif (value !== this._envAtlas) {\n\t\t\tthis._envAtlas = value;\n\t\t\tif (value) {\n\t\t\t\tvalue.addressU = ADDRESS_CLAMP_TO_EDGE;\n\t\t\t\tvalue.addressV = ADDRESS_CLAMP_TO_EDGE;\n\t\t\t\tvalue.minFilter = FILTER_LINEAR;\n\t\t\t\tvalue.magFilter = FILTER_LINEAR;\n\t\t\t\tvalue.mipmaps = false;\n\t\t\t}\n\t\t\tthis._prefilteredCubemaps = [];\n\t\t\tif (this._internalEnvAtlas) {\n\t\t\t\tthis._internalEnvAtlas.destroy();\n\t\t\t\tthis._internalEnvAtlas = null;\n\t\t\t}\n\t\t\tthis._resetSkyMesh();\n\t\t}\n\t}\n\tget envAtlas() {\n\t\treturn this._envAtlas;\n\t}\n\tset fog(type) {\n\t\tif (type !== this._fog) {\n\t\t\tthis._fog = type;\n\t\t\tthis.updateShaders = true;\n\t\t}\n\t}\n\tget fog() {\n\t\treturn this._fog;\n\t}\n\tset gammaCorrection(value) {\n\t\tif (value !== this._gammaCorrection) {\n\t\t\tthis._gammaCorrection = value;\n\t\t\tthis.updateShaders = true;\n\t\t}\n\t}\n\tget gammaCorrection() {\n\t\treturn this._gammaCorrection;\n\t}\n\tset layers(layers) {\n\t\tconst prev = this._layers;\n\t\tthis._layers = layers;\n\t\tthis.fire('set:layers', prev, layers);\n\t}\n\tget layers() {\n\t\treturn this._layers;\n\t}\n\tget sky() {\n\t\treturn this._sky;\n\t}\n\tget lighting() {\n\t\treturn this._lightingParams;\n\t}\n\tset lightmapFilterRange(value) {\n\t\tthis._lightmapFilterRange = Math.max(value, 0.001);\n\t}\n\tget lightmapFilterRange() {\n\t\treturn this._lightmapFilterRange;\n\t}\n\tset lightmapFilterSmoothness(value) {\n\t\tthis._lightmapFilterSmoothness = Math.max(value, 0.001);\n\t}\n\tget lightmapFilterSmoothness() {\n\t\treturn this._lightmapFilterSmoothness;\n\t}\n\tset prefilteredCubemaps(value) {\n\t\tvalue = value || [];\n\t\tconst cubemaps = this._prefilteredCubemaps;\n\t\tconst changed = cubemaps.length !== value.length || cubemaps.some((c, i) => c !== value[i]);\n\t\tif (changed) {\n\t\t\tconst complete = value.length === 6 && value.every(c => !!c);\n\t\t\tif (complete) {\n\t\t\t\tthis._internalEnvAtlas = EnvLighting.generatePrefilteredAtlas(value, {\n\t\t\t\t\ttarget: this._internalEnvAtlas\n\t\t\t\t});\n\t\t\t\tthis._envAtlas = this._internalEnvAtlas;\n\t\t\t} else {\n\t\t\t\tif (this._internalEnvAtlas) {\n\t\t\t\t\tthis._internalEnvAtlas.destroy();\n\t\t\t\t\tthis._internalEnvAtlas = null;\n\t\t\t\t}\n\t\t\t\tthis._envAtlas = null;\n\t\t\t}\n\t\t\tthis._prefilteredCubemaps = value.slice();\n\t\t\tthis._resetSkyMesh();\n\t\t}\n\t}\n\tget prefilteredCubemaps() {\n\t\treturn this._prefilteredCubemaps;\n\t}\n\tset skybox(value) {\n\t\tif (value !== this._skyboxCubeMap) {\n\t\t\tthis._skyboxCubeMap = value;\n\t\t\tthis._resetSkyMesh();\n\t\t}\n\t}\n\tget skybox() {\n\t\treturn this._skyboxCubeMap;\n\t}\n\tset skyboxIntensity(value) {\n\t\tif (value !== this._skyboxIntensity) {\n\t\t\tthis._skyboxIntensity = value;\n\t\t\tthis._resetSkyMesh();\n\t\t}\n\t}\n\tget skyboxIntensity() {\n\t\treturn this._skyboxIntensity;\n\t}\n\tset skyboxLuminance(value) {\n\t\tif (value !== this._skyboxLuminance) {\n\t\t\tthis._skyboxLuminance = value;\n\t\t\tthis._resetSkyMesh();\n\t\t}\n\t}\n\tget skyboxLuminance() {\n\t\treturn this._skyboxLuminance;\n\t}\n\tset skyboxMip(value) {\n\t\tif (value !== this._skyboxMip) {\n\t\t\tthis._skyboxMip = value;\n\t\t\tthis._resetSkyMesh();\n\t\t}\n\t}\n\tget skyboxMip() {\n\t\treturn this._skyboxMip;\n\t}\n\tset skyboxRotation(value) {\n\t\tif (!this._skyboxRotation.equals(value)) {\n\t\t\tconst isIdentity = value.equals(Quat.IDENTITY);\n\t\t\tthis._skyboxRotation.copy(value);\n\t\t\tif (isIdentity) {\n\t\t\t\tthis._skyboxRotationMat3.setIdentity();\n\t\t\t} else {\n\t\t\t\tthis._skyboxRotationMat4.setTRS(Vec3.ZERO, value, Vec3.ONE);\n\t\t\t\tthis._skyboxRotationMat3.invertMat4(this._skyboxRotationMat4);\n\t\t\t}\n\t\t\tif (!this._skyboxRotationShaderInclude && !isIdentity) {\n\t\t\t\tthis._skyboxRotationShaderInclude = true;\n\t\t\t\tthis._resetSkyMesh();\n\t\t\t}\n\t\t}\n\t}\n\tget skyboxRotation() {\n\t\treturn this._skyboxRotation;\n\t}\n\tset toneMapping(value) {\n\t\tif (value !== this._toneMapping) {\n\t\t\tthis._toneMapping = value;\n\t\t\tthis.updateShaders = true;\n\t\t}\n\t}\n\tget toneMapping() {\n\t\treturn this._toneMapping;\n\t}\n\tdestroy() {\n\t\tthis._resetSkyMesh();\n\t\tthis.root = null;\n\t\tthis.off();\n\t}\n\tdrawLine(start, end, color = Color.WHITE, depthTest = true, layer = this.defaultDrawLayer) {\n\t\tconst batch = this.immediate.getBatch(layer, depthTest);\n\t\tbatch.addLines([start, end], [color, color]);\n\t}\n\tdrawLines(positions, colors, depthTest = true, layer = this.defaultDrawLayer) {\n\t\tconst batch = this.immediate.getBatch(layer, depthTest);\n\t\tbatch.addLines(positions, colors);\n\t}\n\tdrawLineArrays(positions, colors, depthTest = true, layer = this.defaultDrawLayer) {\n\t\tconst batch = this.immediate.getBatch(layer, depthTest);\n\t\tbatch.addLinesArrays(positions, colors);\n\t}\n\tapplySettings(settings) {\n\t\tvar _render$skyboxIntensi, _render$skyboxLuminan, _render$skyboxMip, _render$clusteredLigh;\n\t\tconst physics = settings.physics;\n\t\tconst render = settings.render;\n\t\tthis._gravity.set(physics.gravity[0], physics.gravity[1], physics.gravity[2]);\n\t\tthis.ambientLight.set(render.global_ambient[0], render.global_ambient[1], render.global_ambient[2]);\n\t\tthis.ambientLuminance = render.ambientLuminance;\n\t\tthis._fog = render.fog;\n\t\tthis.fogColor.set(render.fog_color[0], render.fog_color[1], render.fog_color[2]);\n\t\tthis.fogStart = render.fog_start;\n\t\tthis.fogEnd = render.fog_end;\n\t\tthis.fogDensity = render.fog_density;\n\t\tthis._gammaCorrection = render.gamma_correction;\n\t\tthis._toneMapping = render.tonemapping;\n\t\tthis.lightmapSizeMultiplier = render.lightmapSizeMultiplier;\n\t\tthis.lightmapMaxResolution = render.lightmapMaxResolution;\n\t\tthis.lightmapMode = render.lightmapMode;\n\t\tthis.exposure = render.exposure;\n\t\tthis._skyboxIntensity = (_render$skyboxIntensi = render.skyboxIntensity) != null ? _render$skyboxIntensi : 1;\n\t\tthis._skyboxLuminance = (_render$skyboxLuminan = render.skyboxLuminance) != null ? _render$skyboxLuminan : 20000;\n\t\tthis._skyboxMip = (_render$skyboxMip = render.skyboxMip) != null ? _render$skyboxMip : 0;\n\t\tif (render.skyboxRotation) {\n\t\t\tthis.skyboxRotation = new Quat().setFromEulerAngles(render.skyboxRotation[0], render.skyboxRotation[1], render.skyboxRotation[2]);\n\t\t}\n\t\tthis.sky.applySettings(render);\n\t\tthis.clusteredLightingEnabled = (_render$clusteredLigh = render.clusteredLightingEnabled) != null ? _render$clusteredLigh : false;\n\t\tthis.lighting.applySettings(render);\n\t\t['lightmapFilterEnabled', 'lightmapFilterRange', 'lightmapFilterSmoothness', 'ambientBake', 'ambientBakeNumSamples', 'ambientBakeSpherePart', 'ambientBakeOcclusionBrightness', 'ambientBakeOcclusionContrast'].forEach(setting => {\n\t\t\tif (render.hasOwnProperty(setting)) {\n\t\t\t\tthis[setting] = render[setting];\n\t\t\t}\n\t\t});\n\t\tthis._resetSkyMesh();\n\t}\n\t_getSkyboxTex() {\n\t\tconst cubemaps = this._prefilteredCubemaps;\n\t\tif (this._skyboxMip) {\n\t\t\tconst skyboxMapping = [0, 1, 3, 4, 5, 6];\n\t\t\treturn cubemaps[skyboxMapping[this._skyboxMip]] || this._envAtlas || cubemaps[0] || this._skyboxCubeMap;\n\t\t}\n\t\treturn this._skyboxCubeMap || cubemaps[0] || this._envAtlas;\n\t}\n\t_updateSkyMesh() {\n\t\tif (!this.sky.skyMesh) {\n\t\t\tthis.sky.updateSkyMesh();\n\t\t}\n\t\tthis.sky.update();\n\t}\n\t_resetSkyMesh() {\n\t\tthis.sky.resetSkyMesh();\n\t\tthis.updateShaders = true;\n\t}\n\tsetSkybox(cubemaps) {\n\t\tif (!cubemaps) {\n\t\t\tthis.skybox = null;\n\t\t\tthis.envAtlas = null;\n\t\t} else {\n\t\t\tthis.skybox = cubemaps[0] || null;\n\t\t\tif (cubemaps[1] && !cubemaps[1].cubemap) {\n\t\t\t\tthis.envAtlas = cubemaps[1];\n\t\t\t} else {\n\t\t\t\tthis.prefilteredCubemaps = cubemaps.slice(1);\n\t\t\t}\n\t\t}\n\t}\n\tget lightmapPixelFormat() {\n\t\treturn this.lightmapHDR && this.device.getRenderableHdrFormat() || PIXELFORMAT_RGBA8;\n\t}\n}\nScene.EVENT_SETLAYERS = 'set:layers';\nScene.EVENT_SETSKYBOX = 'set:skybox';\n\nclass Skin {\n\tconstructor(graphicsDevice, ibp, boneNames) {\n\t\tthis.device = graphicsDevice;\n\t\tthis.inverseBindPose = ibp;\n\t\tthis.boneNames = boneNames;\n\t}\n}\n\nconst spriteNormals = [0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1];\nconst spriteIndices = [0, 1, 3, 2, 3, 1];\nclass Sprite extends EventHandler {\n\tconstructor(device, options) {\n\t\tsuper();\n\t\tthis._device = device;\n\t\tthis._pixelsPerUnit = options && options.pixelsPerUnit !== undefined ? options.pixelsPerUnit : 1;\n\t\tthis._renderMode = options && options.renderMode !== undefined ? options.renderMode : SPRITE_RENDERMODE_SIMPLE;\n\t\tthis._atlas = options && options.atlas !== undefined ? options.atlas : null;\n\t\tthis._frameKeys = options && options.frameKeys !== undefined ? options.frameKeys : null;\n\t\tthis._meshes = [];\n\t\tthis._updatingProperties = false;\n\t\tthis._meshesDirty = false;\n\t\tif (this._atlas && this._frameKeys) {\n\t\t\tthis._createMeshes();\n\t\t}\n\t}\n\tset frameKeys(value) {\n\t\tthis._frameKeys = value;\n\t\tif (this._atlas && this._frameKeys) {\n\t\t\tif (this._updatingProperties) {\n\t\t\t\tthis._meshesDirty = true;\n\t\t\t} else {\n\t\t\t\tthis._createMeshes();\n\t\t\t}\n\t\t}\n\t\tthis.fire('set:frameKeys', value);\n\t}\n\tget frameKeys() {\n\t\treturn this._frameKeys;\n\t}\n\tset atlas(value) {\n\t\tif (value === this._atlas) return;\n\t\tif (this._atlas) {\n\t\t\tthis._atlas.off('set:frames', this._onSetFrames, this);\n\t\t\tthis._atlas.off('set:frame', this._onFrameChanged, this);\n\t\t\tthis._atlas.off('remove:frame', this._onFrameRemoved, this);\n\t\t}\n\t\tthis._atlas = value;\n\t\tif (this._atlas && this._frameKeys) {\n\t\t\tthis._atlas.on('set:frames', this._onSetFrames, this);\n\t\t\tthis._atlas.on('set:frame', this._onFrameChanged, this);\n\t\t\tthis._atlas.on('remove:frame', this._onFrameRemoved, this);\n\t\t\tif (this._updatingProperties) {\n\t\t\t\tthis._meshesDirty = true;\n\t\t\t} else {\n\t\t\t\tthis._createMeshes();\n\t\t\t}\n\t\t}\n\t\tthis.fire('set:atlas', value);\n\t}\n\tget atlas() {\n\t\treturn this._atlas;\n\t}\n\tset pixelsPerUnit(value) {\n\t\tif (this._pixelsPerUnit === value) return;\n\t\tthis._pixelsPerUnit = value;\n\t\tthis.fire('set:pixelsPerUnit', value);\n\t\tif (this._atlas && this._frameKeys && this.renderMode === SPRITE_RENDERMODE_SIMPLE) {\n\t\t\tif (this._updatingProperties) {\n\t\t\t\tthis._meshesDirty = true;\n\t\t\t} else {\n\t\t\t\tthis._createMeshes();\n\t\t\t}\n\t\t}\n\t}\n\tget pixelsPerUnit() {\n\t\treturn this._pixelsPerUnit;\n\t}\n\tset renderMode(value) {\n\t\tif (this._renderMode === value) {\n\t\t\treturn;\n\t\t}\n\t\tconst prev = this._renderMode;\n\t\tthis._renderMode = value;\n\t\tthis.fire('set:renderMode', value);\n\t\tif (prev === SPRITE_RENDERMODE_SIMPLE || value === SPRITE_RENDERMODE_SIMPLE) {\n\t\t\tif (this._atlas && this._frameKeys) {\n\t\t\t\tif (this._updatingProperties) {\n\t\t\t\t\tthis._meshesDirty = true;\n\t\t\t\t} else {\n\t\t\t\t\tthis._createMeshes();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget renderMode() {\n\t\treturn this._renderMode;\n\t}\n\tget meshes() {\n\t\treturn this._meshes;\n\t}\n\t_createMeshes() {\n\t\tconst len = this._meshes.length;\n\t\tfor (let i = 0; i < len; i++) {\n\t\t\tconst mesh = this._meshes[i];\n\t\t\tif (mesh) {\n\t\t\t\tmesh.destroy();\n\t\t\t}\n\t\t}\n\t\tconst count = this._frameKeys.length;\n\t\tthis._meshes = new Array(count);\n\t\tconst createMeshFunc = this.renderMode === SPRITE_RENDERMODE_SLICED || this._renderMode === SPRITE_RENDERMODE_TILED ? this._create9SliceMesh : this._createSimpleMesh;\n\t\tfor (let i = 0; i < count; i++) {\n\t\t\tconst frame = this._atlas.frames[this._frameKeys[i]];\n\t\t\tthis._meshes[i] = frame ? createMeshFunc.call(this, frame) : null;\n\t\t}\n\t\tthis.fire('set:meshes');\n\t}\n\t_createSimpleMesh(frame) {\n\t\tconst rect = frame.rect;\n\t\tconst texWidth = this._atlas.texture.width;\n\t\tconst texHeight = this._atlas.texture.height;\n\t\tconst w = rect.z / this._pixelsPerUnit;\n\t\tconst h = rect.w / this._pixelsPerUnit;\n\t\tconst hp = frame.pivot.x;\n\t\tconst vp = frame.pivot.y;\n\t\tconst positions = [-hp * w, -vp * h, 0, (1 - hp) * w, -vp * h, 0, (1 - hp) * w, (1 - vp) * h, 0, -hp * w, (1 - vp) * h, 0];\n\t\tconst lu = rect.x / texWidth;\n\t\tconst bv = 1.0 - rect.y / texHeight;\n\t\tconst ru = (rect.x + rect.z) / texWidth;\n\t\tconst tv = 1.0 - (rect.y + rect.w) / texHeight;\n\t\tconst uvs = [lu, bv, ru, bv, ru, tv, lu, tv];\n\t\tconst geom = new Geometry();\n\t\tgeom.positions = positions;\n\t\tgeom.normals = spriteNormals;\n\t\tgeom.uvs = uvs;\n\t\tgeom.indices = spriteIndices;\n\t\treturn Mesh.fromGeometry(this._device, geom);\n\t}\n\t_create9SliceMesh() {\n\t\tconst he = Vec2.ONE;\n\t\tconst ws = 3;\n\t\tconst ls = 3;\n\t\tconst positions = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\t\tconst indices = [];\n\t\tlet vcounter = 0;\n\t\tfor (let i = 0; i <= ws; i++) {\n\t\t\tconst u = i === 0 || i === ws ? 0 : 1;\n\t\t\tfor (let j = 0; j <= ls; j++) {\n\t\t\t\tconst x = -he.x + 2.0 * he.x * (i <= 1 ? 0 : 3) / ws;\n\t\t\t\tconst y = 0.0;\n\t\t\t\tconst z = -(-he.y + 2.0 * he.y * (j <= 1 ? 0 : 3) / ls);\n\t\t\t\tconst v = j === 0 || j === ls ? 0 : 1;\n\t\t\t\tpositions.push(-x, y, z);\n\t\t\t\tnormals.push(0.0, 1.0, 0.0);\n\t\t\t\tuvs.push(u, v);\n\t\t\t\tif (i < ws && j < ls) {\n\t\t\t\t\tindices.push(vcounter + ls + 1, vcounter + 1, vcounter);\n\t\t\t\t\tindices.push(vcounter + ls + 1, vcounter + ls + 2, vcounter + 1);\n\t\t\t\t}\n\t\t\t\tvcounter++;\n\t\t\t}\n\t\t}\n\t\tconst geom = new Geometry();\n\t\tgeom.positions = positions;\n\t\tgeom.normals = normals;\n\t\tgeom.uvs = uvs;\n\t\tgeom.indices = indices;\n\t\treturn Mesh.fromGeometry(this._device, geom);\n\t}\n\t_onSetFrames(frames) {\n\t\tif (this._updatingProperties) {\n\t\t\tthis._meshesDirty = true;\n\t\t} else {\n\t\t\tthis._createMeshes();\n\t\t}\n\t}\n\t_onFrameChanged(frameKey, frame) {\n\t\tconst idx = this._frameKeys.indexOf(frameKey);\n\t\tif (idx < 0) return;\n\t\tif (frame) {\n\t\t\tif (this.renderMode === SPRITE_RENDERMODE_SIMPLE) {\n\t\t\t\tthis._meshes[idx] = this._createSimpleMesh(frame);\n\t\t\t}\n\t\t} else {\n\t\t\tthis._meshes[idx] = null;\n\t\t}\n\t\tthis.fire('set:meshes');\n\t}\n\t_onFrameRemoved(frameKey) {\n\t\tconst idx = this._frameKeys.indexOf(frameKey);\n\t\tif (idx < 0) return;\n\t\tthis._meshes[idx] = null;\n\t\tthis.fire('set:meshes');\n\t}\n\tstartUpdate() {\n\t\tthis._updatingProperties = true;\n\t\tthis._meshesDirty = false;\n\t}\n\tendUpdate() {\n\t\tthis._updatingProperties = false;\n\t\tif (this._meshesDirty && this._atlas && this._frameKeys) {\n\t\t\tthis._createMeshes();\n\t\t}\n\t\tthis._meshesDirty = false;\n\t}\n\tdestroy() {\n\t\tfor (const mesh of this._meshes) {\n\t\t\tif (mesh) {\n\t\t\t\tmesh.destroy();\n\t\t\t}\n\t\t}\n\t\tthis._meshes.length = 0;\n\t}\n}\n\nclass StandardMaterialOptions {\n\tconstructor() {\n\t\tthis.forceUv1 = false;\n\t\tthis.ambientTint = false;\n\t\tthis.diffuseTint = false;\n\t\tthis.specularTint = false;\n\t\tthis.metalnessTint = false;\n\t\tthis.glossTint = false;\n\t\tthis.emissiveTint = false;\n\t\tthis.opacityTint = false;\n\t\tthis.emissiveEncoding = 'linear';\n\t\tthis.lightMapEncoding = 'linear';\n\t\tthis.packedNormal = false;\n\t\tthis.glossInvert = false;\n\t\tthis.sheenGlossInvert = false;\n\t\tthis.clearCoatGlossInvert = false;\n\t\tthis.litOptions = new LitShaderOptions();\n\t}\n\tget pass() {\n\t\treturn this.litOptions.pass;\n\t}\n}\n\nconst _matTex2D = [];\nconst buildPropertiesList = options => {\n\treturn Object.keys(options).filter(key => key !== 'litOptions').sort();\n};\nclass ShaderGeneratorStandard extends ShaderGenerator {\n\tconstructor(...args) {\n\t\tsuper(...args);\n\t\tthis.optionsContext = new StandardMaterialOptions();\n\t\tthis.optionsContextMin = new StandardMaterialOptions();\n\t}\n\tgenerateKey(options) {\n\t\tlet props;\n\t\tif (options === this.optionsContextMin) {\n\t\t\tif (!this.propsMin) this.propsMin = buildPropertiesList(options);\n\t\t\tprops = this.propsMin;\n\t\t} else if (options === this.optionsContext) {\n\t\t\tif (!this.props) this.props = buildPropertiesList(options);\n\t\t\tprops = this.props;\n\t\t} else {\n\t\t\tprops = buildPropertiesList(options);\n\t\t}\n\t\tconst key = `standard:\\n${props.map(prop => prop + options[prop]).join('\\n')}${LitOptionsUtils.generateKey(options.litOptions)}`;\n\t\treturn key;\n\t}\n\t_getUvSourceExpression(transformPropName, uVPropName, options) {\n\t\tconst transformId = options[transformPropName];\n\t\tconst uvChannel = options[uVPropName];\n\t\tconst isMainPass = options.litOptions.pass === SHADER_FORWARD || options.litOptions.pass === SHADER_FORWARDHDR;\n\t\tlet expression;\n\t\tif (isMainPass && options.litOptions.nineSlicedMode === SPRITE_RENDERMODE_SLICED) {\n\t\t\texpression = 'nineSlicedUv';\n\t\t} else if (isMainPass && options.litOptions.nineSlicedMode === SPRITE_RENDERMODE_TILED) {\n\t\t\texpression = 'nineSlicedUv';\n\t\t} else {\n\t\t\tif (transformId === 0) {\n\t\t\t\texpression = `vUv${uvChannel}`;\n\t\t\t} else {\n\t\t\t\texpression = `vUV${uvChannel}_${transformId}`;\n\t\t\t}\n\t\t\tif (options.heightMap && transformPropName !== 'heightMapTransform') {\n\t\t\t\texpression += ' + dUvOffset';\n\t\t\t}\n\t\t}\n\t\treturn expression;\n\t}\n\t_addMapDef(name, enabled) {\n\t\treturn enabled ? `#define ${name}\\n` : `#undef ${name}\\n`;\n\t}\n\t_addMapDefs(float, color, vertex, map, invert) {\n\t\treturn this._addMapDef('MAPFLOAT', float) + this._addMapDef('MAPCOLOR', color) + this._addMapDef('MAPVERTEX', vertex) + this._addMapDef('MAPTEXTURE', map) + this._addMapDef('MAPINVERT', invert);\n\t}\n\t_addMap(propName, chunkName, options, chunks, mapping, encoding = null) {\n\t\tconst mapPropName = `${propName}Map`;\n\t\tconst uVPropName = `${mapPropName}Uv`;\n\t\tconst identifierPropName = `${mapPropName}Identifier`;\n\t\tconst transformPropName = `${mapPropName}Transform`;\n\t\tconst channelPropName = `${mapPropName}Channel`;\n\t\tconst vertexColorChannelPropName = `${propName}VertexColorChannel`;\n\t\tconst tintPropName = `${propName}Tint`;\n\t\tconst vertexColorPropName = `${propName}VertexColor`;\n\t\tconst detailModePropName = `${propName}Mode`;\n\t\tconst invertName = `${propName}Invert`;\n\t\tconst tintOption = options[tintPropName];\n\t\tconst vertexColorOption = options[vertexColorPropName];\n\t\tconst textureOption = options[mapPropName];\n\t\tconst textureIdentifier = options[identifierPropName];\n\t\tconst detailModeOption = options[detailModePropName];\n\t\tlet subCode = chunks[chunkName];\n\t\tif (textureOption) {\n\t\t\tconst uv = this._getUvSourceExpression(transformPropName, uVPropName, options);\n\t\t\tsubCode = subCode.replace(/\\$UV/g, uv).replace(/\\$CH/g, options[channelPropName]);\n\t\t\tif (mapping && subCode.search(/\\$SAMPLER/g) !== -1) {\n\t\t\t\tlet samplerName = `texture_${mapPropName}`;\n\t\t\t\tconst alias = mapping[textureIdentifier];\n\t\t\t\tif (alias) {\n\t\t\t\t\tsamplerName = alias;\n\t\t\t\t} else {\n\t\t\t\t\tmapping[textureIdentifier] = samplerName;\n\t\t\t\t}\n\t\t\t\tsubCode = subCode.replace(/\\$SAMPLER/g, samplerName);\n\t\t\t}\n\t\t\tif (encoding) {\n\t\t\t\tif (options[channelPropName] === 'aaa') {\n\t\t\t\t\tsubCode = subCode.replace(/\\$DECODE/g, 'passThrough');\n\t\t\t\t} else {\n\t\t\t\t\tsubCode = subCode.replace(/\\$DECODE/g, ChunkUtils.decodeFunc(!options.litOptions.gamma && encoding === 'srgb' ? 'linear' : encoding));\n\t\t\t\t}\n\t\t\t\tif (subCode.indexOf('$texture2DSAMPLE')) {\n\t\t\t\t\tconst decodeTable = {\n\t\t\t\t\t\tlinear: 'texture2D',\n\t\t\t\t\t\tsrgb: 'texture2DSRGB',\n\t\t\t\t\t\trgbm: 'texture2DRGBM',\n\t\t\t\t\t\trgbe: 'texture2DRGBE'\n\t\t\t\t\t};\n\t\t\t\t\tsubCode = subCode.replace(/\\$texture2DSAMPLE/g, decodeTable[encoding] || 'texture2D');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (vertexColorOption) {\n\t\t\tsubCode = subCode.replace(/\\$VC/g, options[vertexColorChannelPropName]);\n\t\t}\n\t\tif (detailModeOption) {\n\t\t\tsubCode = subCode.replace(/\\$DETAILMODE/g, detailModeOption);\n\t\t}\n\t\tconst isFloatTint = !!(tintOption & 1);\n\t\tconst isVecTint = !!(tintOption & 2);\n\t\tconst invertOption = !!options[invertName];\n\t\tsubCode = this._addMapDefs(isFloatTint, isVecTint, vertexColorOption, textureOption, invertOption) + subCode;\n\t\treturn subCode.replace(/\\$/g, '');\n\t}\n\t_correctChannel(p, chan, _matTex2D) {\n\t\tif (_matTex2D[p] > 0) {\n\t\t\tif (_matTex2D[p] < chan.length) {\n\t\t\t\treturn chan.substring(0, _matTex2D[p]);\n\t\t\t} else if (_matTex2D[p] > chan.length) {\n\t\t\t\tlet str = chan;\n\t\t\t\tconst chr = str.charAt(str.length - 1);\n\t\t\t\tconst addLen = _matTex2D[p] - str.length;\n\t\t\t\tfor (let i = 0; i < addLen; i++) str += chr;\n\t\t\t\treturn str;\n\t\t\t}\n\t\t\treturn chan;\n\t\t}\n\t}\n\tcreateShaderDefinition(device, options) {\n\t\tconst shaderPassInfo = ShaderPass.get(device).getByIndex(options.litOptions.pass);\n\t\tconst isForwardPass = shaderPassInfo.isForward;\n\t\tconst litShader = new LitShader(device, options.litOptions);\n\t\tconst useUv = [];\n\t\tconst useUnmodifiedUv = [];\n\t\tconst mapTransforms = [];\n\t\tconst maxUvSets = 2;\n\t\tconst textureMapping = {};\n\t\tfor (const p in _matTex2D) {\n\t\t\tconst mname = `${p}Map`;\n\t\t\tif (options[`${p}VertexColor`]) {\n\t\t\t\tconst cname = `${p}VertexColorChannel`;\n\t\t\t\toptions[cname] = this._correctChannel(p, options[cname], _matTex2D);\n\t\t\t}\n\t\t\tif (options[mname]) {\n\t\t\t\tconst cname = `${mname}Channel`;\n\t\t\t\tconst tname = `${mname}Transform`;\n\t\t\t\tconst uname = `${mname}Uv`;\n\t\t\t\toptions[uname] = Math.min(options[uname], maxUvSets - 1);\n\t\t\t\toptions[cname] = this._correctChannel(p, options[cname], _matTex2D);\n\t\t\t\tconst uvSet = options[uname];\n\t\t\t\tuseUv[uvSet] = true;\n\t\t\t\tuseUnmodifiedUv[uvSet] = useUnmodifiedUv[uvSet] || options[mname] && !options[tname];\n\t\t\t\tif (options[tname]) {\n\t\t\t\t\tmapTransforms.push({\n\t\t\t\t\t\tname: p,\n\t\t\t\t\t\tid: options[tname],\n\t\t\t\t\t\tuv: options[uname]\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (options.forceUv1) {\n\t\t\tuseUv[1] = true;\n\t\t\tuseUnmodifiedUv[1] = useUnmodifiedUv[1] !== undefined ? useUnmodifiedUv[1] : true;\n\t\t}\n\t\tlitShader.generateVertexShader(useUv, useUnmodifiedUv, mapTransforms);\n\t\tif (options.litOptions.shadingModel === SPECULAR_PHONG) {\n\t\t\toptions.litOptions.fresnelModel = 0;\n\t\t\toptions.litOptions.ambientSH = false;\n\t\t} else {\n\t\t\toptions.litOptions.fresnelModel = options.litOptions.fresnelModel === 0 ? FRESNEL_SCHLICK : options.litOptions.fresnelModel;\n\t\t}\n\t\tconst decl = new ChunkBuilder();\n\t\tconst code = new ChunkBuilder();\n\t\tconst func = new ChunkBuilder();\n\t\tconst args = new ChunkBuilder();\n\t\tlet lightingUv = '';\n\t\tif (options.litOptions.nineSlicedMode === SPRITE_RENDERMODE_TILED) {\n\t\t\tdecl.append('const float textureBias = -1000.0;');\n\t\t} else {\n\t\t\tdecl.append('uniform float textureBias;');\n\t\t}\n\t\tif (isForwardPass) {\n\t\t\tif (options.heightMap) {\n\t\t\t\tdecl.append('vec2 dUvOffset;');\n\t\t\t\tcode.append(this._addMap('height', 'parallaxPS', options, litShader.chunks, textureMapping));\n\t\t\t\tfunc.append('getParallax();');\n\t\t\t}\n\t\t\tif (options.litOptions.blendType !== BLEND_NONE || options.litOptions.alphaTest || options.litOptions.alphaToCoverage || options.litOptions.opacityDither !== DITHER_NONE) {\n\t\t\t\tdecl.append('float dAlpha;');\n\t\t\t\tcode.append(this._addMap('opacity', 'opacityPS', options, litShader.chunks, textureMapping));\n\t\t\t\tfunc.append('getOpacity();');\n\t\t\t\targs.append('litArgs_opacity = dAlpha;');\n\t\t\t\tif (options.litOptions.alphaTest) {\n\t\t\t\t\tcode.append(litShader.chunks.alphaTestPS);\n\t\t\t\t\tfunc.append('alphaTest(dAlpha);');\n\t\t\t\t}\n\t\t\t\tconst opacityDither = options.litOptions.opacityDither;\n\t\t\t\tif (opacityDither !== DITHER_NONE) {\n\t\t\t\t\tif (opacityDither === DITHER_BAYER8) {\n\t\t\t\t\t\tdecl.append(litShader.chunks.bayerPS);\n\t\t\t\t\t}\n\t\t\t\t\tdecl.append(`#define DITHER_${opacityDither.toUpperCase()}\\n`);\n\t\t\t\t\tdecl.append(litShader.chunks.opacityDitherPS);\n\t\t\t\t\tfunc.append('opacityDither(dAlpha, 0.0);');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdecl.append('float dAlpha = 1.0;');\n\t\t\t}\n\t\t\tif (litShader.needsNormal) {\n\t\t\t\tif (options.normalMap || options.clearCoatNormalMap) {\n\t\t\t\t\tcode.append(options.packedNormal ? litShader.chunks.normalXYPS : litShader.chunks.normalXYZPS);\n\t\t\t\t\tif (!options.litOptions.hasTangents) {\n\t\t\t\t\t\tconst baseName = options.normalMap ? 'normalMap' : 'clearCoatNormalMap';\n\t\t\t\t\t\tlightingUv = this._getUvSourceExpression(`${baseName}Transform`, `${baseName}Uv`, options);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tdecl.append('vec3 dNormalW;');\n\t\t\t\tcode.append(this._addMap('normalDetail', 'normalDetailMapPS', options, litShader.chunks, textureMapping));\n\t\t\t\tcode.append(this._addMap('normal', 'normalMapPS', options, litShader.chunks, textureMapping));\n\t\t\t\tfunc.append('getNormal();');\n\t\t\t\targs.append('litArgs_worldNormal = dNormalW;');\n\t\t\t}\n\t\t\tif (litShader.needsSceneColor) {\n\t\t\t\tdecl.append('uniform sampler2D uSceneColorMap;');\n\t\t\t}\n\t\t\tif (litShader.needsScreenSize) {\n\t\t\t\tdecl.append('uniform vec4 uScreenSize;');\n\t\t\t}\n\t\t\tif (litShader.needsTransforms) {\n\t\t\t\tdecl.append('uniform mat4 matrix_viewProjection;');\n\t\t\t\tdecl.append('uniform mat4 matrix_model;');\n\t\t\t}\n\t\t\tif (options.diffuseDetail || options.aoDetail) {\n\t\t\t\tcode.append(litShader.chunks.detailModesPS);\n\t\t\t}\n\t\t\tdecl.append('vec3 dAlbedo;');\n\t\t\tif (options.diffuseDetail) {\n\t\t\t\tcode.append(this._addMap('diffuseDetail', 'diffuseDetailMapPS', options, litShader.chunks, textureMapping, options.diffuseDetailEncoding));\n\t\t\t}\n\t\t\tcode.append(this._addMap('diffuse', 'diffusePS', options, litShader.chunks, textureMapping, options.diffuseEncoding));\n\t\t\tfunc.append('getAlbedo();');\n\t\t\targs.append('litArgs_albedo = dAlbedo;');\n\t\t\tif (options.litOptions.useRefraction) {\n\t\t\t\tdecl.append('float dTransmission;');\n\t\t\t\tcode.append(this._addMap('refraction', 'transmissionPS', options, litShader.chunks, textureMapping));\n\t\t\t\tfunc.append('getRefraction();');\n\t\t\t\targs.append('litArgs_transmission = dTransmission;');\n\t\t\t\tdecl.append('float dThickness;');\n\t\t\t\tcode.append(this._addMap('thickness', 'thicknessPS', options, litShader.chunks, textureMapping));\n\t\t\t\tfunc.append('getThickness();');\n\t\t\t\targs.append('litArgs_thickness = dThickness;');\n\t\t\t\tif (options.litOptions.dispersion) {\n\t\t\t\t\targs.append('litArgs_dispersion = material_dispersion;');\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (options.litOptions.useIridescence) {\n\t\t\t\tdecl.append('float dIridescence;');\n\t\t\t\tcode.append(this._addMap('iridescence', 'iridescencePS', options, litShader.chunks, textureMapping));\n\t\t\t\tfunc.append('getIridescence();');\n\t\t\t\targs.append('litArgs_iridescence_intensity = dIridescence;');\n\t\t\t\tdecl.append('float dIridescenceThickness;');\n\t\t\t\tcode.append(this._addMap('iridescenceThickness', 'iridescenceThicknessPS', options, litShader.chunks, textureMapping));\n\t\t\t\tfunc.append('getIridescenceThickness();');\n\t\t\t\targs.append('litArgs_iridescence_thickness = dIridescenceThickness;');\n\t\t\t}\n\t\t\tif (litShader.lighting && options.litOptions.useSpecular || litShader.reflections) {\n\t\t\t\tdecl.append('vec3 dSpecularity;');\n\t\t\t\tdecl.append('float dGlossiness;');\n\t\t\t\tif (options.litOptions.useSheen) {\n\t\t\t\t\tdecl.append('vec3 sSpecularity;');\n\t\t\t\t\tcode.append(this._addMap('sheen', 'sheenPS', options, litShader.chunks, textureMapping, options.sheenEncoding));\n\t\t\t\t\tfunc.append('getSheen();');\n\t\t\t\t\targs.append('litArgs_sheen_specularity = sSpecularity;');\n\t\t\t\t\tdecl.append('float sGlossiness;');\n\t\t\t\t\tcode.append(this._addMap('sheenGloss', 'sheenGlossPS', options, litShader.chunks, textureMapping));\n\t\t\t\t\tfunc.append('getSheenGlossiness();');\n\t\t\t\t\targs.append('litArgs_sheen_gloss = sGlossiness;');\n\t\t\t\t}\n\t\t\t\tif (options.litOptions.useMetalness) {\n\t\t\t\t\tdecl.append('float dMetalness;');\n\t\t\t\t\tcode.append(this._addMap('metalness', 'metalnessPS', options, litShader.chunks, textureMapping));\n\t\t\t\t\tfunc.append('getMetalness();');\n\t\t\t\t\targs.append('litArgs_metalness = dMetalness;');\n\t\t\t\t\tdecl.append('float dIor;');\n\t\t\t\t\tcode.append(this._addMap('ior', 'iorPS', options, litShader.chunks, textureMapping));\n\t\t\t\t\tfunc.append('getIor();');\n\t\t\t\t\targs.append('litArgs_ior = dIor;');\n\t\t\t\t}\n\t\t\t\tif (options.litOptions.useSpecularityFactor) {\n\t\t\t\t\tdecl.append('float dSpecularityFactor;');\n\t\t\t\t\tcode.append(this._addMap('specularityFactor', 'specularityFactorPS', options, litShader.chunks, textureMapping));\n\t\t\t\t\tfunc.append('getSpecularityFactor();');\n\t\t\t\t\targs.append('litArgs_specularityFactor = dSpecularityFactor;');\n\t\t\t\t}\n\t\t\t\tif (options.useSpecularColor) {\n\t\t\t\t\tcode.append(this._addMap('specular', 'specularPS', options, litShader.chunks, textureMapping, options.specularEncoding));\n\t\t\t\t} else {\n\t\t\t\t\tcode.append('void getSpecularity() { dSpecularity = vec3(1); }');\n\t\t\t\t}\n\t\t\t\tcode.append(this._addMap('gloss', 'glossPS', options, litShader.chunks, textureMapping));\n\t\t\t\tfunc.append('getGlossiness();');\n\t\t\t\tfunc.append('getSpecularity();');\n\t\t\t\targs.append('litArgs_specularity = dSpecularity;');\n\t\t\t\targs.append('litArgs_gloss = dGlossiness;');\n\t\t\t} else {\n\t\t\t\tdecl.append('vec3 dSpecularity = vec3(0.0);');\n\t\t\t\tdecl.append('float dGlossiness = 0.0;');\n\t\t\t}\n\t\t\tif (options.aoDetail) {\n\t\t\t\tcode.append(this._addMap('aoDetail', 'aoDetailMapPS', options, litShader.chunks, textureMapping));\n\t\t\t}\n\t\t\tif (options.aoMap || options.aoVertexColor) {\n\t\t\t\tdecl.append('float dAo;');\n\t\t\t\tcode.append(this._addMap('ao', 'aoPS', options, litShader.chunks, textureMapping));\n\t\t\t\tfunc.append('getAO();');\n\t\t\t\targs.append('litArgs_ao = dAo;');\n\t\t\t}\n\t\t\tdecl.append('vec3 dEmission;');\n\t\t\tcode.append(this._addMap('emissive', 'emissivePS', options, litShader.chunks, textureMapping, options.emissiveEncoding));\n\t\t\tfunc.append('getEmission();');\n\t\t\targs.append('litArgs_emission = dEmission;');\n\t\t\tif (options.litOptions.useClearCoat) {\n\t\t\t\tdecl.append('float ccSpecularity;');\n\t\t\t\tdecl.append('float ccGlossiness;');\n\t\t\t\tdecl.append('vec3 ccNormalW;');\n\t\t\t\tcode.append(this._addMap('clearCoat', 'clearCoatPS', options, litShader.chunks, textureMapping));\n\t\t\t\tcode.append(this._addMap('clearCoatGloss', 'clearCoatGlossPS', options, litShader.chunks, textureMapping));\n\t\t\t\tcode.append(this._addMap('clearCoatNormal', 'clearCoatNormalPS', options, litShader.chunks, textureMapping));\n\t\t\t\tfunc.append('getClearCoat();');\n\t\t\t\tfunc.append('getClearCoatGlossiness();');\n\t\t\t\tfunc.append('getClearCoatNormal();');\n\t\t\t\targs.append('litArgs_clearcoat_specularity = ccSpecularity;');\n\t\t\t\targs.append('litArgs_clearcoat_gloss = ccGlossiness;');\n\t\t\t\targs.append('litArgs_clearcoat_worldNormal = ccNormalW;');\n\t\t\t}\n\t\t\tif (options.lightMap || options.lightVertexColor) {\n\t\t\t\tconst lightmapDir = options.dirLightMap && options.litOptions.useSpecular;\n\t\t\t\tconst lightmapChunkPropName = lightmapDir ? 'lightmapDirPS' : 'lightmapSinglePS';\n\t\t\t\tdecl.append('vec3 dLightmap;');\n\t\t\t\tif (lightmapDir) {\n\t\t\t\t\tdecl.append('vec3 dLightmapDir;');\n\t\t\t\t}\n\t\t\t\tcode.append(this._addMap('light', lightmapChunkPropName, options, litShader.chunks, textureMapping, options.lightMapEncoding));\n\t\t\t\tfunc.append('getLightMap();');\n\t\t\t\targs.append('litArgs_lightmap = dLightmap;');\n\t\t\t\tif (lightmapDir) {\n\t\t\t\t\targs.append('litArgs_lightmapDir = dLightmapDir;');\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (code.code.indexOf('texture2DSRGB') !== -1 || code.code.indexOf('texture2DRGBM') !== -1 || code.code.indexOf('texture2DRGBE') !== -1) {\n\t\t\t\tcode.prepend(litShader.chunks.textureSamplePS);\n\t\t\t}\n\t\t} else {\n\t\t\tconst opacityShadowDither = options.litOptions.opacityShadowDither;\n\t\t\tif (options.litOptions.alphaTest || opacityShadowDither) {\n\t\t\t\tdecl.append('float dAlpha;');\n\t\t\t\tcode.append(this._addMap('opacity', 'opacityPS', options, litShader.chunks, textureMapping));\n\t\t\t\tfunc.append('getOpacity();');\n\t\t\t\targs.append('litArgs_opacity = dAlpha;');\n\t\t\t\tif (options.litOptions.alphaTest) {\n\t\t\t\t\tcode.append(litShader.chunks.alphaTestPS);\n\t\t\t\t\tfunc.append('alphaTest(dAlpha);');\n\t\t\t\t}\n\t\t\t\tif (opacityShadowDither !== DITHER_NONE) {\n\t\t\t\t\tif (opacityShadowDither === DITHER_BAYER8) {\n\t\t\t\t\t\tdecl.append(litShader.chunks.bayerPS);\n\t\t\t\t\t}\n\t\t\t\t\tdecl.append(`#define DITHER_${opacityShadowDither.toUpperCase()}\\n`);\n\t\t\t\t\tdecl.append(litShader.chunks.opacityDitherPS);\n\t\t\t\t\tfunc.append('opacityDither(dAlpha, 0.0);');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdecl.append(litShader.chunks.litShaderArgsPS);\n\t\tcode.append(`void evaluateFrontend() { \\n${func.code}\\n${args.code}\\n }\\n`);\n\t\tfunc.code = 'evaluateFrontend();';\n\t\tfor (const texture in textureMapping) {\n\t\t\tdecl.append(`uniform sampler2D ${textureMapping[texture]};`);\n\t\t}\n\t\tfunc.code = `\\n${func.code.split('\\n').map(l => `    ${l}`).join('\\n')}\\n\\n`;\n\t\tlitShader.generateFragmentShader(decl.code, code.code, func.code, lightingUv);\n\t\treturn litShader.getDefinition();\n\t}\n}\nconst standard = new ShaderGeneratorStandard();\n\nconst arraysEqual = (a, b) => {\n\tif (a.length !== b.length) {\n\t\treturn false;\n\t}\n\tfor (let i = 0; i < a.length; ++i) {\n\t\tif (a[i] !== b[i]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n};\nconst notWhite = color => {\n\treturn color.r !== 1 || color.g !== 1 || color.b !== 1;\n};\nconst notBlack = color => {\n\treturn color.r !== 0 || color.g !== 0 || color.b !== 0;\n};\nclass StandardMaterialOptionsBuilder {\n\tconstructor() {\n\t\tthis._mapXForms = null;\n\t}\n\tupdateMinRef(options, scene, stdMat, objDefs, pass, sortedLights) {\n\t\tthis._updateSharedOptions(options, scene, stdMat, objDefs, pass);\n\t\tthis._updateMinOptions(options, stdMat, pass);\n\t\tthis._updateUVOptions(options, stdMat, objDefs, true);\n\t}\n\tupdateRef(options, scene, stdMat, objDefs, pass, sortedLights) {\n\t\tthis._updateSharedOptions(options, scene, stdMat, objDefs, pass);\n\t\tthis._updateEnvOptions(options, stdMat, scene);\n\t\tthis._updateMaterialOptions(options, stdMat);\n\t\tif (pass === SHADER_FORWARDHDR) {\n\t\t\tif (options.litOptions.gamma) options.litOptions.gamma = GAMMA_SRGBHDR;\n\t\t\toptions.litOptions.toneMap = TONEMAP_LINEAR;\n\t\t}\n\t\toptions.litOptions.hasTangents = objDefs && (objDefs & SHADERDEF_TANGENTS) !== 0;\n\t\tthis._updateLightOptions(options, scene, stdMat, objDefs, sortedLights);\n\t\tthis._updateUVOptions(options, stdMat, objDefs, false);\n\t}\n\t_updateSharedOptions(options, scene, stdMat, objDefs, pass) {\n\t\toptions.forceUv1 = stdMat.forceUv1;\n\t\tif (stdMat.userAttributes) {\n\t\t\toptions.litOptions.userAttributes = Object.fromEntries(stdMat.userAttributes.entries());\n\t\t}\n\t\toptions.litOptions.chunks = stdMat.chunks || {};\n\t\toptions.litOptions.pass = pass;\n\t\toptions.litOptions.alphaTest = stdMat.alphaTest > 0;\n\t\toptions.litOptions.blendType = stdMat.blendType;\n\t\toptions.litOptions.screenSpace = objDefs && (objDefs & SHADERDEF_SCREENSPACE) !== 0;\n\t\toptions.litOptions.skin = objDefs && (objDefs & SHADERDEF_SKIN) !== 0;\n\t\toptions.litOptions.useInstancing = objDefs && (objDefs & SHADERDEF_INSTANCING) !== 0;\n\t\toptions.litOptions.useMorphPosition = objDefs && (objDefs & SHADERDEF_MORPH_POSITION) !== 0;\n\t\toptions.litOptions.useMorphNormal = objDefs && (objDefs & SHADERDEF_MORPH_NORMAL) !== 0;\n\t\toptions.litOptions.useMorphTextureBased = objDefs && (objDefs & SHADERDEF_MORPH_TEXTURE_BASED) !== 0;\n\t\toptions.litOptions.nineSlicedMode = stdMat.nineSlicedMode || 0;\n\t\tif (scene.clusteredLightingEnabled && stdMat.useLighting) {\n\t\t\toptions.litOptions.clusteredLightingEnabled = true;\n\t\t\toptions.litOptions.clusteredLightingCookiesEnabled = scene.lighting.cookiesEnabled;\n\t\t\toptions.litOptions.clusteredLightingShadowsEnabled = scene.lighting.shadowsEnabled;\n\t\t\toptions.litOptions.clusteredLightingShadowType = scene.lighting.shadowType;\n\t\t\toptions.litOptions.clusteredLightingAreaLightsEnabled = scene.lighting.areaLightsEnabled;\n\t\t} else {\n\t\t\toptions.litOptions.clusteredLightingEnabled = false;\n\t\t\toptions.litOptions.clusteredLightingCookiesEnabled = false;\n\t\t\toptions.litOptions.clusteredLightingShadowsEnabled = false;\n\t\t\toptions.litOptions.clusteredLightingAreaLightsEnabled = false;\n\t\t}\n\t}\n\t_updateUVOptions(options, stdMat, objDefs, minimalOptions) {\n\t\tlet hasUv0 = false;\n\t\tlet hasUv1 = false;\n\t\tlet hasVcolor = false;\n\t\tif (objDefs) {\n\t\t\thasUv0 = (objDefs & SHADERDEF_UV0) !== 0;\n\t\t\thasUv1 = (objDefs & SHADERDEF_UV1) !== 0;\n\t\t\thasVcolor = (objDefs & SHADERDEF_VCOLOR) !== 0;\n\t\t}\n\t\toptions.litOptions.vertexColors = false;\n\t\tthis._mapXForms = [];\n\t\tconst uniqueTextureMap = {};\n\t\tfor (const p in _matTex2D) {\n\t\t\tthis._updateTexOptions(options, stdMat, p, hasUv0, hasUv1, hasVcolor, minimalOptions, uniqueTextureMap);\n\t\t}\n\t\tthis._mapXForms = null;\n\t\toptions.litOptions.lightMapEnabled = options.lightMap;\n\t\toptions.litOptions.dirLightMapEnabled = options.dirLightMap;\n\t\toptions.litOptions.useHeights = options.heightMap;\n\t\toptions.litOptions.useNormals = options.normalMap;\n\t\toptions.litOptions.useClearCoatNormals = options.clearCoatNormalMap;\n\t\toptions.litOptions.useAo = options.aoMap || options.aoVertexColor;\n\t\toptions.litOptions.diffuseMapEnabled = options.diffuseMap;\n\t}\n\t_updateTexOptions(options, stdMat, p, hasUv0, hasUv1, hasVcolor, minimalOptions, uniqueTextureMap) {\n\t\tconst isOpacity = p === 'opacity';\n\t\tif (!minimalOptions || isOpacity) {\n\t\t\tconst mname = `${p}Map`;\n\t\t\tconst vname = `${p}VertexColor`;\n\t\t\tconst vcname = `${p}VertexColorChannel`;\n\t\t\tconst cname = `${mname}Channel`;\n\t\t\tconst tname = `${mname}Transform`;\n\t\t\tconst uname = `${mname}Uv`;\n\t\t\tconst iname = `${mname}Identifier`;\n\t\t\tif (p !== 'light') {\n\t\t\t\toptions[mname] = false;\n\t\t\t\toptions[iname] = undefined;\n\t\t\t\toptions[cname] = '';\n\t\t\t\toptions[tname] = 0;\n\t\t\t\toptions[uname] = 0;\n\t\t\t}\n\t\t\toptions[vname] = false;\n\t\t\toptions[vcname] = '';\n\t\t\tif (isOpacity && stdMat.blendType === BLEND_NONE && stdMat.alphaTest === 0.0 && !stdMat.alphaToCoverage && stdMat.opacityDither === DITHER_NONE) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (p !== 'height' && stdMat[vname]) {\n\t\t\t\tif (hasVcolor) {\n\t\t\t\t\toptions[vname] = stdMat[vname];\n\t\t\t\t\toptions[vcname] = stdMat[vcname];\n\t\t\t\t\toptions.litOptions.vertexColors = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (stdMat[mname]) {\n\t\t\t\tlet allow = true;\n\t\t\t\tif (stdMat[uname] === 0 && !hasUv0) allow = false;\n\t\t\t\tif (stdMat[uname] === 1 && !hasUv1) allow = false;\n\t\t\t\tif (allow) {\n\t\t\t\t\tconst mapId = stdMat[mname].id;\n\t\t\t\t\tlet identifier = uniqueTextureMap[mapId];\n\t\t\t\t\tif (identifier === undefined) {\n\t\t\t\t\t\tuniqueTextureMap[mapId] = p;\n\t\t\t\t\t\tidentifier = p;\n\t\t\t\t\t}\n\t\t\t\t\toptions[mname] = !!stdMat[mname];\n\t\t\t\t\toptions[iname] = identifier;\n\t\t\t\t\toptions[tname] = this._getMapTransformID(stdMat.getUniform(tname), stdMat[uname]);\n\t\t\t\t\toptions[cname] = stdMat[cname];\n\t\t\t\t\toptions[uname] = stdMat[uname];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t_updateMinOptions(options, stdMat, pass) {\n\t\toptions.opacityTint = stdMat.blendType !== BLEND_NONE || stdMat.opacityShadowDither !== DITHER_NONE;\n\t\tconst isPrepass = pass === SHADER_PREPASS_VELOCITY;\n\t\toptions.litOptions.opacityShadowDither = isPrepass ? stdMat.opacityDither : stdMat.opacityShadowDither;\n\t\toptions.litOptions.lights = [];\n\t}\n\t_updateMaterialOptions(options, stdMat) {\n\t\tvar _stdMat$diffuseMap, _stdMat$diffuseDetail, _stdMat$emissiveMap, _stdMat$lightMap;\n\t\tconst diffuseTint = stdMat.diffuseTint || !stdMat.diffuseMap && !stdMat.diffuseVertexColor;\n\t\tconst useSpecular = !!(stdMat.useMetalness || stdMat.specularMap || stdMat.sphereMap || stdMat.cubeMap || notBlack(stdMat.specular) || stdMat.specularityFactor > 0 && stdMat.useMetalness || stdMat.enableGGXSpecular || stdMat.clearCoat > 0);\n\t\tconst useSpecularColor = !stdMat.useMetalness || stdMat.useMetalnessSpecularColor;\n\t\tconst specularTint = useSpecular && (stdMat.specularTint || !stdMat.specularMap && !stdMat.specularVertexColor) && notWhite(stdMat.specular);\n\t\tconst specularityFactorTint = useSpecular && stdMat.useMetalnessSpecularColor && (stdMat.specularityFactorTint || stdMat.specularityFactor < 1 && !stdMat.specularityFactorMap);\n\t\tconst emissiveTintColor = !stdMat.emissiveMap || notWhite(stdMat.emissive) && stdMat.emissiveTint;\n\t\tconst emissiveTintIntensity = stdMat.emissiveIntensity !== 1;\n\t\tconst isPackedNormalMap = stdMat.normalMap ? stdMat.normalMap.format === PIXELFORMAT_DXT5 || stdMat.normalMap.type === TEXTURETYPE_SWIZZLEGGGR : false;\n\t\toptions.opacityTint = stdMat.blendType !== BLEND_NONE || stdMat.alphaTest > 0 || stdMat.opacityDither !== DITHER_NONE ? 1 : 0;\n\t\toptions.ambientTint = stdMat.ambientTint;\n\t\toptions.diffuseTint = diffuseTint ? 2 : 0;\n\t\toptions.specularTint = specularTint ? 2 : 0;\n\t\toptions.specularityFactorTint = specularityFactorTint ? 1 : 0;\n\t\toptions.metalnessTint = stdMat.useMetalness && stdMat.metalness < 1 ? 1 : 0;\n\t\toptions.glossTint = 1;\n\t\toptions.emissiveTint = (emissiveTintColor ? 2 : 0) + (emissiveTintIntensity ? 1 : 0);\n\t\toptions.diffuseEncoding = (_stdMat$diffuseMap = stdMat.diffuseMap) == null ? void 0 : _stdMat$diffuseMap.encoding;\n\t\toptions.diffuseDetailEncoding = (_stdMat$diffuseDetail = stdMat.diffuseDetailMap) == null ? void 0 : _stdMat$diffuseDetail.encoding;\n\t\toptions.emissiveEncoding = (_stdMat$emissiveMap = stdMat.emissiveMap) == null ? void 0 : _stdMat$emissiveMap.encoding;\n\t\toptions.lightMapEncoding = (_stdMat$lightMap = stdMat.lightMap) == null ? void 0 : _stdMat$lightMap.encoding;\n\t\toptions.packedNormal = isPackedNormalMap;\n\t\toptions.refractionTint = stdMat.refraction !== 1.0 ? 1 : 0;\n\t\toptions.refractionIndexTint = stdMat.refractionIndex !== 1.0 / 1.5 ? 1 : 0;\n\t\toptions.thicknessTint = stdMat.useDynamicRefraction && stdMat.thickness !== 1.0 ? 1 : 0;\n\t\toptions.specularEncoding = stdMat.specularEncoding || 'linear';\n\t\toptions.sheenEncoding = stdMat.sheenEncoding || 'linear';\n\t\toptions.aoMapUv = stdMat.aoUvSet;\n\t\toptions.aoDetail = !!stdMat.aoMap;\n\t\toptions.diffuseDetail = !!stdMat.diffuseMap;\n\t\toptions.normalDetail = !!stdMat.normalMap;\n\t\toptions.diffuseDetailMode = stdMat.diffuseDetailMode;\n\t\toptions.aoDetailMode = stdMat.aoDetailMode;\n\t\toptions.clearCoatTint = stdMat.clearCoat !== 1.0 ? 1 : 0;\n\t\toptions.clearCoatGloss = !!stdMat.clearCoatGloss;\n\t\toptions.clearCoatGlossTint = stdMat.clearCoatGloss !== 1.0 ? 1 : 0;\n\t\toptions.iorTint = stdMat.refractionIndex !== 1.0 / 1.5 ? 1 : 0;\n\t\toptions.iridescenceTint = stdMat.iridescence !== 1.0 ? 1 : 0;\n\t\toptions.sheenTint = stdMat.useSheen && notWhite(stdMat.sheen) ? 2 : 0;\n\t\toptions.sheenGlossTint = 1;\n\t\toptions.glossInvert = stdMat.glossInvert;\n\t\toptions.sheenGlossInvert = stdMat.sheenGlossInvert;\n\t\toptions.clearCoatGlossInvert = stdMat.clearCoatGlossInvert;\n\t\toptions.useSpecularColor = useSpecularColor;\n\t\toptions.litOptions.separateAmbient = false;\n\t\toptions.litOptions.useAmbientTint = stdMat.ambientTint;\n\t\toptions.litOptions.customFragmentShader = stdMat.customFragmentShader;\n\t\toptions.litOptions.pixelSnap = stdMat.pixelSnap;\n\t\toptions.litOptions.shadingModel = stdMat.shadingModel;\n\t\toptions.litOptions.ambientSH = !!stdMat.ambientSH;\n\t\toptions.litOptions.fastTbn = stdMat.fastTbn;\n\t\toptions.litOptions.twoSidedLighting = stdMat.twoSidedLighting;\n\t\toptions.litOptions.occludeSpecular = stdMat.occludeSpecular;\n\t\toptions.litOptions.occludeSpecularFloat = stdMat.occludeSpecularIntensity !== 1.0;\n\t\toptions.litOptions.useMsdf = !!stdMat.msdfMap;\n\t\toptions.litOptions.msdfTextAttribute = !!stdMat.msdfTextAttribute;\n\t\toptions.litOptions.alphaToCoverage = stdMat.alphaToCoverage;\n\t\toptions.litOptions.opacityFadesSpecular = stdMat.opacityFadesSpecular;\n\t\toptions.litOptions.opacityDither = stdMat.opacityDither;\n\t\toptions.litOptions.cubeMapProjection = stdMat.cubeMapProjection;\n\t\toptions.litOptions.occludeDirect = stdMat.occludeDirect;\n\t\toptions.litOptions.conserveEnergy = stdMat.conserveEnergy && stdMat.shadingModel !== SPECULAR_PHONG;\n\t\toptions.litOptions.useSpecular = useSpecular;\n\t\toptions.litOptions.useSpecularityFactor = (specularityFactorTint || !!stdMat.specularityFactorMap) && stdMat.useMetalnessSpecularColor;\n\t\toptions.litOptions.enableGGXSpecular = stdMat.enableGGXSpecular;\n\t\toptions.litOptions.fresnelModel = stdMat.fresnelModel;\n\t\toptions.litOptions.useRefraction = (stdMat.refraction || !!stdMat.refractionMap) && (stdMat.useDynamicRefraction || !!options.litOptions.reflectionSource);\n\t\toptions.litOptions.useClearCoat = !!stdMat.clearCoat;\n\t\toptions.litOptions.useSheen = stdMat.useSheen;\n\t\toptions.litOptions.useIridescence = stdMat.useIridescence && stdMat.iridescence !== 0.0;\n\t\toptions.litOptions.useMetalness = stdMat.useMetalness;\n\t\toptions.litOptions.useDynamicRefraction = stdMat.useDynamicRefraction;\n\t\toptions.litOptions.dispersion = stdMat.dispersion > 0;\n\t}\n\t_updateEnvOptions(options, stdMat, scene) {\n\t\toptions.litOptions.fog = stdMat.useFog ? scene.fog : 'none';\n\t\toptions.litOptions.gamma = stdMat.useGammaTonemap ? scene.gammaCorrection : GAMMA_NONE;\n\t\toptions.litOptions.toneMap = stdMat.useGammaTonemap ? scene.toneMapping : -1;\n\t\toptions.litOptions.fixSeams = stdMat.cubeMap ? stdMat.cubeMap.fixCubemapSeams : false;\n\t\tconst isPhong = stdMat.shadingModel === SPECULAR_PHONG;\n\t\tlet usingSceneEnv = false;\n\t\tif (stdMat.envAtlas && stdMat.cubeMap && !isPhong) {\n\t\t\toptions.litOptions.reflectionSource = 'envAtlasHQ';\n\t\t\toptions.litOptions.reflectionEncoding = stdMat.envAtlas.encoding;\n\t\t\toptions.litOptions.reflectionCubemapEncoding = stdMat.cubeMap.encoding;\n\t\t} else if (stdMat.envAtlas && !isPhong) {\n\t\t\toptions.litOptions.reflectionSource = 'envAtlas';\n\t\t\toptions.litOptions.reflectionEncoding = stdMat.envAtlas.encoding;\n\t\t} else if (stdMat.cubeMap) {\n\t\t\toptions.litOptions.reflectionSource = 'cubeMap';\n\t\t\toptions.litOptions.reflectionEncoding = stdMat.cubeMap.encoding;\n\t\t} else if (stdMat.sphereMap) {\n\t\t\toptions.litOptions.reflectionSource = 'sphereMap';\n\t\t\toptions.litOptions.reflectionEncoding = stdMat.sphereMap.encoding;\n\t\t} else if (stdMat.useSkybox && scene.envAtlas && scene.skybox && !isPhong) {\n\t\t\toptions.litOptions.reflectionSource = 'envAtlasHQ';\n\t\t\toptions.litOptions.reflectionEncoding = scene.envAtlas.encoding;\n\t\t\toptions.litOptions.reflectionCubemapEncoding = scene.skybox.encoding;\n\t\t\tusingSceneEnv = true;\n\t\t} else if (stdMat.useSkybox && scene.envAtlas && !isPhong) {\n\t\t\toptions.litOptions.reflectionSource = 'envAtlas';\n\t\t\toptions.litOptions.reflectionEncoding = scene.envAtlas.encoding;\n\t\t\tusingSceneEnv = true;\n\t\t} else if (stdMat.useSkybox && scene.skybox) {\n\t\t\toptions.litOptions.reflectionSource = 'cubeMap';\n\t\t\toptions.litOptions.reflectionEncoding = scene.skybox.encoding;\n\t\t\tusingSceneEnv = true;\n\t\t} else {\n\t\t\toptions.litOptions.reflectionSource = null;\n\t\t\toptions.litOptions.reflectionEncoding = null;\n\t\t}\n\t\tif (stdMat.ambientSH && !isPhong) {\n\t\t\toptions.litOptions.ambientSource = 'ambientSH';\n\t\t\toptions.litOptions.ambientEncoding = null;\n\t\t} else {\n\t\t\tconst envAtlas = stdMat.envAtlas || (stdMat.useSkybox && scene.envAtlas ? scene.envAtlas : null);\n\t\t\tif (envAtlas && !isPhong) {\n\t\t\t\toptions.litOptions.ambientSource = 'envAtlas';\n\t\t\t\toptions.litOptions.ambientEncoding = envAtlas.encoding;\n\t\t\t} else {\n\t\t\t\toptions.litOptions.ambientSource = 'constant';\n\t\t\t\toptions.litOptions.ambientEncoding = null;\n\t\t\t}\n\t\t}\n\t\toptions.litOptions.skyboxIntensity = usingSceneEnv;\n\t\toptions.litOptions.useCubeMapRotation = usingSceneEnv && scene._skyboxRotationShaderInclude;\n\t}\n\t_updateLightOptions(options, scene, stdMat, objDefs, sortedLights) {\n\t\toptions.lightMap = false;\n\t\toptions.lightMapChannel = '';\n\t\toptions.lightMapUv = 0;\n\t\toptions.lightMapTransform = 0;\n\t\toptions.litOptions.lightMapWithoutAmbient = false;\n\t\toptions.dirLightMap = false;\n\t\tif (objDefs) {\n\t\t\toptions.litOptions.noShadow = (objDefs & SHADERDEF_NOSHADOW) !== 0;\n\t\t\tif ((objDefs & SHADERDEF_LM) !== 0) {\n\t\t\t\toptions.lightMapEncoding = scene.lightmapPixelFormat === PIXELFORMAT_RGBA8 ? 'rgbm' : 'linear';\n\t\t\t\toptions.lightMap = true;\n\t\t\t\toptions.lightMapChannel = 'rgb';\n\t\t\t\toptions.lightMapUv = 1;\n\t\t\t\toptions.lightMapTransform = 0;\n\t\t\t\toptions.litOptions.lightMapWithoutAmbient = !stdMat.lightMap;\n\t\t\t\tif ((objDefs & SHADERDEF_DIRLM) !== 0) {\n\t\t\t\t\toptions.dirLightMap = true;\n\t\t\t\t}\n\t\t\t\tif ((objDefs & SHADERDEF_LMAMBIENT) !== 0) {\n\t\t\t\t\toptions.litOptions.lightMapWithoutAmbient = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (stdMat.useLighting) {\n\t\t\tconst lightsFiltered = [];\n\t\t\tconst mask = objDefs ? objDefs >> 16 : MASK_AFFECT_DYNAMIC;\n\t\t\toptions.litOptions.lightMaskDynamic = !!(mask & MASK_AFFECT_DYNAMIC);\n\t\t\tif (sortedLights) {\n\t\t\t\tLitMaterialOptionsBuilder.collectLights(LIGHTTYPE_DIRECTIONAL, sortedLights[LIGHTTYPE_DIRECTIONAL], lightsFiltered, mask);\n\t\t\t\tLitMaterialOptionsBuilder.collectLights(LIGHTTYPE_OMNI, sortedLights[LIGHTTYPE_OMNI], lightsFiltered, mask);\n\t\t\t\tLitMaterialOptionsBuilder.collectLights(LIGHTTYPE_SPOT, sortedLights[LIGHTTYPE_SPOT], lightsFiltered, mask);\n\t\t\t}\n\t\t\toptions.litOptions.lights = lightsFiltered;\n\t\t} else {\n\t\t\toptions.litOptions.lights = [];\n\t\t}\n\t\tif (options.litOptions.lights.length === 0) {\n\t\t\toptions.litOptions.noShadow = true;\n\t\t}\n\t}\n\t_getMapTransformID(xform, uv) {\n\t\tif (!xform) return 0;\n\t\tlet xforms = this._mapXForms[uv];\n\t\tif (!xforms) {\n\t\t\txforms = [];\n\t\t\tthis._mapXForms[uv] = xforms;\n\t\t}\n\t\tfor (let i = 0; i < xforms.length; i++) {\n\t\t\tif (arraysEqual(xforms[i][0].value, xform[0].value) && arraysEqual(xforms[i][1].value, xform[1].value)) {\n\t\t\t\treturn i + 1;\n\t\t\t}\n\t\t}\n\t\treturn xforms.push(xform);\n\t}\n}\n\nfunction __adjustStandardMaterialParameterTypes(types) {\n\ttypes.useGamma = 'boolean';\n\ttypes.aoIntensity = 'number';\n}\nconst _tintProperties = ['ambientTint', 'emissiveTint', 'diffuseTint', 'sheenTint'];\nfunction __adjustStandardMaterialData(data) {\n\t_tintProperties.forEach(prop => {\n\t\tif (data[prop] === undefined) {\n\t\t\tdata[prop] = true;\n\t\t}\n\t});\n}\n\nfunction _textureParameter(name, channel = true, vertexColor = true) {\n\tconst result = {};\n\tresult[`${name}Map`] = 'texture';\n\tresult[`${name}MapTiling`] = 'vec2';\n\tresult[`${name}MapOffset`] = 'vec2';\n\tresult[`${name}MapRotation`] = 'number';\n\tresult[`${name}MapUv`] = 'number';\n\tif (channel) {\n\t\tresult[`${name}MapChannel`] = 'string';\n\t\tif (vertexColor) {\n\t\t\tresult[`${name}VertexColor`] = 'boolean';\n\t\t\tresult[`${name}VertexColorChannel`] = 'string';\n\t\t}\n\t}\n\treturn result;\n}\nconst standardMaterialParameterTypes = _extends({\n\tname: 'string',\n\tchunks: 'chunks',\n\tmappingFormat: 'string',\n\t_engine: 'boolean',\n\tambient: 'rgb',\n\tambientTint: 'boolean'\n}, _textureParameter('ao'), _textureParameter('aoDetail', true, false), {\n\taoDetailMode: 'string',\n\tdiffuse: 'rgb',\n\tdiffuseTint: 'boolean'\n}, _textureParameter('diffuse'), _textureParameter('diffuseDetail', true, false), {\n\tdiffuseDetailMode: 'string',\n\tspecular: 'rgb',\n\tspecularTint: 'boolean'\n}, _textureParameter('specular'), {\n\toccludeSpecular: 'enum:occludeSpecular',\n\tspecularityFactor: 'number',\n\tspecularityFactorTint: 'boolean'\n}, _textureParameter('specularityFactor'), {\n\tuseMetalness: 'boolean',\n\tmetalness: 'number',\n\tenableGGXSpecular: 'boolean',\n\tanisotropy: 'number',\n\tmetalnessTint: 'boolean'\n}, _textureParameter('metalness'), {\n\tuseMetalnessSpecularColor: 'boolean',\n\tconserveEnergy: 'boolean',\n\tshininess: 'number',\n\tgloss: 'number',\n\tglossInvert: 'boolean'\n}, _textureParameter('gloss'), {\n\tclearCoat: 'number'\n}, _textureParameter('clearCoat'), {\n\tclearCoatGloss: 'number',\n\tclearCoatGlossInvert: 'boolean'\n}, _textureParameter('clearCoatGloss'), {\n\tclearCoatBumpiness: 'number'\n}, _textureParameter('clearCoatNormal', false), {\n\tuseSheen: 'boolean',\n\tsheen: 'rgb',\n\tsheenTint: 'boolean'\n}, _textureParameter('sheen'), {\n\tsheenGloss: 'number',\n\tsheenGlossTint: 'boolean',\n\tsheenGlossInvert: 'boolean'\n}, _textureParameter('sheenGloss'), {\n\tfresnelModel: 'number',\n\temissive: 'rgb',\n\temissiveTint: 'boolean'\n}, _textureParameter('emissive'), {\n\temissiveIntensity: 'number'\n}, _textureParameter('normal', false), {\n\tbumpiness: 'number'\n}, _textureParameter('normalDetail', false), {\n\tnormalDetailMapBumpiness: 'number'\n}, _textureParameter('height', true, false), {\n\theightMapFactor: 'number',\n\talphaToCoverage: 'boolean',\n\talphaTest: 'number',\n\talphaFade: 'number',\n\topacity: 'number'\n}, _textureParameter('opacity'), {\n\topacityFadesSpecular: 'boolean',\n\topacityDither: 'string',\n\topacityShadowDither: 'string',\n\treflectivity: 'number',\n\trefraction: 'number',\n\trefractionTint: 'boolean'\n}, _textureParameter('refraction'), {\n\trefractionIndex: 'number',\n\tdispersion: 'number',\n\tthickness: 'number',\n\tthicknessTint: 'boolean'\n}, _textureParameter('thickness'), {\n\tattenuation: 'rgb',\n\tattenuationDistance: 'number',\n\tuseDynamicRefraction: 'boolean',\n\tsphereMap: 'texture',\n\tcubeMap: 'cubemap',\n\tcubeMapProjection: 'number',\n\tcubeMapProjectionBox: 'boundingbox',\n\tuseIridescence: 'boolean',\n\tiridescence: 'number',\n\tiridescenceTint: 'boolean'\n}, _textureParameter('iridescence'), {\n\tiridescenceThicknessTint: 'boolean',\n\tiridescenceThicknessMin: 'number',\n\tiridescenceThicknessMax: 'number',\n\tiridescenceRefractionIndex: 'number'\n}, _textureParameter('iridescenceThickness'), _textureParameter('light'), {\n\tdepthTest: 'boolean',\n\tdepthFunc: 'enum:depthFunc',\n\tdepthWrite: 'boolean',\n\tdepthBias: 'number',\n\tslopeDepthBias: 'number',\n\tcull: 'enum:cull',\n\tblendType: 'enum:blendType',\n\tshadingModel: 'enum:shadingModel',\n\tuseFog: 'boolean',\n\tuseLighting: 'boolean',\n\tuseSkybox: 'boolean',\n\tuseGammaTonemap: 'boolean',\n\tenvAtlas: 'texture',\n\ttwoSidedLighting: 'boolean'\n});\n__adjustStandardMaterialParameterTypes(standardMaterialParameterTypes);\nconst standardMaterialTextureParameters = [];\nfor (const key in standardMaterialParameterTypes) {\n\tconst type = standardMaterialParameterTypes[key];\n\tif (type === 'texture') {\n\t\tstandardMaterialTextureParameters.push(key);\n\t}\n}\nconst standardMaterialCubemapParameters = [];\nfor (const key in standardMaterialParameterTypes) {\n\tconst type = standardMaterialParameterTypes[key];\n\tif (type === 'cubemap') {\n\t\tstandardMaterialCubemapParameters.push(key);\n\t}\n}\nconst standardMaterialRemovedParameters = {\n\taoMapVertexColor: 'boolean',\n\tdiffuseMapTint: 'boolean',\n\tdiffuseMapVertexColor: 'boolean',\n\temissiveMapTint: 'boolean',\n\temissiveMapVertexColor: 'boolean',\n\tglossMapVertexColor: 'boolean',\n\tmetalnessMapVertexColor: 'boolean',\n\topacityMapVertexColor: 'boolean',\n\tspecularAntialias: 'boolean',\n\tspecularMapTint: 'boolean',\n\tspecularMapVertexColor: 'boolean',\n\tuseTonemap: 'boolean',\n\taoIntensity: 'number'\n};\n\nconst _props = {};\nconst _uniforms = {};\nlet _params = new Set();\nclass StandardMaterial extends Material {\n\tconstructor() {\n\t\tsuper();\n\t\tthis.userAttributes = new Map();\n\t\tthis._dirtyShader = true;\n\t\tthis._assetReferences = {};\n\t\tthis._activeParams = new Set();\n\t\tthis._activeLightingParams = new Set();\n\t\tthis.shaderOptBuilder = new StandardMaterialOptionsBuilder();\n\t\tthis.reset();\n\t}\n\treset() {\n\t\tObject.keys(_props).forEach(name => {\n\t\t\tthis[`_${name}`] = _props[name].value();\n\t\t});\n\t\tthis._chunks = {};\n\t\tthis._uniformCache = {};\n\t}\n\tset shader(shader) {}\n\tget shader() {\n\t\treturn null;\n\t}\n\tset chunks(value) {\n\t\tthis._dirtyShader = true;\n\t\tthis._chunks = value;\n\t}\n\tget chunks() {\n\t\tthis._dirtyShader = true;\n\t\treturn this._chunks;\n\t}\n\tcopy(source) {\n\t\tsuper.copy(source);\n\t\tObject.keys(_props).forEach(k => {\n\t\t\tthis[k] = source[k];\n\t\t});\n\t\tfor (const p in source._chunks) {\n\t\t\tif (source._chunks.hasOwnProperty(p)) {\n\t\t\t\tthis._chunks[p] = source._chunks[p];\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\tsetAttribute(name, semantic) {\n\t\tthis.userAttributes.set(semantic, name);\n\t}\n\t_setParameter(name, value) {\n\t\t_params.add(name);\n\t\tthis.setParameter(name, value);\n\t}\n\t_setParameters(parameters) {\n\t\tparameters.forEach(v => {\n\t\t\tthis._setParameter(v.name, v.value);\n\t\t});\n\t}\n\t_processParameters(paramsName) {\n\t\tconst prevParams = this[paramsName];\n\t\tprevParams.forEach(param => {\n\t\t\tif (!_params.has(param)) {\n\t\t\t\tdelete this.parameters[param];\n\t\t\t}\n\t\t});\n\t\tthis[paramsName] = _params;\n\t\t_params = prevParams;\n\t\t_params.clear();\n\t}\n\t_updateMap(p) {\n\t\tconst mname = `${p}Map`;\n\t\tconst map = this[mname];\n\t\tif (map) {\n\t\t\tthis._setParameter(`texture_${mname}`, map);\n\t\t\tconst tname = `${mname}Transform`;\n\t\t\tconst uniform = this.getUniform(tname);\n\t\t\tif (uniform) {\n\t\t\t\tthis._setParameters(uniform);\n\t\t\t}\n\t\t}\n\t}\n\t_allocUniform(name, allocFunc) {\n\t\tlet uniform = this._uniformCache[name];\n\t\tif (!uniform) {\n\t\t\tuniform = allocFunc();\n\t\t\tthis._uniformCache[name] = uniform;\n\t\t}\n\t\treturn uniform;\n\t}\n\tgetUniform(name, device, scene) {\n\t\treturn _uniforms[name](this, device, scene);\n\t}\n\tupdateUniforms(device, scene) {\n\t\tconst getUniform = name => {\n\t\t\treturn this.getUniform(name, device, scene);\n\t\t};\n\t\tthis._setParameter('material_ambient', getUniform('ambient'));\n\t\tif (!this.diffuseMap || this.diffuseTint) {\n\t\t\tthis._setParameter('material_diffuse', getUniform('diffuse'));\n\t\t}\n\t\tif (this.useMetalness) {\n\t\t\tif (!this.metalnessMap || this.metalness < 1) {\n\t\t\t\tthis._setParameter('material_metalness', this.metalness);\n\t\t\t}\n\t\t\tif (!this.specularMap || this.specularTint) {\n\t\t\t\tthis._setParameter('material_specular', getUniform('specular'));\n\t\t\t}\n\t\t\tif (!this.specularityFactorMap || this.specularityFactorTint) {\n\t\t\t\tthis._setParameter('material_specularityFactor', this.specularityFactor);\n\t\t\t}\n\t\t\tif (!this.sheenMap || this.sheenTint) {\n\t\t\t\tthis._setParameter('material_sheen', getUniform('sheen'));\n\t\t\t}\n\t\t\tif (!this.sheenGlossMap || this.sheenGlossTint) {\n\t\t\t\tthis._setParameter('material_sheenGloss', this.sheenGloss);\n\t\t\t}\n\t\t\tthis._setParameter('material_refractionIndex', this.refractionIndex);\n\t\t} else {\n\t\t\tif (!this.specularMap || this.specularTint) {\n\t\t\t\tthis._setParameter('material_specular', getUniform('specular'));\n\t\t\t}\n\t\t}\n\t\tif (this.enableGGXSpecular) {\n\t\t\tthis._setParameter('material_anisotropy', this.anisotropy);\n\t\t}\n\t\tif (this.clearCoat > 0) {\n\t\t\tthis._setParameter('material_clearCoat', this.clearCoat);\n\t\t\tthis._setParameter('material_clearCoatGloss', this.clearCoatGloss);\n\t\t\tthis._setParameter('material_clearCoatBumpiness', this.clearCoatBumpiness);\n\t\t}\n\t\tthis._setParameter('material_gloss', getUniform('gloss'));\n\t\tif (!this.emissiveMap || this.emissiveTint) {\n\t\t\tthis._setParameter('material_emissive', getUniform('emissive'));\n\t\t}\n\t\tif (this.emissiveIntensity !== 1) {\n\t\t\tthis._setParameter('material_emissiveIntensity', this.emissiveIntensity);\n\t\t}\n\t\tif (this.refraction > 0) {\n\t\t\tthis._setParameter('material_refraction', this.refraction);\n\t\t}\n\t\tif (this.dispersion > 0) {\n\t\t\tthis._setParameter('material_dispersion', this.dispersion);\n\t\t}\n\t\tif (this.useDynamicRefraction) {\n\t\t\tthis._setParameter('material_thickness', this.thickness);\n\t\t\tthis._setParameter('material_attenuation', getUniform('attenuation'));\n\t\t\tthis._setParameter('material_invAttenuationDistance', this.attenuationDistance === 0 ? 0 : 1.0 / this.attenuationDistance);\n\t\t}\n\t\tif (this.useIridescence) {\n\t\t\tthis._setParameter('material_iridescence', this.iridescence);\n\t\t\tthis._setParameter('material_iridescenceRefractionIndex', this.iridescenceRefractionIndex);\n\t\t\tthis._setParameter('material_iridescenceThicknessMin', this.iridescenceThicknessMin);\n\t\t\tthis._setParameter('material_iridescenceThicknessMax', this.iridescenceThicknessMax);\n\t\t}\n\t\tthis._setParameter('material_opacity', this.opacity);\n\t\tif (this.opacityFadesSpecular === false) {\n\t\t\tthis._setParameter('material_alphaFade', this.alphaFade);\n\t\t}\n\t\tif (this.occludeSpecular) {\n\t\t\tthis._setParameter('material_occludeSpecularIntensity', this.occludeSpecularIntensity);\n\t\t}\n\t\tif (this.cubeMapProjection === CUBEPROJ_BOX) {\n\t\t\tthis._setParameter(getUniform('cubeMapProjectionBox'));\n\t\t}\n\t\tfor (const p in _matTex2D) {\n\t\t\tthis._updateMap(p);\n\t\t}\n\t\tif (this.ambientSH) {\n\t\t\tthis._setParameter('ambientSH[0]', this.ambientSH);\n\t\t}\n\t\tif (this.normalMap) {\n\t\t\tthis._setParameter('material_bumpiness', this.bumpiness);\n\t\t}\n\t\tif (this.normalMap && this.normalDetailMap) {\n\t\t\tthis._setParameter('material_normalDetailMapBumpiness', this.normalDetailMapBumpiness);\n\t\t}\n\t\tif (this.heightMap) {\n\t\t\tthis._setParameter('material_heightMapFactor', getUniform('heightMapFactor'));\n\t\t}\n\t\tconst isPhong = this.shadingModel === SPECULAR_PHONG;\n\t\tif (this.envAtlas && this.cubeMap && !isPhong) {\n\t\t\tthis._setParameter('texture_envAtlas', this.envAtlas);\n\t\t\tthis._setParameter('texture_cubeMap', this.cubeMap);\n\t\t} else if (this.envAtlas && !isPhong) {\n\t\t\tthis._setParameter('texture_envAtlas', this.envAtlas);\n\t\t} else if (this.cubeMap) {\n\t\t\tthis._setParameter('texture_cubeMap', this.cubeMap);\n\t\t} else if (this.sphereMap) {\n\t\t\tthis._setParameter('texture_sphereMap', this.sphereMap);\n\t\t}\n\t\tthis._setParameter('material_reflectivity', this.reflectivity);\n\t\tthis._processParameters('_activeParams');\n\t\tif (this._dirtyShader) {\n\t\t\tthis.clearVariants();\n\t\t}\n\t}\n\tupdateEnvUniforms(device, scene) {\n\t\tconst isPhong = this.shadingModel === SPECULAR_PHONG;\n\t\tconst hasLocalEnvOverride = this.envAtlas && !isPhong || this.cubeMap || this.sphereMap;\n\t\tif (!hasLocalEnvOverride && this.useSkybox) {\n\t\t\tif (scene.envAtlas && scene.skybox && !isPhong) {\n\t\t\t\tthis._setParameter('texture_envAtlas', scene.envAtlas);\n\t\t\t\tthis._setParameter('texture_cubeMap', scene.skybox);\n\t\t\t} else if (scene.envAtlas && !isPhong) {\n\t\t\t\tthis._setParameter('texture_envAtlas', scene.envAtlas);\n\t\t\t} else if (scene.skybox) {\n\t\t\t\tthis._setParameter('texture_cubeMap', scene.skybox);\n\t\t\t}\n\t\t}\n\t\tthis._processParameters('_activeLightingParams');\n\t}\n\tgetShaderVariant(device, scene, objDefs, unused, pass, sortedLights, viewUniformFormat, viewBindGroupFormat, vertexFormat) {\n\t\tthis.updateEnvUniforms(device, scene);\n\t\tconst shaderPassInfo = ShaderPass.get(device).getByIndex(pass);\n\t\tconst minimalOptions = pass === SHADER_DEPTH || pass === SHADER_PICK || pass === SHADER_PREPASS_VELOCITY || shaderPassInfo.isShadow;\n\t\tlet options = minimalOptions ? standard.optionsContextMin : standard.optionsContext;\n\t\tif (minimalOptions) {\n\t\t\tthis.shaderOptBuilder.updateMinRef(options, scene, this, objDefs, pass, sortedLights);\n\t\t} else {\n\t\t\tthis.shaderOptBuilder.updateRef(options, scene, this, objDefs, pass, sortedLights);\n\t\t}\n\t\tif (this.onUpdateShader) {\n\t\t\toptions = this.onUpdateShader(options);\n\t\t}\n\t\tconst processingOptions = new ShaderProcessorOptions(viewUniformFormat, viewBindGroupFormat, vertexFormat);\n\t\tconst library = getProgramLibrary(device);\n\t\tlibrary.register('standard', standard);\n\t\tconst shader = library.getProgram('standard', options, processingOptions, this.userId);\n\t\tthis._dirtyShader = false;\n\t\treturn shader;\n\t}\n\tdestroy() {\n\t\tfor (const asset in this._assetReferences) {\n\t\t\tthis._assetReferences[asset]._unbind();\n\t\t}\n\t\tthis._assetReferences = null;\n\t\tsuper.destroy();\n\t}\n}\nStandardMaterial.TEXTURE_PARAMETERS = standardMaterialTextureParameters;\nStandardMaterial.CUBEMAP_PARAMETERS = standardMaterialCubemapParameters;\nconst defineUniform = (name, getUniformFunc) => {\n\t_uniforms[name] = getUniformFunc;\n};\nconst definePropInternal = (name, constructorFunc, setterFunc, getterFunc) => {\n\tObject.defineProperty(StandardMaterial.prototype, name, {\n\t\tget: getterFunc || function () {\n\t\t\treturn this[`_${name}`];\n\t\t},\n\t\tset: setterFunc\n\t});\n\t_props[name] = {\n\t\tvalue: constructorFunc\n\t};\n};\nconst defineValueProp = prop => {\n\tconst internalName = `_${prop.name}`;\n\tconst dirtyShaderFunc = prop.dirtyShaderFunc || (() => true);\n\tconst setterFunc = function setterFunc(value) {\n\t\tconst oldValue = this[internalName];\n\t\tif (oldValue !== value) {\n\t\t\tthis._dirtyShader = this._dirtyShader || dirtyShaderFunc(oldValue, value);\n\t\t\tthis[internalName] = value;\n\t\t}\n\t};\n\tdefinePropInternal(prop.name, () => prop.defaultValue, setterFunc, prop.getterFunc);\n};\nconst defineAggProp = prop => {\n\tconst internalName = `_${prop.name}`;\n\tconst dirtyShaderFunc = prop.dirtyShaderFunc || (() => true);\n\tconst setterFunc = function setterFunc(value) {\n\t\tconst oldValue = this[internalName];\n\t\tif (!oldValue.equals(value)) {\n\t\t\tthis._dirtyShader = this._dirtyShader || dirtyShaderFunc(oldValue, value);\n\t\t\tthis[internalName] = oldValue.copy(value);\n\t\t}\n\t};\n\tdefinePropInternal(prop.name, () => prop.defaultValue.clone(), setterFunc, prop.getterFunc);\n};\nconst defineProp = prop => {\n\treturn prop.defaultValue && prop.defaultValue.clone ? defineAggProp(prop) : defineValueProp(prop);\n};\nfunction _defineTex2D(name, channel = 'rgb', vertexColor = true, uv = 0) {\n\t_matTex2D[name] = channel.length || -1;\n\tdefineProp({\n\t\tname: `${name}Map`,\n\t\tdefaultValue: null,\n\t\tdirtyShaderFunc: (oldValue, newValue) => {\n\t\t\treturn !!oldValue !== !!newValue || oldValue && (oldValue.type !== newValue.type || oldValue.fixCubemapSeams !== newValue.fixCubemapSeams || oldValue.format !== newValue.format);\n\t\t}\n\t});\n\tdefineProp({\n\t\tname: `${name}MapTiling`,\n\t\tdefaultValue: new Vec2(1, 1)\n\t});\n\tdefineProp({\n\t\tname: `${name}MapOffset`,\n\t\tdefaultValue: new Vec2(0, 0)\n\t});\n\tdefineProp({\n\t\tname: `${name}MapRotation`,\n\t\tdefaultValue: 0\n\t});\n\tdefineProp({\n\t\tname: `${name}MapUv`,\n\t\tdefaultValue: uv\n\t});\n\tif (channel) {\n\t\tdefineProp({\n\t\t\tname: `${name}MapChannel`,\n\t\t\tdefaultValue: channel\n\t\t});\n\t\tif (vertexColor) {\n\t\t\tdefineProp({\n\t\t\t\tname: `${name}VertexColor`,\n\t\t\t\tdefaultValue: false\n\t\t\t});\n\t\t\tdefineProp({\n\t\t\t\tname: `${name}VertexColorChannel`,\n\t\t\t\tdefaultValue: channel\n\t\t\t});\n\t\t}\n\t}\n\tconst mapTiling = `${name}MapTiling`;\n\tconst mapOffset = `${name}MapOffset`;\n\tconst mapRotation = `${name}MapRotation`;\n\tconst mapTransform = `${name}MapTransform`;\n\tdefineUniform(mapTransform, (material, device, scene) => {\n\t\tconst tiling = material[mapTiling];\n\t\tconst offset = material[mapOffset];\n\t\tconst rotation = material[mapRotation];\n\t\tif (tiling.x === 1 && tiling.y === 1 && offset.x === 0 && offset.y === 0 && rotation === 0) {\n\t\t\treturn null;\n\t\t}\n\t\tconst uniform = material._allocUniform(mapTransform, () => {\n\t\t\treturn [{\n\t\t\t\tname: `texture_${mapTransform}0`,\n\t\t\t\tvalue: new Float32Array(3)\n\t\t\t}, {\n\t\t\t\tname: `texture_${mapTransform}1`,\n\t\t\t\tvalue: new Float32Array(3)\n\t\t\t}];\n\t\t});\n\t\tconst cr = Math.cos(rotation * math.DEG_TO_RAD);\n\t\tconst sr = Math.sin(rotation * math.DEG_TO_RAD);\n\t\tconst uniform0 = uniform[0].value;\n\t\tuniform0[0] = cr * tiling.x;\n\t\tuniform0[1] = -sr * tiling.y;\n\t\tuniform0[2] = offset.x;\n\t\tconst uniform1 = uniform[1].value;\n\t\tuniform1[0] = sr * tiling.x;\n\t\tuniform1[1] = cr * tiling.y;\n\t\tuniform1[2] = 1.0 - tiling.y - offset.y;\n\t\treturn uniform;\n\t});\n}\nfunction _defineColor(name, defaultValue) {\n\tdefineProp({\n\t\tname: name,\n\t\tdefaultValue: defaultValue,\n\t\tgetterFunc: function () {\n\t\t\tthis._dirtyShader = true;\n\t\t\treturn this[`_${name}`];\n\t\t}\n\t});\n\tdefineUniform(name, (material, device, scene) => {\n\t\tconst uniform = material._allocUniform(name, () => new Float32Array(3));\n\t\tconst color = material[name];\n\t\tconst gamma = material.useGammaTonemap && scene.gammaCorrection;\n\t\tif (gamma) {\n\t\t\tuniform[0] = Math.pow(color.r, 2.2);\n\t\t\tuniform[1] = Math.pow(color.g, 2.2);\n\t\t\tuniform[2] = Math.pow(color.b, 2.2);\n\t\t} else {\n\t\t\tuniform[0] = color.r;\n\t\t\tuniform[1] = color.g;\n\t\t\tuniform[2] = color.b;\n\t\t}\n\t\treturn uniform;\n\t});\n}\nfunction _defineFloat(name, defaultValue, getUniformFunc) {\n\tdefineProp({\n\t\tname: name,\n\t\tdefaultValue: defaultValue,\n\t\tdirtyShaderFunc: (oldValue, newValue) => {\n\t\t\treturn (oldValue === 0 || oldValue === 1) !== (newValue === 0 || newValue === 1);\n\t\t}\n\t});\n\tdefineUniform(name, getUniformFunc);\n}\nfunction _defineObject(name, getUniformFunc) {\n\tdefineProp({\n\t\tname: name,\n\t\tdefaultValue: null,\n\t\tdirtyShaderFunc: (oldValue, newValue) => {\n\t\t\treturn !!oldValue === !!newValue;\n\t\t}\n\t});\n\tdefineUniform(name, getUniformFunc);\n}\nfunction _defineFlag(name, defaultValue) {\n\tdefineProp({\n\t\tname: name,\n\t\tdefaultValue: defaultValue\n\t});\n}\nfunction _defineMaterialProps() {\n\t_defineColor('ambient', new Color(0.7, 0.7, 0.7));\n\t_defineColor('diffuse', new Color(1, 1, 1));\n\t_defineColor('specular', new Color(0, 0, 0));\n\t_defineColor('emissive', new Color(0, 0, 0));\n\t_defineColor('sheen', new Color(1, 1, 1));\n\t_defineColor('attenuation', new Color(1, 1, 1));\n\t_defineFloat('emissiveIntensity', 1);\n\t_defineFloat('specularityFactor', 1);\n\t_defineFloat('sheenGloss', 0.0);\n\t_defineFloat('gloss', 0.25, (material, device, scene) => {\n\t\treturn material.shadingModel === SPECULAR_PHONG ? Math.pow(2, material.gloss * 11) : material.gloss;\n\t});\n\t_defineFloat('heightMapFactor', 1, (material, device, scene) => {\n\t\treturn material.heightMapFactor * 0.025;\n\t});\n\t_defineFloat('opacity', 1);\n\t_defineFloat('alphaFade', 1);\n\t_defineFloat('alphaTest', 0);\n\t_defineFloat('bumpiness', 1);\n\t_defineFloat('normalDetailMapBumpiness', 1);\n\t_defineFloat('reflectivity', 1);\n\t_defineFloat('occludeSpecularIntensity', 1);\n\t_defineFloat('refraction', 0);\n\t_defineFloat('refractionIndex', 1.0 / 1.5);\n\t_defineFloat('dispersion', 0);\n\t_defineFloat('thickness', 0);\n\t_defineFloat('attenuationDistance', 0);\n\t_defineFloat('metalness', 1);\n\t_defineFloat('anisotropy', 0);\n\t_defineFloat('clearCoat', 0);\n\t_defineFloat('clearCoatGloss', 1);\n\t_defineFloat('clearCoatBumpiness', 1);\n\t_defineFloat('aoUvSet', 0, null);\n\t_defineFloat('iridescence', 0);\n\t_defineFloat('iridescenceRefractionIndex', 1.0 / 1.5);\n\t_defineFloat('iridescenceThicknessMin', 0);\n\t_defineFloat('iridescenceThicknessMax', 0);\n\t_defineObject('ambientSH');\n\t_defineObject('cubeMapProjectionBox', (material, device, scene) => {\n\t\tconst uniform = material._allocUniform('cubeMapProjectionBox', () => {\n\t\t\treturn [{\n\t\t\t\tname: 'envBoxMin',\n\t\t\t\tvalue: new Float32Array(3)\n\t\t\t}, {\n\t\t\t\tname: 'envBoxMax',\n\t\t\t\tvalue: new Float32Array(3)\n\t\t\t}];\n\t\t});\n\t\tconst bboxMin = material.cubeMapProjectionBox.getMin();\n\t\tconst minUniform = uniform[0].value;\n\t\tminUniform[0] = bboxMin.x;\n\t\tminUniform[1] = bboxMin.y;\n\t\tminUniform[2] = bboxMin.z;\n\t\tconst bboxMax = material.cubeMapProjectionBox.getMax();\n\t\tconst maxUniform = uniform[1].value;\n\t\tmaxUniform[0] = bboxMax.x;\n\t\tmaxUniform[1] = bboxMax.y;\n\t\tmaxUniform[2] = bboxMax.z;\n\t\treturn uniform;\n\t});\n\t_defineFlag('ambientTint', false);\n\t_defineFlag('diffuseTint', false);\n\t_defineFlag('sheenTint', false);\n\t_defineFlag('specularTint', false);\n\t_defineFlag('specularityFactorTint', false);\n\t_defineFlag('emissiveTint', false);\n\t_defineFlag('fastTbn', false);\n\t_defineFlag('useMetalness', false);\n\t_defineFlag('useMetalnessSpecularColor', false);\n\t_defineFlag('useSheen', false);\n\t_defineFlag('enableGGXSpecular', false);\n\t_defineFlag('occludeDirect', false);\n\t_defineFlag('normalizeNormalMap', true);\n\t_defineFlag('conserveEnergy', true);\n\t_defineFlag('opacityFadesSpecular', true);\n\t_defineFlag('occludeSpecular', SPECOCC_AO);\n\t_defineFlag('shadingModel', SPECULAR_BLINN);\n\t_defineFlag('fresnelModel', FRESNEL_SCHLICK);\n\t_defineFlag('useDynamicRefraction', false);\n\t_defineFlag('cubeMapProjection', CUBEPROJ_NONE);\n\t_defineFlag('customFragmentShader', null);\n\t_defineFlag('useFog', true);\n\t_defineFlag('useLighting', true);\n\t_defineFlag('useGammaTonemap', true);\n\t_defineFlag('useSkybox', true);\n\t_defineFlag('forceUv1', false);\n\t_defineFlag('pixelSnap', false);\n\t_defineFlag('twoSidedLighting', false);\n\t_defineFlag('nineSlicedMode', undefined);\n\t_defineFlag('msdfTextAttribute', false);\n\t_defineFlag('useIridescence', false);\n\t_defineFlag('glossInvert', false);\n\t_defineFlag('sheenGlossInvert', false);\n\t_defineFlag('clearCoatGlossInvert', false);\n\t_defineFlag('opacityDither', DITHER_NONE);\n\t_defineFlag('opacityShadowDither', DITHER_NONE);\n\t_defineTex2D('diffuse');\n\t_defineTex2D('specular');\n\t_defineTex2D('emissive');\n\t_defineTex2D('thickness', 'g');\n\t_defineTex2D('specularityFactor', 'g');\n\t_defineTex2D('normal', '');\n\t_defineTex2D('metalness', 'g');\n\t_defineTex2D('gloss', 'g');\n\t_defineTex2D('opacity', 'a');\n\t_defineTex2D('refraction', 'g');\n\t_defineTex2D('height', 'g', false);\n\t_defineTex2D('ao', 'g');\n\t_defineTex2D('light', 'rgb', true, 1);\n\t_defineTex2D('msdf', '');\n\t_defineTex2D('diffuseDetail', 'rgb', false);\n\t_defineTex2D('normalDetail', '');\n\t_defineTex2D('aoDetail', 'g', false);\n\t_defineTex2D('clearCoat', 'g');\n\t_defineTex2D('clearCoatGloss', 'g');\n\t_defineTex2D('clearCoatNormal', '');\n\t_defineTex2D('sheen', 'rgb');\n\t_defineTex2D('sheenGloss', 'g');\n\t_defineTex2D('iridescence', 'g');\n\t_defineTex2D('iridescenceThickness', 'g');\n\t_defineFlag('diffuseDetailMode', DETAILMODE_MUL);\n\t_defineFlag('aoDetailMode', DETAILMODE_MUL);\n\t_defineObject('cubeMap');\n\t_defineObject('sphereMap');\n\t_defineObject('envAtlas');\n\tconst getterFunc = function getterFunc() {\n\t\treturn this._prefilteredCubemaps;\n\t};\n\tconst setterFunc = function setterFunc(value) {\n\t\tconst cubemaps = this._prefilteredCubemaps;\n\t\tvalue = value || [];\n\t\tlet changed = false;\n\t\tlet complete = true;\n\t\tfor (let i = 0; i < 6; ++i) {\n\t\t\tconst v = value[i] || null;\n\t\t\tif (cubemaps[i] !== v) {\n\t\t\t\tcubemaps[i] = v;\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\tcomplete = complete && !!cubemaps[i];\n\t\t}\n\t\tif (changed) {\n\t\t\tif (complete) {\n\t\t\t\tthis.envAtlas = EnvLighting.generatePrefilteredAtlas(cubemaps, {\n\t\t\t\t\ttarget: this.envAtlas\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tif (this.envAtlas) {\n\t\t\t\t\tthis.envAtlas.destroy();\n\t\t\t\t\tthis.envAtlas = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._dirtyShader = true;\n\t\t}\n\t};\n\tconst empty = [null, null, null, null, null, null];\n\tdefinePropInternal('prefilteredCubemaps', () => empty.slice(), setterFunc, getterFunc);\n}\n_defineMaterialProps();\n\nclass TextureAtlas extends EventHandler {\n\tconstructor() {\n\t\tsuper();\n\t\tthis._texture = null;\n\t\tthis._frames = null;\n\t}\n\tset texture(value) {\n\t\tthis._texture = value;\n\t\tthis.fire('set:texture', value);\n\t}\n\tget texture() {\n\t\treturn this._texture;\n\t}\n\tset frames(value) {\n\t\tthis._frames = value;\n\t\tthis.fire('set:frames', value);\n\t}\n\tget frames() {\n\t\treturn this._frames;\n\t}\n\tsetFrame(key, data) {\n\t\tlet frame = this._frames[key];\n\t\tif (!frame) {\n\t\t\tframe = {\n\t\t\t\trect: data.rect.clone(),\n\t\t\t\tpivot: data.pivot.clone(),\n\t\t\t\tborder: data.border.clone()\n\t\t\t};\n\t\t\tthis._frames[key] = frame;\n\t\t} else {\n\t\t\tframe.rect.copy(data.rect);\n\t\t\tframe.pivot.copy(data.pivot);\n\t\t\tframe.border.copy(data.border);\n\t\t}\n\t\tthis.fire('set:frame', key.toString(), frame);\n\t}\n\tremoveFrame(key) {\n\t\tconst frame = this._frames[key];\n\t\tif (frame) {\n\t\t\tdelete this._frames[key];\n\t\t\tthis.fire('remove:frame', key.toString(), frame);\n\t\t}\n\t}\n\tdestroy() {\n\t\tif (this._texture) {\n\t\t\tthis._texture.destroy();\n\t\t}\n\t}\n}\n\nclass Key {\n\tconstructor(time, position, rotation, scale) {\n\t\tthis.time = time;\n\t\tthis.position = position;\n\t\tthis.rotation = rotation;\n\t\tthis.scale = scale;\n\t}\n}\nclass Node {\n\tconstructor() {\n\t\tthis._name = '';\n\t\tthis._keys = [];\n\t}\n}\nclass Animation {\n\tconstructor() {\n\t\tthis.name = '';\n\t\tthis.duration = 0;\n\t\tthis._nodes = [];\n\t\tthis._nodeDict = {};\n\t}\n\tgetNode(name) {\n\t\treturn this._nodeDict[name];\n\t}\n\taddNode(node) {\n\t\tthis._nodes.push(node);\n\t\tthis._nodeDict[node._name] = node;\n\t}\n\tget nodes() {\n\t\treturn this._nodes;\n\t}\n}\n\nclass InterpolatedKey {\n\tconstructor() {\n\t\tthis._written = false;\n\t\tthis._name = '';\n\t\tthis._keyFrames = [];\n\t\tthis._quat = new Quat();\n\t\tthis._pos = new Vec3();\n\t\tthis._scale = new Vec3();\n\t\tthis._targetNode = null;\n\t}\n\tgetTarget() {\n\t\treturn this._targetNode;\n\t}\n\tsetTarget(node) {\n\t\tthis._targetNode = node;\n\t}\n}\nclass Skeleton {\n\tconstructor(graph) {\n\t\tthis.looping = true;\n\t\tthis._animation = null;\n\t\tthis._time = 0;\n\t\tthis._interpolatedKeys = [];\n\t\tthis._interpolatedKeyDict = {};\n\t\tthis._currKeyIndices = {};\n\t\tthis.graph = null;\n\t\tconst addInterpolatedKeys = node => {\n\t\t\tconst interpKey = new InterpolatedKey();\n\t\t\tinterpKey._name = node.name;\n\t\t\tthis._interpolatedKeys.push(interpKey);\n\t\t\tthis._interpolatedKeyDict[node.name] = interpKey;\n\t\t\tthis._currKeyIndices[node.name] = 0;\n\t\t\tfor (let i = 0; i < node._children.length; i++) {\n\t\t\t\taddInterpolatedKeys(node._children[i]);\n\t\t\t}\n\t\t};\n\t\taddInterpolatedKeys(graph);\n\t}\n\tset animation(value) {\n\t\tthis._animation = value;\n\t\tthis.currentTime = 0;\n\t}\n\tget animation() {\n\t\treturn this._animation;\n\t}\n\tset currentTime(value) {\n\t\tthis._time = value;\n\t\tconst numNodes = this._interpolatedKeys.length;\n\t\tfor (let i = 0; i < numNodes; i++) {\n\t\t\tconst node = this._interpolatedKeys[i];\n\t\t\tconst nodeName = node._name;\n\t\t\tthis._currKeyIndices[nodeName] = 0;\n\t\t}\n\t\tthis.addTime(0);\n\t\tthis.updateGraph();\n\t}\n\tget currentTime() {\n\t\treturn this._time;\n\t}\n\tget numNodes() {\n\t\treturn this._interpolatedKeys.length;\n\t}\n\taddTime(delta) {\n\t\tif (this._animation !== null) {\n\t\t\tconst nodes = this._animation._nodes;\n\t\t\tconst duration = this._animation.duration;\n\t\t\tif (this._time === duration && !this.looping) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._time += delta;\n\t\t\tif (this._time > duration) {\n\t\t\t\tthis._time = this.looping ? 0.0 : duration;\n\t\t\t\tfor (let i = 0; i < nodes.length; i++) {\n\t\t\t\t\tconst node = nodes[i];\n\t\t\t\t\tconst nodeName = node._name;\n\t\t\t\t\tthis._currKeyIndices[nodeName] = 0;\n\t\t\t\t}\n\t\t\t} else if (this._time < 0) {\n\t\t\t\tthis._time = this.looping ? duration : 0.0;\n\t\t\t\tfor (let i = 0; i < nodes.length; i++) {\n\t\t\t\t\tconst node = nodes[i];\n\t\t\t\t\tconst nodeName = node._name;\n\t\t\t\t\tthis._currKeyIndices[nodeName] = node._keys.length - 2;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst offset = delta >= 0 ? 1 : -1;\n\t\t\tfor (let i = 0; i < nodes.length; i++) {\n\t\t\t\tconst node = nodes[i];\n\t\t\t\tconst nodeName = node._name;\n\t\t\t\tconst keys = node._keys;\n\t\t\t\tconst interpKey = this._interpolatedKeyDict[nodeName];\n\t\t\t\tif (interpKey === undefined) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tlet foundKey = false;\n\t\t\t\tif (keys.length !== 1) {\n\t\t\t\t\tfor (let currKeyIndex = this._currKeyIndices[nodeName]; currKeyIndex < keys.length - 1 && currKeyIndex >= 0; currKeyIndex += offset) {\n\t\t\t\t\t\tconst k1 = keys[currKeyIndex];\n\t\t\t\t\t\tconst k2 = keys[currKeyIndex + 1];\n\t\t\t\t\t\tif (k1.time <= this._time && k2.time >= this._time) {\n\t\t\t\t\t\t\tconst alpha = (this._time - k1.time) / (k2.time - k1.time);\n\t\t\t\t\t\t\tinterpKey._pos.lerp(k1.position, k2.position, alpha);\n\t\t\t\t\t\t\tinterpKey._quat.slerp(k1.rotation, k2.rotation, alpha);\n\t\t\t\t\t\t\tinterpKey._scale.lerp(k1.scale, k2.scale, alpha);\n\t\t\t\t\t\t\tinterpKey._written = true;\n\t\t\t\t\t\t\tthis._currKeyIndices[nodeName] = currKeyIndex;\n\t\t\t\t\t\t\tfoundKey = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (keys.length === 1 || !foundKey && this._time === 0.0 && this.looping) {\n\t\t\t\t\tinterpKey._pos.copy(keys[0].position);\n\t\t\t\t\tinterpKey._quat.copy(keys[0].rotation);\n\t\t\t\t\tinterpKey._scale.copy(keys[0].scale);\n\t\t\t\t\tinterpKey._written = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tblend(skel1, skel2, alpha) {\n\t\tconst numNodes = this._interpolatedKeys.length;\n\t\tfor (let i = 0; i < numNodes; i++) {\n\t\t\tconst key1 = skel1._interpolatedKeys[i];\n\t\t\tconst key2 = skel2._interpolatedKeys[i];\n\t\t\tconst dstKey = this._interpolatedKeys[i];\n\t\t\tif (key1._written && key2._written) {\n\t\t\t\tdstKey._quat.slerp(key1._quat, skel2._interpolatedKeys[i]._quat, alpha);\n\t\t\t\tdstKey._pos.lerp(key1._pos, skel2._interpolatedKeys[i]._pos, alpha);\n\t\t\t\tdstKey._scale.lerp(key1._scale, key2._scale, alpha);\n\t\t\t\tdstKey._written = true;\n\t\t\t} else if (key1._written) {\n\t\t\t\tdstKey._quat.copy(key1._quat);\n\t\t\t\tdstKey._pos.copy(key1._pos);\n\t\t\t\tdstKey._scale.copy(key1._scale);\n\t\t\t\tdstKey._written = true;\n\t\t\t} else if (key2._written) {\n\t\t\t\tdstKey._quat.copy(key2._quat);\n\t\t\t\tdstKey._pos.copy(key2._pos);\n\t\t\t\tdstKey._scale.copy(key2._scale);\n\t\t\t\tdstKey._written = true;\n\t\t\t}\n\t\t}\n\t}\n\tsetGraph(graph) {\n\t\tthis.graph = graph;\n\t\tif (graph) {\n\t\t\tfor (let i = 0; i < this._interpolatedKeys.length; i++) {\n\t\t\t\tconst interpKey = this._interpolatedKeys[i];\n\t\t\t\tconst graphNode = graph.findByName(interpKey._name);\n\t\t\t\tthis._interpolatedKeys[i].setTarget(graphNode);\n\t\t\t}\n\t\t} else {\n\t\t\tfor (let i = 0; i < this._interpolatedKeys.length; i++) {\n\t\t\t\tthis._interpolatedKeys[i].setTarget(null);\n\t\t\t}\n\t\t}\n\t}\n\tupdateGraph() {\n\t\tif (this.graph) {\n\t\t\tfor (let i = 0; i < this._interpolatedKeys.length; i++) {\n\t\t\t\tconst interpKey = this._interpolatedKeys[i];\n\t\t\t\tif (interpKey._written) {\n\t\t\t\t\tconst transform = interpKey.getTarget();\n\t\t\t\t\ttransform.localPosition.copy(interpKey._pos);\n\t\t\t\t\ttransform.localRotation.copy(interpKey._quat);\n\t\t\t\t\ttransform.localScale.copy(interpKey._scale);\n\t\t\t\t\tif (!transform._dirtyLocal) {\n\t\t\t\t\t\ttransform._dirtifyLocal();\n\t\t\t\t\t}\n\t\t\t\t\tinterpKey._written = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst _viewport$1 = new Vec4();\nclass PostEffect {\n\tconstructor(graphicsDevice) {\n\t\tthis.device = graphicsDevice;\n\t\tthis.needsDepthBuffer = false;\n\t}\n\trender(inputTarget, outputTarget, rect) {}\n\tdrawQuad(target, shader, rect) {\n\t\tlet viewport;\n\t\tif (rect) {\n\t\t\tconst w = target ? target.width : this.device.width;\n\t\t\tconst h = target ? target.height : this.device.height;\n\t\t\tviewport = _viewport$1.set(rect.x * w, rect.y * h, rect.z * w, rect.w * h);\n\t\t}\n\t\tthis.device.setBlendState(BlendState.NOBLEND);\n\t\tdrawQuadWithShader(this.device, target, shader, viewport);\n\t}\n}\nPostEffect.quadVertexShader = `\n\t\t\t\tattribute vec2 aPosition;\n\t\t\t\tvarying vec2 vUv0;\n\t\t\t\tvoid main(void)\n\t\t\t\t{\n\t\t\t\t\t\tgl_Position = vec4(aPosition, 0.0, 1.0);\n\t\t\t\t\t\tvUv0 = getImageEffectUV((aPosition.xy + 1.0) * 0.5);\n\t\t\t\t}\n\t\t`;\n\nclass RenderPassShaderQuad extends RenderPass {\n\tconstructor(...args) {\n\t\tsuper(...args);\n\t\tthis._shader = null;\n\t\tthis.quadRender = null;\n\t\tthis.cullMode = CULLFACE_NONE;\n\t\tthis.blendState = BlendState.NOBLEND;\n\t\tthis.depthState = DepthState.NODEPTH;\n\t\tthis.stencilFront = null;\n\t\tthis.stencilBack = null;\n\t}\n\tset shader(shader) {\n\t\tvar _this$quadRender, _this$_shader;\n\t\t(_this$quadRender = this.quadRender) == null || _this$quadRender.destroy();\n\t\tthis.quadRender = null;\n\t\t(_this$_shader = this._shader) == null || _this$_shader.destroy();\n\t\tthis._shader = shader;\n\t\tif (shader) {\n\t\t\tthis.quadRender = new QuadRender(shader);\n\t\t}\n\t}\n\tget shader() {\n\t\treturn this._shader;\n\t}\n\tcreateQuadShader(name, fs, shaderDefinitionOptions = {}) {\n\t\treturn createShaderFromCode(this.device, RenderPassShaderQuad.quadVertexShader, fs, name, {\n\t\t\taPosition: SEMANTIC_POSITION\n\t\t}, shaderDefinitionOptions);\n\t}\n\tdestroy() {\n\t\tvar _this$shader;\n\t\t(_this$shader = this.shader) == null || _this$shader.destroy();\n\t\tthis.shader = null;\n\t}\n\texecute() {\n\t\tconst device = this.device;\n\t\tdevice.setBlendState(this.blendState);\n\t\tdevice.setCullMode(this.cullMode);\n\t\tdevice.setDepthState(this.depthState);\n\t\tdevice.setStencilState(this.stencilFront, this.stencilBack);\n\t\tthis.quadRender.render();\n\t}\n}\nRenderPassShaderQuad.quadVertexShader = `\n\t\t\t\tattribute vec2 aPosition;\n\t\t\t\tvarying vec2 uv0;\n\t\t\t\tvoid main(void)\n\t\t\t\t{\n\t\t\t\t\t\tgl_Position = vec4(aPosition, 0.0, 1.0);\n\t\t\t\t\t\tuv0 = getImageEffectUV((aPosition.xy + 1.0) * 0.5);\n\t\t\t\t}\n\t\t`;\n\nfunction areaElement(x, y) {\n\treturn Math.atan2(x * y, Math.sqrt(x * x + y * y + 1));\n}\nfunction texelCoordSolidAngle(u, v, size) {\n\tlet _u = 2.0 * (u + 0.5) / size - 1.0;\n\tlet _v = 2.0 * (v + 0.5) / size - 1.0;\n\t_u *= 1.0 - 1.0 / size;\n\t_v *= 1.0 - 1.0 / size;\n\tconst invResolution = 1.0 / size;\n\tconst x0 = _u - invResolution;\n\tconst y0 = _v - invResolution;\n\tconst x1 = _u + invResolution;\n\tconst y1 = _v + invResolution;\n\tlet solidAngle = areaElement(x0, y0) - areaElement(x0, y1) - areaElement(x1, y0) + areaElement(x1, y1);\n\tif (u === 0 && v === 0 || u === size - 1 && v === 0 || u === 0 && v === size - 1 || u === size - 1 && v === size - 1) {\n\t\tsolidAngle /= 3;\n\t} else if (u === 0 || v === 0 || u === size - 1 || v === size - 1) {\n\t\tsolidAngle *= 0.5;\n\t}\n\treturn solidAngle;\n}\nfunction shFromCubemap(device, source, dontFlipX) {\n\tif (source.format !== PIXELFORMAT_RGBA8) {\n\t\treturn null;\n\t}\n\tif (!source._levels[0] || !source._levels[0][0]) {\n\t\treturn null;\n\t}\n\tconst cubeSize = source.width;\n\tif (!source._levels[0][0].length) {\n\t\tif (source._levels[0][0] instanceof HTMLImageElement) {\n\t\t\tconst shader = createShaderFromCode(device, shaderChunks.fullscreenQuadVS, shaderChunks.fullscreenQuadPS, 'fsQuadSimple');\n\t\t\tconst constantTexSource = device.scope.resolve('source');\n\t\t\tfor (let face = 0; face < 6; face++) {\n\t\t\t\tconst img = source._levels[0][face];\n\t\t\t\tconst tex = new Texture(device, {\n\t\t\t\t\tname: 'prefiltered-cube',\n\t\t\t\t\tcubemap: false,\n\t\t\t\t\ttype: TEXTURETYPE_DEFAULT,\n\t\t\t\t\tformat: source.format,\n\t\t\t\t\twidth: cubeSize,\n\t\t\t\t\theight: cubeSize,\n\t\t\t\t\tmipmaps: false\n\t\t\t\t});\n\t\t\t\ttex._levels[0] = img;\n\t\t\t\ttex.upload();\n\t\t\t\tconst tex2 = new Texture(device, {\n\t\t\t\t\tname: 'prefiltered-cube',\n\t\t\t\t\tcubemap: false,\n\t\t\t\t\ttype: TEXTURETYPE_DEFAULT,\n\t\t\t\t\tformat: source.format,\n\t\t\t\t\twidth: cubeSize,\n\t\t\t\t\theight: cubeSize,\n\t\t\t\t\tmipmaps: false\n\t\t\t\t});\n\t\t\t\tconst targ = new RenderTarget({\n\t\t\t\t\tcolorBuffer: tex2,\n\t\t\t\t\tdepth: false\n\t\t\t\t});\n\t\t\t\tconstantTexSource.setValue(tex);\n\t\t\t\tdevice.setBlendState(BlendState.NOBLEND);\n\t\t\t\tdrawQuadWithShader(device, targ, shader);\n\t\t\t\tconst gl = device.gl;\n\t\t\t\tgl.bindFramebuffer(gl.FRAMEBUFFER, targ.impl._glFrameBuffer);\n\t\t\t\tconst pixels = new Uint8Array(cubeSize * cubeSize * 4);\n\t\t\t\tgl.readPixels(0, 0, tex.width, tex.height, gl.RGBA, gl.UNSIGNED_BYTE, pixels);\n\t\t\t\tsource._levels[0][face] = pixels;\n\t\t\t}\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\tconst dirs = [];\n\tfor (let y = 0; y < cubeSize; y++) {\n\t\tfor (let x = 0; x < cubeSize; x++) {\n\t\t\tconst u = x / (cubeSize - 1) * 2 - 1;\n\t\t\tconst v = y / (cubeSize - 1) * 2 - 1;\n\t\t\tdirs[y * cubeSize + x] = new Vec3(u, v, 1.0).normalize();\n\t\t}\n\t}\n\tconst sh = new Float32Array(9 * 3);\n\tconst coef1 = 0;\n\tconst coef2 = 1 * 3;\n\tconst coef3 = 2 * 3;\n\tconst coef4 = 3 * 3;\n\tconst coef5 = 4 * 3;\n\tconst coef6 = 5 * 3;\n\tconst coef7 = 6 * 3;\n\tconst coef8 = 7 * 3;\n\tconst coef9 = 8 * 3;\n\tconst nx = 0;\n\tconst px = 1;\n\tconst ny = 2;\n\tconst py = 3;\n\tconst nz = 4;\n\tconst pz = 5;\n\tlet accum = 0;\n\tfor (let face = 0; face < 6; face++) {\n\t\tfor (let y = 0; y < cubeSize; y++) {\n\t\t\tfor (let x = 0; x < cubeSize; x++) {\n\t\t\t\tconst addr = y * cubeSize + x;\n\t\t\t\tconst weight = texelCoordSolidAngle(x, y, cubeSize);\n\t\t\t\tconst weight1 = weight * 4 / 17;\n\t\t\t\tconst weight2 = weight * 8 / 17;\n\t\t\t\tconst weight3 = weight * 15 / 17;\n\t\t\t\tconst weight4 = weight * 5 / 68;\n\t\t\t\tconst weight5 = weight * 15 / 68;\n\t\t\t\tconst dir = dirs[addr];\n\t\t\t\tlet dx, dy, dz;\n\t\t\t\tif (face === nx) {\n\t\t\t\t\tdx = dir.z;\n\t\t\t\t\tdy = -dir.y;\n\t\t\t\t\tdz = -dir.x;\n\t\t\t\t} else if (face === px) {\n\t\t\t\t\tdx = -dir.z;\n\t\t\t\t\tdy = -dir.y;\n\t\t\t\t\tdz = dir.x;\n\t\t\t\t} else if (face === ny) {\n\t\t\t\t\tdx = dir.x;\n\t\t\t\t\tdy = dir.z;\n\t\t\t\t\tdz = dir.y;\n\t\t\t\t} else if (face === py) {\n\t\t\t\t\tdx = dir.x;\n\t\t\t\t\tdy = -dir.z;\n\t\t\t\t\tdz = -dir.y;\n\t\t\t\t} else if (face === nz) {\n\t\t\t\t\tdx = dir.x;\n\t\t\t\t\tdy = -dir.y;\n\t\t\t\t\tdz = dir.z;\n\t\t\t\t} else if (face === pz) {\n\t\t\t\t\tdx = -dir.x;\n\t\t\t\t\tdy = -dir.y;\n\t\t\t\t\tdz = -dir.z;\n\t\t\t\t}\n\t\t\t\tif (!dontFlipX) dx = -dx;\n\t\t\t\tconst a = source._levels[0][face][addr * 4 + 3] / 255.0;\n\t\t\t\tfor (let c = 0; c < 3; c++) {\n\t\t\t\t\tlet value = source._levels[0][face][addr * 4 + c] / 255.0;\n\t\t\t\t\tif (source.type === TEXTURETYPE_RGBM) {\n\t\t\t\t\t\tvalue *= a * 8.0;\n\t\t\t\t\t\tvalue *= value;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvalue = Math.pow(value, 2.2);\n\t\t\t\t\t}\n\t\t\t\t\tsh[coef1 + c] += value * weight1;\n\t\t\t\t\tsh[coef2 + c] += value * weight2 * dx;\n\t\t\t\t\tsh[coef3 + c] += value * weight2 * dy;\n\t\t\t\t\tsh[coef4 + c] += value * weight2 * dz;\n\t\t\t\t\tsh[coef5 + c] += value * weight3 * dx * dz;\n\t\t\t\t\tsh[coef6 + c] += value * weight3 * dz * dy;\n\t\t\t\t\tsh[coef7 + c] += value * weight3 * dy * dx;\n\t\t\t\t\tsh[coef8 + c] += value * weight4 * (3.0 * dz * dz - 1.0);\n\t\t\t\t\tsh[coef9 + c] += value * weight5 * (dx * dx - dy * dy);\n\t\t\t\t\taccum += weight;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tfor (let c = 0; c < sh.length; c++) {\n\t\tsh[c] *= 4 * Math.PI / accum;\n\t}\n\treturn sh;\n}\n\nconst primitiveUv1Padding = 4.0 / 64;\nconst primitiveUv1PaddingScale = 1.0 - primitiveUv1Padding * 2;\nclass ConeBaseGeometry extends Geometry {\n\tconstructor(baseRadius, peakRadius, height, heightSegments, capSegments, roundedCaps) {\n\t\tsuper();\n\t\tconst pos = new Vec3();\n\t\tconst bottomToTop = new Vec3();\n\t\tconst norm = new Vec3();\n\t\tconst top = new Vec3();\n\t\tconst bottom = new Vec3();\n\t\tconst tangent = new Vec3();\n\t\tconst positions = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\t\tconst uvs1 = [];\n\t\tconst indices = [];\n\t\tlet offset;\n\t\tif (height > 0) {\n\t\t\tfor (let i = 0; i <= heightSegments; i++) {\n\t\t\t\tfor (let j = 0; j <= capSegments; j++) {\n\t\t\t\t\tconst theta = j / capSegments * 2 * Math.PI - Math.PI;\n\t\t\t\t\tconst sinTheta = Math.sin(theta);\n\t\t\t\t\tconst cosTheta = Math.cos(theta);\n\t\t\t\t\tbottom.set(sinTheta * baseRadius, -height / 2, cosTheta * baseRadius);\n\t\t\t\t\ttop.set(sinTheta * peakRadius, height / 2, cosTheta * peakRadius);\n\t\t\t\t\tpos.lerp(bottom, top, i / heightSegments);\n\t\t\t\t\tbottomToTop.sub2(top, bottom).normalize();\n\t\t\t\t\ttangent.set(cosTheta, 0, -sinTheta);\n\t\t\t\t\tnorm.cross(tangent, bottomToTop).normalize();\n\t\t\t\t\tpositions.push(pos.x, pos.y, pos.z);\n\t\t\t\t\tnormals.push(norm.x, norm.y, norm.z);\n\t\t\t\t\tlet u = j / capSegments;\n\t\t\t\t\tlet v = i / heightSegments;\n\t\t\t\t\tuvs.push(u, 1 - v);\n\t\t\t\t\tconst _v = v;\n\t\t\t\t\tv = u;\n\t\t\t\t\tu = _v;\n\t\t\t\t\tu = u * primitiveUv1PaddingScale + primitiveUv1Padding;\n\t\t\t\t\tv = v * primitiveUv1PaddingScale + primitiveUv1Padding;\n\t\t\t\t\tu /= 3;\n\t\t\t\t\tuvs1.push(u, 1 - v);\n\t\t\t\t\tif (i < heightSegments && j < capSegments) {\n\t\t\t\t\t\tconst first = i * (capSegments + 1) + j;\n\t\t\t\t\t\tconst second = i * (capSegments + 1) + (j + 1);\n\t\t\t\t\t\tconst third = (i + 1) * (capSegments + 1) + j;\n\t\t\t\t\t\tconst fourth = (i + 1) * (capSegments + 1) + (j + 1);\n\t\t\t\t\t\tindices.push(first, second, third);\n\t\t\t\t\t\tindices.push(second, fourth, third);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (roundedCaps) {\n\t\t\tconst latitudeBands = Math.floor(capSegments / 2);\n\t\t\tconst longitudeBands = capSegments;\n\t\t\tconst capOffset = height / 2;\n\t\t\tfor (let lat = 0; lat <= latitudeBands; lat++) {\n\t\t\t\tconst theta = lat * Math.PI * 0.5 / latitudeBands;\n\t\t\t\tconst sinTheta = Math.sin(theta);\n\t\t\t\tconst cosTheta = Math.cos(theta);\n\t\t\t\tfor (let lon = 0; lon <= longitudeBands; lon++) {\n\t\t\t\t\tconst phi = lon * 2 * Math.PI / longitudeBands - Math.PI / 2;\n\t\t\t\t\tconst sinPhi = Math.sin(phi);\n\t\t\t\t\tconst cosPhi = Math.cos(phi);\n\t\t\t\t\tconst x = cosPhi * sinTheta;\n\t\t\t\t\tconst y = cosTheta;\n\t\t\t\t\tconst z = sinPhi * sinTheta;\n\t\t\t\t\tlet u = 1 - lon / longitudeBands;\n\t\t\t\t\tlet v = 1 - lat / latitudeBands;\n\t\t\t\t\tpositions.push(x * peakRadius, y * peakRadius + capOffset, z * peakRadius);\n\t\t\t\t\tnormals.push(x, y, z);\n\t\t\t\t\tuvs.push(u, 1 - v);\n\t\t\t\t\tu = u * primitiveUv1PaddingScale + primitiveUv1Padding;\n\t\t\t\t\tv = v * primitiveUv1PaddingScale + primitiveUv1Padding;\n\t\t\t\t\tu /= 3;\n\t\t\t\t\tv /= 3;\n\t\t\t\t\tu += 1.0 / 3;\n\t\t\t\t\tuvs1.push(u, 1 - v);\n\t\t\t\t}\n\t\t\t}\n\t\t\toffset = (heightSegments + 1) * (capSegments + 1);\n\t\t\tfor (let lat = 0; lat < latitudeBands; ++lat) {\n\t\t\t\tfor (let lon = 0; lon < longitudeBands; ++lon) {\n\t\t\t\t\tconst first = lat * (longitudeBands + 1) + lon;\n\t\t\t\t\tconst second = first + longitudeBands + 1;\n\t\t\t\t\tindices.push(offset + first + 1, offset + second, offset + first);\n\t\t\t\t\tindices.push(offset + first + 1, offset + second + 1, offset + second);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (let lat = 0; lat <= latitudeBands; lat++) {\n\t\t\t\tconst theta = Math.PI * 0.5 + lat * Math.PI * 0.5 / latitudeBands;\n\t\t\t\tconst sinTheta = Math.sin(theta);\n\t\t\t\tconst cosTheta = Math.cos(theta);\n\t\t\t\tfor (let lon = 0; lon <= longitudeBands; lon++) {\n\t\t\t\t\tconst phi = lon * 2 * Math.PI / longitudeBands - Math.PI / 2;\n\t\t\t\t\tconst sinPhi = Math.sin(phi);\n\t\t\t\t\tconst cosPhi = Math.cos(phi);\n\t\t\t\t\tconst x = cosPhi * sinTheta;\n\t\t\t\t\tconst y = cosTheta;\n\t\t\t\t\tconst z = sinPhi * sinTheta;\n\t\t\t\t\tlet u = 1 - lon / longitudeBands;\n\t\t\t\t\tlet v = 1 - lat / latitudeBands;\n\t\t\t\t\tpositions.push(x * peakRadius, y * peakRadius - capOffset, z * peakRadius);\n\t\t\t\t\tnormals.push(x, y, z);\n\t\t\t\t\tuvs.push(u, 1 - v);\n\t\t\t\t\tu = u * primitiveUv1PaddingScale + primitiveUv1Padding;\n\t\t\t\t\tv = v * primitiveUv1PaddingScale + primitiveUv1Padding;\n\t\t\t\t\tu /= 3;\n\t\t\t\t\tv /= 3;\n\t\t\t\t\tu += 2.0 / 3;\n\t\t\t\t\tuvs1.push(u, 1 - v);\n\t\t\t\t}\n\t\t\t}\n\t\t\toffset = (heightSegments + 1) * (capSegments + 1) + (longitudeBands + 1) * (latitudeBands + 1);\n\t\t\tfor (let lat = 0; lat < latitudeBands; ++lat) {\n\t\t\t\tfor (let lon = 0; lon < longitudeBands; ++lon) {\n\t\t\t\t\tconst first = lat * (longitudeBands + 1) + lon;\n\t\t\t\t\tconst second = first + longitudeBands + 1;\n\t\t\t\t\tindices.push(offset + first + 1, offset + second, offset + first);\n\t\t\t\t\tindices.push(offset + first + 1, offset + second + 1, offset + second);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\toffset = (heightSegments + 1) * (capSegments + 1);\n\t\t\tif (baseRadius > 0) {\n\t\t\t\tfor (let i = 0; i < capSegments; i++) {\n\t\t\t\t\tconst theta = i / capSegments * 2 * Math.PI;\n\t\t\t\t\tconst x = Math.sin(theta);\n\t\t\t\t\tconst y = -height / 2;\n\t\t\t\t\tconst z = Math.cos(theta);\n\t\t\t\t\tlet u = 1 - (x + 1) / 2;\n\t\t\t\t\tlet v = (z + 1) / 2;\n\t\t\t\t\tpositions.push(x * baseRadius, y, z * baseRadius);\n\t\t\t\t\tnormals.push(0, -1, 0);\n\t\t\t\t\tuvs.push(u, 1 - v);\n\t\t\t\t\tu = u * primitiveUv1PaddingScale + primitiveUv1Padding;\n\t\t\t\t\tv = v * primitiveUv1PaddingScale + primitiveUv1Padding;\n\t\t\t\t\tu /= 3;\n\t\t\t\t\tv /= 3;\n\t\t\t\t\tu += 1 / 3;\n\t\t\t\t\tuvs1.push(u, 1 - v);\n\t\t\t\t\tif (i > 1) {\n\t\t\t\t\t\tindices.push(offset, offset + i, offset + i - 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\toffset += capSegments;\n\t\t\tif (peakRadius > 0) {\n\t\t\t\tfor (let i = 0; i < capSegments; i++) {\n\t\t\t\t\tconst theta = i / capSegments * 2 * Math.PI;\n\t\t\t\t\tconst x = Math.sin(theta);\n\t\t\t\t\tconst y = height / 2;\n\t\t\t\t\tconst z = Math.cos(theta);\n\t\t\t\t\tlet u = 1 - (x + 1) / 2;\n\t\t\t\t\tlet v = (z + 1) / 2;\n\t\t\t\t\tpositions.push(x * peakRadius, y, z * peakRadius);\n\t\t\t\t\tnormals.push(0, 1, 0);\n\t\t\t\t\tuvs.push(u, 1 - v);\n\t\t\t\t\tu = u * primitiveUv1PaddingScale + primitiveUv1Padding;\n\t\t\t\t\tv = v * primitiveUv1PaddingScale + primitiveUv1Padding;\n\t\t\t\t\tu /= 3;\n\t\t\t\t\tv /= 3;\n\t\t\t\t\tu += 2 / 3;\n\t\t\t\t\tuvs1.push(u, 1 - v);\n\t\t\t\t\tif (i > 1) {\n\t\t\t\t\t\tindices.push(offset, offset + i - 1, offset + i);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.positions = positions;\n\t\tthis.normals = normals;\n\t\tthis.uvs = uvs;\n\t\tthis.uvs1 = uvs1;\n\t\tthis.indices = indices;\n\t}\n}\n\nclass CapsuleGeometry extends ConeBaseGeometry {\n\tconstructor(opts = {}) {\n\t\tvar _opts$radius, _opts$height, _opts$heightSegments, _opts$sides;\n\t\tconst radius = (_opts$radius = opts.radius) != null ? _opts$radius : 0.3;\n\t\tconst height = (_opts$height = opts.height) != null ? _opts$height : 1;\n\t\tconst heightSegments = (_opts$heightSegments = opts.heightSegments) != null ? _opts$heightSegments : 1;\n\t\tconst sides = (_opts$sides = opts.sides) != null ? _opts$sides : 20;\n\t\tsuper(radius, radius, height - 2 * radius, heightSegments, sides, true);\n\t\tif (opts.calculateTangents) {\n\t\t\tthis.tangents = calculateTangents(this.positions, this.normals, this.uvs, this.indices);\n\t\t}\n\t}\n}\n\nclass ConeGeometry extends ConeBaseGeometry {\n\tconstructor(opts = {}) {\n\t\tvar _opts$baseRadius, _opts$peakRadius, _opts$height, _opts$heightSegments, _opts$capSegments;\n\t\tconst baseRadius = (_opts$baseRadius = opts.baseRadius) != null ? _opts$baseRadius : 0.5;\n\t\tconst peakRadius = (_opts$peakRadius = opts.peakRadius) != null ? _opts$peakRadius : 0;\n\t\tconst height = (_opts$height = opts.height) != null ? _opts$height : 1;\n\t\tconst heightSegments = (_opts$heightSegments = opts.heightSegments) != null ? _opts$heightSegments : 5;\n\t\tconst capSegments = (_opts$capSegments = opts.capSegments) != null ? _opts$capSegments : 18;\n\t\tsuper(baseRadius, peakRadius, height, heightSegments, capSegments, false);\n\t\tif (opts.calculateTangents) {\n\t\t\tthis.tangents = calculateTangents(this.positions, this.normals, this.uvs, this.indices);\n\t\t}\n\t}\n}\n\nclass CylinderGeometry extends ConeBaseGeometry {\n\tconstructor(opts = {}) {\n\t\tvar _opts$radius, _opts$height, _opts$heightSegments, _opts$capSegments;\n\t\tconst radius = (_opts$radius = opts.radius) != null ? _opts$radius : 0.5;\n\t\tconst height = (_opts$height = opts.height) != null ? _opts$height : 1;\n\t\tconst heightSegments = (_opts$heightSegments = opts.heightSegments) != null ? _opts$heightSegments : 5;\n\t\tconst capSegments = (_opts$capSegments = opts.capSegments) != null ? _opts$capSegments : 20;\n\t\tsuper(radius, radius, height, heightSegments, capSegments, false);\n\t\tif (opts.calculateTangents) {\n\t\t\tthis.tangents = calculateTangents(this.positions, this.normals, this.uvs, this.indices);\n\t\t}\n\t}\n}\n\nclass PlaneGeometry extends Geometry {\n\tconstructor(opts = {}) {\n\t\tvar _opts$halfExtents, _opts$widthSegments, _opts$lengthSegments;\n\t\tsuper();\n\t\tconst he = (_opts$halfExtents = opts.halfExtents) != null ? _opts$halfExtents : new Vec2(0.5, 0.5);\n\t\tconst ws = (_opts$widthSegments = opts.widthSegments) != null ? _opts$widthSegments : 5;\n\t\tconst ls = (_opts$lengthSegments = opts.lengthSegments) != null ? _opts$lengthSegments : 5;\n\t\tconst positions = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\t\tconst indices = [];\n\t\tlet vcounter = 0;\n\t\tfor (let i = 0; i <= ws; i++) {\n\t\t\tfor (let j = 0; j <= ls; j++) {\n\t\t\t\tconst x = -he.x + 2 * he.x * i / ws;\n\t\t\t\tconst y = 0.0;\n\t\t\t\tconst z = -(-he.y + 2 * he.y * j / ls);\n\t\t\t\tconst u = i / ws;\n\t\t\t\tconst v = j / ls;\n\t\t\t\tpositions.push(x, y, z);\n\t\t\t\tnormals.push(0, 1, 0);\n\t\t\t\tuvs.push(u, 1 - v);\n\t\t\t\tif (i < ws && j < ls) {\n\t\t\t\t\tindices.push(vcounter + ls + 1, vcounter + 1, vcounter);\n\t\t\t\t\tindices.push(vcounter + ls + 1, vcounter + ls + 2, vcounter + 1);\n\t\t\t\t}\n\t\t\t\tvcounter++;\n\t\t\t}\n\t\t}\n\t\tthis.positions = positions;\n\t\tthis.normals = normals;\n\t\tthis.uvs = uvs;\n\t\tthis.uvs1 = uvs;\n\t\tthis.indices = indices;\n\t\tif (opts.calculateTangents) {\n\t\t\tthis.tangents = calculateTangents(positions, normals, uvs, indices);\n\t\t}\n\t}\n}\n\nclass TorusGeometry extends Geometry {\n\tconstructor(opts = {}) {\n\t\tvar _opts$tubeRadius, _opts$ringRadius, _opts$sectorAngle, _opts$segments, _opts$sides;\n\t\tsuper();\n\t\tconst rc = (_opts$tubeRadius = opts.tubeRadius) != null ? _opts$tubeRadius : 0.2;\n\t\tconst rt = (_opts$ringRadius = opts.ringRadius) != null ? _opts$ringRadius : 0.3;\n\t\tconst sectorAngle = ((_opts$sectorAngle = opts.sectorAngle) != null ? _opts$sectorAngle : 360) * math.DEG_TO_RAD;\n\t\tconst segments = (_opts$segments = opts.segments) != null ? _opts$segments : 30;\n\t\tconst sides = (_opts$sides = opts.sides) != null ? _opts$sides : 20;\n\t\tconst positions = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\t\tconst indices = [];\n\t\tfor (let i = 0; i <= sides; i++) {\n\t\t\tfor (let j = 0; j <= segments; j++) {\n\t\t\t\tconst x = Math.cos(sectorAngle * j / segments) * (rt + rc * Math.cos(2 * Math.PI * i / sides));\n\t\t\t\tconst y = Math.sin(2 * Math.PI * i / sides) * rc;\n\t\t\t\tconst z = Math.sin(sectorAngle * j / segments) * (rt + rc * Math.cos(2 * Math.PI * i / sides));\n\t\t\t\tconst nx = Math.cos(sectorAngle * j / segments) * Math.cos(2 * Math.PI * i / sides);\n\t\t\t\tconst ny = Math.sin(2 * Math.PI * i / sides);\n\t\t\t\tconst nz = Math.sin(sectorAngle * j / segments) * Math.cos(2 * Math.PI * i / sides);\n\t\t\t\tconst u = i / sides;\n\t\t\t\tconst v = 1 - j / segments;\n\t\t\t\tpositions.push(x, y, z);\n\t\t\t\tnormals.push(nx, ny, nz);\n\t\t\t\tuvs.push(u, 1.0 - v);\n\t\t\t\tif (i < sides && j < segments) {\n\t\t\t\t\tconst first = i * (segments + 1) + j;\n\t\t\t\t\tconst second = (i + 1) * (segments + 1) + j;\n\t\t\t\t\tconst third = i * (segments + 1) + (j + 1);\n\t\t\t\t\tconst fourth = (i + 1) * (segments + 1) + (j + 1);\n\t\t\t\t\tindices.push(first, second, third);\n\t\t\t\t\tindices.push(second, fourth, third);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.positions = positions;\n\t\tthis.normals = normals;\n\t\tthis.uvs = uvs;\n\t\tthis.uvs1 = uvs;\n\t\tthis.indices = indices;\n\t\tif (opts.calculateTangents) {\n\t\t\tthis.tangents = calculateTangents(positions, normals, uvs, indices);\n\t\t}\n\t}\n}\n\nclass ProgramLibrary {\n\tconstructor(device, standardMaterial) {\n\t\tthis.processedCache = new Map();\n\t\tthis.definitionsCache = new Map();\n\t\tthis._generators = new Map();\n\t\tthis._device = device;\n\t\tthis._isClearingCache = false;\n\t\tthis._precached = false;\n\t\tthis._programsCollection = [];\n\t\tthis._defaultStdMatOption = new StandardMaterialOptions();\n\t\tthis._defaultStdMatOptionMin = new StandardMaterialOptions();\n\t\tstandardMaterial.shaderOptBuilder.updateRef(this._defaultStdMatOption, {}, standardMaterial, null, [], SHADER_FORWARD, null);\n\t\tstandardMaterial.shaderOptBuilder.updateMinRef(this._defaultStdMatOptionMin, {}, standardMaterial, null, SHADER_SHADOW, null);\n\t\tdevice.on('destroy:shader', shader => {\n\t\t\tthis.removeFromCache(shader);\n\t\t});\n\t}\n\tdestroy() {\n\t\tthis.clearCache();\n\t}\n\tregister(name, generator) {\n\t\tif (!this._generators.has(name)) {\n\t\t\tthis._generators.set(name, generator);\n\t\t}\n\t}\n\tunregister(name) {\n\t\tif (this._generators.has(name)) {\n\t\t\tthis._generators.delete(name);\n\t\t}\n\t}\n\tisRegistered(name) {\n\t\treturn this._generators.has(name);\n\t}\n\tgenerateShaderDefinition(generator, name, key, options) {\n\t\tlet def = this.definitionsCache.get(key);\n\t\tif (!def) {\n\t\t\tvar _options$litOptions, _options$litOptions2, _def$name;\n\t\t\tlet lights;\n\t\t\tif ((_options$litOptions = options.litOptions) != null && _options$litOptions.lights) {\n\t\t\t\tlights = options.litOptions.lights;\n\t\t\t\toptions.litOptions.lights = lights.map(l => {\n\t\t\t\t\tconst lcopy = l.clone ? l.clone() : l;\n\t\t\t\t\tlcopy.key = l.key;\n\t\t\t\t\treturn lcopy;\n\t\t\t\t});\n\t\t\t}\n\t\t\tthis.storeNewProgram(name, options);\n\t\t\tif ((_options$litOptions2 = options.litOptions) != null && _options$litOptions2.lights) {\n\t\t\t\toptions.litOptions.lights = lights;\n\t\t\t}\n\t\t\tif (this._precached) ;\n\t\t\tconst device = this._device;\n\t\t\tdef = generator.createShaderDefinition(device, options);\n\t\t\tdef.name = (_def$name = def.name) != null ? _def$name : options.pass ? `${name}-pass:${options.pass}` : name;\n\t\t\tthis.definitionsCache.set(key, def);\n\t\t}\n\t\treturn def;\n\t}\n\tgetCachedShader(key) {\n\t\treturn this.processedCache.get(key);\n\t}\n\tsetCachedShader(key, shader) {\n\t\tthis.processedCache.set(key, shader);\n\t}\n\tgetProgram(name, options, processingOptions, userMaterialId) {\n\t\tconst generator = this._generators.get(name);\n\t\tif (!generator) {\n\t\t\treturn null;\n\t\t}\n\t\tconst generationKeyString = generator.generateKey(options);\n\t\tconst generationKey = hashCode(generationKeyString);\n\t\tconst processingKeyString = processingOptions.generateKey(this._device);\n\t\tconst processingKey = hashCode(processingKeyString);\n\t\tconst totalKey = `${generationKey}#${processingKey}`;\n\t\tlet processedShader = this.getCachedShader(totalKey);\n\t\tif (!processedShader) {\n\t\t\tconst generatedShaderDef = this.generateShaderDefinition(generator, name, generationKey, options);\n\t\t\tlet passName = '';\n\t\t\tlet shaderPassInfo;\n\t\t\tif (options.pass !== undefined) {\n\t\t\t\tshaderPassInfo = ShaderPass.get(this._device).getByIndex(options.pass);\n\t\t\t\tpassName = `-${shaderPassInfo.name}`;\n\t\t\t}\n\t\t\tthis._device.fire('shader:generate', {\n\t\t\t\tuserMaterialId,\n\t\t\t\tshaderPassInfo,\n\t\t\t\tdefinition: generatedShaderDef\n\t\t\t});\n\t\t\tconst shaderDefinition = {\n\t\t\t\tname: `${generatedShaderDef.name}${passName}-proc`,\n\t\t\t\tattributes: generatedShaderDef.attributes,\n\t\t\t\tvshader: generatedShaderDef.vshader,\n\t\t\t\tvincludes: generatedShaderDef.vincludes,\n\t\t\t\tfincludes: generatedShaderDef.fincludes,\n\t\t\t\tfshader: generatedShaderDef.fshader,\n\t\t\t\tprocessingOptions: processingOptions,\n\t\t\t\tshaderLanguage: generatedShaderDef.shaderLanguage\n\t\t\t};\n\t\t\tprocessedShader = new Shader(this._device, shaderDefinition);\n\t\t\tthis.setCachedShader(totalKey, processedShader);\n\t\t}\n\t\treturn processedShader;\n\t}\n\tstoreNewProgram(name, options) {\n\t\tlet opt = {};\n\t\tif (name === 'standard') {\n\t\t\tconst defaultMat = this._getDefaultStdMatOptions(options.pass);\n\t\t\tfor (const p in options) {\n\t\t\t\tif (options.hasOwnProperty(p) && defaultMat[p] !== options[p] || p === 'pass') {\n\t\t\t\t\topt[p] = options[p];\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const p in options.litOptions) {\n\t\t\t\topt[p] = options.litOptions[p];\n\t\t\t}\n\t\t} else {\n\t\t\topt = options;\n\t\t}\n\t\tthis._programsCollection.push(JSON.stringify({\n\t\t\tname: name,\n\t\t\toptions: opt\n\t\t}));\n\t}\n\tdumpPrograms() {\n\t\tlet text = 'let device = pc.app ? pc.app.graphicsDevice : pc.Application.getApplication().graphicsDevice;\\n';\n\t\ttext += 'let shaders = [';\n\t\tif (this._programsCollection[0]) {\n\t\t\ttext += `\\n\\t${this._programsCollection[0]}`;\n\t\t}\n\t\tfor (let i = 1; i < this._programsCollection.length; ++i) {\n\t\t\ttext += `,\\n\\t${this._programsCollection[i]}`;\n\t\t}\n\t\ttext += '\\n];\\n';\n\t\ttext += 'device.getProgramLibrary().precompile(shaders);\\n';\n\t\ttext += `if (pc.version != \\\"${version}\\\" || pc.revision != \\\"${revision}\\\")\\n`;\n\t\ttext += '\\tconsole.warn(\\\"precompile-shaders.js: engine version mismatch, rebuild shaders lib with current engine\\\");';\n\t\tconst element = document.createElement('a');\n\t\telement.setAttribute('href', `data:text/plain;charset=utf-8,${encodeURIComponent(text)}`);\n\t\telement.setAttribute('download', 'precompile-shaders.js');\n\t\telement.style.display = 'none';\n\t\tdocument.body.appendChild(element);\n\t\telement.click();\n\t\tdocument.body.removeChild(element);\n\t}\n\tclearCache() {\n\t\tthis._isClearingCache = true;\n\t\tthis.processedCache.forEach(shader => {\n\t\t\tshader.destroy();\n\t\t});\n\t\tthis.processedCache.clear();\n\t\tthis._isClearingCache = false;\n\t}\n\tremoveFromCache(shader) {\n\t\tif (this._isClearingCache) {\n\t\t\treturn;\n\t\t}\n\t\tthis.processedCache.forEach((cachedShader, key) => {\n\t\t\tif (shader === cachedShader) {\n\t\t\t\tthis.processedCache.delete(key);\n\t\t\t}\n\t\t});\n\t}\n\t_getDefaultStdMatOptions(pass) {\n\t\tconst shaderPassInfo = ShaderPass.get(this._device).getByIndex(pass);\n\t\treturn pass === SHADER_DEPTH || pass === SHADER_PICK || pass === SHADER_PREPASS_VELOCITY || shaderPassInfo.isShadow ? this._defaultStdMatOptionMin : this._defaultStdMatOption;\n\t}\n\tprecompile(cache) {\n\t\tif (cache) {\n\t\t\tconst shaders = new Array(cache.length);\n\t\t\tfor (let i = 0; i < cache.length; i++) {\n\t\t\t\tif (cache[i].name === 'standard') {\n\t\t\t\t\tconst opt = cache[i].options;\n\t\t\t\t\tconst defaultMat = this._getDefaultStdMatOptions(opt.pass);\n\t\t\t\t\tfor (const p in defaultMat) {\n\t\t\t\t\t\tif (defaultMat.hasOwnProperty(p) && opt[p] === undefined) {\n\t\t\t\t\t\t\topt[p] = defaultMat[p];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshaders[i] = this.getProgram(cache[i].name, cache[i].options);\n\t\t\t}\n\t\t}\n\t\tthis._precached = true;\n\t}\n}\n\nvar bakeDirLmEndPS = `\n\tvec4 dirLm = texture2D(texture_dirLightMap, vUv1);\n\tif (bakeDir > 0.5) {\n\t\tif (dAtten > 0.00001) {\n\t\t\tdirLm.xyz = dirLm.xyz * 2.0 - vec3(1.0);\n\t\t\tdAtten = saturate(dAtten);\n\t\t\tgl_FragColor.rgb = normalize(dLightDirNormW.xyz*dAtten + dirLm.xyz*dirLm.w) * 0.5 + vec3(0.5);\n\t\t\tgl_FragColor.a = dirLm.w + dAtten;\n\t\t\tgl_FragColor.a = max(gl_FragColor.a, 1.0 / 255.0);\n\t\t} else {\n\t\t\tgl_FragColor = dirLm;\n\t\t}\n\t} else {\n\t\tgl_FragColor.rgb = dirLm.xyz;\n\t\tgl_FragColor.a = max(dirLm.w, dAtten > 0.00001? (1.0/255.0) : 0.0);\n\t}\n`;\n\nvar bakeLmEndPS = `\n#ifdef LIGHTMAP_RGBM\n\tgl_FragColor.rgb = dDiffuseLight;\n\tgl_FragColor.rgb = pow(gl_FragColor.rgb, vec3(0.5));\n\tgl_FragColor.rgb /= 8.0;\n\tgl_FragColor.a = clamp( max( max( gl_FragColor.r, gl_FragColor.g ), max( gl_FragColor.b, 1.0 / 255.0 ) ), 0.0,1.0 );\n\tgl_FragColor.a = ceil(gl_FragColor.a * 255.0) / 255.0;\n\tgl_FragColor.rgb /= gl_FragColor.a;\n#else\n\tgl_FragColor = vec4(dDiffuseLight, 1.0);\n#endif\n`;\n\nvar dilatePS = `\nvarying vec2 vUv0;\nuniform sampler2D source;\nuniform vec2 pixelOffset;\nvoid main(void) {\n\tvec4 c = texture2DLodEXT(source, vUv0, 0.0);\n\tc = c.a>0.0? c : texture2DLodEXT(source, vUv0 - pixelOffset, 0.0);\n\tc = c.a>0.0? c : texture2DLodEXT(source, vUv0 + vec2(0, -pixelOffset.y), 0.0);\n\tc = c.a>0.0? c : texture2DLodEXT(source, vUv0 + vec2(pixelOffset.x, -pixelOffset.y), 0.0);\n\tc = c.a>0.0? c : texture2DLodEXT(source, vUv0 + vec2(-pixelOffset.x, 0), 0.0);\n\tc = c.a>0.0? c : texture2DLodEXT(source, vUv0 + vec2(pixelOffset.x, 0), 0.0);\n\tc = c.a>0.0? c : texture2DLodEXT(source, vUv0 + vec2(-pixelOffset.x, pixelOffset.y), 0.0);\n\tc = c.a>0.0? c : texture2DLodEXT(source, vUv0 + vec2(0, pixelOffset.y), 0.0);\n\tc = c.a>0.0? c : texture2DLodEXT(source, vUv0 + pixelOffset, 0.0);\n\tgl_FragColor = c;\n}\n`;\n\nvar bilateralDeNoisePS = `\nfloat normpdf3(in vec3 v, in float sigma) {\n\treturn 0.39894 * exp(-0.5 * dot(v, v) / (sigma * sigma)) / sigma;\n}\nvec3 decodeRGBM(vec4 rgbm) {\n\tvec3 color = (8.0 * rgbm.a) * rgbm.rgb;\n\treturn color * color;\n}\nfloat saturate(float x) {\n\treturn clamp(x, 0.0, 1.0);\n}\nvec4 encodeRGBM(vec3 color) {\n\tvec4 encoded;\n\tencoded.rgb = pow(color.rgb, vec3(0.5));\n\tencoded.rgb *= 1.0 / 8.0;\n\tencoded.a = saturate( max( max( encoded.r, encoded.g ), max( encoded.b, 1.0 / 255.0 ) ) );\n\tencoded.a = ceil(encoded.a * 255.0) / 255.0;\n\tencoded.rgb /= encoded.a;\n\treturn encoded;\n}\n#define MSIZE 15\nvarying vec2 vUv0;\nuniform sampler2D source;\nuniform vec2 pixelOffset;\nuniform vec2 sigmas;\nuniform float bZnorm;\nuniform float kernel[MSIZE];\nvoid main(void) {\n\t\n\tvec4 pixelRgbm = texture2DLodEXT(source, vUv0, 0.0);\n\tif (pixelRgbm.a <= 0.0) {\n\t\tgl_FragColor = pixelRgbm;\n\t\treturn ;\n\t}\n\tfloat sigma = sigmas.x;\n\tfloat bSigma = sigmas.y;\n\tvec3 pixelHdr = decodeRGBM(pixelRgbm);\n\tvec3 accumulatedHdr = vec3(0.0);\n\tfloat accumulatedFactor = 0.0;\n\tconst int kSize = (MSIZE-1)/2;\n\tfor (int i = -kSize; i <= kSize; ++i) {\n\t\tfor (int j = -kSize; j <= kSize; ++j) {\n\t\t\t\n\t\t\tvec2 coord = vUv0 + vec2(float(i), float(j)) * pixelOffset;\n\t\t\tvec4 rgbm = texture2DLodEXT(source, coord, 0.0);\n\t\t\tif (rgbm.a > 0.0) {\n\t\t\t\tvec3 hdr = decodeRGBM(rgbm);\n\t\t\t\tfloat factor = kernel[kSize + j] * kernel[kSize + i];\n\t\t\t\tfactor *= normpdf3(hdr - pixelHdr, bSigma) * bZnorm;\n\t\t\t\taccumulatedHdr += factor * hdr;\n\t\t\t\taccumulatedFactor += factor;\n\t\t\t}\n\t\t}\n\t}\n\tgl_FragColor = encodeRGBM(accumulatedHdr / accumulatedFactor);\n}\n`;\n\nconst shaderChunksLightmapper = {\n\tbakeDirLmEndPS,\n\tbakeLmEndPS,\n\tdilatePS,\n\tbilateralDeNoisePS\n};\n\nconst mat4$1 = new Mat4();\nconst quat$2 = new Quat();\nconst aabb = new BoundingBox();\nconst aabb2 = new BoundingBox();\nconst debugColor = new Color(1, 1, 0, 0.4);\nconst SH_C0$1 = 0.28209479177387814;\nclass SplatIterator {\n\tconstructor(gsplatData, p, r, s, c) {\n\t\tconst x = gsplatData.getProp('x');\n\t\tconst y = gsplatData.getProp('y');\n\t\tconst z = gsplatData.getProp('z');\n\t\tconst rx = gsplatData.getProp('rot_1');\n\t\tconst ry = gsplatData.getProp('rot_2');\n\t\tconst rz = gsplatData.getProp('rot_3');\n\t\tconst rw = gsplatData.getProp('rot_0');\n\t\tconst sx = gsplatData.getProp('scale_0');\n\t\tconst sy = gsplatData.getProp('scale_1');\n\t\tconst sz = gsplatData.getProp('scale_2');\n\t\tconst cr = gsplatData.getProp('f_dc_0');\n\t\tconst cg = gsplatData.getProp('f_dc_1');\n\t\tconst cb = gsplatData.getProp('f_dc_2');\n\t\tconst ca = gsplatData.getProp('opacity');\n\t\tconst sigmoid = v => {\n\t\t\tif (v > 0) {\n\t\t\t\treturn 1 / (1 + Math.exp(-v));\n\t\t\t}\n\t\t\tconst t = Math.exp(v);\n\t\t\treturn t / (1 + t);\n\t\t};\n\t\tthis.read = i => {\n\t\t\tif (p) {\n\t\t\t\tp.x = x[i];\n\t\t\t\tp.y = y[i];\n\t\t\t\tp.z = z[i];\n\t\t\t}\n\t\t\tif (r) {\n\t\t\t\tr.set(rx[i], ry[i], rz[i], rw[i]);\n\t\t\t}\n\t\t\tif (s) {\n\t\t\t\ts.set(Math.exp(sx[i]), Math.exp(sy[i]), Math.exp(sz[i]));\n\t\t\t}\n\t\t\tif (c) {\n\t\t\t\tc.set(0.5 + cr[i] * SH_C0$1, 0.5 + cg[i] * SH_C0$1, 0.5 + cb[i] * SH_C0$1, sigmoid(ca[i]));\n\t\t\t}\n\t\t};\n\t}\n}\nconst calcSplatMat = (result, p, r) => {\n\tquat$2.set(r.x, r.y, r.z, r.w).normalize();\n\tresult.setTRS(p, quat$2, Vec3.ONE);\n};\nclass GSplatData {\n\tconstructor(elements) {\n\t\tthis.elements = void 0;\n\t\tthis.numSplats = void 0;\n\t\tthis.elements = elements;\n\t\tthis.numSplats = this.getElement('vertex').count;\n\t}\n\tstatic calcSplatAabb(result, p, r, s) {\n\t\tcalcSplatMat(mat4$1, p, r);\n\t\taabb.center.set(0, 0, 0);\n\t\taabb.halfExtents.set(s.x * 2, s.y * 2, s.z * 2);\n\t\tresult.setFromTransformedAabb(aabb, mat4$1);\n\t}\n\tgetProp(name, elementName = 'vertex') {\n\t\tvar _this$getElement;\n\t\treturn (_this$getElement = this.getElement(elementName)) == null || (_this$getElement = _this$getElement.properties.find(p => p.name === name)) == null ? void 0 : _this$getElement.storage;\n\t}\n\tgetElement(name) {\n\t\treturn this.elements.find(e => e.name === name);\n\t}\n\taddProp(name, storage) {\n\t\tthis.getElement('vertex').properties.push({\n\t\t\ttype: 'float',\n\t\t\tname,\n\t\t\tstorage,\n\t\t\tbyteSize: 4\n\t\t});\n\t}\n\tcreateIter(p, r, s, c) {\n\t\treturn new SplatIterator(this, p, r, s, c);\n\t}\n\tcalcAabb(result, pred) {\n\t\tlet mx, my, mz, Mx, My, Mz;\n\t\tlet first = true;\n\t\tconst x = this.getProp('x');\n\t\tconst y = this.getProp('y');\n\t\tconst z = this.getProp('z');\n\t\tconst sx = this.getProp('scale_0');\n\t\tconst sy = this.getProp('scale_1');\n\t\tconst sz = this.getProp('scale_2');\n\t\tfor (let i = 0; i < this.numSplats; ++i) {\n\t\t\tif (pred && !pred(i)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst scaleVal = 2.0 * Math.exp(Math.max(sx[i], sy[i], sz[i]));\n\t\t\tconst px = x[i];\n\t\t\tconst py = y[i];\n\t\t\tconst pz = z[i];\n\t\t\tif (first) {\n\t\t\t\tfirst = false;\n\t\t\t\tmx = px - scaleVal;\n\t\t\t\tmy = py - scaleVal;\n\t\t\t\tmz = pz - scaleVal;\n\t\t\t\tMx = px + scaleVal;\n\t\t\t\tMy = py + scaleVal;\n\t\t\t\tMz = pz + scaleVal;\n\t\t\t} else {\n\t\t\t\tmx = Math.min(mx, px - scaleVal);\n\t\t\t\tmy = Math.min(my, py - scaleVal);\n\t\t\t\tmz = Math.min(mz, pz - scaleVal);\n\t\t\t\tMx = Math.max(Mx, px + scaleVal);\n\t\t\t\tMy = Math.max(My, py + scaleVal);\n\t\t\t\tMz = Math.max(Mz, pz + scaleVal);\n\t\t\t}\n\t\t}\n\t\tif (!first) {\n\t\t\tresult.center.set((mx + Mx) * 0.5, (my + My) * 0.5, (mz + Mz) * 0.5);\n\t\t\tresult.halfExtents.set((Mx - mx) * 0.5, (My - my) * 0.5, (Mz - mz) * 0.5);\n\t\t}\n\t\treturn !first;\n\t}\n\tcalcAabbExact(result, pred) {\n\t\tconst p = new Vec3();\n\t\tconst r = new Quat();\n\t\tconst s = new Vec3();\n\t\tconst iter = this.createIter(p, r, s);\n\t\tlet first = true;\n\t\tfor (let i = 0; i < this.numSplats; ++i) {\n\t\t\tif (pred && !pred(i)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\titer.read(i);\n\t\t\tif (first) {\n\t\t\t\tfirst = false;\n\t\t\t\tGSplatData.calcSplatAabb(result, p, r, s);\n\t\t\t} else {\n\t\t\t\tGSplatData.calcSplatAabb(aabb2, p, r, s);\n\t\t\t\tresult.add(aabb2);\n\t\t\t}\n\t\t}\n\t\treturn !first;\n\t}\n\tgetCenters(result) {\n\t\tconst x = this.getProp('x');\n\t\tconst y = this.getProp('y');\n\t\tconst z = this.getProp('z');\n\t\tfor (let i = 0; i < this.numSplats; ++i) {\n\t\t\tresult[i * 3 + 0] = x[i];\n\t\t\tresult[i * 3 + 1] = y[i];\n\t\t\tresult[i * 3 + 2] = z[i];\n\t\t}\n\t}\n\tcalcFocalPoint(result, pred) {\n\t\tconst x = this.getProp('x');\n\t\tconst y = this.getProp('y');\n\t\tconst z = this.getProp('z');\n\t\tconst sx = this.getProp('scale_0');\n\t\tconst sy = this.getProp('scale_1');\n\t\tconst sz = this.getProp('scale_2');\n\t\tresult.x = 0;\n\t\tresult.y = 0;\n\t\tresult.z = 0;\n\t\tlet sum = 0;\n\t\tfor (let i = 0; i < this.numSplats; ++i) {\n\t\t\tif (pred && !pred(i)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst weight = 1.0 / (1.0 + Math.exp(Math.max(sx[i], sy[i], sz[i])));\n\t\t\tresult.x += x[i] * weight;\n\t\t\tresult.y += y[i] * weight;\n\t\t\tresult.z += z[i] * weight;\n\t\t\tsum += weight;\n\t\t}\n\t\tresult.mulScalar(1 / sum);\n\t}\n\trenderWireframeBounds(scene, worldMat) {\n\t\tconst p = new Vec3();\n\t\tconst r = new Quat();\n\t\tconst s = new Vec3();\n\t\tconst min = new Vec3();\n\t\tconst max = new Vec3();\n\t\tconst iter = this.createIter(p, r, s);\n\t\tfor (let i = 0; i < this.numSplats; ++i) {\n\t\t\titer.read(i);\n\t\t\tcalcSplatMat(mat4$1, p, r);\n\t\t\tmat4$1.mul2(worldMat, mat4$1);\n\t\t\tmin.set(s.x * -2.0, s.y * -2.0, s.z * -2.0);\n\t\t\tmax.set(s.x * 2.0, s.y * 2.0, s.z * 2.0);\n\t\t\tscene.immediate.drawWireAlignedBox(min, max, debugColor, true, scene.defaultDrawLayer, mat4$1);\n\t\t}\n\t}\n\tget isCompressed() {\n\t\treturn false;\n\t}\n\tget hasSHData() {\n\t\tfor (let i = 0; i < 45; ++i) {\n\t\t\tif (!this.getProp(`f_rest_${i}`)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\tcalcMortonOrder() {\n\t\tconst calcMinMax = arr => {\n\t\t\tlet min = arr[0];\n\t\t\tlet max = arr[0];\n\t\t\tfor (let i = 1; i < arr.length; i++) {\n\t\t\t\tif (arr[i] < min) min = arr[i];\n\t\t\t\tif (arr[i] > max) max = arr[i];\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tmin,\n\t\t\t\tmax\n\t\t\t};\n\t\t};\n\t\tconst encodeMorton3 = (x, y, z) => {\n\t\t\tconst Part1By2 = x => {\n\t\t\t\tx &= 0x000003ff;\n\t\t\t\tx = (x ^ x << 16) & 0xff0000ff;\n\t\t\t\tx = (x ^ x << 8) & 0x0300f00f;\n\t\t\t\tx = (x ^ x << 4) & 0x030c30c3;\n\t\t\t\tx = (x ^ x << 2) & 0x09249249;\n\t\t\t\treturn x;\n\t\t\t};\n\t\t\treturn (Part1By2(z) << 2) + (Part1By2(y) << 1) + Part1By2(x);\n\t\t};\n\t\tconst x = this.getProp('x');\n\t\tconst y = this.getProp('y');\n\t\tconst z = this.getProp('z');\n\t\tconst {\n\t\t\tmin: minX,\n\t\t\tmax: maxX\n\t\t} = calcMinMax(x);\n\t\tconst {\n\t\t\tmin: minY,\n\t\t\tmax: maxY\n\t\t} = calcMinMax(y);\n\t\tconst {\n\t\t\tmin: minZ,\n\t\t\tmax: maxZ\n\t\t} = calcMinMax(z);\n\t\tconst sizeX = minX === maxX ? 0 : 1024 / (maxX - minX);\n\t\tconst sizeY = minY === maxY ? 0 : 1024 / (maxY - minY);\n\t\tconst sizeZ = minZ === maxZ ? 0 : 1024 / (maxZ - minZ);\n\t\tconst codes = new Map();\n\t\tfor (let i = 0; i < this.numSplats; i++) {\n\t\t\tconst ix = Math.floor((x[i] - minX) * sizeX);\n\t\t\tconst iy = Math.floor((y[i] - minY) * sizeY);\n\t\t\tconst iz = Math.floor((z[i] - minZ) * sizeZ);\n\t\t\tconst code = encodeMorton3(ix, iy, iz);\n\t\t\tconst val = codes.get(code);\n\t\t\tif (val) {\n\t\t\t\tval.push(i);\n\t\t\t} else {\n\t\t\t\tcodes.set(code, [i]);\n\t\t\t}\n\t\t}\n\t\tconst keys = Array.from(codes.keys()).sort((a, b) => a - b);\n\t\tconst indices = new Uint32Array(this.numSplats);\n\t\tlet idx = 0;\n\t\tfor (let i = 0; i < keys.length; ++i) {\n\t\t\tconst val = codes.get(keys[i]);\n\t\t\tfor (let j = 0; j < val.length; ++j) {\n\t\t\t\tindices[idx++] = val[j];\n\t\t\t}\n\t\t}\n\t\treturn indices;\n\t}\n\treorder(order) {\n\t\tconst cache = new Map();\n\t\tconst getStorage = size => {\n\t\t\tif (cache.has(size)) {\n\t\t\t\tconst buffer = cache.get(size);\n\t\t\t\tcache.delete(size);\n\t\t\t\treturn buffer;\n\t\t\t}\n\t\t\treturn new ArrayBuffer(size);\n\t\t};\n\t\tconst returnStorage = buffer => {\n\t\t\tcache.set(buffer.byteLength, buffer);\n\t\t};\n\t\tconst reorder = data => {\n\t\t\tconst result = new data.constructor(getStorage(data.byteLength));\n\t\t\tfor (let i = 0; i < order.length; i++) {\n\t\t\t\tresult[i] = data[order[i]];\n\t\t\t}\n\t\t\treturnStorage(data.buffer);\n\t\t\treturn result;\n\t\t};\n\t\tthis.elements.forEach(element => {\n\t\t\telement.properties.forEach(property => {\n\t\t\t\tif (property.storage) {\n\t\t\t\t\tproperty.storage = reorder(property.storage);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\treorderData() {\n\t\tthis.reorder(this.calcMortonOrder());\n\t}\n}\n\nconst splatCoreVS$1 = `\n\tuniform mat4 matrix_model;\n\tuniform mat4 matrix_view;\n\tuniform mat4 matrix_projection;\n\tuniform vec2 viewport;\n\tuniform vec4 tex_params;\n\tuniform highp usampler2D splatOrder;\n\tuniform highp usampler2D transformA;\n\tuniform highp sampler2D transformB;\n\tattribute vec3 vertex_position;\n\tattribute uint vertex_id_attrib;\n\t#ifndef DITHER_NONE\n\t\tvarying float id;\n\t#endif\n\tuint orderId;\n\tuint splatId;\n\tivec2 splatUV;\n\tbool calcSplatUV() {\n\t\tuint numSplats = uint(tex_params.x);\n\t\tuint textureWidth = uint(tex_params.y);\n\t\torderId = vertex_id_attrib + uint(vertex_position.z);\n\t\tif (orderId >= numSplats) {\n\t\t\treturn false;\n\t\t}\n\t\tivec2 orderUV = ivec2(\n\t\t\tint(orderId % textureWidth),\n\t\t\tint(orderId / textureWidth)\n\t\t);\n\t\tsplatId = texelFetch(splatOrder, orderUV, 0).r;\n\t\tsplatUV = ivec2(\n\t\t\tint(splatId % textureWidth),\n\t\t\tint(splatId / textureWidth)\n\t\t);\n\t\treturn true;\n\t}\n\tuvec4 tA;\n\tvec3 getCenter() {\n\t\ttA = texelFetch(transformA, splatUV, 0);\n\t\treturn uintBitsToFloat(tA.xyz);\n\t}\n\tvoid getCovariance(out vec3 covA, out vec3 covB) {\n\t\tvec4 tB = texelFetch(transformB, splatUV, 0);\n\t\tvec2 tC = unpackHalf2x16(tA.w);\n\t\tcovA = tB.xyz;\n\t\tcovB = vec3(tC.x, tC.y, tB.w);\n\t}\n\tvec4 calcV1V2(in vec3 splat_cam, in vec3 covA, in vec3 covB, mat3 W) {\n\t\tmat3 Vrk = mat3(\n\t\t\tcovA.x, covA.y, covA.z, \n\t\t\tcovA.y, covB.x, covB.y,\n\t\t\tcovA.z, covB.y, covB.z\n\t\t);\n\t\tfloat focal = viewport.x * matrix_projection[0][0];\n\t\tfloat J1 = focal / splat_cam.z;\n\t\tvec2 J2 = -J1 / splat_cam.z * splat_cam.xy;\n\t\tmat3 J = mat3(\n\t\t\tJ1, 0.0, J2.x, \n\t\t\t0.0, J1, J2.y, \n\t\t\t0.0, 0.0, 0.0\n\t\t);\n\t\tmat3 T = W * J;\n\t\tmat3 cov = transpose(T) * Vrk * T;\n\t\tfloat diagonal1 = cov[0][0] + 0.3;\n\t\tfloat offDiagonal = cov[0][1];\n\t\tfloat diagonal2 = cov[1][1] + 0.3;\n\t\tfloat mid = 0.5 * (diagonal1 + diagonal2);\n\t\tfloat radius = length(vec2((diagonal1 - diagonal2) / 2.0, offDiagonal));\n\t\tfloat lambda1 = mid + radius;\n\t\tfloat lambda2 = max(mid - radius, 0.1);\n\t\tvec2 diagonalVector = normalize(vec2(offDiagonal, lambda1 - diagonal1));\n\t\tvec2 v1 = min(sqrt(2.0 * lambda1), 1024.0) * diagonalVector;\n\t\tvec2 v2 = min(sqrt(2.0 * lambda2), 1024.0) * vec2(diagonalVector.y, -diagonalVector.x);\n\t\treturn vec4(v1, v2);\n\t}\n\tvec3 unpack111011(uint bits) {\n\t\treturn vec3(\n\t\t\tfloat(bits >> 21u) / 2047.0,\n\t\t\tfloat((bits >> 11u) & 0x3ffu) / 1023.0,\n\t\t\tfloat(bits & 0x7ffu) / 2047.0\n\t\t);\n\t}\n\tvoid fetchScale(in uvec4 t, out float scale, out vec3 a, out vec3 b, out vec3 c) {\n\t\tscale = uintBitsToFloat(t.x);\n\t\ta = unpack111011(t.y) * 2.0 - 1.0;\n\t\tb = unpack111011(t.z) * 2.0 - 1.0;\n\t\tc = unpack111011(t.w) * 2.0 - 1.0;\n\t}\n\tvoid fetch(in uvec4 t, out vec3 a, out vec3 b, out vec3 c, out vec3 d) {\n\t\ta = unpack111011(t.x) * 2.0 - 1.0;\n\t\tb = unpack111011(t.y) * 2.0 - 1.0;\n\t\tc = unpack111011(t.z) * 2.0 - 1.0;\n\t\td = unpack111011(t.w) * 2.0 - 1.0;\n\t}\n\t#if defined(USE_SH1)\n\t\t#define SH_C1 0.4886025119029199f\n\t\tuniform highp usampler2D splatSH_1to3;\n\t#if defined(USE_SH2)\n\t\t#define SH_C2_0 1.0925484305920792f\n\t\t#define SH_C2_1 -1.0925484305920792f\n\t\t#define SH_C2_2 0.31539156525252005f\n\t\t#define SH_C2_3 -1.0925484305920792f\n\t\t#define SH_C2_4 0.5462742152960396f\n\t\tuniform highp usampler2D splatSH_4to7;\n\t\tuniform highp usampler2D splatSH_8to11;\n\t#if defined(USE_SH3)\n\t\t#define SH_C3_0 -0.5900435899266435f\n\t\t#define SH_C3_1 2.890611442640554f\n\t\t#define SH_C3_2 -0.4570457994644658f\n\t\t#define SH_C3_3 0.3731763325901154f\n\t\t#define SH_C3_4 -0.4570457994644658f\n\t\t#define SH_C3_5 1.445305721320277f\n\t\t#define SH_C3_6 -0.5900435899266435f\n\t\tuniform highp usampler2D splatSH_12to15;\n\t#endif\n\t#endif\n\t#endif\n\tvec3 evalSH(in vec3 dir) {\n\t\tvec3 result = vec3(0.0);\n\t#if defined(USE_SH1)\n\t\tfloat x = dir.x;\n\t\tfloat y = dir.y;\n\t\tfloat z = dir.z;\n\t\tfloat scale;\n\t\tvec3 sh1, sh2, sh3;\n\t\tfetchScale(texelFetch(splatSH_1to3, splatUV, 0), scale, sh1, sh2, sh3);\n\t\tresult += SH_C1 * (-sh1 * y + sh2 * z - sh3 * x);\n\t#if defined(USE_SH2)\n\t\tfloat xx = x * x;\n\t\tfloat yy = y * y;\n\t\tfloat zz = z * z;\n\t\tfloat xy = x * y;\n\t\tfloat yz = y * z;\n\t\tfloat xz = x * z;\n\t\tvec3 sh4, sh5, sh6, sh7;\n\t\tvec3 sh8, sh9, sh10, sh11;\n\t\tfetch(texelFetch(splatSH_4to7, splatUV, 0), sh4, sh5, sh6, sh7);\n\t\tfetch(texelFetch(splatSH_8to11, splatUV, 0), sh8, sh9, sh10, sh11);\n\t\tresult +=\n\t\t\tsh4 * (SH_C2_0 * xy) *  +\n\t\t\tsh5 * (SH_C2_1 * yz) +\n\t\t\tsh6 * (SH_C2_2 * (2.0 * zz - xx - yy)) +\n\t\t\tsh7 * (SH_C2_3 * xz) +\n\t\t\tsh8 * (SH_C2_4 * (xx - yy));\n\t#if defined(USE_SH3)\n\t\tvec3 sh12, sh13, sh14, sh15;\n\t\tfetch(texelFetch(splatSH_12to15, splatUV, 0), sh12, sh13, sh14, sh15);\n\t\tresult +=\n\t\t\tsh9  * (SH_C3_0 * y * (3.0 * xx - yy)) +\n\t\t\tsh10 * (SH_C3_1 * xy * z) +\n\t\t\tsh11 * (SH_C3_2 * y * (4.0 * zz - xx - yy)) +\n\t\t\tsh12 * (SH_C3_3 * z * (2.0 * zz - 3.0 * xx - 3.0 * yy)) +\n\t\t\tsh13 * (SH_C3_4 * x * (4.0 * zz - xx - yy)) +\n\t\t\tsh14 * (SH_C3_5 * z * (xx - yy)) +\n\t\t\tsh15 * (SH_C3_6 * x * (xx - 3.0 * yy));\n\t#endif\n\t#endif\n\t\tresult *= scale;\n\t#endif\n\t\treturn result;\n\t}\n`;\nconst splatCoreFS$1 = `\n\t#ifndef DITHER_NONE\n\t\tvarying float id;\n\t#endif\n\t#ifdef PICK_PASS\n\t\tuniform vec4 uColor;\n\t#endif\n\tvec4 evalSplat(vec2 texCoord, vec4 color) {\n\t\tmediump float A = dot(texCoord, texCoord);\n\t\tif (A > 1.0) {\n\t\t\tdiscard;\n\t\t}\n\t\tmediump float B = exp(-A * 4.0) * color.a;\n\t\tif (B < 1.0 / 255.0) {\n\t\t\tdiscard;\n\t\t}\n\t\t#ifdef PICK_PASS\n\t\t\tif (B < 0.3) {\n\t\t\t\tdiscard;\n\t\t\t}\n\t\t\treturn uColor;\n\t\t#endif\n\t\t#ifndef DITHER_NONE\n\t\t\topacityDither(B, id * 0.013);\n\t\t#endif\n\t\t#ifdef TONEMAP_ENABLED\n\t\t\treturn vec4(gammaCorrectOutput(toneMap(decodeGamma(color.rgb))), B);\n\t\t#else\n\t\t\treturn vec4(color.rgb, B);\n\t\t#endif\n\t}\n`;\nclass GSplatShaderGenerator {\n\tgenerateKey(options) {\n\t\tvar _options$defines$sort, _options$defines;\n\t\tconst vsHash = hashCode(options.vertex);\n\t\tconst fsHash = hashCode(options.fragment);\n\t\tconst defines = (_options$defines$sort = (_options$defines = options.defines) == null ? void 0 : _options$defines.sort().join('-')) != null ? _options$defines$sort : '';\n\t\treturn `splat-${options.pass}-${options.gamma}-${options.toneMapping}-${vsHash}-${fsHash}-${options.dither}-${defines}`;\n\t}\n\tcreateShaderDefinition(device, options) {\n\t\tvar _options$defines2;\n\t\tconst shaderPassInfo = ShaderPass.get(device).getByIndex(options.pass);\n\t\tconst shaderPassDefines = shaderPassInfo.shaderDefines;\n\t\tconst optionDefines = ((_options$defines2 = options.defines) != null ? _options$defines2 : []).map(d => `#define ${d}`).join('\\n');\n\t\tconst defines = `${shaderPassDefines}\\n` + `${optionDefines}\\n` + `#define DITHER_${options.dither.toUpperCase()}\\n` + `#define TONEMAP_${options.toneMapping === TONEMAP_LINEAR ? 'DISABLED' : 'ENABLED'}\\n`;\n\t\tconst vs = defines + splatCoreVS$1 + options.vertex;\n\t\tconst fs = defines + shaderChunks.decodePS + (options.dither === DITHER_NONE ? '' : shaderChunks.bayerPS + shaderChunks.opacityDitherPS) + ShaderGenerator.tonemapCode(options.toneMapping) + ShaderGenerator.gammaCode(options.gamma) + splatCoreFS$1 + options.fragment;\n\t\treturn ShaderUtils.createDefinition(device, {\n\t\t\tname: 'SplatShader',\n\t\t\tattributes: {\n\t\t\t\tvertex_position: SEMANTIC_POSITION,\n\t\t\t\tvertex_id_attrib: SEMANTIC_ATTR13\n\t\t\t},\n\t\t\tvertexCode: vs,\n\t\t\tfragmentCode: fs\n\t\t});\n\t}\n}\nconst gsplat = new GSplatShaderGenerator();\n\nconst splatMainVS$1 = `\n\tuniform vec3 view_position;\n\tuniform sampler2D splatColor;\n\tvarying mediump vec2 texCoord;\n\tvarying mediump vec4 color;\n\tmediump vec4 discardVec = vec4(0.0, 0.0, 2.0, 1.0);\n\tvoid main(void)\n\t{\n\t\tif (!calcSplatUV()) {\n\t\t\tgl_Position = discardVec;\n\t\t\treturn;\n\t\t}\n\t\tvec3 center = getCenter();\n\t\tmat4 model_view = matrix_view * matrix_model;\n\t\tvec4 splat_cam = model_view * vec4(center, 1.0);\n\t\tif (splat_cam.z > 0.0) {\n\t\t\tgl_Position = discardVec;\n\t\t\treturn;\n\t\t}\n\t\tvec4 splat_proj = matrix_projection * splat_cam;\n\t\tsplat_proj.z = clamp(splat_proj.z, -abs(splat_proj.w), abs(splat_proj.w));\n\t\tvec3 covA, covB;\n\t\tgetCovariance(covA, covB);\n\t\tvec4 v1v2 = calcV1V2(splat_cam.xyz, covA, covB, transpose(mat3(model_view)));\n\t\tcolor = texelFetch(splatColor, splatUV, 0);\n\t\tfloat scale = min(1.0, sqrt(-log(1.0 / 255.0 / color.a)) / 2.0);\n\t\tv1v2 *= scale;\n\t\tif (dot(v1v2.xy, v1v2.xy) < 4.0 && dot(v1v2.zw, v1v2.zw) < 4.0) {\n\t\t\tgl_Position = discardVec;\n\t\t\treturn;\n\t\t}\n\t\tgl_Position = splat_proj + vec4((vertex_position.x * v1v2.xy + vertex_position.y * v1v2.zw) / viewport * splat_proj.w, 0, 0);\n\t\ttexCoord = vertex_position.xy * scale / 2.0;\n\t\t#ifdef USE_SH1\n\t\t\tvec4 worldCenter = matrix_model * vec4(center, 1.0);\n\t\t\tvec3 viewDir = normalize((worldCenter.xyz / worldCenter.w - view_position) * mat3(matrix_model));\n\t\t\tcolor.xyz = max(color.xyz + evalSH(viewDir), 0.0);\n\t\t#endif\n\t\t#ifndef DITHER_NONE\n\t\t\tid = float(splatId);\n\t\t#endif\n\t}\n`;\nconst splatMainFS$1 = `\n\tvarying mediump vec2 texCoord;\n\tvarying mediump vec4 color;\n\tvoid main(void)\n\t{\n\t\tgl_FragColor = evalSplat(texCoord, color);\n\t}\n`;\nconst createGSplatMaterial = (options = {}) => {\n\tvar _options$dither;\n\tconst ditherEnum = (_options$dither = options.dither) != null ? _options$dither : DITHER_NONE;\n\tconst dither = ditherEnum !== DITHER_NONE;\n\tconst material = new Material();\n\tmaterial.name = 'splatMaterial';\n\tmaterial.cull = CULLFACE_NONE;\n\tmaterial.blendType = dither ? BLEND_NONE : BLEND_NORMAL;\n\tmaterial.depthWrite = dither;\n\tmaterial.getShaderVariant = function (device, scene, defs, unused, pass, sortedLights, viewUniformFormat, viewBindGroupFormat) {\n\t\tvar _options$vertex, _options$fragment;\n\t\tconst programOptions = {\n\t\t\tpass: pass,\n\t\t\tgamma: pass === SHADER_FORWARDHDR ? scene.gammaCorrection ? GAMMA_SRGBHDR : GAMMA_NONE : scene.gammaCorrection,\n\t\t\ttoneMapping: pass === SHADER_FORWARDHDR ? TONEMAP_LINEAR : scene.toneMapping,\n\t\t\tvertex: (_options$vertex = options.vertex) != null ? _options$vertex : splatMainVS$1,\n\t\t\tfragment: (_options$fragment = options.fragment) != null ? _options$fragment : splatMainFS$1,\n\t\t\tdither: ditherEnum,\n\t\t\tdefines: options.defines\n\t\t};\n\t\tconst processingOptions = new ShaderProcessorOptions(viewUniformFormat, viewBindGroupFormat);\n\t\tconst library = getProgramLibrary(device);\n\t\tlibrary.register('splat', gsplat);\n\t\treturn library.getProgram('splat', programOptions, processingOptions);\n\t};\n\tmaterial.update();\n\treturn material;\n};\n\nconst getSHData = gsplatData => {\n\tconst result = [];\n\tfor (let i = 0; i < 45; ++i) {\n\t\tresult.push(gsplatData.getProp(`f_rest_${i}`));\n\t}\n\treturn result;\n};\nclass GSplat {\n\tconstructor(device, gsplatData) {\n\t\tthis.device = void 0;\n\t\tthis.numSplats = void 0;\n\t\tthis.centers = void 0;\n\t\tthis.aabb = void 0;\n\t\tthis.colorTexture = void 0;\n\t\tthis.transformATexture = void 0;\n\t\tthis.transformBTexture = void 0;\n\t\tthis.hasSH = void 0;\n\t\tthis.sh1to3Texture = void 0;\n\t\tthis.sh4to7Texture = void 0;\n\t\tthis.sh8to11Texture = void 0;\n\t\tthis.sh12to15Texture = void 0;\n\t\tconst numSplats = gsplatData.numSplats;\n\t\tthis.device = device;\n\t\tthis.numSplats = numSplats;\n\t\tthis.centers = new Float32Array(gsplatData.numSplats * 3);\n\t\tgsplatData.getCenters(this.centers);\n\t\tthis.aabb = new BoundingBox();\n\t\tgsplatData.calcAabb(this.aabb);\n\t\tconst size = this.evalTextureSize(numSplats);\n\t\tthis.colorTexture = this.createTexture('splatColor', PIXELFORMAT_RGBA8, size);\n\t\tthis.transformATexture = this.createTexture('transformA', PIXELFORMAT_RGBA32U, size);\n\t\tthis.transformBTexture = this.createTexture('transformB', PIXELFORMAT_RGBA16F, size);\n\t\tthis.updateColorData(gsplatData);\n\t\tthis.updateTransformData(gsplatData);\n\t\tthis.hasSH = gsplatData.hasSHData;\n\t\tif (this.hasSH) {\n\t\t\tthis.sh1to3Texture = this.createTexture('splatSH_1to3', PIXELFORMAT_RGBA32U, size);\n\t\t\tthis.sh4to7Texture = this.createTexture('splatSH_4to7', PIXELFORMAT_RGBA32U, size);\n\t\t\tthis.sh8to11Texture = this.createTexture('splatSH_8to11', PIXELFORMAT_RGBA32U, size);\n\t\t\tthis.sh12to15Texture = this.createTexture('splatSH_12to15', PIXELFORMAT_RGBA32U, size);\n\t\t\tthis.updateSHData(gsplatData);\n\t\t}\n\t}\n\tdestroy() {\n\t\tvar _this$colorTexture, _this$transformATextu, _this$transformBTextu, _this$sh1to3Texture, _this$sh4to7Texture, _this$sh8to11Texture, _this$sh12to15Texture;\n\t\t(_this$colorTexture = this.colorTexture) == null || _this$colorTexture.destroy();\n\t\t(_this$transformATextu = this.transformATexture) == null || _this$transformATextu.destroy();\n\t\t(_this$transformBTextu = this.transformBTexture) == null || _this$transformBTextu.destroy();\n\t\t(_this$sh1to3Texture = this.sh1to3Texture) == null || _this$sh1to3Texture.destroy();\n\t\t(_this$sh4to7Texture = this.sh4to7Texture) == null || _this$sh4to7Texture.destroy();\n\t\t(_this$sh8to11Texture = this.sh8to11Texture) == null || _this$sh8to11Texture.destroy();\n\t\t(_this$sh12to15Texture = this.sh12to15Texture) == null || _this$sh12to15Texture.destroy();\n\t}\n\tcreateMaterial(options) {\n\t\tconst result = createGSplatMaterial(_extends({}, this.hasSH ? {\n\t\t\tdefines: ['USE_SH1', 'USE_SH2', 'USE_SH3']\n\t\t} : {}, options));\n\t\tresult.setParameter('splatColor', this.colorTexture);\n\t\tresult.setParameter('transformA', this.transformATexture);\n\t\tresult.setParameter('transformB', this.transformBTexture);\n\t\tresult.setParameter('tex_params', new Float32Array([this.numSplats, this.colorTexture.width, 0, 0]));\n\t\tif (this.hasSH) {\n\t\t\tresult.setParameter('splatSH_1to3', this.sh1to3Texture);\n\t\t\tresult.setParameter('splatSH_4to7', this.sh4to7Texture);\n\t\t\tresult.setParameter('splatSH_8to11', this.sh8to11Texture);\n\t\t\tresult.setParameter('splatSH_12to15', this.sh12to15Texture);\n\t\t}\n\t\treturn result;\n\t}\n\tevalTextureSize(count) {\n\t\tconst width = Math.ceil(Math.sqrt(count));\n\t\tconst height = Math.ceil(count / width);\n\t\treturn new Vec2(width, height);\n\t}\n\tcreateTexture(name, format, size) {\n\t\treturn new Texture(this.device, {\n\t\t\tname: name,\n\t\t\twidth: size.x,\n\t\t\theight: size.y,\n\t\t\tformat: format,\n\t\t\tcubemap: false,\n\t\t\tmipmaps: false,\n\t\t\tminFilter: FILTER_NEAREST,\n\t\t\tmagFilter: FILTER_NEAREST,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE\n\t\t});\n\t}\n\tgetTextureFormat(device, preferHighPrecision) {\n\t\tif (device.isWebGL1) {\n\t\t\tpreferHighPrecision = false;\n\t\t}\n\t\tconst halfSupported = device.extTextureHalfFloat && device.textureHalfFloatUpdatable;\n\t\tconst floatSupported = device.extTextureFloat;\n\t\tlet halfFormat;\n\t\tif (preferHighPrecision) {\n\t\t\tif (floatSupported) {\n\t\t\t\thalfFormat = false;\n\t\t\t} else if (halfSupported) {\n\t\t\t\thalfFormat = true;\n\t\t\t}\n\t\t} else {\n\t\t\tif (halfSupported) {\n\t\t\t\thalfFormat = true;\n\t\t\t} else if (floatSupported) {\n\t\t\t\thalfFormat = false;\n\t\t\t}\n\t\t}\n\t\treturn halfFormat;\n\t}\n\tupdateColorData(gsplatData) {\n\t\tconst texture = this.colorTexture;\n\t\tif (!texture) {\n\t\t\treturn;\n\t\t}\n\t\tconst data = texture.lock();\n\t\tconst cr = gsplatData.getProp('f_dc_0');\n\t\tconst cg = gsplatData.getProp('f_dc_1');\n\t\tconst cb = gsplatData.getProp('f_dc_2');\n\t\tconst ca = gsplatData.getProp('opacity');\n\t\tconst SH_C0 = 0.28209479177387814;\n\t\tfor (let i = 0; i < this.numSplats; ++i) {\n\t\t\tconst r = (cr[i] * SH_C0 + 0.5) * 255;\n\t\t\tconst g = (cg[i] * SH_C0 + 0.5) * 255;\n\t\t\tconst b = (cb[i] * SH_C0 + 0.5) * 255;\n\t\t\tconst a = 255 / (1 + Math.exp(-ca[i]));\n\t\t\tdata[i * 4 + 0] = r < 0 ? 0 : r > 255 ? 255 : r;\n\t\t\tdata[i * 4 + 1] = g < 0 ? 0 : g > 255 ? 255 : g;\n\t\t\tdata[i * 4 + 2] = b < 0 ? 0 : b > 255 ? 255 : b;\n\t\t\tdata[i * 4 + 3] = a < 0 ? 0 : a > 255 ? 255 : a;\n\t\t}\n\t\ttexture.unlock();\n\t}\n\tupdateTransformData(gsplatData) {\n\t\tconst float2Half = FloatPacking.float2Half;\n\t\tif (!this.transformATexture) {\n\t\t\treturn;\n\t\t}\n\t\tconst dataA = this.transformATexture.lock();\n\t\tconst dataAFloat32 = new Float32Array(dataA.buffer);\n\t\tconst dataB = this.transformBTexture.lock();\n\t\tconst p = new Vec3();\n\t\tconst r = new Quat();\n\t\tconst s = new Vec3();\n\t\tconst iter = gsplatData.createIter(p, r, s);\n\t\tconst mat = new Mat3();\n\t\tconst cA = new Vec3();\n\t\tconst cB = new Vec3();\n\t\tfor (let i = 0; i < this.numSplats; i++) {\n\t\t\titer.read(i);\n\t\t\tr.normalize();\n\t\t\tmat.setFromQuat(r);\n\t\t\tthis.computeCov3d(mat, s, cA, cB);\n\t\t\tdataAFloat32[i * 4 + 0] = p.x;\n\t\t\tdataAFloat32[i * 4 + 1] = p.y;\n\t\t\tdataAFloat32[i * 4 + 2] = p.z;\n\t\t\tdataA[i * 4 + 3] = float2Half(cB.x) | float2Half(cB.y) << 16;\n\t\t\tdataB[i * 4 + 0] = float2Half(cA.x);\n\t\t\tdataB[i * 4 + 1] = float2Half(cA.y);\n\t\t\tdataB[i * 4 + 2] = float2Half(cA.z);\n\t\t\tdataB[i * 4 + 3] = float2Half(cB.z);\n\t\t}\n\t\tthis.transformATexture.unlock();\n\t\tthis.transformBTexture.unlock();\n\t}\n\tcomputeCov3d(rot, scale, covA, covB) {\n\t\tconst sx = scale.x;\n\t\tconst sy = scale.y;\n\t\tconst sz = scale.z;\n\t\tconst data = rot.data;\n\t\tconst r00 = data[0] * sx;\n\t\tconst r01 = data[1] * sx;\n\t\tconst r02 = data[2] * sx;\n\t\tconst r10 = data[3] * sy;\n\t\tconst r11 = data[4] * sy;\n\t\tconst r12 = data[5] * sy;\n\t\tconst r20 = data[6] * sz;\n\t\tconst r21 = data[7] * sz;\n\t\tconst r22 = data[8] * sz;\n\t\tcovA.x = r00 * r00 + r10 * r10 + r20 * r20;\n\t\tcovA.y = r00 * r01 + r10 * r11 + r20 * r21;\n\t\tcovA.z = r00 * r02 + r10 * r12 + r20 * r22;\n\t\tcovB.x = r01 * r01 + r11 * r11 + r21 * r21;\n\t\tcovB.y = r01 * r02 + r11 * r12 + r21 * r22;\n\t\tcovB.z = r02 * r02 + r12 * r12 + r22 * r22;\n\t}\n\tupdateSHData(gsplatData) {\n\t\tconst sh1to3Data = this.sh1to3Texture.lock();\n\t\tconst sh4to7Data = this.sh4to7Texture.lock();\n\t\tconst sh8to11Data = this.sh8to11Texture.lock();\n\t\tconst sh12to15Data = this.sh12to15Texture.lock();\n\t\tconst src = getSHData(gsplatData);\n\t\tconst t11 = (1 << 11) - 1;\n\t\tconst t10 = (1 << 10) - 1;\n\t\tconst pack = (r, g, b) => {\n\t\t\tconst rb = Math.floor(r * t11 + 0.5);\n\t\t\tconst gb = Math.floor(g * t10 + 0.5);\n\t\t\tconst bb = Math.floor(b * t11 + 0.5);\n\t\t\treturn (rb < 0 ? 0 : rb > t11 ? t11 : rb) << 21 | (gb < 0 ? 0 : gb > t10 ? t10 : gb) << 11 | (bb < 0 ? 0 : bb > t11 ? t11 : bb);\n\t\t};\n\t\tconst float32 = new Float32Array(1);\n\t\tconst uint32 = new Uint32Array(float32.buffer);\n\t\tconst c = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\t\tfor (let i = 0; i < gsplatData.numSplats; ++i) {\n\t\t\tfor (let j = 0; j < 45; ++j) {\n\t\t\t\tc[j] = src[j][i];\n\t\t\t}\n\t\t\tlet m = Math.abs(c[0]);\n\t\t\tfor (let j = 1; j < 45; ++j) {\n\t\t\t\tconst as = Math.abs(c[j]);\n\t\t\t\tif (as > m) m = as;\n\t\t\t}\n\t\t\tif (m === 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tfor (let j = 0; j < 45; ++j) {\n\t\t\t\tc[j] = c[j] / m * 0.5 + 0.5;\n\t\t\t}\n\t\t\tfloat32[0] = m;\n\t\t\tsh1to3Data[i * 4 + 0] = uint32[0];\n\t\t\tsh1to3Data[i * 4 + 1] = pack(c[0], c[15], c[30]);\n\t\t\tsh1to3Data[i * 4 + 2] = pack(c[1], c[16], c[31]);\n\t\t\tsh1to3Data[i * 4 + 3] = pack(c[2], c[17], c[32]);\n\t\t\tsh4to7Data[i * 4 + 0] = pack(c[3], c[18], c[33]);\n\t\t\tsh4to7Data[i * 4 + 1] = pack(c[4], c[19], c[34]);\n\t\t\tsh4to7Data[i * 4 + 2] = pack(c[5], c[20], c[35]);\n\t\t\tsh4to7Data[i * 4 + 3] = pack(c[6], c[21], c[36]);\n\t\t\tsh8to11Data[i * 4 + 0] = pack(c[7], c[22], c[37]);\n\t\t\tsh8to11Data[i * 4 + 1] = pack(c[8], c[23], c[38]);\n\t\t\tsh8to11Data[i * 4 + 2] = pack(c[9], c[24], c[39]);\n\t\t\tsh8to11Data[i * 4 + 3] = pack(c[10], c[25], c[40]);\n\t\t\tsh12to15Data[i * 4 + 0] = pack(c[11], c[26], c[41]);\n\t\t\tsh12to15Data[i * 4 + 1] = pack(c[12], c[27], c[42]);\n\t\t\tsh12to15Data[i * 4 + 2] = pack(c[13], c[28], c[43]);\n\t\t\tsh12to15Data[i * 4 + 3] = pack(c[14], c[29], c[44]);\n\t\t}\n\t\tthis.sh1to3Texture.unlock();\n\t\tthis.sh4to7Texture.unlock();\n\t\tthis.sh8to11Texture.unlock();\n\t\tthis.sh12to15Texture.unlock();\n\t}\n}\n\nfunction SortWorker() {\n\tlet order;\n\tlet centers;\n\tlet mapping;\n\tlet cameraPosition;\n\tlet cameraDirection;\n\tlet forceUpdate = false;\n\tconst lastCameraPosition = {\n\t\tx: 0,\n\t\ty: 0,\n\t\tz: 0\n\t};\n\tconst lastCameraDirection = {\n\t\tx: 0,\n\t\ty: 0,\n\t\tz: 0\n\t};\n\tconst boundMin = {\n\t\tx: 0,\n\t\ty: 0,\n\t\tz: 0\n\t};\n\tconst boundMax = {\n\t\tx: 0,\n\t\ty: 0,\n\t\tz: 0\n\t};\n\tlet distances;\n\tlet countBuffer;\n\tconst binarySearch = (m, n, compare_fn) => {\n\t\twhile (m <= n) {\n\t\t\tconst k = n + m >> 1;\n\t\t\tconst cmp = compare_fn(k);\n\t\t\tif (cmp > 0) {\n\t\t\t\tm = k + 1;\n\t\t\t} else if (cmp < 0) {\n\t\t\t\tn = k - 1;\n\t\t\t} else {\n\t\t\t\treturn k;\n\t\t\t}\n\t\t}\n\t\treturn ~m;\n\t};\n\tconst update = () => {\n\t\tvar _distances;\n\t\tif (!order || !centers || centers.length === 0 || !cameraPosition || !cameraDirection) return;\n\t\tconst px = cameraPosition.x;\n\t\tconst py = cameraPosition.y;\n\t\tconst pz = cameraPosition.z;\n\t\tconst dx = cameraDirection.x;\n\t\tconst dy = cameraDirection.y;\n\t\tconst dz = cameraDirection.z;\n\t\tconst epsilon = 0.001;\n\t\tif (!forceUpdate && Math.abs(px - lastCameraPosition.x) < epsilon && Math.abs(py - lastCameraPosition.y) < epsilon && Math.abs(pz - lastCameraPosition.z) < epsilon && Math.abs(dx - lastCameraDirection.x) < epsilon && Math.abs(dy - lastCameraDirection.y) < epsilon && Math.abs(dz - lastCameraDirection.z) < epsilon) {\n\t\t\treturn;\n\t\t}\n\t\tforceUpdate = false;\n\t\tlastCameraPosition.x = px;\n\t\tlastCameraPosition.y = py;\n\t\tlastCameraPosition.z = pz;\n\t\tlastCameraDirection.x = dx;\n\t\tlastCameraDirection.y = dy;\n\t\tlastCameraDirection.z = dz;\n\t\tlet minDist;\n\t\tlet maxDist;\n\t\tfor (let i = 0; i < 8; ++i) {\n\t\t\tconst x = (i & 1 ? boundMin.x : boundMax.x) - px;\n\t\t\tconst y = (i & 2 ? boundMin.y : boundMax.y) - py;\n\t\t\tconst z = (i & 4 ? boundMin.z : boundMax.z) - pz;\n\t\t\tconst d = x * dx + y * dy + z * dz;\n\t\t\tif (i === 0) {\n\t\t\t\tminDist = maxDist = d;\n\t\t\t} else {\n\t\t\t\tminDist = Math.min(minDist, d);\n\t\t\t\tmaxDist = Math.max(maxDist, d);\n\t\t\t}\n\t\t}\n\t\tconst numVertices = centers.length / 3;\n\t\tconst compareBits = Math.max(10, Math.min(20, Math.round(Math.log2(numVertices / 4))));\n\t\tconst bucketCount = 2 ** compareBits + 1;\n\t\tif (((_distances = distances) == null ? void 0 : _distances.length) !== numVertices) {\n\t\t\tdistances = new Uint32Array(numVertices);\n\t\t}\n\t\tif (!countBuffer || countBuffer.length !== bucketCount) {\n\t\t\tcountBuffer = new Uint32Array(bucketCount);\n\t\t} else {\n\t\t\tcountBuffer.fill(0);\n\t\t}\n\t\tconst range = maxDist - minDist;\n\t\tconst divider = range < 1e-6 ? 0 : 1 / range * 2 ** compareBits;\n\t\tfor (let i = 0; i < numVertices; ++i) {\n\t\t\tconst istride = i * 3;\n\t\t\tconst x = centers[istride + 0] - px;\n\t\t\tconst y = centers[istride + 1] - py;\n\t\t\tconst z = centers[istride + 2] - pz;\n\t\t\tconst d = x * dx + y * dy + z * dz;\n\t\t\tconst sortKey = Math.floor((d - minDist) * divider);\n\t\t\tdistances[i] = sortKey;\n\t\t\tcountBuffer[sortKey]++;\n\t\t}\n\t\tfor (let i = 1; i < bucketCount; i++) {\n\t\t\tcountBuffer[i] += countBuffer[i - 1];\n\t\t}\n\t\tfor (let i = 0; i < numVertices; i++) {\n\t\t\tconst distance = distances[i];\n\t\t\tconst destIndex = --countBuffer[distance];\n\t\t\torder[destIndex] = i;\n\t\t}\n\t\tconst dist = i => distances[order[i]] / divider + minDist;\n\t\tconst findZero = () => {\n\t\t\tconst result = binarySearch(0, numVertices - 1, i => -dist(i));\n\t\t\treturn Math.min(numVertices, Math.abs(result));\n\t\t};\n\t\tconst count = dist(numVertices - 1) >= 0 ? findZero() : numVertices;\n\t\tif (mapping) {\n\t\t\tfor (let i = 0; i < numVertices; ++i) {\n\t\t\t\torder[i] = mapping[order[i]];\n\t\t\t}\n\t\t}\n\t\tself.postMessage({\n\t\t\torder: order.buffer,\n\t\t\tcount\n\t\t}, [order.buffer]);\n\t\torder = null;\n\t};\n\tself.onmessage = message => {\n\t\tif (message.data.order) {\n\t\t\torder = new Uint32Array(message.data.order);\n\t\t}\n\t\tif (message.data.centers) {\n\t\t\tcenters = new Float32Array(message.data.centers);\n\t\t\tboundMin.x = boundMax.x = centers[0];\n\t\t\tboundMin.y = boundMax.y = centers[1];\n\t\t\tboundMin.z = boundMax.z = centers[2];\n\t\t\tconst numVertices = centers.length / 3;\n\t\t\tfor (let i = 1; i < numVertices; ++i) {\n\t\t\t\tconst x = centers[i * 3 + 0];\n\t\t\t\tconst y = centers[i * 3 + 1];\n\t\t\t\tconst z = centers[i * 3 + 2];\n\t\t\t\tboundMin.x = Math.min(boundMin.x, x);\n\t\t\t\tboundMin.y = Math.min(boundMin.y, y);\n\t\t\t\tboundMin.z = Math.min(boundMin.z, z);\n\t\t\t\tboundMax.x = Math.max(boundMax.x, x);\n\t\t\t\tboundMax.y = Math.max(boundMax.y, y);\n\t\t\t\tboundMax.z = Math.max(boundMax.z, z);\n\t\t\t}\n\t\t\tforceUpdate = true;\n\t\t}\n\t\tif (message.data.hasOwnProperty('mapping')) {\n\t\t\tmapping = message.data.mapping ? new Uint32Array(message.data.mapping) : null;\n\t\t\tforceUpdate = true;\n\t\t}\n\t\tif (message.data.cameraPosition) cameraPosition = message.data.cameraPosition;\n\t\tif (message.data.cameraDirection) cameraDirection = message.data.cameraDirection;\n\t\tupdate();\n\t};\n}\nclass GSplatSorter extends EventHandler {\n\tconstructor() {\n\t\tsuper();\n\t\tthis.worker = void 0;\n\t\tthis.orderTexture = void 0;\n\t\tthis.centers = void 0;\n\t\tthis.worker = new Worker(URL.createObjectURL(new Blob([`(${SortWorker.toString()})()`], {\n\t\t\ttype: 'application/javascript'\n\t\t})));\n\t\tthis.worker.onmessage = message => {\n\t\t\tconst newOrder = message.data.order;\n\t\t\tconst oldOrder = this.orderTexture._levels[0].buffer;\n\t\t\tthis.worker.postMessage({\n\t\t\t\torder: oldOrder\n\t\t\t}, [oldOrder]);\n\t\t\tthis.orderTexture._levels[0] = new Uint32Array(newOrder);\n\t\t\tthis.orderTexture.upload();\n\t\t\tthis.fire('updated', message.data.count);\n\t\t};\n\t}\n\tdestroy() {\n\t\tthis.worker.terminate();\n\t\tthis.worker = null;\n\t}\n\tinit(orderTexture, centers) {\n\t\tthis.orderTexture = orderTexture;\n\t\tthis.centers = centers.slice();\n\t\tconst orderBuffer = this.orderTexture.lock({\n\t\t\tmode: TEXTURELOCK_READ\n\t\t}).buffer.slice();\n\t\tthis.orderTexture.unlock();\n\t\tthis.worker.postMessage({\n\t\t\torder: orderBuffer,\n\t\t\tcenters: centers.buffer\n\t\t}, [orderBuffer, centers.buffer]);\n\t}\n\tsetMapping(mapping) {\n\t\tif (mapping) {\n\t\t\tconst centers = new Float32Array(mapping.length * 3);\n\t\t\tfor (let i = 0; i < mapping.length; ++i) {\n\t\t\t\tconst src = mapping[i] * 3;\n\t\t\t\tconst dst = i * 3;\n\t\t\t\tcenters[dst + 0] = this.centers[src + 0];\n\t\t\t\tcenters[dst + 1] = this.centers[src + 1];\n\t\t\t\tcenters[dst + 2] = this.centers[src + 2];\n\t\t\t}\n\t\t\tthis.worker.postMessage({\n\t\t\t\tcenters: centers.buffer,\n\t\t\t\tmapping: mapping.buffer\n\t\t\t}, [centers.buffer, mapping.buffer]);\n\t\t} else {\n\t\t\tconst centers = this.centers.slice();\n\t\t\tthis.worker.postMessage({\n\t\t\t\tcenters: centers.buffer,\n\t\t\t\tmapping: null\n\t\t\t}, [centers.buffer]);\n\t\t}\n\t}\n\tsetCamera(pos, dir) {\n\t\tthis.worker.postMessage({\n\t\t\tcameraPosition: {\n\t\t\t\tx: pos.x,\n\t\t\t\ty: pos.y,\n\t\t\t\tz: pos.z\n\t\t\t},\n\t\t\tcameraDirection: {\n\t\t\t\tx: dir.x,\n\t\t\t\ty: dir.y,\n\t\t\t\tz: dir.z\n\t\t\t}\n\t\t});\n\t}\n}\n\nconst mat = new Mat4();\nconst cameraPosition = new Vec3();\nconst cameraDirection = new Vec3();\nconst viewport = [0, 0];\nclass GSplatInstance {\n\tconstructor(splat, options) {\n\t\tthis.splat = void 0;\n\t\tthis.mesh = void 0;\n\t\tthis.meshInstance = void 0;\n\t\tthis.material = void 0;\n\t\tthis.orderTexture = void 0;\n\t\tthis.options = {};\n\t\tthis.sorter = null;\n\t\tthis.lastCameraPosition = new Vec3();\n\t\tthis.lastCameraDirection = new Vec3();\n\t\tthis.cameras = [];\n\t\tthis.splat = splat;\n\t\toptions = Object.assign(this.options, options);\n\t\tconst device = splat.device;\n\t\tthis.orderTexture = this.splat.createTexture('splatOrder', PIXELFORMAT_R32U, this.splat.evalTextureSize(this.splat.numSplats));\n\t\tthis.createMaterial(options);\n\t\tconst splatInstanceSize = 128;\n\t\tconst numSplats = Math.ceil(splat.numSplats / splatInstanceSize) * splatInstanceSize;\n\t\tconst numSplatInstances = numSplats / splatInstanceSize;\n\t\tconst indexData = new Uint32Array(numSplatInstances);\n\t\tfor (let i = 0; i < numSplatInstances; ++i) {\n\t\t\tindexData[i] = i * splatInstanceSize;\n\t\t}\n\t\tconst vertexFormat = new VertexFormat(device, [{\n\t\t\tsemantic: SEMANTIC_ATTR13,\n\t\t\tcomponents: 1,\n\t\t\ttype: TYPE_UINT32,\n\t\t\tasInt: true\n\t\t}]);\n\t\tconst indicesVB = new VertexBuffer(device, vertexFormat, numSplatInstances, {\n\t\t\tusage: BUFFER_STATIC,\n\t\t\tdata: indexData.buffer\n\t\t});\n\t\tconst meshPositions = new Float32Array(12 * splatInstanceSize);\n\t\tconst meshIndices = new Uint32Array(6 * splatInstanceSize);\n\t\tfor (let i = 0; i < splatInstanceSize; ++i) {\n\t\t\tmeshPositions.set([-2, -2, i, 2, -2, i, 2, 2, i, -2, 2, i], i * 12);\n\t\t\tconst b = i * 4;\n\t\t\tmeshIndices.set([0 + b, 1 + b, 2 + b, 0 + b, 2 + b, 3 + b], i * 6);\n\t\t}\n\t\tconst mesh = new Mesh(device);\n\t\tmesh.setPositions(meshPositions, 3);\n\t\tmesh.setIndices(meshIndices);\n\t\tmesh.update();\n\t\tthis.mesh = mesh;\n\t\tthis.mesh.aabb.copy(splat.aabb);\n\t\tthis.meshInstance = new MeshInstance(this.mesh, this.material);\n\t\tthis.meshInstance.setInstancing(indicesVB, true);\n\t\tthis.meshInstance.gsplatInstance = this;\n\t\tthis.meshInstance.instancingCount = 0;\n\t\tthis.centers = new Float32Array(splat.centers);\n\t\tif (!options.dither || options.dither === DITHER_NONE) {\n\t\t\tthis.sorter = new GSplatSorter();\n\t\t\tthis.sorter.init(this.orderTexture, this.centers);\n\t\t\tthis.sorter.on('updated', count => {\n\t\t\t\tthis.meshInstance.instancingCount = Math.ceil(count / splatInstanceSize);\n\t\t\t\tconst tex_params = this.material.getParameter('tex_params');\n\t\t\t\tif (tex_params != null && tex_params.data) {\n\t\t\t\t\ttex_params.data[0] = count;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\tdestroy() {\n\t\tvar _this$material, _this$meshInstance, _this$sorter;\n\t\t(_this$material = this.material) == null || _this$material.destroy();\n\t\t(_this$meshInstance = this.meshInstance) == null || _this$meshInstance.destroy();\n\t\t(_this$sorter = this.sorter) == null || _this$sorter.destroy();\n\t}\n\tclone() {\n\t\treturn new GSplatInstance(this.splat, this.options);\n\t}\n\tcreateMaterial(options) {\n\t\tthis.material = this.splat.createMaterial(options);\n\t\tthis.material.setParameter('splatOrder', this.orderTexture);\n\t\tif (this.meshInstance) {\n\t\t\tthis.meshInstance.material = this.material;\n\t\t}\n\t}\n\tupdateViewport() {\n\t\tconst device = this.splat.device;\n\t\tviewport[0] = device.width;\n\t\tviewport[1] = device.height;\n\t\tif (this.cameras.length > 0) {\n\t\t\tconst camera = this.cameras[0];\n\t\t\tconst xr = camera.xr;\n\t\t\tif (xr && xr.active && xr.views.list.length === 2) {\n\t\t\t\tviewport[0] /= 2;\n\t\t\t}\n\t\t}\n\t\tthis.material.setParameter('viewport', viewport);\n\t}\n\tsort(cameraNode) {\n\t\tif (this.sorter) {\n\t\t\tconst cameraMat = cameraNode.getWorldTransform();\n\t\t\tcameraMat.getTranslation(cameraPosition);\n\t\t\tcameraMat.getZ(cameraDirection);\n\t\t\tconst modelMat = this.meshInstance.node.getWorldTransform();\n\t\t\tconst invModelMat = mat.invert(modelMat);\n\t\t\tinvModelMat.transformPoint(cameraPosition, cameraPosition);\n\t\t\tinvModelMat.transformVector(cameraDirection, cameraDirection);\n\t\t\tif (!cameraPosition.equalsApprox(this.lastCameraPosition) || !cameraDirection.equalsApprox(this.lastCameraDirection)) {\n\t\t\t\tthis.lastCameraPosition.copy(cameraPosition);\n\t\t\t\tthis.lastCameraDirection.copy(cameraDirection);\n\t\t\t\tthis.sorter.setCamera(cameraPosition, cameraDirection);\n\t\t\t}\n\t\t}\n\t\tthis.updateViewport();\n\t}\n\tupdate() {\n\t\tif (this.cameras.length > 0) {\n\t\t\tconst camera = this.cameras[0];\n\t\t\tthis.sort(camera._node);\n\t\t\tthis.cameras.length = 0;\n\t\t}\n\t}\n}\n\nconst FILLMODE_NONE = 'NONE';\nconst FILLMODE_FILL_WINDOW = 'FILL_WINDOW';\nconst FILLMODE_KEEP_ASPECT = 'KEEP_ASPECT';\nconst RESOLUTION_AUTO = 'AUTO';\nconst RESOLUTION_FIXED = 'FIXED';\n\nlet currentApplication;\nfunction getApplication() {\n\treturn currentApplication;\n}\nfunction setApplication(app) {\n\tcurrentApplication = app;\n}\n\nclass ScriptTypes {\n\tstatic push(Type, isLegacy) {\n\t\tif (isLegacy && ScriptTypes._types.length > 0) {\n\t\t\tconsole.assert('Script Ordering Error. Contact support@playcanvas.com');\n\t\t} else {\n\t\t\tScriptTypes._types.push(Type);\n\t\t}\n\t}\n}\nScriptTypes._types = [];\n\nlet _legacy = false;\nlet _createdLoadingScreen = false;\nconst script = {\n\tapp: null,\n\tcreate(name, callback) {\n\t\tif (!_legacy) {\n\t\t\treturn;\n\t\t}\n\t\tconst ScriptType = callback(script.app);\n\t\tScriptType._pcScriptName = name;\n\t\tScriptTypes.push(ScriptType, _legacy);\n\t\tthis.fire('created', name, callback);\n\t},\n\tattribute(name, type, defaultValue, options) {},\n\tcreateLoadingScreen(callback) {\n\t\tif (_createdLoadingScreen) {\n\t\t\treturn;\n\t\t}\n\t\t_createdLoadingScreen = true;\n\t\tconst app = getApplication();\n\t\tcallback(app);\n\t}\n};\nObject.defineProperty(script, 'legacy', {\n\tget: function () {\n\t\treturn _legacy;\n\t},\n\tset: function (value) {\n\t\t_legacy = value;\n\t}\n});\nevents.attach(script);\n\nclass FrameGraph {\n\tconstructor() {\n\t\tthis.renderPasses = [];\n\t\tthis.renderTargetMap = new Map();\n\t}\n\taddRenderPass(renderPass) {\n\t\trenderPass.frameUpdate();\n\t\tconst beforePasses = renderPass.beforePasses;\n\t\tfor (let i = 0; i < beforePasses.length; i++) {\n\t\t\tconst pass = beforePasses[i];\n\t\t\tif (pass.enabled) {\n\t\t\t\tthis.addRenderPass(pass);\n\t\t\t}\n\t\t}\n\t\tif (renderPass.enabled) {\n\t\t\tthis.renderPasses.push(renderPass);\n\t\t}\n\t\tconst afterPasses = renderPass.afterPasses;\n\t\tfor (let i = 0; i < afterPasses.length; i++) {\n\t\t\tconst pass = afterPasses[i];\n\t\t\tif (pass.enabled) {\n\t\t\t\tthis.addRenderPass(pass);\n\t\t\t}\n\t\t}\n\t}\n\treset() {\n\t\tthis.renderPasses.length = 0;\n\t}\n\tcompile() {\n\t\tconst renderTargetMap = this.renderTargetMap;\n\t\tconst renderPasses = this.renderPasses;\n\t\tfor (let i = 0; i < renderPasses.length; i++) {\n\t\t\tconst renderPass = renderPasses[i];\n\t\t\tconst renderTarget = renderPass.renderTarget;\n\t\t\tif (renderTarget !== undefined) {\n\t\t\t\tconst prevPass = renderTargetMap.get(renderTarget);\n\t\t\t\tif (prevPass) {\n\t\t\t\t\tconst count = renderPass.colorArrayOps.length;\n\t\t\t\t\tfor (let j = 0; j < count; j++) {\n\t\t\t\t\t\tconst colorOps = renderPass.colorArrayOps[j];\n\t\t\t\t\t\tif (!colorOps.clear) {\n\t\t\t\t\t\t\tprevPass.colorArrayOps[j].store = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!renderPass.depthStencilOps.clearDepth) {\n\t\t\t\t\t\tprevPass.depthStencilOps.storeDepth = true;\n\t\t\t\t\t}\n\t\t\t\t\tif (!renderPass.depthStencilOps.clearStencil) {\n\t\t\t\t\t\tprevPass.depthStencilOps.storeStencil = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\trenderTargetMap.set(renderTarget, renderPass);\n\t\t\t}\n\t\t}\n\t\tlet lastCubeTexture = null;\n\t\tlet lastCubeRenderPass = null;\n\t\tfor (let i = 0; i < renderPasses.length; i++) {\n\t\t\tconst renderPass = renderPasses[i];\n\t\t\tconst renderTarget = renderPass.renderTarget;\n\t\t\tconst thisTexture = renderTarget == null ? void 0 : renderTarget.colorBuffer;\n\t\t\tif (thisTexture != null && thisTexture.cubemap) {\n\t\t\t\tif (lastCubeTexture === thisTexture) {\n\t\t\t\t\tconst count = lastCubeRenderPass.colorArrayOps.length;\n\t\t\t\t\tfor (let j = 0; j < count; j++) {\n\t\t\t\t\t\tlastCubeRenderPass.colorArrayOps[j].mipmaps = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlastCubeTexture = renderTarget.colorBuffer;\n\t\t\t\tlastCubeRenderPass = renderPass;\n\t\t\t} else if (renderPass.requiresCubemaps) {\n\t\t\t\tlastCubeTexture = null;\n\t\t\t\tlastCubeRenderPass = null;\n\t\t\t}\n\t\t}\n\t\trenderTargetMap.clear();\n\t}\n\trender(device) {\n\t\tthis.compile();\n\t\tconst renderPasses = this.renderPasses;\n\t\tfor (let i = 0; i < renderPasses.length; i++) {\n\t\t\trenderPasses[i].render();\n\t\t}\n\t}\n}\n\nclass AreaLightCacheEntry {\n\tconstructor(texture0, texture1) {\n\t\tthis.texture0 = texture0;\n\t\tthis.texture1 = texture1;\n\t}\n\tdestroy() {\n\t\tvar _this$texture, _this$texture2;\n\t\t(_this$texture = this.texture0) == null || _this$texture.destroy();\n\t\t(_this$texture2 = this.texture1) == null || _this$texture2.destroy();\n\t}\n}\nconst deviceCache = new DeviceCache();\nclass AreaLightLuts {\n\tstatic createTexture(device, format, size, postfix = '') {\n\t\tconst tex = new Texture(device, {\n\t\t\tname: `AreaLightLUT${postfix}`,\n\t\t\twidth: size,\n\t\t\theight: size,\n\t\t\tformat: format,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\ttype: TEXTURETYPE_DEFAULT,\n\t\t\tmagFilter: FILTER_LINEAR,\n\t\t\tminFilter: FILTER_NEAREST,\n\t\t\tanisotropy: 1,\n\t\t\tmipmaps: false\n\t\t});\n\t\treturn tex;\n\t}\n\tstatic applyTextures(device, texture1, texture2) {\n\t\tdeviceCache.remove(device);\n\t\tdeviceCache.get(device, () => {\n\t\t\treturn new AreaLightCacheEntry(texture1, texture1 === texture2 ? null : texture2);\n\t\t});\n\t\tdevice.scope.resolve('areaLightsLutTex1').setValue(texture1);\n\t\tdevice.scope.resolve('areaLightsLutTex2').setValue(texture2);\n\t}\n\tstatic createPlaceholder(device) {\n\t\tconst texture = AreaLightLuts.createTexture(device, device.areaLightLutFormat, 2, 'placeholder');\n\t\tconst pixels = texture.lock();\n\t\tpixels.fill(0);\n\t\ttexture.unlock();\n\t\tAreaLightLuts.applyTextures(device, texture, texture);\n\t}\n\tstatic set(device, ltcMat1, ltcMat2) {\n\t\tfunction buildTexture(device, data, format) {\n\t\t\tconst texture = AreaLightLuts.createTexture(device, format, 64);\n\t\t\ttexture.lock().set(data);\n\t\t\ttexture.unlock();\n\t\t\treturn texture;\n\t\t}\n\t\tfunction offsetScale(data, offset, scale) {\n\t\t\tconst count = data.length;\n\t\t\tconst ret = new Float32Array(count);\n\t\t\tfor (let i = 0; i < count; i++) {\n\t\t\t\tconst n = i % 4;\n\t\t\t\tret[i] = (data[i] + offset[n]) * scale[n];\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t\tfunction convertToHalfFloat(data) {\n\t\t\tconst count = data.length;\n\t\t\tconst ret = new Uint16Array(count);\n\t\t\tconst float2Half = FloatPacking.float2Half;\n\t\t\tfor (let i = 0; i < count; i++) {\n\t\t\t\tret[i] = float2Half(data[i]);\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t\tfunction convertToUint(data) {\n\t\t\tconst count = data.length;\n\t\t\tconst ret = new Uint8ClampedArray(count);\n\t\t\tfor (let i = 0; i < count; i++) {\n\t\t\t\tret[i] = data[i] * 255;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t\tconst srcData1 = ltcMat1;\n\t\tconst srcData2 = ltcMat2;\n\t\tlet data1, data2;\n\t\tconst format = device.areaLightLutFormat;\n\t\tif (format === PIXELFORMAT_RGBA32F) {\n\t\t\tdata1 = srcData1;\n\t\t\tdata2 = srcData2;\n\t\t} else if (format === PIXELFORMAT_RGBA16F) {\n\t\t\tdata1 = convertToHalfFloat(srcData1);\n\t\t\tdata2 = convertToHalfFloat(srcData2);\n\t\t} else {\n\t\t\tconst o1 = [0.0, 0.2976, 0.01381, 0.0];\n\t\t\tconst s1 = [0.999, 3.08737, 1.6546, 0.603249];\n\t\t\tconst o2 = [-0.306897, 0.0, 0.0, 0.0];\n\t\t\tconst s2 = [1.442787, 1.0, 1.0, 1.0];\n\t\t\tdata1 = convertToUint(offsetScale(srcData1, o1, s1));\n\t\t\tdata2 = convertToUint(offsetScale(srcData2, o2, s2));\n\t\t}\n\t\tconst tex1 = buildTexture(device, data1, format);\n\t\tconst tex2 = buildTexture(device, data2, format);\n\t\tAreaLightLuts.applyTextures(device, tex1, tex2);\n\t}\n}\n\nconst DEFAULT_LOCALE = 'en-US';\nconst DEFAULT_LOCALE_FALLBACKS = {\n\t'en': 'en-US',\n\t'es': 'en-ES',\n\t'zh': 'zh-CN',\n\t'zh-HK': 'zh-TW',\n\t'zh-TW': 'zh-HK',\n\t'zh-MO': 'zh-HK',\n\t'fr': 'fr-FR',\n\t'de': 'de-DE',\n\t'it': 'it-IT',\n\t'ru': 'ru-RU',\n\t'ja': 'ja-JP'\n};\n\nconst PLURALS = {};\nfunction definePluralFn(locales, fn) {\n\tfor (let i = 0, len = locales.length; i < len; i++) {\n\t\tPLURALS[locales[i]] = fn;\n\t}\n}\nfunction getLang(locale) {\n\tconst idx = locale.indexOf('-');\n\tif (idx !== -1) {\n\t\treturn locale.substring(0, idx);\n\t}\n\treturn locale;\n}\nfunction replaceLang(locale, desiredLang) {\n\tconst idx = locale.indexOf('-');\n\tif (idx !== -1) {\n\t\treturn desiredLang + locale.substring(idx);\n\t}\n\treturn desiredLang;\n}\nfunction findAvailableLocale(desiredLocale, availableLocales) {\n\tif (availableLocales[desiredLocale]) {\n\t\treturn desiredLocale;\n\t}\n\tlet fallback = DEFAULT_LOCALE_FALLBACKS[desiredLocale];\n\tif (fallback && availableLocales[fallback]) {\n\t\treturn fallback;\n\t}\n\tconst lang = getLang(desiredLocale);\n\tfallback = DEFAULT_LOCALE_FALLBACKS[lang];\n\tif (availableLocales[fallback]) {\n\t\treturn fallback;\n\t}\n\tif (availableLocales[lang]) {\n\t\treturn lang;\n\t}\n\treturn DEFAULT_LOCALE;\n}\ndefinePluralFn(['ja', 'ko', 'th', 'vi', 'zh', 'id'], n => {\n\treturn 0;\n});\ndefinePluralFn(['fa', 'hi'], n => {\n\tif (n >= 0 && n <= 1) {\n\t\treturn 0;\n\t}\n\treturn 1;\n});\ndefinePluralFn(['fr', 'pt'], n => {\n\tif (n >= 0 && n < 2) {\n\t\treturn 0;\n\t}\n\treturn 1;\n});\ndefinePluralFn(['da'], n => {\n\tif (n === 1 || !Number.isInteger(n) && n >= 0 && n <= 1) {\n\t\treturn 0;\n\t}\n\treturn 1;\n});\ndefinePluralFn(['de', 'en', 'it', 'el', 'es', 'tr', 'fi', 'sv', 'nb', 'no', 'ur'], n => {\n\tif (n === 1) {\n\t\treturn 0;\n\t}\n\treturn 1;\n});\ndefinePluralFn(['ru', 'uk'], n => {\n\tif (Number.isInteger(n)) {\n\t\tconst mod10 = n % 10;\n\t\tconst mod100 = n % 100;\n\t\tif (mod10 === 1 && mod100 !== 11) {\n\t\t\treturn 0;\n\t\t} else if (mod10 >= 2 && mod10 <= 4 && (mod100 < 12 || mod100 > 14)) {\n\t\t\treturn 1;\n\t\t} else if (mod10 === 0 || mod10 >= 5 && mod10 <= 9 || mod100 >= 11 && mod100 <= 14) {\n\t\t\treturn 2;\n\t\t}\n\t}\n\treturn 3;\n});\ndefinePluralFn(['pl'], n => {\n\tif (Number.isInteger(n)) {\n\t\tif (n === 1) {\n\t\t\treturn 0;\n\t\t}\n\t\tconst mod10 = n % 10;\n\t\tconst mod100 = n % 100;\n\t\tif (mod10 >= 2 && mod10 <= 4 && (mod100 < 12 || mod100 > 14)) {\n\t\t\treturn 1;\n\t\t} else if (mod10 >= 0 && mod10 <= 1 || mod10 >= 5 && mod10 <= 9 || mod100 >= 12 && mod100 <= 14) {\n\t\t\treturn 2;\n\t\t}\n\t}\n\treturn 3;\n});\ndefinePluralFn(['ar'], n => {\n\tif (n === 0) {\n\t\treturn 0;\n\t} else if (n === 1) {\n\t\treturn 1;\n\t} else if (n === 2) {\n\t\treturn 2;\n\t}\n\tif (Number.isInteger(n)) {\n\t\tconst mod100 = n % 100;\n\t\tif (mod100 >= 3 && mod100 <= 10) {\n\t\t\treturn 3;\n\t\t} else if (mod100 >= 11 && mod100 <= 99) {\n\t\t\treturn 4;\n\t\t}\n\t}\n\treturn 5;\n});\nconst DEFAULT_PLURAL_FN = PLURALS[getLang(DEFAULT_LOCALE)];\nfunction getPluralFn(lang) {\n\treturn PLURALS[lang] || DEFAULT_PLURAL_FN;\n}\n\nconst ABSOLUTE_URL = new RegExp('^' + '\\\\s*' + '(?:' + '(?:' + '[a-z]+[a-z0-9\\\\-+.]*' + ':' + ')?' + '//' + '|' + 'data:' + '|blob:' + ')', 'i');\nconst ASSET_ANIMATION = 'animation';\nconst ASSET_AUDIO = 'audio';\nconst ASSET_IMAGE = 'image';\nconst ASSET_JSON = 'json';\nconst ASSET_MODEL = 'model';\nconst ASSET_MATERIAL = 'material';\nconst ASSET_TEXT = 'text';\nconst ASSET_TEXTURE = 'texture';\nconst ASSET_TEXTUREATLAS = 'textureatlas';\nconst ASSET_CUBEMAP = 'cubemap';\nconst ASSET_SHADER = 'shader';\nconst ASSET_CSS = 'css';\nconst ASSET_HTML = 'html';\nconst ASSET_SCRIPT = 'script';\nconst ASSET_CONTAINER = 'container';\n\nclass AssetFile {\n\tconstructor(url = '', filename = '', hash = null, size = null, opt = null, contents = null) {\n\t\tthis.url = url;\n\t\tthis.filename = filename;\n\t\tthis.hash = hash;\n\t\tthis.size = size;\n\t\tthis.opt = opt;\n\t\tthis.contents = contents;\n\t}\n\tequals(other) {\n\t\treturn this.url === other.url && this.filename === other.filename && this.hash === other.hash && this.size === other.size && this.opt === other.opt && this.contents === other.contents;\n\t}\n}\n\nlet assetIdCounter = -1;\nconst VARIANT_SUPPORT = {\n\tpvr: 'extCompressedTexturePVRTC',\n\tdxt: 'extCompressedTextureS3TC',\n\tetc2: 'extCompressedTextureETC',\n\tetc1: 'extCompressedTextureETC1',\n\tbasis: 'canvas'\n};\nconst VARIANT_DEFAULT_PRIORITY = ['pvr', 'dxt', 'etc2', 'etc1', 'basis'];\nclass Asset extends EventHandler {\n\tconstructor(name, type, file, data, options) {\n\t\tsuper();\n\t\tthis._id = assetIdCounter--;\n\t\tthis._name = name || '';\n\t\tthis.type = type;\n\t\tthis.tags = new Tags(this);\n\t\tthis._preload = false;\n\t\tthis._file = null;\n\t\tthis._data = data || {};\n\t\tthis.options = options || {};\n\t\tthis._resources = [];\n\t\tthis.urlObject = null;\n\t\tthis._i18n = {};\n\t\tthis.loaded = false;\n\t\tthis.loading = false;\n\t\tthis.registry = null;\n\t\tif (file) this.file = file;\n\t}\n\tset id(value) {\n\t\tthis._id = value;\n\t}\n\tget id() {\n\t\treturn this._id;\n\t}\n\tset name(value) {\n\t\tif (this._name === value) {\n\t\t\treturn;\n\t\t}\n\t\tconst old = this._name;\n\t\tthis._name = value;\n\t\tthis.fire('name', this, this._name, old);\n\t}\n\tget name() {\n\t\treturn this._name;\n\t}\n\tset file(value) {\n\t\tif (value && value.variants && ['texture', 'textureatlas', 'bundle'].indexOf(this.type) !== -1) {\n\t\t\tvar _this$registry;\n\t\t\tconst app = ((_this$registry = this.registry) == null || (_this$registry = _this$registry._loader) == null ? void 0 : _this$registry._app) || getApplication();\n\t\t\tconst device = app == null ? void 0 : app.graphicsDevice;\n\t\t\tif (device) {\n\t\t\t\tfor (let i = 0, len = VARIANT_DEFAULT_PRIORITY.length; i < len; i++) {\n\t\t\t\t\tconst variant = VARIANT_DEFAULT_PRIORITY[i];\n\t\t\t\t\tif (value.variants[variant] && device[VARIANT_SUPPORT[variant]]) {\n\t\t\t\t\t\tvalue = value.variants[variant];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif (app.enableBundles) {\n\t\t\t\t\t\tconst bundles = app.bundles.listBundlesForAsset(this);\n\t\t\t\t\t\tif (bundles && bundles.find(b => {\n\t\t\t\t\t\t\tvar _b$file;\n\t\t\t\t\t\t\treturn b == null || (_b$file = b.file) == null ? void 0 : _b$file.variants[variant];\n\t\t\t\t\t\t})) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst oldFile = this._file;\n\t\tconst newFile = value ? new AssetFile(value.url, value.filename, value.hash, value.size, value.opt, value.contents) : null;\n\t\tif (!!newFile !== !!oldFile || newFile && !newFile.equals(oldFile)) {\n\t\t\tthis._file = newFile;\n\t\t\tthis.fire('change', this, 'file', newFile, oldFile);\n\t\t\tthis.reload();\n\t\t}\n\t}\n\tget file() {\n\t\treturn this._file;\n\t}\n\tset data(value) {\n\t\tconst old = this._data;\n\t\tthis._data = value;\n\t\tif (value !== old) {\n\t\t\tthis.fire('change', this, 'data', value, old);\n\t\t\tif (this.loaded) {\n\t\t\t\tthis.registry._loader.patch(this, this.registry);\n\t\t\t}\n\t\t}\n\t}\n\tget data() {\n\t\treturn this._data;\n\t}\n\tset resource(value) {\n\t\tconst _old = this._resources[0];\n\t\tthis._resources[0] = value;\n\t\tthis.fire('change', this, 'resource', value, _old);\n\t}\n\tget resource() {\n\t\treturn this._resources[0];\n\t}\n\tset resources(value) {\n\t\tconst _old = this._resources;\n\t\tthis._resources = value;\n\t\tthis.fire('change', this, 'resources', value, _old);\n\t}\n\tget resources() {\n\t\treturn this._resources;\n\t}\n\tset preload(value) {\n\t\tvalue = !!value;\n\t\tif (this._preload === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis._preload = value;\n\t\tif (this._preload && !this.loaded && !this.loading && this.registry) {\n\t\t\tthis.registry.load(this);\n\t\t}\n\t}\n\tget preload() {\n\t\treturn this._preload;\n\t}\n\tset loadFaces(value) {\n\t\tvalue = !!value;\n\t\tif (!this.hasOwnProperty('_loadFaces') || value !== this._loadFaces) {\n\t\t\tthis._loadFaces = value;\n\t\t\tif (this.loaded) {\n\t\t\t\tthis.registry._loader.patch(this, this.registry);\n\t\t\t}\n\t\t}\n\t}\n\tget loadFaces() {\n\t\treturn this._loadFaces;\n\t}\n\tgetFileUrl() {\n\t\tconst file = this.file;\n\t\tif (!file || !file.url) {\n\t\t\treturn null;\n\t\t}\n\t\tlet url = file.url;\n\t\tif (this.registry && this.registry.prefix && !ABSOLUTE_URL.test(url)) {\n\t\t\turl = this.registry.prefix + url;\n\t\t}\n\t\tif (this.type !== 'script' && file.hash) {\n\t\t\tconst separator = url.indexOf('?') !== -1 ? '&' : '?';\n\t\t\turl += `${separator}t=${file.hash}`;\n\t\t}\n\t\treturn url;\n\t}\n\tgetAbsoluteUrl(relativePath) {\n\t\tif (relativePath.startsWith('blob:') || relativePath.startsWith('data:')) {\n\t\t\treturn relativePath;\n\t\t}\n\t\tconst base = path.getDirectory(this.file.url);\n\t\treturn path.join(base, relativePath);\n\t}\n\tgetLocalizedAssetId(locale) {\n\t\tlocale = findAvailableLocale(locale, this._i18n);\n\t\treturn this._i18n[locale] || null;\n\t}\n\taddLocalizedAssetId(locale, assetId) {\n\t\tthis._i18n[locale] = assetId;\n\t\tthis.fire('add:localized', locale, assetId);\n\t}\n\tremoveLocalizedAssetId(locale) {\n\t\tconst assetId = this._i18n[locale];\n\t\tif (assetId) {\n\t\t\tdelete this._i18n[locale];\n\t\t\tthis.fire('remove:localized', locale, assetId);\n\t\t}\n\t}\n\tready(callback, scope) {\n\t\tscope = scope || this;\n\t\tif (this.loaded) {\n\t\t\tcallback.call(scope, this);\n\t\t} else {\n\t\t\tthis.once('load', asset => {\n\t\t\t\tcallback.call(scope, asset);\n\t\t\t});\n\t\t}\n\t}\n\treload() {\n\t\tif (this.loaded) {\n\t\t\tthis.loaded = false;\n\t\t\tthis.registry.load(this);\n\t\t}\n\t}\n\tunload() {\n\t\tif (!this.loaded && this._resources.length === 0) {\n\t\t\treturn;\n\t\t}\n\t\tthis.fire('unload', this);\n\t\tthis.registry.fire(`unload:${this.id}`, this);\n\t\tconst old = this._resources;\n\t\tif (this.urlObject) {\n\t\t\tURL.revokeObjectURL(this.urlObject);\n\t\t\tthis.urlObject = null;\n\t\t}\n\t\tthis.resources = [];\n\t\tthis.loaded = false;\n\t\tif (this.file) {\n\t\t\tthis.registry._loader.clearCache(this.getFileUrl(), this.type);\n\t\t}\n\t\tfor (let i = 0; i < old.length; ++i) {\n\t\t\tconst resource = old[i];\n\t\t\tif (resource && resource.destroy) {\n\t\t\t\tresource.destroy();\n\t\t\t}\n\t\t}\n\t}\n\tstatic fetchArrayBuffer(loadUrl, callback, asset, maxRetries = 0) {\n\t\tvar _asset$file;\n\t\tif (asset != null && (_asset$file = asset.file) != null && _asset$file.contents) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tcallback(null, asset.file.contents);\n\t\t\t});\n\t\t} else {\n\t\t\thttp.get(loadUrl, {\n\t\t\t\tcache: true,\n\t\t\t\tresponseType: 'arraybuffer',\n\t\t\t\tretry: maxRetries > 0,\n\t\t\t\tmaxRetries: maxRetries\n\t\t\t}, callback);\n\t\t}\n\t}\n}\nAsset.EVENT_LOAD = 'load';\nAsset.EVENT_UNLOAD = 'unload';\nAsset.EVENT_REMOVE = 'remove';\nAsset.EVENT_ERROR = 'error';\nAsset.EVENT_CHANGE = 'change';\nAsset.EVENT_ADDLOCALIZED = 'add:localized';\nAsset.EVENT_REMOVELOCALIZED = 'remove:localized';\n\nclass TagsCache {\n\tconstructor(key = null) {\n\t\tthis._index = {};\n\t\tthis._key = void 0;\n\t\tthis._key = key;\n\t}\n\taddItem(item) {\n\t\tconst tags = item.tags._list;\n\t\tfor (const tag of tags) {\n\t\t\tthis.add(tag, item);\n\t\t}\n\t}\n\tremoveItem(item) {\n\t\tconst tags = item.tags._list;\n\t\tfor (const tag of tags) {\n\t\t\tthis.remove(tag, item);\n\t\t}\n\t}\n\tadd(tag, item) {\n\t\tif (this._index[tag] && this._index[tag].list.indexOf(item) !== -1) {\n\t\t\treturn;\n\t\t}\n\t\tif (!this._index[tag]) {\n\t\t\tthis._index[tag] = {\n\t\t\t\tlist: []\n\t\t\t};\n\t\t\tif (this._key) {\n\t\t\t\tthis._index[tag].keys = {};\n\t\t\t}\n\t\t}\n\t\tthis._index[tag].list.push(item);\n\t\tif (this._key) {\n\t\t\tthis._index[tag].keys[item[this._key]] = item;\n\t\t}\n\t}\n\tremove(tag, item) {\n\t\tif (!this._index[tag]) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._key) {\n\t\t\tif (!this._index[tag].keys[item[this._key]]) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tconst ind = this._index[tag].list.indexOf(item);\n\t\tif (ind === -1) {\n\t\t\treturn;\n\t\t}\n\t\tthis._index[tag].list.splice(ind, 1);\n\t\tif (this._key) {\n\t\t\tdelete this._index[tag].keys[item[this._key]];\n\t\t}\n\t\tif (this._index[tag].list.length === 0) {\n\t\t\tdelete this._index[tag];\n\t\t}\n\t}\n\tfind(args) {\n\t\tconst index = {};\n\t\tconst items = [];\n\t\tlet item, tag, tags, tagsRest, missingIndex;\n\t\tconst sort = (a, b) => {\n\t\t\treturn this._index[a].list.length - this._index[b].list.length;\n\t\t};\n\t\tfor (let i = 0; i < args.length; i++) {\n\t\t\ttag = args[i];\n\t\t\tif (tag instanceof Array) {\n\t\t\t\tif (tag.length === 0) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (tag.length === 1) {\n\t\t\t\t\ttag = tag[0];\n\t\t\t\t} else {\n\t\t\t\t\tmissingIndex = false;\n\t\t\t\t\tfor (let t = 0; t < tag.length; t++) {\n\t\t\t\t\t\tif (!this._index[tag[t]]) {\n\t\t\t\t\t\t\tmissingIndex = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (missingIndex) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\ttags = tag.slice(0).sort(sort);\n\t\t\t\t\ttagsRest = tags.slice(1);\n\t\t\t\t\tif (tagsRest.length === 1) {\n\t\t\t\t\t\ttagsRest = tagsRest[0];\n\t\t\t\t\t}\n\t\t\t\t\tfor (let n = 0; n < this._index[tags[0]].list.length; n++) {\n\t\t\t\t\t\titem = this._index[tags[0]].list[n];\n\t\t\t\t\t\tif ((this._key ? !index[item[this._key]] : items.indexOf(item) === -1) && item.tags.has(tagsRest)) {\n\t\t\t\t\t\t\tif (this._key) {\n\t\t\t\t\t\t\t\tindex[item[this._key]] = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\titems.push(item);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (tag && typeof tag === 'string' && this._index[tag]) {\n\t\t\t\tfor (let n = 0; n < this._index[tag].list.length; n++) {\n\t\t\t\t\titem = this._index[tag].list[n];\n\t\t\t\t\tif (this._key) {\n\t\t\t\t\t\tif (!index[item[this._key]]) {\n\t\t\t\t\t\t\tindex[item[this._key]] = true;\n\t\t\t\t\t\t\titems.push(item);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (items.indexOf(item) === -1) {\n\t\t\t\t\t\titems.push(item);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn items;\n\t}\n}\n\nclass AssetRegistry extends EventHandler {\n\tconstructor(loader) {\n\t\tsuper();\n\t\tthis._assets = new Set();\n\t\tthis._idToAsset = new Map();\n\t\tthis._urlToAsset = new Map();\n\t\tthis._nameToAsset = new Map();\n\t\tthis._tags = new TagsCache('_id');\n\t\tthis.prefix = null;\n\t\tthis.bundles = null;\n\t\tthis._loader = loader;\n\t}\n\tlist(filters = {}) {\n\t\tconst assets = Array.from(this._assets);\n\t\tif (filters.preload !== undefined) {\n\t\t\treturn assets.filter(asset => asset.preload === filters.preload);\n\t\t}\n\t\treturn assets;\n\t}\n\tadd(asset) {\n\t\tvar _asset$file, _asset$file2;\n\t\tif (this._assets.has(asset)) return;\n\t\tthis._assets.add(asset);\n\t\tthis._idToAsset.set(asset.id, asset);\n\t\tif ((_asset$file = asset.file) != null && _asset$file.url) {\n\t\t\tthis._urlToAsset.set(asset.file.url, asset);\n\t\t}\n\t\tif (!this._nameToAsset.has(asset.name)) {\n\t\t\tthis._nameToAsset.set(asset.name, new Set());\n\t\t}\n\t\tthis._nameToAsset.get(asset.name).add(asset);\n\t\tasset.on('name', this._onNameChange, this);\n\t\tasset.registry = this;\n\t\tthis._tags.addItem(asset);\n\t\tasset.tags.on('add', this._onTagAdd, this);\n\t\tasset.tags.on('remove', this._onTagRemove, this);\n\t\tthis.fire('add', asset);\n\t\tthis.fire(`add:${asset.id}`, asset);\n\t\tif ((_asset$file2 = asset.file) != null && _asset$file2.url) {\n\t\t\tthis.fire(`add:url:${asset.file.url}`, asset);\n\t\t}\n\t\tif (asset.preload) {\n\t\t\tthis.load(asset);\n\t\t}\n\t}\n\tremove(asset) {\n\t\tvar _asset$file3, _asset$file4;\n\t\tif (!this._assets.has(asset)) return false;\n\t\tthis._assets.delete(asset);\n\t\tthis._idToAsset.delete(asset.id);\n\t\tif ((_asset$file3 = asset.file) != null && _asset$file3.url) {\n\t\t\tthis._urlToAsset.delete(asset.file.url);\n\t\t}\n\t\tasset.off('name', this._onNameChange, this);\n\t\tif (this._nameToAsset.has(asset.name)) {\n\t\t\tconst items = this._nameToAsset.get(asset.name);\n\t\t\titems.delete(asset);\n\t\t\tif (items.size === 0) {\n\t\t\t\tthis._nameToAsset.delete(asset.name);\n\t\t\t}\n\t\t}\n\t\tthis._tags.removeItem(asset);\n\t\tasset.tags.off('add', this._onTagAdd, this);\n\t\tasset.tags.off('remove', this._onTagRemove, this);\n\t\tasset.fire('remove', asset);\n\t\tthis.fire('remove', asset);\n\t\tthis.fire(`remove:${asset.id}`, asset);\n\t\tif ((_asset$file4 = asset.file) != null && _asset$file4.url) {\n\t\t\tthis.fire(`remove:url:${asset.file.url}`, asset);\n\t\t}\n\t\treturn true;\n\t}\n\tget(id) {\n\t\treturn this._idToAsset.get(Number(id));\n\t}\n\tgetByUrl(url) {\n\t\treturn this._urlToAsset.get(url);\n\t}\n\tload(asset, options) {\n\t\tif ((asset.loading || asset.loaded) && !(options != null && options.force)) {\n\t\t\treturn;\n\t\t}\n\t\tconst file = asset.file;\n\t\tconst _fireLoad = () => {\n\t\t\tthis.fire('load', asset);\n\t\t\tthis.fire(`load:${asset.id}`, asset);\n\t\t\tif (file && file.url) {\n\t\t\t\tthis.fire(`load:url:${file.url}`, asset);\n\t\t\t}\n\t\t\tasset.fire('load', asset);\n\t\t};\n\t\tconst _opened = resource => {\n\t\t\tif (resource instanceof Array) {\n\t\t\t\tasset.resources = resource;\n\t\t\t} else {\n\t\t\t\tasset.resource = resource;\n\t\t\t}\n\t\t\tthis._loader.patch(asset, this);\n\t\t\tif (asset.type === 'bundle') {\n\t\t\t\tconst assetIds = asset.data.assets;\n\t\t\t\tfor (let i = 0; i < assetIds.length; i++) {\n\t\t\t\t\tconst assetInBundle = this._idToAsset.get(assetIds[i]);\n\t\t\t\t\tif (assetInBundle && !assetInBundle.loaded) {\n\t\t\t\t\t\tthis.load(assetInBundle, {\n\t\t\t\t\t\t\tforce: true\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (asset.resource.loaded) {\n\t\t\t\t\t_fireLoad();\n\t\t\t\t} else {\n\t\t\t\t\tthis.fire('load:start', asset);\n\t\t\t\t\tthis.fire(`load:start:${asset.id}`, asset);\n\t\t\t\t\tif (file && file.url) {\n\t\t\t\t\t\tthis.fire(`load:start:url:${file.url}`, asset);\n\t\t\t\t\t}\n\t\t\t\t\tasset.fire('load:start', asset);\n\t\t\t\t\tasset.resource.on('load', _fireLoad);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t_fireLoad();\n\t\t\t}\n\t\t};\n\t\tconst _loaded = (err, resource, extra) => {\n\t\t\tasset.loaded = true;\n\t\t\tasset.loading = false;\n\t\t\tif (err) {\n\t\t\t\tthis.fire('error', err, asset);\n\t\t\t\tthis.fire(`error:${asset.id}`, err, asset);\n\t\t\t\tasset.fire('error', err, asset);\n\t\t\t} else {\n\t\t\t\tif (!script.legacy && asset.type === 'script') {\n\t\t\t\t\tconst handler = this._loader.getHandler('script');\n\t\t\t\t\tif (handler._cache[asset.id] && handler._cache[asset.id].parentNode === document.head) {\n\t\t\t\t\t\tdocument.head.removeChild(handler._cache[asset.id]);\n\t\t\t\t\t}\n\t\t\t\t\thandler._cache[asset.id] = extra;\n\t\t\t\t}\n\t\t\t\t_opened(resource);\n\t\t\t}\n\t\t};\n\t\tif (file || asset.type === 'cubemap') {\n\t\t\tthis.fire('load:start', asset);\n\t\t\tthis.fire(`load:${asset.id}:start`, asset);\n\t\t\tasset.loading = true;\n\t\t\tconst fileUrl = asset.getFileUrl();\n\t\t\tif (asset.type === 'bundle') {\n\t\t\t\tconst assetIds = asset.data.assets;\n\t\t\t\tfor (let i = 0; i < assetIds.length; i++) {\n\t\t\t\t\tconst assetInBundle = this._idToAsset.get(assetIds[i]);\n\t\t\t\t\tif (!assetInBundle) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tif (assetInBundle.loaded || assetInBundle.resource || assetInBundle.loading) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tassetInBundle.loading = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._loader.load(fileUrl, asset.type, _loaded, asset, options);\n\t\t} else {\n\t\t\tconst resource = this._loader.open(asset.type, asset.data);\n\t\t\tasset.loaded = true;\n\t\t\t_opened(resource);\n\t\t}\n\t}\n\tloadFromUrl(url, type, callback) {\n\t\tthis.loadFromUrlAndFilename(url, null, type, callback);\n\t}\n\tloadFromUrlAndFilename(url, filename, type, callback) {\n\t\tconst name = path.getBasename(filename || url);\n\t\tconst file = {\n\t\t\tfilename: filename || name,\n\t\t\turl: url\n\t\t};\n\t\tlet asset = this.getByUrl(url);\n\t\tif (!asset) {\n\t\t\tasset = new Asset(name, type, file);\n\t\t\tthis.add(asset);\n\t\t} else if (asset.loaded) {\n\t\t\tcallback(asset.loadFromUrlError || null, asset);\n\t\t\treturn;\n\t\t}\n\t\tconst startLoad = asset => {\n\t\t\tasset.once('load', loadedAsset => {\n\t\t\t\tif (type === 'material') {\n\t\t\t\t\tthis._loadTextures(loadedAsset, (err, textures) => {\n\t\t\t\t\t\tcallback(err, loadedAsset);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tcallback(null, loadedAsset);\n\t\t\t\t}\n\t\t\t});\n\t\t\tasset.once('error', err => {\n\t\t\t\tif (err) {\n\t\t\t\t\tthis.loadFromUrlError = err;\n\t\t\t\t}\n\t\t\t\tcallback(err, asset);\n\t\t\t});\n\t\t\tthis.load(asset);\n\t\t};\n\t\tif (asset.resource) {\n\t\t\tcallback(null, asset);\n\t\t} else if (type === 'model') {\n\t\t\tthis._loadModel(asset, startLoad);\n\t\t} else {\n\t\t\tstartLoad(asset);\n\t\t}\n\t}\n\t_loadModel(modelAsset, continuation) {\n\t\tconst url = modelAsset.getFileUrl();\n\t\tconst ext = path.getExtension(url);\n\t\tif (ext === '.json' || ext === '.glb') {\n\t\t\tconst dir = path.getDirectory(url);\n\t\t\tconst basename = path.getBasename(url);\n\t\t\tconst mappingUrl = path.join(dir, basename.replace(ext, '.mapping.json'));\n\t\t\tthis._loader.load(mappingUrl, 'json', (err, data) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tmodelAsset.data = {\n\t\t\t\t\t\tmapping: []\n\t\t\t\t\t};\n\t\t\t\t\tcontinuation(modelAsset);\n\t\t\t\t} else {\n\t\t\t\t\tthis._loadMaterials(modelAsset, data, (e, materials) => {\n\t\t\t\t\t\tmodelAsset.data = data;\n\t\t\t\t\t\tcontinuation(modelAsset);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tcontinuation(modelAsset);\n\t\t}\n\t}\n\t_loadMaterials(modelAsset, mapping, callback) {\n\t\tconst materials = [];\n\t\tlet count = 0;\n\t\tconst onMaterialLoaded = (err, materialAsset) => {\n\t\t\tthis._loadTextures(materialAsset, (err, textures) => {\n\t\t\t\tmaterials.push(materialAsset);\n\t\t\t\tif (materials.length === count) {\n\t\t\t\t\tcallback(null, materials);\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\t\tfor (let i = 0; i < mapping.mapping.length; i++) {\n\t\t\tconst path = mapping.mapping[i].path;\n\t\t\tif (path) {\n\t\t\t\tcount++;\n\t\t\t\tconst url = modelAsset.getAbsoluteUrl(path);\n\t\t\t\tthis.loadFromUrl(url, 'material', onMaterialLoaded);\n\t\t\t}\n\t\t}\n\t\tif (count === 0) {\n\t\t\tcallback(null, materials);\n\t\t}\n\t}\n\t_loadTextures(materialAsset, callback) {\n\t\tconst textures = [];\n\t\tlet count = 0;\n\t\tconst data = materialAsset.data;\n\t\tif (data.mappingFormat !== 'path') {\n\t\t\tcallback(null, textures);\n\t\t\treturn;\n\t\t}\n\t\tconst onTextureLoaded = (err, texture) => {\n\t\t\tif (err) console.error(err);\n\t\t\ttextures.push(texture);\n\t\t\tif (textures.length === count) {\n\t\t\t\tcallback(null, textures);\n\t\t\t}\n\t\t};\n\t\tconst texParams = standardMaterialTextureParameters;\n\t\tfor (let i = 0; i < texParams.length; i++) {\n\t\t\tconst path = data[texParams[i]];\n\t\t\tif (path && typeof path === 'string') {\n\t\t\t\tcount++;\n\t\t\t\tconst url = materialAsset.getAbsoluteUrl(path);\n\t\t\t\tthis.loadFromUrl(url, 'texture', onTextureLoaded);\n\t\t\t}\n\t\t}\n\t\tif (count === 0) {\n\t\t\tcallback(null, textures);\n\t\t}\n\t}\n\t_onTagAdd(tag, asset) {\n\t\tthis._tags.add(tag, asset);\n\t}\n\t_onTagRemove(tag, asset) {\n\t\tthis._tags.remove(tag, asset);\n\t}\n\t_onNameChange(asset, name, nameOld) {\n\t\tif (this._nameToAsset.has(nameOld)) {\n\t\t\tconst items = this._nameToAsset.get(nameOld);\n\t\t\titems.delete(asset);\n\t\t\tif (items.size === 0) {\n\t\t\t\tthis._nameToAsset.delete(nameOld);\n\t\t\t}\n\t\t}\n\t\tif (!this._nameToAsset.has(asset.name)) {\n\t\t\tthis._nameToAsset.set(asset.name, new Set());\n\t\t}\n\t\tthis._nameToAsset.get(asset.name).add(asset);\n\t}\n\tfindByTag() {\n\t\treturn this._tags.find(arguments);\n\t}\n\tfilter(callback) {\n\t\treturn Array.from(this._assets).filter(asset => callback(asset));\n\t}\n\tfind(name, type) {\n\t\tconst items = this._nameToAsset.get(name);\n\t\tif (!items) return null;\n\t\tfor (const asset of items) {\n\t\t\tif (!type || asset.type === type) {\n\t\t\t\treturn asset;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\tfindAll(name, type) {\n\t\tconst items = this._nameToAsset.get(name);\n\t\tif (!items) return [];\n\t\tconst results = Array.from(items);\n\t\tif (!type) return results;\n\t\treturn results.filter(asset => asset.type === type);\n\t}\n}\nAssetRegistry.EVENT_LOAD = 'load';\nAssetRegistry.EVENT_ADD = 'add';\nAssetRegistry.EVENT_REMOVE = 'remove';\nAssetRegistry.EVENT_ERROR = 'error';\n\nclass BundleRegistry {\n\tconstructor(assets) {\n\t\tthis._idToBundle = new Map();\n\t\tthis._assetToBundles = new Map();\n\t\tthis._urlsToBundles = new Map();\n\t\tthis._fileRequests = new Map();\n\t\tthis._assets = assets;\n\t\tthis._assets.bundles = this;\n\t\tthis._assets.on('add', this._onAssetAdd, this);\n\t\tthis._assets.on('remove', this._onAssetRemove, this);\n\t}\n\t_onAssetAdd(asset) {\n\t\tif (asset.type === 'bundle') {\n\t\t\tthis._idToBundle.set(asset.id, asset);\n\t\t\tthis._assets.on(`load:start:${asset.id}`, this._onBundleLoadStart, this);\n\t\t\tthis._assets.on(`load:${asset.id}`, this._onBundleLoad, this);\n\t\t\tthis._assets.on(`error:${asset.id}`, this._onBundleError, this);\n\t\t\tconst assetIds = asset.data.assets;\n\t\t\tfor (let i = 0; i < assetIds.length; i++) {\n\t\t\t\tthis._indexAssetInBundle(assetIds[i], asset);\n\t\t\t}\n\t\t} else {\n\t\t\tif (this._assetToBundles.has(asset.id)) {\n\t\t\t\tthis._indexAssetFileUrls(asset);\n\t\t\t}\n\t\t}\n\t}\n\t_unbindAssetEvents(id) {\n\t\tthis._assets.off(`load:start:${id}`, this._onBundleLoadStart, this);\n\t\tthis._assets.off(`load:${id}`, this._onBundleLoad, this);\n\t\tthis._assets.off(`error:${id}`, this._onBundleError, this);\n\t}\n\t_indexAssetInBundle(id, bundle) {\n\t\tlet bundles = this._assetToBundles.get(id);\n\t\tif (!bundles) {\n\t\t\tbundles = new Set();\n\t\t\tthis._assetToBundles.set(id, bundles);\n\t\t}\n\t\tbundles.add(bundle);\n\t\tconst asset = this._assets.get(id);\n\t\tif (asset) this._indexAssetFileUrls(asset);\n\t}\n\t_indexAssetFileUrls(asset) {\n\t\tconst urls = this._getAssetFileUrls(asset);\n\t\tif (!urls) return;\n\t\tfor (let i = 0; i < urls.length; i++) {\n\t\t\tconst bundles = this._assetToBundles.get(asset.id);\n\t\t\tif (!bundles) continue;\n\t\t\tthis._urlsToBundles.set(urls[i], bundles);\n\t\t}\n\t}\n\t_getAssetFileUrls(asset) {\n\t\tlet url = asset.getFileUrl();\n\t\tif (!url) return null;\n\t\turl = url.split('?')[0];\n\t\tconst urls = [url];\n\t\tif (asset.type === 'font') {\n\t\t\tconst numFiles = asset.data.info.maps.length;\n\t\t\tfor (let i = 1; i < numFiles; i++) {\n\t\t\t\turls.push(url.replace('.png', `${i}.png`));\n\t\t\t}\n\t\t}\n\t\treturn urls;\n\t}\n\t_onAssetRemove(asset) {\n\t\tif (asset.type === 'bundle') {\n\t\t\tthis._idToBundle.delete(asset.id);\n\t\t\tthis._unbindAssetEvents(asset.id);\n\t\t\tconst assetIds = asset.data.assets;\n\t\t\tfor (let i = 0; i < assetIds.length; i++) {\n\t\t\t\tconst bundles = this._assetToBundles.get(assetIds[i]);\n\t\t\t\tif (!bundles) continue;\n\t\t\t\tbundles.delete(asset);\n\t\t\t\tif (bundles.size === 0) {\n\t\t\t\t\tthis._assetToBundles.delete(assetIds[i]);\n\t\t\t\t\tfor (const [url, otherBundles] of this._urlsToBundles) {\n\t\t\t\t\t\tif (otherBundles !== bundles) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis._urlsToBundles.delete(url);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._onBundleError(`Bundle ${asset.id} was removed`);\n\t\t} else {\n\t\t\tconst bundles = this._assetToBundles.get(asset.id);\n\t\t\tif (!bundles) return;\n\t\t\tthis._assetToBundles.delete(asset.id);\n\t\t\tconst urls = this._getAssetFileUrls(asset);\n\t\t\tif (!urls) return;\n\t\t\tfor (let i = 0; i < urls.length; i++) {\n\t\t\t\tthis._urlsToBundles.delete(urls[i]);\n\t\t\t}\n\t\t}\n\t}\n\t_onBundleLoadStart(asset) {\n\t\tasset.resource.on('add', (url, data) => {\n\t\t\tconst callbacks = this._fileRequests.get(url);\n\t\t\tif (!callbacks) return;\n\t\t\tfor (let i = 0; i < callbacks.length; i++) {\n\t\t\t\tcallbacks[i](null, data);\n\t\t\t}\n\t\t\tthis._fileRequests.delete(url);\n\t\t});\n\t}\n\t_onBundleLoad(asset) {\n\t\tif (!asset.resource) {\n\t\t\tthis._onBundleError(`Bundle ${asset.id} failed to load`);\n\t\t\treturn;\n\t\t}\n\t\tif (!this._fileRequests) {\n\t\t\treturn;\n\t\t}\n\t\tfor (const [url, requests] of this._fileRequests) {\n\t\t\tconst bundles = this._urlsToBundles.get(url);\n\t\t\tif (!bundles || !bundles.has(asset)) continue;\n\t\t\tconst decodedUrl = decodeURIComponent(url);\n\t\t\tlet err, data;\n\t\t\tif (asset.resource.has(decodedUrl)) {\n\t\t\t\tdata = asset.resource.get(decodedUrl);\n\t\t\t} else if (asset.resource.loaded) {\n\t\t\t\terr = `Bundle ${asset.id} does not contain URL ${url}`;\n\t\t\t} else {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tfor (let i = 0; i < requests.length; i++) {\n\t\t\t\trequests[i](err, err || data);\n\t\t\t}\n\t\t\tthis._fileRequests.delete(url);\n\t\t}\n\t}\n\t_onBundleError(err) {\n\t\tfor (const [url, requests] of this._fileRequests) {\n\t\t\tconst bundle = this._findLoadedOrLoadingBundleForUrl(url);\n\t\t\tif (!bundle) {\n\t\t\t\tfor (let i = 0; i < requests.length; i++) {\n\t\t\t\t\trequests[i](err);\n\t\t\t\t}\n\t\t\t\tthis._fileRequests.delete(url);\n\t\t\t}\n\t\t}\n\t}\n\t_findLoadedOrLoadingBundleForUrl(url) {\n\t\tconst bundles = this._urlsToBundles.get(url);\n\t\tif (!bundles) return null;\n\t\tlet candidate = null;\n\t\tfor (const bundle of bundles) {\n\t\t\tif (bundle.loaded && bundle.resource) {\n\t\t\t\treturn bundle;\n\t\t\t} else if (bundle.loading) {\n\t\t\t\tcandidate = bundle;\n\t\t\t}\n\t\t}\n\t\treturn candidate;\n\t}\n\tlistBundlesForAsset(asset) {\n\t\tconst bundles = this._assetToBundles.get(asset.id);\n\t\tif (bundles) return Array.from(bundles);\n\t\treturn null;\n\t}\n\tlist() {\n\t\treturn Array.from(this._idToBundle.values());\n\t}\n\thasUrl(url) {\n\t\treturn this._urlsToBundles.has(url);\n\t}\n\turlIsLoadedOrLoading(url) {\n\t\treturn !!this._findLoadedOrLoadingBundleForUrl(url);\n\t}\n\tloadUrl(url, callback) {\n\t\tconst bundle = this._findLoadedOrLoadingBundleForUrl(url);\n\t\tif (!bundle) {\n\t\t\tcallback(`URL ${url} not found in any bundles`);\n\t\t\treturn;\n\t\t}\n\t\tif (bundle.loaded) {\n\t\t\tconst decodedUrl = decodeURIComponent(url);\n\t\t\tif (bundle.resource.has(decodedUrl)) {\n\t\t\t\tcallback(null, bundle.resource.get(decodedUrl));\n\t\t\t\treturn;\n\t\t\t} else if (bundle.resource.loaded) {\n\t\t\t\tcallback(`Bundle ${bundle.id} does not contain URL ${url}`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tlet callbacks = this._fileRequests.get(url);\n\t\tif (!callbacks) {\n\t\t\tcallbacks = [];\n\t\t\tthis._fileRequests.set(url, callbacks);\n\t\t}\n\t\tcallbacks.push(callback);\n\t}\n\tdestroy() {\n\t\tthis._assets.off('add', this._onAssetAdd, this);\n\t\tthis._assets.off('remove', this._onAssetRemove, this);\n\t\tfor (const id of this._idToBundle.keys()) {\n\t\t\tthis._unbindAssetEvents(id);\n\t\t}\n\t\tthis._assets = null;\n\t\tthis._idToBundle.clear();\n\t\tthis._idToBundle = null;\n\t\tthis._assetToBundles.clear();\n\t\tthis._assetToBundles = null;\n\t\tthis._urlsToBundles.clear();\n\t\tthis._urlsToBundles = null;\n\t\tthis._fileRequests.clear();\n\t\tthis._fileRequests = null;\n\t}\n}\n\nclass ComponentSystemRegistry extends EventHandler {\n\tconstructor() {\n\t\tsuper();\n\t\tthis.anim = void 0;\n\t\tthis.animation = void 0;\n\t\tthis.audiolistener = void 0;\n\t\tthis.audiosource = void 0;\n\t\tthis.button = void 0;\n\t\tthis.camera = void 0;\n\t\tthis.collision = void 0;\n\t\tthis.element = void 0;\n\t\tthis.joint = void 0;\n\t\tthis.layoutchild = void 0;\n\t\tthis.layoutgroup = void 0;\n\t\tthis.light = void 0;\n\t\tthis.model = void 0;\n\t\tthis.particlesystem = void 0;\n\t\tthis.render = void 0;\n\t\tthis.rigidbody = void 0;\n\t\tthis.screen = void 0;\n\t\tthis.script = void 0;\n\t\tthis.scrollbar = void 0;\n\t\tthis.scrollview = void 0;\n\t\tthis.sound = void 0;\n\t\tthis.sprite = void 0;\n\t\tthis.zone = void 0;\n\t\tthis.list = [];\n\t}\n\tadd(system) {\n\t\tconst id = system.id;\n\t\tif (this[id]) {\n\t\t\tthrow new Error(`ComponentSystem name '${id}' already registered or not allowed`);\n\t\t}\n\t\tthis[id] = system;\n\t\tthis.list.push(system);\n\t}\n\tremove(system) {\n\t\tconst id = system.id;\n\t\tif (!this[id]) {\n\t\t\tthrow new Error(`No ComponentSystem named '${id}' registered`);\n\t\t}\n\t\tdelete this[id];\n\t\tconst index = this.list.indexOf(this[id]);\n\t\tif (index !== -1) {\n\t\t\tthis.list.splice(index, 1);\n\t\t}\n\t}\n\tdestroy() {\n\t\tthis.off();\n\t\tfor (let i = 0; i < this.list.length; i++) {\n\t\t\tthis.list[i].destroy();\n\t\t}\n\t}\n}\n\nclass Bundle extends EventHandler {\n\tconstructor(...args) {\n\t\tsuper(...args);\n\t\tthis._index = new Map();\n\t\tthis._loaded = false;\n\t}\n\taddFile(url, data) {\n\t\tif (this._index.has(url)) {\n\t\t\treturn;\n\t\t}\n\t\tthis._index.set(url, data);\n\t\tthis.fire('add', url, data);\n\t}\n\thas(url) {\n\t\treturn this._index.has(url);\n\t}\n\tget(url) {\n\t\treturn this._index.get(url) || null;\n\t}\n\tdestroy() {\n\t\tthis._index.clear();\n\t}\n\tset loaded(value) {\n\t\tif (!value || this._loaded) {\n\t\t\treturn;\n\t\t}\n\t\tthis._loaded = true;\n\t\tthis.fire('load');\n\t}\n\tget loaded() {\n\t\treturn this._loaded;\n\t}\n}\nBundle.EVENT_ADD = 'add';\nBundle.EVENT_LOAD = 'load';\n\nclass Untar extends EventHandler {\n\tconstructor(fetchPromise, assetsPrefix = '') {\n\t\tsuper();\n\t\tthis.headerSize = 512;\n\t\tthis.paddingSize = 512;\n\t\tthis.bytesRead = 0;\n\t\tthis.bytesReceived = 0;\n\t\tthis.headerRead = false;\n\t\tthis.reader = null;\n\t\tthis.data = new Uint8Array(0);\n\t\tthis.decoder = null;\n\t\tthis.prefix = '';\n\t\tthis.fileName = '';\n\t\tthis.fileSize = 0;\n\t\tthis.fileType = '';\n\t\tthis.ustarFormat = '';\n\t\tthis.prefix = assetsPrefix || '';\n\t\tthis.reader = fetchPromise.body.getReader();\n\t\tthis.reader.read().then(res => {\n\t\t\tthis.pump(res.done, res.value);\n\t\t}).catch(err => {\n\t\t\tthis.fire('error', err);\n\t\t});\n\t}\n\tpump(done, value) {\n\t\tif (done) {\n\t\t\tthis.fire('done');\n\t\t\treturn null;\n\t\t}\n\t\tthis.bytesReceived += value.byteLength;\n\t\tconst data = new Uint8Array(this.data.length + value.length);\n\t\tdata.set(this.data);\n\t\tdata.set(value, this.data.length);\n\t\tthis.data = data;\n\t\twhile (this.readFile());\n\t\treturn this.reader.read().then(res => {\n\t\t\tthis.pump(res.done, res.value);\n\t\t}).catch(err => {\n\t\t\tthis.fire('error', err);\n\t\t});\n\t}\n\treadFile() {\n\t\tif (!this.headerRead && this.bytesReceived > this.bytesRead + this.headerSize) {\n\t\t\tvar _this$decoder;\n\t\t\tthis.headerRead = true;\n\t\t\tconst view = new DataView(this.data.buffer, this.bytesRead, this.headerSize);\n\t\t\t(_this$decoder = this.decoder) != null ? _this$decoder : this.decoder = new TextDecoder('windows-1252');\n\t\t\tconst headers = this.decoder.decode(view);\n\t\t\tthis.fileName = headers.substring(0, 100).replace(/\\0/g, '');\n\t\t\tthis.fileSize = parseInt(headers.substring(124, 136), 8);\n\t\t\tthis.fileType = headers.substring(156, 157);\n\t\t\tthis.ustarFormat = headers.substring(257, 263);\n\t\t\tif (this.ustarFormat.indexOf('ustar') !== -1) {\n\t\t\t\tconst prefix = headers.substring(345, 500).replace(/\\0/g, '');\n\t\t\t\tif (prefix.length > 0) {\n\t\t\t\t\tthis.fileName = prefix.trim() + this.fileName.trim();\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.bytesRead += 512;\n\t\t}\n\t\tif (this.headerRead) {\n\t\t\tif (this.bytesReceived < this.bytesRead + this.fileSize) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (this.fileType === '' || this.fileType === '0') {\n\t\t\t\tconst dataView = new DataView(this.data.buffer, this.bytesRead, this.fileSize);\n\t\t\t\tconst file = {\n\t\t\t\t\tname: this.prefix + this.fileName,\n\t\t\t\t\tsize: this.fileSize,\n\t\t\t\t\tdata: dataView\n\t\t\t\t};\n\t\t\t\tthis.fire('file', file);\n\t\t\t}\n\t\t\tthis.bytesRead += this.fileSize;\n\t\t\tthis.headerRead = false;\n\t\t\tconst bytesRemained = this.bytesRead % this.paddingSize;\n\t\t\tif (bytesRemained !== 0) {\n\t\t\t\tthis.bytesRead += this.paddingSize - bytesRemained;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n}\n\nclass ResourceHandler {\n\tconstructor(app, handlerType) {\n\t\tthis.handlerType = '';\n\t\tthis._app = void 0;\n\t\tthis._maxRetries = 0;\n\t\tthis._app = app;\n\t\tthis.handlerType = handlerType;\n\t}\n\tset maxRetries(value) {\n\t\tthis._maxRetries = value;\n\t}\n\tget maxRetries() {\n\t\treturn this._maxRetries;\n\t}\n\tload(url, callback, asset) {}\n\topen(url, data, asset) {\n\t\treturn data;\n\t}\n\tpatch(asset, assets) {}\n}\n\nclass BundleHandler extends ResourceHandler {\n\tconstructor(app) {\n\t\tsuper(app, 'bundle');\n\t\tthis._assets = app.assets;\n\t}\n\t_fetchRetries(url, options, retries = 0) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst tryFetch = () => {\n\t\t\t\tfetch(url, options).then(resolve).catch(err => {\n\t\t\t\t\tretries++;\n\t\t\t\t\tif (retries < this.maxRetries) {\n\t\t\t\t\t\ttryFetch();\n\t\t\t\t\t} else {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t};\n\t\t\ttryFetch();\n\t\t});\n\t}\n\tload(url, callback) {\n\t\tif (typeof url === 'string') {\n\t\t\turl = {\n\t\t\t\tload: url,\n\t\t\t\toriginal: url\n\t\t\t};\n\t\t}\n\t\tthis._fetchRetries(url.load, {\n\t\t\tmode: 'cors',\n\t\t\tcredentials: 'include'\n\t\t}, this.maxRetries).then(res => {\n\t\t\tconst bundle = new Bundle();\n\t\t\tcallback(null, bundle);\n\t\t\tconst untar = new Untar(res, this._assets.prefix);\n\t\t\tuntar.on('file', file => {\n\t\t\t\tbundle.addFile(file.name, file.data);\n\t\t\t});\n\t\t\tuntar.on('done', () => {\n\t\t\t\tbundle.loaded = true;\n\t\t\t});\n\t\t\tuntar.on('error', err => {\n\t\t\t\tcallback(err);\n\t\t\t});\n\t\t}).catch(err => {\n\t\t\tcallback(err);\n\t\t});\n\t}\n\topen(url, bundle) {\n\t\treturn bundle;\n\t}\n}\n\nclass ResourceLoader {\n\tconstructor(app) {\n\t\tthis._handlers = {};\n\t\tthis._requests = {};\n\t\tthis._cache = {};\n\t\tthis._app = app;\n\t}\n\taddHandler(type, handler) {\n\t\tthis._handlers[type] = handler;\n\t\thandler._loader = this;\n\t}\n\tremoveHandler(type) {\n\t\tdelete this._handlers[type];\n\t}\n\tgetHandler(type) {\n\t\treturn this._handlers[type];\n\t}\n\tstatic makeKey(url, type) {\n\t\treturn `${url}-${type}`;\n\t}\n\tload(url, type, callback, asset, options) {\n\t\tconst handler = this._handlers[type];\n\t\tif (!handler) {\n\t\t\tconst err = `No resource handler for asset type: '${type}' when loading [${url}]`;\n\t\t\tcallback(err);\n\t\t\treturn;\n\t\t}\n\t\tif (!url) {\n\t\t\tthis._loadNull(handler, callback, asset);\n\t\t\treturn;\n\t\t}\n\t\tconst key = ResourceLoader.makeKey(url, type);\n\t\tif (this._cache[key] !== undefined) {\n\t\t\tcallback(null, this._cache[key]);\n\t\t} else if (this._requests[key]) {\n\t\t\tthis._requests[key].push(callback);\n\t\t} else {\n\t\t\tthis._requests[key] = [callback];\n\t\t\tconst self = this;\n\t\t\tconst handleLoad = function handleLoad(err, urlObj) {\n\t\t\t\tif (err) {\n\t\t\t\t\tself._onFailure(key, err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (urlObj.load instanceof DataView) {\n\t\t\t\t\tif (handler.openBinary) {\n\t\t\t\t\t\tif (!self._requests[key]) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst data = handler.openBinary(urlObj.load);\n\t\t\t\t\t\t\tself._onSuccess(key, data);\n\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\tself._onFailure(key, err);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\turlObj.load = URL.createObjectURL(new Blob([urlObj.load]));\n\t\t\t\t\tif (asset) {\n\t\t\t\t\t\tif (asset.urlObject) {\n\t\t\t\t\t\t\tURL.revokeObjectURL(asset.urlObject);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tasset.urlObject = urlObj.load;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\thandler.load(urlObj, (err, data, extra) => {\n\t\t\t\t\tif (!self._requests[key]) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\tself._onFailure(key, err);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\ttry {\n\t\t\t\t\t\tself._onSuccess(key, handler.open(urlObj.original, data, asset), extra);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tself._onFailure(key, e);\n\t\t\t\t\t}\n\t\t\t\t}, asset);\n\t\t\t};\n\t\t\tconst normalizedUrl = url.split('?')[0];\n\t\t\tif (this._app.enableBundles && this._app.bundles.hasUrl(normalizedUrl) && !(options && options.bundlesIgnore)) {\n\t\t\t\tif (!this._app.bundles.urlIsLoadedOrLoading(normalizedUrl)) {\n\t\t\t\t\tvar _this$_app$assets;\n\t\t\t\t\tconst bundles = this._app.bundles.listBundlesForAsset(asset);\n\t\t\t\t\tlet bundle;\n\t\t\t\t\tif (options && options.bundlesFilter) {\n\t\t\t\t\t\tbundle = options.bundlesFilter(bundles);\n\t\t\t\t\t}\n\t\t\t\t\tif (!bundle) {\n\t\t\t\t\t\tbundles == null || bundles.sort((a, b) => {\n\t\t\t\t\t\t\treturn a.file.size - b.file.size;\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbundle = bundles == null ? void 0 : bundles[0];\n\t\t\t\t\t}\n\t\t\t\t\tif (bundle) (_this$_app$assets = this._app.assets) == null || _this$_app$assets.load(bundle);\n\t\t\t\t}\n\t\t\t\tthis._app.bundles.loadUrl(normalizedUrl, (err, fileUrlFromBundle) => {\n\t\t\t\t\thandleLoad(err, {\n\t\t\t\t\t\tload: fileUrlFromBundle,\n\t\t\t\t\t\toriginal: normalizedUrl\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\thandleLoad(null, {\n\t\t\t\t\tload: url,\n\t\t\t\t\toriginal: asset && asset.file.filename || url\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\t_loadNull(handler, callback, asset) {\n\t\tconst onLoad = function onLoad(err, data, extra) {\n\t\t\tif (err) {\n\t\t\t\tcallback(err);\n\t\t\t} else {\n\t\t\t\ttry {\n\t\t\t\t\tcallback(null, handler.open(null, data, asset), extra);\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcallback(e);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\thandler.load(null, onLoad, asset);\n\t}\n\t_onSuccess(key, result, extra) {\n\t\tif (result !== null) {\n\t\t\tthis._cache[key] = result;\n\t\t} else {\n\t\t\tdelete this._cache[key];\n\t\t}\n\t\tfor (let i = 0; i < this._requests[key].length; i++) {\n\t\t\tthis._requests[key][i](null, result, extra);\n\t\t}\n\t\tdelete this._requests[key];\n\t}\n\t_onFailure(key, err) {\n\t\tconsole.error(err);\n\t\tif (this._requests[key]) {\n\t\t\tfor (let i = 0; i < this._requests[key].length; i++) {\n\t\t\t\tthis._requests[key][i](err);\n\t\t\t}\n\t\t\tdelete this._requests[key];\n\t\t}\n\t}\n\topen(type, data) {\n\t\tconst handler = this._handlers[type];\n\t\tif (!handler) {\n\t\t\tconsole.warn(`No resource handler found for: ${type}`);\n\t\t\treturn data;\n\t\t}\n\t\treturn handler.open(null, data);\n\t}\n\tpatch(asset, assets) {\n\t\tconst handler = this._handlers[asset.type];\n\t\tif (!handler) {\n\t\t\tconsole.warn(`No resource handler found for: ${asset.type}`);\n\t\t\treturn;\n\t\t}\n\t\tif (handler.patch) {\n\t\t\thandler.patch(asset, assets);\n\t\t}\n\t}\n\tclearCache(url, type) {\n\t\tconst key = ResourceLoader.makeKey(url, type);\n\t\tdelete this._cache[key];\n\t}\n\tgetFromCache(url, type) {\n\t\tconst key = ResourceLoader.makeKey(url, type);\n\t\tif (this._cache[key]) {\n\t\t\treturn this._cache[key];\n\t\t}\n\t\treturn undefined;\n\t}\n\tenableRetry(maxRetries = 5) {\n\t\tmaxRetries = Math.max(0, maxRetries) || 0;\n\t\tfor (const key in this._handlers) {\n\t\t\tthis._handlers[key].maxRetries = maxRetries;\n\t\t}\n\t}\n\tdisableRetry() {\n\t\tfor (const key in this._handlers) {\n\t\t\tthis._handlers[key].maxRetries = 0;\n\t\t}\n\t}\n\tdestroy() {\n\t\tthis._handlers = {};\n\t\tthis._requests = {};\n\t\tthis._cache = {};\n\t}\n}\n\nclass I18nParser {\n\t_validate(data) {\n\t\tif (!data.header) {\n\t\t\tthrow new Error('pc.I18n#addData: Missing \"header\" field');\n\t\t}\n\t\tif (!data.header.version) {\n\t\t\tthrow new Error('pc.I18n#addData: Missing \"header.version\" field');\n\t\t}\n\t\tif (data.header.version !== 1) {\n\t\t\tthrow new Error('pc.I18n#addData: Invalid \"header.version\" field');\n\t\t}\n\t\tif (!data.data) {\n\t\t\tthrow new Error('pc.I18n#addData: Missing \"data\" field');\n\t\t} else if (!Array.isArray(data.data)) {\n\t\t\tthrow new Error('pc.I18n#addData: \"data\" field must be an array');\n\t\t}\n\t\tfor (let i = 0, len = data.data.length; i < len; i++) {\n\t\t\tconst entry = data.data[i];\n\t\t\tif (!entry.info) {\n\t\t\t\tthrow new Error(`pc.I18n#addData: missing \"data[${i}].info\" field`);\n\t\t\t}\n\t\t\tif (!entry.info.locale) {\n\t\t\t\tthrow new Error(`pc.I18n#addData: missing \"data[${i}].info.locale\" field`);\n\t\t\t}\n\t\t\tif (typeof entry.info.locale !== 'string') {\n\t\t\t\tthrow new Error(`pc.I18n#addData: \"data[${i}].info.locale\" must be a string`);\n\t\t\t}\n\t\t\tif (!entry.messages) {\n\t\t\t\tthrow new Error(`pc.I18n#addData: missing \"data[${i}].messages\" field`);\n\t\t\t}\n\t\t}\n\t}\n\tparse(data) {\n\t\treturn data.data;\n\t}\n}\n\nclass I18n extends EventHandler {\n\tconstructor(app) {\n\t\tsuper();\n\t\tthis.locale = DEFAULT_LOCALE;\n\t\tthis._translations = {};\n\t\tthis._availableLangs = {};\n\t\tthis._app = app;\n\t\tthis._assets = [];\n\t\tthis._parser = new I18nParser();\n\t}\n\tset assets(value) {\n\t\tconst index = {};\n\t\tfor (let _i = 0, len = value.length; _i < len; _i++) {\n\t\t\tconst id = value[_i] instanceof Asset ? value[_i].id : value[_i];\n\t\t\tindex[id] = true;\n\t\t}\n\t\tlet i = this._assets.length;\n\t\twhile (i--) {\n\t\t\tconst id = this._assets[i];\n\t\t\tif (!index[id]) {\n\t\t\t\tthis._app.assets.off(`add:${id}`, this._onAssetAdd, this);\n\t\t\t\tconst asset = this._app.assets.get(id);\n\t\t\t\tif (asset) {\n\t\t\t\t\tthis._onAssetRemove(asset);\n\t\t\t\t}\n\t\t\t\tthis._assets.splice(i, 1);\n\t\t\t}\n\t\t}\n\t\tfor (const id in index) {\n\t\t\tconst idNum = parseInt(id, 10);\n\t\t\tif (this._assets.indexOf(idNum) !== -1) continue;\n\t\t\tthis._assets.push(idNum);\n\t\t\tconst asset = this._app.assets.get(idNum);\n\t\t\tif (!asset) {\n\t\t\t\tthis._app.assets.once(`add:${idNum}`, this._onAssetAdd, this);\n\t\t\t} else {\n\t\t\t\tthis._onAssetAdd(asset);\n\t\t\t}\n\t\t}\n\t}\n\tget assets() {\n\t\treturn this._assets;\n\t}\n\tset locale(value) {\n\t\tif (this._locale === value) {\n\t\t\treturn;\n\t\t}\n\t\tlet lang = getLang(value);\n\t\tif (lang === 'in') {\n\t\t\tlang = 'id';\n\t\t\tvalue = replaceLang(value, lang);\n\t\t\tif (this._locale === value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tconst old = this._locale;\n\t\tthis._locale = value;\n\t\tthis._lang = lang;\n\t\tthis._pluralFn = getPluralFn(this._lang);\n\t\tthis.fire('set:locale', value, old);\n\t}\n\tget locale() {\n\t\treturn this._locale;\n\t}\n\tstatic findAvailableLocale(desiredLocale, availableLocales) {\n\t\treturn findAvailableLocale(desiredLocale, availableLocales);\n\t}\n\tfindAvailableLocale(desiredLocale) {\n\t\tif (this._translations[desiredLocale]) {\n\t\t\treturn desiredLocale;\n\t\t}\n\t\tconst lang = getLang(desiredLocale);\n\t\treturn this._findFallbackLocale(desiredLocale, lang);\n\t}\n\tgetText(key, locale) {\n\t\tlet result = key;\n\t\tlet lang;\n\t\tif (!locale) {\n\t\t\tlocale = this._locale;\n\t\t\tlang = this._lang;\n\t\t}\n\t\tlet translations = this._translations[locale];\n\t\tif (!translations) {\n\t\t\tif (!lang) {\n\t\t\t\tlang = getLang(locale);\n\t\t\t}\n\t\t\tlocale = this._findFallbackLocale(locale, lang);\n\t\t\ttranslations = this._translations[locale];\n\t\t}\n\t\tif (translations && translations.hasOwnProperty(key)) {\n\t\t\tresult = translations[key];\n\t\t\tif (Array.isArray(result)) {\n\t\t\t\tresult = result[0];\n\t\t\t}\n\t\t\tif (result === null || result === undefined) {\n\t\t\t\tresult = key;\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\tgetPluralText(key, n, locale) {\n\t\tlet result = key;\n\t\tlet lang;\n\t\tlet pluralFn;\n\t\tif (!locale) {\n\t\t\tlocale = this._locale;\n\t\t\tlang = this._lang;\n\t\t\tpluralFn = this._pluralFn;\n\t\t} else {\n\t\t\tlang = getLang(locale);\n\t\t\tpluralFn = getPluralFn(lang);\n\t\t}\n\t\tlet translations = this._translations[locale];\n\t\tif (!translations) {\n\t\t\tlocale = this._findFallbackLocale(locale, lang);\n\t\t\tlang = getLang(locale);\n\t\t\tpluralFn = getPluralFn(lang);\n\t\t\ttranslations = this._translations[locale];\n\t\t}\n\t\tif (translations && translations[key] && pluralFn) {\n\t\t\tconst index = pluralFn(n);\n\t\t\tresult = translations[key][index];\n\t\t\tif (result === null || result === undefined) {\n\t\t\t\tresult = key;\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\taddData(data) {\n\t\tlet parsed;\n\t\ttry {\n\t\t\tparsed = this._parser.parse(data);\n\t\t} catch (err) {\n\t\t\tconsole.error(err);\n\t\t\treturn;\n\t\t}\n\t\tfor (let i = 0, len = parsed.length; i < len; i++) {\n\t\t\tconst entry = parsed[i];\n\t\t\tconst locale = entry.info.locale;\n\t\t\tconst messages = entry.messages;\n\t\t\tif (!this._translations[locale]) {\n\t\t\t\tthis._translations[locale] = {};\n\t\t\t\tconst lang = getLang(locale);\n\t\t\t\tif (!this._availableLangs[lang]) {\n\t\t\t\t\tthis._availableLangs[lang] = locale;\n\t\t\t\t}\n\t\t\t}\n\t\t\tObject.assign(this._translations[locale], messages);\n\t\t\tthis.fire('data:add', locale, messages);\n\t\t}\n\t}\n\tremoveData(data) {\n\t\tlet parsed;\n\t\ttry {\n\t\t\tparsed = this._parser.parse(data);\n\t\t} catch (err) {\n\t\t\tconsole.error(err);\n\t\t\treturn;\n\t\t}\n\t\tfor (let i = 0, len = parsed.length; i < len; i++) {\n\t\t\tconst entry = parsed[i];\n\t\t\tconst locale = entry.info.locale;\n\t\t\tconst translations = this._translations[locale];\n\t\t\tif (!translations) continue;\n\t\t\tconst messages = entry.messages;\n\t\t\tfor (const key in messages) {\n\t\t\t\tdelete translations[key];\n\t\t\t}\n\t\t\tif (Object.keys(translations).length === 0) {\n\t\t\t\tdelete this._translations[locale];\n\t\t\t\tdelete this._availableLangs[getLang(locale)];\n\t\t\t}\n\t\t\tthis.fire('data:remove', locale, messages);\n\t\t}\n\t}\n\tdestroy() {\n\t\tthis._translations = null;\n\t\tthis._availableLangs = null;\n\t\tthis._assets = null;\n\t\tthis._parser = null;\n\t\tthis.off();\n\t}\n\t_findFallbackLocale(locale, lang) {\n\t\tlet result = DEFAULT_LOCALE_FALLBACKS[locale];\n\t\tif (result && this._translations[result]) {\n\t\t\treturn result;\n\t\t}\n\t\tresult = DEFAULT_LOCALE_FALLBACKS[lang];\n\t\tif (result && this._translations[result]) {\n\t\t\treturn result;\n\t\t}\n\t\tresult = this._availableLangs[lang];\n\t\tif (result && this._translations[result]) {\n\t\t\treturn result;\n\t\t}\n\t\treturn DEFAULT_LOCALE;\n\t}\n\t_onAssetAdd(asset) {\n\t\tasset.on('load', this._onAssetLoad, this);\n\t\tasset.on('change', this._onAssetChange, this);\n\t\tasset.on('remove', this._onAssetRemove, this);\n\t\tasset.on('unload', this._onAssetUnload, this);\n\t\tif (asset.resource) {\n\t\t\tthis._onAssetLoad(asset);\n\t\t}\n\t}\n\t_onAssetLoad(asset) {\n\t\tthis.addData(asset.resource);\n\t}\n\t_onAssetChange(asset) {\n\t\tif (asset.resource) {\n\t\t\tthis.addData(asset.resource);\n\t\t}\n\t}\n\t_onAssetRemove(asset) {\n\t\tasset.off('load', this._onAssetLoad, this);\n\t\tasset.off('change', this._onAssetChange, this);\n\t\tasset.off('remove', this._onAssetRemove, this);\n\t\tasset.off('unload', this._onAssetUnload, this);\n\t\tif (asset.resource) {\n\t\t\tthis.removeData(asset.resource);\n\t\t}\n\t\tthis._app.assets.once(`add:${asset.id}`, this._onAssetAdd, this);\n\t}\n\t_onAssetUnload(asset) {\n\t\tif (asset.resource) {\n\t\t\tthis.removeData(asset.resource);\n\t\t}\n\t}\n}\n\nclass ScriptRegistry extends EventHandler {\n\tconstructor(app) {\n\t\tsuper();\n\t\tthis._scripts = {};\n\t\tthis._list = [];\n\t\tthis._scriptSchemas = new Map();\n\t\tthis.app = app;\n\t}\n\tdestroy() {\n\t\tthis.app = null;\n\t\tthis.off();\n\t}\n\taddSchema(id, schema) {\n\t\tif (!schema) return;\n\t\tthis._scriptSchemas.set(id, schema);\n\t}\n\tgetSchema(id) {\n\t\treturn this._scriptSchemas.get(id);\n\t}\n\tadd(script) {\n\t\tconst scriptName = script.__name;\n\t\tif (this._scripts.hasOwnProperty(scriptName)) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (script.prototype.swap) {\n\t\t\t\t\tconst old = this._scripts[scriptName];\n\t\t\t\t\tconst ind = this._list.indexOf(old);\n\t\t\t\t\tthis._list[ind] = script;\n\t\t\t\t\tthis._scripts[scriptName] = script;\n\t\t\t\t\tthis.fire('swap', scriptName, script);\n\t\t\t\t\tthis.fire(`swap:${scriptName}`, script);\n\t\t\t\t} else {\n\t\t\t\t\tconsole.warn(`script registry already has '${scriptName}' script, define 'swap' method for new script type to enable code hot swapping`);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn false;\n\t\t}\n\t\tthis._scripts[scriptName] = script;\n\t\tthis._list.push(script);\n\t\tthis.fire('add', scriptName, script);\n\t\tthis.fire(`add:${scriptName}`, script);\n\t\tsetTimeout(() => {\n\t\t\tif (!this._scripts.hasOwnProperty(scriptName)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!this.app || !this.app.systems || !this.app.systems.script) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst components = this.app.systems.script._components;\n\t\t\tlet attributes;\n\t\t\tconst scriptInstances = [];\n\t\t\tconst scriptInstancesInitialized = [];\n\t\t\tfor (components.loopIndex = 0; components.loopIndex < components.length; components.loopIndex++) {\n\t\t\t\tconst component = components.items[components.loopIndex];\n\t\t\t\tif (component._scriptsIndex[scriptName] && component._scriptsIndex[scriptName].awaiting) {\n\t\t\t\t\tif (component._scriptsData && component._scriptsData[scriptName]) {\n\t\t\t\t\t\tattributes = component._scriptsData[scriptName].attributes;\n\t\t\t\t\t}\n\t\t\t\t\tconst scriptInstance = component.create(scriptName, {\n\t\t\t\t\t\tpreloading: true,\n\t\t\t\t\t\tind: component._scriptsIndex[scriptName].ind,\n\t\t\t\t\t\tattributes: attributes\n\t\t\t\t\t});\n\t\t\t\t\tif (scriptInstance) {\n\t\t\t\t\t\tscriptInstances.push(scriptInstance);\n\t\t\t\t\t}\n\t\t\t\t\tfor (const script of component.scripts) {\n\t\t\t\t\t\tcomponent.initializeAttributes(script);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (let i = 0; i < scriptInstances.length; i++) {\n\t\t\t\tif (scriptInstances[i].enabled) {\n\t\t\t\t\tscriptInstances[i]._initialized = true;\n\t\t\t\t\tscriptInstancesInitialized.push(scriptInstances[i]);\n\t\t\t\t\tif (scriptInstances[i].initialize) {\n\t\t\t\t\t\tscriptInstances[i].initialize();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (let i = 0; i < scriptInstancesInitialized.length; i++) {\n\t\t\t\tif (!scriptInstancesInitialized[i].enabled || scriptInstancesInitialized[i]._postInitialized) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tscriptInstancesInitialized[i]._postInitialized = true;\n\t\t\t\tif (scriptInstancesInitialized[i].postInitialize) {\n\t\t\t\t\tscriptInstancesInitialized[i].postInitialize();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn true;\n\t}\n\tremove(nameOrType) {\n\t\tlet scriptType = nameOrType;\n\t\tlet scriptName = nameOrType;\n\t\tif (typeof scriptName !== 'string') {\n\t\t\tscriptName = scriptType.__name;\n\t\t} else {\n\t\t\tscriptType = this.get(scriptName);\n\t\t}\n\t\tif (this.get(scriptName) !== scriptType) {\n\t\t\treturn false;\n\t\t}\n\t\tdelete this._scripts[scriptName];\n\t\tconst ind = this._list.indexOf(scriptType);\n\t\tthis._list.splice(ind, 1);\n\t\tthis.fire('remove', scriptName, scriptType);\n\t\tthis.fire(`remove:${scriptName}`, scriptType);\n\t\treturn true;\n\t}\n\tget(name) {\n\t\treturn this._scripts[name] || null;\n\t}\n\thas(nameOrType) {\n\t\tif (typeof nameOrType === 'string') {\n\t\t\treturn this._scripts.hasOwnProperty(nameOrType);\n\t\t}\n\t\tif (!nameOrType) return false;\n\t\tconst scriptName = nameOrType.__name;\n\t\treturn this._scripts[scriptName] === nameOrType;\n\t}\n\tlist() {\n\t\treturn this._list;\n\t}\n}\n\nconst _enableList = [];\nclass Entity extends GraphNode {\n\tconstructor(name, app = getApplication()) {\n\t\tsuper(name);\n\t\tthis.anim = void 0;\n\t\tthis.animation = void 0;\n\t\tthis.audiolistener = void 0;\n\t\tthis.button = void 0;\n\t\tthis.camera = void 0;\n\t\tthis.collision = void 0;\n\t\tthis.element = void 0;\n\t\tthis.gsplat = void 0;\n\t\tthis.layoutchild = void 0;\n\t\tthis.layoutgroup = void 0;\n\t\tthis.light = void 0;\n\t\tthis.model = void 0;\n\t\tthis.particlesystem = void 0;\n\t\tthis.render = void 0;\n\t\tthis.rigidbody = void 0;\n\t\tthis.screen = void 0;\n\t\tthis.script = void 0;\n\t\tthis.scrollbar = void 0;\n\t\tthis.scrollview = void 0;\n\t\tthis.sound = void 0;\n\t\tthis.sprite = void 0;\n\t\tthis.c = {};\n\t\tthis._app = void 0;\n\t\tthis._destroying = false;\n\t\tthis._guid = null;\n\t\tthis._template = false;\n\t\tthis._app = app;\n\t}\n\taddComponent(type, data) {\n\t\tconst system = this._app.systems[type];\n\t\tif (!system) {\n\t\t\treturn null;\n\t\t}\n\t\tif (this.c[type]) {\n\t\t\treturn null;\n\t\t}\n\t\treturn system.addComponent(this, data);\n\t}\n\tremoveComponent(type) {\n\t\tconst system = this._app.systems[type];\n\t\tif (!system) {\n\t\t\treturn;\n\t\t}\n\t\tif (!this.c[type]) {\n\t\t\treturn;\n\t\t}\n\t\tsystem.removeComponent(this);\n\t}\n\tfindComponent(type) {\n\t\tconst entity = this.findOne(node => {\n\t\t\treturn node.c && node.c[type];\n\t\t});\n\t\treturn entity && entity.c[type];\n\t}\n\tfindComponents(type) {\n\t\tconst entities = this.find(node => {\n\t\t\treturn node.c && node.c[type];\n\t\t});\n\t\treturn entities.map(entity => {\n\t\t\treturn entity.c[type];\n\t\t});\n\t}\n\tfindScript(nameOrType) {\n\t\tconst entity = this.findOne(node => {\n\t\t\tvar _node$c;\n\t\t\treturn (_node$c = node.c) == null || (_node$c = _node$c.script) == null ? void 0 : _node$c.has(nameOrType);\n\t\t});\n\t\treturn entity == null ? void 0 : entity.c.script.get(nameOrType);\n\t}\n\tfindScripts(nameOrType) {\n\t\tconst entities = this.find(node => {\n\t\t\tvar _node$c2;\n\t\t\treturn (_node$c2 = node.c) == null || (_node$c2 = _node$c2.script) == null ? void 0 : _node$c2.has(nameOrType);\n\t\t});\n\t\treturn entities.map(entity => entity.c.script.get(nameOrType));\n\t}\n\tgetGuid() {\n\t\tif (!this._guid) {\n\t\t\tthis.setGuid(guid.create());\n\t\t}\n\t\treturn this._guid;\n\t}\n\tsetGuid(guid) {\n\t\tconst index = this._app._entityIndex;\n\t\tif (this._guid) {\n\t\t\tdelete index[this._guid];\n\t\t}\n\t\tthis._guid = guid;\n\t\tindex[this._guid] = this;\n\t}\n\t_notifyHierarchyStateChanged(node, enabled) {\n\t\tlet enableFirst = false;\n\t\tif (node === this && _enableList.length === 0) {\n\t\t\tenableFirst = true;\n\t\t}\n\t\tnode._beingEnabled = true;\n\t\tnode._onHierarchyStateChanged(enabled);\n\t\tif (node._onHierarchyStatePostChanged) {\n\t\t\t_enableList.push(node);\n\t\t}\n\t\tconst c = node._children;\n\t\tfor (let i = 0, len = c.length; i < len; i++) {\n\t\t\tif (c[i]._enabled) {\n\t\t\t\tthis._notifyHierarchyStateChanged(c[i], enabled);\n\t\t\t}\n\t\t}\n\t\tnode._beingEnabled = false;\n\t\tif (enableFirst) {\n\t\t\tfor (let i = 0; i < _enableList.length; i++) {\n\t\t\t\t_enableList[i]._onHierarchyStatePostChanged();\n\t\t\t}\n\t\t\t_enableList.length = 0;\n\t\t}\n\t}\n\t_onHierarchyStateChanged(enabled) {\n\t\tsuper._onHierarchyStateChanged(enabled);\n\t\tconst components = this.c;\n\t\tfor (const type in components) {\n\t\t\tif (components.hasOwnProperty(type)) {\n\t\t\t\tconst component = components[type];\n\t\t\t\tif (component.enabled) {\n\t\t\t\t\tif (enabled) {\n\t\t\t\t\t\tcomponent.onEnable();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcomponent.onDisable();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t_onHierarchyStatePostChanged() {\n\t\tconst components = this.c;\n\t\tfor (const type in components) {\n\t\t\tif (components.hasOwnProperty(type)) {\n\t\t\t\tcomponents[type].onPostStateChange();\n\t\t\t}\n\t\t}\n\t}\n\tfindByGuid(guid) {\n\t\tif (this._guid === guid) return this;\n\t\tconst e = this._app._entityIndex[guid];\n\t\tif (e && (e === this || e.isDescendantOf(this))) {\n\t\t\treturn e;\n\t\t}\n\t\treturn null;\n\t}\n\tdestroy() {\n\t\tthis._destroying = true;\n\t\tfor (const name in this.c) {\n\t\t\tthis.c[name].enabled = false;\n\t\t}\n\t\tfor (const name in this.c) {\n\t\t\tthis.c[name].system.removeComponent(this);\n\t\t}\n\t\tsuper.destroy();\n\t\tif (this._guid) {\n\t\t\tdelete this._app._entityIndex[this._guid];\n\t\t}\n\t\tthis._destroying = false;\n\t}\n\tclone() {\n\t\tconst duplicatedIdsMap = {};\n\t\tconst clone = this._cloneRecursively(duplicatedIdsMap);\n\t\tduplicatedIdsMap[this.getGuid()] = clone;\n\t\tresolveDuplicatedEntityReferenceProperties(this, this, clone, duplicatedIdsMap);\n\t\treturn clone;\n\t}\n\t_cloneRecursively(duplicatedIdsMap) {\n\t\tconst clone = new this.constructor(undefined, this._app);\n\t\tsuper._cloneInternal(clone);\n\t\tfor (const type in this.c) {\n\t\t\tconst component = this.c[type];\n\t\t\tcomponent.system.cloneComponent(this, clone);\n\t\t}\n\t\tfor (let i = 0; i < this._children.length; i++) {\n\t\t\tconst oldChild = this._children[i];\n\t\t\tif (oldChild instanceof Entity) {\n\t\t\t\tconst newChild = oldChild._cloneRecursively(duplicatedIdsMap);\n\t\t\t\tclone.addChild(newChild);\n\t\t\t\tduplicatedIdsMap[oldChild.getGuid()] = newChild;\n\t\t\t}\n\t\t}\n\t\treturn clone;\n\t}\n}\nEntity.EVENT_DESTROY = 'destroy';\nfunction resolveDuplicatedEntityReferenceProperties(oldSubtreeRoot, oldEntity, newEntity, duplicatedIdsMap) {\n\tif (oldEntity instanceof Entity) {\n\t\tconst components = oldEntity.c;\n\t\tfor (const componentName in components) {\n\t\t\tconst component = components[componentName];\n\t\t\tconst entityProperties = component.system.getPropertiesOfType('entity');\n\t\t\tfor (let i = 0, len = entityProperties.length; i < len; i++) {\n\t\t\t\tconst propertyDescriptor = entityProperties[i];\n\t\t\t\tconst propertyName = propertyDescriptor.name;\n\t\t\t\tconst oldEntityReferenceId = component[propertyName];\n\t\t\t\tconst entityIsWithinOldSubtree = !!oldSubtreeRoot.findByGuid(oldEntityReferenceId);\n\t\t\t\tif (entityIsWithinOldSubtree) {\n\t\t\t\t\tconst newEntityReferenceId = duplicatedIdsMap[oldEntityReferenceId].getGuid();\n\t\t\t\t\tif (newEntityReferenceId) {\n\t\t\t\t\t\tnewEntity.c[componentName][propertyName] = newEntityReferenceId;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (components.script && !newEntity._app.useLegacyScriptAttributeCloning) {\n\t\t\tnewEntity.script.resolveDuplicatedEntityReferenceProperties(components.script, duplicatedIdsMap);\n\t\t}\n\t\tif (components.render) {\n\t\t\tnewEntity.render.resolveDuplicatedEntityReferenceProperties(components.render, duplicatedIdsMap);\n\t\t}\n\t\tif (components.button) {\n\t\t\tnewEntity.button.resolveDuplicatedEntityReferenceProperties(components.button, duplicatedIdsMap);\n\t\t}\n\t\tif (components.scrollview) {\n\t\t\tnewEntity.scrollview.resolveDuplicatedEntityReferenceProperties(components.scrollview, duplicatedIdsMap);\n\t\t}\n\t\tif (components.scrollbar) {\n\t\t\tnewEntity.scrollbar.resolveDuplicatedEntityReferenceProperties(components.scrollbar, duplicatedIdsMap);\n\t\t}\n\t\tif (components.anim) {\n\t\t\tnewEntity.anim.resolveDuplicatedEntityReferenceProperties(components.anim, duplicatedIdsMap);\n\t\t}\n\t\tconst _old = oldEntity.children.filter(e => {\n\t\t\treturn e instanceof Entity;\n\t\t});\n\t\tconst _new = newEntity.children.filter(e => {\n\t\t\treturn e instanceof Entity;\n\t\t});\n\t\tfor (let i = 0, len = _old.length; i < len; i++) {\n\t\t\tresolveDuplicatedEntityReferenceProperties(oldSubtreeRoot, _old[i], _new[i], duplicatedIdsMap);\n\t\t}\n\t}\n}\n\nclass SceneRegistryItem {\n\tconstructor(name, url) {\n\t\tthis.name = void 0;\n\t\tthis.url = void 0;\n\t\tthis.data = null;\n\t\tthis._loading = false;\n\t\tthis._onLoadedCallbacks = [];\n\t\tthis.name = name;\n\t\tthis.url = url;\n\t}\n\tget loaded() {\n\t\treturn !!this.data;\n\t}\n\tget loading() {\n\t\treturn this._loading;\n\t}\n}\n\nclass SceneRegistry {\n\tconstructor(app) {\n\t\tthis._app = void 0;\n\t\tthis._list = [];\n\t\tthis._index = {};\n\t\tthis._urlIndex = {};\n\t\tthis._app = app;\n\t}\n\tdestroy() {\n\t\tthis._app = null;\n\t}\n\tlist() {\n\t\treturn this._list;\n\t}\n\tadd(name, url) {\n\t\tif (this._index.hasOwnProperty(name)) {\n\t\t\treturn false;\n\t\t}\n\t\tconst item = new SceneRegistryItem(name, url);\n\t\tconst i = this._list.push(item);\n\t\tthis._index[item.name] = i - 1;\n\t\tthis._urlIndex[item.url] = i - 1;\n\t\treturn true;\n\t}\n\tfind(name) {\n\t\tif (this._index.hasOwnProperty(name)) {\n\t\t\treturn this._list[this._index[name]];\n\t\t}\n\t\treturn null;\n\t}\n\tfindByUrl(url) {\n\t\tif (this._urlIndex.hasOwnProperty(url)) {\n\t\t\treturn this._list[this._urlIndex[url]];\n\t\t}\n\t\treturn null;\n\t}\n\tremove(name) {\n\t\tif (this._index.hasOwnProperty(name)) {\n\t\t\tconst idx = this._index[name];\n\t\t\tlet item = this._list[idx];\n\t\t\tdelete this._urlIndex[item.url];\n\t\t\tdelete this._index[name];\n\t\t\tthis._list.splice(idx, 1);\n\t\t\tfor (let i = 0; i < this._list.length; i++) {\n\t\t\t\titem = this._list[i];\n\t\t\t\tthis._index[item.name] = i;\n\t\t\t\tthis._urlIndex[item.url] = i;\n\t\t\t}\n\t\t}\n\t}\n\t_loadSceneData(sceneItem, storeInCache, callback) {\n\t\tconst app = this._app;\n\t\tlet url = sceneItem;\n\t\tif (typeof sceneItem === 'string') {\n\t\t\tsceneItem = this.findByUrl(url) || this.find(url) || new SceneRegistryItem('Untitled', url);\n\t\t}\n\t\turl = sceneItem.url;\n\t\tif (!url) {\n\t\t\tcallback('Cannot find scene to load');\n\t\t\treturn;\n\t\t}\n\t\tif (sceneItem.loaded) {\n\t\t\tcallback(null, sceneItem);\n\t\t\treturn;\n\t\t}\n\t\tif (app.assets && app.assets.prefix && !ABSOLUTE_URL.test(url)) {\n\t\t\turl = path.join(app.assets.prefix, url);\n\t\t}\n\t\tsceneItem._onLoadedCallbacks.push(callback);\n\t\tif (!sceneItem._loading) {\n\t\t\tconst handler = app.loader.getHandler('hierarchy');\n\t\t\thandler.load(url, (err, data) => {\n\t\t\t\tsceneItem.data = data;\n\t\t\t\tsceneItem._loading = false;\n\t\t\t\tfor (let i = 0; i < sceneItem._onLoadedCallbacks.length; i++) {\n\t\t\t\t\tsceneItem._onLoadedCallbacks[i](err, sceneItem);\n\t\t\t\t}\n\t\t\t\tif (!storeInCache) {\n\t\t\t\t\tsceneItem.data = null;\n\t\t\t\t}\n\t\t\t\tsceneItem._onLoadedCallbacks.length = 0;\n\t\t\t});\n\t\t}\n\t\tsceneItem._loading = true;\n\t}\n\tloadSceneData(sceneItem, callback) {\n\t\tthis._loadSceneData(sceneItem, true, callback);\n\t}\n\tunloadSceneData(sceneItem) {\n\t\tif (typeof sceneItem === 'string') {\n\t\t\tsceneItem = this.findByUrl(sceneItem);\n\t\t}\n\t\tif (sceneItem) {\n\t\t\tsceneItem.data = null;\n\t\t}\n\t}\n\t_loadSceneHierarchy(sceneItem, onBeforeAddHierarchy, callback) {\n\t\tthis._loadSceneData(sceneItem, false, (err, sceneItem) => {\n\t\t\tif (err) {\n\t\t\t\tif (callback) {\n\t\t\t\t\tcallback(err);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (onBeforeAddHierarchy) {\n\t\t\t\tonBeforeAddHierarchy(sceneItem);\n\t\t\t}\n\t\t\tconst app = this._app;\n\t\t\tconst _loaded = () => {\n\t\t\t\tconst handler = app.loader.getHandler('hierarchy');\n\t\t\t\tapp.systems.script.preloading = true;\n\t\t\t\tconst entity = handler.open(sceneItem.url, sceneItem.data);\n\t\t\t\tapp.systems.script.preloading = false;\n\t\t\t\tapp.loader.clearCache(sceneItem.url, 'hierarchy');\n\t\t\t\tapp.root.addChild(entity);\n\t\t\t\tapp.systems.fire('initialize', entity);\n\t\t\t\tapp.systems.fire('postInitialize', entity);\n\t\t\t\tapp.systems.fire('postPostInitialize', entity);\n\t\t\t\tif (callback) callback(null, entity);\n\t\t\t};\n\t\t\tapp._preloadScripts(sceneItem.data, _loaded);\n\t\t});\n\t}\n\tloadSceneHierarchy(sceneItem, callback) {\n\t\tthis._loadSceneHierarchy(sceneItem, null, callback);\n\t}\n\tloadSceneSettings(sceneItem, callback) {\n\t\tthis._loadSceneData(sceneItem, false, (err, sceneItem) => {\n\t\t\tif (!err) {\n\t\t\t\tthis._app.applySceneSettings(sceneItem.data.settings);\n\t\t\t\tif (callback) {\n\t\t\t\t\tcallback(null);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (callback) {\n\t\t\t\t\tcallback(err);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\tchangeScene(sceneItem, callback) {\n\t\tconst app = this._app;\n\t\tconst onBeforeAddHierarchy = sceneItem => {\n\t\t\tconst {\n\t\t\t\tchildren\n\t\t\t} = app.root;\n\t\t\twhile (children.length) {\n\t\t\t\tchildren[0].destroy();\n\t\t\t}\n\t\t\tapp.applySceneSettings(sceneItem.data.settings);\n\t\t};\n\t\tthis._loadSceneHierarchy(sceneItem, onBeforeAddHierarchy, callback);\n\t}\n\tloadScene(url, callback) {\n\t\tconst app = this._app;\n\t\tconst handler = app.loader.getHandler('scene');\n\t\tif (app.assets && app.assets.prefix && !ABSOLUTE_URL.test(url)) {\n\t\t\turl = path.join(app.assets.prefix, url);\n\t\t}\n\t\thandler.load(url, (err, data) => {\n\t\t\tif (!err) {\n\t\t\t\tconst _loaded = () => {\n\t\t\t\t\tapp.systems.script.preloading = true;\n\t\t\t\t\tconst scene = handler.open(url, data);\n\t\t\t\t\tconst sceneItem = this.findByUrl(url);\n\t\t\t\t\tif (sceneItem && !sceneItem.loaded) {\n\t\t\t\t\t\tsceneItem.data = data;\n\t\t\t\t\t}\n\t\t\t\t\tapp.systems.script.preloading = false;\n\t\t\t\t\tapp.loader.clearCache(url, 'scene');\n\t\t\t\t\tapp.loader.patch({\n\t\t\t\t\t\tresource: scene,\n\t\t\t\t\t\ttype: 'scene'\n\t\t\t\t\t}, app.assets);\n\t\t\t\t\tapp.root.addChild(scene.root);\n\t\t\t\t\tif (app.systems.rigidbody && typeof Ammo !== 'undefined') {\n\t\t\t\t\t\tapp.systems.rigidbody.gravity.set(scene._gravity.x, scene._gravity.y, scene._gravity.z);\n\t\t\t\t\t}\n\t\t\t\t\tif (callback) {\n\t\t\t\t\t\tcallback(null, scene);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tapp._preloadScripts(data, _loaded);\n\t\t\t} else {\n\t\t\t\tif (callback) {\n\t\t\t\t\tcallback(err);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n\nclass ApplicationStats {\n\tconstructor(device) {\n\t\tthis.frame = {\n\t\t\tfps: 0,\n\t\t\tms: 0,\n\t\t\tdt: 0,\n\t\t\tupdateStart: 0,\n\t\t\tupdateTime: 0,\n\t\t\trenderStart: 0,\n\t\t\trenderTime: 0,\n\t\t\tphysicsStart: 0,\n\t\t\tphysicsTime: 0,\n\t\t\tcullTime: 0,\n\t\t\tsortTime: 0,\n\t\t\tskinTime: 0,\n\t\t\tmorphTime: 0,\n\t\t\tinstancingTime: 0,\n\t\t\ttriangles: 0,\n\t\t\totherPrimitives: 0,\n\t\t\tshaders: 0,\n\t\t\tmaterials: 0,\n\t\t\tcameras: 0,\n\t\t\tshadowMapUpdates: 0,\n\t\t\tshadowMapTime: 0,\n\t\t\tdepthMapTime: 0,\n\t\t\tforwardTime: 0,\n\t\t\tlightClustersTime: 0,\n\t\t\tlightClusters: 0,\n\t\t\t_timeToCountFrames: 0,\n\t\t\t_fpsAccum: 0\n\t\t};\n\t\tthis.drawCalls = {\n\t\t\tforward: 0,\n\t\t\tdepth: 0,\n\t\t\tshadow: 0,\n\t\t\timmediate: 0,\n\t\t\tmisc: 0,\n\t\t\ttotal: 0,\n\t\t\tskinned: 0,\n\t\t\tinstanced: 0,\n\t\t\tremovedByInstancing: 0\n\t\t};\n\t\tthis.misc = {\n\t\t\trenderTargetCreationTime: 0\n\t\t};\n\t\tthis.particles = {\n\t\t\tupdatesPerFrame: 0,\n\t\t\t_updatesPerFrame: 0,\n\t\t\tframeTime: 0,\n\t\t\t_frameTime: 0\n\t\t};\n\t\tthis.shaders = device._shaderStats;\n\t\tthis.vram = device._vram;\n\t\tObject.defineProperty(this.vram, 'totalUsed', {\n\t\t\tget: function () {\n\t\t\t\treturn this.tex + this.vb + this.ib;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(this.vram, 'geom', {\n\t\t\tget: function () {\n\t\t\t\treturn this.vb + this.ib;\n\t\t\t}\n\t\t});\n\t}\n\tget scene() {\n\t\treturn getApplication().scene._stats;\n\t}\n\tget lightmapper() {\n\t\tvar _getApplication$light;\n\t\treturn (_getApplication$light = getApplication().lightmapper) == null ? void 0 : _getApplication$light.stats;\n\t}\n\tget batcher() {\n\t\tconst batcher = getApplication()._batcher;\n\t\treturn batcher ? batcher._stats : null;\n\t}\n}\n\nclass Progress {\n\tconstructor(length) {\n\t\tthis.length = length;\n\t\tthis.count = 0;\n\t}\n\tinc() {\n\t\tthis.count++;\n\t}\n\tdone() {\n\t\treturn this.count === this.length;\n\t}\n}\nlet app = null;\nclass AppBase extends EventHandler {\n\tconstructor(canvas) {\n\t\tsuper();\n\t\tthis.frameRequestId = void 0;\n\t\tAppBase._applications[canvas.id] = this;\n\t\tsetApplication(this);\n\t\tapp = this;\n\t\tthis._destroyRequested = false;\n\t\tthis._inFrameUpdate = false;\n\t\tthis._time = 0;\n\t\tthis.timeScale = 1;\n\t\tthis.maxDeltaTime = 0.1;\n\t\tthis.frame = 0;\n\t\tthis.autoRender = true;\n\t\tthis.renderNextFrame = false;\n\t\tthis.useLegacyScriptAttributeCloning = script.legacy;\n\t\tthis._librariesLoaded = false;\n\t\tthis._fillMode = FILLMODE_KEEP_ASPECT;\n\t\tthis._resolutionMode = RESOLUTION_FIXED;\n\t\tthis._allowResize = true;\n\t\tthis.context = this;\n\t}\n\tinit(appOptions) {\n\t\tconst device = appOptions.graphicsDevice;\n\t\tthis.graphicsDevice = device;\n\t\tthis._initDefaultMaterial();\n\t\tthis._initProgramLibrary();\n\t\tthis.stats = new ApplicationStats(device);\n\t\tthis._soundManager = appOptions.soundManager;\n\t\tthis.loader = new ResourceLoader(this);\n\t\tthis._entityIndex = {};\n\t\tthis.scene = new Scene(device);\n\t\tthis._registerSceneImmediate(this.scene);\n\t\tthis.root = new Entity();\n\t\tthis.root._enabledInHierarchy = true;\n\t\tthis.assets = new AssetRegistry(this.loader);\n\t\tif (appOptions.assetPrefix) this.assets.prefix = appOptions.assetPrefix;\n\t\tthis.bundles = new BundleRegistry(this.assets);\n\t\tthis.enableBundles = typeof TextDecoder !== 'undefined';\n\t\tthis.scriptsOrder = appOptions.scriptsOrder || [];\n\t\tthis.scripts = new ScriptRegistry(this);\n\t\tthis.i18n = new I18n(this);\n\t\tthis.scenes = new SceneRegistry(this);\n\t\tthis.defaultLayerWorld = new Layer({\n\t\t\tname: 'World',\n\t\t\tid: LAYERID_WORLD\n\t\t});\n\t\tthis.defaultLayerDepth = new Layer({\n\t\t\tname: 'Depth',\n\t\t\tid: LAYERID_DEPTH,\n\t\t\tenabled: false,\n\t\t\topaqueSortMode: SORTMODE_NONE\n\t\t});\n\t\tthis.defaultLayerSkybox = new Layer({\n\t\t\tname: 'Skybox',\n\t\t\tid: LAYERID_SKYBOX,\n\t\t\topaqueSortMode: SORTMODE_NONE\n\t\t});\n\t\tthis.defaultLayerUi = new Layer({\n\t\t\tname: 'UI',\n\t\t\tid: LAYERID_UI,\n\t\t\ttransparentSortMode: SORTMODE_MANUAL\n\t\t});\n\t\tthis.defaultLayerImmediate = new Layer({\n\t\t\tname: 'Immediate',\n\t\t\tid: LAYERID_IMMEDIATE,\n\t\t\topaqueSortMode: SORTMODE_NONE\n\t\t});\n\t\tconst defaultLayerComposition = new LayerComposition('default');\n\t\tdefaultLayerComposition.pushOpaque(this.defaultLayerWorld);\n\t\tdefaultLayerComposition.pushOpaque(this.defaultLayerDepth);\n\t\tdefaultLayerComposition.pushOpaque(this.defaultLayerSkybox);\n\t\tdefaultLayerComposition.pushTransparent(this.defaultLayerWorld);\n\t\tdefaultLayerComposition.pushOpaque(this.defaultLayerImmediate);\n\t\tdefaultLayerComposition.pushTransparent(this.defaultLayerImmediate);\n\t\tdefaultLayerComposition.pushTransparent(this.defaultLayerUi);\n\t\tthis.scene.layers = defaultLayerComposition;\n\t\tAreaLightLuts.createPlaceholder(device);\n\t\tthis.renderer = new ForwardRenderer(device);\n\t\tthis.renderer.scene = this.scene;\n\t\tthis.frameGraph = new FrameGraph();\n\t\tthis.lightmapper = null;\n\t\tif (appOptions.lightmapper) {\n\t\t\tthis.lightmapper = new appOptions.lightmapper(device, this.root, this.scene, this.renderer, this.assets);\n\t\t\tthis.once('prerender', this._firstBake, this);\n\t\t}\n\t\tthis._batcher = null;\n\t\tif (appOptions.batchManager) {\n\t\t\tthis._batcher = new appOptions.batchManager(device, this.root, this.scene);\n\t\t\tthis.once('prerender', this._firstBatch, this);\n\t\t}\n\t\tthis.keyboard = appOptions.keyboard || null;\n\t\tthis.mouse = appOptions.mouse || null;\n\t\tthis.touch = appOptions.touch || null;\n\t\tthis.gamepads = appOptions.gamepads || null;\n\t\tthis.elementInput = appOptions.elementInput || null;\n\t\tif (this.elementInput) {\n\t\t\tthis.elementInput.app = this;\n\t\t}\n\t\tthis.xr = appOptions.xr ? new appOptions.xr(this) : null;\n\t\tif (this.elementInput) {\n\t\t\tthis.elementInput.attachSelectEvents();\n\t\t}\n\t\tthis._inTools = false;\n\t\tthis._skyboxAsset = null;\n\t\tthis._scriptPrefix = appOptions.scriptPrefix || '';\n\t\tif (this.enableBundles) {\n\t\t\tthis.loader.addHandler('bundle', new BundleHandler(this));\n\t\t}\n\t\tappOptions.resourceHandlers.forEach(resourceHandler => {\n\t\t\tconst handler = new resourceHandler(this);\n\t\t\tthis.loader.addHandler(handler.handlerType, handler);\n\t\t});\n\t\tthis.systems = new ComponentSystemRegistry();\n\t\tappOptions.componentSystems.forEach(componentSystem => {\n\t\t\tthis.systems.add(new componentSystem(this));\n\t\t});\n\t\tthis._visibilityChangeHandler = this.onVisibilityChange.bind(this);\n\t\tif (typeof document !== 'undefined') {\n\t\t\tif (document.hidden !== undefined) {\n\t\t\t\tthis._hiddenAttr = 'hidden';\n\t\t\t\tdocument.addEventListener('visibilitychange', this._visibilityChangeHandler, false);\n\t\t\t} else if (document.mozHidden !== undefined) {\n\t\t\t\tthis._hiddenAttr = 'mozHidden';\n\t\t\t\tdocument.addEventListener('mozvisibilitychange', this._visibilityChangeHandler, false);\n\t\t\t} else if (document.msHidden !== undefined) {\n\t\t\t\tthis._hiddenAttr = 'msHidden';\n\t\t\t\tdocument.addEventListener('msvisibilitychange', this._visibilityChangeHandler, false);\n\t\t\t} else if (document.webkitHidden !== undefined) {\n\t\t\t\tthis._hiddenAttr = 'webkitHidden';\n\t\t\t\tdocument.addEventListener('webkitvisibilitychange', this._visibilityChangeHandler, false);\n\t\t\t}\n\t\t}\n\t\tthis.tick = makeTick(this);\n\t}\n\tstatic getApplication(id) {\n\t\treturn id ? AppBase._applications[id] : getApplication();\n\t}\n\t_initDefaultMaterial() {\n\t\tconst material = new StandardMaterial();\n\t\tmaterial.name = 'Default Material';\n\t\tmaterial.shadingModel = SPECULAR_BLINN;\n\t\tsetDefaultMaterial(this.graphicsDevice, material);\n\t}\n\t_initProgramLibrary() {\n\t\tconst library = new ProgramLibrary(this.graphicsDevice, new StandardMaterial());\n\t\tsetProgramLibrary(this.graphicsDevice, library);\n\t}\n\tget soundManager() {\n\t\treturn this._soundManager;\n\t}\n\tget batcher() {\n\t\treturn this._batcher;\n\t}\n\tget fillMode() {\n\t\treturn this._fillMode;\n\t}\n\tget resolutionMode() {\n\t\treturn this._resolutionMode;\n\t}\n\tconfigure(url, callback) {\n\t\thttp.get(url, (err, response) => {\n\t\t\tif (err) {\n\t\t\t\tcallback(err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst props = response.application_properties;\n\t\t\tconst scenes = response.scenes;\n\t\t\tconst assets = response.assets;\n\t\t\tthis._parseApplicationProperties(props, err => {\n\t\t\t\tthis._parseScenes(scenes);\n\t\t\t\tthis._parseAssets(assets);\n\t\t\t\tif (!err) {\n\t\t\t\t\tcallback(null);\n\t\t\t\t} else {\n\t\t\t\t\tcallback(err);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\tpreload(callback) {\n\t\tthis.fire('preload:start');\n\t\tconst assets = this.assets.list({\n\t\t\tpreload: true\n\t\t});\n\t\tconst progress = new Progress(assets.length);\n\t\tlet _done = false;\n\t\tconst done = () => {\n\t\t\tif (!this.graphicsDevice) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!_done && progress.done()) {\n\t\t\t\t_done = true;\n\t\t\t\tthis.fire('preload:end');\n\t\t\t\tcallback();\n\t\t\t}\n\t\t};\n\t\tconst total = assets.length;\n\t\tif (progress.length) {\n\t\t\tconst onAssetLoad = asset => {\n\t\t\t\tprogress.inc();\n\t\t\t\tthis.fire('preload:progress', progress.count / total);\n\t\t\t\tif (progress.done()) {\n\t\t\t\t\tdone();\n\t\t\t\t}\n\t\t\t};\n\t\t\tconst onAssetError = (err, asset) => {\n\t\t\t\tprogress.inc();\n\t\t\t\tthis.fire('preload:progress', progress.count / total);\n\t\t\t\tif (progress.done()) {\n\t\t\t\t\tdone();\n\t\t\t\t}\n\t\t\t};\n\t\t\tfor (let i = 0; i < assets.length; i++) {\n\t\t\t\tif (!assets[i].loaded) {\n\t\t\t\t\tassets[i].once('load', onAssetLoad);\n\t\t\t\t\tassets[i].once('error', onAssetError);\n\t\t\t\t\tthis.assets.load(assets[i]);\n\t\t\t\t} else {\n\t\t\t\t\tprogress.inc();\n\t\t\t\t\tthis.fire('preload:progress', progress.count / total);\n\t\t\t\t\tif (progress.done()) {\n\t\t\t\t\t\tdone();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tdone();\n\t\t}\n\t}\n\t_preloadScripts(sceneData, callback) {\n\t\tif (!script.legacy) {\n\t\t\tcallback();\n\t\t\treturn;\n\t\t}\n\t\tthis.systems.script.preloading = true;\n\t\tconst scripts = this._getScriptReferences(sceneData);\n\t\tconst l = scripts.length;\n\t\tconst progress = new Progress(l);\n\t\tconst regex = /^https?:\\/\\//;\n\t\tif (l) {\n\t\t\tconst onLoad = (err, ScriptType) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tconsole.error(err);\n\t\t\t\t}\n\t\t\t\tprogress.inc();\n\t\t\t\tif (progress.done()) {\n\t\t\t\t\tthis.systems.script.preloading = false;\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t};\n\t\t\tfor (let i = 0; i < l; i++) {\n\t\t\t\tlet scriptUrl = scripts[i];\n\t\t\t\tif (!regex.test(scriptUrl.toLowerCase()) && this._scriptPrefix) {\n\t\t\t\t\tscriptUrl = path.join(this._scriptPrefix, scripts[i]);\n\t\t\t\t}\n\t\t\t\tthis.loader.load(scriptUrl, 'script', onLoad);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.systems.script.preloading = false;\n\t\t\tcallback();\n\t\t}\n\t}\n\t_parseApplicationProperties(props, callback) {\n\t\tif (typeof props.maxAssetRetries === 'number' && props.maxAssetRetries > 0) {\n\t\t\tthis.loader.enableRetry(props.maxAssetRetries);\n\t\t}\n\t\tif (!props.useDevicePixelRatio) {\n\t\t\tprops.useDevicePixelRatio = props.use_device_pixel_ratio;\n\t\t}\n\t\tif (!props.resolutionMode) {\n\t\t\tprops.resolutionMode = props.resolution_mode;\n\t\t}\n\t\tif (!props.fillMode) {\n\t\t\tprops.fillMode = props.fill_mode;\n\t\t}\n\t\tthis._width = props.width;\n\t\tthis._height = props.height;\n\t\tif (props.useDevicePixelRatio) {\n\t\t\tthis.graphicsDevice.maxPixelRatio = window.devicePixelRatio;\n\t\t}\n\t\tthis.setCanvasResolution(props.resolutionMode, this._width, this._height);\n\t\tthis.setCanvasFillMode(props.fillMode, this._width, this._height);\n\t\tif (props.layers && props.layerOrder) {\n\t\t\tconst composition = new LayerComposition('application');\n\t\t\tconst layers = {};\n\t\t\tfor (const key in props.layers) {\n\t\t\t\tconst data = props.layers[key];\n\t\t\t\tdata.id = parseInt(key, 10);\n\t\t\t\tdata.enabled = data.id !== LAYERID_DEPTH;\n\t\t\t\tlayers[key] = new Layer(data);\n\t\t\t}\n\t\t\tfor (let i = 0, len = props.layerOrder.length; i < len; i++) {\n\t\t\t\tconst sublayer = props.layerOrder[i];\n\t\t\t\tconst layer = layers[sublayer.layer];\n\t\t\t\tif (!layer) continue;\n\t\t\t\tif (sublayer.transparent) {\n\t\t\t\t\tcomposition.pushTransparent(layer);\n\t\t\t\t} else {\n\t\t\t\t\tcomposition.pushOpaque(layer);\n\t\t\t\t}\n\t\t\t\tcomposition.subLayerEnabled[i] = sublayer.enabled;\n\t\t\t}\n\t\t\tthis.scene.layers = composition;\n\t\t}\n\t\tif (props.batchGroups) {\n\t\t\tconst batcher = this.batcher;\n\t\t\tif (batcher) {\n\t\t\t\tfor (let i = 0, len = props.batchGroups.length; i < len; i++) {\n\t\t\t\t\tconst grp = props.batchGroups[i];\n\t\t\t\t\tbatcher.addGroup(grp.name, grp.dynamic, grp.maxAabbSize, grp.id, grp.layers);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (props.i18nAssets) {\n\t\t\tthis.i18n.assets = props.i18nAssets;\n\t\t}\n\t\tthis._loadLibraries(props.libraries, callback);\n\t}\n\t_loadLibraries(urls, callback) {\n\t\tconst len = urls.length;\n\t\tlet count = len;\n\t\tconst regex = /^https?:\\/\\//;\n\t\tif (len) {\n\t\t\tconst onLoad = (err, script) => {\n\t\t\t\tcount--;\n\t\t\t\tif (err) {\n\t\t\t\t\tcallback(err);\n\t\t\t\t} else if (count === 0) {\n\t\t\t\t\tthis.onLibrariesLoaded();\n\t\t\t\t\tcallback(null);\n\t\t\t\t}\n\t\t\t};\n\t\t\tfor (let i = 0; i < len; ++i) {\n\t\t\t\tlet url = urls[i];\n\t\t\t\tif (!regex.test(url.toLowerCase()) && this._scriptPrefix) {\n\t\t\t\t\turl = path.join(this._scriptPrefix, url);\n\t\t\t\t}\n\t\t\t\tthis.loader.load(url, 'script', onLoad);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.onLibrariesLoaded();\n\t\t\tcallback(null);\n\t\t}\n\t}\n\t_parseScenes(scenes) {\n\t\tif (!scenes) return;\n\t\tfor (let i = 0; i < scenes.length; i++) {\n\t\t\tthis.scenes.add(scenes[i].name, scenes[i].url);\n\t\t}\n\t}\n\t_parseAssets(assets) {\n\t\tconst list = [];\n\t\tconst scriptsIndex = {};\n\t\tconst bundlesIndex = {};\n\t\tif (!script.legacy) {\n\t\t\tfor (let i = 0; i < this.scriptsOrder.length; i++) {\n\t\t\t\tconst id = this.scriptsOrder[i];\n\t\t\t\tif (!assets[id]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tscriptsIndex[id] = true;\n\t\t\t\tlist.push(assets[id]);\n\t\t\t}\n\t\t\tif (this.enableBundles) {\n\t\t\t\tfor (const id in assets) {\n\t\t\t\t\tif (assets[id].type === 'bundle') {\n\t\t\t\t\t\tbundlesIndex[id] = true;\n\t\t\t\t\t\tlist.push(assets[id]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const id in assets) {\n\t\t\t\tif (scriptsIndex[id] || bundlesIndex[id]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tlist.push(assets[id]);\n\t\t\t}\n\t\t} else {\n\t\t\tif (this.enableBundles) {\n\t\t\t\tfor (const id in assets) {\n\t\t\t\t\tif (assets[id].type === 'bundle') {\n\t\t\t\t\t\tbundlesIndex[id] = true;\n\t\t\t\t\t\tlist.push(assets[id]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const id in assets) {\n\t\t\t\tif (bundlesIndex[id]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tlist.push(assets[id]);\n\t\t\t}\n\t\t}\n\t\tfor (let i = 0; i < list.length; i++) {\n\t\t\tconst data = list[i];\n\t\t\tconst asset = new Asset(data.name, data.type, data.file, data.data);\n\t\t\tasset.id = parseInt(data.id, 10);\n\t\t\tasset.preload = data.preload ? data.preload : false;\n\t\t\tasset.loaded = data.type === 'script' && data.data && data.data.loadingType > 0;\n\t\t\tasset.tags.add(data.tags);\n\t\t\tif (data.i18n) {\n\t\t\t\tfor (const locale in data.i18n) {\n\t\t\t\t\tasset.addLocalizedAssetId(locale, data.i18n[locale]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.assets.add(asset);\n\t\t}\n\t}\n\t_getScriptReferences(scene) {\n\t\tlet priorityScripts = [];\n\t\tif (scene.settings.priority_scripts) {\n\t\t\tpriorityScripts = scene.settings.priority_scripts;\n\t\t}\n\t\tconst _scripts = [];\n\t\tconst _index = {};\n\t\tfor (let i = 0; i < priorityScripts.length; i++) {\n\t\t\t_scripts.push(priorityScripts[i]);\n\t\t\t_index[priorityScripts[i]] = true;\n\t\t}\n\t\tconst entities = scene.entities;\n\t\tfor (const key in entities) {\n\t\t\tif (!entities[key].components.script) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst scripts = entities[key].components.script.scripts;\n\t\t\tfor (let i = 0; i < scripts.length; i++) {\n\t\t\t\tif (_index[scripts[i].url]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\t_scripts.push(scripts[i].url);\n\t\t\t\t_index[scripts[i].url] = true;\n\t\t\t}\n\t\t}\n\t\treturn _scripts;\n\t}\n\tstart() {\n\t\tthis.frame = 0;\n\t\tthis.fire('start', {\n\t\t\ttimestamp: now(),\n\t\t\ttarget: this\n\t\t});\n\t\tif (!this._librariesLoaded) {\n\t\t\tthis.onLibrariesLoaded();\n\t\t}\n\t\tthis.systems.fire('initialize', this.root);\n\t\tthis.fire('initialize');\n\t\tthis.systems.fire('postInitialize', this.root);\n\t\tthis.systems.fire('postPostInitialize', this.root);\n\t\tthis.fire('postinitialize');\n\t\tthis.tick();\n\t}\n\tinputUpdate(dt) {\n\t\tif (this.controller) {\n\t\t\tthis.controller.update(dt);\n\t\t}\n\t\tif (this.mouse) {\n\t\t\tthis.mouse.update();\n\t\t}\n\t\tif (this.keyboard) {\n\t\t\tthis.keyboard.update();\n\t\t}\n\t\tif (this.gamepads) {\n\t\t\tthis.gamepads.update();\n\t\t}\n\t}\n\tupdate(dt) {\n\t\tthis.frame++;\n\t\tthis.graphicsDevice.updateClientRect();\n\t\tif (script.legacy) {\n\t\t\tthis.systems.fire('fixedUpdate', 1.0 / 60.0);\n\t\t}\n\t\tthis.systems.fire(this._inTools ? 'toolsUpdate' : 'update', dt);\n\t\tthis.systems.fire('animationUpdate', dt);\n\t\tthis.systems.fire('postUpdate', dt);\n\t\tthis.fire('update', dt);\n\t\tthis.inputUpdate(dt);\n\t}\n\tframeStart() {\n\t\tthis.graphicsDevice.frameStart();\n\t}\n\tframeEnd() {\n\t\tthis.graphicsDevice.frameEnd();\n\t}\n\trender() {\n\t\tthis.fire('prerender');\n\t\tthis.root.syncHierarchy();\n\t\tif (this._batcher) {\n\t\t\tthis._batcher.updateAll();\n\t\t}\n\t\tthis.renderComposition(this.scene.layers);\n\t\tthis.fire('postrender');\n\t}\n\trenderComposition(layerComposition) {\n\t\tthis.renderer.buildFrameGraph(this.frameGraph, layerComposition);\n\t\tthis.frameGraph.render(this.graphicsDevice);\n\t}\n\t_fillFrameStatsBasic(now, dt, ms) {\n\t\tconst stats = this.stats.frame;\n\t\tstats.dt = dt;\n\t\tstats.ms = ms;\n\t\tif (now > stats._timeToCountFrames) {\n\t\t\tstats.fps = stats._fpsAccum;\n\t\t\tstats._fpsAccum = 0;\n\t\t\tstats._timeToCountFrames = now + 1000;\n\t\t} else {\n\t\t\tstats._fpsAccum++;\n\t\t}\n\t\tthis.stats.drawCalls.total = this.graphicsDevice._drawCallsPerFrame;\n\t\tthis.graphicsDevice._drawCallsPerFrame = 0;\n\t}\n\t_fillFrameStats() {\n\t\tlet stats = this.stats.frame;\n\t\tstats.cameras = this.renderer._camerasRendered;\n\t\tstats.materials = this.renderer._materialSwitches;\n\t\tstats.shaders = this.graphicsDevice._shaderSwitchesPerFrame;\n\t\tstats.shadowMapUpdates = this.renderer._shadowMapUpdates;\n\t\tstats.shadowMapTime = this.renderer._shadowMapTime;\n\t\tstats.depthMapTime = this.renderer._depthMapTime;\n\t\tstats.forwardTime = this.renderer._forwardTime;\n\t\tconst prims = this.graphicsDevice._primsPerFrame;\n\t\tstats.triangles = prims[PRIMITIVE_TRIANGLES] / 3 + Math.max(prims[PRIMITIVE_TRISTRIP] - 2, 0) + Math.max(prims[PRIMITIVE_TRIFAN] - 2, 0);\n\t\tstats.cullTime = this.renderer._cullTime;\n\t\tstats.sortTime = this.renderer._sortTime;\n\t\tstats.skinTime = this.renderer._skinTime;\n\t\tstats.morphTime = this.renderer._morphTime;\n\t\tstats.lightClusters = this.renderer._lightClusters;\n\t\tstats.lightClustersTime = this.renderer._lightClustersTime;\n\t\tstats.otherPrimitives = 0;\n\t\tfor (let i = 0; i < prims.length; i++) {\n\t\t\tif (i < PRIMITIVE_TRIANGLES) {\n\t\t\t\tstats.otherPrimitives += prims[i];\n\t\t\t}\n\t\t\tprims[i] = 0;\n\t\t}\n\t\tthis.renderer._camerasRendered = 0;\n\t\tthis.renderer._materialSwitches = 0;\n\t\tthis.renderer._shadowMapUpdates = 0;\n\t\tthis.graphicsDevice._shaderSwitchesPerFrame = 0;\n\t\tthis.renderer._cullTime = 0;\n\t\tthis.renderer._layerCompositionUpdateTime = 0;\n\t\tthis.renderer._lightClustersTime = 0;\n\t\tthis.renderer._sortTime = 0;\n\t\tthis.renderer._skinTime = 0;\n\t\tthis.renderer._morphTime = 0;\n\t\tthis.renderer._shadowMapTime = 0;\n\t\tthis.renderer._depthMapTime = 0;\n\t\tthis.renderer._forwardTime = 0;\n\t\tstats = this.stats.drawCalls;\n\t\tstats.forward = this.renderer._forwardDrawCalls;\n\t\tstats.culled = this.renderer._numDrawCallsCulled;\n\t\tstats.depth = 0;\n\t\tstats.shadow = this.renderer._shadowDrawCalls;\n\t\tstats.skinned = this.renderer._skinDrawCalls;\n\t\tstats.immediate = 0;\n\t\tstats.instanced = 0;\n\t\tstats.removedByInstancing = 0;\n\t\tstats.misc = stats.total - (stats.forward + stats.shadow);\n\t\tthis.renderer._depthDrawCalls = 0;\n\t\tthis.renderer._shadowDrawCalls = 0;\n\t\tthis.renderer._forwardDrawCalls = 0;\n\t\tthis.renderer._numDrawCallsCulled = 0;\n\t\tthis.renderer._skinDrawCalls = 0;\n\t\tthis.renderer._immediateRendered = 0;\n\t\tthis.renderer._instancedDrawCalls = 0;\n\t\tthis.stats.misc.renderTargetCreationTime = this.graphicsDevice.renderTargetCreationTime;\n\t\tstats = this.stats.particles;\n\t\tstats.updatesPerFrame = stats._updatesPerFrame;\n\t\tstats.frameTime = stats._frameTime;\n\t\tstats._updatesPerFrame = 0;\n\t\tstats._frameTime = 0;\n\t}\n\tsetCanvasFillMode(mode, width, height) {\n\t\tthis._fillMode = mode;\n\t\tthis.resizeCanvas(width, height);\n\t}\n\tsetCanvasResolution(mode, width, height) {\n\t\tthis._resolutionMode = mode;\n\t\tif (mode === RESOLUTION_AUTO && width === undefined) {\n\t\t\twidth = this.graphicsDevice.canvas.clientWidth;\n\t\t\theight = this.graphicsDevice.canvas.clientHeight;\n\t\t}\n\t\tthis.graphicsDevice.resizeCanvas(width, height);\n\t}\n\tisHidden() {\n\t\treturn document[this._hiddenAttr];\n\t}\n\tonVisibilityChange() {\n\t\tif (this.isHidden()) {\n\t\t\tif (this._soundManager) {\n\t\t\t\tthis._soundManager.suspend();\n\t\t\t}\n\t\t} else {\n\t\t\tif (this._soundManager) {\n\t\t\t\tthis._soundManager.resume();\n\t\t\t}\n\t\t}\n\t}\n\tresizeCanvas(width, height) {\n\t\tif (!this._allowResize) return undefined;\n\t\tif (this.xr && this.xr.session) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst windowWidth = window.innerWidth;\n\t\tconst windowHeight = window.innerHeight;\n\t\tif (this._fillMode === FILLMODE_KEEP_ASPECT) {\n\t\t\tconst r = this.graphicsDevice.canvas.width / this.graphicsDevice.canvas.height;\n\t\t\tconst winR = windowWidth / windowHeight;\n\t\t\tif (r > winR) {\n\t\t\t\twidth = windowWidth;\n\t\t\t\theight = width / r;\n\t\t\t} else {\n\t\t\t\theight = windowHeight;\n\t\t\t\twidth = height * r;\n\t\t\t}\n\t\t} else if (this._fillMode === FILLMODE_FILL_WINDOW) {\n\t\t\twidth = windowWidth;\n\t\t\theight = windowHeight;\n\t\t}\n\t\tthis.graphicsDevice.canvas.style.width = `${width}px`;\n\t\tthis.graphicsDevice.canvas.style.height = `${height}px`;\n\t\tthis.updateCanvasSize();\n\t\treturn {\n\t\t\twidth: width,\n\t\t\theight: height\n\t\t};\n\t}\n\tupdateCanvasSize() {\n\t\tvar _this$xr;\n\t\tif (!this._allowResize || (_this$xr = this.xr) != null && _this$xr.active) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._resolutionMode === RESOLUTION_AUTO) {\n\t\t\tconst canvas = this.graphicsDevice.canvas;\n\t\t\tthis.graphicsDevice.resizeCanvas(canvas.clientWidth, canvas.clientHeight);\n\t\t}\n\t}\n\tonLibrariesLoaded() {\n\t\tthis._librariesLoaded = true;\n\t\tif (this.systems.rigidbody) {\n\t\t\tthis.systems.rigidbody.onLibraryLoaded();\n\t\t}\n\t}\n\tapplySceneSettings(settings) {\n\t\tlet asset;\n\t\tif (this.systems.rigidbody && typeof Ammo !== 'undefined') {\n\t\t\tconst gravity = settings.physics.gravity;\n\t\t\tthis.systems.rigidbody.gravity.set(gravity[0], gravity[1], gravity[2]);\n\t\t}\n\t\tthis.scene.applySettings(settings);\n\t\tif (settings.render.hasOwnProperty('skybox')) {\n\t\t\tif (settings.render.skybox) {\n\t\t\t\tasset = this.assets.get(settings.render.skybox);\n\t\t\t\tif (asset) {\n\t\t\t\t\tthis.setSkybox(asset);\n\t\t\t\t} else {\n\t\t\t\t\tthis.assets.once(`add:${settings.render.skybox}`, this.setSkybox, this);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.setSkybox(null);\n\t\t\t}\n\t\t}\n\t}\n\tsetAreaLightLuts(ltcMat1, ltcMat2) {\n\t\tif (ltcMat1 && ltcMat2) {\n\t\t\tAreaLightLuts.set(this.graphicsDevice, ltcMat1, ltcMat2);\n\t\t}\n\t}\n\tsetSkybox(asset) {\n\t\tif (asset !== this._skyboxAsset) {\n\t\t\tconst onSkyboxRemoved = () => {\n\t\t\t\tthis.setSkybox(null);\n\t\t\t};\n\t\t\tconst onSkyboxChanged = () => {\n\t\t\t\tthis.scene.setSkybox(this._skyboxAsset ? this._skyboxAsset.resources : null);\n\t\t\t};\n\t\t\tif (this._skyboxAsset) {\n\t\t\t\tthis.assets.off(`load:${this._skyboxAsset.id}`, onSkyboxChanged, this);\n\t\t\t\tthis.assets.off(`remove:${this._skyboxAsset.id}`, onSkyboxRemoved, this);\n\t\t\t\tthis._skyboxAsset.off('change', onSkyboxChanged, this);\n\t\t\t}\n\t\t\tthis._skyboxAsset = asset;\n\t\t\tif (this._skyboxAsset) {\n\t\t\t\tthis.assets.on(`load:${this._skyboxAsset.id}`, onSkyboxChanged, this);\n\t\t\t\tthis.assets.once(`remove:${this._skyboxAsset.id}`, onSkyboxRemoved, this);\n\t\t\t\tthis._skyboxAsset.on('change', onSkyboxChanged, this);\n\t\t\t\tif (this.scene.skyboxMip === 0 && !this._skyboxAsset.loadFaces) {\n\t\t\t\t\tthis._skyboxAsset.loadFaces = true;\n\t\t\t\t}\n\t\t\t\tthis.assets.load(this._skyboxAsset);\n\t\t\t}\n\t\t\tonSkyboxChanged();\n\t\t}\n\t}\n\t_firstBake() {\n\t\tvar _this$lightmapper;\n\t\t(_this$lightmapper = this.lightmapper) == null || _this$lightmapper.bake(null, this.scene.lightmapMode);\n\t}\n\t_firstBatch() {\n\t\tvar _this$batcher;\n\t\t(_this$batcher = this.batcher) == null || _this$batcher.generate();\n\t}\n\t_processTimestamp(timestamp) {\n\t\treturn timestamp;\n\t}\n\tdrawLine(start, end, color, depthTest, layer) {\n\t\tthis.scene.drawLine(start, end, color, depthTest, layer);\n\t}\n\tdrawLines(positions, colors, depthTest = true, layer = this.scene.defaultDrawLayer) {\n\t\tthis.scene.drawLines(positions, colors, depthTest, layer);\n\t}\n\tdrawLineArrays(positions, colors, depthTest = true, layer = this.scene.defaultDrawLayer) {\n\t\tthis.scene.drawLineArrays(positions, colors, depthTest, layer);\n\t}\n\tdrawWireSphere(center, radius, color = Color.WHITE, segments = 20, depthTest = true, layer = this.scene.defaultDrawLayer) {\n\t\tthis.scene.immediate.drawWireSphere(center, radius, color, segments, depthTest, layer);\n\t}\n\tdrawWireAlignedBox(minPoint, maxPoint, color = Color.WHITE, depthTest = true, layer = this.scene.defaultDrawLayer, mat) {\n\t\tthis.scene.immediate.drawWireAlignedBox(minPoint, maxPoint, color, depthTest, layer, mat);\n\t}\n\tdrawMeshInstance(meshInstance, layer = this.scene.defaultDrawLayer) {\n\t\tthis.scene.immediate.drawMesh(null, null, null, meshInstance, layer);\n\t}\n\tdrawMesh(mesh, material, matrix, layer = this.scene.defaultDrawLayer) {\n\t\tthis.scene.immediate.drawMesh(material, matrix, mesh, null, layer);\n\t}\n\tdrawQuad(matrix, material, layer = this.scene.defaultDrawLayer) {\n\t\tthis.scene.immediate.drawMesh(material, matrix, this.scene.immediate.getQuadMesh(), null, layer);\n\t}\n\tdrawTexture(x, y, width, height, texture, material, layer = this.scene.defaultDrawLayer, filterable = true) {\n\t\tif (filterable === false && !this.graphicsDevice.isWebGPU) {\n\t\t\treturn;\n\t\t}\n\t\tconst matrix = new Mat4();\n\t\tmatrix.setTRS(new Vec3(x, y, 0.0), Quat.IDENTITY, new Vec3(width, -height, 0.0));\n\t\tif (!material) {\n\t\t\tmaterial = new Material();\n\t\t\tmaterial.cull = CULLFACE_NONE;\n\t\t\tmaterial.setParameter('colorMap', texture);\n\t\t\tmaterial.shader = filterable ? this.scene.immediate.getTextureShader() : this.scene.immediate.getUnfilterableTextureShader();\n\t\t\tmaterial.update();\n\t\t}\n\t\tthis.drawQuad(matrix, material, layer);\n\t}\n\tdrawDepthTexture(x, y, width, height, layer = this.scene.defaultDrawLayer) {\n\t\tconst material = new Material();\n\t\tmaterial.cull = CULLFACE_NONE;\n\t\tmaterial.shader = this.scene.immediate.getDepthTextureShader();\n\t\tmaterial.update();\n\t\tthis.drawTexture(x, y, width, height, null, material, layer);\n\t}\n\tdestroy() {\n\t\tvar _this$lightmapper2, _this$xr2, _this$xr3, _this$_soundManager;\n\t\tif (this._inFrameUpdate) {\n\t\t\tthis._destroyRequested = true;\n\t\t\treturn;\n\t\t}\n\t\tconst canvasId = this.graphicsDevice.canvas.id;\n\t\tthis.fire('destroy', this);\n\t\tthis.off('librariesloaded');\n\t\tif (typeof document !== 'undefined') {\n\t\t\tdocument.removeEventListener('visibilitychange', this._visibilityChangeHandler, false);\n\t\t\tdocument.removeEventListener('mozvisibilitychange', this._visibilityChangeHandler, false);\n\t\t\tdocument.removeEventListener('msvisibilitychange', this._visibilityChangeHandler, false);\n\t\t\tdocument.removeEventListener('webkitvisibilitychange', this._visibilityChangeHandler, false);\n\t\t}\n\t\tthis._visibilityChangeHandler = null;\n\t\tthis.root.destroy();\n\t\tthis.root = null;\n\t\tif (this.mouse) {\n\t\t\tthis.mouse.off();\n\t\t\tthis.mouse.detach();\n\t\t\tthis.mouse = null;\n\t\t}\n\t\tif (this.keyboard) {\n\t\t\tthis.keyboard.off();\n\t\t\tthis.keyboard.detach();\n\t\t\tthis.keyboard = null;\n\t\t}\n\t\tif (this.touch) {\n\t\t\tthis.touch.off();\n\t\t\tthis.touch.detach();\n\t\t\tthis.touch = null;\n\t\t}\n\t\tif (this.elementInput) {\n\t\t\tthis.elementInput.detach();\n\t\t\tthis.elementInput = null;\n\t\t}\n\t\tif (this.gamepads) {\n\t\t\tthis.gamepads.destroy();\n\t\t\tthis.gamepads = null;\n\t\t}\n\t\tif (this.controller) {\n\t\t\tthis.controller = null;\n\t\t}\n\t\tthis.systems.destroy();\n\t\tif (this.scene.layers) {\n\t\t\tthis.scene.layers.destroy();\n\t\t}\n\t\tconst assets = this.assets.list();\n\t\tfor (let i = 0; i < assets.length; i++) {\n\t\t\tassets[i].unload();\n\t\t\tassets[i].off();\n\t\t}\n\t\tthis.assets.off();\n\t\tthis.bundles.destroy();\n\t\tthis.bundles = null;\n\t\tthis.i18n.destroy();\n\t\tthis.i18n = null;\n\t\tconst scriptHandler = this.loader.getHandler('script');\n\t\tscriptHandler == null || scriptHandler.clearCache();\n\t\tthis.loader.destroy();\n\t\tthis.loader = null;\n\t\tthis.scene.destroy();\n\t\tthis.scene = null;\n\t\tthis.systems = null;\n\t\tthis.context = null;\n\t\tthis.scripts.destroy();\n\t\tthis.scripts = null;\n\t\tthis.scenes.destroy();\n\t\tthis.scenes = null;\n\t\t(_this$lightmapper2 = this.lightmapper) == null || _this$lightmapper2.destroy();\n\t\tthis.lightmapper = null;\n\t\tif (this._batcher) {\n\t\t\tthis._batcher.destroy();\n\t\t\tthis._batcher = null;\n\t\t}\n\t\tthis._entityIndex = {};\n\t\tthis.defaultLayerDepth.onPreRenderOpaque = null;\n\t\tthis.defaultLayerDepth.onPostRenderOpaque = null;\n\t\tthis.defaultLayerDepth.onDisable = null;\n\t\tthis.defaultLayerDepth.onEnable = null;\n\t\tthis.defaultLayerDepth = null;\n\t\tthis.defaultLayerWorld = null;\n\t\t(_this$xr2 = this.xr) == null || _this$xr2.end();\n\t\t(_this$xr3 = this.xr) == null || _this$xr3.destroy();\n\t\tthis.renderer.destroy();\n\t\tthis.renderer = null;\n\t\tthis.graphicsDevice.destroy();\n\t\tthis.graphicsDevice = null;\n\t\tthis.tick = null;\n\t\tthis.off();\n\t\t(_this$_soundManager = this._soundManager) == null || _this$_soundManager.destroy();\n\t\tthis._soundManager = null;\n\t\tscript.app = null;\n\t\tAppBase._applications[canvasId] = null;\n\t\tif (getApplication() === this) {\n\t\t\tsetApplication(null);\n\t\t}\n\t\tAppBase.cancelTick(this);\n\t}\n\tstatic cancelTick(app) {\n\t\tif (app.frameRequestId) {\n\t\t\twindow.cancelAnimationFrame(app.frameRequestId);\n\t\t\tapp.frameRequestId = undefined;\n\t\t}\n\t}\n\tgetEntityFromIndex(guid) {\n\t\treturn this._entityIndex[guid];\n\t}\n\t_registerSceneImmediate(scene) {\n\t\tthis.on('postrender', scene.immediate.onPostRender, scene.immediate);\n\t}\n}\nAppBase._applications = {};\nconst _frameEndData = {};\nconst makeTick = function makeTick(_app) {\n\tconst application = _app;\n\treturn function (timestamp, frame) {\n\t\tvar _application$xr2;\n\t\tif (!application.graphicsDevice) {\n\t\t\treturn;\n\t\t}\n\t\tif (application.frameRequestId) {\n\t\t\tvar _application$xr;\n\t\t\t(_application$xr = application.xr) == null || (_application$xr = _application$xr.session) == null || _application$xr.cancelAnimationFrame(application.frameRequestId);\n\t\t\tcancelAnimationFrame(application.frameRequestId);\n\t\t\tapplication.frameRequestId = null;\n\t\t}\n\t\tapplication._inFrameUpdate = true;\n\t\tsetApplication(application);\n\t\tapp = application;\n\t\tconst currentTime = application._processTimestamp(timestamp) || now();\n\t\tconst ms = currentTime - (application._time || currentTime);\n\t\tlet dt = ms / 1000.0;\n\t\tdt = math.clamp(dt, 0, application.maxDeltaTime);\n\t\tdt *= application.timeScale;\n\t\tapplication._time = currentTime;\n\t\tif ((_application$xr2 = application.xr) != null && _application$xr2.session) {\n\t\t\tapplication.frameRequestId = application.xr.session.requestAnimationFrame(application.tick);\n\t\t} else {\n\t\t\tapplication.frameRequestId = platform.browser || platform.worker ? requestAnimationFrame(application.tick) : null;\n\t\t}\n\t\tif (application.graphicsDevice.contextLost) {\n\t\t\treturn;\n\t\t}\n\t\tapplication._fillFrameStatsBasic(currentTime, dt, ms);\n\t\tapplication.fire('frameupdate', ms);\n\t\tlet shouldRenderFrame = true;\n\t\tif (frame) {\n\t\t\tvar _application$xr3;\n\t\t\tshouldRenderFrame = (_application$xr3 = application.xr) == null ? void 0 : _application$xr3.update(frame);\n\t\t\tapplication.graphicsDevice.defaultFramebuffer = frame.session.renderState.baseLayer.framebuffer;\n\t\t} else {\n\t\t\tapplication.graphicsDevice.defaultFramebuffer = null;\n\t\t}\n\t\tif (shouldRenderFrame) {\n\t\t\tapplication.update(dt);\n\t\t\tapplication.fire('framerender');\n\t\t\tif (application.autoRender || application.renderNextFrame) {\n\t\t\t\tapplication.updateCanvasSize();\n\t\t\t\tapplication.frameStart();\n\t\t\t\tapplication.render();\n\t\t\t\tapplication.frameEnd();\n\t\t\t\tapplication.renderNextFrame = false;\n\t\t\t}\n\t\t\t_frameEndData.timestamp = now();\n\t\t\t_frameEndData.target = application;\n\t\t\tapplication.fire('frameend', _frameEndData);\n\t\t}\n\t\tapplication._inFrameUpdate = false;\n\t\tif (application._destroyRequested) {\n\t\t\tapplication.destroy();\n\t\t}\n\t};\n};\n\nclass AppOptions {\n\tconstructor() {\n\t\tthis.elementInput = void 0;\n\t\tthis.keyboard = void 0;\n\t\tthis.mouse = void 0;\n\t\tthis.touch = void 0;\n\t\tthis.gamepads = void 0;\n\t\tthis.scriptPrefix = void 0;\n\t\tthis.assetPrefix = void 0;\n\t\tthis.scriptsOrder = void 0;\n\t\tthis.soundManager = void 0;\n\t\tthis.graphicsDevice = void 0;\n\t\tthis.lightmapper = void 0;\n\t\tthis.batchManager = void 0;\n\t\tthis.xr = void 0;\n\t\tthis.componentSystems = [];\n\t\tthis.resourceHandlers = [];\n\t}\n}\n\nconst tempSphere = new BoundingSphere();\nclass BakeLight {\n\tconstructor(scene, light, lightingParams) {\n\t\tthis.scene = scene;\n\t\tthis.light = light;\n\t\tthis.store();\n\t\tlight.numCascades = 1;\n\t\tif (this.scene.clusteredLightingEnabled) {\n\t\t\tlight.castShadows = light.bakeShadows && lightingParams.shadowsEnabled;\n\t\t}\n\t\tif (light.type !== LIGHTTYPE_DIRECTIONAL) {\n\t\t\tlight._node.getWorldTransform();\n\t\t\tlight.getBoundingSphere(tempSphere);\n\t\t\tthis.lightBounds = new BoundingBox();\n\t\t\tthis.lightBounds.center.copy(tempSphere.center);\n\t\t\tthis.lightBounds.halfExtents.set(tempSphere.radius, tempSphere.radius, tempSphere.radius);\n\t\t}\n\t}\n\tstore() {\n\t\tthis.mask = this.light.mask;\n\t\tthis.shadowUpdateMode = this.light.shadowUpdateMode;\n\t\tthis.enabled = this.light.enabled;\n\t\tthis.intensity = this.light.intensity;\n\t\tthis.rotation = this.light._node.getLocalRotation().clone();\n\t\tthis.numCascades = this.light.numCascades;\n\t\tthis.castShadows = this.light._castShadows;\n\t}\n\trestore() {\n\t\tconst light = this.light;\n\t\tlight.mask = this.mask;\n\t\tlight.shadowUpdateMode = this.shadowUpdateMode;\n\t\tlight.enabled = this.enabled;\n\t\tlight.intensity = this.intensity;\n\t\tlight._node.setLocalRotation(this.rotation);\n\t\tlight.numCascades = this.numCascades;\n\t\tlight._castShadows = this.castShadows;\n\t}\n\tstartBake() {\n\t\tthis.light.enabled = true;\n\t\tthis.light._destroyShadowMap();\n\t\tthis.light.beginFrame();\n\t}\n\tendBake(shadowMapCache) {\n\t\tconst light = this.light;\n\t\tlight.enabled = false;\n\t\tif (light.shadowMap) {\n\t\t\tif (light.shadowMap.cached) {\n\t\t\t\tshadowMapCache.add(light, light.shadowMap);\n\t\t\t}\n\t\t\tlight.shadowMap = null;\n\t\t}\n\t}\n}\n\nconst _tempPoint$1 = new Vec2();\nclass BakeLightSimple extends BakeLight {\n\tconstructor(lightmapper, light) {\n\t\tsuper(lightmapper.scene, light, lightmapper.lightingParams);\n\t}\n\tget numVirtualLights() {\n\t\tif (this.light.type === LIGHTTYPE_DIRECTIONAL) {\n\t\t\treturn this.light.bakeNumSamples;\n\t\t}\n\t\treturn 1;\n\t}\n\tprepareVirtualLight(index, numVirtualLights) {\n\t\tconst light = this.light;\n\t\tlight._node.setLocalRotation(this.rotation);\n\t\tif (index > 0) {\n\t\t\tconst directionalSpreadAngle = light.bakeArea;\n\t\t\trandom.circlePointDeterministic(_tempPoint$1, index, numVirtualLights);\n\t\t\t_tempPoint$1.mulScalar(directionalSpreadAngle * 0.5);\n\t\t\tlight._node.rotateLocal(_tempPoint$1.x, 0, _tempPoint$1.y);\n\t\t}\n\t\tlight._node.getWorldTransform();\n\t\tconst gamma = this.scene.gammaCorrection ? 2.2 : 1;\n\t\tconst linearIntensity = Math.pow(this.intensity, gamma);\n\t\tlight.intensity = Math.pow(linearIntensity / numVirtualLights, 1 / gamma);\n\t}\n}\n\nconst _tempPoint = new Vec3();\nclass BakeLightAmbient extends BakeLight {\n\tconstructor(lightmapper) {\n\t\tconst scene = lightmapper.scene;\n\t\tconst lightEntity = new Entity('AmbientLight');\n\t\tlightEntity.addComponent('light', {\n\t\t\ttype: 'directional',\n\t\t\taffectDynamic: true,\n\t\t\taffectLightmapped: false,\n\t\t\tbake: true,\n\t\t\tbakeNumSamples: scene.ambientBakeNumSamples,\n\t\t\tcastShadows: true,\n\t\t\tnormalOffsetBias: 0.05,\n\t\t\tshadowBias: 0.2,\n\t\t\tshadowDistance: 1,\n\t\t\tshadowResolution: 2048,\n\t\t\tshadowType: SHADOW_PCF3,\n\t\t\tcolor: Color.WHITE,\n\t\t\tintensity: 1,\n\t\t\tbakeDir: false\n\t\t});\n\t\tsuper(scene, lightEntity.light.light, lightmapper.lightingParams);\n\t}\n\tget numVirtualLights() {\n\t\treturn this.light.bakeNumSamples;\n\t}\n\tprepareVirtualLight(index, numVirtualLights) {\n\t\trandom.spherePointDeterministic(_tempPoint, index, numVirtualLights, 0, this.scene.ambientBakeSpherePart);\n\t\tthis.light._node.lookAt(_tempPoint.mulScalar(-1));\n\t\tthis.light._node.rotateLocal(90, 0, 0);\n\t\tconst gamma = this.scene.gammaCorrection ? 2.2 : 1;\n\t\tconst fullIntensity = 2 * Math.PI * this.scene.ambientBakeSpherePart;\n\t\tconst linearIntensity = Math.pow(fullIntensity, gamma);\n\t\tthis.light.intensity = Math.pow(linearIntensity / numVirtualLights, 1 / gamma);\n\t}\n}\n\nclass BakeMeshNode {\n\tconstructor(node, meshInstances = null) {\n\t\tthis.node = node;\n\t\tthis.component = node.render || node.model;\n\t\tmeshInstances = meshInstances || this.component.meshInstances;\n\t\tthis.store();\n\t\tthis.meshInstances = meshInstances;\n\t\tthis.bounds = null;\n\t\tthis.renderTargets = [];\n\t}\n\tstore() {\n\t\tthis.castShadows = this.component.castShadows;\n\t}\n\trestore() {\n\t\tthis.component.castShadows = this.castShadows;\n\t}\n}\n\nconst DENOISE_FILTER_SIZE = 15;\nclass LightmapFilters {\n\tconstructor(device) {\n\t\tthis.device = device;\n\t\tthis.shaderDilate = createShaderFromCode(device, shaderChunks.fullscreenQuadVS, shaderChunksLightmapper.dilatePS, 'lmDilate');\n\t\tthis.constantTexSource = device.scope.resolve('source');\n\t\tthis.constantPixelOffset = device.scope.resolve('pixelOffset');\n\t\tthis.pixelOffset = new Float32Array(2);\n\t\tthis.shaderDenoise = null;\n\t\tthis.sigmas = null;\n\t\tthis.constantSigmas = null;\n\t\tthis.kernel = null;\n\t}\n\tsetSourceTexture(texture) {\n\t\tthis.constantTexSource.setValue(texture);\n\t}\n\tprepare(textureWidth, textureHeight) {\n\t\tthis.pixelOffset[0] = 1 / textureWidth;\n\t\tthis.pixelOffset[1] = 1 / textureHeight;\n\t\tthis.constantPixelOffset.setValue(this.pixelOffset);\n\t}\n\tprepareDenoise(filterRange, filterSmoothness) {\n\t\tif (!this.shaderDenoise) {\n\t\t\tthis.shaderDenoise = createShaderFromCode(this.device, shaderChunks.fullscreenQuadVS, shaderChunksLightmapper.bilateralDeNoisePS, 'lmBilateralDeNoise');\n\t\t\tthis.sigmas = new Float32Array(2);\n\t\t\tthis.constantSigmas = this.device.scope.resolve('sigmas');\n\t\t\tthis.constantKernel = this.device.scope.resolve('kernel[0]');\n\t\t\tthis.bZnorm = this.device.scope.resolve('bZnorm');\n\t\t}\n\t\tthis.sigmas[0] = filterRange;\n\t\tthis.sigmas[1] = filterSmoothness;\n\t\tthis.constantSigmas.setValue(this.sigmas);\n\t\tthis.evaluateDenoiseUniforms(filterRange, filterSmoothness);\n\t}\n\tevaluateDenoiseUniforms(filterRange, filterSmoothness) {\n\t\tfunction normpdf(x, sigma) {\n\t\t\treturn 0.39894 * Math.exp(-0.5 * x * x / (sigma * sigma)) / sigma;\n\t\t}\n\t\tthis.kernel = this.kernel || new Float32Array(DENOISE_FILTER_SIZE);\n\t\tconst kernel = this.kernel;\n\t\tconst kSize = Math.floor((DENOISE_FILTER_SIZE - 1) / 2);\n\t\tfor (let j = 0; j <= kSize; ++j) {\n\t\t\tconst value = normpdf(j, filterRange);\n\t\t\tkernel[kSize + j] = value;\n\t\t\tkernel[kSize - j] = value;\n\t\t}\n\t\tthis.constantKernel.setValue(this.kernel);\n\t\tconst bZnorm = 1 / normpdf(0.0, filterSmoothness);\n\t\tthis.bZnorm.setValue(bZnorm);\n\t}\n}\n\nclass RenderPassLightmapper extends RenderPass {\n\tconstructor(device, renderer, camera, worldClusters, receivers, lightArray) {\n\t\tsuper(device);\n\t\tthis.viewBindGroups = [];\n\t\tthis.renderer = renderer;\n\t\tthis.camera = camera;\n\t\tthis.worldClusters = worldClusters;\n\t\tthis.receivers = receivers;\n\t\tthis.lightArray = lightArray;\n\t}\n\tdestroy() {\n\t\tthis.viewBindGroups.forEach(bg => {\n\t\t\tbg.defaultUniformBuffer.destroy();\n\t\t\tbg.destroy();\n\t\t});\n\t\tthis.viewBindGroups.length = 0;\n\t}\n\texecute() {\n\t\tthis.device;\n\t\tconst {\n\t\t\trenderer,\n\t\t\tcamera,\n\t\t\treceivers,\n\t\t\trenderTarget,\n\t\t\tworldClusters,\n\t\t\tlightArray\n\t\t} = this;\n\t\trenderer.renderForwardLayer(camera, renderTarget, null, undefined, SHADER_FORWARDHDR, this.viewBindGroups, {\n\t\t\tmeshInstances: receivers,\n\t\t\tsplitLights: lightArray,\n\t\t\tlightClusters: worldClusters\n\t\t});\n\t}\n}\n\nconst MAX_LIGHTMAP_SIZE = 2048;\nconst PASS_COLOR = 0;\nconst PASS_DIR = 1;\nconst tempVec$1 = new Vec3();\nclass Lightmapper {\n\tconstructor(device, root, scene, renderer, assets) {\n\t\tthis.device = device;\n\t\tthis.root = root;\n\t\tthis.scene = scene;\n\t\tthis.renderer = renderer;\n\t\tthis.assets = assets;\n\t\tthis.shadowMapCache = renderer.shadowMapCache;\n\t\tthis._tempSet = new Set();\n\t\tthis._initCalled = false;\n\t\tthis.passMaterials = [];\n\t\tthis.ambientAOMaterial = null;\n\t\tthis.fog = '';\n\t\tthis.ambientLight = new Color();\n\t\tthis.renderTargets = new Map();\n\t\tthis.stats = {\n\t\t\trenderPasses: 0,\n\t\t\tlightmapCount: 0,\n\t\t\ttotalRenderTime: 0,\n\t\t\tforwardTime: 0,\n\t\t\tfboTime: 0,\n\t\t\tshadowMapTime: 0,\n\t\t\tcompileTime: 0,\n\t\t\tshadersLinked: 0\n\t\t};\n\t}\n\tdestroy() {\n\t\tvar _this$camera;\n\t\tLightmapCache.decRef(this.blackTex);\n\t\tthis.blackTex = null;\n\t\tLightmapCache.destroy();\n\t\tthis.device = null;\n\t\tthis.root = null;\n\t\tthis.scene = null;\n\t\tthis.renderer = null;\n\t\tthis.assets = null;\n\t\t(_this$camera = this.camera) == null || _this$camera.destroy();\n\t\tthis.camera = null;\n\t}\n\tinitBake(device) {\n\t\tif (!this._initCalled) {\n\t\t\tthis._initCalled = true;\n\t\t\tthis.lightmapFilters = new LightmapFilters(device);\n\t\t\tthis.constantBakeDir = device.scope.resolve('bakeDir');\n\t\t\tthis.materials = [];\n\t\t\tthis.blackTex = new Texture(this.device, {\n\t\t\t\twidth: 4,\n\t\t\t\theight: 4,\n\t\t\t\tformat: PIXELFORMAT_RGBA8,\n\t\t\t\ttype: TEXTURETYPE_RGBM,\n\t\t\t\tname: 'lightmapBlack'\n\t\t\t});\n\t\t\tLightmapCache.incRef(this.blackTex);\n\t\t\tconst camera = new Camera();\n\t\t\tcamera.clearColor.set(0, 0, 0, 0);\n\t\t\tcamera.clearColorBuffer = true;\n\t\t\tcamera.clearDepthBuffer = false;\n\t\t\tcamera.clearStencilBuffer = false;\n\t\t\tcamera.frustumCulling = false;\n\t\t\tcamera.projection = PROJECTION_ORTHOGRAPHIC;\n\t\t\tcamera.aspectRatio = 1;\n\t\t\tcamera.node = new GraphNode();\n\t\t\tthis.camera = camera;\n\t\t}\n\t\tif (this.scene.clusteredLightingEnabled) {\n\t\t\tconst lightingParams = new LightingParams(device.supportsAreaLights, device.maxTextureSize, () => {});\n\t\t\tthis.lightingParams = lightingParams;\n\t\t\tconst srcParams = this.scene.lighting;\n\t\t\tlightingParams.shadowsEnabled = srcParams.shadowsEnabled;\n\t\t\tlightingParams.shadowAtlasResolution = srcParams.shadowAtlasResolution;\n\t\t\tlightingParams.cookiesEnabled = srcParams.cookiesEnabled;\n\t\t\tlightingParams.cookieAtlasResolution = srcParams.cookieAtlasResolution;\n\t\t\tlightingParams.areaLightsEnabled = srcParams.areaLightsEnabled;\n\t\t\tlightingParams.cells = new Vec3(3, 3, 3);\n\t\t\tlightingParams.maxLightsPerCell = 4;\n\t\t\tthis.worldClusters = new WorldClusters(device);\n\t\t\tthis.worldClusters.name = 'ClusterLightmapper';\n\t\t}\n\t}\n\tfinishBake(bakeNodes) {\n\t\tthis.materials = [];\n\t\tfunction destroyRT(rt) {\n\t\t\tLightmapCache.decRef(rt.colorBuffer);\n\t\t\trt.destroy();\n\t\t}\n\t\tthis.renderTargets.forEach(rt => {\n\t\t\tdestroyRT(rt);\n\t\t});\n\t\tthis.renderTargets.clear();\n\t\tbakeNodes.forEach(node => {\n\t\t\tnode.renderTargets.forEach(rt => {\n\t\t\t\tdestroyRT(rt);\n\t\t\t});\n\t\t\tnode.renderTargets.length = 0;\n\t\t});\n\t\tthis.ambientAOMaterial = null;\n\t\tif (this.worldClusters) {\n\t\t\tthis.worldClusters.destroy();\n\t\t\tthis.worldClusters = null;\n\t\t}\n\t}\n\tcreateMaterialForPass(device, scene, pass, addAmbient) {\n\t\tconst material = new StandardMaterial();\n\t\tmaterial.name = `lmMaterial-pass:${pass}-ambient:${addAmbient}`;\n\t\tmaterial.chunks.APIVersion = CHUNKAPI_1_65;\n\t\tconst transformDefines = '#define UV1LAYOUT\\n';\n\t\tmaterial.chunks.transformVS = transformDefines + shaderChunks.transformVS;\n\t\tif (pass === PASS_COLOR) {\n\t\t\tlet bakeLmEndChunk = shaderChunksLightmapper.bakeLmEndPS;\n\t\t\tif (addAmbient) {\n\t\t\t\tbakeLmEndChunk = `\n\t\t\t\t\t\t\t\t\t\tdDiffuseLight = ((dDiffuseLight - 0.5) * max(${scene.ambientBakeOcclusionContrast.toFixed(1)} + 1.0, 0.0)) + 0.5;\n\t\t\t\t\t\t\t\t\t\tdDiffuseLight += vec3(${scene.ambientBakeOcclusionBrightness.toFixed(1)});\n\t\t\t\t\t\t\t\t\t\tdDiffuseLight = saturate(dDiffuseLight);\n\t\t\t\t\t\t\t\t\t\tdDiffuseLight *= dAmbientLight;\n\t\t\t\t\t\t\t\t${bakeLmEndChunk}`;\n\t\t\t} else {\n\t\t\t\tmaterial.ambient = new Color(0, 0, 0);\n\t\t\t\tmaterial.ambientTint = true;\n\t\t\t}\n\t\t\tmaterial.chunks.basePS = shaderChunks.basePS + (scene.lightmapPixelFormat === PIXELFORMAT_RGBA8 ? '\\n#define LIGHTMAP_RGBM\\n' : '');\n\t\t\tmaterial.chunks.endPS = bakeLmEndChunk;\n\t\t\tmaterial.lightMap = this.blackTex;\n\t\t} else {\n\t\t\tmaterial.chunks.basePS = `${shaderChunks.basePS}\\nuniform sampler2D texture_dirLightMap;\\nuniform float bakeDir;\\n`;\n\t\t\tmaterial.chunks.endPS = shaderChunksLightmapper.bakeDirLmEndPS;\n\t\t}\n\t\tmaterial.chunks.outputAlphaPS = '\\n';\n\t\tmaterial.chunks.outputAlphaOpaquePS = '\\n';\n\t\tmaterial.chunks.outputAlphaPremulPS = '\\n';\n\t\tmaterial.cull = CULLFACE_NONE;\n\t\tmaterial.forceUv1 = true;\n\t\tmaterial.update();\n\t\treturn material;\n\t}\n\tcreateMaterials(device, scene, passCount) {\n\t\tfor (let pass = 0; pass < passCount; pass++) {\n\t\t\tif (!this.passMaterials[pass]) {\n\t\t\t\tthis.passMaterials[pass] = this.createMaterialForPass(device, scene, pass, false);\n\t\t\t}\n\t\t}\n\t\tif (!this.ambientAOMaterial) {\n\t\t\tthis.ambientAOMaterial = this.createMaterialForPass(device, scene, 0, true);\n\t\t\tthis.ambientAOMaterial.onUpdateShader = function (options) {\n\t\t\t\toptions.litOptions.lightMapWithoutAmbient = true;\n\t\t\t\toptions.litOptions.separateAmbient = true;\n\t\t\t\treturn options;\n\t\t\t};\n\t\t}\n\t}\n\tcreateTexture(size, name) {\n\t\treturn new Texture(this.device, {\n\t\t\twidth: size,\n\t\t\theight: size,\n\t\t\tformat: this.scene.lightmapPixelFormat,\n\t\t\tmipmaps: false,\n\t\t\ttype: this.scene.lightmapPixelFormat === PIXELFORMAT_RGBA8 ? TEXTURETYPE_RGBM : TEXTURETYPE_DEFAULT,\n\t\t\tminFilter: FILTER_NEAREST,\n\t\t\tmagFilter: FILTER_NEAREST,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\tname: name\n\t\t});\n\t}\n\tcollectModels(node, bakeNodes, allNodes) {\n\t\tvar _node$model, _node$model2, _node$render;\n\t\tif (!node.enabled) return;\n\t\tlet meshInstances;\n\t\tif ((_node$model = node.model) != null && _node$model.model && (_node$model2 = node.model) != null && _node$model2.enabled) {\n\t\t\tif (allNodes) allNodes.push(new BakeMeshNode(node));\n\t\t\tif (node.model.lightmapped) {\n\t\t\t\tif (bakeNodes) {\n\t\t\t\t\tmeshInstances = node.model.model.meshInstances;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif ((_node$render = node.render) != null && _node$render.enabled) {\n\t\t\tif (allNodes) allNodes.push(new BakeMeshNode(node));\n\t\t\tif (node.render.lightmapped) {\n\t\t\t\tif (bakeNodes) {\n\t\t\t\t\tmeshInstances = node.render.meshInstances;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (meshInstances) {\n\t\t\tlet hasUv1 = true;\n\t\t\tfor (let i = 0; i < meshInstances.length; i++) {\n\t\t\t\tif (!meshInstances[i].mesh.vertexBuffer.format.hasUv1) {\n\t\t\t\t\thasUv1 = false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (hasUv1) {\n\t\t\t\tconst notInstancedMeshInstances = [];\n\t\t\t\tfor (let i = 0; i < meshInstances.length; i++) {\n\t\t\t\t\tconst mesh = meshInstances[i].mesh;\n\t\t\t\t\tif (this._tempSet.has(mesh)) {\n\t\t\t\t\t\tbakeNodes.push(new BakeMeshNode(node, [meshInstances[i]]));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnotInstancedMeshInstances.push(meshInstances[i]);\n\t\t\t\t\t}\n\t\t\t\t\tthis._tempSet.add(mesh);\n\t\t\t\t}\n\t\t\t\tthis._tempSet.clear();\n\t\t\t\tif (notInstancedMeshInstances.length > 0) {\n\t\t\t\t\tbakeNodes.push(new BakeMeshNode(node, notInstancedMeshInstances));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (let i = 0; i < node._children.length; i++) {\n\t\t\tthis.collectModels(node._children[i], bakeNodes, allNodes);\n\t\t}\n\t}\n\tprepareShadowCasters(nodes) {\n\t\tconst casters = [];\n\t\tfor (let n = 0; n < nodes.length; n++) {\n\t\t\tconst component = nodes[n].component;\n\t\t\tcomponent.castShadows = component.castShadowsLightmap;\n\t\t\tif (component.castShadowsLightmap) {\n\t\t\t\tconst meshes = nodes[n].meshInstances;\n\t\t\t\tfor (let i = 0; i < meshes.length; i++) {\n\t\t\t\t\tmeshes[i].visibleThisFrame = true;\n\t\t\t\t\tcasters.push(meshes[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn casters;\n\t}\n\tupdateTransforms(nodes) {\n\t\tfor (let i = 0; i < nodes.length; i++) {\n\t\t\tconst meshInstances = nodes[i].meshInstances;\n\t\t\tfor (let j = 0; j < meshInstances.length; j++) {\n\t\t\t\tmeshInstances[j].node.getWorldTransform();\n\t\t\t}\n\t\t}\n\t}\n\tcalculateLightmapSize(node) {\n\t\tlet data;\n\t\tconst sizeMult = this.scene.lightmapSizeMultiplier || 16;\n\t\tconst scale = tempVec$1;\n\t\tlet srcArea, lightmapSizeMultiplier;\n\t\tif (node.model) {\n\t\t\tlightmapSizeMultiplier = node.model.lightmapSizeMultiplier;\n\t\t\tif (node.model.asset) {\n\t\t\t\tdata = this.assets.get(node.model.asset).data;\n\t\t\t\tif (data.area) {\n\t\t\t\t\tsrcArea = data.area;\n\t\t\t\t}\n\t\t\t} else if (node.model._area) {\n\t\t\t\tdata = node.model;\n\t\t\t\tif (data._area) {\n\t\t\t\t\tsrcArea = data._area;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (node.render) {\n\t\t\tlightmapSizeMultiplier = node.render.lightmapSizeMultiplier;\n\t\t\tif (node.render.type !== 'asset') {\n\t\t\t\tif (node.render._area) {\n\t\t\t\t\tdata = node.render;\n\t\t\t\t\tif (data._area) {\n\t\t\t\t\t\tsrcArea = data._area;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst area = {\n\t\t\tx: 1,\n\t\t\ty: 1,\n\t\t\tz: 1,\n\t\t\tuv: 1\n\t\t};\n\t\tif (srcArea) {\n\t\t\tarea.x = srcArea.x;\n\t\t\tarea.y = srcArea.y;\n\t\t\tarea.z = srcArea.z;\n\t\t\tarea.uv = srcArea.uv;\n\t\t}\n\t\tconst areaMult = lightmapSizeMultiplier || 1;\n\t\tarea.x *= areaMult;\n\t\tarea.y *= areaMult;\n\t\tarea.z *= areaMult;\n\t\tconst component = node.render || node.model;\n\t\tconst bounds = this.computeNodeBounds(component.meshInstances);\n\t\tscale.copy(bounds.halfExtents);\n\t\tlet totalArea = area.x * scale.y * scale.z + area.y * scale.x * scale.z + area.z * scale.x * scale.y;\n\t\ttotalArea /= area.uv;\n\t\ttotalArea = Math.sqrt(totalArea);\n\t\tconst lightmapSize = Math.min(math.nextPowerOfTwo(totalArea * sizeMult), this.scene.lightmapMaxResolution || MAX_LIGHTMAP_SIZE);\n\t\treturn lightmapSize;\n\t}\n\tsetLightmapping(nodes, value, passCount, shaderDefs) {\n\t\tfor (let i = 0; i < nodes.length; i++) {\n\t\t\tconst node = nodes[i];\n\t\t\tconst meshInstances = node.meshInstances;\n\t\t\tfor (let j = 0; j < meshInstances.length; j++) {\n\t\t\t\tconst meshInstance = meshInstances[j];\n\t\t\t\tmeshInstance.setLightmapped(value);\n\t\t\t\tif (value) {\n\t\t\t\t\tif (shaderDefs) {\n\t\t\t\t\t\tmeshInstance._shaderDefs |= shaderDefs;\n\t\t\t\t\t}\n\t\t\t\t\tmeshInstance.mask = MASK_AFFECT_LIGHTMAPPED;\n\t\t\t\t\tfor (let pass = 0; pass < passCount; pass++) {\n\t\t\t\t\t\tconst tex = node.renderTargets[pass].colorBuffer;\n\t\t\t\t\t\ttex.minFilter = FILTER_LINEAR;\n\t\t\t\t\t\ttex.magFilter = FILTER_LINEAR;\n\t\t\t\t\t\tmeshInstance.setRealtimeLightmap(MeshInstance.lightmapParamNames[pass], tex);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tbake(nodes, mode = BAKE_COLORDIR) {\n\t\tconst device = this.device;\n\t\tconst startTime = now();\n\t\tthis.scene._updateSkyMesh();\n\t\tthis.stats.renderPasses = 0;\n\t\tthis.stats.shadowMapTime = 0;\n\t\tthis.stats.forwardTime = 0;\n\t\tconst startShaders = device._shaderStats.linked;\n\t\tconst startFboTime = device._renderTargetCreationTime;\n\t\tconst startCompileTime = device._shaderStats.compileTime;\n\t\tconst bakeNodes = [];\n\t\tconst allNodes = [];\n\t\tif (nodes) {\n\t\t\tfor (let i = 0; i < nodes.length; i++) {\n\t\t\t\tthis.collectModels(nodes[i], bakeNodes, null);\n\t\t\t}\n\t\t\tthis.collectModels(this.root, null, allNodes);\n\t\t} else {\n\t\t\tthis.collectModels(this.root, bakeNodes, allNodes);\n\t\t}\n\t\tif (bakeNodes.length > 0) {\n\t\t\tthis.renderer.shadowRenderer.frameUpdate();\n\t\t\tconst passCount = mode === BAKE_COLORDIR ? 2 : 1;\n\t\t\tthis.setLightmapping(bakeNodes, false, passCount);\n\t\t\tthis.initBake(device);\n\t\t\tthis.bakeInternal(passCount, bakeNodes, allNodes);\n\t\t\tlet shaderDefs = SHADERDEF_LM;\n\t\t\tif (mode === BAKE_COLORDIR) {\n\t\t\t\tshaderDefs |= SHADERDEF_DIRLM;\n\t\t\t}\n\t\t\tif (this.scene.ambientBake) {\n\t\t\t\tshaderDefs |= SHADERDEF_LMAMBIENT;\n\t\t\t}\n\t\t\tthis.setLightmapping(bakeNodes, true, passCount, shaderDefs);\n\t\t\tthis.finishBake(bakeNodes);\n\t\t}\n\t\tconst nowTime = now();\n\t\tthis.stats.totalRenderTime = nowTime - startTime;\n\t\tthis.stats.shadersLinked = device._shaderStats.linked - startShaders;\n\t\tthis.stats.compileTime = device._shaderStats.compileTime - startCompileTime;\n\t\tthis.stats.fboTime = device._renderTargetCreationTime - startFboTime;\n\t\tthis.stats.lightmapCount = bakeNodes.length;\n\t}\n\tallocateTextures(bakeNodes, passCount) {\n\t\tfor (let i = 0; i < bakeNodes.length; i++) {\n\t\t\tconst bakeNode = bakeNodes[i];\n\t\t\tconst size = this.calculateLightmapSize(bakeNode.node);\n\t\t\tfor (let pass = 0; pass < passCount; pass++) {\n\t\t\t\tconst tex = this.createTexture(size, `lightmapper_lightmap_${i}`);\n\t\t\t\tLightmapCache.incRef(tex);\n\t\t\t\tbakeNode.renderTargets[pass] = new RenderTarget({\n\t\t\t\t\tcolorBuffer: tex,\n\t\t\t\t\tdepth: false\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (!this.renderTargets.has(size)) {\n\t\t\t\tconst tex = this.createTexture(size, `lightmapper_temp_lightmap_${size}`);\n\t\t\t\tLightmapCache.incRef(tex);\n\t\t\t\tthis.renderTargets.set(size, new RenderTarget({\n\t\t\t\t\tcolorBuffer: tex,\n\t\t\t\t\tdepth: false\n\t\t\t\t}));\n\t\t\t}\n\t\t}\n\t}\n\tprepareLightsToBake(allLights, bakeLights) {\n\t\tif (this.scene.ambientBake) {\n\t\t\tconst ambientLight = new BakeLightAmbient(this);\n\t\t\tbakeLights.push(ambientLight);\n\t\t}\n\t\tconst sceneLights = this.renderer.lights;\n\t\tfor (let i = 0; i < sceneLights.length; i++) {\n\t\t\tconst light = sceneLights[i];\n\t\t\tconst bakeLight = new BakeLightSimple(this, light);\n\t\t\tallLights.push(bakeLight);\n\t\t\tif (light.enabled && (light.mask & MASK_BAKE) !== 0) {\n\t\t\t\tlight.mask = MASK_BAKE | MASK_AFFECT_LIGHTMAPPED | MASK_AFFECT_DYNAMIC;\n\t\t\t\tlight.shadowUpdateMode = light.type === LIGHTTYPE_DIRECTIONAL ? SHADOWUPDATE_REALTIME : SHADOWUPDATE_THISFRAME;\n\t\t\t\tbakeLights.push(bakeLight);\n\t\t\t}\n\t\t}\n\t\tbakeLights.sort();\n\t}\n\trestoreLights(allLights) {\n\t\tfor (let i = 0; i < allLights.length; i++) {\n\t\t\tallLights[i].restore();\n\t\t}\n\t}\n\tsetupScene() {\n\t\tthis.fog = this.scene.fog;\n\t\tthis.ambientLight.copy(this.scene.ambientLight);\n\t\tthis.scene.fog = FOG_NONE;\n\t\tif (!this.scene.ambientBake) {\n\t\t\tthis.scene.ambientLight.set(0, 0, 0);\n\t\t}\n\t\tthis.renderer.setSceneConstants();\n\t}\n\trestoreScene() {\n\t\tthis.scene.fog = this.fog;\n\t\tthis.scene.ambientLight.copy(this.ambientLight);\n\t}\n\tcomputeNodeBounds(meshInstances) {\n\t\tconst bounds = new BoundingBox();\n\t\tif (meshInstances.length > 0) {\n\t\t\tbounds.copy(meshInstances[0].aabb);\n\t\t\tfor (let m = 1; m < meshInstances.length; m++) {\n\t\t\t\tbounds.add(meshInstances[m].aabb);\n\t\t\t}\n\t\t}\n\t\treturn bounds;\n\t}\n\tcomputeNodesBounds(nodes) {\n\t\tfor (let i = 0; i < nodes.length; i++) {\n\t\t\tconst meshInstances = nodes[i].meshInstances;\n\t\t\tnodes[i].bounds = this.computeNodeBounds(meshInstances);\n\t\t}\n\t}\n\tcomputeBounds(meshInstances) {\n\t\tconst bounds = new BoundingBox();\n\t\tfor (let i = 0; i < meshInstances.length; i++) {\n\t\t\tbounds.copy(meshInstances[0].aabb);\n\t\t\tfor (let m = 1; m < meshInstances.length; m++) {\n\t\t\t\tbounds.add(meshInstances[m].aabb);\n\t\t\t}\n\t\t}\n\t\treturn bounds;\n\t}\n\tbackupMaterials(meshInstances) {\n\t\tfor (let i = 0; i < meshInstances.length; i++) {\n\t\t\tthis.materials[i] = meshInstances[i].material;\n\t\t}\n\t}\n\trestoreMaterials(meshInstances) {\n\t\tfor (let i = 0; i < meshInstances.length; i++) {\n\t\t\tmeshInstances[i].material = this.materials[i];\n\t\t}\n\t}\n\tlightCameraPrepare(device, bakeLight) {\n\t\tconst light = bakeLight.light;\n\t\tlet shadowCam;\n\t\tif (light.type === LIGHTTYPE_SPOT) {\n\t\t\tconst lightRenderData = light.getRenderData(null, 0);\n\t\t\tshadowCam = lightRenderData.shadowCamera;\n\t\t\tshadowCam._node.setPosition(light._node.getPosition());\n\t\t\tshadowCam._node.setRotation(light._node.getRotation());\n\t\t\tshadowCam._node.rotateLocal(-90, 0, 0);\n\t\t\tshadowCam.projection = PROJECTION_PERSPECTIVE;\n\t\t\tshadowCam.nearClip = light.attenuationEnd / 1000;\n\t\t\tshadowCam.farClip = light.attenuationEnd;\n\t\t\tshadowCam.aspectRatio = 1;\n\t\t\tshadowCam.fov = light._outerConeAngle * 2;\n\t\t\tthis.renderer.updateCameraFrustum(shadowCam);\n\t\t}\n\t\treturn shadowCam;\n\t}\n\tlightCameraPrepareAndCull(bakeLight, bakeNode, shadowCam, casterBounds) {\n\t\tconst light = bakeLight.light;\n\t\tlet lightAffectsNode = true;\n\t\tif (light.type === LIGHTTYPE_DIRECTIONAL) {\n\t\t\ttempVec$1.copy(casterBounds.center);\n\t\t\ttempVec$1.y += casterBounds.halfExtents.y;\n\t\t\tthis.camera.node.setPosition(tempVec$1);\n\t\t\tthis.camera.node.setEulerAngles(-90, 0, 0);\n\t\t\tthis.camera.nearClip = 0;\n\t\t\tthis.camera.farClip = casterBounds.halfExtents.y * 2;\n\t\t\tconst frustumSize = Math.max(casterBounds.halfExtents.x, casterBounds.halfExtents.z);\n\t\t\tthis.camera.orthoHeight = frustumSize;\n\t\t} else {\n\t\t\tif (!bakeLight.lightBounds.intersects(bakeNode.bounds)) {\n\t\t\t\tlightAffectsNode = false;\n\t\t\t}\n\t\t}\n\t\tif (light.type === LIGHTTYPE_SPOT) {\n\t\t\tlet nodeVisible = false;\n\t\t\tconst meshInstances = bakeNode.meshInstances;\n\t\t\tfor (let i = 0; i < meshInstances.length; i++) {\n\t\t\t\tif (meshInstances[i]._isVisible(shadowCam)) {\n\t\t\t\t\tnodeVisible = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!nodeVisible) {\n\t\t\t\tlightAffectsNode = false;\n\t\t\t}\n\t\t}\n\t\treturn lightAffectsNode;\n\t}\n\tsetupLightArray(lightArray, light) {\n\t\tlightArray[LIGHTTYPE_DIRECTIONAL].length = 0;\n\t\tlightArray[LIGHTTYPE_OMNI].length = 0;\n\t\tlightArray[LIGHTTYPE_SPOT].length = 0;\n\t\tlightArray[light.type][0] = light;\n\t\tlight.visibleThisFrame = true;\n\t}\n\trenderShadowMap(comp, shadowMapRendered, casters, bakeLight) {\n\t\tconst light = bakeLight.light;\n\t\tconst isClustered = this.scene.clusteredLightingEnabled;\n\t\tconst castShadow = light.castShadows && (!isClustered || this.scene.lighting.shadowsEnabled);\n\t\tif (!shadowMapRendered && castShadow) {\n\t\t\tif (!light.shadowMap && !isClustered) {\n\t\t\t\tlight.shadowMap = this.shadowMapCache.get(this.device, light);\n\t\t\t}\n\t\t\tif (light.type === LIGHTTYPE_DIRECTIONAL) {\n\t\t\t\tthis.renderer._shadowRendererDirectional.cull(light, comp, this.camera, casters);\n\t\t\t\tconst shadowPass = this.renderer._shadowRendererDirectional.getLightRenderPass(light, this.camera);\n\t\t\t\tshadowPass == null || shadowPass.render();\n\t\t\t} else {\n\t\t\t\tif (this.device.isWebGPU) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tthis.renderer._shadowRendererLocal.cull(light, comp, casters);\n\t\t\t\tconst insideRenderPass = false;\n\t\t\t\tthis.renderer.shadowRenderer.render(light, this.camera, insideRenderPass);\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\tpostprocessTextures(device, bakeNodes, passCount) {\n\t\tconst numDilates2x = 1;\n\t\tconst dilateShader = this.lightmapFilters.shaderDilate;\n\t\tconst filterLightmap = this.scene.lightmapFilterEnabled;\n\t\tif (filterLightmap) {\n\t\t\tthis.lightmapFilters.prepareDenoise(this.scene.lightmapFilterRange, this.scene.lightmapFilterSmoothness);\n\t\t}\n\t\tdevice.setBlendState(BlendState.NOBLEND);\n\t\tdevice.setDepthState(DepthState.NODEPTH);\n\t\tdevice.setStencilState(null, null);\n\t\tfor (let node = 0; node < bakeNodes.length; node++) {\n\t\t\tconst bakeNode = bakeNodes[node];\n\t\t\tfor (let pass = 0; pass < passCount; pass++) {\n\t\t\t\tconst nodeRT = bakeNode.renderTargets[pass];\n\t\t\t\tconst lightmap = nodeRT.colorBuffer;\n\t\t\t\tconst tempRT = this.renderTargets.get(lightmap.width);\n\t\t\t\tconst tempTex = tempRT.colorBuffer;\n\t\t\t\tthis.lightmapFilters.prepare(lightmap.width, lightmap.height);\n\t\t\t\tfor (let i = 0; i < numDilates2x; i++) {\n\t\t\t\t\tthis.lightmapFilters.setSourceTexture(lightmap);\n\t\t\t\t\tconst bilateralFilterEnabled = filterLightmap && pass === 0 && i === 0;\n\t\t\t\t\tdrawQuadWithShader(device, tempRT, bilateralFilterEnabled ? this.lightmapFilters.shaderDenoise : dilateShader);\n\t\t\t\t\tthis.lightmapFilters.setSourceTexture(tempTex);\n\t\t\t\t\tdrawQuadWithShader(device, nodeRT, dilateShader);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tbakeInternal(passCount, bakeNodes, allNodes) {\n\t\tconst scene = this.scene;\n\t\tconst comp = scene.layers;\n\t\tconst device = this.device;\n\t\tconst clusteredLightingEnabled = scene.clusteredLightingEnabled;\n\t\tthis.createMaterials(device, scene, passCount);\n\t\tthis.setupScene();\n\t\tcomp._update();\n\t\tthis.computeNodesBounds(bakeNodes);\n\t\tthis.allocateTextures(bakeNodes, passCount);\n\t\tthis.renderer.collectLights(comp);\n\t\tconst allLights = [],\n\t\t\tbakeLights = [];\n\t\tthis.prepareLightsToBake(allLights, bakeLights);\n\t\tthis.updateTransforms(allNodes);\n\t\tconst casters = this.prepareShadowCasters(allNodes);\n\t\tthis.renderer.updateCpuSkinMatrices(casters);\n\t\tthis.renderer.gpuUpdate(casters);\n\t\tconst casterBounds = this.computeBounds(casters);\n\t\tlet i, j, rcv, m;\n\t\tfor (i = 0; i < bakeNodes.length; i++) {\n\t\t\tconst bakeNode = bakeNodes[i];\n\t\t\trcv = bakeNode.meshInstances;\n\t\t\tfor (j = 0; j < rcv.length; j++) {\n\t\t\t\tm = rcv[j];\n\t\t\t\tm.setLightmapped(false);\n\t\t\t\tm.mask = MASK_BAKE;\n\t\t\t\tm.setRealtimeLightmap(MeshInstance.lightmapParamNames[0], this.blackTex);\n\t\t\t\tm.setRealtimeLightmap(MeshInstance.lightmapParamNames[1], this.blackTex);\n\t\t\t}\n\t\t}\n\t\tfor (j = 0; j < bakeLights.length; j++) {\n\t\t\tbakeLights[j].light.enabled = false;\n\t\t}\n\t\tconst lightArray = [[], [], []];\n\t\tlet pass, node;\n\t\tlet shadersUpdatedOn1stPass = false;\n\t\tfor (i = 0; i < bakeLights.length; i++) {\n\t\t\tconst bakeLight = bakeLights[i];\n\t\t\tconst isAmbientLight = bakeLight instanceof BakeLightAmbient;\n\t\t\tconst isDirectional = bakeLight.light.type === LIGHTTYPE_DIRECTIONAL;\n\t\t\tlet numVirtualLights = bakeLight.numVirtualLights;\n\t\t\tif (passCount > 1 && numVirtualLights > 1 && bakeLight.light.bakeDir) {\n\t\t\t\tnumVirtualLights = 1;\n\t\t\t}\n\t\t\tfor (let virtualLightIndex = 0; virtualLightIndex < numVirtualLights; virtualLightIndex++) {\n\t\t\t\tif (numVirtualLights > 1) {\n\t\t\t\t\tbakeLight.prepareVirtualLight(virtualLightIndex, numVirtualLights);\n\t\t\t\t}\n\t\t\t\tbakeLight.startBake();\n\t\t\t\tlet shadowMapRendered = false;\n\t\t\t\tconst shadowCam = this.lightCameraPrepare(device, bakeLight);\n\t\t\t\tfor (node = 0; node < bakeNodes.length; node++) {\n\t\t\t\t\tconst bakeNode = bakeNodes[node];\n\t\t\t\t\trcv = bakeNode.meshInstances;\n\t\t\t\t\tconst lightAffectsNode = this.lightCameraPrepareAndCull(bakeLight, bakeNode, shadowCam, casterBounds);\n\t\t\t\t\tif (!lightAffectsNode) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tthis.setupLightArray(lightArray, bakeLight.light);\n\t\t\t\t\tconst clusterLights = isDirectional ? [] : [bakeLight.light];\n\t\t\t\t\tif (clusteredLightingEnabled) {\n\t\t\t\t\t\tthis.renderer.lightTextureAtlas.update(clusterLights, this.lightingParams);\n\t\t\t\t\t}\n\t\t\t\t\tshadowMapRendered = this.renderShadowMap(comp, shadowMapRendered, casters, bakeLight);\n\t\t\t\t\tif (clusteredLightingEnabled) {\n\t\t\t\t\t\tthis.worldClusters.update(clusterLights, this.scene.gammaCorrection, this.lightingParams);\n\t\t\t\t\t}\n\t\t\t\t\tthis.backupMaterials(rcv);\n\t\t\t\t\tfor (pass = 0; pass < passCount; pass++) {\n\t\t\t\t\t\tif (pass > 0 && virtualLightIndex > 0) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isAmbientLight && pass > 0) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst nodeRT = bakeNode.renderTargets[pass];\n\t\t\t\t\t\tconst lightmapSize = bakeNode.renderTargets[pass].colorBuffer.width;\n\t\t\t\t\t\tconst tempRT = this.renderTargets.get(lightmapSize);\n\t\t\t\t\t\tconst tempTex = tempRT.colorBuffer;\n\t\t\t\t\t\tif (pass === 0) {\n\t\t\t\t\t\t\tshadersUpdatedOn1stPass = scene.updateShaders;\n\t\t\t\t\t\t} else if (shadersUpdatedOn1stPass) {\n\t\t\t\t\t\t\tscene.updateShaders = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlet passMaterial = this.passMaterials[pass];\n\t\t\t\t\t\tif (isAmbientLight) {\n\t\t\t\t\t\t\tconst lastVirtualLightForPass = virtualLightIndex + 1 === numVirtualLights;\n\t\t\t\t\t\t\tif (lastVirtualLightForPass && pass === 0) {\n\t\t\t\t\t\t\t\tpassMaterial = this.ambientAOMaterial;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (j = 0; j < rcv.length; j++) {\n\t\t\t\t\t\t\trcv[j].material = passMaterial;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.renderer.updateShaders(rcv);\n\t\t\t\t\t\tif (pass === PASS_DIR) {\n\t\t\t\t\t\t\tthis.constantBakeDir.setValue(bakeLight.light.bakeDir ? 1 : 0);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (device.isWebGPU) {\n\t\t\t\t\t\t\tconst renderPass = new RenderPassLightmapper(device, this.renderer, this.camera, clusteredLightingEnabled ? this.worldClusters : null, rcv, lightArray);\n\t\t\t\t\t\t\trenderPass.init(tempRT);\n\t\t\t\t\t\t\trenderPass.render();\n\t\t\t\t\t\t\trenderPass.destroy();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.renderer.setCamera(this.camera, tempRT, true);\n\t\t\t\t\t\t\tif (clusteredLightingEnabled) {\n\t\t\t\t\t\t\t\tthis.worldClusters.activate();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthis.renderer._forwardTime = 0;\n\t\t\t\t\t\t\tthis.renderer._shadowMapTime = 0;\n\t\t\t\t\t\t\tthis.renderer.renderForward(this.camera, rcv, lightArray, SHADER_FORWARDHDR);\n\t\t\t\t\t\t\tdevice.updateEnd();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbakeNode.renderTargets[pass] = tempRT;\n\t\t\t\t\t\tthis.renderTargets.set(lightmapSize, nodeRT);\n\t\t\t\t\t\tfor (j = 0; j < rcv.length; j++) {\n\t\t\t\t\t\t\tm = rcv[j];\n\t\t\t\t\t\t\tm.setRealtimeLightmap(MeshInstance.lightmapParamNames[pass], tempTex);\n\t\t\t\t\t\t\tm._shaderDefs |= SHADERDEF_LM;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tthis.restoreMaterials(rcv);\n\t\t\t\t}\n\t\t\t\tbakeLight.endBake(this.shadowMapCache);\n\t\t\t}\n\t\t}\n\t\tthis.postprocessTextures(device, bakeNodes, passCount);\n\t\tfor (node = 0; node < allNodes.length; node++) {\n\t\t\tallNodes[node].restore();\n\t\t}\n\t\tthis.restoreLights(allLights);\n\t\tthis.restoreScene();\n\t\tif (!clusteredLightingEnabled) {\n\t\t\tthis.shadowMapCache.clear();\n\t\t}\n\t}\n}\n\nclass Component extends EventHandler {\n\tconstructor(system, entity) {\n\t\tsuper();\n\t\tthis.system = void 0;\n\t\tthis.entity = void 0;\n\t\tthis.system = system;\n\t\tthis.entity = entity;\n\t\tif (this.system.schema && !this._accessorsBuilt) {\n\t\t\tthis.buildAccessors(this.system.schema);\n\t\t}\n\t\tthis.on('set', function (name, oldValue, newValue) {\n\t\t\tthis.fire(`set_${name}`, name, oldValue, newValue);\n\t\t});\n\t\tthis.on('set_enabled', this.onSetEnabled, this);\n\t}\n\tstatic _buildAccessors(obj, schema) {\n\t\tschema.forEach(descriptor => {\n\t\t\tconst name = typeof descriptor === 'object' ? descriptor.name : descriptor;\n\t\t\tObject.defineProperty(obj, name, {\n\t\t\t\tget: function () {\n\t\t\t\t\treturn this.data[name];\n\t\t\t\t},\n\t\t\t\tset: function (value) {\n\t\t\t\t\tconst data = this.data;\n\t\t\t\t\tconst oldValue = data[name];\n\t\t\t\t\tdata[name] = value;\n\t\t\t\t\tthis.fire('set', name, oldValue, value);\n\t\t\t\t},\n\t\t\t\tconfigurable: true\n\t\t\t});\n\t\t});\n\t\tobj._accessorsBuilt = true;\n\t}\n\tbuildAccessors(schema) {\n\t\tComponent._buildAccessors(this, schema);\n\t}\n\tonSetEnabled(name, oldValue, newValue) {\n\t\tif (oldValue !== newValue) {\n\t\t\tif (this.entity.enabled) {\n\t\t\t\tif (newValue) {\n\t\t\t\t\tthis.onEnable();\n\t\t\t\t} else {\n\t\t\t\t\tthis.onDisable();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tonEnable() {}\n\tonDisable() {}\n\tonPostStateChange() {}\n\tget data() {\n\t\tconst record = this.system.store[this.entity.getGuid()];\n\t\treturn record ? record.data : null;\n\t}\n\tset enabled(arg) {}\n\tget enabled() {\n\t\treturn true;\n\t}\n}\n\nclass ComponentSystem extends EventHandler {\n\tconstructor(app) {\n\t\tsuper();\n\t\tthis.app = app;\n\t\tthis.store = {};\n\t\tthis.schema = [];\n\t}\n\taddComponent(entity, data = {}) {\n\t\tconst component = new this.ComponentType(this, entity);\n\t\tconst componentData = new this.DataType();\n\t\tthis.store[entity.getGuid()] = {\n\t\t\tentity: entity,\n\t\t\tdata: componentData\n\t\t};\n\t\tentity[this.id] = component;\n\t\tentity.c[this.id] = component;\n\t\tthis.initializeComponentData(component, data, []);\n\t\tthis.fire('add', entity, component);\n\t\treturn component;\n\t}\n\tremoveComponent(entity) {\n\t\tconst record = this.store[entity.getGuid()];\n\t\tconst component = entity.c[this.id];\n\t\tcomponent.fire('beforeremove');\n\t\tthis.fire('beforeremove', entity, component);\n\t\tdelete this.store[entity.getGuid()];\n\t\tentity[this.id] = undefined;\n\t\tdelete entity.c[this.id];\n\t\tthis.fire('remove', entity, record.data);\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst src = this.store[entity.getGuid()];\n\t\treturn this.addComponent(clone, src.data);\n\t}\n\tinitializeComponentData(component, data = {}, properties) {\n\t\tfor (let i = 0, len = properties.length; i < len; i++) {\n\t\t\tconst descriptor = properties[i];\n\t\t\tlet name, type;\n\t\t\tif (typeof descriptor === 'object') {\n\t\t\t\tname = descriptor.name;\n\t\t\t\ttype = descriptor.type;\n\t\t\t} else {\n\t\t\t\tname = descriptor;\n\t\t\t\ttype = undefined;\n\t\t\t}\n\t\t\tlet value = data[name];\n\t\t\tif (value !== undefined) {\n\t\t\t\tif (type !== undefined) {\n\t\t\t\t\tvalue = convertValue(value, type);\n\t\t\t\t}\n\t\t\t\tcomponent[name] = value;\n\t\t\t} else {\n\t\t\t\tcomponent[name] = component.data[name];\n\t\t\t}\n\t\t}\n\t\tif (component.enabled && component.entity.enabled) {\n\t\t\tcomponent.onEnable();\n\t\t}\n\t}\n\tgetPropertiesOfType(type) {\n\t\tconst matchingProperties = [];\n\t\tconst schema = this.schema || [];\n\t\tschema.forEach(descriptor => {\n\t\t\tif (descriptor && typeof descriptor === 'object' && descriptor.type === type) {\n\t\t\t\tmatchingProperties.push(descriptor);\n\t\t\t}\n\t\t});\n\t\treturn matchingProperties;\n\t}\n\tdestroy() {\n\t\tthis.off();\n\t}\n}\nfunction convertValue(value, type) {\n\tif (!value) {\n\t\treturn value;\n\t}\n\tswitch (type) {\n\t\tcase 'rgb':\n\t\t\tif (value instanceof Color) {\n\t\t\t\treturn value.clone();\n\t\t\t}\n\t\t\treturn new Color(value[0], value[1], value[2]);\n\t\tcase 'rgba':\n\t\t\tif (value instanceof Color) {\n\t\t\t\treturn value.clone();\n\t\t\t}\n\t\t\treturn new Color(value[0], value[1], value[2], value[3]);\n\t\tcase 'vec2':\n\t\t\tif (value instanceof Vec2) {\n\t\t\t\treturn value.clone();\n\t\t\t}\n\t\t\treturn new Vec2(value[0], value[1]);\n\t\tcase 'vec3':\n\t\t\tif (value instanceof Vec3) {\n\t\t\t\treturn value.clone();\n\t\t\t}\n\t\t\treturn new Vec3(value[0], value[1], value[2]);\n\t\tcase 'vec4':\n\t\t\tif (value instanceof Vec4) {\n\t\t\t\treturn value.clone();\n\t\t\t}\n\t\t\treturn new Vec4(value[0], value[1], value[2], value[3]);\n\t\tcase 'boolean':\n\t\tcase 'number':\n\t\tcase 'string':\n\t\t\treturn value;\n\t\tcase 'entity':\n\t\t\treturn value;\n\t\tdefault:\n\t\t\tthrow new Error(`Could not convert unhandled type: ${type}`);\n\t}\n}\n\nconst INTERPOLATION_STEP = 0;\nconst INTERPOLATION_LINEAR = 1;\nconst INTERPOLATION_CUBIC = 2;\n\nclass AnimCache {\n\tconstructor() {\n\t\tthis._left = Infinity;\n\t\tthis._right = -Infinity;\n\t\tthis._len = 0;\n\t\tthis._recip = 0;\n\t\tthis._p0 = 0;\n\t\tthis._p1 = 0;\n\t\tthis._t = 0;\n\t\tthis._hermite = {\n\t\t\tvalid: false,\n\t\t\tp0: 0,\n\t\t\tm0: 0,\n\t\t\tp1: 0,\n\t\t\tm1: 0\n\t\t};\n\t}\n\tupdate(time, input) {\n\t\tif (time < this._left || time >= this._right) {\n\t\t\tconst len = input.length;\n\t\t\tif (!len) {\n\t\t\t\tthis._left = -Infinity;\n\t\t\t\tthis._right = Infinity;\n\t\t\t\tthis._len = 0;\n\t\t\t\tthis._recip = 0;\n\t\t\t\tthis._p0 = this._p1 = 0;\n\t\t\t} else {\n\t\t\t\tif (time < input[0]) {\n\t\t\t\t\tthis._left = -Infinity;\n\t\t\t\t\tthis._right = input[0];\n\t\t\t\t\tthis._len = 0;\n\t\t\t\t\tthis._recip = 0;\n\t\t\t\t\tthis._p0 = this._p1 = 0;\n\t\t\t\t} else if (time >= input[len - 1]) {\n\t\t\t\t\tthis._left = input[len - 1];\n\t\t\t\t\tthis._right = Infinity;\n\t\t\t\t\tthis._len = 0;\n\t\t\t\t\tthis._recip = 0;\n\t\t\t\t\tthis._p0 = this._p1 = len - 1;\n\t\t\t\t} else {\n\t\t\t\t\tconst index = this._findKey(time, input);\n\t\t\t\t\tthis._left = input[index];\n\t\t\t\t\tthis._right = input[index + 1];\n\t\t\t\t\tthis._len = this._right - this._left;\n\t\t\t\t\tconst diff = 1.0 / this._len;\n\t\t\t\t\tthis._recip = isFinite(diff) ? diff : 0;\n\t\t\t\t\tthis._p0 = index;\n\t\t\t\t\tthis._p1 = index + 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._t = this._recip === 0 ? 0 : (time - this._left) * this._recip;\n\t\tthis._hermite.valid = false;\n\t}\n\t_findKey(time, input) {\n\t\tlet index = 0;\n\t\twhile (time >= input[index + 1]) {\n\t\t\tindex++;\n\t\t}\n\t\treturn index;\n\t}\n\teval(result, interpolation, output) {\n\t\tconst data = output._data;\n\t\tconst comp = output._components;\n\t\tconst idx0 = this._p0 * comp;\n\t\tif (interpolation === INTERPOLATION_STEP) {\n\t\t\tfor (let i = 0; i < comp; ++i) {\n\t\t\t\tresult[i] = data[idx0 + i];\n\t\t\t}\n\t\t} else {\n\t\t\tconst t = this._t;\n\t\t\tconst idx1 = this._p1 * comp;\n\t\t\tswitch (interpolation) {\n\t\t\t\tcase INTERPOLATION_LINEAR:\n\t\t\t\t\tfor (let i = 0; i < comp; ++i) {\n\t\t\t\t\t\tresult[i] = math.lerp(data[idx0 + i], data[idx1 + i], t);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase INTERPOLATION_CUBIC:\n\t\t\t\t\t{\n\t\t\t\t\t\tconst hermite = this._hermite;\n\t\t\t\t\t\tif (!hermite.valid) {\n\t\t\t\t\t\t\tconst t2 = t * t;\n\t\t\t\t\t\t\tconst twot = t + t;\n\t\t\t\t\t\t\tconst omt = 1 - t;\n\t\t\t\t\t\t\tconst omt2 = omt * omt;\n\t\t\t\t\t\t\thermite.valid = true;\n\t\t\t\t\t\t\thermite.p0 = (1 + twot) * omt2;\n\t\t\t\t\t\t\thermite.m0 = t * omt2;\n\t\t\t\t\t\t\thermite.p1 = t2 * (3 - twot);\n\t\t\t\t\t\t\thermite.m1 = t2 * (t - 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst p0 = (this._p0 * 3 + 1) * comp;\n\t\t\t\t\t\tconst m0 = (this._p0 * 3 + 2) * comp;\n\t\t\t\t\t\tconst p1 = (this._p1 * 3 + 1) * comp;\n\t\t\t\t\t\tconst m1 = (this._p1 * 3 + 0) * comp;\n\t\t\t\t\t\tfor (let i = 0; i < comp; ++i) {\n\t\t\t\t\t\t\tresult[i] = hermite.p0 * data[p0 + i] + hermite.m0 * data[m0 + i] * this._len + hermite.p1 * data[p1 + i] + hermite.m1 * data[m1 + i] * this._len;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nclass AnimSnapshot {\n\tconstructor(animTrack) {\n\t\tthis._name = `${animTrack.name}Snapshot`;\n\t\tthis._time = -1;\n\t\tthis._cache = [];\n\t\tthis._results = [];\n\t\tfor (let i = 0; i < animTrack._inputs.length; ++i) {\n\t\t\tthis._cache[i] = new AnimCache();\n\t\t}\n\t\tconst curves = animTrack._curves;\n\t\tconst outputs = animTrack._outputs;\n\t\tfor (let i = 0; i < curves.length; ++i) {\n\t\t\tconst curve = curves[i];\n\t\t\tconst output = outputs[curve._output];\n\t\t\tconst storage = [];\n\t\t\tfor (let j = 0; j < output._components; ++j) {\n\t\t\t\tstorage[j] = 0;\n\t\t\t}\n\t\t\tthis._results[i] = storage;\n\t\t}\n\t}\n}\n\nclass AnimClip {\n\tconstructor(track, time, speed, playing, loop, eventHandler) {\n\t\tthis._name = track.name;\n\t\tthis._track = track;\n\t\tthis._snapshot = new AnimSnapshot(track);\n\t\tthis._playing = playing;\n\t\tthis._time = time;\n\t\tthis._speed = speed;\n\t\tthis._loop = loop;\n\t\tthis._blendWeight = 1.0;\n\t\tthis._blendOrder = 0.0;\n\t\tthis._eventHandler = eventHandler;\n\t\tthis.alignCursorToCurrentTime();\n\t}\n\tset name(name) {\n\t\tthis._name = name;\n\t}\n\tget name() {\n\t\treturn this._name;\n\t}\n\tset track(track) {\n\t\tthis._track = track;\n\t\tthis._snapshot = new AnimSnapshot(track);\n\t}\n\tget track() {\n\t\treturn this._track;\n\t}\n\tget snapshot() {\n\t\treturn this._snapshot;\n\t}\n\tset time(time) {\n\t\tthis._time = time;\n\t\tthis.alignCursorToCurrentTime();\n\t}\n\tget time() {\n\t\treturn this._time;\n\t}\n\tset speed(speed) {\n\t\tconst signChanged = Math.sign(speed) !== Math.sign(this._speed);\n\t\tthis._speed = speed;\n\t\tif (signChanged) {\n\t\t\tthis.alignCursorToCurrentTime();\n\t\t}\n\t}\n\tget speed() {\n\t\treturn this._speed;\n\t}\n\tset loop(loop) {\n\t\tthis._loop = loop;\n\t}\n\tget loop() {\n\t\treturn this._loop;\n\t}\n\tset blendWeight(blendWeight) {\n\t\tthis._blendWeight = blendWeight;\n\t}\n\tget blendWeight() {\n\t\treturn this._blendWeight;\n\t}\n\tset blendOrder(blendOrder) {\n\t\tthis._blendOrder = blendOrder;\n\t}\n\tget blendOrder() {\n\t\treturn this._blendOrder;\n\t}\n\tset eventCursor(value) {\n\t\tthis._eventCursor = value;\n\t}\n\tget eventCursor() {\n\t\treturn this._eventCursor;\n\t}\n\tget eventCursorEnd() {\n\t\treturn this.isReverse ? 0 : this._track.events.length - 1;\n\t}\n\tget nextEvent() {\n\t\treturn this._track.events[this._eventCursor];\n\t}\n\tget isReverse() {\n\t\treturn this._speed < 0;\n\t}\n\tnextEventAheadOfTime(time) {\n\t\tif (!this.nextEvent) return false;\n\t\treturn this.isReverse ? this.nextEvent.time <= time : this.nextEvent.time >= time;\n\t}\n\tnextEventBehindTime(time) {\n\t\tif (!this.nextEvent) return false;\n\t\tif (time === this.track.duration) {\n\t\t\treturn this.isReverse ? this.nextEvent.time >= time : this.nextEvent.time <= time;\n\t\t}\n\t\treturn this.isReverse ? this.nextEvent.time > time : this.nextEvent.time < time;\n\t}\n\tresetEventCursor() {\n\t\tthis._eventCursor = this.isReverse ? this._track.events.length - 1 : 0;\n\t}\n\tmoveEventCursor() {\n\t\tthis._eventCursor += this.isReverse ? -1 : 1;\n\t\tif (this._eventCursor >= this.track.events.length) {\n\t\t\tthis._eventCursor = 0;\n\t\t} else if (this._eventCursor < 0) {\n\t\t\tthis._eventCursor = this.track.events.length - 1;\n\t\t}\n\t}\n\tclipFrameTime(frameEndTime) {\n\t\tconst eventFrame = AnimClip.eventFrame;\n\t\teventFrame.start = 0;\n\t\teventFrame.end = frameEndTime;\n\t\teventFrame.residual = 0;\n\t\tif (this.isReverse) {\n\t\t\tif (frameEndTime < 0) {\n\t\t\t\teventFrame.start = this.track.duration;\n\t\t\t\teventFrame.end = 0;\n\t\t\t\teventFrame.residual = frameEndTime + this.track.duration;\n\t\t\t}\n\t\t} else {\n\t\t\tif (frameEndTime > this.track.duration) {\n\t\t\t\teventFrame.start = 0;\n\t\t\t\teventFrame.end = this.track.duration;\n\t\t\t\teventFrame.residual = frameEndTime - this.track.duration;\n\t\t\t}\n\t\t}\n\t}\n\talignCursorToCurrentTime() {\n\t\tthis.resetEventCursor();\n\t\twhile (this.nextEventBehindTime(this._time) && this._eventCursor !== this.eventCursorEnd) {\n\t\t\tthis.moveEventCursor();\n\t\t}\n\t}\n\tfireNextEvent() {\n\t\tthis._eventHandler.fire(this.nextEvent.name, _extends({\n\t\t\ttrack: this.track\n\t\t}, this.nextEvent));\n\t\tthis.moveEventCursor();\n\t}\n\tfireNextEventInFrame(frameStartTime, frameEndTime) {\n\t\tif (this.nextEventAheadOfTime(frameStartTime) && this.nextEventBehindTime(frameEndTime)) {\n\t\t\tthis.fireNextEvent();\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tactiveEventsForFrame(frameStartTime, frameEndTime) {\n\t\tconst eventFrame = AnimClip.eventFrame;\n\t\tthis.clipFrameTime(frameEndTime);\n\t\tconst initialCursor = this.eventCursor;\n\t\twhile (this.fireNextEventInFrame(frameStartTime, eventFrame.end)) {\n\t\t\tif (initialCursor === this.eventCursor) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (this.loop && Math.abs(eventFrame.residual) > 0) {\n\t\t\tthis.activeEventsForFrame(eventFrame.start, eventFrame.residual);\n\t\t}\n\t}\n\tprogressForTime(time) {\n\t\treturn time * this._speed / this._track.duration;\n\t}\n\t_update(deltaTime) {\n\t\tif (this._playing) {\n\t\t\tlet time = this._time;\n\t\t\tconst duration = this._track.duration;\n\t\t\tconst speed = this._speed;\n\t\t\tconst loop = this._loop;\n\t\t\tif (this._track.events.length > 0 && duration > 0) {\n\t\t\t\tthis.activeEventsForFrame(time, time + speed * deltaTime);\n\t\t\t}\n\t\t\ttime += speed * deltaTime;\n\t\t\tif (speed >= 0) {\n\t\t\t\tif (time > duration) {\n\t\t\t\t\tif (loop) {\n\t\t\t\t\t\ttime = time % duration || 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttime = this._track.duration;\n\t\t\t\t\t\tthis.pause();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (time < 0) {\n\t\t\t\t\tif (loop) {\n\t\t\t\t\t\ttime = duration + (time % duration || 0);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttime = 0;\n\t\t\t\t\t\tthis.pause();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._time = time;\n\t\t}\n\t\tif (this._time !== this._snapshot._time) {\n\t\t\tthis._track.eval(this._time, this._snapshot);\n\t\t}\n\t}\n\tplay() {\n\t\tthis._playing = true;\n\t\tthis._time = 0;\n\t}\n\tstop() {\n\t\tthis._playing = false;\n\t\tthis._time = 0;\n\t}\n\tpause() {\n\t\tthis._playing = false;\n\t}\n\tresume() {\n\t\tthis._playing = true;\n\t}\n\treset() {\n\t\tthis._time = 0;\n\t}\n}\nAnimClip.eventFrame = {\n\tstart: 0,\n\tend: 0,\n\tresidual: 0\n};\n\nconst ANIM_INTERRUPTION_NONE = 'NONE';\nconst ANIM_INTERRUPTION_PREV = 'PREV_STATE';\nconst ANIM_INTERRUPTION_NEXT = 'NEXT_STATE';\nconst ANIM_INTERRUPTION_PREV_NEXT = 'PREV_STATE_NEXT_STATE';\nconst ANIM_INTERRUPTION_NEXT_PREV = 'NEXT_STATE_PREV_STATE';\nconst ANIM_GREATER_THAN = 'GREATER_THAN';\nconst ANIM_LESS_THAN = 'LESS_THAN';\nconst ANIM_GREATER_THAN_EQUAL_TO = 'GREATER_THAN_EQUAL_TO';\nconst ANIM_LESS_THAN_EQUAL_TO = 'LESS_THAN_EQUAL_TO';\nconst ANIM_EQUAL_TO = 'EQUAL_TO';\nconst ANIM_NOT_EQUAL_TO = 'NOT_EQUAL_TO';\nconst ANIM_PARAMETER_INTEGER = 'INTEGER';\nconst ANIM_PARAMETER_FLOAT = 'FLOAT';\nconst ANIM_PARAMETER_BOOLEAN = 'BOOLEAN';\nconst ANIM_PARAMETER_TRIGGER = 'TRIGGER';\nconst ANIM_BLEND_1D = '1D';\nconst ANIM_BLEND_2D_DIRECTIONAL = '2D_DIRECTIONAL';\nconst ANIM_BLEND_2D_CARTESIAN = '2D_CARTESIAN';\nconst ANIM_BLEND_DIRECT = 'DIRECT';\nconst ANIM_STATE_START = 'START';\nconst ANIM_STATE_END = 'END';\nconst ANIM_STATE_ANY = 'ANY';\nconst ANIM_CONTROL_STATES = [ANIM_STATE_START, ANIM_STATE_END, ANIM_STATE_ANY];\nconst ANIM_LAYER_OVERWRITE = 'OVERWRITE';\nconst ANIM_LAYER_ADDITIVE = 'ADDITIVE';\n\nclass AnimBlend {\n\tstatic dot(a, b) {\n\t\tconst len = a.length;\n\t\tlet result = 0;\n\t\tfor (let i = 0; i < len; ++i) {\n\t\t\tresult += a[i] * b[i];\n\t\t}\n\t\treturn result;\n\t}\n\tstatic normalize(a) {\n\t\tlet l = AnimBlend.dot(a, a);\n\t\tif (l > 0) {\n\t\t\tl = 1.0 / Math.sqrt(l);\n\t\t\tconst len = a.length;\n\t\t\tfor (let i = 0; i < len; ++i) {\n\t\t\t\ta[i] *= l;\n\t\t\t}\n\t\t}\n\t}\n\tstatic set(a, b, type) {\n\t\tconst len = a.length;\n\t\tif (type === 'quaternion') {\n\t\t\tlet l = AnimBlend.dot(b, b);\n\t\t\tif (l > 0) {\n\t\t\t\tl = 1.0 / Math.sqrt(l);\n\t\t\t}\n\t\t\tfor (let i = 0; i < len; ++i) {\n\t\t\t\ta[i] = b[i] * l;\n\t\t\t}\n\t\t} else {\n\t\t\tfor (let i = 0; i < len; ++i) {\n\t\t\t\ta[i] = b[i];\n\t\t\t}\n\t\t}\n\t}\n\tstatic blendVec(a, b, t, additive) {\n\t\tconst it = additive ? 1.0 : 1.0 - t;\n\t\tconst len = a.length;\n\t\tfor (let i = 0; i < len; ++i) {\n\t\t\ta[i] = a[i] * it + b[i] * t;\n\t\t}\n\t}\n\tstatic blendQuat(a, b, t, additive) {\n\t\tconst len = a.length;\n\t\tconst it = additive ? 1.0 : 1.0 - t;\n\t\tif (AnimBlend.dot(a, b) < 0) {\n\t\t\tt = -t;\n\t\t}\n\t\tfor (let i = 0; i < len; ++i) {\n\t\t\ta[i] = a[i] * it + b[i] * t;\n\t\t}\n\t\tif (!additive) {\n\t\t\tAnimBlend.normalize(a);\n\t\t}\n\t}\n\tstatic blend(a, b, t, type, additive) {\n\t\tif (type === 'quaternion') {\n\t\t\tAnimBlend.blendQuat(a, b, t, additive);\n\t\t} else {\n\t\t\tAnimBlend.blendVec(a, b, t, additive);\n\t\t}\n\t}\n\tstatic stableSort(a, lessFunc) {\n\t\tconst len = a.length;\n\t\tfor (let i = 0; i < len - 1; ++i) {\n\t\t\tfor (let j = i + 1; j < len; ++j) {\n\t\t\t\tif (lessFunc(a[j], a[i])) {\n\t\t\t\t\tconst tmp = a[i];\n\t\t\t\t\ta[i] = a[j];\n\t\t\t\t\ta[j] = tmp;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nclass AnimTargetValue {\n\tconstructor(component, type) {\n\t\tthis._component = component;\n\t\tthis.mask = new Int8Array(component.layers.length);\n\t\tthis.weights = new Float32Array(component.layers.length);\n\t\tthis.totalWeight = 0;\n\t\tthis.counter = 0;\n\t\tthis.layerCounter = 0;\n\t\tthis.valueType = type;\n\t\tthis.dirty = true;\n\t\tthis.value = type === AnimTargetValue.TYPE_QUAT ? [0, 0, 0, 1] : [0, 0, 0];\n\t\tthis.baseValue = null;\n\t\tthis.setter = null;\n\t}\n\tget _normalizeWeights() {\n\t\treturn this._component.normalizeWeights;\n\t}\n\tgetWeight(index) {\n\t\tif (this.dirty) this.updateWeights();\n\t\tif (this._normalizeWeights && this.totalWeight === 0 || !this.mask[index]) {\n\t\t\treturn 0;\n\t\t} else if (this._normalizeWeights) {\n\t\t\treturn this.weights[index] / this.totalWeight;\n\t\t}\n\t\treturn math.clamp(this.weights[index], 0, 1);\n\t}\n\t_layerBlendType(index) {\n\t\treturn this._component.layers[index].blendType;\n\t}\n\tsetMask(index, value) {\n\t\tthis.mask[index] = value;\n\t\tif (this._normalizeWeights) {\n\t\t\tif (this._component.layers[index].blendType === ANIM_LAYER_OVERWRITE) {\n\t\t\t\tthis.mask = this.mask.fill(0, 0, index);\n\t\t\t}\n\t\t\tthis.dirty = true;\n\t\t}\n\t}\n\tupdateWeights() {\n\t\tthis.totalWeight = 0;\n\t\tfor (let i = 0; i < this.weights.length; i++) {\n\t\t\tthis.weights[i] = this._component.layers[i].weight;\n\t\t\tthis.totalWeight += this.mask[i] * this.weights[i];\n\t\t}\n\t\tthis.dirty = false;\n\t}\n\tupdateValue(index, value) {\n\t\tif (this.counter === 0) {\n\t\t\tAnimBlend.set(this.value, AnimTargetValue.IDENTITY_QUAT_ARR, this.valueType);\n\t\t\tif (!this._normalizeWeights) {\n\t\t\t\tAnimBlend.blend(this.value, this.baseValue, 1, this.valueType);\n\t\t\t}\n\t\t}\n\t\tif (!this.mask[index] || this.getWeight(index) === 0) return;\n\t\tif (this._layerBlendType(index) === ANIM_LAYER_ADDITIVE && !this._normalizeWeights) {\n\t\t\tif (this.valueType === AnimTargetValue.TYPE_QUAT) {\n\t\t\t\tconst v = AnimTargetValue.q1.set(this.value[0], this.value[1], this.value[2], this.value[3]);\n\t\t\t\tconst aV1 = AnimTargetValue.q2.set(this.baseValue[0], this.baseValue[1], this.baseValue[2], this.baseValue[3]);\n\t\t\t\tconst aV2 = AnimTargetValue.q3.set(value[0], value[1], value[2], value[3]);\n\t\t\t\tconst aV = aV1.invert().mul(aV2);\n\t\t\t\taV.slerp(Quat.IDENTITY, aV, this.getWeight(index));\n\t\t\t\tv.mul(aV);\n\t\t\t\tAnimTargetValue.quatArr[0] = v.x;\n\t\t\t\tAnimTargetValue.quatArr[1] = v.y;\n\t\t\t\tAnimTargetValue.quatArr[2] = v.z;\n\t\t\t\tAnimTargetValue.quatArr[3] = v.w;\n\t\t\t\tAnimBlend.set(this.value, AnimTargetValue.quatArr, this.valueType);\n\t\t\t} else {\n\t\t\t\tAnimTargetValue.vecArr[0] = value[0] - this.baseValue[0];\n\t\t\t\tAnimTargetValue.vecArr[1] = value[1] - this.baseValue[1];\n\t\t\t\tAnimTargetValue.vecArr[2] = value[2] - this.baseValue[2];\n\t\t\t\tAnimBlend.blend(this.value, AnimTargetValue.vecArr, this.getWeight(index), this.valueType, true);\n\t\t\t}\n\t\t} else {\n\t\t\tAnimBlend.blend(this.value, value, this.getWeight(index), this.valueType);\n\t\t}\n\t\tif (this.setter) this.setter(this.value);\n\t}\n\tunbind() {\n\t\tif (this.setter) {\n\t\t\tthis.setter(this.baseValue);\n\t\t}\n\t}\n}\nAnimTargetValue.TYPE_QUAT = 'quaternion';\nAnimTargetValue.TYPE_VEC3 = 'vector3';\nAnimTargetValue.q1 = new Quat();\nAnimTargetValue.q2 = new Quat();\nAnimTargetValue.q3 = new Quat();\nAnimTargetValue.quatArr = [0, 0, 0, 1];\nAnimTargetValue.vecArr = [0, 0, 0];\nAnimTargetValue.IDENTITY_QUAT_ARR = [0, 0, 0, 1];\n\nclass AnimEvaluator {\n\tconstructor(binder) {\n\t\tthis._binder = binder;\n\t\tthis._clips = [];\n\t\tthis._inputs = [];\n\t\tthis._outputs = [];\n\t\tthis._targets = {};\n\t}\n\tget clips() {\n\t\treturn this._clips;\n\t}\n\taddClip(clip) {\n\t\tconst targets = this._targets;\n\t\tconst binder = this._binder;\n\t\tconst curves = clip.track.curves;\n\t\tconst snapshot = clip.snapshot;\n\t\tconst inputs = [];\n\t\tconst outputs = [];\n\t\tfor (let i = 0; i < curves.length; ++i) {\n\t\t\tconst curve = curves[i];\n\t\t\tconst paths = curve.paths;\n\t\t\tfor (let j = 0; j < paths.length; ++j) {\n\t\t\t\tconst path = paths[j];\n\t\t\t\tconst resolved = binder.resolve(path);\n\t\t\t\tlet target = targets[resolved && resolved.targetPath || null];\n\t\t\t\tif (!target && resolved) {\n\t\t\t\t\ttarget = {\n\t\t\t\t\t\ttarget: resolved,\n\t\t\t\t\t\tvalue: [],\n\t\t\t\t\t\tcurves: 0,\n\t\t\t\t\t\tblendCounter: 0\n\t\t\t\t\t};\n\t\t\t\t\tfor (let k = 0; k < target.target.components; ++k) {\n\t\t\t\t\t\ttarget.value.push(0);\n\t\t\t\t\t}\n\t\t\t\t\ttargets[resolved.targetPath] = target;\n\t\t\t\t\tif (binder.animComponent) {\n\t\t\t\t\t\tif (!binder.animComponent.targets[resolved.targetPath]) {\n\t\t\t\t\t\t\tlet type;\n\t\t\t\t\t\t\tif (resolved.targetPath.substring(resolved.targetPath.length - 13) === 'localRotation') {\n\t\t\t\t\t\t\t\ttype = AnimTargetValue.TYPE_QUAT;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttype = AnimTargetValue.TYPE_VEC3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbinder.animComponent.targets[resolved.targetPath] = new AnimTargetValue(binder.animComponent, type);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbinder.animComponent.targets[resolved.targetPath].layerCounter++;\n\t\t\t\t\t\tbinder.animComponent.targets[resolved.targetPath].setMask(binder.layerIndex, 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (target) {\n\t\t\t\t\ttarget.curves++;\n\t\t\t\t\tinputs.push(snapshot._results[i]);\n\t\t\t\t\toutputs.push(target);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._clips.push(clip);\n\t\tthis._inputs.push(inputs);\n\t\tthis._outputs.push(outputs);\n\t}\n\tremoveClip(index) {\n\t\tconst targets = this._targets;\n\t\tconst binder = this._binder;\n\t\tconst clips = this._clips;\n\t\tconst clip = clips[index];\n\t\tconst curves = clip.track.curves;\n\t\tfor (let i = 0; i < curves.length; ++i) {\n\t\t\tconst curve = curves[i];\n\t\t\tconst paths = curve.paths;\n\t\t\tfor (let j = 0; j < paths.length; ++j) {\n\t\t\t\tconst path = paths[j];\n\t\t\t\tconst target = this._binder.resolve(path);\n\t\t\t\tif (target) {\n\t\t\t\t\ttarget.curves--;\n\t\t\t\t\tif (target.curves === 0) {\n\t\t\t\t\t\tbinder.unresolve(path);\n\t\t\t\t\t\tdelete targets[target.targetPath];\n\t\t\t\t\t\tif (binder.animComponent) {\n\t\t\t\t\t\t\tbinder.animComponent.targets[target.targetPath].layerCounter--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tclips.splice(index, 1);\n\t\tthis._inputs.splice(index, 1);\n\t\tthis._outputs.splice(index, 1);\n\t}\n\tremoveClips() {\n\t\twhile (this._clips.length > 0) {\n\t\t\tthis.removeClip(0);\n\t\t}\n\t}\n\tupdateClipTrack(name, animTrack) {\n\t\tthis._clips.forEach(clip => {\n\t\t\tif (clip.name.includes(name)) {\n\t\t\t\tclip.track = animTrack;\n\t\t\t}\n\t\t});\n\t\tthis.rebind();\n\t}\n\tfindClip(name) {\n\t\tconst clips = this._clips;\n\t\tfor (let i = 0; i < clips.length; ++i) {\n\t\t\tconst clip = clips[i];\n\t\t\tif (clip.name === name) {\n\t\t\t\treturn clip;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\trebind() {\n\t\tthis._binder.rebind();\n\t\tthis._targets = {};\n\t\tconst clips = [...this.clips];\n\t\tthis.removeClips();\n\t\tclips.forEach(clip => {\n\t\t\tthis.addClip(clip);\n\t\t});\n\t}\n\tassignMask(mask) {\n\t\treturn this._binder.assignMask(mask);\n\t}\n\tupdate(deltaTime, outputAnimation = true) {\n\t\tconst clips = this._clips;\n\t\tconst order = clips.map((c, i) => {\n\t\t\treturn i;\n\t\t});\n\t\tAnimBlend.stableSort(order, (a, b) => {\n\t\t\treturn clips[a].blendOrder < clips[b].blendOrder;\n\t\t});\n\t\tfor (let i = 0; i < order.length; ++i) {\n\t\t\tconst index = order[i];\n\t\t\tconst clip = clips[index];\n\t\t\tconst inputs = this._inputs[index];\n\t\t\tconst outputs = this._outputs[index];\n\t\t\tconst blendWeight = clip.blendWeight;\n\t\t\tif (blendWeight > 0.0) {\n\t\t\t\tclip._update(deltaTime);\n\t\t\t}\n\t\t\tif (!outputAnimation) break;\n\t\t\tlet input;\n\t\t\tlet output;\n\t\t\tlet value;\n\t\t\tif (blendWeight >= 1.0) {\n\t\t\t\tfor (let j = 0; j < inputs.length; ++j) {\n\t\t\t\t\tinput = inputs[j];\n\t\t\t\t\toutput = outputs[j];\n\t\t\t\t\tvalue = output.value;\n\t\t\t\t\tAnimBlend.set(value, input, output.target.type);\n\t\t\t\t\toutput.blendCounter++;\n\t\t\t\t}\n\t\t\t} else if (blendWeight > 0.0) {\n\t\t\t\tfor (let j = 0; j < inputs.length; ++j) {\n\t\t\t\t\tinput = inputs[j];\n\t\t\t\t\toutput = outputs[j];\n\t\t\t\t\tvalue = output.value;\n\t\t\t\t\tif (output.blendCounter === 0) {\n\t\t\t\t\t\tAnimBlend.set(value, input, output.target.type);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tAnimBlend.blend(value, input, blendWeight, output.target.type);\n\t\t\t\t\t}\n\t\t\t\t\toutput.blendCounter++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst targets = this._targets;\n\t\tconst binder = this._binder;\n\t\tfor (const path in targets) {\n\t\t\tif (targets.hasOwnProperty(path)) {\n\t\t\t\tconst target = targets[path];\n\t\t\t\tif (binder.animComponent && target.target.isTransform) {\n\t\t\t\t\tconst animTarget = binder.animComponent.targets[path];\n\t\t\t\t\tif (animTarget.counter === animTarget.layerCounter) {\n\t\t\t\t\t\tanimTarget.counter = 0;\n\t\t\t\t\t}\n\t\t\t\t\tif (!animTarget.path) {\n\t\t\t\t\t\tanimTarget.path = path;\n\t\t\t\t\t\tanimTarget.baseValue = target.target.get();\n\t\t\t\t\t\tanimTarget.setter = target.target.set;\n\t\t\t\t\t}\n\t\t\t\t\tanimTarget.updateValue(binder.layerIndex, target.value);\n\t\t\t\t\tanimTarget.counter++;\n\t\t\t\t} else {\n\t\t\t\t\ttarget.target.set(target.value);\n\t\t\t\t}\n\t\t\t\ttarget.blendCounter = 0;\n\t\t\t}\n\t\t}\n\t\tthis._binder.update(deltaTime);\n\t}\n}\n\nclass AnimEvents {\n\tconstructor(events) {\n\t\tthis._events = [...events];\n\t\tthis._events.sort((a, b) => a.time - b.time);\n\t}\n\tget events() {\n\t\treturn this._events;\n\t}\n}\n\nvar _AnimTrack;\nclass AnimTrack {\n\tconstructor(name, duration, inputs, outputs, curves, animEvents = new AnimEvents([])) {\n\t\tthis._name = name;\n\t\tthis._duration = duration;\n\t\tthis._inputs = inputs;\n\t\tthis._outputs = outputs;\n\t\tthis._curves = curves;\n\t\tthis._animEvents = animEvents;\n\t}\n\tget name() {\n\t\treturn this._name;\n\t}\n\tget duration() {\n\t\treturn this._duration;\n\t}\n\tget inputs() {\n\t\treturn this._inputs;\n\t}\n\tget outputs() {\n\t\treturn this._outputs;\n\t}\n\tget curves() {\n\t\treturn this._curves;\n\t}\n\tset events(animEvents) {\n\t\tthis._animEvents = animEvents;\n\t}\n\tget events() {\n\t\treturn this._animEvents.events;\n\t}\n\teval(time, snapshot) {\n\t\tsnapshot._time = time;\n\t\tconst inputs = this._inputs;\n\t\tconst outputs = this._outputs;\n\t\tconst curves = this._curves;\n\t\tconst cache = snapshot._cache;\n\t\tconst results = snapshot._results;\n\t\tfor (let i = 0; i < inputs.length; ++i) {\n\t\t\tcache[i].update(time, inputs[i]._data);\n\t\t}\n\t\tfor (let i = 0; i < curves.length; ++i) {\n\t\t\tconst curve = curves[i];\n\t\t\tconst output = outputs[curve._output];\n\t\t\tconst result = results[i];\n\t\t\tcache[curve._input].eval(result, curve._interpolation, output);\n\t\t}\n\t}\n}\n_AnimTrack = AnimTrack;\nAnimTrack.EMPTY = Object.freeze(new _AnimTrack('empty', Number.MAX_VALUE, [], [], []));\n\nclass AnimBinder {\n\tstatic joinPath(pathSegments, character) {\n\t\tcharacter = character || '.';\n\t\tconst escape = function escape(string) {\n\t\t\treturn string.replace(/\\\\/g, '\\\\\\\\').replace(new RegExp(`\\\\${character}`, 'g'), `\\\\${character}`);\n\t\t};\n\t\treturn pathSegments.map(escape).join(character);\n\t}\n\tstatic splitPath(path, character) {\n\t\tcharacter = character || '.';\n\t\tconst result = [];\n\t\tlet curr = '';\n\t\tlet i = 0;\n\t\twhile (i < path.length) {\n\t\t\tlet c = path[i++];\n\t\t\tif (c === '\\\\' && i < path.length) {\n\t\t\t\tc = path[i++];\n\t\t\t\tif (c === '\\\\' || c === character) {\n\t\t\t\t\tcurr += c;\n\t\t\t\t} else {\n\t\t\t\t\tcurr += `\\\\${c}`;\n\t\t\t\t}\n\t\t\t} else if (c === character) {\n\t\t\t\tresult.push(curr);\n\t\t\t\tcurr = '';\n\t\t\t} else {\n\t\t\t\tcurr += c;\n\t\t\t}\n\t\t}\n\t\tif (curr.length > 0) {\n\t\t\tresult.push(curr);\n\t\t}\n\t\treturn result;\n\t}\n\tstatic encode(entityPath, component, propertyPath) {\n\t\treturn `${Array.isArray(entityPath) ? entityPath.join('/') : entityPath}/${component}/${Array.isArray(propertyPath) ? propertyPath.join('/') : propertyPath}`;\n\t}\n\tresolve(path) {\n\t\treturn null;\n\t}\n\tunresolve(path) {}\n\tupdate(deltaTime) {}\n}\n\nclass AnimTarget {\n\tconstructor(func, type, components, targetPath) {\n\t\tif (func.set) {\n\t\t\tthis._set = func.set;\n\t\t\tthis._get = func.get;\n\t\t} else {\n\t\t\tthis._set = func;\n\t\t}\n\t\tthis._type = type;\n\t\tthis._components = components;\n\t\tthis._targetPath = targetPath;\n\t\tthis._isTransform = this._targetPath.substring(this._targetPath.length - 13) === 'localRotation' || this._targetPath.substring(this._targetPath.length - 13) === 'localPosition' || this._targetPath.substring(this._targetPath.length - 10) === 'localScale';\n\t}\n\tget set() {\n\t\treturn this._set;\n\t}\n\tget get() {\n\t\treturn this._get;\n\t}\n\tget type() {\n\t\treturn this._type;\n\t}\n\tget components() {\n\t\treturn this._components;\n\t}\n\tget targetPath() {\n\t\treturn this._targetPath;\n\t}\n\tget isTransform() {\n\t\treturn this._isTransform;\n\t}\n}\n\nclass DefaultAnimBinder {\n\tconstructor(graph) {\n\t\tthis._isPathInMask = (path, checkMaskValue) => {\n\t\t\tconst maskItem = this._mask[path];\n\t\t\tif (!maskItem) return false;else if (maskItem.children || checkMaskValue && maskItem.value !== false) return true;\n\t\t\treturn false;\n\t\t};\n\t\tthis.graph = graph;\n\t\tif (!graph) return;\n\t\tthis._mask = null;\n\t\tconst nodes = {};\n\t\tconst flatten = function flatten(node) {\n\t\t\tnodes[node.name] = node;\n\t\t\tfor (let i = 0; i < node.children.length; ++i) {\n\t\t\t\tflatten(node.children[i]);\n\t\t\t}\n\t\t};\n\t\tflatten(graph);\n\t\tthis.nodes = nodes;\n\t\tthis.targetCache = {};\n\t\tconst findMeshInstances = function findMeshInstances(node) {\n\t\t\tlet object = node;\n\t\t\twhile (object && !(object instanceof Entity)) {\n\t\t\t\tobject = object.parent;\n\t\t\t}\n\t\t\tlet meshInstances;\n\t\t\tif (object) {\n\t\t\t\tif (object.render) {\n\t\t\t\t\tmeshInstances = object.render.meshInstances;\n\t\t\t\t} else if (object.model) {\n\t\t\t\t\tmeshInstances = object.model.meshInstances;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn meshInstances;\n\t\t};\n\t\tthis.nodeCounts = {};\n\t\tthis.activeNodes = [];\n\t\tthis.handlers = {\n\t\t\t'localPosition': function (node) {\n\t\t\t\tconst object = node.localPosition;\n\t\t\t\tconst func = function func(value) {\n\t\t\t\t\tobject.set(...value);\n\t\t\t\t};\n\t\t\t\treturn DefaultAnimBinder.createAnimTarget(func, 'vector', 3, node, 'localPosition');\n\t\t\t},\n\t\t\t'localRotation': function (node) {\n\t\t\t\tconst object = node.localRotation;\n\t\t\t\tconst func = function func(value) {\n\t\t\t\t\tobject.set(...value);\n\t\t\t\t};\n\t\t\t\treturn DefaultAnimBinder.createAnimTarget(func, 'quaternion', 4, node, 'localRotation');\n\t\t\t},\n\t\t\t'localScale': function (node) {\n\t\t\t\tconst object = node.localScale;\n\t\t\t\tconst func = function func(value) {\n\t\t\t\t\tobject.set(...value);\n\t\t\t\t};\n\t\t\t\treturn DefaultAnimBinder.createAnimTarget(func, 'vector', 3, node, 'localScale');\n\t\t\t},\n\t\t\t'weight': function (node, weightName) {\n\t\t\t\tif (weightName.indexOf('name.') === 0) {\n\t\t\t\t\tweightName = weightName.replace('name.', '');\n\t\t\t\t} else {\n\t\t\t\t\tweightName = Number(weightName);\n\t\t\t\t}\n\t\t\t\tconst meshInstances = findMeshInstances(node);\n\t\t\t\tlet setters;\n\t\t\t\tif (meshInstances) {\n\t\t\t\t\tfor (let i = 0; i < meshInstances.length; ++i) {\n\t\t\t\t\t\tif (meshInstances[i].node.name === node.name && meshInstances[i].morphInstance) {\n\t\t\t\t\t\t\tconst morphInstance = meshInstances[i].morphInstance;\n\t\t\t\t\t\t\tconst func = value => {\n\t\t\t\t\t\t\t\tmorphInstance.setWeight(weightName, value[0]);\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tif (!setters) setters = [];\n\t\t\t\t\t\t\tsetters.push(func);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (setters) {\n\t\t\t\t\tconst callSetters = value => {\n\t\t\t\t\t\tfor (let i = 0; i < setters.length; ++i) {\n\t\t\t\t\t\t\tsetters[i](value);\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\treturn DefaultAnimBinder.createAnimTarget(callSetters, 'number', 1, node, `weight.${weightName}`);\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t},\n\t\t\t'materialTexture': (node, textureName) => {\n\t\t\t\tconst meshInstances = findMeshInstances(node);\n\t\t\t\tif (meshInstances) {\n\t\t\t\t\tlet meshInstance;\n\t\t\t\t\tfor (let i = 0; i < meshInstances.length; ++i) {\n\t\t\t\t\t\tif (meshInstances[i].node.name === node.name) {\n\t\t\t\t\t\t\tmeshInstance = meshInstances[i];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (meshInstance) {\n\t\t\t\t\t\tconst func = value => {\n\t\t\t\t\t\t\tconst textureAsset = this.animComponent.system.app.assets.get(value[0]);\n\t\t\t\t\t\t\tif (textureAsset && textureAsset.resource && textureAsset.type === 'texture') {\n\t\t\t\t\t\t\t\tmeshInstance.material[textureName] = textureAsset.resource;\n\t\t\t\t\t\t\t\tmeshInstance.material.update();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t\treturn DefaultAnimBinder.createAnimTarget(func, 'vector', 1, node, 'materialTexture', 'material');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t}\n\t\t};\n\t}\n\t_isPathActive(path) {\n\t\tif (!this._mask) return true;\n\t\tconst rootNodeNames = [path.entityPath[0], this.graph.name];\n\t\tfor (let j = 0; j < rootNodeNames.length; ++j) {\n\t\t\tlet currEntityPath = rootNodeNames[j];\n\t\t\tif (this._isPathInMask(currEntityPath, path.entityPath.length === 1)) return true;\n\t\t\tfor (let i = 1; i < path.entityPath.length; i++) {\n\t\t\t\tcurrEntityPath += `/${path.entityPath[i]}`;\n\t\t\t\tif (this._isPathInMask(currEntityPath, i === path.entityPath.length - 1)) return true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\tfindNode(path) {\n\t\tif (!this._isPathActive(path)) {\n\t\t\treturn null;\n\t\t}\n\t\tlet node;\n\t\tif (this.graph) {\n\t\t\tnode = this.graph.findByPath(path.entityPath);\n\t\t\tif (!node) {\n\t\t\t\tnode = this.graph.findByPath(path.entityPath.slice(1));\n\t\t\t}\n\t\t}\n\t\tif (!node) {\n\t\t\tnode = this.nodes[path.entityPath[path.entityPath.length - 1] || ''];\n\t\t}\n\t\treturn node;\n\t}\n\tstatic createAnimTarget(func, type, valueCount, node, propertyPath, componentType) {\n\t\tconst targetPath = AnimBinder.encode(node.path, componentType ? componentType : 'entity', propertyPath);\n\t\treturn new AnimTarget(func, type, valueCount, targetPath);\n\t}\n\tresolve(path) {\n\t\tconst encodedPath = AnimBinder.encode(path.entityPath, path.component, path.propertyPath);\n\t\tlet target = this.targetCache[encodedPath];\n\t\tif (target) return target;\n\t\tconst node = this.findNode(path);\n\t\tif (!node) {\n\t\t\treturn null;\n\t\t}\n\t\tconst handler = this.handlers[path.propertyPath];\n\t\tif (!handler) {\n\t\t\treturn null;\n\t\t}\n\t\ttarget = handler(node);\n\t\tif (!target) {\n\t\t\treturn null;\n\t\t}\n\t\tthis.targetCache[encodedPath] = target;\n\t\tif (!this.nodeCounts[node.path]) {\n\t\t\tthis.activeNodes.push(node);\n\t\t\tthis.nodeCounts[node.path] = 1;\n\t\t} else {\n\t\t\tthis.nodeCounts[node.path]++;\n\t\t}\n\t\treturn target;\n\t}\n\tunresolve(path) {\n\t\tif (path.component !== 'graph') {\n\t\t\treturn;\n\t\t}\n\t\tconst node = this.nodes[path.entityPath[path.entityPath.length - 1] || ''];\n\t\tthis.nodeCounts[node.path]--;\n\t\tif (this.nodeCounts[node.path] === 0) {\n\t\t\tconst activeNodes = this.activeNodes;\n\t\t\tconst i = activeNodes.indexOf(node.node);\n\t\t\tconst len = activeNodes.length;\n\t\t\tif (i < len - 1) {\n\t\t\t\tactiveNodes[i] = activeNodes[len - 1];\n\t\t\t}\n\t\t\tactiveNodes.pop();\n\t\t}\n\t}\n\tupdate(deltaTime) {\n\t\tconst activeNodes = this.activeNodes;\n\t\tfor (let i = 0; i < activeNodes.length; ++i) {\n\t\t\tactiveNodes[i]._dirtifyLocal();\n\t\t}\n\t}\n\tassignMask(mask) {\n\t\tif (mask !== this._mask) {\n\t\t\tthis._mask = mask;\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n}\n\nclass AnimationComponent extends Component {\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis._animations = {};\n\t\tthis._assets = [];\n\t\tthis._loop = true;\n\t\tthis.animEvaluator = null;\n\t\tthis.model = null;\n\t\tthis.skeleton = null;\n\t\tthis.fromSkel = null;\n\t\tthis.toSkel = null;\n\t\tthis.animationsIndex = {};\n\t\tthis.prevAnim = null;\n\t\tthis.currAnim = null;\n\t\tthis.blend = 0;\n\t\tthis.blending = false;\n\t\tthis.blendSpeed = 0;\n\t\tthis.activate = true;\n\t\tthis.speed = 1;\n\t}\n\tset animations(value) {\n\t\tthis._animations = value;\n\t\tthis.onSetAnimations();\n\t}\n\tget animations() {\n\t\treturn this._animations;\n\t}\n\tset assets(value) {\n\t\tconst assets = this._assets;\n\t\tif (assets && assets.length) {\n\t\t\tfor (let i = 0; i < assets.length; i++) {\n\t\t\t\tif (assets[i]) {\n\t\t\t\t\tconst asset = this.system.app.assets.get(assets[i]);\n\t\t\t\t\tif (asset) {\n\t\t\t\t\t\tasset.off('change', this.onAssetChanged, this);\n\t\t\t\t\t\tasset.off('remove', this.onAssetRemoved, this);\n\t\t\t\t\t\tconst animName = this.animationsIndex[asset.id];\n\t\t\t\t\t\tif (this.currAnim === animName) {\n\t\t\t\t\t\t\tthis._stopCurrentAnimation();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdelete this.animations[animName];\n\t\t\t\t\t\tdelete this.animationsIndex[asset.id];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._assets = value;\n\t\tconst assetIds = value.map(value => {\n\t\t\treturn value instanceof Asset ? value.id : value;\n\t\t});\n\t\tthis.loadAnimationAssets(assetIds);\n\t}\n\tget assets() {\n\t\treturn this._assets;\n\t}\n\tset currentTime(currentTime) {\n\t\tif (this.skeleton) {\n\t\t\tthis.skeleton.currentTime = currentTime;\n\t\t\tthis.skeleton.addTime(0);\n\t\t\tthis.skeleton.updateGraph();\n\t\t}\n\t\tif (this.animEvaluator) {\n\t\t\tconst clips = this.animEvaluator.clips;\n\t\t\tfor (let i = 0; i < clips.length; ++i) {\n\t\t\t\tclips[i].time = currentTime;\n\t\t\t}\n\t\t}\n\t}\n\tget currentTime() {\n\t\tif (this.skeleton) {\n\t\t\treturn this.skeleton._time;\n\t\t}\n\t\tif (this.animEvaluator) {\n\t\t\tconst clips = this.animEvaluator.clips;\n\t\t\tif (clips.length > 0) {\n\t\t\t\treturn clips[clips.length - 1].time;\n\t\t\t}\n\t\t}\n\t\treturn 0;\n\t}\n\tget duration() {\n\t\tif (this.currAnim) {\n\t\t\treturn this.animations[this.currAnim].duration;\n\t\t}\n\t\treturn 0;\n\t}\n\tset loop(value) {\n\t\tthis._loop = value;\n\t\tif (this.skeleton) {\n\t\t\tthis.skeleton.looping = value;\n\t\t}\n\t\tif (this.animEvaluator) {\n\t\t\tfor (let i = 0; i < this.animEvaluator.clips.length; ++i) {\n\t\t\t\tthis.animEvaluator.clips[i].loop = value;\n\t\t\t}\n\t\t}\n\t}\n\tget loop() {\n\t\treturn this._loop;\n\t}\n\tplay(name, blendTime = 0) {\n\t\tif (!this.enabled || !this.entity.enabled) {\n\t\t\treturn;\n\t\t}\n\t\tif (!this.animations[name]) {\n\t\t\treturn;\n\t\t}\n\t\tthis.prevAnim = this.currAnim;\n\t\tthis.currAnim = name;\n\t\tif (this.model) {\n\t\t\tif (!this.skeleton && !this.animEvaluator) {\n\t\t\t\tthis._createAnimationController();\n\t\t\t}\n\t\t\tconst prevAnim = this.animations[this.prevAnim];\n\t\t\tconst currAnim = this.animations[this.currAnim];\n\t\t\tthis.blending = blendTime > 0 && !!this.prevAnim;\n\t\t\tif (this.blending) {\n\t\t\t\tthis.blend = 0;\n\t\t\t\tthis.blendSpeed = 1 / blendTime;\n\t\t\t}\n\t\t\tif (this.skeleton) {\n\t\t\t\tif (this.blending) {\n\t\t\t\t\tthis.fromSkel.animation = prevAnim;\n\t\t\t\t\tthis.fromSkel.addTime(this.skeleton._time);\n\t\t\t\t\tthis.toSkel.animation = currAnim;\n\t\t\t\t} else {\n\t\t\t\t\tthis.skeleton.animation = currAnim;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.animEvaluator) {\n\t\t\t\tconst animEvaluator = this.animEvaluator;\n\t\t\t\tif (this.blending) {\n\t\t\t\t\twhile (animEvaluator.clips.length > 1) {\n\t\t\t\t\t\tanimEvaluator.removeClip(0);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.animEvaluator.removeClips();\n\t\t\t\t}\n\t\t\t\tconst clip = new AnimClip(this.animations[this.currAnim], 0, 1.0, true, this.loop);\n\t\t\t\tclip.name = this.currAnim;\n\t\t\t\tclip.blendWeight = this.blending ? 0 : 1;\n\t\t\t\tclip.reset();\n\t\t\t\tthis.animEvaluator.addClip(clip);\n\t\t\t}\n\t\t}\n\t\tthis.playing = true;\n\t}\n\tgetAnimation(name) {\n\t\treturn this.animations[name];\n\t}\n\tsetModel(model) {\n\t\tif (model !== this.model) {\n\t\t\tthis._resetAnimationController();\n\t\t\tthis.model = model;\n\t\t\tif (this.animations && this.currAnim && this.animations[this.currAnim]) {\n\t\t\t\tthis.play(this.currAnim);\n\t\t\t}\n\t\t}\n\t}\n\tonSetAnimations() {\n\t\tconst modelComponent = this.entity.model;\n\t\tif (modelComponent) {\n\t\t\tconst m = modelComponent.model;\n\t\t\tif (m && m !== this.model) {\n\t\t\t\tthis.setModel(m);\n\t\t\t}\n\t\t}\n\t\tif (!this.currAnim && this.activate && this.enabled && this.entity.enabled) {\n\t\t\tconst animationNames = Object.keys(this._animations);\n\t\t\tif (animationNames.length > 0) {\n\t\t\t\tthis.play(animationNames[0]);\n\t\t\t}\n\t\t}\n\t}\n\t_resetAnimationController() {\n\t\tthis.skeleton = null;\n\t\tthis.fromSkel = null;\n\t\tthis.toSkel = null;\n\t\tthis.animEvaluator = null;\n\t}\n\t_createAnimationController() {\n\t\tconst model = this.model;\n\t\tconst animations = this.animations;\n\t\tlet hasJson = false;\n\t\tlet hasGlb = false;\n\t\tfor (const animation in animations) {\n\t\t\tif (animations.hasOwnProperty(animation)) {\n\t\t\t\tconst anim = animations[animation];\n\t\t\t\tif (anim.constructor === AnimTrack) {\n\t\t\t\t\thasGlb = true;\n\t\t\t\t} else {\n\t\t\t\t\thasJson = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst graph = model.getGraph();\n\t\tif (hasJson) {\n\t\t\tthis.fromSkel = new Skeleton(graph);\n\t\t\tthis.toSkel = new Skeleton(graph);\n\t\t\tthis.skeleton = new Skeleton(graph);\n\t\t\tthis.skeleton.looping = this.loop;\n\t\t\tthis.skeleton.setGraph(graph);\n\t\t} else if (hasGlb) {\n\t\t\tthis.animEvaluator = new AnimEvaluator(new DefaultAnimBinder(this.entity));\n\t\t}\n\t}\n\tloadAnimationAssets(ids) {\n\t\tif (!ids || !ids.length) {\n\t\t\treturn;\n\t\t}\n\t\tconst assets = this.system.app.assets;\n\t\tconst onAssetReady = asset => {\n\t\t\tif (asset.resources.length > 1) {\n\t\t\t\tfor (let i = 0; i < asset.resources.length; i++) {\n\t\t\t\t\tthis.animations[asset.resources[i].name] = asset.resources[i];\n\t\t\t\t\tthis.animationsIndex[asset.id] = asset.resources[i].name;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.animations[asset.name] = asset.resource;\n\t\t\t\tthis.animationsIndex[asset.id] = asset.name;\n\t\t\t}\n\t\t\tthis.animations = this.animations;\n\t\t};\n\t\tconst onAssetAdd = asset => {\n\t\t\tasset.off('change', this.onAssetChanged, this);\n\t\t\tasset.on('change', this.onAssetChanged, this);\n\t\t\tasset.off('remove', this.onAssetRemoved, this);\n\t\t\tasset.on('remove', this.onAssetRemoved, this);\n\t\t\tif (asset.resource) {\n\t\t\t\tonAssetReady(asset);\n\t\t\t} else {\n\t\t\t\tasset.once('load', onAssetReady, this);\n\t\t\t\tif (this.enabled && this.entity.enabled) {\n\t\t\t\t\tassets.load(asset);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tfor (let i = 0, l = ids.length; i < l; i++) {\n\t\t\tconst asset = assets.get(ids[i]);\n\t\t\tif (asset) {\n\t\t\t\tonAssetAdd(asset);\n\t\t\t} else {\n\t\t\t\tassets.on(`add:${ids[i]}`, onAssetAdd);\n\t\t\t}\n\t\t}\n\t}\n\tonAssetChanged(asset, attribute, newValue, oldValue) {\n\t\tif (attribute === 'resource' || attribute === 'resources') {\n\t\t\tif (attribute === 'resources' && newValue && newValue.length === 0) {\n\t\t\t\tnewValue = null;\n\t\t\t}\n\t\t\tif (newValue) {\n\t\t\t\tlet restarted = false;\n\t\t\t\tif (newValue.length > 1) {\n\t\t\t\t\tif (oldValue && oldValue.length > 1) {\n\t\t\t\t\t\tfor (let i = 0; i < oldValue.length; i++) {\n\t\t\t\t\t\t\tdelete this.animations[oldValue[i].name];\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete this.animations[asset.name];\n\t\t\t\t\t}\n\t\t\t\t\trestarted = false;\n\t\t\t\t\tfor (let i = 0; i < newValue.length; i++) {\n\t\t\t\t\t\tthis.animations[newValue[i].name] = newValue[i];\n\t\t\t\t\t\tif (!restarted && this.currAnim === newValue[i].name) {\n\t\t\t\t\t\t\tif (this.playing && this.enabled && this.entity.enabled) {\n\t\t\t\t\t\t\t\trestarted = true;\n\t\t\t\t\t\t\t\tthis.play(newValue[i].name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!restarted) {\n\t\t\t\t\t\tthis._stopCurrentAnimation();\n\t\t\t\t\t\tthis.onSetAnimations();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (oldValue && oldValue.length > 1) {\n\t\t\t\t\t\tfor (let i = 0; i < oldValue.length; i++) {\n\t\t\t\t\t\t\tdelete this.animations[oldValue[i].name];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tthis.animations[asset.name] = newValue[0] || newValue;\n\t\t\t\t\trestarted = false;\n\t\t\t\t\tif (this.currAnim === asset.name) {\n\t\t\t\t\t\tif (this.playing && this.enabled && this.entity.enabled) {\n\t\t\t\t\t\t\trestarted = true;\n\t\t\t\t\t\t\tthis.play(asset.name);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!restarted) {\n\t\t\t\t\t\tthis._stopCurrentAnimation();\n\t\t\t\t\t\tthis.onSetAnimations();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.animationsIndex[asset.id] = asset.name;\n\t\t\t} else {\n\t\t\t\tif (oldValue.length > 1) {\n\t\t\t\t\tfor (let i = 0; i < oldValue.length; i++) {\n\t\t\t\t\t\tdelete this.animations[oldValue[i].name];\n\t\t\t\t\t\tif (this.currAnim === oldValue[i].name) {\n\t\t\t\t\t\t\tthis._stopCurrentAnimation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tdelete this.animations[asset.name];\n\t\t\t\t\tif (this.currAnim === asset.name) {\n\t\t\t\t\t\tthis._stopCurrentAnimation();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tdelete this.animationsIndex[asset.id];\n\t\t\t}\n\t\t}\n\t}\n\tonAssetRemoved(asset) {\n\t\tasset.off('remove', this.onAssetRemoved, this);\n\t\tif (this.animations) {\n\t\t\tif (asset.resources.length > 1) {\n\t\t\t\tfor (let i = 0; i < asset.resources.length; i++) {\n\t\t\t\t\tdelete this.animations[asset.resources[i].name];\n\t\t\t\t\tif (this.currAnim === asset.resources[i].name) {\n\t\t\t\t\t\tthis._stopCurrentAnimation();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdelete this.animations[asset.name];\n\t\t\t\tif (this.currAnim === asset.name) {\n\t\t\t\t\tthis._stopCurrentAnimation();\n\t\t\t\t}\n\t\t\t}\n\t\t\tdelete this.animationsIndex[asset.id];\n\t\t}\n\t}\n\t_stopCurrentAnimation() {\n\t\tthis.currAnim = null;\n\t\tthis.playing = false;\n\t\tif (this.skeleton) {\n\t\t\tthis.skeleton.currentTime = 0;\n\t\t\tthis.skeleton.animation = null;\n\t\t}\n\t\tif (this.animEvaluator) {\n\t\t\tfor (let i = 0; i < this.animEvaluator.clips.length; ++i) {\n\t\t\t\tthis.animEvaluator.clips[i].stop();\n\t\t\t}\n\t\t\tthis.animEvaluator.update(0);\n\t\t\tthis.animEvaluator.removeClips();\n\t\t}\n\t}\n\tonEnable() {\n\t\tsuper.onEnable();\n\t\tconst assets = this.assets;\n\t\tconst registry = this.system.app.assets;\n\t\tif (assets) {\n\t\t\tfor (let i = 0, len = assets.length; i < len; i++) {\n\t\t\t\tlet asset = assets[i];\n\t\t\t\tif (!(asset instanceof Asset)) {\n\t\t\t\t\tasset = registry.get(asset);\n\t\t\t\t}\n\t\t\t\tif (asset && !asset.resource) {\n\t\t\t\t\tregistry.load(asset);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this.activate && !this.currAnim) {\n\t\t\tconst animationNames = Object.keys(this.animations);\n\t\t\tif (animationNames.length > 0) {\n\t\t\t\tthis.play(animationNames[0]);\n\t\t\t}\n\t\t}\n\t}\n\tonBeforeRemove() {\n\t\tfor (let i = 0; i < this.assets.length; i++) {\n\t\t\tlet asset = this.assets[i];\n\t\t\tif (typeof asset === 'number') {\n\t\t\t\tasset = this.system.app.assets.get(asset);\n\t\t\t}\n\t\t\tif (!asset) continue;\n\t\t\tasset.off('change', this.onAssetChanged, this);\n\t\t\tasset.off('remove', this.onAssetRemoved, this);\n\t\t}\n\t\tthis.skeleton = null;\n\t\tthis.fromSkel = null;\n\t\tthis.toSkel = null;\n\t\tthis.animEvaluator = null;\n\t}\n\tupdate(dt) {\n\t\tif (this.blending) {\n\t\t\tthis.blend += dt * this.blendSpeed;\n\t\t\tif (this.blend >= 1) {\n\t\t\t\tthis.blend = 1;\n\t\t\t}\n\t\t}\n\t\tif (this.playing) {\n\t\t\tconst skeleton = this.skeleton;\n\t\t\tif (skeleton !== null && this.model !== null) {\n\t\t\t\tif (this.blending) {\n\t\t\t\t\tskeleton.blend(this.fromSkel, this.toSkel, this.blend);\n\t\t\t\t} else {\n\t\t\t\t\tconst delta = dt * this.speed;\n\t\t\t\t\tskeleton.addTime(delta);\n\t\t\t\t\tif (this.speed > 0 && skeleton._time === skeleton.animation.duration && !this.loop) {\n\t\t\t\t\t\tthis.playing = false;\n\t\t\t\t\t} else if (this.speed < 0 && skeleton._time === 0 && !this.loop) {\n\t\t\t\t\t\tthis.playing = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (this.blending && this.blend === 1) {\n\t\t\t\t\tskeleton.animation = this.toSkel.animation;\n\t\t\t\t}\n\t\t\t\tskeleton.updateGraph();\n\t\t\t}\n\t\t}\n\t\tconst animEvaluator = this.animEvaluator;\n\t\tif (animEvaluator) {\n\t\t\tfor (let i = 0; i < animEvaluator.clips.length; ++i) {\n\t\t\t\tconst clip = animEvaluator.clips[i];\n\t\t\t\tclip.speed = this.speed;\n\t\t\t\tif (!this.playing) {\n\t\t\t\t\tclip.pause();\n\t\t\t\t} else {\n\t\t\t\t\tclip.resume();\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.blending && animEvaluator.clips.length > 1) {\n\t\t\t\tanimEvaluator.clips[1].blendWeight = this.blend;\n\t\t\t}\n\t\t\tanimEvaluator.update(dt);\n\t\t}\n\t\tif (this.blending && this.blend === 1) {\n\t\t\tthis.blending = false;\n\t\t}\n\t}\n}\n\nclass AnimationComponentData {\n\tconstructor() {\n\t\tthis.enabled = true;\n\t}\n}\n\nconst _schema$m = ['enabled'];\nclass AnimationComponentSystem extends ComponentSystem {\n\tconstructor(app) {\n\t\tsuper(app);\n\t\tthis.id = 'animation';\n\t\tthis.ComponentType = AnimationComponent;\n\t\tthis.DataType = AnimationComponentData;\n\t\tthis.schema = _schema$m;\n\t\tthis.on('beforeremove', this.onBeforeRemove, this);\n\t\tthis.app.systems.on('update', this.onUpdate, this);\n\t}\n\tinitializeComponentData(component, data, properties) {\n\t\tproperties = ['activate', 'enabled', 'loop', 'speed', 'assets'];\n\t\tfor (const property of properties) {\n\t\t\tif (data.hasOwnProperty(property)) {\n\t\t\t\tcomponent[property] = data[property];\n\t\t\t}\n\t\t}\n\t\tsuper.initializeComponentData(component, data, _schema$m);\n\t}\n\tcloneComponent(entity, clone) {\n\t\tthis.addComponent(clone, {});\n\t\tclone.animation.assets = entity.animation.assets.slice();\n\t\tclone.animation.speed = entity.animation.speed;\n\t\tclone.animation.loop = entity.animation.loop;\n\t\tclone.animation.activate = entity.animation.activate;\n\t\tclone.animation.enabled = entity.animation.enabled;\n\t\tconst clonedAnimations = {};\n\t\tconst animations = entity.animation.animations;\n\t\tfor (const key in animations) {\n\t\t\tif (animations.hasOwnProperty(key)) {\n\t\t\t\tclonedAnimations[key] = animations[key];\n\t\t\t}\n\t\t}\n\t\tclone.animation.animations = clonedAnimations;\n\t\tconst clonedAnimationsIndex = {};\n\t\tconst animationsIndex = entity.animation.animationsIndex;\n\t\tfor (const key in animationsIndex) {\n\t\t\tif (animationsIndex.hasOwnProperty(key)) {\n\t\t\t\tclonedAnimationsIndex[key] = animationsIndex[key];\n\t\t\t}\n\t\t}\n\t\tclone.animation.animationsIndex = clonedAnimationsIndex;\n\t\treturn clone.animation;\n\t}\n\tonBeforeRemove(entity, component) {\n\t\tcomponent.onBeforeRemove();\n\t}\n\tonUpdate(dt) {\n\t\tconst components = this.store;\n\t\tfor (const id in components) {\n\t\t\tif (components.hasOwnProperty(id)) {\n\t\t\t\tconst component = components[id];\n\t\t\t\tif (component.data.enabled && component.entity.enabled) {\n\t\t\t\t\tcomponent.entity.animation.update(dt);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.app.systems.off('update', this.onUpdate, this);\n\t}\n}\nComponent._buildAccessors(AnimationComponent.prototype, _schema$m);\n\nclass AnimNode {\n\tconstructor(state, parent, name, point, speed = 1) {\n\t\tthis._state = state;\n\t\tthis._parent = parent;\n\t\tthis._name = name;\n\t\tif (Array.isArray(point)) {\n\t\t\tthis._point = new Vec2(point[0], point[1]);\n\t\t\tthis._pointLength = this._point.length();\n\t\t} else {\n\t\t\tthis._point = point;\n\t\t\tthis._pointLength = point;\n\t\t}\n\t\tthis._speed = speed;\n\t\tthis._weightedSpeed = 1.0;\n\t\tthis._weight = 1.0;\n\t\tthis._animTrack = null;\n\t}\n\tget parent() {\n\t\treturn this._parent;\n\t}\n\tget name() {\n\t\treturn this._name;\n\t}\n\tget path() {\n\t\treturn this._parent ? `${this._parent.path}.${this._name}` : this._name;\n\t}\n\tget point() {\n\t\treturn this._point;\n\t}\n\tget pointLength() {\n\t\treturn this._pointLength;\n\t}\n\tset weight(value) {\n\t\tthis._weight = value;\n\t}\n\tget weight() {\n\t\treturn this._parent ? this._parent.weight * this._weight : this._weight;\n\t}\n\tget normalizedWeight() {\n\t\tconst totalWeight = this._state.totalWeight;\n\t\tif (totalWeight === 0.0) return 0.0;\n\t\treturn this.weight / totalWeight;\n\t}\n\tget speed() {\n\t\treturn this._weightedSpeed * this._speed;\n\t}\n\tget absoluteSpeed() {\n\t\treturn Math.abs(this._speed);\n\t}\n\tset weightedSpeed(weightedSpeed) {\n\t\tthis._weightedSpeed = weightedSpeed;\n\t}\n\tget weightedSpeed() {\n\t\treturn this._weightedSpeed;\n\t}\n\tset animTrack(value) {\n\t\tthis._animTrack = value;\n\t}\n\tget animTrack() {\n\t\treturn this._animTrack;\n\t}\n}\n\nclass AnimBlendTree extends AnimNode {\n\tconstructor(state, parent, name, point, parameters, children, syncAnimations, createTree, findParameter) {\n\t\tsuper(state, parent, name, point);\n\t\tthis._parameters = parameters;\n\t\tthis._parameterValues = new Array(parameters.length);\n\t\tthis._children = [];\n\t\tthis._findParameter = findParameter;\n\t\tthis._syncAnimations = syncAnimations !== false;\n\t\tthis._pointCache = {};\n\t\tfor (let i = 0; i < children.length; i++) {\n\t\t\tconst child = children[i];\n\t\t\tif (child.children) {\n\t\t\t\tthis._children.push(createTree(child.type, state, this, child.name, 1.0, child.parameter ? [child.parameter] : child.parameters, child.children, child.syncAnimations, createTree, findParameter));\n\t\t\t} else {\n\t\t\t\tthis._children.push(new AnimNode(state, this, child.name, child.point, child.speed));\n\t\t\t}\n\t\t}\n\t}\n\tget weight() {\n\t\tthis.calculateWeights();\n\t\treturn this._parent ? this._parent.weight * this._weight : this._weight;\n\t}\n\tget syncAnimations() {\n\t\treturn this._syncAnimations;\n\t}\n\tgetChild(name) {\n\t\tfor (let i = 0; i < this._children.length; i++) {\n\t\t\tif (this._children[i].name === name) return this._children[i];\n\t\t}\n\t\treturn null;\n\t}\n\tupdateParameterValues() {\n\t\tlet paramsEqual = true;\n\t\tfor (let i = 0; i < this._parameterValues.length; i++) {\n\t\t\tconst updatedParameter = this._findParameter(this._parameters[i]).value;\n\t\t\tif (this._parameterValues[i] !== updatedParameter) {\n\t\t\t\tthis._parameterValues[i] = updatedParameter;\n\t\t\t\tparamsEqual = false;\n\t\t\t}\n\t\t}\n\t\treturn paramsEqual;\n\t}\n\tgetNodeWeightedDuration(i) {\n\t\treturn this._children[i].animTrack.duration / this._children[i].speedMultiplier * this._children[i].weight;\n\t}\n\tgetNodeCount() {\n\t\tlet count = 0;\n\t\tfor (let i = 0; i < this._children.length; i++) {\n\t\t\tconst child = this._children[i];\n\t\t\tif (child.constructor === AnimBlendTree) {\n\t\t\t\tcount += this._children[i].getNodeCount();\n\t\t\t} else {\n\t\t\t\tcount++;\n\t\t\t}\n\t\t}\n\t\treturn count;\n\t}\n}\n\nclass AnimBlendTree1D extends AnimBlendTree {\n\tconstructor(state, parent, name, point, parameters, children, syncAnimations, createTree, findParameter) {\n\t\tchildren.sort((a, b) => a.point - b.point);\n\t\tsuper(state, parent, name, point, parameters, children, syncAnimations, createTree, findParameter);\n\t}\n\tcalculateWeights() {\n\t\tif (this.updateParameterValues()) return;\n\t\tlet weightedDurationSum = 0.0;\n\t\tthis._children[0].weight = 0.0;\n\t\tfor (let i = 0; i < this._children.length; i++) {\n\t\t\tconst c1 = this._children[i];\n\t\t\tif (i !== this._children.length - 1) {\n\t\t\t\tconst c2 = this._children[i + 1];\n\t\t\t\tif (c1.point === c2.point) {\n\t\t\t\t\tc1.weight = 0.5;\n\t\t\t\t\tc2.weight = 0.5;\n\t\t\t\t} else if (math.between(this._parameterValues[0], c1.point, c2.point, true)) {\n\t\t\t\t\tconst child2Distance = Math.abs(c1.point - c2.point);\n\t\t\t\t\tconst parameterDistance = Math.abs(c1.point - this._parameterValues[0]);\n\t\t\t\t\tconst weight = (child2Distance - parameterDistance) / child2Distance;\n\t\t\t\t\tc1.weight = weight;\n\t\t\t\t\tc2.weight = 1.0 - weight;\n\t\t\t\t} else {\n\t\t\t\t\tc2.weight = 0.0;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this._syncAnimations) {\n\t\t\t\tweightedDurationSum += c1.animTrack.duration / c1.absoluteSpeed * c1.weight;\n\t\t\t}\n\t\t}\n\t\tif (this._syncAnimations) {\n\t\t\tfor (let i = 0; i < this._children.length; i++) {\n\t\t\t\tconst child = this._children[i];\n\t\t\t\tchild.weightedSpeed = child.animTrack.duration / child.absoluteSpeed / weightedDurationSum;\n\t\t\t}\n\t\t}\n\t}\n}\n\nclass AnimBlendTreeCartesian2D extends AnimBlendTree {\n\tpointDistanceCache(i, j) {\n\t\tconst pointKey = `${i}${j}`;\n\t\tif (!this._pointCache[pointKey]) {\n\t\t\tthis._pointCache[pointKey] = this._children[j].point.clone().sub(this._children[i].point);\n\t\t}\n\t\treturn this._pointCache[pointKey];\n\t}\n\tcalculateWeights() {\n\t\tif (this.updateParameterValues()) return;\n\t\tlet weightSum, weightedDurationSum;\n\t\tAnimBlendTreeCartesian2D._p.set(...this._parameterValues);\n\t\tweightSum = 0.0;\n\t\tweightedDurationSum = 0.0;\n\t\tfor (let i = 0; i < this._children.length; i++) {\n\t\t\tconst child = this._children[i];\n\t\t\tconst pi = child.point;\n\t\t\tAnimBlendTreeCartesian2D._pip.set(AnimBlendTreeCartesian2D._p.x, AnimBlendTreeCartesian2D._p.y).sub(pi);\n\t\t\tlet minj = Number.MAX_VALUE;\n\t\t\tfor (let j = 0; j < this._children.length; j++) {\n\t\t\t\tif (i === j) continue;\n\t\t\t\tconst pipj = this.pointDistanceCache(i, j);\n\t\t\t\tconst result = math.clamp(1.0 - AnimBlendTreeCartesian2D._pip.dot(pipj) / pipj.lengthSq(), 0.0, 1.0);\n\t\t\t\tif (result < minj) minj = result;\n\t\t\t}\n\t\t\tchild.weight = minj;\n\t\t\tweightSum += minj;\n\t\t\tif (this._syncAnimations) {\n\t\t\t\tweightedDurationSum += child.animTrack.duration / child.absoluteSpeed * child.weight;\n\t\t\t}\n\t\t}\n\t\tfor (let i = 0; i < this._children.length; i++) {\n\t\t\tconst child = this._children[i];\n\t\t\tchild.weight = child._weight / weightSum;\n\t\t\tif (this._syncAnimations) {\n\t\t\t\tchild.weightedSpeed = child.animTrack.duration / child.absoluteSpeed / weightedDurationSum;\n\t\t\t}\n\t\t}\n\t}\n}\nAnimBlendTreeCartesian2D._p = new Vec2();\nAnimBlendTreeCartesian2D._pip = new Vec2();\n\nclass AnimBlendTreeDirectional2D extends AnimBlendTree {\n\tpointCache(i, j) {\n\t\tconst pointKey = `${i}${j}`;\n\t\tif (!this._pointCache[pointKey]) {\n\t\t\tthis._pointCache[pointKey] = new Vec2((this._children[j].pointLength - this._children[i].pointLength) / ((this._children[j].pointLength + this._children[i].pointLength) / 2), Vec2.angleRad(this._children[i].point, this._children[j].point) * 2.0);\n\t\t}\n\t\treturn this._pointCache[pointKey];\n\t}\n\tcalculateWeights() {\n\t\tif (this.updateParameterValues()) return;\n\t\tlet weightSum, weightedDurationSum;\n\t\tAnimBlendTreeDirectional2D._p.set(...this._parameterValues);\n\t\tconst pLength = AnimBlendTreeDirectional2D._p.length();\n\t\tweightSum = 0.0;\n\t\tweightedDurationSum = 0.0;\n\t\tfor (let i = 0; i < this._children.length; i++) {\n\t\t\tconst child = this._children[i];\n\t\t\tconst pi = child.point;\n\t\t\tconst piLength = child.pointLength;\n\t\t\tlet minj = Number.MAX_VALUE;\n\t\t\tfor (let j = 0; j < this._children.length; j++) {\n\t\t\t\tif (i === j) continue;\n\t\t\t\tconst pipj = this.pointCache(i, j);\n\t\t\t\tconst pjLength = this._children[j].pointLength;\n\t\t\t\tAnimBlendTreeDirectional2D._pip.set((pLength - piLength) / ((pjLength + piLength) / 2), Vec2.angleRad(pi, AnimBlendTreeDirectional2D._p) * 2.0);\n\t\t\t\tconst result = math.clamp(1.0 - Math.abs(AnimBlendTreeDirectional2D._pip.dot(pipj) / pipj.lengthSq()), 0.0, 1.0);\n\t\t\t\tif (result < minj) minj = result;\n\t\t\t}\n\t\t\tchild.weight = minj;\n\t\t\tweightSum += minj;\n\t\t\tif (this._syncAnimations) {\n\t\t\t\tweightedDurationSum += child.animTrack.duration / child.absoluteSpeed * child.weight;\n\t\t\t}\n\t\t}\n\t\tfor (let i = 0; i < this._children.length; i++) {\n\t\t\tconst child = this._children[i];\n\t\t\tchild.weight = child._weight / weightSum;\n\t\t\tif (this._syncAnimations) {\n\t\t\t\tconst weightedChildDuration = child.animTrack.duration / weightedDurationSum * weightSum;\n\t\t\t\tchild.weightedSpeed = child.absoluteSpeed * weightedChildDuration;\n\t\t\t}\n\t\t}\n\t}\n}\nAnimBlendTreeDirectional2D._p = new Vec2();\nAnimBlendTreeDirectional2D._pip = new Vec2();\n\nclass AnimBlendTreeDirect extends AnimBlendTree {\n\tcalculateWeights() {\n\t\tif (this.updateParameterValues()) return;\n\t\tlet weightSum = 0.0;\n\t\tlet weightedDurationSum = 0.0;\n\t\tfor (let i = 0; i < this._children.length; i++) {\n\t\t\tweightSum += Math.max(this._parameterValues[i], 0.0);\n\t\t\tif (this._syncAnimations) {\n\t\t\t\tconst child = this._children[i];\n\t\t\t\tweightedDurationSum += child.animTrack.duration / child.absoluteSpeed * child.weight;\n\t\t\t}\n\t\t}\n\t\tfor (let i = 0; i < this._children.length; i++) {\n\t\t\tconst child = this._children[i];\n\t\t\tconst weight = Math.max(this._parameterValues[i], 0.0);\n\t\t\tif (weightSum) {\n\t\t\t\tchild.weight = weight / weightSum;\n\t\t\t\tif (this._syncAnimations) {\n\t\t\t\t\tchild.weightedSpeed = child.animTrack.duration / child.absoluteSpeed / weightedDurationSum;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tchild.weight = 0.0;\n\t\t\t\tif (this._syncAnimations) {\n\t\t\t\t\tchild.weightedSpeed = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nclass AnimState {\n\tconstructor(controller, name, speed = 1, loop = true, blendTree) {\n\t\tthis._animations = {};\n\t\tthis._animationList = [];\n\t\tthis._controller = controller;\n\t\tthis._name = name;\n\t\tthis._speed = speed;\n\t\tthis._loop = loop;\n\t\tthis._hasAnimations = false;\n\t\tif (blendTree) {\n\t\t\tthis._blendTree = this._createTree(blendTree.type, this, null, name, 1.0, blendTree.parameter ? [blendTree.parameter] : blendTree.parameters, blendTree.children, blendTree.syncAnimations, this._createTree, this._controller.findParameter);\n\t\t} else {\n\t\t\tthis._blendTree = new AnimNode(this, null, name, 1.0, speed);\n\t\t}\n\t}\n\t_createTree(type, state, parent, name, point, parameters, children, syncAnimations, createTree, findParameter) {\n\t\tswitch (type) {\n\t\t\tcase ANIM_BLEND_1D:\n\t\t\t\treturn new AnimBlendTree1D(state, parent, name, point, parameters, children, syncAnimations, createTree, findParameter);\n\t\t\tcase ANIM_BLEND_2D_CARTESIAN:\n\t\t\t\treturn new AnimBlendTreeCartesian2D(state, parent, name, point, parameters, children, syncAnimations, createTree, findParameter);\n\t\t\tcase ANIM_BLEND_2D_DIRECTIONAL:\n\t\t\t\treturn new AnimBlendTreeDirectional2D(state, parent, name, point, parameters, children, syncAnimations, createTree, findParameter);\n\t\t\tcase ANIM_BLEND_DIRECT:\n\t\t\t\treturn new AnimBlendTreeDirect(state, parent, name, point, parameters, children, syncAnimations, createTree, findParameter);\n\t\t}\n\t\treturn undefined;\n\t}\n\t_getNodeFromPath(path) {\n\t\tlet currNode = this._blendTree;\n\t\tfor (let i = 1; i < path.length; i++) {\n\t\t\tcurrNode = currNode.getChild(path[i]);\n\t\t}\n\t\treturn currNode;\n\t}\n\taddAnimation(path, animTrack) {\n\t\tconst pathString = path.join('.');\n\t\tconst indexOfAnimation = this._animationList.findIndex(animation => {\n\t\t\treturn animation.path === pathString;\n\t\t});\n\t\tif (indexOfAnimation >= 0) {\n\t\t\tthis._animationList[indexOfAnimation].animTrack = animTrack;\n\t\t} else {\n\t\t\tconst node = this._getNodeFromPath(path);\n\t\t\tnode.animTrack = animTrack;\n\t\t\tthis._animationList.push(node);\n\t\t}\n\t\tthis._updateHasAnimations();\n\t}\n\t_updateHasAnimations() {\n\t\tthis._hasAnimations = this._animationList.length > 0 && this._animationList.every(animation => animation.animTrack && animation.animTrack !== AnimTrack.EMPTY);\n\t}\n\tget name() {\n\t\treturn this._name;\n\t}\n\tset animations(value) {\n\t\tthis._animationList = value;\n\t\tthis._updateHasAnimations();\n\t}\n\tget animations() {\n\t\treturn this._animationList;\n\t}\n\tget hasAnimations() {\n\t\treturn this._hasAnimations;\n\t}\n\tset speed(value) {\n\t\tthis._speed = value;\n\t}\n\tget speed() {\n\t\treturn this._speed;\n\t}\n\tset loop(value) {\n\t\tthis._loop = value;\n\t}\n\tget loop() {\n\t\treturn this._loop;\n\t}\n\tget nodeCount() {\n\t\tif (!this._blendTree || this._blendTree.constructor === AnimNode) return 1;\n\t\treturn this._blendTree.getNodeCount();\n\t}\n\tget playable() {\n\t\treturn ANIM_CONTROL_STATES.indexOf(this.name) !== -1 || this.animations.length === this.nodeCount;\n\t}\n\tget looping() {\n\t\tif (this.animations.length > 0) {\n\t\t\tconst trackClipName = `${this.name}.${this.animations[0].animTrack.name}`;\n\t\t\tconst trackClip = this._controller.animEvaluator.findClip(trackClipName);\n\t\t\tif (trackClip) {\n\t\t\t\treturn trackClip.loop;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\tget totalWeight() {\n\t\tlet sum = 0;\n\t\tfor (let i = 0; i < this.animations.length; i++) {\n\t\t\tsum += this.animations[i].weight;\n\t\t}\n\t\treturn sum;\n\t}\n\tget timelineDuration() {\n\t\tlet duration = 0;\n\t\tfor (let i = 0; i < this.animations.length; i++) {\n\t\t\tconst animation = this.animations[i];\n\t\t\tif (animation.animTrack.duration > duration) {\n\t\t\t\tduration = animation.animTrack.duration;\n\t\t\t}\n\t\t}\n\t\treturn duration;\n\t}\n}\n\nclass AnimTransition {\n\tconstructor({\n\t\tfrom,\n\t\tto,\n\t\ttime = 0,\n\t\tpriority = 0,\n\t\tconditions = [],\n\t\texitTime = null,\n\t\ttransitionOffset = null,\n\t\tinterruptionSource = ANIM_INTERRUPTION_NONE\n\t}) {\n\t\tthis._from = from;\n\t\tthis._to = to;\n\t\tthis._time = time;\n\t\tthis._priority = priority;\n\t\tthis._conditions = conditions;\n\t\tthis._exitTime = exitTime;\n\t\tthis._transitionOffset = transitionOffset;\n\t\tthis._interruptionSource = interruptionSource;\n\t}\n\tget from() {\n\t\treturn this._from;\n\t}\n\tset to(value) {\n\t\tthis._to = value;\n\t}\n\tget to() {\n\t\treturn this._to;\n\t}\n\tget time() {\n\t\treturn this._time;\n\t}\n\tget priority() {\n\t\treturn this._priority;\n\t}\n\tget conditions() {\n\t\treturn this._conditions;\n\t}\n\tget exitTime() {\n\t\treturn this._exitTime;\n\t}\n\tget transitionOffset() {\n\t\treturn this._transitionOffset;\n\t}\n\tget interruptionSource() {\n\t\treturn this._interruptionSource;\n\t}\n\tget hasExitTime() {\n\t\treturn !!this.exitTime;\n\t}\n}\n\nclass AnimController {\n\tconstructor(animEvaluator, states, transitions, activate, eventHandler, findParameter, consumeTrigger) {\n\t\tthis._states = {};\n\t\tthis._stateNames = [];\n\t\tthis._findTransitionsFromStateCache = {};\n\t\tthis._findTransitionsBetweenStatesCache = {};\n\t\tthis._previousStateName = null;\n\t\tthis._activeStateName = ANIM_STATE_START;\n\t\tthis._activeStateDuration = 0;\n\t\tthis._activeStateDurationDirty = true;\n\t\tthis._playing = false;\n\t\tthis._activate = void 0;\n\t\tthis._transitions = void 0;\n\t\tthis._currTransitionTime = 1;\n\t\tthis._totalTransitionTime = 1;\n\t\tthis._isTransitioning = false;\n\t\tthis._transitionInterruptionSource = ANIM_INTERRUPTION_NONE;\n\t\tthis._transitionPreviousStates = [];\n\t\tthis._timeInState = 0;\n\t\tthis._timeInStateBefore = 0;\n\t\tthis.findParameter = name => {\n\t\t\treturn this._findParameter(name);\n\t\t};\n\t\tthis._animEvaluator = animEvaluator;\n\t\tthis._eventHandler = eventHandler;\n\t\tthis._findParameter = findParameter;\n\t\tthis._consumeTrigger = consumeTrigger;\n\t\tfor (let i = 0; i < states.length; i++) {\n\t\t\tthis._states[states[i].name] = new AnimState(this, states[i].name, states[i].speed, states[i].loop, states[i].blendTree);\n\t\t\tthis._stateNames.push(states[i].name);\n\t\t}\n\t\tthis._transitions = transitions.map(transition => {\n\t\t\treturn new AnimTransition(_extends({}, transition));\n\t\t});\n\t\tthis._activate = activate;\n\t}\n\tget animEvaluator() {\n\t\treturn this._animEvaluator;\n\t}\n\tset activeState(stateName) {\n\t\tthis._activeStateName = stateName;\n\t}\n\tget activeState() {\n\t\treturn this._findState(this._activeStateName);\n\t}\n\tget activeStateName() {\n\t\treturn this._activeStateName;\n\t}\n\tget activeStateAnimations() {\n\t\treturn this.activeState.animations;\n\t}\n\tset previousState(stateName) {\n\t\tthis._previousStateName = stateName;\n\t}\n\tget previousState() {\n\t\treturn this._findState(this._previousStateName);\n\t}\n\tget previousStateName() {\n\t\treturn this._previousStateName;\n\t}\n\tget playable() {\n\t\tlet playable = true;\n\t\tfor (let i = 0; i < this._stateNames.length; i++) {\n\t\t\tif (!this._states[this._stateNames[i]].playable) {\n\t\t\t\tplayable = false;\n\t\t\t}\n\t\t}\n\t\treturn playable;\n\t}\n\tset playing(value) {\n\t\tthis._playing = value;\n\t}\n\tget playing() {\n\t\treturn this._playing;\n\t}\n\tget activeStateProgress() {\n\t\treturn this._getActiveStateProgressForTime(this._timeInState);\n\t}\n\tget activeStateDuration() {\n\t\tif (this._activeStateDurationDirty) {\n\t\t\tlet maxDuration = 0.0;\n\t\t\tfor (let i = 0; i < this.activeStateAnimations.length; i++) {\n\t\t\t\tconst activeClip = this._animEvaluator.findClip(this.activeStateAnimations[i].name);\n\t\t\t\tif (activeClip) {\n\t\t\t\t\tmaxDuration = Math.max(maxDuration, activeClip.track.duration);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._activeStateDuration = maxDuration;\n\t\t\tthis._activeStateDurationDirty = false;\n\t\t}\n\t\treturn this._activeStateDuration;\n\t}\n\tset activeStateCurrentTime(time) {\n\t\tthis._timeInStateBefore = time;\n\t\tthis._timeInState = time;\n\t\tfor (let i = 0; i < this.activeStateAnimations.length; i++) {\n\t\t\tconst clip = this.animEvaluator.findClip(this.activeStateAnimations[i].name);\n\t\t\tif (clip) {\n\t\t\t\tclip.time = time;\n\t\t\t}\n\t\t}\n\t}\n\tget activeStateCurrentTime() {\n\t\treturn this._timeInState;\n\t}\n\tget transitioning() {\n\t\treturn this._isTransitioning;\n\t}\n\tget transitionProgress() {\n\t\treturn this._currTransitionTime / this._totalTransitionTime;\n\t}\n\tget states() {\n\t\treturn this._stateNames;\n\t}\n\tassignMask(mask) {\n\t\treturn this._animEvaluator.assignMask(mask);\n\t}\n\t_findState(stateName) {\n\t\treturn this._states[stateName];\n\t}\n\t_getActiveStateProgressForTime(time) {\n\t\tif (this.activeStateName === ANIM_STATE_START || this.activeStateName === ANIM_STATE_END || this.activeStateName === ANIM_STATE_ANY) {\n\t\t\treturn 1.0;\n\t\t}\n\t\tconst activeClip = this._animEvaluator.findClip(this.activeStateAnimations[0].name);\n\t\tif (activeClip) {\n\t\t\treturn activeClip.progressForTime(time);\n\t\t}\n\t\treturn null;\n\t}\n\t_findTransitionsFromState(stateName) {\n\t\tlet transitions = this._findTransitionsFromStateCache[stateName];\n\t\tif (!transitions) {\n\t\t\ttransitions = this._transitions.filter(transition => {\n\t\t\t\treturn transition.from === stateName;\n\t\t\t});\n\t\t\tsortPriority(transitions);\n\t\t\tthis._findTransitionsFromStateCache[stateName] = transitions;\n\t\t}\n\t\treturn transitions;\n\t}\n\t_findTransitionsBetweenStates(sourceStateName, destinationStateName) {\n\t\tlet transitions = this._findTransitionsBetweenStatesCache[`${sourceStateName}->${destinationStateName}`];\n\t\tif (!transitions) {\n\t\t\ttransitions = this._transitions.filter(transition => {\n\t\t\t\treturn transition.from === sourceStateName && transition.to === destinationStateName;\n\t\t\t});\n\t\t\tsortPriority(transitions);\n\t\t\tthis._findTransitionsBetweenStatesCache[`${sourceStateName}->${destinationStateName}`] = transitions;\n\t\t}\n\t\treturn transitions;\n\t}\n\t_transitionHasConditionsMet(transition) {\n\t\tconst conditions = transition.conditions;\n\t\tfor (let i = 0; i < conditions.length; i++) {\n\t\t\tconst condition = conditions[i];\n\t\t\tconst parameter = this._findParameter(condition.parameterName);\n\t\t\tswitch (condition.predicate) {\n\t\t\t\tcase ANIM_GREATER_THAN:\n\t\t\t\t\tif (!(parameter.value > condition.value)) return false;\n\t\t\t\t\tbreak;\n\t\t\t\tcase ANIM_LESS_THAN:\n\t\t\t\t\tif (!(parameter.value < condition.value)) return false;\n\t\t\t\t\tbreak;\n\t\t\t\tcase ANIM_GREATER_THAN_EQUAL_TO:\n\t\t\t\t\tif (!(parameter.value >= condition.value)) return false;\n\t\t\t\t\tbreak;\n\t\t\t\tcase ANIM_LESS_THAN_EQUAL_TO:\n\t\t\t\t\tif (!(parameter.value <= condition.value)) return false;\n\t\t\t\t\tbreak;\n\t\t\t\tcase ANIM_EQUAL_TO:\n\t\t\t\t\tif (!(parameter.value === condition.value)) return false;\n\t\t\t\t\tbreak;\n\t\t\t\tcase ANIM_NOT_EQUAL_TO:\n\t\t\t\t\tif (!(parameter.value !== condition.value)) return false;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\t_findTransition(from, to) {\n\t\tlet transitions = [];\n\t\tif (from && to) {\n\t\t\ttransitions = transitions.concat(this._findTransitionsBetweenStates(from, to));\n\t\t} else {\n\t\t\tif (!this._isTransitioning) {\n\t\t\t\ttransitions = transitions.concat(this._findTransitionsFromState(this._activeStateName));\n\t\t\t\ttransitions = transitions.concat(this._findTransitionsFromState(ANIM_STATE_ANY));\n\t\t\t} else {\n\t\t\t\tswitch (this._transitionInterruptionSource) {\n\t\t\t\t\tcase ANIM_INTERRUPTION_PREV:\n\t\t\t\t\t\ttransitions = transitions.concat(this._findTransitionsFromState(this._previousStateName));\n\t\t\t\t\t\ttransitions = transitions.concat(this._findTransitionsFromState(ANIM_STATE_ANY));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase ANIM_INTERRUPTION_NEXT:\n\t\t\t\t\t\ttransitions = transitions.concat(this._findTransitionsFromState(this._activeStateName));\n\t\t\t\t\t\ttransitions = transitions.concat(this._findTransitionsFromState(ANIM_STATE_ANY));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase ANIM_INTERRUPTION_PREV_NEXT:\n\t\t\t\t\t\ttransitions = transitions.concat(this._findTransitionsFromState(this._previousStateName));\n\t\t\t\t\t\ttransitions = transitions.concat(this._findTransitionsFromState(this._activeStateName));\n\t\t\t\t\t\ttransitions = transitions.concat(this._findTransitionsFromState(ANIM_STATE_ANY));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase ANIM_INTERRUPTION_NEXT_PREV:\n\t\t\t\t\t\ttransitions = transitions.concat(this._findTransitionsFromState(this._activeStateName));\n\t\t\t\t\t\ttransitions = transitions.concat(this._findTransitionsFromState(this._previousStateName));\n\t\t\t\t\t\ttransitions = transitions.concat(this._findTransitionsFromState(ANIM_STATE_ANY));\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\ttransitions = transitions.filter(transition => {\n\t\t\tif (transition.to === this.activeStateName) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (transition.hasExitTime) {\n\t\t\t\tlet progressBefore = this._getActiveStateProgressForTime(this._timeInStateBefore);\n\t\t\t\tlet progress = this._getActiveStateProgressForTime(this._timeInState);\n\t\t\t\tif (transition.exitTime < 1.0 && this.activeState.loop) {\n\t\t\t\t\tprogressBefore -= Math.floor(progressBefore);\n\t\t\t\t\tprogress -= Math.floor(progress);\n\t\t\t\t}\n\t\t\t\tif (progress === progressBefore) {\n\t\t\t\t\tif (progress !== transition.exitTime) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t} else if (!(transition.exitTime > progressBefore && transition.exitTime <= progress)) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this._transitionHasConditionsMet(transition);\n\t\t});\n\t\tif (transitions.length > 0) {\n\t\t\tconst transition = transitions[0];\n\t\t\tif (transition.to === ANIM_STATE_END) {\n\t\t\t\tconst startTransition = this._findTransitionsFromState(ANIM_STATE_START)[0];\n\t\t\t\ttransition.to = startTransition.to;\n\t\t\t}\n\t\t\treturn transition;\n\t\t}\n\t\treturn null;\n\t}\n\tupdateStateFromTransition(transition) {\n\t\tlet state;\n\t\tlet animation;\n\t\tlet clip;\n\t\tthis.previousState = transition.from ? this.activeStateName : null;\n\t\tthis.activeState = transition.to;\n\t\tthis._activeStateDurationDirty = true;\n\t\tfor (let i = 0; i < transition.conditions.length; i++) {\n\t\t\tconst condition = transition.conditions[i];\n\t\t\tconst parameter = this._findParameter(condition.parameterName);\n\t\t\tif (parameter.type === ANIM_PARAMETER_TRIGGER) {\n\t\t\t\tthis._consumeTrigger(condition.parameterName);\n\t\t\t}\n\t\t}\n\t\tif (this.previousState) {\n\t\t\tif (!this._isTransitioning) {\n\t\t\t\tthis._transitionPreviousStates = [];\n\t\t\t}\n\t\t\tthis._transitionPreviousStates.push({\n\t\t\t\tname: this._previousStateName,\n\t\t\t\tweight: 1\n\t\t\t});\n\t\t\tconst interpolatedTime = Math.min(this._totalTransitionTime !== 0 ? this._currTransitionTime / this._totalTransitionTime : 1, 1.0);\n\t\t\tfor (let i = 0; i < this._transitionPreviousStates.length; i++) {\n\t\t\t\tif (!this._isTransitioning) {\n\t\t\t\t\tthis._transitionPreviousStates[i].weight = 1.0;\n\t\t\t\t} else if (i !== this._transitionPreviousStates.length - 1) {\n\t\t\t\t\tthis._transitionPreviousStates[i].weight *= 1.0 - interpolatedTime;\n\t\t\t\t} else {\n\t\t\t\t\tthis._transitionPreviousStates[i].weight = interpolatedTime;\n\t\t\t\t}\n\t\t\t\tstate = this._findState(this._transitionPreviousStates[i].name);\n\t\t\t\tfor (let j = 0; j < state.animations.length; j++) {\n\t\t\t\t\tanimation = state.animations[j];\n\t\t\t\t\tclip = this._animEvaluator.findClip(`${animation.name}.previous.${i}`);\n\t\t\t\t\tif (!clip) {\n\t\t\t\t\t\tclip = this._animEvaluator.findClip(animation.name);\n\t\t\t\t\t\tclip.name = `${animation.name}.previous.${i}`;\n\t\t\t\t\t}\n\t\t\t\t\tif (i !== this._transitionPreviousStates.length - 1) {\n\t\t\t\t\t\tclip.pause();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._isTransitioning = true;\n\t\tthis._totalTransitionTime = transition.time;\n\t\tthis._currTransitionTime = 0;\n\t\tthis._transitionInterruptionSource = transition.interruptionSource;\n\t\tconst activeState = this.activeState;\n\t\tconst hasTransitionOffset = transition.transitionOffset && transition.transitionOffset > 0.0 && transition.transitionOffset < 1.0;\n\t\tlet timeInState = 0;\n\t\tlet timeInStateBefore = 0;\n\t\tif (hasTransitionOffset) {\n\t\t\tconst offsetTime = activeState.timelineDuration * transition.transitionOffset;\n\t\t\ttimeInState = offsetTime;\n\t\t\ttimeInStateBefore = offsetTime;\n\t\t}\n\t\tthis._timeInState = timeInState;\n\t\tthis._timeInStateBefore = timeInStateBefore;\n\t\tfor (let i = 0; i < activeState.animations.length; i++) {\n\t\t\tclip = this._animEvaluator.findClip(activeState.animations[i].name);\n\t\t\tif (!clip) {\n\t\t\t\tconst speed = Number.isFinite(activeState.animations[i].speed) ? activeState.animations[i].speed : activeState.speed;\n\t\t\t\tclip = new AnimClip(activeState.animations[i].animTrack, this._timeInState, speed, true, activeState.loop, this._eventHandler);\n\t\t\t\tclip.name = activeState.animations[i].name;\n\t\t\t\tthis._animEvaluator.addClip(clip);\n\t\t\t} else {\n\t\t\t\tclip.reset();\n\t\t\t}\n\t\t\tif (transition.time > 0) {\n\t\t\t\tclip.blendWeight = 0.0;\n\t\t\t} else {\n\t\t\t\tclip.blendWeight = activeState.animations[i].normalizedWeight;\n\t\t\t}\n\t\t\tclip.play();\n\t\t\tif (hasTransitionOffset) {\n\t\t\t\tclip.time = activeState.timelineDuration * transition.transitionOffset;\n\t\t\t} else {\n\t\t\t\tconst startTime = activeState.speed >= 0 ? 0 : this.activeStateDuration;\n\t\t\t\tclip.time = startTime;\n\t\t\t}\n\t\t}\n\t}\n\t_transitionToState(newStateName) {\n\t\tif (!this._findState(newStateName)) {\n\t\t\treturn;\n\t\t}\n\t\tlet transition = this._findTransition(this._activeStateName, newStateName);\n\t\tif (!transition) {\n\t\t\tthis._animEvaluator.removeClips();\n\t\t\ttransition = new AnimTransition({\n\t\t\t\tfrom: null,\n\t\t\t\tto: newStateName\n\t\t\t});\n\t\t}\n\t\tthis.updateStateFromTransition(transition);\n\t}\n\tassignAnimation(pathString, animTrack, speed, loop) {\n\t\tconst path = pathString.split('.');\n\t\tlet state = this._findState(path[0]);\n\t\tif (!state) {\n\t\t\tstate = new AnimState(this, path[0], speed);\n\t\t\tthis._states[path[0]] = state;\n\t\t\tthis._stateNames.push(path[0]);\n\t\t}\n\t\tstate.addAnimation(path, animTrack);\n\t\tthis._animEvaluator.updateClipTrack(state.name, animTrack);\n\t\tif (speed !== undefined) {\n\t\t\tstate.speed = speed;\n\t\t}\n\t\tif (loop !== undefined) {\n\t\t\tstate.loop = loop;\n\t\t}\n\t\tif (!this._playing && this._activate && this.playable) {\n\t\t\tthis.play();\n\t\t}\n\t\tthis._activeStateDurationDirty = true;\n\t}\n\tremoveNodeAnimations(nodeName) {\n\t\tif (ANIM_CONTROL_STATES.indexOf(nodeName) !== -1) {\n\t\t\treturn false;\n\t\t}\n\t\tconst state = this._findState(nodeName);\n\t\tif (!state) {\n\t\t\treturn false;\n\t\t}\n\t\tstate.animations = [];\n\t\treturn true;\n\t}\n\tplay(stateName) {\n\t\tif (stateName) {\n\t\t\tthis._transitionToState(stateName);\n\t\t}\n\t\tthis._playing = true;\n\t}\n\tpause() {\n\t\tthis._playing = false;\n\t}\n\treset() {\n\t\tthis._previousStateName = null;\n\t\tthis._activeStateName = ANIM_STATE_START;\n\t\tthis._playing = false;\n\t\tthis._currTransitionTime = 1.0;\n\t\tthis._totalTransitionTime = 1.0;\n\t\tthis._isTransitioning = false;\n\t\tthis._timeInState = 0;\n\t\tthis._timeInStateBefore = 0;\n\t\tthis._animEvaluator.removeClips();\n\t}\n\trebind() {\n\t\tthis._animEvaluator.rebind();\n\t}\n\tupdate(dt) {\n\t\tif (!this._playing) {\n\t\t\treturn;\n\t\t}\n\t\tlet state;\n\t\tlet animation;\n\t\tlet clip;\n\t\tif (this.activeState.loop || this._timeInState < this.activeStateDuration) {\n\t\t\tthis._timeInStateBefore = this._timeInState;\n\t\t\tthis._timeInState += dt * this.activeState.speed;\n\t\t\tif (!this.activeState.loop && this._timeInState > this.activeStateDuration) {\n\t\t\t\tthis._timeInState = this.activeStateDuration;\n\t\t\t\tdt = this.activeStateDuration - this._timeInStateBefore;\n\t\t\t}\n\t\t}\n\t\tconst transition = this._findTransition(this._activeStateName);\n\t\tif (transition) {\n\t\t\tthis.updateStateFromTransition(transition);\n\t\t}\n\t\tif (this._isTransitioning) {\n\t\t\tthis._currTransitionTime += dt;\n\t\t\tif (this._currTransitionTime <= this._totalTransitionTime) {\n\t\t\t\tconst interpolatedTime = this._totalTransitionTime !== 0 ? this._currTransitionTime / this._totalTransitionTime : 1;\n\t\t\t\tfor (let i = 0; i < this._transitionPreviousStates.length; i++) {\n\t\t\t\t\tstate = this._findState(this._transitionPreviousStates[i].name);\n\t\t\t\t\tconst stateWeight = this._transitionPreviousStates[i].weight;\n\t\t\t\t\tfor (let j = 0; j < state.animations.length; j++) {\n\t\t\t\t\t\tanimation = state.animations[j];\n\t\t\t\t\t\tclip = this._animEvaluator.findClip(`${animation.name}.previous.${i}`);\n\t\t\t\t\t\tif (clip) {\n\t\t\t\t\t\t\tclip.blendWeight = (1.0 - interpolatedTime) * animation.normalizedWeight * stateWeight;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstate = this.activeState;\n\t\t\t\tfor (let i = 0; i < state.animations.length; i++) {\n\t\t\t\t\tanimation = state.animations[i];\n\t\t\t\t\tthis._animEvaluator.findClip(animation.name).blendWeight = interpolatedTime * animation.normalizedWeight;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._isTransitioning = false;\n\t\t\t\tconst activeClips = this.activeStateAnimations.length;\n\t\t\t\tconst totalClips = this._animEvaluator.clips.length;\n\t\t\t\tfor (let i = 0; i < totalClips - activeClips; i++) {\n\t\t\t\t\tthis._animEvaluator.removeClip(0);\n\t\t\t\t}\n\t\t\t\tthis._transitionPreviousStates = [];\n\t\t\t\tstate = this.activeState;\n\t\t\t\tfor (let i = 0; i < state.animations.length; i++) {\n\t\t\t\t\tanimation = state.animations[i];\n\t\t\t\t\tclip = this._animEvaluator.findClip(animation.name);\n\t\t\t\t\tif (clip) {\n\t\t\t\t\t\tclip.blendWeight = animation.normalizedWeight;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (this.activeState._blendTree.constructor !== AnimNode) {\n\t\t\t\tstate = this.activeState;\n\t\t\t\tfor (let i = 0; i < state.animations.length; i++) {\n\t\t\t\t\tanimation = state.animations[i];\n\t\t\t\t\tclip = this._animEvaluator.findClip(animation.name);\n\t\t\t\t\tif (clip) {\n\t\t\t\t\t\tclip.blendWeight = animation.normalizedWeight;\n\t\t\t\t\t\tif (animation.parent.syncAnimations) {\n\t\t\t\t\t\t\tclip.speed = animation.speed;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._animEvaluator.update(dt, this.activeState.hasAnimations);\n\t}\n}\n\nconst v2 = new Vec2();\nconst v3 = new Vec3();\nconst v4 = new Vec4();\nconst c = new Color();\nconst q = new Quat();\nclass AnimComponentBinder extends DefaultAnimBinder {\n\tconstructor(animComponent, graph, layerName, mask, layerIndex) {\n\t\tsuper(graph);\n\t\tthis.animComponent = animComponent;\n\t\tthis._mask = mask;\n\t\tthis.layerName = layerName;\n\t\tthis.layerIndex = layerIndex;\n\t}\n\tstatic _packFloat(values) {\n\t\treturn values[0];\n\t}\n\tstatic _packBoolean(values) {\n\t\treturn !!values[0];\n\t}\n\tstatic _packVec2(values) {\n\t\tv2.x = values[0];\n\t\tv2.y = values[1];\n\t\treturn v2;\n\t}\n\tstatic _packVec3(values) {\n\t\tv3.x = values[0];\n\t\tv3.y = values[1];\n\t\tv3.z = values[2];\n\t\treturn v3;\n\t}\n\tstatic _packVec4(values) {\n\t\tv4.x = values[0];\n\t\tv4.y = values[1];\n\t\tv4.z = values[2];\n\t\tv4.w = values[3];\n\t\treturn v4;\n\t}\n\tstatic _packColor(values) {\n\t\tc.r = values[0];\n\t\tc.g = values[1];\n\t\tc.b = values[2];\n\t\tc.a = values[3];\n\t\treturn c;\n\t}\n\tstatic _packQuat(values) {\n\t\tq.x = values[0];\n\t\tq.y = values[1];\n\t\tq.z = values[2];\n\t\tq.w = values[3];\n\t\treturn q;\n\t}\n\tresolve(path) {\n\t\tconst encodedPath = AnimBinder.encode(path.entityPath, path.component, path.propertyPath);\n\t\tlet target = this.targetCache[encodedPath];\n\t\tif (target) return target;\n\t\tlet entity;\n\t\tlet propertyComponent;\n\t\tlet targetPath;\n\t\tswitch (path.component) {\n\t\t\tcase 'entity':\n\t\t\t\tentity = this._getEntityFromHierarchy(path.entityPath);\n\t\t\t\ttargetPath = AnimBinder.encode(entity.path, 'entity', path.propertyPath);\n\t\t\t\tpropertyComponent = entity;\n\t\t\t\tbreak;\n\t\t\tcase 'graph':\n\t\t\t\tpropertyComponent = this.findNode(path);\n\t\t\t\tif (!propertyComponent) return null;\n\t\t\t\ttargetPath = AnimBinder.encode(propertyComponent.path, 'graph', path.propertyPath);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tentity = this._getEntityFromHierarchy(path.entityPath);\n\t\t\t\tpropertyComponent = entity.findComponent(path.component);\n\t\t\t\tif (!propertyComponent) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\ttargetPath = AnimBinder.encode(entity.path, path.component, path.propertyPath);\n\t\t\t\tbreak;\n\t\t}\n\t\ttarget = this._createAnimTargetForProperty(propertyComponent, path.propertyPath, targetPath);\n\t\tthis.targetCache[encodedPath] = target;\n\t\treturn target;\n\t}\n\tupdate(deltaTime) {\n\t\tconst activeNodes = this.activeNodes;\n\t\tif (activeNodes) {\n\t\t\tfor (let i = 0; i < activeNodes.length; i++) {\n\t\t\t\tactiveNodes[i]._dirtifyLocal();\n\t\t\t}\n\t\t}\n\t}\n\t_getEntityFromHierarchy(entityHierarchy) {\n\t\tif (!this.animComponent.entity.name === entityHierarchy[0]) {\n\t\t\treturn null;\n\t\t}\n\t\tconst currEntity = this.animComponent.entity;\n\t\tif (entityHierarchy.length === 1) {\n\t\t\treturn currEntity;\n\t\t}\n\t\treturn currEntity._parent.findByPath(entityHierarchy);\n\t}\n\t_resolvePath(object, path, resolveLeaf) {\n\t\tconst steps = path.length - (resolveLeaf ? 0 : 1);\n\t\tfor (let i = 0; i < steps; i++) {\n\t\t\tobject = object[path[i]];\n\t\t}\n\t\treturn object;\n\t}\n\t_setter(object, path, packFunc) {\n\t\tconst obj = this._resolvePath(object, path);\n\t\tconst key = path[path.length - 1];\n\t\tconst setterFuncName = `set${key.substring(0, 1).toUpperCase()}${key.substring(1)}`;\n\t\tif (obj[setterFuncName]) {\n\t\t\tconst getterFunc = obj[`get${key.substring(0, 1).toUpperCase()}${key.substring(1)}`].bind(obj);\n\t\t\tlet baseValues = getterFunc();\n\t\t\tbaseValues = [baseValues.x, baseValues.y, baseValues.z, baseValues.w];\n\t\t\tconst setterFunc = obj[setterFuncName].bind(obj);\n\t\t\treturn {\n\t\t\t\tset: values => {\n\t\t\t\t\tsetterFunc(packFunc(values));\n\t\t\t\t},\n\t\t\t\tget: () => baseValues\n\t\t\t};\n\t\t}\n\t\tconst prop = obj[key];\n\t\tif (typeof prop === 'object' && prop.hasOwnProperty('copy')) {\n\t\t\treturn function (values) {\n\t\t\t\tprop.copy(packFunc(values));\n\t\t\t};\n\t\t}\n\t\tif ([Vec2, Vec3, Vec4, Color, Quat].indexOf(obj.constructor) !== -1 && path.length > 1) {\n\t\t\tconst parent = path.length > 2 ? this._resolvePath(object, path.slice(0, -1)) : object;\n\t\t\tconst objKey = path[path.length - 2];\n\t\t\treturn function (values) {\n\t\t\t\tobj[key] = packFunc(values);\n\t\t\t\tparent[objKey] = obj;\n\t\t\t};\n\t\t}\n\t\treturn function (values) {\n\t\t\tobj[key] = packFunc(values);\n\t\t};\n\t}\n\t_createAnimTargetForProperty(propertyComponent, propertyHierarchy, targetPath) {\n\t\tif (this.handlers && propertyHierarchy[0].startsWith('weight.')) {\n\t\t\treturn this.handlers.weight(propertyComponent, propertyHierarchy[0].replace('weight.', ''));\n\t\t} else if (this.handlers && propertyHierarchy[0] === 'material' && propertyHierarchy.length === 2) {\n\t\t\tconst materialPropertyName = propertyHierarchy[1];\n\t\t\tif (materialPropertyName.endsWith('Map')) {\n\t\t\t\treturn this.handlers.materialTexture(propertyComponent, materialPropertyName);\n\t\t\t}\n\t\t}\n\t\tconst property = this._resolvePath(propertyComponent, propertyHierarchy, true);\n\t\tif (typeof property === 'undefined') {\n\t\t\treturn null;\n\t\t}\n\t\tlet setter;\n\t\tlet animDataType;\n\t\tlet animDataComponents;\n\t\tif (typeof property === 'number') {\n\t\t\tsetter = this._setter(propertyComponent, propertyHierarchy, AnimComponentBinder._packFloat);\n\t\t\tanimDataType = 'vector';\n\t\t\tanimDataComponents = 1;\n\t\t} else if (typeof property === 'boolean') {\n\t\t\tsetter = this._setter(propertyComponent, propertyHierarchy, AnimComponentBinder._packBoolean);\n\t\t\tanimDataType = 'vector';\n\t\t\tanimDataComponents = 1;\n\t\t} else if (typeof property === 'object') {\n\t\t\tswitch (property.constructor) {\n\t\t\t\tcase Vec2:\n\t\t\t\t\tsetter = this._setter(propertyComponent, propertyHierarchy, AnimComponentBinder._packVec2);\n\t\t\t\t\tanimDataType = 'vector';\n\t\t\t\t\tanimDataComponents = 2;\n\t\t\t\t\tbreak;\n\t\t\t\tcase Vec3:\n\t\t\t\t\tsetter = this._setter(propertyComponent, propertyHierarchy, AnimComponentBinder._packVec3);\n\t\t\t\t\tanimDataType = 'vector';\n\t\t\t\t\tanimDataComponents = 3;\n\t\t\t\t\tbreak;\n\t\t\t\tcase Vec4:\n\t\t\t\t\tsetter = this._setter(propertyComponent, propertyHierarchy, AnimComponentBinder._packVec4);\n\t\t\t\t\tanimDataType = 'vector';\n\t\t\t\t\tanimDataComponents = 4;\n\t\t\t\t\tbreak;\n\t\t\t\tcase Color:\n\t\t\t\t\tsetter = this._setter(propertyComponent, propertyHierarchy, AnimComponentBinder._packColor);\n\t\t\t\t\tanimDataType = 'vector';\n\t\t\t\t\tanimDataComponents = 4;\n\t\t\t\t\tbreak;\n\t\t\t\tcase Quat:\n\t\t\t\t\tsetter = this._setter(propertyComponent, propertyHierarchy, AnimComponentBinder._packQuat);\n\t\t\t\t\tanimDataType = 'quaternion';\n\t\t\t\t\tanimDataComponents = 4;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t\tif (propertyHierarchy.indexOf('material') !== -1) {\n\t\t\treturn new AnimTarget(values => {\n\t\t\t\tsetter(values);\n\t\t\t\tpropertyComponent.material.update();\n\t\t\t}, animDataType, animDataComponents, targetPath);\n\t\t}\n\t\treturn new AnimTarget(setter, animDataType, animDataComponents, targetPath);\n\t}\n\trebind() {\n\t\tthis.targetCache = {};\n\t\tif (this.animComponent.rootBone) {\n\t\t\tthis.graph = this.animComponent.rootBone;\n\t\t} else {\n\t\t\tthis.graph = this.animComponent.entity;\n\t\t}\n\t\tconst nodes = {};\n\t\tconst flatten = function flatten(node) {\n\t\t\tnodes[node.name] = node;\n\t\t\tfor (let i = 0; i < node.children.length; ++i) {\n\t\t\t\tflatten(node.children[i]);\n\t\t\t}\n\t\t};\n\t\tflatten(this.graph);\n\t\tthis.nodes = nodes;\n\t}\n}\n\nclass AnimComponentLayer {\n\tconstructor(name, controller, component, weight = 1, blendType = ANIM_LAYER_OVERWRITE) {\n\t\tthis._name = void 0;\n\t\tthis._controller = void 0;\n\t\tthis._component = void 0;\n\t\tthis._weight = void 0;\n\t\tthis._blendType = void 0;\n\t\tthis._mask = null;\n\t\tthis._blendTime = 0;\n\t\tthis._blendTimeElapsed = 0;\n\t\tthis._startingWeight = 0;\n\t\tthis._targetWeight = 0;\n\t\tthis._name = name;\n\t\tthis._controller = controller;\n\t\tthis._component = component;\n\t\tthis._weight = weight;\n\t\tthis._blendType = blendType;\n\t}\n\tget name() {\n\t\treturn this._name;\n\t}\n\tset playing(value) {\n\t\tthis._controller.playing = value;\n\t}\n\tget playing() {\n\t\treturn this._controller.playing;\n\t}\n\tget playable() {\n\t\treturn this._controller.playable;\n\t}\n\tget activeState() {\n\t\treturn this._controller.activeStateName;\n\t}\n\tget previousState() {\n\t\treturn this._controller.previousStateName;\n\t}\n\tget activeStateProgress() {\n\t\treturn this._controller.activeStateProgress;\n\t}\n\tget activeStateDuration() {\n\t\treturn this._controller.activeStateDuration;\n\t}\n\tset activeStateCurrentTime(time) {\n\t\tconst controller = this._controller;\n\t\tconst layerPlaying = controller.playing;\n\t\tcontroller.playing = true;\n\t\tcontroller.activeStateCurrentTime = time;\n\t\tif (!layerPlaying) {\n\t\t\tcontroller.update(0);\n\t\t}\n\t\tcontroller.playing = layerPlaying;\n\t}\n\tget activeStateCurrentTime() {\n\t\treturn this._controller.activeStateCurrentTime;\n\t}\n\tget transitioning() {\n\t\treturn this._controller.transitioning;\n\t}\n\tget transitionProgress() {\n\t\tif (this.transitioning) {\n\t\t\treturn this._controller.transitionProgress;\n\t\t}\n\t\treturn null;\n\t}\n\tget states() {\n\t\treturn this._controller.states;\n\t}\n\tset weight(value) {\n\t\tthis._weight = value;\n\t\tthis._component.dirtifyTargets();\n\t}\n\tget weight() {\n\t\treturn this._weight;\n\t}\n\tset blendType(value) {\n\t\tif (value !== this._blendType) {\n\t\t\tthis._blendType = value;\n\t\t\tif (this._controller.normalizeWeights) {\n\t\t\t\tthis._component.rebind();\n\t\t\t}\n\t\t}\n\t}\n\tget blendType() {\n\t\treturn this._blendType;\n\t}\n\tset mask(value) {\n\t\tif (this._controller.assignMask(value)) {\n\t\t\tthis._component.rebind();\n\t\t}\n\t\tthis._mask = value;\n\t}\n\tget mask() {\n\t\treturn this._mask;\n\t}\n\tplay(name) {\n\t\tthis._controller.play(name);\n\t}\n\tpause() {\n\t\tthis._controller.pause();\n\t}\n\treset() {\n\t\tthis._controller.reset();\n\t}\n\trebind() {\n\t\tthis._controller.rebind();\n\t}\n\tupdate(dt) {\n\t\tif (this._blendTime) {\n\t\t\tif (this._blendTimeElapsed < this._blendTime) {\n\t\t\t\tthis.weight = math.lerp(this._startingWeight, this._targetWeight, this._blendTimeElapsed / this._blendTime);\n\t\t\t\tthis._blendTimeElapsed += dt;\n\t\t\t} else {\n\t\t\t\tthis.weight = this._targetWeight;\n\t\t\t\tthis._blendTime = 0;\n\t\t\t\tthis._blendTimeElapsed = 0;\n\t\t\t\tthis._startingWeight = 0;\n\t\t\t\tthis._targetWeight = 0;\n\t\t\t}\n\t\t}\n\t\tthis._controller.update(dt);\n\t}\n\tblendToWeight(weight, time) {\n\t\tthis._startingWeight = this.weight;\n\t\tthis._targetWeight = weight;\n\t\tthis._blendTime = Math.max(0, time);\n\t\tthis._blendTimeElapsed = 0;\n\t}\n\tassignMask(mask) {\n\t\tif (this._controller.assignMask(mask)) {\n\t\t\tthis._component.rebind();\n\t\t}\n\t\tthis._mask = mask;\n\t}\n\tassignAnimation(nodePath, animTrack, speed, loop) {\n\t\tif (!(animTrack instanceof AnimTrack)) {\n\t\t\treturn;\n\t\t}\n\t\tthis._controller.assignAnimation(nodePath, animTrack, speed, loop);\n\t\tif (this._controller._transitions.length === 0) {\n\t\t\tthis._controller._transitions.push(new AnimTransition({\n\t\t\t\tfrom: 'START',\n\t\t\t\tto: nodePath\n\t\t\t}));\n\t\t}\n\t\tif (this._component.activate && this._component.playable) {\n\t\t\tthis._component.playing = true;\n\t\t}\n\t}\n\tremoveNodeAnimations(nodeName) {\n\t\tif (this._controller.removeNodeAnimations(nodeName)) {\n\t\t\tthis._component.playing = false;\n\t\t}\n\t}\n\tgetAnimationAsset(stateName) {\n\t\treturn this._component.animationAssets[`${this.name}:${stateName}`];\n\t}\n\ttransition(to, time = 0, transitionOffset = null) {\n\t\tthis._controller.updateStateFromTransition(new AnimTransition({\n\t\t\tfrom: this._controller.activeStateName,\n\t\t\tto,\n\t\t\ttime,\n\t\t\ttransitionOffset\n\t\t}));\n\t}\n}\n\nclass AnimStateGraph {\n\tconstructor(data) {\n\t\tthis._layers = [];\n\t\tthis._parameters = {};\n\t\tif (!Array.isArray(data.layers)) {\n\t\t\tfor (const layerId in data.layers) {\n\t\t\t\tconst dataLayer = data.layers[layerId];\n\t\t\t\tconst layer = {\n\t\t\t\t\tname: dataLayer.name,\n\t\t\t\t\tblendType: dataLayer.blendType,\n\t\t\t\t\tweight: dataLayer.weight,\n\t\t\t\t\tstates: [],\n\t\t\t\t\ttransitions: []\n\t\t\t\t};\n\t\t\t\tfor (let i = 0; i < dataLayer.states.length; i++) {\n\t\t\t\t\tlayer.states.push(data.states[dataLayer.states[i]]);\n\t\t\t\t}\n\t\t\t\tfor (let i = 0; i < dataLayer.transitions.length; i++) {\n\t\t\t\t\tconst dataLayerTransition = data.transitions[dataLayer.transitions[i]];\n\t\t\t\t\tif (dataLayerTransition.conditions && !Array.isArray(dataLayerTransition.conditions)) {\n\t\t\t\t\t\tconst conditionKeys = Object.keys(dataLayerTransition.conditions);\n\t\t\t\t\t\tconst conditions = [];\n\t\t\t\t\t\tfor (let j = 0; j < conditionKeys.length; j++) {\n\t\t\t\t\t\t\tconst condition = dataLayerTransition.conditions[conditionKeys[j]];\n\t\t\t\t\t\t\tif (condition.parameterName) {\n\t\t\t\t\t\t\t\tconditions.push(condition);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdataLayerTransition.conditions = conditions;\n\t\t\t\t\t}\n\t\t\t\t\tif (Number.isInteger(dataLayerTransition.from)) {\n\t\t\t\t\t\tdataLayerTransition.from = data.states[dataLayerTransition.from].name;\n\t\t\t\t\t}\n\t\t\t\t\tif (Number.isInteger(dataLayerTransition.to)) {\n\t\t\t\t\t\tdataLayerTransition.to = data.states[dataLayerTransition.to].name;\n\t\t\t\t\t}\n\t\t\t\t\tlayer.transitions.push(dataLayerTransition);\n\t\t\t\t}\n\t\t\t\tthis._layers.push(layer);\n\t\t\t}\n\t\t} else {\n\t\t\tthis._layers = data.layers;\n\t\t}\n\t\tfor (const paramId in data.parameters) {\n\t\t\tconst param = data.parameters[paramId];\n\t\t\tthis._parameters[param.name] = {\n\t\t\t\ttype: param.type,\n\t\t\t\tvalue: param.value\n\t\t\t};\n\t\t}\n\t}\n\tget parameters() {\n\t\treturn Object.assign({}, this._parameters);\n\t}\n\tget layers() {\n\t\treturn this._layers;\n\t}\n}\n\nclass AnimComponent extends Component {\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis.findParameter = name => {\n\t\t\treturn this._parameters[name];\n\t\t};\n\t\tthis.consumeTrigger = name => {\n\t\t\tthis._consumedTriggers.add(name);\n\t\t};\n\t\tthis._stateGraphAsset = null;\n\t\tthis._animationAssets = {};\n\t\tthis._speed = 1.0;\n\t\tthis._activate = true;\n\t\tthis._playing = false;\n\t\tthis._rootBone = null;\n\t\tthis._stateGraph = null;\n\t\tthis._layers = [];\n\t\tthis._layerIndices = {};\n\t\tthis._parameters = {};\n\t\tthis._targets = {};\n\t\tthis._consumedTriggers = new Set();\n\t\tthis._normalizeWeights = false;\n\t}\n\tset stateGraphAsset(value) {\n\t\tif (value === null) {\n\t\t\tthis.removeStateGraph();\n\t\t\treturn;\n\t\t}\n\t\tif (this._stateGraphAsset) {\n\t\t\tconst stateGraphAsset = this.system.app.assets.get(this._stateGraphAsset);\n\t\t\tstateGraphAsset.off('change', this._onStateGraphAssetChangeEvent, this);\n\t\t}\n\t\tlet _id;\n\t\tlet _asset;\n\t\tif (value instanceof Asset) {\n\t\t\t_id = value.id;\n\t\t\t_asset = this.system.app.assets.get(_id);\n\t\t\tif (!_asset) {\n\t\t\t\tthis.system.app.assets.add(value);\n\t\t\t\t_asset = this.system.app.assets.get(_id);\n\t\t\t}\n\t\t} else {\n\t\t\t_id = value;\n\t\t\t_asset = this.system.app.assets.get(_id);\n\t\t}\n\t\tif (!_asset || this._stateGraphAsset === _id) {\n\t\t\treturn;\n\t\t}\n\t\tif (_asset.resource) {\n\t\t\tthis._stateGraph = _asset.resource;\n\t\t\tthis.loadStateGraph(this._stateGraph);\n\t\t\t_asset.on('change', this._onStateGraphAssetChangeEvent, this);\n\t\t} else {\n\t\t\t_asset.once('load', asset => {\n\t\t\t\tthis._stateGraph = asset.resource;\n\t\t\t\tthis.loadStateGraph(this._stateGraph);\n\t\t\t});\n\t\t\t_asset.on('change', this._onStateGraphAssetChangeEvent, this);\n\t\t\tthis.system.app.assets.load(_asset);\n\t\t}\n\t\tthis._stateGraphAsset = _id;\n\t}\n\tget stateGraphAsset() {\n\t\treturn this._stateGraphAsset;\n\t}\n\tset normalizeWeights(value) {\n\t\tthis._normalizeWeights = value;\n\t\tthis.unbind();\n\t}\n\tget normalizeWeights() {\n\t\treturn this._normalizeWeights;\n\t}\n\tset animationAssets(value) {\n\t\tthis._animationAssets = value;\n\t\tthis.loadAnimationAssets();\n\t}\n\tget animationAssets() {\n\t\treturn this._animationAssets;\n\t}\n\tset speed(value) {\n\t\tthis._speed = value;\n\t}\n\tget speed() {\n\t\treturn this._speed;\n\t}\n\tset activate(value) {\n\t\tthis._activate = value;\n\t}\n\tget activate() {\n\t\treturn this._activate;\n\t}\n\tset playing(value) {\n\t\tthis._playing = value;\n\t}\n\tget playing() {\n\t\treturn this._playing;\n\t}\n\tset rootBone(value) {\n\t\tif (typeof value === 'string') {\n\t\t\tconst entity = this.entity.root.findByGuid(value);\n\t\t\tthis._rootBone = entity;\n\t\t} else if (value instanceof Entity) {\n\t\t\tthis._rootBone = value;\n\t\t} else {\n\t\t\tthis._rootBone = null;\n\t\t}\n\t\tthis.rebind();\n\t}\n\tget rootBone() {\n\t\treturn this._rootBone;\n\t}\n\tset stateGraph(value) {\n\t\tthis._stateGraph = value;\n\t}\n\tget stateGraph() {\n\t\treturn this._stateGraph;\n\t}\n\tget layers() {\n\t\treturn this._layers;\n\t}\n\tset layerIndices(value) {\n\t\tthis._layerIndices = value;\n\t}\n\tget layerIndices() {\n\t\treturn this._layerIndices;\n\t}\n\tset parameters(value) {\n\t\tthis._parameters = value;\n\t}\n\tget parameters() {\n\t\treturn this._parameters;\n\t}\n\tset targets(value) {\n\t\tthis._targets = value;\n\t}\n\tget targets() {\n\t\treturn this._targets;\n\t}\n\tget playable() {\n\t\tfor (let i = 0; i < this._layers.length; i++) {\n\t\t\tif (!this._layers[i].playable) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\tget baseLayer() {\n\t\tif (this._layers.length > 0) {\n\t\t\treturn this._layers[0];\n\t\t}\n\t\treturn null;\n\t}\n\t_onStateGraphAssetChangeEvent(asset) {\n\t\tconst prevAnimationAssets = this.animationAssets;\n\t\tconst prevMasks = this.layers.map(layer => layer.mask);\n\t\tthis.removeStateGraph();\n\t\tthis._stateGraph = new AnimStateGraph(asset._data);\n\t\tthis.loadStateGraph(this._stateGraph);\n\t\tthis.animationAssets = prevAnimationAssets;\n\t\tthis.loadAnimationAssets();\n\t\tthis.layers.forEach((layer, i) => {\n\t\t\tlayer.mask = prevMasks[i];\n\t\t});\n\t\tthis.rebind();\n\t}\n\tdirtifyTargets() {\n\t\tconst targets = Object.values(this._targets);\n\t\tfor (let i = 0; i < targets.length; i++) {\n\t\t\ttargets[i].dirty = true;\n\t\t}\n\t}\n\t_addLayer({\n\t\tname,\n\t\tstates,\n\t\ttransitions,\n\t\tweight,\n\t\tmask,\n\t\tblendType\n\t}) {\n\t\tlet graph;\n\t\tif (this.rootBone) {\n\t\t\tgraph = this.rootBone;\n\t\t} else {\n\t\t\tgraph = this.entity;\n\t\t}\n\t\tconst layerIndex = this._layers.length;\n\t\tconst animBinder = new AnimComponentBinder(this, graph, name, mask, layerIndex);\n\t\tconst animEvaluator = new AnimEvaluator(animBinder);\n\t\tconst controller = new AnimController(animEvaluator, states, transitions, this._activate, this, this.findParameter, this.consumeTrigger);\n\t\tthis._layers.push(new AnimComponentLayer(name, controller, this, weight, blendType));\n\t\tthis._layerIndices[name] = layerIndex;\n\t\treturn this._layers[layerIndex];\n\t}\n\taddLayer(name, weight, mask, blendType) {\n\t\tconst layer = this.findAnimationLayer(name);\n\t\tif (layer) return layer;\n\t\tconst states = [{\n\t\t\t'name': 'START',\n\t\t\t'speed': 1\n\t\t}];\n\t\tconst transitions = [];\n\t\treturn this._addLayer({\n\t\t\tname,\n\t\t\tstates,\n\t\t\ttransitions,\n\t\t\tweight,\n\t\t\tmask,\n\t\t\tblendType\n\t\t});\n\t}\n\t_assignParameters(stateGraph) {\n\t\tthis._parameters = {};\n\t\tconst paramKeys = Object.keys(stateGraph.parameters);\n\t\tfor (let i = 0; i < paramKeys.length; i++) {\n\t\t\tconst paramKey = paramKeys[i];\n\t\t\tthis._parameters[paramKey] = {\n\t\t\t\ttype: stateGraph.parameters[paramKey].type,\n\t\t\t\tvalue: stateGraph.parameters[paramKey].value\n\t\t\t};\n\t\t}\n\t}\n\tloadStateGraph(stateGraph) {\n\t\tthis._stateGraph = stateGraph;\n\t\tthis._assignParameters(stateGraph);\n\t\tthis._layers = [];\n\t\tlet containsBlendTree = false;\n\t\tfor (let i = 0; i < stateGraph.layers.length; i++) {\n\t\t\tconst layer = stateGraph.layers[i];\n\t\t\tthis._addLayer(_extends({}, layer));\n\t\t\tif (layer.states.some(state => state.blendTree)) {\n\t\t\t\tcontainsBlendTree = true;\n\t\t\t}\n\t\t}\n\t\tif (!containsBlendTree) {\n\t\t\tthis.setupAnimationAssets();\n\t\t}\n\t}\n\tsetupAnimationAssets() {\n\t\tfor (let i = 0; i < this._layers.length; i++) {\n\t\t\tconst layer = this._layers[i];\n\t\t\tconst layerName = layer.name;\n\t\t\tfor (let j = 0; j < layer.states.length; j++) {\n\t\t\t\tconst stateName = layer.states[j];\n\t\t\t\tif (ANIM_CONTROL_STATES.indexOf(stateName) === -1) {\n\t\t\t\t\tconst stateKey = `${layerName}:${stateName}`;\n\t\t\t\t\tif (!this._animationAssets[stateKey]) {\n\t\t\t\t\t\tthis._animationAssets[stateKey] = {\n\t\t\t\t\t\t\tasset: null\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.loadAnimationAssets();\n\t}\n\tloadAnimationAssets() {\n\t\tfor (let i = 0; i < this._layers.length; i++) {\n\t\t\tconst layer = this._layers[i];\n\t\t\tfor (let j = 0; j < layer.states.length; j++) {\n\t\t\t\tconst stateName = layer.states[j];\n\t\t\t\tif (ANIM_CONTROL_STATES.indexOf(stateName) !== -1) continue;\n\t\t\t\tconst animationAsset = this._animationAssets[`${layer.name}:${stateName}`];\n\t\t\t\tif (!animationAsset || !animationAsset.asset) {\n\t\t\t\t\tthis.findAnimationLayer(layer.name).assignAnimation(stateName, AnimTrack.EMPTY);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst assetId = animationAsset.asset;\n\t\t\t\tconst asset = this.system.app.assets.get(assetId);\n\t\t\t\tif (asset) {\n\t\t\t\t\tif (asset.resource) {\n\t\t\t\t\t\tthis.onAnimationAssetLoaded(layer.name, stateName, asset);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tasset.once('load', function (layerName, stateName) {\n\t\t\t\t\t\t\treturn function (asset) {\n\t\t\t\t\t\t\t\tthis.onAnimationAssetLoaded(layerName, stateName, asset);\n\t\t\t\t\t\t\t}.bind(this);\n\t\t\t\t\t\t}.bind(this)(layer.name, stateName));\n\t\t\t\t\t\tthis.system.app.assets.load(asset);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tonAnimationAssetLoaded(layerName, stateName, asset) {\n\t\tthis.findAnimationLayer(layerName).assignAnimation(stateName, asset.resource);\n\t}\n\tremoveStateGraph() {\n\t\tthis._stateGraph = null;\n\t\tthis._stateGraphAsset = null;\n\t\tthis._animationAssets = {};\n\t\tthis._layers = [];\n\t\tthis._layerIndices = {};\n\t\tthis._parameters = {};\n\t\tthis._playing = false;\n\t\tthis.unbind();\n\t\tthis._targets = {};\n\t}\n\treset() {\n\t\tthis._assignParameters(this._stateGraph);\n\t\tfor (let i = 0; i < this._layers.length; i++) {\n\t\t\tconst layerPlaying = this._layers[i].playing;\n\t\t\tthis._layers[i].reset();\n\t\t\tthis._layers[i].playing = layerPlaying;\n\t\t}\n\t}\n\tunbind() {\n\t\tif (!this._normalizeWeights) {\n\t\t\tObject.keys(this._targets).forEach(targetKey => {\n\t\t\t\tthis._targets[targetKey].unbind();\n\t\t\t});\n\t\t}\n\t}\n\trebind() {\n\t\tthis._targets = {};\n\t\tfor (let i = 0; i < this._layers.length; i++) {\n\t\t\tthis._layers[i].rebind();\n\t\t}\n\t}\n\tfindAnimationLayer(name) {\n\t\tconst layerIndex = this._layerIndices[name];\n\t\treturn this._layers[layerIndex] || null;\n\t}\n\taddAnimationState(nodeName, animTrack, speed = 1, loop = true, layerName = 'Base') {\n\t\tif (!this._stateGraph) {\n\t\t\tthis.loadStateGraph(new AnimStateGraph({\n\t\t\t\t'layers': [{\n\t\t\t\t\t'name': layerName,\n\t\t\t\t\t'states': [{\n\t\t\t\t\t\t'name': 'START',\n\t\t\t\t\t\t'speed': 1\n\t\t\t\t\t}, {\n\t\t\t\t\t\t'name': nodeName,\n\t\t\t\t\t\t'speed': speed,\n\t\t\t\t\t\t'loop': loop,\n\t\t\t\t\t\t'defaultState': true\n\t\t\t\t\t}],\n\t\t\t\t\t'transitions': [{\n\t\t\t\t\t\t'from': 'START',\n\t\t\t\t\t\t'to': nodeName\n\t\t\t\t\t}]\n\t\t\t\t}],\n\t\t\t\t'parameters': {}\n\t\t\t}));\n\t\t}\n\t\tconst layer = this.findAnimationLayer(layerName);\n\t\tif (layer) {\n\t\t\tlayer.assignAnimation(nodeName, animTrack, speed, loop);\n\t\t} else {\n\t\t\tvar _this$addLayer;\n\t\t\t(_this$addLayer = this.addLayer(layerName)) == null || _this$addLayer.assignAnimation(nodeName, animTrack, speed, loop);\n\t\t}\n\t}\n\tassignAnimation(nodePath, animTrack, layerName, speed = 1, loop = true) {\n\t\tif (!this._stateGraph && nodePath.indexOf('.') === -1) {\n\t\t\tthis.loadStateGraph(new AnimStateGraph({\n\t\t\t\t'layers': [{\n\t\t\t\t\t'name': 'Base',\n\t\t\t\t\t'states': [{\n\t\t\t\t\t\t'name': 'START',\n\t\t\t\t\t\t'speed': 1\n\t\t\t\t\t}, {\n\t\t\t\t\t\t'name': nodePath,\n\t\t\t\t\t\t'speed': speed,\n\t\t\t\t\t\t'loop': loop,\n\t\t\t\t\t\t'defaultState': true\n\t\t\t\t\t}],\n\t\t\t\t\t'transitions': [{\n\t\t\t\t\t\t'from': 'START',\n\t\t\t\t\t\t'to': nodePath\n\t\t\t\t\t}]\n\t\t\t\t}],\n\t\t\t\t'parameters': {}\n\t\t\t}));\n\t\t\tthis.baseLayer.assignAnimation(nodePath, animTrack);\n\t\t\treturn;\n\t\t}\n\t\tconst layer = layerName ? this.findAnimationLayer(layerName) : this.baseLayer;\n\t\tif (!layer) {\n\t\t\treturn;\n\t\t}\n\t\tlayer.assignAnimation(nodePath, animTrack, speed, loop);\n\t}\n\tremoveNodeAnimations(nodeName, layerName) {\n\t\tconst layer = layerName ? this.findAnimationLayer(layerName) : this.baseLayer;\n\t\tif (!layer) {\n\t\t\treturn;\n\t\t}\n\t\tlayer.removeNodeAnimations(nodeName);\n\t}\n\tgetParameterValue(name, type) {\n\t\tconst param = this._parameters[name];\n\t\tif (param && param.type === type) {\n\t\t\treturn param.value;\n\t\t}\n\t\treturn undefined;\n\t}\n\tsetParameterValue(name, type, value) {\n\t\tconst param = this._parameters[name];\n\t\tif (param && param.type === type) {\n\t\t\tparam.value = value;\n\t\t\treturn;\n\t\t}\n\t}\n\tgetFloat(name) {\n\t\treturn this.getParameterValue(name, ANIM_PARAMETER_FLOAT);\n\t}\n\tsetFloat(name, value) {\n\t\tthis.setParameterValue(name, ANIM_PARAMETER_FLOAT, value);\n\t}\n\tgetInteger(name) {\n\t\treturn this.getParameterValue(name, ANIM_PARAMETER_INTEGER);\n\t}\n\tsetInteger(name, value) {\n\t\tif (typeof value === 'number' && value % 1 === 0) {\n\t\t\tthis.setParameterValue(name, ANIM_PARAMETER_INTEGER, value);\n\t\t}\n\t}\n\tgetBoolean(name) {\n\t\treturn this.getParameterValue(name, ANIM_PARAMETER_BOOLEAN);\n\t}\n\tsetBoolean(name, value) {\n\t\tthis.setParameterValue(name, ANIM_PARAMETER_BOOLEAN, !!value);\n\t}\n\tgetTrigger(name) {\n\t\treturn this.getParameterValue(name, ANIM_PARAMETER_TRIGGER);\n\t}\n\tsetTrigger(name, singleFrame = false) {\n\t\tthis.setParameterValue(name, ANIM_PARAMETER_TRIGGER, true);\n\t\tif (singleFrame) {\n\t\t\tthis._consumedTriggers.add(name);\n\t\t}\n\t}\n\tresetTrigger(name) {\n\t\tthis.setParameterValue(name, ANIM_PARAMETER_TRIGGER, false);\n\t}\n\tonBeforeRemove() {\n\t\tif (Number.isFinite(this._stateGraphAsset)) {\n\t\t\tconst stateGraphAsset = this.system.app.assets.get(this._stateGraphAsset);\n\t\t\tstateGraphAsset.off('change', this._onStateGraphAssetChangeEvent, this);\n\t\t}\n\t}\n\tupdate(dt) {\n\t\tfor (let i = 0; i < this.layers.length; i++) {\n\t\t\tthis.layers[i].update(dt * this.speed);\n\t\t}\n\t\tthis._consumedTriggers.forEach(trigger => {\n\t\t\tthis.parameters[trigger].value = false;\n\t\t});\n\t\tthis._consumedTriggers.clear();\n\t}\n\tresolveDuplicatedEntityReferenceProperties(oldAnim, duplicatedIdsMap) {\n\t\tif (oldAnim.rootBone && duplicatedIdsMap[oldAnim.rootBone.getGuid()]) {\n\t\t\tthis.rootBone = duplicatedIdsMap[oldAnim.rootBone.getGuid()];\n\t\t} else {\n\t\t\tthis.rebind();\n\t\t}\n\t}\n}\n\nclass AnimComponentData {\n\tconstructor() {\n\t\tthis.enabled = true;\n\t}\n}\n\nconst _schema$l = ['enabled'];\nclass AnimComponentSystem extends ComponentSystem {\n\tconstructor(app) {\n\t\tsuper(app);\n\t\tthis.id = 'anim';\n\t\tthis.ComponentType = AnimComponent;\n\t\tthis.DataType = AnimComponentData;\n\t\tthis.schema = _schema$l;\n\t\tthis.on('beforeremove', this.onBeforeRemove, this);\n\t\tthis.app.systems.on('animationUpdate', this.onAnimationUpdate, this);\n\t}\n\tinitializeComponentData(component, data, properties) {\n\t\tsuper.initializeComponentData(component, data, _schema$l);\n\t\tconst complexProperties = ['animationAssets', 'stateGraph', 'layers', 'masks'];\n\t\tObject.keys(data).forEach(key => {\n\t\t\tif (complexProperties.includes(key)) return;\n\t\t\tcomponent[key] = data[key];\n\t\t});\n\t\tif (data.stateGraph) {\n\t\t\tcomponent.stateGraph = data.stateGraph;\n\t\t\tcomponent.loadStateGraph(component.stateGraph);\n\t\t}\n\t\tif (data.layers) {\n\t\t\tdata.layers.forEach((layer, i) => {\n\t\t\t\tlayer._controller.states.forEach(stateKey => {\n\t\t\t\t\tlayer._controller._states[stateKey]._animationList.forEach(node => {\n\t\t\t\t\t\tif (!node.animTrack || node.animTrack === AnimTrack.EMPTY) {\n\t\t\t\t\t\t\tconst animationAsset = this.app.assets.get(layer._component._animationAssets[`${layer.name}:${node.name}`].asset);\n\t\t\t\t\t\t\tif (animationAsset && !animationAsset.loaded) {\n\t\t\t\t\t\t\t\tanimationAsset.once('load', () => {\n\t\t\t\t\t\t\t\t\tcomponent.layers[i].assignAnimation(node.name, animationAsset.resource);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcomponent.layers[i].assignAnimation(node.name, node.animTrack);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\tif (data.animationAssets) {\n\t\t\tcomponent.animationAssets = Object.assign(component.animationAssets, data.animationAssets);\n\t\t}\n\t\tif (data.masks) {\n\t\t\tObject.keys(data.masks).forEach(key => {\n\t\t\t\tif (component.layers[key]) {\n\t\t\t\t\tconst maskData = data.masks[key].mask;\n\t\t\t\t\tconst mask = {};\n\t\t\t\t\tObject.keys(maskData).forEach(maskKey => {\n\t\t\t\t\t\tmask[decodeURI(maskKey)] = maskData[maskKey];\n\t\t\t\t\t});\n\t\t\t\t\tcomponent.layers[key].mask = mask;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\tonAnimationUpdate(dt) {\n\t\tconst components = this.store;\n\t\tfor (const id in components) {\n\t\t\tif (components.hasOwnProperty(id)) {\n\t\t\t\tconst component = components[id].entity.anim;\n\t\t\t\tconst componentData = component.data;\n\t\t\t\tif (componentData.enabled && component.entity.enabled && component.playing) {\n\t\t\t\t\tcomponent.update(dt);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tcloneComponent(entity, clone) {\n\t\tlet masks;\n\t\tif (!entity.anim.rootBone || entity.anim.rootBone === entity) {\n\t\t\tmasks = {};\n\t\t\tentity.anim.layers.forEach((layer, i) => {\n\t\t\t\tif (layer.mask) {\n\t\t\t\t\tconst mask = {};\n\t\t\t\t\tObject.keys(layer.mask).forEach(path => {\n\t\t\t\t\t\tconst pathArr = path.split('/');\n\t\t\t\t\t\tpathArr.shift();\n\t\t\t\t\t\tconst clonePath = [clone.name, ...pathArr].join('/');\n\t\t\t\t\t\tmask[clonePath] = layer.mask[path];\n\t\t\t\t\t});\n\t\t\t\t\tmasks[i] = {\n\t\t\t\t\t\tmask\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tconst data = {\n\t\t\tstateGraphAsset: entity.anim.stateGraphAsset,\n\t\t\tanimationAssets: entity.anim.animationAssets,\n\t\t\tspeed: entity.anim.speed,\n\t\t\tactivate: entity.anim.activate,\n\t\t\tplaying: entity.anim.playing,\n\t\t\trootBone: entity.anim.rootBone,\n\t\t\tstateGraph: entity.anim.stateGraph,\n\t\t\tlayers: entity.anim.layers,\n\t\t\tlayerIndices: entity.anim.layerIndices,\n\t\t\tparameters: entity.anim.parameters,\n\t\t\tnormalizeWeights: entity.anim.normalizeWeights,\n\t\t\tmasks\n\t\t};\n\t\treturn this.addComponent(clone, data);\n\t}\n\tonBeforeRemove(entity, component) {\n\t\tcomponent.onBeforeRemove();\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.app.systems.off('animationUpdate', this.onAnimationUpdate, this);\n\t}\n}\nComponent._buildAccessors(AnimComponent.prototype, _schema$l);\n\nclass AudioListenerComponent extends Component {\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t}\n\tsetCurrentListener() {\n\t\tif (this.enabled && this.entity.audiolistener && this.entity.enabled) {\n\t\t\tthis.system.current = this.entity;\n\t\t\tconst position = this.system.current.getPosition();\n\t\t\tthis.system.manager.listener.setPosition(position);\n\t\t}\n\t}\n\tonEnable() {\n\t\tthis.setCurrentListener();\n\t}\n\tonDisable() {\n\t\tif (this.system.current === this.entity) {\n\t\t\tthis.system.current = null;\n\t\t}\n\t}\n}\n\nclass AudioListenerComponentData {\n\tconstructor() {\n\t\tthis.enabled = true;\n\t}\n}\n\nconst _schema$k = ['enabled'];\nclass AudioListenerComponentSystem extends ComponentSystem {\n\tconstructor(app) {\n\t\tsuper(app);\n\t\tthis.id = 'audiolistener';\n\t\tthis.ComponentType = AudioListenerComponent;\n\t\tthis.DataType = AudioListenerComponentData;\n\t\tthis.schema = _schema$k;\n\t\tthis.manager = app.soundManager;\n\t\tthis.current = null;\n\t\tthis.app.systems.on('update', this.onUpdate, this);\n\t}\n\tinitializeComponentData(component, data, properties) {\n\t\tproperties = ['enabled'];\n\t\tsuper.initializeComponentData(component, data, properties);\n\t}\n\tonUpdate(dt) {\n\t\tif (this.current) {\n\t\t\tconst position = this.current.getPosition();\n\t\t\tthis.manager.listener.setPosition(position);\n\t\t\tconst wtm = this.current.getWorldTransform();\n\t\t\tthis.manager.listener.setOrientation(wtm);\n\t\t}\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.app.systems.off('update', this.onUpdate, this);\n\t}\n}\nComponent._buildAccessors(AudioListenerComponent.prototype, _schema$k);\n\nclass AudioSourceComponent extends Component {\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis.on('set_assets', this.onSetAssets, this);\n\t\tthis.on('set_loop', this.onSetLoop, this);\n\t\tthis.on('set_volume', this.onSetVolume, this);\n\t\tthis.on('set_pitch', this.onSetPitch, this);\n\t\tthis.on('set_minDistance', this.onSetMinDistance, this);\n\t\tthis.on('set_maxDistance', this.onSetMaxDistance, this);\n\t\tthis.on('set_rollOffFactor', this.onSetRollOffFactor, this);\n\t\tthis.on('set_distanceModel', this.onSetDistanceModel, this);\n\t\tthis.on('set_3d', this.onSet3d, this);\n\t}\n\tplay(name) {\n\t\tif (!this.enabled || !this.entity.enabled) {\n\t\t\treturn;\n\t\t}\n\t\tif (this.channel) {\n\t\t\tthis.stop();\n\t\t}\n\t\tlet channel;\n\t\tconst componentData = this.data;\n\t\tif (componentData.sources[name]) {\n\t\t\tif (!componentData['3d']) {\n\t\t\t\tchannel = this.system.manager.playSound(componentData.sources[name], componentData);\n\t\t\t\tcomponentData.currentSource = name;\n\t\t\t\tcomponentData.channel = channel;\n\t\t\t} else {\n\t\t\t\tconst pos = this.entity.getPosition();\n\t\t\t\tchannel = this.system.manager.playSound3d(componentData.sources[name], pos, componentData);\n\t\t\t\tcomponentData.currentSource = name;\n\t\t\t\tcomponentData.channel = channel;\n\t\t\t}\n\t\t}\n\t}\n\tpause() {\n\t\tif (this.channel) {\n\t\t\tthis.channel.pause();\n\t\t}\n\t}\n\tunpause() {\n\t\tif (this.channel && this.channel.paused) {\n\t\t\tthis.channel.unpause();\n\t\t}\n\t}\n\tstop() {\n\t\tif (this.channel) {\n\t\t\tthis.channel.stop();\n\t\t\tthis.channel = null;\n\t\t}\n\t}\n\tonSetAssets(name, oldValue, newValue) {\n\t\tconst newAssets = [];\n\t\tconst len = newValue.length;\n\t\tif (oldValue && oldValue.length) {\n\t\t\tfor (let i = 0; i < oldValue.length; i++) {\n\t\t\t\tif (oldValue[i]) {\n\t\t\t\t\tconst asset = this.system.app.assets.get(oldValue[i]);\n\t\t\t\t\tif (asset) {\n\t\t\t\t\t\tasset.off('change', this.onAssetChanged, this);\n\t\t\t\t\t\tasset.off('remove', this.onAssetRemoved, this);\n\t\t\t\t\t\tif (this.currentSource === asset.name) {\n\t\t\t\t\t\t\tthis.stop();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (len) {\n\t\t\tfor (let i = 0; i < len; i++) {\n\t\t\t\tif (oldValue.indexOf(newValue[i]) < 0) {\n\t\t\t\t\tif (newValue[i] instanceof Asset) {\n\t\t\t\t\t\tnewAssets.push(newValue[i].id);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnewAssets.push(newValue[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (!this.system._inTools && newAssets.length) {\n\t\t\tthis.loadAudioSourceAssets(newAssets);\n\t\t}\n\t}\n\tonAssetChanged(asset, attribute, newValue, oldValue) {\n\t\tif (attribute === 'resource') {\n\t\t\tconst sources = this.data.sources;\n\t\t\tif (sources) {\n\t\t\t\tthis.data.sources[asset.name] = newValue;\n\t\t\t\tif (this.data.currentSource === asset.name) {\n\t\t\t\t\tif (this.channel) {\n\t\t\t\t\t\tif (this.channel.paused) {\n\t\t\t\t\t\t\tthis.play(asset.name);\n\t\t\t\t\t\t\tthis.pause();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.play(asset.name);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tonAssetRemoved(asset) {\n\t\tasset.off('remove', this.onAssetRemoved, this);\n\t\tif (this.data.sources[asset.name]) {\n\t\t\tdelete this.data.sources[asset.name];\n\t\t\tif (this.data.currentSource === asset.name) {\n\t\t\t\tthis.stop();\n\t\t\t\tthis.data.currentSource = null;\n\t\t\t}\n\t\t}\n\t}\n\tonSetLoop(name, oldValue, newValue) {\n\t\tif (oldValue !== newValue) {\n\t\t\tif (this.channel) {\n\t\t\t\tthis.channel.setLoop(newValue);\n\t\t\t}\n\t\t}\n\t}\n\tonSetVolume(name, oldValue, newValue) {\n\t\tif (oldValue !== newValue) {\n\t\t\tif (this.channel) {\n\t\t\t\tthis.channel.setVolume(newValue);\n\t\t\t}\n\t\t}\n\t}\n\tonSetPitch(name, oldValue, newValue) {\n\t\tif (oldValue !== newValue) {\n\t\t\tif (this.channel) {\n\t\t\t\tthis.channel.setPitch(newValue);\n\t\t\t}\n\t\t}\n\t}\n\tonSetMaxDistance(name, oldValue, newValue) {\n\t\tif (oldValue !== newValue) {\n\t\t\tif (this.channel instanceof Channel3d) {\n\t\t\t\tthis.channel.setMaxDistance(newValue);\n\t\t\t}\n\t\t}\n\t}\n\tonSetMinDistance(name, oldValue, newValue) {\n\t\tif (oldValue !== newValue) {\n\t\t\tif (this.channel instanceof Channel3d) {\n\t\t\t\tthis.channel.setMinDistance(newValue);\n\t\t\t}\n\t\t}\n\t}\n\tonSetRollOffFactor(name, oldValue, newValue) {\n\t\tif (oldValue !== newValue) {\n\t\t\tif (this.channel instanceof Channel3d) {\n\t\t\t\tthis.channel.setRollOffFactor(newValue);\n\t\t\t}\n\t\t}\n\t}\n\tonSetDistanceModel(name, oldValue, newValue) {\n\t\tif (oldValue !== newValue) {\n\t\t\tif (this.channel instanceof Channel3d) {\n\t\t\t\tthis.channel.setDistanceModel(newValue);\n\t\t\t}\n\t\t}\n\t}\n\tonSet3d(name, oldValue, newValue) {\n\t\tif (oldValue !== newValue) {\n\t\t\tif (this.system.initialized && this.currentSource) {\n\t\t\t\tlet paused = false;\n\t\t\t\tlet suspended = false;\n\t\t\t\tif (this.channel) {\n\t\t\t\t\tpaused = this.channel.paused;\n\t\t\t\t\tsuspended = this.channel.suspended;\n\t\t\t\t}\n\t\t\t\tthis.play(this.currentSource);\n\t\t\t\tif (this.channel) {\n\t\t\t\t\tthis.channel.paused = paused;\n\t\t\t\t\tthis.channel.suspended = suspended;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tonEnable() {\n\t\tconst assets = this.data.assets;\n\t\tif (assets) {\n\t\t\tconst registry = this.system.app.assets;\n\t\t\tfor (let i = 0, len = assets.length; i < len; i++) {\n\t\t\t\tlet asset = assets[i];\n\t\t\t\tif (!(asset instanceof Asset)) {\n\t\t\t\t\tasset = registry.get(asset);\n\t\t\t\t}\n\t\t\t\tif (asset && !asset.resource) {\n\t\t\t\t\tregistry.load(asset);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this.system.initialized) {\n\t\t\tif (this.data.activate && !this.channel) {\n\t\t\t\tthis.play(this.currentSource);\n\t\t\t} else {\n\t\t\t\tthis.unpause();\n\t\t\t}\n\t\t}\n\t}\n\tonDisable() {\n\t\tthis.pause();\n\t}\n\tloadAudioSourceAssets(ids) {\n\t\tconst assets = ids.map(id => {\n\t\t\treturn this.system.app.assets.get(id);\n\t\t});\n\t\tconst sources = {};\n\t\tlet currentSource = null;\n\t\tlet count = assets.length;\n\t\tconst _error = e => {\n\t\t\tcount--;\n\t\t};\n\t\tconst _done = () => {\n\t\t\tthis.data.sources = sources;\n\t\t\tthis.data.currentSource = currentSource;\n\t\t\tif (this.enabled && this.activate && currentSource) {\n\t\t\t\tthis.onEnable();\n\t\t\t}\n\t\t};\n\t\tassets.forEach((asset, index) => {\n\t\t\tif (asset) {\n\t\t\t\tcurrentSource = currentSource || asset.name;\n\t\t\t\tasset.off('change', this.onAssetChanged, this);\n\t\t\t\tasset.on('change', this.onAssetChanged, this);\n\t\t\t\tasset.off('remove', this.onAssetRemoved, this);\n\t\t\t\tasset.on('remove', this.onAssetRemoved, this);\n\t\t\t\tasset.off('error', _error, this);\n\t\t\t\tasset.on('error', _error, this);\n\t\t\t\tasset.ready(asset => {\n\t\t\t\t\tsources[asset.name] = asset.resource;\n\t\t\t\t\tcount--;\n\t\t\t\t\tif (count === 0) {\n\t\t\t\t\t\t_done();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif (!asset.resource && this.enabled && this.entity.enabled) {\n\t\t\t\t\tthis.system.app.assets.load(asset);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcount--;\n\t\t\t\tif (count === 0) {\n\t\t\t\t\t_done();\n\t\t\t\t}\n\t\t\t\tthis.system.app.assets.on(`add:${ids[index]}`, asset => {\n\t\t\t\t\tasset.ready(asset => {\n\t\t\t\t\t\tthis.data.sources[asset.name] = asset.resource;\n\t\t\t\t\t});\n\t\t\t\t\tif (!asset.resource) {\n\t\t\t\t\t\tthis.system.app.assets.load(asset);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n}\n\nclass AudioSourceComponentData {\n\tconstructor() {\n\t\tthis.enabled = true;\n\t\tthis.assets = [];\n\t\tthis.activate = true;\n\t\tthis.volume = 1;\n\t\tthis.pitch = 1;\n\t\tthis.loop = false;\n\t\tthis['3d'] = true;\n\t\tthis.minDistance = 1;\n\t\tthis.maxDistance = 10000;\n\t\tthis.rollOffFactor = 1;\n\t\tthis.distanceModel = DISTANCE_INVERSE;\n\t\tthis.paused = true;\n\t\tthis.sources = {};\n\t\tthis.currentSource = null;\n\t\tthis.channel = null;\n\t}\n}\n\nconst _schema$j = ['enabled', 'assets', 'volume', 'pitch', 'loop', 'activate', '3d', 'minDistance', 'maxDistance', 'rollOffFactor', 'distanceModel', 'sources', 'currentSource', 'channel'];\nclass AudioSourceComponentSystem extends ComponentSystem {\n\tconstructor(app) {\n\t\tsuper(app);\n\t\tthis.id = 'audiosource';\n\t\tthis.ComponentType = AudioSourceComponent;\n\t\tthis.DataType = AudioSourceComponentData;\n\t\tthis.schema = _schema$j;\n\t\tthis.manager = app.soundManager;\n\t\tthis.initialized = false;\n\t\tthis.app.systems.on('initialize', this.onInitialize, this);\n\t\tthis.app.systems.on('update', this.onUpdate, this);\n\t\tthis.on('remove', this.onRemove, this);\n\t}\n\tinitializeComponentData(component, data, properties) {\n\t\tproperties = ['activate', 'volume', 'pitch', 'loop', '3d', 'minDistance', 'maxDistance', 'rollOffFactor', 'distanceModel', 'enabled', 'assets'];\n\t\tsuper.initializeComponentData(component, data, properties);\n\t\tcomponent.paused = !(component.enabled && component.activate);\n\t}\n\tonInitialize(root) {\n\t\tif (root.audiosource && root.enabled && root.audiosource.enabled && root.audiosource.activate) {\n\t\t\troot.audiosource.play(root.audiosource.currentSource);\n\t\t}\n\t\tconst children = root._children;\n\t\tfor (let i = 0, len = children.length; i < len; i++) {\n\t\t\tif (children[i] instanceof Entity) {\n\t\t\t\tthis.onInitialize(children[i]);\n\t\t\t}\n\t\t}\n\t\tthis.initialized = true;\n\t}\n\tonUpdate(dt) {\n\t\tconst components = this.store;\n\t\tfor (const id in components) {\n\t\t\tif (components.hasOwnProperty(id)) {\n\t\t\t\tconst component = components[id];\n\t\t\t\tconst entity = component.entity;\n\t\t\t\tconst componentData = component.data;\n\t\t\t\tif (componentData.enabled && entity.enabled && componentData.channel instanceof Channel3d) {\n\t\t\t\t\tconst pos = entity.getPosition();\n\t\t\t\t\tcomponentData.channel.setPosition(pos);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tonRemove(entity, data) {\n\t\tif (data.channel) {\n\t\t\tdata.channel.stop();\n\t\t\tdata.channel = null;\n\t\t}\n\t}\n\tsetVolume(volume) {\n\t\tthis.manager.setVolume(volume);\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.app.systems.off('initialize', this.onInitialize, this);\n\t\tthis.app.systems.off('update', this.onUpdate, this);\n\t}\n}\nComponent._buildAccessors(AudioSourceComponent.prototype, _schema$j);\n\nconst BUTTON_TRANSITION_MODE_TINT = 0;\nconst BUTTON_TRANSITION_MODE_SPRITE_CHANGE = 1;\n\nconst ELEMENTTYPE_GROUP = 'group';\nconst ELEMENTTYPE_IMAGE = 'image';\nconst ELEMENTTYPE_TEXT = 'text';\nconst FITMODE_STRETCH = 'stretch';\nconst FITMODE_CONTAIN = 'contain';\nconst FITMODE_COVER = 'cover';\n\nconst VisualState = {\n\tDEFAULT: 'DEFAULT',\n\tHOVER: 'HOVER',\n\tPRESSED: 'PRESSED',\n\tINACTIVE: 'INACTIVE'\n};\nconst STATES_TO_TINT_NAMES = {};\nSTATES_TO_TINT_NAMES[VisualState.DEFAULT] = '_defaultTint';\nSTATES_TO_TINT_NAMES[VisualState.HOVER] = 'hoverTint';\nSTATES_TO_TINT_NAMES[VisualState.PRESSED] = 'pressedTint';\nSTATES_TO_TINT_NAMES[VisualState.INACTIVE] = 'inactiveTint';\nconst STATES_TO_SPRITE_ASSET_NAMES = {};\nSTATES_TO_SPRITE_ASSET_NAMES[VisualState.DEFAULT] = '_defaultSpriteAsset';\nSTATES_TO_SPRITE_ASSET_NAMES[VisualState.HOVER] = 'hoverSpriteAsset';\nSTATES_TO_SPRITE_ASSET_NAMES[VisualState.PRESSED] = 'pressedSpriteAsset';\nSTATES_TO_SPRITE_ASSET_NAMES[VisualState.INACTIVE] = 'inactiveSpriteAsset';\nconst STATES_TO_SPRITE_FRAME_NAMES = {};\nSTATES_TO_SPRITE_FRAME_NAMES[VisualState.DEFAULT] = '_defaultSpriteFrame';\nSTATES_TO_SPRITE_FRAME_NAMES[VisualState.HOVER] = 'hoverSpriteFrame';\nSTATES_TO_SPRITE_FRAME_NAMES[VisualState.PRESSED] = 'pressedSpriteFrame';\nSTATES_TO_SPRITE_FRAME_NAMES[VisualState.INACTIVE] = 'inactiveSpriteFrame';\nclass ButtonComponent extends Component {\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis._imageEntity = null;\n\t\tthis._evtElementAdd = null;\n\t\tthis._evtImageEntityElementAdd = null;\n\t\tthis._evtImageEntityElementRemove = null;\n\t\tthis._evtImageEntityElementColor = null;\n\t\tthis._evtImageEntityElementOpacity = null;\n\t\tthis._evtImageEntityElementSpriteAsset = null;\n\t\tthis._evtImageEntityElementSpriteFrame = null;\n\t\tthis._visualState = VisualState.DEFAULT;\n\t\tthis._isHovering = false;\n\t\tthis._hoveringCounter = 0;\n\t\tthis._isPressed = false;\n\t\tthis._defaultTint = new Color(1, 1, 1, 1);\n\t\tthis._defaultSpriteAsset = null;\n\t\tthis._defaultSpriteFrame = 0;\n\t\tthis._toggleLifecycleListeners('on', system);\n\t}\n\tget data() {\n\t\tconst record = this.system.store[this.entity.getGuid()];\n\t\treturn record ? record.data : null;\n\t}\n\tset enabled(arg) {\n\t\tthis._setValue('enabled', arg);\n\t}\n\tget enabled() {\n\t\treturn this.data.enabled;\n\t}\n\tset active(arg) {\n\t\tthis._setValue('active', arg);\n\t}\n\tget active() {\n\t\treturn this.data.active;\n\t}\n\tset imageEntity(arg) {\n\t\tif (this._imageEntity !== arg) {\n\t\t\tconst isString = typeof arg === 'string';\n\t\t\tif (this._imageEntity && isString && this._imageEntity.getGuid() === arg) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this._imageEntity) {\n\t\t\t\tthis._imageEntityUnsubscribe();\n\t\t\t}\n\t\t\tif (arg instanceof GraphNode) {\n\t\t\t\tthis._imageEntity = arg;\n\t\t\t} else if (isString) {\n\t\t\t\tthis._imageEntity = this.system.app.getEntityFromIndex(arg) || null;\n\t\t\t} else {\n\t\t\t\tthis._imageEntity = null;\n\t\t\t}\n\t\t\tif (this._imageEntity) {\n\t\t\t\tthis._imageEntitySubscribe();\n\t\t\t}\n\t\t\tif (this._imageEntity) {\n\t\t\t\tthis.data.imageEntity = this._imageEntity.getGuid();\n\t\t\t} else if (isString && arg) {\n\t\t\t\tthis.data.imageEntity = arg;\n\t\t\t}\n\t\t}\n\t}\n\tget imageEntity() {\n\t\treturn this._imageEntity;\n\t}\n\tset hitPadding(arg) {\n\t\tthis._setValue('hitPadding', arg);\n\t}\n\tget hitPadding() {\n\t\treturn this.data.hitPadding;\n\t}\n\tset transitionMode(arg) {\n\t\tthis._setValue('transitionMode', arg);\n\t}\n\tget transitionMode() {\n\t\treturn this.data.transitionMode;\n\t}\n\tset hoverTint(arg) {\n\t\tthis._setValue('hoverTint', arg);\n\t}\n\tget hoverTint() {\n\t\treturn this.data.hoverTint;\n\t}\n\tset pressedTint(arg) {\n\t\tthis._setValue('pressedTint', arg);\n\t}\n\tget pressedTint() {\n\t\treturn this.data.pressedTint;\n\t}\n\tset inactiveTint(arg) {\n\t\tthis._setValue('inactiveTint', arg);\n\t}\n\tget inactiveTint() {\n\t\treturn this.data.inactiveTint;\n\t}\n\tset fadeDuration(arg) {\n\t\tthis._setValue('fadeDuration', arg);\n\t}\n\tget fadeDuration() {\n\t\treturn this.data.fadeDuration;\n\t}\n\tset hoverSpriteAsset(arg) {\n\t\tthis._setValue('hoverSpriteAsset', arg);\n\t}\n\tget hoverSpriteAsset() {\n\t\treturn this.data.hoverSpriteAsset;\n\t}\n\tset hoverSpriteFrame(arg) {\n\t\tthis._setValue('hoverSpriteFrame', arg);\n\t}\n\tget hoverSpriteFrame() {\n\t\treturn this.data.hoverSpriteFrame;\n\t}\n\tset pressedSpriteAsset(arg) {\n\t\tthis._setValue('pressedSpriteAsset', arg);\n\t}\n\tget pressedSpriteAsset() {\n\t\treturn this.data.pressedSpriteAsset;\n\t}\n\tset pressedSpriteFrame(arg) {\n\t\tthis._setValue('pressedSpriteFrame', arg);\n\t}\n\tget pressedSpriteFrame() {\n\t\treturn this.data.pressedSpriteFrame;\n\t}\n\tset inactiveSpriteAsset(arg) {\n\t\tthis._setValue('inactiveSpriteAsset', arg);\n\t}\n\tget inactiveSpriteAsset() {\n\t\treturn this.data.inactiveSpriteAsset;\n\t}\n\tset inactiveSpriteFrame(arg) {\n\t\tthis._setValue('inactiveSpriteFrame', arg);\n\t}\n\tget inactiveSpriteFrame() {\n\t\treturn this.data.inactiveSpriteFrame;\n\t}\n\t_setValue(name, value) {\n\t\tconst data = this.data;\n\t\tconst oldValue = data[name];\n\t\tdata[name] = value;\n\t\tthis.fire('set', name, oldValue, value);\n\t}\n\t_toggleLifecycleListeners(onOrOff, system) {\n\t\tthis[onOrOff]('set_active', this._onSetActive, this);\n\t\tthis[onOrOff]('set_transitionMode', this._onSetTransitionMode, this);\n\t\tthis[onOrOff]('set_hoverTint', this._onSetTransitionValue, this);\n\t\tthis[onOrOff]('set_pressedTint', this._onSetTransitionValue, this);\n\t\tthis[onOrOff]('set_inactiveTint', this._onSetTransitionValue, this);\n\t\tthis[onOrOff]('set_hoverSpriteAsset', this._onSetTransitionValue, this);\n\t\tthis[onOrOff]('set_hoverSpriteFrame', this._onSetTransitionValue, this);\n\t\tthis[onOrOff]('set_pressedSpriteAsset', this._onSetTransitionValue, this);\n\t\tthis[onOrOff]('set_pressedSpriteFrame', this._onSetTransitionValue, this);\n\t\tthis[onOrOff]('set_inactiveSpriteAsset', this._onSetTransitionValue, this);\n\t\tthis[onOrOff]('set_inactiveSpriteFrame', this._onSetTransitionValue, this);\n\t\tif (onOrOff === 'on') {\n\t\t\tthis._evtElementAdd = this.entity.on('element:add', this._onElementComponentAdd, this);\n\t\t} else {\n\t\t\tvar _this$_evtElementAdd;\n\t\t\t(_this$_evtElementAdd = this._evtElementAdd) == null || _this$_evtElementAdd.off();\n\t\t\tthis._evtElementAdd = null;\n\t\t}\n\t}\n\t_onSetActive(name, oldValue, newValue) {\n\t\tif (oldValue !== newValue) {\n\t\t\tthis._updateVisualState();\n\t\t}\n\t}\n\t_onSetTransitionMode(name, oldValue, newValue) {\n\t\tif (oldValue !== newValue) {\n\t\t\tthis._cancelTween();\n\t\t\tthis._resetToDefaultVisualState(oldValue);\n\t\t\tthis._forceReapplyVisualState();\n\t\t}\n\t}\n\t_onSetTransitionValue(name, oldValue, newValue) {\n\t\tif (oldValue !== newValue) {\n\t\t\tthis._forceReapplyVisualState();\n\t\t}\n\t}\n\t_imageEntitySubscribe() {\n\t\tthis._evtImageEntityElementAdd = this._imageEntity.on('element:add', this._onImageElementGain, this);\n\t\tif (this._imageEntity.element) {\n\t\t\tthis._onImageElementGain();\n\t\t}\n\t}\n\t_imageEntityUnsubscribe() {\n\t\tvar _this$_evtImageEntity, _this$_imageEntity;\n\t\t(_this$_evtImageEntity = this._evtImageEntityElementAdd) == null || _this$_evtImageEntity.off();\n\t\tthis._evtImageEntityElementAdd = null;\n\t\tif ((_this$_imageEntity = this._imageEntity) != null && _this$_imageEntity.element) {\n\t\t\tthis._onImageElementLose();\n\t\t}\n\t}\n\t_imageEntityElementSubscribe() {\n\t\tconst element = this._imageEntity.element;\n\t\tthis._evtImageEntityElementRemove = element.once('beforeremove', this._onImageElementLose, this);\n\t\tthis._evtImageEntityElementColor = element.on('set:color', this._onSetColor, this);\n\t\tthis._evtImageEntityElementOpacity = element.on('set:opacity', this._onSetOpacity, this);\n\t\tthis._evtImageEntityElementSpriteAsset = element.on('set:spriteAsset', this._onSetSpriteAsset, this);\n\t\tthis._evtImageEntityElementSpriteFrame = element.on('set:spriteFrame', this._onSetSpriteFrame, this);\n\t}\n\t_imageEntityElementUnsubscribe() {\n\t\tvar _this$_evtImageEntity2, _this$_evtImageEntity3, _this$_evtImageEntity4, _this$_evtImageEntity5, _this$_evtImageEntity6;\n\t\t(_this$_evtImageEntity2 = this._evtImageEntityElementRemove) == null || _this$_evtImageEntity2.off();\n\t\tthis._evtImageEntityElementRemove = null;\n\t\t(_this$_evtImageEntity3 = this._evtImageEntityElementColor) == null || _this$_evtImageEntity3.off();\n\t\tthis._evtImageEntityElementColor = null;\n\t\t(_this$_evtImageEntity4 = this._evtImageEntityElementOpacity) == null || _this$_evtImageEntity4.off();\n\t\tthis._evtImageEntityElementOpacity = null;\n\t\t(_this$_evtImageEntity5 = this._evtImageEntityElementSpriteAsset) == null || _this$_evtImageEntity5.off();\n\t\tthis._evtImageEntityElementSpriteAsset = null;\n\t\t(_this$_evtImageEntity6 = this._evtImageEntityElementSpriteFrame) == null || _this$_evtImageEntity6.off();\n\t\tthis._evtImageEntityElementSpriteFrame = null;\n\t}\n\t_onElementComponentRemove() {\n\t\tthis._toggleHitElementListeners('off');\n\t}\n\t_onElementComponentAdd() {\n\t\tthis._toggleHitElementListeners('on');\n\t}\n\t_onImageElementLose() {\n\t\tthis._imageEntityElementUnsubscribe();\n\t\tthis._cancelTween();\n\t\tthis._resetToDefaultVisualState(this.transitionMode);\n\t}\n\t_onImageElementGain() {\n\t\tthis._imageEntityElementSubscribe();\n\t\tthis._storeDefaultVisualState();\n\t\tthis._forceReapplyVisualState();\n\t}\n\t_toggleHitElementListeners(onOrOff) {\n\t\tif (this.entity.element) {\n\t\t\tconst isAdding = onOrOff === 'on';\n\t\t\tif (isAdding && this._hasHitElementListeners) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.entity.element[onOrOff]('beforeremove', this._onElementComponentRemove, this);\n\t\t\tthis.entity.element[onOrOff]('mouseenter', this._onMouseEnter, this);\n\t\t\tthis.entity.element[onOrOff]('mouseleave', this._onMouseLeave, this);\n\t\t\tthis.entity.element[onOrOff]('mousedown', this._onMouseDown, this);\n\t\t\tthis.entity.element[onOrOff]('mouseup', this._onMouseUp, this);\n\t\t\tthis.entity.element[onOrOff]('touchstart', this._onTouchStart, this);\n\t\t\tthis.entity.element[onOrOff]('touchend', this._onTouchEnd, this);\n\t\t\tthis.entity.element[onOrOff]('touchleave', this._onTouchLeave, this);\n\t\t\tthis.entity.element[onOrOff]('touchcancel', this._onTouchCancel, this);\n\t\t\tthis.entity.element[onOrOff]('selectstart', this._onSelectStart, this);\n\t\t\tthis.entity.element[onOrOff]('selectend', this._onSelectEnd, this);\n\t\t\tthis.entity.element[onOrOff]('selectenter', this._onSelectEnter, this);\n\t\t\tthis.entity.element[onOrOff]('selectleave', this._onSelectLeave, this);\n\t\t\tthis.entity.element[onOrOff]('click', this._onClick, this);\n\t\t\tthis._hasHitElementListeners = isAdding;\n\t\t}\n\t}\n\t_storeDefaultVisualState() {\n\t\tvar _this$_imageEntity2;\n\t\tconst element = (_this$_imageEntity2 = this._imageEntity) == null ? void 0 : _this$_imageEntity2.element;\n\t\tif (!element || element.type === ELEMENTTYPE_GROUP) {\n\t\t\treturn;\n\t\t}\n\t\tthis._storeDefaultColor(element.color);\n\t\tthis._storeDefaultOpacity(element.opacity);\n\t\tthis._storeDefaultSpriteAsset(element.spriteAsset);\n\t\tthis._storeDefaultSpriteFrame(element.spriteFrame);\n\t}\n\t_storeDefaultColor(color) {\n\t\tthis._defaultTint.r = color.r;\n\t\tthis._defaultTint.g = color.g;\n\t\tthis._defaultTint.b = color.b;\n\t}\n\t_storeDefaultOpacity(opacity) {\n\t\tthis._defaultTint.a = opacity;\n\t}\n\t_storeDefaultSpriteAsset(spriteAsset) {\n\t\tthis._defaultSpriteAsset = spriteAsset;\n\t}\n\t_storeDefaultSpriteFrame(spriteFrame) {\n\t\tthis._defaultSpriteFrame = spriteFrame;\n\t}\n\t_onSetColor(color) {\n\t\tif (!this._isApplyingTint) {\n\t\t\tthis._storeDefaultColor(color);\n\t\t\tthis._forceReapplyVisualState();\n\t\t}\n\t}\n\t_onSetOpacity(opacity) {\n\t\tif (!this._isApplyingTint) {\n\t\t\tthis._storeDefaultOpacity(opacity);\n\t\t\tthis._forceReapplyVisualState();\n\t\t}\n\t}\n\t_onSetSpriteAsset(spriteAsset) {\n\t\tif (!this._isApplyingSprite) {\n\t\t\tthis._storeDefaultSpriteAsset(spriteAsset);\n\t\t\tthis._forceReapplyVisualState();\n\t\t}\n\t}\n\t_onSetSpriteFrame(spriteFrame) {\n\t\tif (!this._isApplyingSprite) {\n\t\t\tthis._storeDefaultSpriteFrame(spriteFrame);\n\t\t\tthis._forceReapplyVisualState();\n\t\t}\n\t}\n\t_onMouseEnter(event) {\n\t\tthis._isHovering = true;\n\t\tthis._updateVisualState();\n\t\tthis._fireIfActive('mouseenter', event);\n\t}\n\t_onMouseLeave(event) {\n\t\tthis._isHovering = false;\n\t\tthis._isPressed = false;\n\t\tthis._updateVisualState();\n\t\tthis._fireIfActive('mouseleave', event);\n\t}\n\t_onMouseDown(event) {\n\t\tthis._isPressed = true;\n\t\tthis._updateVisualState();\n\t\tthis._fireIfActive('mousedown', event);\n\t}\n\t_onMouseUp(event) {\n\t\tthis._isPressed = false;\n\t\tthis._updateVisualState();\n\t\tthis._fireIfActive('mouseup', event);\n\t}\n\t_onTouchStart(event) {\n\t\tthis._isPressed = true;\n\t\tthis._updateVisualState();\n\t\tthis._fireIfActive('touchstart', event);\n\t}\n\t_onTouchEnd(event) {\n\t\tevent.event.preventDefault();\n\t\tthis._isPressed = false;\n\t\tthis._updateVisualState();\n\t\tthis._fireIfActive('touchend', event);\n\t}\n\t_onTouchLeave(event) {\n\t\tthis._isPressed = false;\n\t\tthis._updateVisualState();\n\t\tthis._fireIfActive('touchleave', event);\n\t}\n\t_onTouchCancel(event) {\n\t\tthis._isPressed = false;\n\t\tthis._updateVisualState();\n\t\tthis._fireIfActive('touchcancel', event);\n\t}\n\t_onSelectStart(event) {\n\t\tthis._isPressed = true;\n\t\tthis._updateVisualState();\n\t\tthis._fireIfActive('selectstart', event);\n\t}\n\t_onSelectEnd(event) {\n\t\tthis._isPressed = false;\n\t\tthis._updateVisualState();\n\t\tthis._fireIfActive('selectend', event);\n\t}\n\t_onSelectEnter(event) {\n\t\tthis._hoveringCounter++;\n\t\tif (this._hoveringCounter === 1) {\n\t\t\tthis._isHovering = true;\n\t\t\tthis._updateVisualState();\n\t\t}\n\t\tthis._fireIfActive('selectenter', event);\n\t}\n\t_onSelectLeave(event) {\n\t\tthis._hoveringCounter--;\n\t\tif (this._hoveringCounter === 0) {\n\t\t\tthis._isHovering = false;\n\t\t\tthis._isPressed = false;\n\t\t\tthis._updateVisualState();\n\t\t}\n\t\tthis._fireIfActive('selectleave', event);\n\t}\n\t_onClick(event) {\n\t\tthis._fireIfActive('click', event);\n\t}\n\t_fireIfActive(name, event) {\n\t\tif (this.data.active) {\n\t\t\tthis.fire(name, event);\n\t\t}\n\t}\n\t_updateVisualState(force) {\n\t\tconst oldVisualState = this._visualState;\n\t\tconst newVisualState = this._determineVisualState();\n\t\tif ((oldVisualState !== newVisualState || force) && this.enabled) {\n\t\t\tthis._visualState = newVisualState;\n\t\t\tif (oldVisualState === VisualState.HOVER) {\n\t\t\t\tthis._fireIfActive('hoverend');\n\t\t\t}\n\t\t\tif (oldVisualState === VisualState.PRESSED) {\n\t\t\t\tthis._fireIfActive('pressedend');\n\t\t\t}\n\t\t\tif (newVisualState === VisualState.HOVER) {\n\t\t\t\tthis._fireIfActive('hoverstart');\n\t\t\t}\n\t\t\tif (newVisualState === VisualState.PRESSED) {\n\t\t\t\tthis._fireIfActive('pressedstart');\n\t\t\t}\n\t\t\tswitch (this.transitionMode) {\n\t\t\t\tcase BUTTON_TRANSITION_MODE_TINT:\n\t\t\t\t\t{\n\t\t\t\t\t\tconst tintName = STATES_TO_TINT_NAMES[this._visualState];\n\t\t\t\t\t\tconst tintColor = this[tintName];\n\t\t\t\t\t\tthis._applyTint(tintColor);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase BUTTON_TRANSITION_MODE_SPRITE_CHANGE:\n\t\t\t\t\t{\n\t\t\t\t\t\tconst spriteAssetName = STATES_TO_SPRITE_ASSET_NAMES[this._visualState];\n\t\t\t\t\t\tconst spriteFrameName = STATES_TO_SPRITE_FRAME_NAMES[this._visualState];\n\t\t\t\t\t\tconst spriteAsset = this[spriteAssetName];\n\t\t\t\t\t\tconst spriteFrame = this[spriteFrameName];\n\t\t\t\t\t\tthis._applySprite(spriteAsset, spriteFrame);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t_forceReapplyVisualState() {\n\t\tthis._updateVisualState(true);\n\t}\n\t_resetToDefaultVisualState(transitionMode) {\n\t\tvar _this$_imageEntity3;\n\t\tif (!((_this$_imageEntity3 = this._imageEntity) != null && _this$_imageEntity3.element)) {\n\t\t\treturn;\n\t\t}\n\t\tswitch (transitionMode) {\n\t\t\tcase BUTTON_TRANSITION_MODE_TINT:\n\t\t\t\tthis._cancelTween();\n\t\t\t\tthis._applyTintImmediately(this._defaultTint);\n\t\t\t\tbreak;\n\t\t\tcase BUTTON_TRANSITION_MODE_SPRITE_CHANGE:\n\t\t\t\tthis._applySprite(this._defaultSpriteAsset, this._defaultSpriteFrame);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\t_determineVisualState() {\n\t\tif (!this.active) {\n\t\t\treturn VisualState.INACTIVE;\n\t\t} else if (this._isPressed) {\n\t\t\treturn VisualState.PRESSED;\n\t\t} else if (this._isHovering) {\n\t\t\treturn VisualState.HOVER;\n\t\t}\n\t\treturn VisualState.DEFAULT;\n\t}\n\t_applySprite(spriteAsset, spriteFrame) {\n\t\tvar _this$_imageEntity4;\n\t\tconst element = (_this$_imageEntity4 = this._imageEntity) == null ? void 0 : _this$_imageEntity4.element;\n\t\tif (!element) {\n\t\t\treturn;\n\t\t}\n\t\tspriteFrame = spriteFrame || 0;\n\t\tthis._isApplyingSprite = true;\n\t\tif (element.spriteAsset !== spriteAsset) {\n\t\t\telement.spriteAsset = spriteAsset;\n\t\t}\n\t\tif (element.spriteFrame !== spriteFrame) {\n\t\t\telement.spriteFrame = spriteFrame;\n\t\t}\n\t\tthis._isApplyingSprite = false;\n\t}\n\t_applyTint(tintColor) {\n\t\tthis._cancelTween();\n\t\tif (this.fadeDuration === 0) {\n\t\t\tthis._applyTintImmediately(tintColor);\n\t\t} else {\n\t\t\tthis._applyTintWithTween(tintColor);\n\t\t}\n\t}\n\t_applyTintImmediately(tintColor) {\n\t\tvar _this$_imageEntity5;\n\t\tconst element = (_this$_imageEntity5 = this._imageEntity) == null ? void 0 : _this$_imageEntity5.element;\n\t\tif (!tintColor || !element || element.type === ELEMENTTYPE_GROUP) {\n\t\t\treturn;\n\t\t}\n\t\tconst color3 = toColor3(tintColor);\n\t\tthis._isApplyingTint = true;\n\t\tif (!color3.equals(element.color)) {\n\t\t\telement.color = color3;\n\t\t}\n\t\tif (element.opacity !== tintColor.a) {\n\t\t\telement.opacity = tintColor.a;\n\t\t}\n\t\tthis._isApplyingTint = false;\n\t}\n\t_applyTintWithTween(tintColor) {\n\t\tvar _this$_imageEntity6;\n\t\tconst element = (_this$_imageEntity6 = this._imageEntity) == null ? void 0 : _this$_imageEntity6.element;\n\t\tif (!tintColor || !element || element.type === ELEMENTTYPE_GROUP) {\n\t\t\treturn;\n\t\t}\n\t\tconst color3 = toColor3(tintColor);\n\t\tconst color = element.color;\n\t\tconst opacity = element.opacity;\n\t\tif (color3.equals(color) && tintColor.a === opacity) return;\n\t\tthis._tweenInfo = {\n\t\t\tstartTime: now(),\n\t\t\tfrom: new Color(color.r, color.g, color.b, opacity),\n\t\t\tto: tintColor.clone(),\n\t\t\tlerpColor: new Color()\n\t\t};\n\t}\n\t_updateTintTween() {\n\t\tconst elapsedTime = now() - this._tweenInfo.startTime;\n\t\tlet elapsedProportion = this.fadeDuration === 0 ? 1 : elapsedTime / this.fadeDuration;\n\t\telapsedProportion = math.clamp(elapsedProportion, 0, 1);\n\t\tif (Math.abs(elapsedProportion - 1) > 1e-5) {\n\t\t\tconst lerpColor = this._tweenInfo.lerpColor;\n\t\t\tlerpColor.lerp(this._tweenInfo.from, this._tweenInfo.to, elapsedProportion);\n\t\t\tthis._applyTintImmediately(new Color(lerpColor.r, lerpColor.g, lerpColor.b, lerpColor.a));\n\t\t} else {\n\t\t\tthis._applyTintImmediately(this._tweenInfo.to);\n\t\t\tthis._cancelTween();\n\t\t}\n\t}\n\t_cancelTween() {\n\t\tdelete this._tweenInfo;\n\t}\n\tonUpdate() {\n\t\tif (this._tweenInfo) {\n\t\t\tthis._updateTintTween();\n\t\t}\n\t}\n\tonEnable() {\n\t\tthis._isHovering = false;\n\t\tthis._hoveringCounter = 0;\n\t\tthis._isPressed = false;\n\t\tthis._toggleHitElementListeners('on');\n\t\tthis._forceReapplyVisualState();\n\t}\n\tonDisable() {\n\t\tthis._toggleHitElementListeners('off');\n\t\tthis._resetToDefaultVisualState(this.transitionMode);\n\t}\n\tonRemove() {\n\t\tthis._imageEntityUnsubscribe();\n\t\tthis._toggleLifecycleListeners('off', this.system);\n\t\tthis.onDisable();\n\t}\n\tresolveDuplicatedEntityReferenceProperties(oldButton, duplicatedIdsMap) {\n\t\tif (oldButton.imageEntity) {\n\t\t\tthis.imageEntity = duplicatedIdsMap[oldButton.imageEntity.getGuid()];\n\t\t}\n\t}\n}\nButtonComponent.EVENT_MOUSEDOWN = 'mousedown';\nButtonComponent.EVENT_MOUSEUP = 'mouseup';\nButtonComponent.EVENT_MOUSEENTER = 'mouseenter';\nButtonComponent.EVENT_MOUSELEAVE = 'mouseleave';\nButtonComponent.EVENT_CLICK = 'click';\nButtonComponent.EVENT_TOUCHSTART = 'touchstart';\nButtonComponent.EVENT_TOUCHEND = 'touchend';\nButtonComponent.EVENT_TOUCHCANCEL = 'touchcancel';\nButtonComponent.EVENT_TOUCHLEAVE = 'touchleave';\nButtonComponent.EVENT_SELECTSTART = 'selectstart';\nButtonComponent.EVENT_SELECTEND = 'selectend';\nButtonComponent.EVENT_SELECTENTER = 'selectenter';\nButtonComponent.EVENT_SELECTLEAVE = 'selectleave';\nButtonComponent.EVENT_HOVERSTART = 'hoverstart';\nButtonComponent.EVENT_HOVEREND = 'hoverend';\nButtonComponent.EVENT_PRESSEDSTART = 'pressedstart';\nButtonComponent.EVENT_PRESSEDEND = 'pressedend';\nfunction toColor3(color4) {\n\treturn new Color(color4.r, color4.g, color4.b);\n}\n\nclass ButtonComponentData {\n\tconstructor() {\n\t\tthis.enabled = true;\n\t\tthis.active = true;\n\t\tthis.imageEntity = null;\n\t\tthis.hitPadding = new Vec4();\n\t\tthis.transitionMode = BUTTON_TRANSITION_MODE_TINT;\n\t\tthis.hoverTint = new Color(0.75, 0.75, 0.75);\n\t\tthis.pressedTint = new Color(0.5, 0.5, 0.5);\n\t\tthis.inactiveTint = new Color(0.25, 0.25, 0.25);\n\t\tthis.fadeDuration = 0;\n\t\tthis.hoverSpriteAsset = null;\n\t\tthis.hoverSpriteFrame = 0;\n\t\tthis.pressedSpriteAsset = null;\n\t\tthis.pressedSpriteFrame = 0;\n\t\tthis.inactiveSpriteAsset = null;\n\t\tthis.inactiveSpriteFrame = 0;\n\t}\n}\n\nconst _schema$i = ['enabled', 'active', {\n\tname: 'hitPadding',\n\ttype: 'vec4'\n}, 'transitionMode', {\n\tname: 'hoverTint',\n\ttype: 'rgba'\n}, {\n\tname: 'pressedTint',\n\ttype: 'rgba'\n}, {\n\tname: 'inactiveTint',\n\ttype: 'rgba'\n}, 'fadeDuration', 'hoverSpriteAsset', 'hoverSpriteFrame', 'pressedSpriteAsset', 'pressedSpriteFrame', 'inactiveSpriteAsset', 'inactiveSpriteFrame'];\nclass ButtonComponentSystem extends ComponentSystem {\n\tconstructor(app) {\n\t\tsuper(app);\n\t\tthis.id = 'button';\n\t\tthis.ComponentType = ButtonComponent;\n\t\tthis.DataType = ButtonComponentData;\n\t\tthis.schema = _schema$i;\n\t\tthis.on('beforeremove', this._onRemoveComponent, this);\n\t\tthis.app.systems.on('update', this.onUpdate, this);\n\t}\n\tinitializeComponentData(component, data, properties) {\n\t\tcomponent.imageEntity = data.imageEntity;\n\t\tsuper.initializeComponentData(component, data, _schema$i);\n\t}\n\tonUpdate(dt) {\n\t\tconst components = this.store;\n\t\tfor (const id in components) {\n\t\t\tconst entity = components[id].entity;\n\t\t\tconst component = entity.button;\n\t\t\tif (component.enabled && entity.enabled) {\n\t\t\t\tcomponent.onUpdate();\n\t\t\t}\n\t\t}\n\t}\n\t_onRemoveComponent(entity, component) {\n\t\tcomponent.onRemove();\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.app.systems.off('update', this.onUpdate, this);\n\t}\n}\n\nconst _vec3$1 = new Vec3();\nconst _quat = new Quat();\nclass CollisionComponent extends Component {\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis._compoundParent = null;\n\t\tthis._hasOffset = false;\n\t\tthis.entity.on('insert', this._onInsert, this);\n\t\tthis.on('set_type', this.onSetType, this);\n\t\tthis.on('set_convexHull', this.onSetModel, this);\n\t\tthis.on('set_halfExtents', this.onSetHalfExtents, this);\n\t\tthis.on('set_linearOffset', this.onSetOffset, this);\n\t\tthis.on('set_angularOffset', this.onSetOffset, this);\n\t\tthis.on('set_radius', this.onSetRadius, this);\n\t\tthis.on('set_height', this.onSetHeight, this);\n\t\tthis.on('set_axis', this.onSetAxis, this);\n\t\tthis.on('set_asset', this.onSetAsset, this);\n\t\tthis.on('set_renderAsset', this.onSetRenderAsset, this);\n\t\tthis.on('set_model', this.onSetModel, this);\n\t\tthis.on('set_render', this.onSetRender, this);\n\t}\n\tget data() {\n\t\tconst record = this.system.store[this.entity.getGuid()];\n\t\treturn record ? record.data : null;\n\t}\n\tset enabled(arg) {\n\t\tthis._setValue('enabled', arg);\n\t}\n\tget enabled() {\n\t\treturn this.data.enabled;\n\t}\n\tset type(arg) {\n\t\tthis._setValue('type', arg);\n\t}\n\tget type() {\n\t\treturn this.data.type;\n\t}\n\tset halfExtents(arg) {\n\t\tthis._setValue('halfExtents', arg);\n\t}\n\tget halfExtents() {\n\t\treturn this.data.halfExtents;\n\t}\n\tset linearOffset(arg) {\n\t\tthis._setValue('linearOffset', arg);\n\t}\n\tget linearOffset() {\n\t\treturn this.data.linearOffset;\n\t}\n\tset angularOffset(arg) {\n\t\tthis._setValue('angularOffset', arg);\n\t}\n\tget angularOffset() {\n\t\treturn this.data.angularOffset;\n\t}\n\tset radius(arg) {\n\t\tthis._setValue('radius', arg);\n\t}\n\tget radius() {\n\t\treturn this.data.radius;\n\t}\n\tset axis(arg) {\n\t\tthis._setValue('axis', arg);\n\t}\n\tget axis() {\n\t\treturn this.data.axis;\n\t}\n\tset height(arg) {\n\t\tthis._setValue('height', arg);\n\t}\n\tget height() {\n\t\treturn this.data.height;\n\t}\n\tset asset(arg) {\n\t\tthis._setValue('asset', arg);\n\t}\n\tget asset() {\n\t\treturn this.data.asset;\n\t}\n\tset renderAsset(arg) {\n\t\tthis._setValue('renderAsset', arg);\n\t}\n\tget renderAsset() {\n\t\treturn this.data.renderAsset;\n\t}\n\tset convexHull(arg) {\n\t\tthis._setValue('convexHull', arg);\n\t}\n\tget convexHull() {\n\t\treturn this.data.convexHull;\n\t}\n\tset shape(arg) {\n\t\tthis._setValue('shape', arg);\n\t}\n\tget shape() {\n\t\treturn this.data.shape;\n\t}\n\tset model(arg) {\n\t\tthis._setValue('model', arg);\n\t}\n\tget model() {\n\t\treturn this.data.model;\n\t}\n\tset render(arg) {\n\t\tthis._setValue('render', arg);\n\t}\n\tget render() {\n\t\treturn this.data.render;\n\t}\n\tset checkVertexDuplicates(arg) {\n\t\tthis._setValue('checkVertexDuplicates', arg);\n\t}\n\tget checkVertexDuplicates() {\n\t\treturn this.data.checkVertexDuplicates;\n\t}\n\t_setValue(name, value) {\n\t\tconst data = this.data;\n\t\tconst oldValue = data[name];\n\t\tdata[name] = value;\n\t\tthis.fire('set', name, oldValue, value);\n\t}\n\tonSetType(name, oldValue, newValue) {\n\t\tif (oldValue !== newValue) {\n\t\t\tthis.system.changeType(this, oldValue, newValue);\n\t\t}\n\t}\n\tonSetHalfExtents(name, oldValue, newValue) {\n\t\tconst t = this.data.type;\n\t\tif (this.data.initialized && t === 'box') {\n\t\t\tthis.system.recreatePhysicalShapes(this);\n\t\t}\n\t}\n\tonSetOffset(name, oldValue, newValue) {\n\t\tthis._hasOffset = !this.data.linearOffset.equals(Vec3.ZERO) || !this.data.angularOffset.equals(Quat.IDENTITY);\n\t\tif (this.data.initialized) {\n\t\t\tthis.system.recreatePhysicalShapes(this);\n\t\t}\n\t}\n\tonSetRadius(name, oldValue, newValue) {\n\t\tconst t = this.data.type;\n\t\tif (this.data.initialized && (t === 'sphere' || t === 'capsule' || t === 'cylinder' || t === 'cone')) {\n\t\t\tthis.system.recreatePhysicalShapes(this);\n\t\t}\n\t}\n\tonSetHeight(name, oldValue, newValue) {\n\t\tconst t = this.data.type;\n\t\tif (this.data.initialized && (t === 'capsule' || t === 'cylinder' || t === 'cone')) {\n\t\t\tthis.system.recreatePhysicalShapes(this);\n\t\t}\n\t}\n\tonSetAxis(name, oldValue, newValue) {\n\t\tconst t = this.data.type;\n\t\tif (this.data.initialized && (t === 'capsule' || t === 'cylinder' || t === 'cone')) {\n\t\t\tthis.system.recreatePhysicalShapes(this);\n\t\t}\n\t}\n\tonSetAsset(name, oldValue, newValue) {\n\t\tconst assets = this.system.app.assets;\n\t\tif (oldValue) {\n\t\t\tconst asset = assets.get(oldValue);\n\t\t\tif (asset) {\n\t\t\t\tasset.off('remove', this.onAssetRemoved, this);\n\t\t\t}\n\t\t}\n\t\tif (newValue) {\n\t\t\tif (newValue instanceof Asset) {\n\t\t\t\tthis.data.asset = newValue.id;\n\t\t\t}\n\t\t\tconst asset = assets.get(this.data.asset);\n\t\t\tif (asset) {\n\t\t\t\tasset.off('remove', this.onAssetRemoved, this);\n\t\t\t\tasset.on('remove', this.onAssetRemoved, this);\n\t\t\t}\n\t\t}\n\t\tif (this.data.initialized && this.data.type === 'mesh') {\n\t\t\tif (!newValue) {\n\t\t\t\tthis.data.model = null;\n\t\t\t}\n\t\t\tthis.system.recreatePhysicalShapes(this);\n\t\t}\n\t}\n\tonSetRenderAsset(name, oldValue, newValue) {\n\t\tconst assets = this.system.app.assets;\n\t\tif (oldValue) {\n\t\t\tconst asset = assets.get(oldValue);\n\t\t\tif (asset) {\n\t\t\t\tasset.off('remove', this.onRenderAssetRemoved, this);\n\t\t\t}\n\t\t}\n\t\tif (newValue) {\n\t\t\tif (newValue instanceof Asset) {\n\t\t\t\tthis.data.renderAsset = newValue.id;\n\t\t\t}\n\t\t\tconst asset = assets.get(this.data.renderAsset);\n\t\t\tif (asset) {\n\t\t\t\tasset.off('remove', this.onRenderAssetRemoved, this);\n\t\t\t\tasset.on('remove', this.onRenderAssetRemoved, this);\n\t\t\t}\n\t\t}\n\t\tif (this.data.initialized && this.data.type === 'mesh') {\n\t\t\tif (!newValue) {\n\t\t\t\tthis.data.render = null;\n\t\t\t}\n\t\t\tthis.system.recreatePhysicalShapes(this);\n\t\t}\n\t}\n\tonSetModel(name, oldValue, newValue) {\n\t\tif (this.data.initialized && this.data.type === 'mesh') {\n\t\t\tthis.system.implementations.mesh.doRecreatePhysicalShape(this);\n\t\t}\n\t}\n\tonSetRender(name, oldValue, newValue) {\n\t\tthis.onSetModel(name, oldValue, newValue);\n\t}\n\tonAssetRemoved(asset) {\n\t\tasset.off('remove', this.onAssetRemoved, this);\n\t\tif (this.data.asset === asset.id) {\n\t\t\tthis.asset = null;\n\t\t}\n\t}\n\tonRenderAssetRemoved(asset) {\n\t\tasset.off('remove', this.onRenderAssetRemoved, this);\n\t\tif (this.data.renderAsset === asset.id) {\n\t\t\tthis.renderAsset = null;\n\t\t}\n\t}\n\tgetCompoundChildShapeIndex(shape) {\n\t\tconst compound = this.data.shape;\n\t\tconst shapes = compound.getNumChildShapes();\n\t\tfor (let i = 0; i < shapes; i++) {\n\t\t\tconst childShape = compound.getChildShape(i);\n\t\t\tif (Ammo.getPointer(childShape) === Ammo.getPointer(shape)) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\t_onInsert(parent) {\n\t\tif (typeof Ammo === 'undefined') {\n\t\t\treturn;\n\t\t}\n\t\tif (this._compoundParent) {\n\t\t\tthis.system.recreatePhysicalShapes(this);\n\t\t} else if (!this.entity.rigidbody) {\n\t\t\tlet ancestor = this.entity.parent;\n\t\t\twhile (ancestor) {\n\t\t\t\tif (ancestor.collision && ancestor.collision.type === 'compound') {\n\t\t\t\t\tif (ancestor.collision.shape.getNumChildShapes() === 0) {\n\t\t\t\t\t\tthis.system.recreatePhysicalShapes(ancestor.collision);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.system.recreatePhysicalShapes(this);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tancestor = ancestor.parent;\n\t\t\t}\n\t\t}\n\t}\n\t_updateCompound() {\n\t\tconst entity = this.entity;\n\t\tif (entity._dirtyWorld) {\n\t\t\tlet dirty = entity._dirtyLocal;\n\t\t\tlet parent = entity;\n\t\t\twhile (parent && !dirty) {\n\t\t\t\tif (parent.collision && parent.collision === this._compoundParent) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (parent._dirtyLocal) {\n\t\t\t\t\tdirty = true;\n\t\t\t\t}\n\t\t\t\tparent = parent.parent;\n\t\t\t}\n\t\t\tif (dirty) {\n\t\t\t\tentity.forEach(this.system.implementations.compound._updateEachDescendantTransform, entity);\n\t\t\t\tconst bodyComponent = this._compoundParent.entity.rigidbody;\n\t\t\t\tif (bodyComponent) {\n\t\t\t\t\tbodyComponent.activate();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tgetShapePosition() {\n\t\tconst pos = this.entity.getPosition();\n\t\tif (this._hasOffset) {\n\t\t\tconst rot = this.entity.getRotation();\n\t\t\tconst lo = this.data.linearOffset;\n\t\t\t_quat.copy(rot).transformVector(lo, _vec3$1);\n\t\t\treturn _vec3$1.add(pos);\n\t\t}\n\t\treturn pos;\n\t}\n\tgetShapeRotation() {\n\t\tconst rot = this.entity.getRotation();\n\t\tif (this._hasOffset) {\n\t\t\treturn _quat.copy(rot).mul(this.data.angularOffset);\n\t\t}\n\t\treturn rot;\n\t}\n\tonEnable() {\n\t\tif (this.data.type === 'mesh' && (this.data.asset || this.data.renderAsset) && this.data.initialized) {\n\t\t\tconst asset = this.system.app.assets.get(this.data.asset || this.data.renderAsset);\n\t\t\tif (asset && (!asset.resource || !this.data.shape)) {\n\t\t\t\tthis.system.recreatePhysicalShapes(this);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (this.entity.rigidbody) {\n\t\t\tif (this.entity.rigidbody.enabled) {\n\t\t\t\tthis.entity.rigidbody.enableSimulation();\n\t\t\t}\n\t\t} else if (this._compoundParent && this !== this._compoundParent) {\n\t\t\tif (this._compoundParent.shape.getNumChildShapes() === 0) {\n\t\t\t\tthis.system.recreatePhysicalShapes(this._compoundParent);\n\t\t\t} else {\n\t\t\t\tconst transform = this.system._getNodeTransform(this.entity, this._compoundParent.entity);\n\t\t\t\tthis._compoundParent.shape.addChildShape(transform, this.data.shape);\n\t\t\t\tAmmo.destroy(transform);\n\t\t\t\tif (this._compoundParent.entity.rigidbody) {\n\t\t\t\t\tthis._compoundParent.entity.rigidbody.activate();\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (this.entity.trigger) {\n\t\t\tthis.entity.trigger.enable();\n\t\t}\n\t}\n\tonDisable() {\n\t\tif (this.entity.rigidbody) {\n\t\t\tthis.entity.rigidbody.disableSimulation();\n\t\t} else if (this._compoundParent && this !== this._compoundParent) {\n\t\t\tif (!this._compoundParent.entity._destroying) {\n\t\t\t\tthis.system._removeCompoundChild(this._compoundParent, this.data.shape);\n\t\t\t\tif (this._compoundParent.entity.rigidbody) {\n\t\t\t\t\tthis._compoundParent.entity.rigidbody.activate();\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (this.entity.trigger) {\n\t\t\tthis.entity.trigger.disable();\n\t\t}\n\t}\n\tonBeforeRemove() {\n\t\tif (this.asset) {\n\t\t\tthis.asset = null;\n\t\t}\n\t\tif (this.renderAsset) {\n\t\t\tthis.renderAsset = null;\n\t\t}\n\t\tthis.entity.off('insert', this._onInsert, this);\n\t\tthis.off();\n\t}\n}\nCollisionComponent.EVENT_CONTACT = 'contact';\nCollisionComponent.EVENT_COLLISIONSTART = 'collisionstart';\nCollisionComponent.EVENT_COLLISIONEND = 'collisionend';\nCollisionComponent.EVENT_TRIGGERENTER = 'triggerenter';\nCollisionComponent.EVENT_TRIGGERLEAVE = 'triggerleave';\n\nclass CollisionComponentData {\n\tconstructor() {\n\t\tthis.enabled = true;\n\t\tthis.type = 'box';\n\t\tthis.halfExtents = new Vec3(0.5, 0.5, 0.5);\n\t\tthis.linearOffset = new Vec3();\n\t\tthis.angularOffset = new Quat();\n\t\tthis.radius = 0.5;\n\t\tthis.axis = 1;\n\t\tthis.height = 2;\n\t\tthis.convexHull = false;\n\t\tthis.asset = null;\n\t\tthis.renderAsset = null;\n\t\tthis.checkVertexDuplicates = true;\n\t\tthis.shape = null;\n\t\tthis.model = null;\n\t\tthis.render = null;\n\t\tthis.initialized = false;\n\t}\n}\n\nconst BODYTYPE_STATIC = 'static';\nconst BODYTYPE_DYNAMIC = 'dynamic';\nconst BODYTYPE_KINEMATIC = 'kinematic';\nconst BODYFLAG_STATIC_OBJECT = 1;\nconst BODYFLAG_KINEMATIC_OBJECT = 2;\nconst BODYFLAG_NORESPONSE_OBJECT = 4;\nconst BODYSTATE_ACTIVE_TAG = 1;\nconst BODYSTATE_ISLAND_SLEEPING = 2;\nconst BODYSTATE_WANTS_DEACTIVATION = 3;\nconst BODYSTATE_DISABLE_DEACTIVATION = 4;\nconst BODYSTATE_DISABLE_SIMULATION = 5;\nconst BODYGROUP_NONE = 0;\nconst BODYGROUP_DEFAULT = 1;\nconst BODYGROUP_DYNAMIC = 1;\nconst BODYGROUP_STATIC = 2;\nconst BODYGROUP_KINEMATIC = 4;\nconst BODYGROUP_ENGINE_1 = 8;\nconst BODYGROUP_TRIGGER = 16;\nconst BODYGROUP_ENGINE_2 = 32;\nconst BODYGROUP_ENGINE_3 = 64;\nconst BODYGROUP_USER_1 = 128;\nconst BODYGROUP_USER_2 = 256;\nconst BODYGROUP_USER_3 = 512;\nconst BODYGROUP_USER_4 = 1024;\nconst BODYGROUP_USER_5 = 2048;\nconst BODYGROUP_USER_6 = 4096;\nconst BODYGROUP_USER_7 = 8192;\nconst BODYGROUP_USER_8 = 16384;\nconst BODYMASK_NONE = 0;\nconst BODYMASK_ALL = 65535;\nconst BODYMASK_STATIC = 2;\nconst BODYMASK_NOT_STATIC = 65535 ^ 2;\nconst BODYMASK_NOT_STATIC_KINEMATIC = 65535 ^ (2 | 4);\n\nlet _ammoVec1$1, _ammoQuat$1, _ammoTransform$1;\nclass Trigger {\n\tconstructor(app, component, data) {\n\t\tthis.entity = component.entity;\n\t\tthis.component = component;\n\t\tthis.app = app;\n\t\tif (typeof Ammo !== 'undefined' && !_ammoVec1$1) {\n\t\t\t_ammoVec1$1 = new Ammo.btVector3();\n\t\t\t_ammoQuat$1 = new Ammo.btQuaternion();\n\t\t\t_ammoTransform$1 = new Ammo.btTransform();\n\t\t}\n\t\tthis.initialize(data);\n\t}\n\tinitialize(data) {\n\t\tconst entity = this.entity;\n\t\tconst shape = data.shape;\n\t\tif (shape && typeof Ammo !== 'undefined') {\n\t\t\tif (entity.trigger) {\n\t\t\t\tentity.trigger.destroy();\n\t\t\t}\n\t\t\tconst mass = 1;\n\t\t\tconst component = this.component;\n\t\t\tif (component) {\n\t\t\t\tconst bodyPos = component.getShapePosition();\n\t\t\t\tconst bodyRot = component.getShapeRotation();\n\t\t\t\t_ammoVec1$1.setValue(bodyPos.x, bodyPos.y, bodyPos.z);\n\t\t\t\t_ammoQuat$1.setValue(bodyRot.x, bodyRot.y, bodyRot.z, bodyRot.w);\n\t\t\t} else {\n\t\t\t\tconst pos = entity.getPosition();\n\t\t\t\tconst rot = entity.getRotation();\n\t\t\t\t_ammoVec1$1.setValue(pos.x, pos.y, pos.z);\n\t\t\t\t_ammoQuat$1.setValue(rot.x, rot.y, rot.z, rot.w);\n\t\t\t}\n\t\t\t_ammoTransform$1.setOrigin(_ammoVec1$1);\n\t\t\t_ammoTransform$1.setRotation(_ammoQuat$1);\n\t\t\tconst body = this.app.systems.rigidbody.createBody(mass, shape, _ammoTransform$1);\n\t\t\tbody.setRestitution(0);\n\t\t\tbody.setFriction(0);\n\t\t\tbody.setDamping(0, 0);\n\t\t\t_ammoVec1$1.setValue(0, 0, 0);\n\t\t\tbody.setLinearFactor(_ammoVec1$1);\n\t\t\tbody.setAngularFactor(_ammoVec1$1);\n\t\t\tbody.setCollisionFlags(body.getCollisionFlags() | BODYFLAG_NORESPONSE_OBJECT);\n\t\t\tbody.entity = entity;\n\t\t\tthis.body = body;\n\t\t\tif (this.component.enabled && entity.enabled) {\n\t\t\t\tthis.enable();\n\t\t\t}\n\t\t}\n\t}\n\tdestroy() {\n\t\tconst body = this.body;\n\t\tif (!body) return;\n\t\tthis.disable();\n\t\tthis.app.systems.rigidbody.destroyBody(body);\n\t}\n\t_getEntityTransform(transform) {\n\t\tconst component = this.component;\n\t\tif (component) {\n\t\t\tconst bodyPos = component.getShapePosition();\n\t\t\tconst bodyRot = component.getShapeRotation();\n\t\t\t_ammoVec1$1.setValue(bodyPos.x, bodyPos.y, bodyPos.z);\n\t\t\t_ammoQuat$1.setValue(bodyRot.x, bodyRot.y, bodyRot.z, bodyRot.w);\n\t\t} else {\n\t\t\tconst pos = this.entity.getPosition();\n\t\t\tconst rot = this.entity.getRotation();\n\t\t\t_ammoVec1$1.setValue(pos.x, pos.y, pos.z);\n\t\t\t_ammoQuat$1.setValue(rot.x, rot.y, rot.z, rot.w);\n\t\t}\n\t\ttransform.setOrigin(_ammoVec1$1);\n\t\ttransform.setRotation(_ammoQuat$1);\n\t}\n\tupdateTransform() {\n\t\tthis._getEntityTransform(_ammoTransform$1);\n\t\tconst body = this.body;\n\t\tbody.setWorldTransform(_ammoTransform$1);\n\t\tbody.activate();\n\t}\n\tenable() {\n\t\tconst body = this.body;\n\t\tif (!body) return;\n\t\tconst systems = this.app.systems;\n\t\tsystems.rigidbody.addBody(body, BODYGROUP_TRIGGER, BODYMASK_NOT_STATIC ^ BODYGROUP_TRIGGER);\n\t\tsystems.rigidbody._triggers.push(this);\n\t\tbody.forceActivationState(BODYSTATE_ACTIVE_TAG);\n\t\tthis.updateTransform();\n\t}\n\tdisable() {\n\t\tconst body = this.body;\n\t\tif (!body) return;\n\t\tconst systems = this.app.systems;\n\t\tconst idx = systems.rigidbody._triggers.indexOf(this);\n\t\tif (idx > -1) {\n\t\t\tsystems.rigidbody._triggers.splice(idx, 1);\n\t\t}\n\t\tsystems.rigidbody.removeBody(body);\n\t\tbody.forceActivationState(BODYSTATE_DISABLE_SIMULATION);\n\t}\n}\n\nconst mat4 = new Mat4();\nconst p1 = new Vec3();\nconst p2 = new Vec3();\nconst quat$1 = new Quat();\nconst tempGraphNode = new GraphNode();\nconst _schema$h = ['enabled', 'type', 'halfExtents', 'linearOffset', 'angularOffset', 'radius', 'axis', 'height', 'convexHull', 'asset', 'renderAsset', 'shape', 'model', 'render', 'checkVertexDuplicates'];\nclass CollisionSystemImpl {\n\tconstructor(system) {\n\t\tthis.system = system;\n\t}\n\tbeforeInitialize(component, data) {\n\t\tdata.shape = null;\n\t\tdata.model = new Model();\n\t\tdata.model.graph = new GraphNode();\n\t}\n\tafterInitialize(component, data) {\n\t\tthis.recreatePhysicalShapes(component);\n\t\tcomponent.data.initialized = true;\n\t}\n\treset(component, data) {\n\t\tthis.beforeInitialize(component, data);\n\t\tthis.afterInitialize(component, data);\n\t}\n\trecreatePhysicalShapes(component) {\n\t\tconst entity = component.entity;\n\t\tconst data = component.data;\n\t\tif (typeof Ammo !== 'undefined') {\n\t\t\tif (entity.trigger) {\n\t\t\t\tentity.trigger.destroy();\n\t\t\t\tdelete entity.trigger;\n\t\t\t}\n\t\t\tif (data.shape) {\n\t\t\t\tif (component._compoundParent) {\n\t\t\t\t\tif (component !== component._compoundParent) {\n\t\t\t\t\t\tthis.system._removeCompoundChild(component._compoundParent, data.shape);\n\t\t\t\t\t}\n\t\t\t\t\tif (component._compoundParent.entity.rigidbody) {\n\t\t\t\t\t\tcomponent._compoundParent.entity.rigidbody.activate();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.destroyShape(data);\n\t\t\t}\n\t\t\tdata.shape = this.createPhysicalShape(component.entity, data);\n\t\t\tconst firstCompoundChild = !component._compoundParent;\n\t\t\tif (data.type === 'compound' && (!component._compoundParent || component === component._compoundParent)) {\n\t\t\t\tcomponent._compoundParent = component;\n\t\t\t\tentity.forEach(this._addEachDescendant, component);\n\t\t\t} else if (data.type !== 'compound') {\n\t\t\t\tif (!component.rigidbody) {\n\t\t\t\t\tcomponent._compoundParent = null;\n\t\t\t\t\tlet parent = entity.parent;\n\t\t\t\t\twhile (parent) {\n\t\t\t\t\t\tif (parent.collision && parent.collision.type === 'compound') {\n\t\t\t\t\t\t\tcomponent._compoundParent = parent.collision;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparent = parent.parent;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (component._compoundParent) {\n\t\t\t\tif (component !== component._compoundParent) {\n\t\t\t\t\tif (firstCompoundChild && component._compoundParent.shape.getNumChildShapes() === 0) {\n\t\t\t\t\t\tthis.system.recreatePhysicalShapes(component._compoundParent);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.system.updateCompoundChildTransform(entity, true);\n\t\t\t\t\t\tif (component._compoundParent.entity.rigidbody) {\n\t\t\t\t\t\t\tcomponent._compoundParent.entity.rigidbody.activate();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (entity.rigidbody) {\n\t\t\t\tentity.rigidbody.disableSimulation();\n\t\t\t\tentity.rigidbody.createBody();\n\t\t\t\tif (entity.enabled && entity.rigidbody.enabled) {\n\t\t\t\t\tentity.rigidbody.enableSimulation();\n\t\t\t\t}\n\t\t\t} else if (!component._compoundParent) {\n\t\t\t\tif (!entity.trigger) {\n\t\t\t\t\tentity.trigger = new Trigger(this.system.app, component, data);\n\t\t\t\t} else {\n\t\t\t\t\tentity.trigger.initialize(data);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tcreatePhysicalShape(entity, data) {\n\t\treturn undefined;\n\t}\n\tupdateTransform(component, position, rotation, scale) {\n\t\tif (component.entity.trigger) {\n\t\t\tcomponent.entity.trigger.updateTransform();\n\t\t}\n\t}\n\tdestroyShape(data) {\n\t\tif (data.shape) {\n\t\t\tAmmo.destroy(data.shape);\n\t\t\tdata.shape = null;\n\t\t}\n\t}\n\tbeforeRemove(entity, component) {\n\t\tif (component.data.shape) {\n\t\t\tif (component._compoundParent && !component._compoundParent.entity._destroying) {\n\t\t\t\tthis.system._removeCompoundChild(component._compoundParent, component.data.shape);\n\t\t\t\tif (component._compoundParent.entity.rigidbody) {\n\t\t\t\t\tcomponent._compoundParent.entity.rigidbody.activate();\n\t\t\t\t}\n\t\t\t}\n\t\t\tcomponent._compoundParent = null;\n\t\t\tthis.destroyShape(component.data);\n\t\t}\n\t}\n\tremove(entity, data) {\n\t\tif (entity.rigidbody && entity.rigidbody.body) {\n\t\t\tentity.rigidbody.disableSimulation();\n\t\t}\n\t\tif (entity.trigger) {\n\t\t\tentity.trigger.destroy();\n\t\t\tdelete entity.trigger;\n\t\t}\n\t}\n\tclone(entity, clone) {\n\t\tconst src = this.system.store[entity.getGuid()];\n\t\tconst data = {\n\t\t\tenabled: src.data.enabled,\n\t\t\ttype: src.data.type,\n\t\t\thalfExtents: [src.data.halfExtents.x, src.data.halfExtents.y, src.data.halfExtents.z],\n\t\t\tlinearOffset: [src.data.linearOffset.x, src.data.linearOffset.y, src.data.linearOffset.z],\n\t\t\tangularOffset: [src.data.angularOffset.x, src.data.angularOffset.y, src.data.angularOffset.z, src.data.angularOffset.w],\n\t\t\tradius: src.data.radius,\n\t\t\taxis: src.data.axis,\n\t\t\theight: src.data.height,\n\t\t\tconvexHull: src.data.convexHull,\n\t\t\tasset: src.data.asset,\n\t\t\trenderAsset: src.data.renderAsset,\n\t\t\tmodel: src.data.model,\n\t\t\trender: src.data.render,\n\t\t\tcheckVertexDuplicates: src.data.checkVertexDuplicates\n\t\t};\n\t\treturn this.system.addComponent(clone, data);\n\t}\n}\nclass CollisionBoxSystemImpl extends CollisionSystemImpl {\n\tcreatePhysicalShape(entity, data) {\n\t\tif (typeof Ammo !== 'undefined') {\n\t\t\tconst he = data.halfExtents;\n\t\t\tconst ammoHe = new Ammo.btVector3(he ? he.x : 0.5, he ? he.y : 0.5, he ? he.z : 0.5);\n\t\t\tconst shape = new Ammo.btBoxShape(ammoHe);\n\t\t\tAmmo.destroy(ammoHe);\n\t\t\treturn shape;\n\t\t}\n\t\treturn undefined;\n\t}\n}\nclass CollisionSphereSystemImpl extends CollisionSystemImpl {\n\tcreatePhysicalShape(entity, data) {\n\t\tif (typeof Ammo !== 'undefined') {\n\t\t\treturn new Ammo.btSphereShape(data.radius);\n\t\t}\n\t\treturn undefined;\n\t}\n}\nclass CollisionCapsuleSystemImpl extends CollisionSystemImpl {\n\tcreatePhysicalShape(entity, data) {\n\t\tvar _data$axis, _data$radius, _data$height;\n\t\tconst axis = (_data$axis = data.axis) != null ? _data$axis : 1;\n\t\tconst radius = (_data$radius = data.radius) != null ? _data$radius : 0.5;\n\t\tconst height = Math.max(((_data$height = data.height) != null ? _data$height : 2) - 2 * radius, 0);\n\t\tlet shape = null;\n\t\tif (typeof Ammo !== 'undefined') {\n\t\t\tswitch (axis) {\n\t\t\t\tcase 0:\n\t\t\t\t\tshape = new Ammo.btCapsuleShapeX(radius, height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\t\tshape = new Ammo.btCapsuleShape(radius, height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 2:\n\t\t\t\t\tshape = new Ammo.btCapsuleShapeZ(radius, height);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn shape;\n\t}\n}\nclass CollisionCylinderSystemImpl extends CollisionSystemImpl {\n\tcreatePhysicalShape(entity, data) {\n\t\tvar _data$axis2, _data$radius2, _data$height2;\n\t\tconst axis = (_data$axis2 = data.axis) != null ? _data$axis2 : 1;\n\t\tconst radius = (_data$radius2 = data.radius) != null ? _data$radius2 : 0.5;\n\t\tconst height = (_data$height2 = data.height) != null ? _data$height2 : 1;\n\t\tlet halfExtents = null;\n\t\tlet shape = null;\n\t\tif (typeof Ammo !== 'undefined') {\n\t\t\tswitch (axis) {\n\t\t\t\tcase 0:\n\t\t\t\t\thalfExtents = new Ammo.btVector3(height * 0.5, radius, radius);\n\t\t\t\t\tshape = new Ammo.btCylinderShapeX(halfExtents);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\t\thalfExtents = new Ammo.btVector3(radius, height * 0.5, radius);\n\t\t\t\t\tshape = new Ammo.btCylinderShape(halfExtents);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 2:\n\t\t\t\t\thalfExtents = new Ammo.btVector3(radius, radius, height * 0.5);\n\t\t\t\t\tshape = new Ammo.btCylinderShapeZ(halfExtents);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (halfExtents) {\n\t\t\tAmmo.destroy(halfExtents);\n\t\t}\n\t\treturn shape;\n\t}\n}\nclass CollisionConeSystemImpl extends CollisionSystemImpl {\n\tcreatePhysicalShape(entity, data) {\n\t\tvar _data$axis3, _data$radius3, _data$height3;\n\t\tconst axis = (_data$axis3 = data.axis) != null ? _data$axis3 : 1;\n\t\tconst radius = (_data$radius3 = data.radius) != null ? _data$radius3 : 0.5;\n\t\tconst height = (_data$height3 = data.height) != null ? _data$height3 : 1;\n\t\tlet shape = null;\n\t\tif (typeof Ammo !== 'undefined') {\n\t\t\tswitch (axis) {\n\t\t\t\tcase 0:\n\t\t\t\t\tshape = new Ammo.btConeShapeX(radius, height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\t\tshape = new Ammo.btConeShape(radius, height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 2:\n\t\t\t\t\tshape = new Ammo.btConeShapeZ(radius, height);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn shape;\n\t}\n}\nclass CollisionMeshSystemImpl extends CollisionSystemImpl {\n\tbeforeInitialize(component, data) {}\n\tcreateAmmoHull(mesh, node, shape, scale) {\n\t\tconst hull = new Ammo.btConvexHullShape();\n\t\tconst point = new Ammo.btVector3();\n\t\tconst positions = [];\n\t\tmesh.getPositions(positions);\n\t\tfor (let i = 0; i < positions.length; i += 3) {\n\t\t\tpoint.setValue(positions[i] * scale.x, positions[i + 1] * scale.y, positions[i + 2] * scale.z);\n\t\t\thull.addPoint(point, false);\n\t\t}\n\t\tAmmo.destroy(point);\n\t\thull.recalcLocalAabb();\n\t\thull.setMargin(0.01);\n\t\tshape.addChildShape(this.system._getNodeTransform(node), hull);\n\t}\n\tcreateAmmoMesh(mesh, node, shape, scale, checkDupes = true) {\n\t\tconst system = this.system;\n\t\tlet triMesh;\n\t\tif (system._triMeshCache[mesh.id]) {\n\t\t\ttriMesh = system._triMeshCache[mesh.id];\n\t\t} else {\n\t\t\tconst vb = mesh.vertexBuffer;\n\t\t\tconst format = vb.getFormat();\n\t\t\tlet stride, positions;\n\t\t\tfor (let i = 0; i < format.elements.length; i++) {\n\t\t\t\tconst element = format.elements[i];\n\t\t\t\tif (element.name === SEMANTIC_POSITION) {\n\t\t\t\t\tpositions = new Float32Array(vb.lock(), element.offset);\n\t\t\t\t\tstride = element.stride / 4;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst indices = [];\n\t\t\tmesh.getIndices(indices);\n\t\t\tconst numTriangles = mesh.primitive[0].count / 3;\n\t\t\tconst v1 = new Ammo.btVector3();\n\t\t\tlet i1, i2, i3;\n\t\t\tconst base = mesh.primitive[0].base;\n\t\t\ttriMesh = new Ammo.btTriangleMesh();\n\t\t\tsystem._triMeshCache[mesh.id] = triMesh;\n\t\t\tconst vertexCache = new Map();\n\t\t\tconst indexedArray = triMesh.getIndexedMeshArray();\n\t\t\tindexedArray.at(0).m_numTriangles = numTriangles;\n\t\t\tconst sx = scale ? scale.x : 1;\n\t\t\tconst sy = scale ? scale.y : 1;\n\t\t\tconst sz = scale ? scale.z : 1;\n\t\t\tconst addVertex = index => {\n\t\t\t\tconst x = positions[index * stride] * sx;\n\t\t\t\tconst y = positions[index * stride + 1] * sy;\n\t\t\t\tconst z = positions[index * stride + 2] * sz;\n\t\t\t\tlet idx;\n\t\t\t\tif (checkDupes) {\n\t\t\t\t\tconst str = `${x}:${y}:${z}`;\n\t\t\t\t\tidx = vertexCache.get(str);\n\t\t\t\t\tif (idx !== undefined) {\n\t\t\t\t\t\treturn idx;\n\t\t\t\t\t}\n\t\t\t\t\tv1.setValue(x, y, z);\n\t\t\t\t\tidx = triMesh.findOrAddVertex(v1, false);\n\t\t\t\t\tvertexCache.set(str, idx);\n\t\t\t\t} else {\n\t\t\t\t\tv1.setValue(x, y, z);\n\t\t\t\t\tidx = triMesh.findOrAddVertex(v1, false);\n\t\t\t\t}\n\t\t\t\treturn idx;\n\t\t\t};\n\t\t\tfor (let i = 0; i < numTriangles; i++) {\n\t\t\t\ti1 = addVertex(indices[base + i * 3]);\n\t\t\t\ti2 = addVertex(indices[base + i * 3 + 1]);\n\t\t\t\ti3 = addVertex(indices[base + i * 3 + 2]);\n\t\t\t\ttriMesh.addIndex(i1);\n\t\t\t\ttriMesh.addIndex(i2);\n\t\t\t\ttriMesh.addIndex(i3);\n\t\t\t}\n\t\t\tAmmo.destroy(v1);\n\t\t}\n\t\tconst triMeshShape = new Ammo.btBvhTriangleMeshShape(triMesh, true);\n\t\tif (!scale) {\n\t\t\tconst scaling = system._getNodeScaling(node);\n\t\t\ttriMeshShape.setLocalScaling(scaling);\n\t\t\tAmmo.destroy(scaling);\n\t\t}\n\t\tconst transform = system._getNodeTransform(node);\n\t\tshape.addChildShape(transform, triMeshShape);\n\t\tAmmo.destroy(transform);\n\t}\n\tcreatePhysicalShape(entity, data) {\n\t\tif (typeof Ammo === 'undefined') return undefined;\n\t\tif (data.model || data.render) {\n\t\t\tconst shape = new Ammo.btCompoundShape();\n\t\t\tconst entityTransform = entity.getWorldTransform();\n\t\t\tconst scale = entityTransform.getScale();\n\t\t\tif (data.model) {\n\t\t\t\tconst meshInstances = data.model.meshInstances;\n\t\t\t\tfor (let i = 0; i < meshInstances.length; i++) {\n\t\t\t\t\tthis.createAmmoMesh(meshInstances[i].mesh, meshInstances[i].node, shape, null, data.checkVertexDuplicates);\n\t\t\t\t}\n\t\t\t\tconst vec = new Ammo.btVector3(scale.x, scale.y, scale.z);\n\t\t\t\tshape.setLocalScaling(vec);\n\t\t\t\tAmmo.destroy(vec);\n\t\t\t} else if (data.render) {\n\t\t\t\tconst meshes = data.render.meshes;\n\t\t\t\tfor (let i = 0; i < meshes.length; i++) {\n\t\t\t\t\tif (data.convexHull) {\n\t\t\t\t\t\tthis.createAmmoHull(meshes[i], tempGraphNode, shape, scale);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.createAmmoMesh(meshes[i], tempGraphNode, shape, scale, data.checkVertexDuplicates);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn shape;\n\t\t}\n\t\treturn undefined;\n\t}\n\trecreatePhysicalShapes(component) {\n\t\tconst data = component.data;\n\t\tif (data.renderAsset || data.asset) {\n\t\t\tif (component.enabled && component.entity.enabled) {\n\t\t\t\tthis.loadAsset(component, data.renderAsset || data.asset, data.renderAsset ? 'render' : 'model');\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tthis.doRecreatePhysicalShape(component);\n\t}\n\tloadAsset(component, id, property) {\n\t\tconst data = component.data;\n\t\tconst assets = this.system.app.assets;\n\t\tconst previousPropertyValue = data[property];\n\t\tconst onAssetFullyReady = asset => {\n\t\t\tif (data[property] !== previousPropertyValue) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdata[property] = asset.resource;\n\t\t\tthis.doRecreatePhysicalShape(component);\n\t\t};\n\t\tconst loadAndHandleAsset = asset => {\n\t\t\tasset.ready(asset => {\n\t\t\t\tif (asset.data.containerAsset) {\n\t\t\t\t\tconst containerAsset = assets.get(asset.data.containerAsset);\n\t\t\t\t\tif (containerAsset.loaded) {\n\t\t\t\t\t\tonAssetFullyReady(asset);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontainerAsset.ready(() => {\n\t\t\t\t\t\t\tonAssetFullyReady(asset);\n\t\t\t\t\t\t});\n\t\t\t\t\t\tassets.load(containerAsset);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tonAssetFullyReady(asset);\n\t\t\t\t}\n\t\t\t});\n\t\t\tassets.load(asset);\n\t\t};\n\t\tconst asset = assets.get(id);\n\t\tif (asset) {\n\t\t\tloadAndHandleAsset(asset);\n\t\t} else {\n\t\t\tassets.once(`add:${id}`, loadAndHandleAsset);\n\t\t}\n\t}\n\tdoRecreatePhysicalShape(component) {\n\t\tconst entity = component.entity;\n\t\tconst data = component.data;\n\t\tif (data.model || data.render) {\n\t\t\tthis.destroyShape(data);\n\t\t\tdata.shape = this.createPhysicalShape(entity, data);\n\t\t\tif (entity.rigidbody) {\n\t\t\t\tentity.rigidbody.disableSimulation();\n\t\t\t\tentity.rigidbody.createBody();\n\t\t\t\tif (entity.enabled && entity.rigidbody.enabled) {\n\t\t\t\t\tentity.rigidbody.enableSimulation();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (!entity.trigger) {\n\t\t\t\t\tentity.trigger = new Trigger(this.system.app, component, data);\n\t\t\t\t} else {\n\t\t\t\t\tentity.trigger.initialize(data);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthis.beforeRemove(entity, component);\n\t\t\tthis.remove(entity, data);\n\t\t}\n\t}\n\tupdateTransform(component, position, rotation, scale) {\n\t\tif (component.shape) {\n\t\t\tconst entityTransform = component.entity.getWorldTransform();\n\t\t\tconst worldScale = entityTransform.getScale();\n\t\t\tconst previousScale = component.shape.getLocalScaling();\n\t\t\tif (worldScale.x !== previousScale.x() || worldScale.y !== previousScale.y() || worldScale.z !== previousScale.z()) {\n\t\t\t\tthis.doRecreatePhysicalShape(component);\n\t\t\t}\n\t\t}\n\t\tsuper.updateTransform(component, position, rotation, scale);\n\t}\n\tdestroyShape(data) {\n\t\tif (!data.shape) {\n\t\t\treturn;\n\t\t}\n\t\tconst numShapes = data.shape.getNumChildShapes();\n\t\tfor (let i = 0; i < numShapes; i++) {\n\t\t\tconst shape = data.shape.getChildShape(i);\n\t\t\tAmmo.destroy(shape);\n\t\t}\n\t\tAmmo.destroy(data.shape);\n\t\tdata.shape = null;\n\t}\n}\nclass CollisionCompoundSystemImpl extends CollisionSystemImpl {\n\tcreatePhysicalShape(entity, data) {\n\t\tif (typeof Ammo !== 'undefined') {\n\t\t\treturn new Ammo.btCompoundShape();\n\t\t}\n\t\treturn undefined;\n\t}\n\t_addEachDescendant(entity) {\n\t\tif (!entity.collision || entity.rigidbody) {\n\t\t\treturn;\n\t\t}\n\t\tentity.collision._compoundParent = this;\n\t\tif (entity !== this.entity) {\n\t\t\tentity.collision.system.recreatePhysicalShapes(entity.collision);\n\t\t}\n\t}\n\t_updateEachDescendant(entity) {\n\t\tif (!entity.collision) {\n\t\t\treturn;\n\t\t}\n\t\tif (entity.collision._compoundParent !== this) {\n\t\t\treturn;\n\t\t}\n\t\tentity.collision._compoundParent = null;\n\t\tif (entity !== this.entity && !entity.rigidbody) {\n\t\t\tentity.collision.system.recreatePhysicalShapes(entity.collision);\n\t\t}\n\t}\n\t_updateEachDescendantTransform(entity) {\n\t\tif (!entity.collision || entity.collision._compoundParent !== this.collision._compoundParent) {\n\t\t\treturn;\n\t\t}\n\t\tthis.collision.system.updateCompoundChildTransform(entity, false);\n\t}\n}\nclass CollisionComponentSystem extends ComponentSystem {\n\tconstructor(app) {\n\t\tsuper(app);\n\t\tthis.id = 'collision';\n\t\tthis.ComponentType = CollisionComponent;\n\t\tthis.DataType = CollisionComponentData;\n\t\tthis.schema = _schema$h;\n\t\tthis.implementations = {};\n\t\tthis._triMeshCache = {};\n\t\tthis.on('beforeremove', this.onBeforeRemove, this);\n\t\tthis.on('remove', this.onRemove, this);\n\t}\n\tinitializeComponentData(component, _data, properties) {\n\t\tproperties = ['type', 'halfExtents', 'radius', 'axis', 'height', 'convexHull', 'shape', 'model', 'asset', 'render', 'renderAsset', 'enabled', 'linearOffset', 'angularOffset', 'checkVertexDuplicates'];\n\t\tconst data = {};\n\t\tfor (let i = 0, len = properties.length; i < len; i++) {\n\t\t\tconst property = properties[i];\n\t\t\tdata[property] = _data[property];\n\t\t}\n\t\tlet idx;\n\t\tif (_data.hasOwnProperty('asset')) {\n\t\t\tidx = properties.indexOf('model');\n\t\t\tif (idx !== -1) {\n\t\t\t\tproperties.splice(idx, 1);\n\t\t\t}\n\t\t\tidx = properties.indexOf('render');\n\t\t\tif (idx !== -1) {\n\t\t\t\tproperties.splice(idx, 1);\n\t\t\t}\n\t\t} else if (_data.hasOwnProperty('model')) {\n\t\t\tidx = properties.indexOf('asset');\n\t\t\tif (idx !== -1) {\n\t\t\t\tproperties.splice(idx, 1);\n\t\t\t}\n\t\t}\n\t\tif (!data.type) {\n\t\t\tdata.type = component.data.type;\n\t\t}\n\t\tcomponent.data.type = data.type;\n\t\tif (Array.isArray(data.halfExtents)) {\n\t\t\tdata.halfExtents = new Vec3(data.halfExtents);\n\t\t}\n\t\tif (Array.isArray(data.linearOffset)) {\n\t\t\tdata.linearOffset = new Vec3(data.linearOffset);\n\t\t}\n\t\tif (Array.isArray(data.angularOffset)) {\n\t\t\tconst values = data.angularOffset;\n\t\t\tif (values.length === 3) {\n\t\t\t\tdata.angularOffset = new Quat().setFromEulerAngles(values[0], values[1], values[2]);\n\t\t\t} else {\n\t\t\t\tdata.angularOffset = new Quat(data.angularOffset);\n\t\t\t}\n\t\t}\n\t\tconst impl = this._createImplementation(data.type);\n\t\timpl.beforeInitialize(component, data);\n\t\tsuper.initializeComponentData(component, data, properties);\n\t\timpl.afterInitialize(component, data);\n\t}\n\t_createImplementation(type) {\n\t\tif (this.implementations[type] === undefined) {\n\t\t\tlet impl;\n\t\t\tswitch (type) {\n\t\t\t\tcase 'box':\n\t\t\t\t\timpl = new CollisionBoxSystemImpl(this);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'sphere':\n\t\t\t\t\timpl = new CollisionSphereSystemImpl(this);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'capsule':\n\t\t\t\t\timpl = new CollisionCapsuleSystemImpl(this);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'cylinder':\n\t\t\t\t\timpl = new CollisionCylinderSystemImpl(this);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'cone':\n\t\t\t\t\timpl = new CollisionConeSystemImpl(this);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'mesh':\n\t\t\t\t\timpl = new CollisionMeshSystemImpl(this);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'compound':\n\t\t\t\t\timpl = new CollisionCompoundSystemImpl(this);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tthis.implementations[type] = impl;\n\t\t}\n\t\treturn this.implementations[type];\n\t}\n\t_getImplementation(entity) {\n\t\treturn this.implementations[entity.collision.data.type];\n\t}\n\tcloneComponent(entity, clone) {\n\t\treturn this._getImplementation(entity).clone(entity, clone);\n\t}\n\tonBeforeRemove(entity, component) {\n\t\tthis.implementations[component.data.type].beforeRemove(entity, component);\n\t\tcomponent.onBeforeRemove();\n\t}\n\tonRemove(entity, data) {\n\t\tthis.implementations[data.type].remove(entity, data);\n\t}\n\tupdateCompoundChildTransform(entity, forceUpdate) {\n\t\tconst parentComponent = entity.collision._compoundParent;\n\t\tif (parentComponent === entity.collision) return;\n\t\tif (entity.enabled && entity.collision.enabled && (entity._dirtyLocal || forceUpdate)) {\n\t\t\tconst transform = this._getNodeTransform(entity, parentComponent.entity);\n\t\t\tconst idx = parentComponent.getCompoundChildShapeIndex(entity.collision.shape);\n\t\t\tif (idx === null) {\n\t\t\t\tparentComponent.shape.addChildShape(transform, entity.collision.data.shape);\n\t\t\t} else {\n\t\t\t\tparentComponent.shape.updateChildTransform(idx, transform, true);\n\t\t\t}\n\t\t\tAmmo.destroy(transform);\n\t\t}\n\t}\n\t_removeCompoundChild(collision, shape) {\n\t\tif (collision.shape.getNumChildShapes() === 0) {\n\t\t\treturn;\n\t\t}\n\t\tif (collision.shape.removeChildShape) {\n\t\t\tcollision.shape.removeChildShape(shape);\n\t\t} else {\n\t\t\tconst ind = collision.getCompoundChildShapeIndex(shape);\n\t\t\tif (ind !== null) {\n\t\t\t\tcollision.shape.removeChildShapeByIndex(ind);\n\t\t\t}\n\t\t}\n\t}\n\tonTransformChanged(component, position, rotation, scale) {\n\t\tthis.implementations[component.data.type].updateTransform(component, position, rotation, scale);\n\t}\n\tchangeType(component, previousType, newType) {\n\t\tthis.implementations[previousType].beforeRemove(component.entity, component);\n\t\tthis.implementations[previousType].remove(component.entity, component.data);\n\t\tthis._createImplementation(newType).reset(component, component.data);\n\t}\n\trecreatePhysicalShapes(component) {\n\t\tthis.implementations[component.data.type].recreatePhysicalShapes(component);\n\t}\n\t_calculateNodeRelativeTransform(node, relative) {\n\t\tif (node === relative) {\n\t\t\tconst scale = node.getWorldTransform().getScale();\n\t\t\tmat4.setScale(scale.x, scale.y, scale.z);\n\t\t} else {\n\t\t\tthis._calculateNodeRelativeTransform(node.parent, relative);\n\t\t\tmat4.mul(node.getLocalTransform());\n\t\t}\n\t}\n\t_getNodeScaling(node) {\n\t\tconst wtm = node.getWorldTransform();\n\t\tconst scl = wtm.getScale();\n\t\treturn new Ammo.btVector3(scl.x, scl.y, scl.z);\n\t}\n\t_getNodeTransform(node, relative) {\n\t\tlet pos, rot;\n\t\tif (relative) {\n\t\t\tthis._calculateNodeRelativeTransform(node, relative);\n\t\t\tpos = p1;\n\t\t\trot = quat$1;\n\t\t\tmat4.getTranslation(pos);\n\t\t\trot.setFromMat4(mat4);\n\t\t} else {\n\t\t\tpos = node.getPosition();\n\t\t\trot = node.getRotation();\n\t\t}\n\t\tconst ammoQuat = new Ammo.btQuaternion();\n\t\tconst transform = new Ammo.btTransform();\n\t\ttransform.setIdentity();\n\t\tconst origin = transform.getOrigin();\n\t\tconst component = node.collision;\n\t\tif (component && component._hasOffset) {\n\t\t\tconst lo = component.data.linearOffset;\n\t\t\tconst ao = component.data.angularOffset;\n\t\t\tconst newOrigin = p2;\n\t\t\tquat$1.copy(rot).transformVector(lo, newOrigin);\n\t\t\tnewOrigin.add(pos);\n\t\t\tquat$1.copy(rot).mul(ao);\n\t\t\torigin.setValue(newOrigin.x, newOrigin.y, newOrigin.z);\n\t\t\tammoQuat.setValue(quat$1.x, quat$1.y, quat$1.z, quat$1.w);\n\t\t} else {\n\t\t\torigin.setValue(pos.x, pos.y, pos.z);\n\t\t\tammoQuat.setValue(rot.x, rot.y, rot.z, rot.w);\n\t\t}\n\t\ttransform.setRotation(ammoQuat);\n\t\tAmmo.destroy(ammoQuat);\n\t\treturn transform;\n\t}\n\tdestroy() {\n\t\tfor (const key in this._triMeshCache) {\n\t\t\tAmmo.destroy(this._triMeshCache[key]);\n\t\t}\n\t\tthis._triMeshCache = null;\n\t\tsuper.destroy();\n\t}\n}\n\nconst _vertexFormatDeviceCache = new DeviceCache();\nclass ImageRenderable {\n\tconstructor(entity, mesh, material) {\n\t\tthis._entity = entity;\n\t\tthis._element = entity.element;\n\t\tthis.model = new Model();\n\t\tthis.node = new GraphNode();\n\t\tthis.model.graph = this.node;\n\t\tthis.mesh = mesh;\n\t\tthis.meshInstance = new MeshInstance(this.mesh, material, this.node);\n\t\tthis.meshInstance.name = `ImageElement: ${entity.name}`;\n\t\tthis.meshInstance.castShadow = false;\n\t\tthis.meshInstance.receiveShadow = false;\n\t\tthis._meshDirty = false;\n\t\tthis.model.meshInstances.push(this.meshInstance);\n\t\tthis._entity.addChild(this.model.graph);\n\t\tthis.model._entity = this._entity;\n\t\tthis.unmaskMeshInstance = null;\n\t}\n\tdestroy() {\n\t\tvar _this$meshInstance, _this$unmaskMeshInsta;\n\t\tthis.setMaterial(null);\n\t\tthis._element.removeModelFromLayers(this.model);\n\t\tthis.model.destroy();\n\t\tthis.model = null;\n\t\tthis.node = null;\n\t\tthis.mesh = null;\n\t\t(_this$meshInstance = this.meshInstance) == null || _this$meshInstance.destroy();\n\t\tthis.meshInstance = null;\n\t\t(_this$unmaskMeshInsta = this.unmaskMeshInstance) == null || _this$unmaskMeshInsta.destroy();\n\t\tthis.unmaskMeshInstance = null;\n\t\tthis._entity = null;\n\t\tthis._element = null;\n\t}\n\tsetMesh(mesh) {\n\t\tif (!this.meshInstance) return;\n\t\tthis.mesh = mesh;\n\t\tthis.meshInstance.mesh = mesh;\n\t\tthis.meshInstance.visible = !!mesh;\n\t\tif (this.unmaskMeshInstance) {\n\t\t\tthis.unmaskMeshInstance.mesh = mesh;\n\t\t}\n\t\tthis.forceUpdateAabb();\n\t}\n\tsetMask(mask) {\n\t\tif (!this.meshInstance) return;\n\t\tif (this._entity.enabled && this._element.enabled) {\n\t\t\tthis._element.removeModelFromLayers(this.model);\n\t\t}\n\t\tif (mask) {\n\t\t\tthis.unmaskMeshInstance = new MeshInstance(this.mesh, this.meshInstance.material, this.node);\n\t\t\tthis.unmaskMeshInstance.name = `Unmask: ${this._entity.name}`;\n\t\t\tthis.unmaskMeshInstance.castShadow = false;\n\t\t\tthis.unmaskMeshInstance.receiveShadow = false;\n\t\t\tthis.unmaskMeshInstance.pick = false;\n\t\t\tthis.model.meshInstances.push(this.unmaskMeshInstance);\n\t\t\tfor (const name in this.meshInstance.parameters) {\n\t\t\t\tthis.unmaskMeshInstance.setParameter(name, this.meshInstance.parameters[name].data);\n\t\t\t}\n\t\t} else {\n\t\t\tconst idx = this.model.meshInstances.indexOf(this.unmaskMeshInstance);\n\t\t\tif (idx >= 0) {\n\t\t\t\tthis.model.meshInstances.splice(idx, 1);\n\t\t\t}\n\t\t}\n\t\tif (this._entity.enabled && this._element.enabled) {\n\t\t\tthis._element.addModelToLayers(this.model);\n\t\t}\n\t\tif (!mask) {\n\t\t\tvar _this$unmaskMeshInsta2;\n\t\t\t(_this$unmaskMeshInsta2 = this.unmaskMeshInstance) == null || _this$unmaskMeshInsta2.destroy();\n\t\t\tthis.unmaskMeshInstance = null;\n\t\t}\n\t}\n\tsetMaterial(material) {\n\t\tif (!this.meshInstance) return;\n\t\tthis.meshInstance.material = material;\n\t\tif (this.unmaskMeshInstance) {\n\t\t\tthis.unmaskMeshInstance.material = material;\n\t\t}\n\t}\n\tsetParameter(name, value) {\n\t\tif (!this.meshInstance) return;\n\t\tthis.meshInstance.setParameter(name, value);\n\t\tif (this.unmaskMeshInstance) {\n\t\t\tthis.unmaskMeshInstance.setParameter(name, value);\n\t\t}\n\t}\n\tdeleteParameter(name) {\n\t\tif (!this.meshInstance) return;\n\t\tthis.meshInstance.deleteParameter(name);\n\t\tif (this.unmaskMeshInstance) {\n\t\t\tthis.unmaskMeshInstance.deleteParameter(name);\n\t\t}\n\t}\n\tsetUnmaskDrawOrder() {\n\t\tif (!this.meshInstance) return;\n\t\tconst getLastChild = function getLastChild(e) {\n\t\t\tlet last;\n\t\t\tconst c = e.children;\n\t\t\tconst l = c.length;\n\t\t\tif (l) {\n\t\t\t\tfor (let i = 0; i < l; i++) {\n\t\t\t\t\tif (c[i].element) {\n\t\t\t\t\t\tlast = c[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!last) return null;\n\t\t\t\tconst child = getLastChild(last);\n\t\t\t\tif (child) {\n\t\t\t\t\treturn child;\n\t\t\t\t}\n\t\t\t\treturn last;\n\t\t\t}\n\t\t\treturn null;\n\t\t};\n\t\tif (this.unmaskMeshInstance) {\n\t\t\tconst lastChild = getLastChild(this._entity);\n\t\t\tif (lastChild && lastChild.element) {\n\t\t\t\tthis.unmaskMeshInstance.drawOrder = lastChild.element.drawOrder + lastChild.element.getMaskOffset();\n\t\t\t} else {\n\t\t\t\tthis.unmaskMeshInstance.drawOrder = this.meshInstance.drawOrder + this._element.getMaskOffset();\n\t\t\t}\n\t\t}\n\t}\n\tsetDrawOrder(drawOrder) {\n\t\tif (!this.meshInstance) {\n\t\t\treturn;\n\t\t}\n\t\tthis.meshInstance.drawOrder = drawOrder;\n\t}\n\tsetCull(cull) {\n\t\tif (!this.meshInstance) return;\n\t\tconst element = this._element;\n\t\tlet visibleFn = null;\n\t\tif (cull && element._isScreenSpace()) {\n\t\t\tvisibleFn = function (camera) {\n\t\t\t\treturn element.isVisibleForCamera(camera);\n\t\t\t};\n\t\t}\n\t\tthis.meshInstance.cull = cull;\n\t\tthis.meshInstance.isVisibleFunc = visibleFn;\n\t\tif (this.unmaskMeshInstance) {\n\t\t\tthis.unmaskMeshInstance.cull = cull;\n\t\t\tthis.unmaskMeshInstance.isVisibleFunc = visibleFn;\n\t\t}\n\t}\n\tsetScreenSpace(screenSpace) {\n\t\tif (!this.meshInstance) return;\n\t\tthis.meshInstance.screenSpace = screenSpace;\n\t\tif (this.unmaskMeshInstance) {\n\t\t\tthis.unmaskMeshInstance.screenSpace = screenSpace;\n\t\t}\n\t}\n\tsetLayer(layer) {\n\t\tif (!this.meshInstance) return;\n\t\tthis.meshInstance.layer = layer;\n\t\tif (this.unmaskMeshInstance) {\n\t\t\tthis.unmaskMeshInstance.layer = layer;\n\t\t}\n\t}\n\tforceUpdateAabb(mask) {\n\t\tif (!this.meshInstance) return;\n\t\tthis.meshInstance._aabbVer = -1;\n\t\tif (this.unmaskMeshInstance) {\n\t\t\tthis.unmaskMeshInstance._aabbVer = -1;\n\t\t}\n\t}\n\tsetAabbFunc(fn) {\n\t\tif (!this.meshInstance) return;\n\t\tthis.meshInstance._updateAabbFunc = fn;\n\t\tif (this.unmaskMeshInstance) {\n\t\t\tthis.unmaskMeshInstance._updateAabbFunc = fn;\n\t\t}\n\t}\n}\nclass ImageElement {\n\tconstructor(element) {\n\t\tthis._evtSetMeshes = null;\n\t\tthis._element = element;\n\t\tthis._entity = element.entity;\n\t\tthis._system = element.system;\n\t\tthis._textureAsset = null;\n\t\tthis._texture = null;\n\t\tthis._materialAsset = null;\n\t\tthis._material = null;\n\t\tthis._spriteAsset = null;\n\t\tthis._sprite = null;\n\t\tthis._spriteFrame = 0;\n\t\tthis._pixelsPerUnit = null;\n\t\tthis._targetAspectRatio = -1;\n\t\tthis._rect = new Vec4(0, 0, 1, 1);\n\t\tthis._mask = false;\n\t\tthis._maskRef = 0;\n\t\tthis._outerScale = new Vec2();\n\t\tthis._outerScaleUniform = new Float32Array(2);\n\t\tthis._innerOffset = new Vec4();\n\t\tthis._innerOffsetUniform = new Float32Array(4);\n\t\tthis._atlasRect = new Vec4();\n\t\tthis._atlasRectUniform = new Float32Array(4);\n\t\tthis._defaultMesh = this._createMesh();\n\t\tthis._renderable = new ImageRenderable(this._entity, this._defaultMesh, this._material);\n\t\tthis._color = new Color(1, 1, 1, 1);\n\t\tthis._colorUniform = new Float32Array([1, 1, 1]);\n\t\tthis._renderable.setParameter('material_emissive', this._colorUniform);\n\t\tthis._renderable.setParameter('material_opacity', 1);\n\t\tthis._updateAabbFunc = this._updateAabb.bind(this);\n\t\tthis._onScreenChange(this._element.screen);\n\t\tthis._element.on('resize', this._onParentResizeOrPivotChange, this);\n\t\tthis._element.on('set:pivot', this._onParentResizeOrPivotChange, this);\n\t\tthis._element.on('screen:set:screenspace', this._onScreenSpaceChange, this);\n\t\tthis._element.on('set:screen', this._onScreenChange, this);\n\t\tthis._element.on('set:draworder', this._onDrawOrderChange, this);\n\t\tthis._element.on('screen:set:resolution', this._onResolutionChange, this);\n\t}\n\tdestroy() {\n\t\tthis.textureAsset = null;\n\t\tthis.spriteAsset = null;\n\t\tthis.materialAsset = null;\n\t\tthis._renderable.setMesh(this._defaultMesh);\n\t\tthis._renderable.destroy();\n\t\tthis._defaultMesh = null;\n\t\tthis._element.off('resize', this._onParentResizeOrPivotChange, this);\n\t\tthis._element.off('set:pivot', this._onParentResizeOrPivotChange, this);\n\t\tthis._element.off('screen:set:screenspace', this._onScreenSpaceChange, this);\n\t\tthis._element.off('set:screen', this._onScreenChange, this);\n\t\tthis._element.off('set:draworder', this._onDrawOrderChange, this);\n\t\tthis._element.off('screen:set:resolution', this._onResolutionChange, this);\n\t}\n\t_onResolutionChange(res) {}\n\t_onParentResizeOrPivotChange() {\n\t\tif (this._renderable.mesh) {\n\t\t\tthis._updateMesh(this._renderable.mesh);\n\t\t}\n\t}\n\t_onScreenSpaceChange(value) {\n\t\tthis._updateMaterial(value);\n\t}\n\t_onScreenChange(screen, previous) {\n\t\tif (screen) {\n\t\t\tthis._updateMaterial(screen.screen.screenSpace);\n\t\t} else {\n\t\t\tthis._updateMaterial(false);\n\t\t}\n\t}\n\t_onDrawOrderChange(order) {\n\t\tthis._renderable.setDrawOrder(order);\n\t\tif (this.mask && this._element.screen) {\n\t\t\tthis._element.screen.screen.once('syncdraworder', function () {\n\t\t\t\tthis._renderable.setUnmaskDrawOrder();\n\t\t\t}, this);\n\t\t}\n\t}\n\t_hasUserMaterial() {\n\t\treturn !!this._materialAsset || !!this._material && this._system.defaultImageMaterials.indexOf(this._material) === -1;\n\t}\n\t_use9Slicing() {\n\t\treturn this.sprite && (this.sprite.renderMode === SPRITE_RENDERMODE_SLICED || this.sprite.renderMode === SPRITE_RENDERMODE_TILED);\n\t}\n\t_updateMaterial(screenSpace) {\n\t\tconst mask = !!this._mask;\n\t\tconst nineSliced = !!(this.sprite && this.sprite.renderMode === SPRITE_RENDERMODE_SLICED);\n\t\tconst nineTiled = !!(this.sprite && this.sprite.renderMode === SPRITE_RENDERMODE_TILED);\n\t\tif (!this._hasUserMaterial()) {\n\t\t\tthis._material = this._system.getImageElementMaterial(screenSpace, mask, nineSliced, nineTiled);\n\t\t}\n\t\tif (this._renderable) {\n\t\t\tthis._renderable.setCull(!this._element._isScreenSpace() || this._element._isScreenCulled());\n\t\t\tthis._renderable.setMaterial(this._material);\n\t\t\tthis._renderable.setScreenSpace(screenSpace);\n\t\t\tthis._renderable.setLayer(screenSpace ? LAYER_HUD : LAYER_WORLD);\n\t\t}\n\t}\n\t_createMesh() {\n\t\tconst element = this._element;\n\t\tconst w = element.calculatedWidth;\n\t\tconst h = element.calculatedHeight;\n\t\tconst r = this._rect;\n\t\tconst device = this._system.app.graphicsDevice;\n\t\tconst vertexData = new Float32Array([w, 0, 0, 0, 0, 1, r.x + r.z, 1.0 - r.y, w, h, 0, 0, 0, 1, r.x + r.z, 1.0 - (r.y + r.w), 0, 0, 0, 0, 0, 1, r.x, 1.0 - r.y, 0, h, 0, 0, 0, 1, r.x, 1.0 - (r.y + r.w)]);\n\t\tconst vertexFormat = _vertexFormatDeviceCache.get(device, () => {\n\t\t\treturn new VertexFormat(device, [{\n\t\t\t\tsemantic: SEMANTIC_POSITION,\n\t\t\t\tcomponents: 3,\n\t\t\t\ttype: TYPE_FLOAT32\n\t\t\t}, {\n\t\t\t\tsemantic: SEMANTIC_NORMAL,\n\t\t\t\tcomponents: 3,\n\t\t\t\ttype: TYPE_FLOAT32\n\t\t\t}, {\n\t\t\t\tsemantic: SEMANTIC_TEXCOORD0,\n\t\t\t\tcomponents: 2,\n\t\t\t\ttype: TYPE_FLOAT32\n\t\t\t}]);\n\t\t});\n\t\tconst vertexBuffer = new VertexBuffer(device, vertexFormat, 4, {\n\t\t\tdata: vertexData.buffer\n\t\t});\n\t\tconst mesh = new Mesh(device);\n\t\tmesh.vertexBuffer = vertexBuffer;\n\t\tmesh.primitive[0].type = PRIMITIVE_TRISTRIP;\n\t\tmesh.primitive[0].base = 0;\n\t\tmesh.primitive[0].count = 4;\n\t\tmesh.primitive[0].indexed = false;\n\t\tmesh.aabb.setMinMax(Vec3.ZERO, new Vec3(w, h, 0));\n\t\tthis._updateMesh(mesh);\n\t\treturn mesh;\n\t}\n\t_updateMesh(mesh) {\n\t\tconst element = this._element;\n\t\tlet w = element.calculatedWidth;\n\t\tlet h = element.calculatedHeight;\n\t\tif (element.fitMode !== FITMODE_STRETCH && this._targetAspectRatio > 0) {\n\t\t\tconst actualRatio = element.calculatedWidth / element.calculatedHeight;\n\t\t\tif (element.fitMode === FITMODE_CONTAIN && actualRatio > this._targetAspectRatio || element.fitMode === FITMODE_COVER && actualRatio < this._targetAspectRatio) {\n\t\t\t\tw = element.calculatedHeight * this._targetAspectRatio;\n\t\t\t} else {\n\t\t\t\th = element.calculatedWidth / this._targetAspectRatio;\n\t\t\t}\n\t\t}\n\t\tconst screenSpace = element._isScreenSpace();\n\t\tthis._updateMaterial(screenSpace);\n\t\tif (this._renderable) this._renderable.forceUpdateAabb();\n\t\tif (this.sprite && (this.sprite.renderMode === SPRITE_RENDERMODE_SLICED || this.sprite.renderMode === SPRITE_RENDERMODE_TILED)) {\n\t\t\tconst frameData = this._sprite.atlas.frames[this._sprite.frameKeys[this._spriteFrame]];\n\t\t\tconst borderWidthScale = 2 / frameData.rect.z;\n\t\t\tconst borderHeightScale = 2 / frameData.rect.w;\n\t\t\tthis._innerOffset.set(frameData.border.x * borderWidthScale, frameData.border.y * borderHeightScale, frameData.border.z * borderWidthScale, frameData.border.w * borderHeightScale);\n\t\t\tconst tex = this.sprite.atlas.texture;\n\t\t\tthis._atlasRect.set(frameData.rect.x / tex.width, frameData.rect.y / tex.height, frameData.rect.z / tex.width, frameData.rect.w / tex.height);\n\t\t\tconst ppu = this._pixelsPerUnit !== null ? this._pixelsPerUnit : this.sprite.pixelsPerUnit;\n\t\t\tconst scaleMulX = frameData.rect.z / ppu;\n\t\t\tconst scaleMulY = frameData.rect.w / ppu;\n\t\t\tthis._outerScale.set(Math.max(w, this._innerOffset.x * scaleMulX), Math.max(h, this._innerOffset.y * scaleMulY));\n\t\t\tlet scaleX = scaleMulX;\n\t\t\tlet scaleY = scaleMulY;\n\t\t\tthis._outerScale.x /= scaleMulX;\n\t\t\tthis._outerScale.y /= scaleMulY;\n\t\t\tscaleX *= math.clamp(w / (this._innerOffset.x * scaleMulX), 0.0001, 1);\n\t\t\tscaleY *= math.clamp(h / (this._innerOffset.y * scaleMulY), 0.0001, 1);\n\t\t\tif (this._renderable) {\n\t\t\t\tthis._innerOffsetUniform[0] = this._innerOffset.x;\n\t\t\t\tthis._innerOffsetUniform[1] = this._innerOffset.y;\n\t\t\t\tthis._innerOffsetUniform[2] = this._innerOffset.z;\n\t\t\t\tthis._innerOffsetUniform[3] = this._innerOffset.w;\n\t\t\t\tthis._renderable.setParameter('innerOffset', this._innerOffsetUniform);\n\t\t\t\tthis._atlasRectUniform[0] = this._atlasRect.x;\n\t\t\t\tthis._atlasRectUniform[1] = this._atlasRect.y;\n\t\t\t\tthis._atlasRectUniform[2] = this._atlasRect.z;\n\t\t\t\tthis._atlasRectUniform[3] = this._atlasRect.w;\n\t\t\t\tthis._renderable.setParameter('atlasRect', this._atlasRectUniform);\n\t\t\t\tthis._outerScaleUniform[0] = this._outerScale.x;\n\t\t\t\tthis._outerScaleUniform[1] = this._outerScale.y;\n\t\t\t\tthis._renderable.setParameter('outerScale', this._outerScaleUniform);\n\t\t\t\tthis._renderable.setAabbFunc(this._updateAabbFunc);\n\t\t\t\tthis._renderable.node.setLocalScale(scaleX, scaleY, 1);\n\t\t\t\tthis._renderable.node.setLocalPosition((0.5 - element.pivot.x) * w, (0.5 - element.pivot.y) * h, 0);\n\t\t\t}\n\t\t} else {\n\t\t\tconst vb = mesh.vertexBuffer;\n\t\t\tconst vertexDataF32 = new Float32Array(vb.lock());\n\t\t\tconst hp = element.pivot.x;\n\t\t\tconst vp = element.pivot.y;\n\t\t\tvertexDataF32[0] = w - hp * w;\n\t\t\tvertexDataF32[1] = 0 - vp * h;\n\t\t\tvertexDataF32[8] = w - hp * w;\n\t\t\tvertexDataF32[9] = h - vp * h;\n\t\t\tvertexDataF32[16] = 0 - hp * w;\n\t\t\tvertexDataF32[17] = 0 - vp * h;\n\t\t\tvertexDataF32[24] = 0 - hp * w;\n\t\t\tvertexDataF32[25] = h - vp * h;\n\t\t\tlet atlasTextureWidth = 1;\n\t\t\tlet atlasTextureHeight = 1;\n\t\t\tlet rect = this._rect;\n\t\t\tif (this._sprite && this._sprite.frameKeys[this._spriteFrame] && this._sprite.atlas) {\n\t\t\t\tconst frame = this._sprite.atlas.frames[this._sprite.frameKeys[this._spriteFrame]];\n\t\t\t\tif (frame) {\n\t\t\t\t\trect = frame.rect;\n\t\t\t\t\tatlasTextureWidth = this._sprite.atlas.texture.width;\n\t\t\t\t\tatlasTextureHeight = this._sprite.atlas.texture.height;\n\t\t\t\t}\n\t\t\t}\n\t\t\tvertexDataF32[6] = (rect.x + rect.z) / atlasTextureWidth;\n\t\t\tvertexDataF32[7] = 1.0 - rect.y / atlasTextureHeight;\n\t\t\tvertexDataF32[14] = (rect.x + rect.z) / atlasTextureWidth;\n\t\t\tvertexDataF32[15] = 1.0 - (rect.y + rect.w) / atlasTextureHeight;\n\t\t\tvertexDataF32[22] = rect.x / atlasTextureWidth;\n\t\t\tvertexDataF32[23] = 1.0 - rect.y / atlasTextureHeight;\n\t\t\tvertexDataF32[30] = rect.x / atlasTextureWidth;\n\t\t\tvertexDataF32[31] = 1.0 - (rect.y + rect.w) / atlasTextureHeight;\n\t\t\tvb.unlock();\n\t\t\tconst min = new Vec3(0 - hp * w, 0 - vp * h, 0);\n\t\t\tconst max = new Vec3(w - hp * w, h - vp * h, 0);\n\t\t\tmesh.aabb.setMinMax(min, max);\n\t\t\tif (this._renderable) {\n\t\t\t\tthis._renderable.node.setLocalScale(1, 1, 1);\n\t\t\t\tthis._renderable.node.setLocalPosition(0, 0, 0);\n\t\t\t\tthis._renderable.setAabbFunc(null);\n\t\t\t}\n\t\t}\n\t\tthis._meshDirty = false;\n\t}\n\t_updateSprite() {\n\t\tlet nineSlice = false;\n\t\tlet mesh = null;\n\t\tthis._targetAspectRatio = -1;\n\t\tif (this._sprite && this._sprite.atlas) {\n\t\t\tmesh = this._sprite.meshes[this.spriteFrame];\n\t\t\tnineSlice = this._sprite.renderMode === SPRITE_RENDERMODE_SLICED || this._sprite.renderMode === SPRITE_RENDERMODE_TILED;\n\t\t\tconst frameData = this._sprite.atlas.frames[this._sprite.frameKeys[this._spriteFrame]];\n\t\t\tif ((frameData == null ? void 0 : frameData.rect.w) > 0) {\n\t\t\t\tthis._targetAspectRatio = frameData.rect.z / frameData.rect.w;\n\t\t\t}\n\t\t}\n\t\tthis.mesh = nineSlice ? mesh : this._defaultMesh;\n\t\tthis.refreshMesh();\n\t}\n\trefreshMesh() {\n\t\tif (this.mesh) {\n\t\t\tif (!this._element._beingInitialized) {\n\t\t\t\tthis._updateMesh(this.mesh);\n\t\t\t} else {\n\t\t\t\tthis._meshDirty = true;\n\t\t\t}\n\t\t}\n\t}\n\t_updateAabb(aabb) {\n\t\taabb.center.set(0, 0, 0);\n\t\taabb.halfExtents.set(this._outerScale.x * 0.5, this._outerScale.y * 0.5, 0.001);\n\t\taabb.setFromTransformedAabb(aabb, this._renderable.node.getWorldTransform());\n\t\treturn aabb;\n\t}\n\t_toggleMask() {\n\t\tthis._element._dirtifyMask();\n\t\tconst screenSpace = this._element._isScreenSpace();\n\t\tthis._updateMaterial(screenSpace);\n\t\tthis._renderable.setMask(!!this._mask);\n\t}\n\t_onMaterialLoad(asset) {\n\t\tthis.material = asset.resource;\n\t}\n\t_onMaterialAdded(asset) {\n\t\tthis._system.app.assets.off(`add:${asset.id}`, this._onMaterialAdded, this);\n\t\tif (this._materialAsset === asset.id) {\n\t\t\tthis._bindMaterialAsset(asset);\n\t\t}\n\t}\n\t_bindMaterialAsset(asset) {\n\t\tif (!this._entity.enabled) return;\n\t\tasset.on('load', this._onMaterialLoad, this);\n\t\tasset.on('change', this._onMaterialChange, this);\n\t\tasset.on('remove', this._onMaterialRemove, this);\n\t\tif (asset.resource) {\n\t\t\tthis._onMaterialLoad(asset);\n\t\t} else {\n\t\t\tthis._system.app.assets.load(asset);\n\t\t}\n\t}\n\t_unbindMaterialAsset(asset) {\n\t\tasset.off('load', this._onMaterialLoad, this);\n\t\tasset.off('change', this._onMaterialChange, this);\n\t\tasset.off('remove', this._onMaterialRemove, this);\n\t}\n\t_onMaterialChange() {}\n\t_onMaterialRemove() {}\n\t_onTextureAdded(asset) {\n\t\tthis._system.app.assets.off(`add:${asset.id}`, this._onTextureAdded, this);\n\t\tif (this._textureAsset === asset.id) {\n\t\t\tthis._bindTextureAsset(asset);\n\t\t}\n\t}\n\t_bindTextureAsset(asset) {\n\t\tif (!this._entity.enabled) return;\n\t\tasset.on('load', this._onTextureLoad, this);\n\t\tasset.on('change', this._onTextureChange, this);\n\t\tasset.on('remove', this._onTextureRemove, this);\n\t\tif (asset.resource) {\n\t\t\tthis._onTextureLoad(asset);\n\t\t} else {\n\t\t\tthis._system.app.assets.load(asset);\n\t\t}\n\t}\n\t_unbindTextureAsset(asset) {\n\t\tasset.off('load', this._onTextureLoad, this);\n\t\tasset.off('change', this._onTextureChange, this);\n\t\tasset.off('remove', this._onTextureRemove, this);\n\t}\n\t_onTextureLoad(asset) {\n\t\tthis.texture = asset.resource;\n\t}\n\t_onTextureChange(asset) {}\n\t_onTextureRemove(asset) {}\n\t_onSpriteAssetAdded(asset) {\n\t\tthis._system.app.assets.off(`add:${asset.id}`, this._onSpriteAssetAdded, this);\n\t\tif (this._spriteAsset === asset.id) {\n\t\t\tthis._bindSpriteAsset(asset);\n\t\t}\n\t}\n\t_bindSpriteAsset(asset) {\n\t\tif (!this._entity.enabled) return;\n\t\tasset.on('load', this._onSpriteAssetLoad, this);\n\t\tasset.on('change', this._onSpriteAssetChange, this);\n\t\tasset.on('remove', this._onSpriteAssetRemove, this);\n\t\tif (asset.resource) {\n\t\t\tthis._onSpriteAssetLoad(asset);\n\t\t} else {\n\t\t\tthis._system.app.assets.load(asset);\n\t\t}\n\t}\n\t_unbindSpriteAsset(asset) {\n\t\tasset.off('load', this._onSpriteAssetLoad, this);\n\t\tasset.off('change', this._onSpriteAssetChange, this);\n\t\tasset.off('remove', this._onSpriteAssetRemove, this);\n\t\tif (asset.data.textureAtlasAsset) {\n\t\t\tthis._system.app.assets.off(`load:${asset.data.textureAtlasAsset}`, this._onTextureAtlasLoad, this);\n\t\t}\n\t}\n\t_onSpriteAssetLoad(asset) {\n\t\tif (!asset || !asset.resource) {\n\t\t\tthis.sprite = null;\n\t\t} else {\n\t\t\tif (!asset.resource.atlas) {\n\t\t\t\tconst atlasAssetId = asset.data.textureAtlasAsset;\n\t\t\t\tif (atlasAssetId) {\n\t\t\t\t\tconst assets = this._system.app.assets;\n\t\t\t\t\tassets.off(`load:${atlasAssetId}`, this._onTextureAtlasLoad, this);\n\t\t\t\t\tassets.once(`load:${atlasAssetId}`, this._onTextureAtlasLoad, this);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.sprite = asset.resource;\n\t\t\t}\n\t\t}\n\t}\n\t_onSpriteAssetChange(asset) {\n\t\tthis._onSpriteAssetLoad(asset);\n\t}\n\t_onSpriteAssetRemove(asset) {}\n\t_bindSprite(sprite) {\n\t\tthis._evtSetMeshes = sprite.on('set:meshes', this._onSpriteMeshesChange, this);\n\t\tsprite.on('set:pixelsPerUnit', this._onSpritePpuChange, this);\n\t\tsprite.on('set:atlas', this._onAtlasTextureChange, this);\n\t\tif (sprite.atlas) {\n\t\t\tsprite.atlas.on('set:texture', this._onAtlasTextureChange, this);\n\t\t}\n\t}\n\t_unbindSprite(sprite) {\n\t\tvar _this$_evtSetMeshes;\n\t\t(_this$_evtSetMeshes = this._evtSetMeshes) == null || _this$_evtSetMeshes.off();\n\t\tthis._evtSetMeshes = null;\n\t\tsprite.off('set:pixelsPerUnit', this._onSpritePpuChange, this);\n\t\tsprite.off('set:atlas', this._onAtlasTextureChange, this);\n\t\tif (sprite.atlas) {\n\t\t\tsprite.atlas.off('set:texture', this._onAtlasTextureChange, this);\n\t\t}\n\t}\n\t_onSpriteMeshesChange() {\n\t\tif (this._sprite) {\n\t\t\tthis._spriteFrame = math.clamp(this._spriteFrame, 0, this._sprite.frameKeys.length - 1);\n\t\t}\n\t\tthis._updateSprite();\n\t}\n\t_onSpritePpuChange() {\n\t\tif (this.sprite.renderMode !== SPRITE_RENDERMODE_SIMPLE && this._pixelsPerUnit === null) {\n\t\t\tthis._updateSprite();\n\t\t}\n\t}\n\t_onAtlasTextureChange() {\n\t\tif (this.sprite && this.sprite.atlas && this.sprite.atlas.texture) {\n\t\t\tthis._renderable.setParameter('texture_emissiveMap', this._sprite.atlas.texture);\n\t\t\tthis._renderable.setParameter('texture_opacityMap', this._sprite.atlas.texture);\n\t\t} else {\n\t\t\tthis._renderable.deleteParameter('texture_emissiveMap');\n\t\t\tthis._renderable.deleteParameter('texture_opacityMap');\n\t\t}\n\t}\n\t_onTextureAtlasLoad(atlasAsset) {\n\t\tconst spriteAsset = this._spriteAsset;\n\t\tif (spriteAsset instanceof Asset) {\n\t\t\tthis._onSpriteAssetLoad(spriteAsset);\n\t\t} else {\n\t\t\tthis._onSpriteAssetLoad(this._system.app.assets.get(spriteAsset));\n\t\t}\n\t}\n\tonEnable() {\n\t\tif (this._materialAsset) {\n\t\t\tconst asset = this._system.app.assets.get(this._materialAsset);\n\t\t\tif (asset && asset.resource !== this._material) {\n\t\t\t\tthis._bindMaterialAsset(asset);\n\t\t\t}\n\t\t}\n\t\tif (this._textureAsset) {\n\t\t\tconst asset = this._system.app.assets.get(this._textureAsset);\n\t\t\tif (asset && asset.resource !== this._texture) {\n\t\t\t\tthis._bindTextureAsset(asset);\n\t\t\t}\n\t\t}\n\t\tif (this._spriteAsset) {\n\t\t\tconst asset = this._system.app.assets.get(this._spriteAsset);\n\t\t\tif (asset && asset.resource !== this._sprite) {\n\t\t\t\tthis._bindSpriteAsset(asset);\n\t\t\t}\n\t\t}\n\t\tthis._element.addModelToLayers(this._renderable.model);\n\t}\n\tonDisable() {\n\t\tthis._element.removeModelFromLayers(this._renderable.model);\n\t}\n\t_setStencil(stencilParams) {\n\t\tthis._renderable.meshInstance.stencilFront = stencilParams;\n\t\tthis._renderable.meshInstance.stencilBack = stencilParams;\n\t\tlet ref = 0;\n\t\tif (this._element.maskedBy) {\n\t\t\tref = this._element.maskedBy.element._image._maskRef;\n\t\t}\n\t\tif (this._renderable.unmaskMeshInstance) {\n\t\t\tconst sp = new StencilParameters({\n\t\t\t\tref: ref + 1,\n\t\t\t\tfunc: FUNC_EQUAL,\n\t\t\t\tzpass: STENCILOP_DECREMENT\n\t\t\t});\n\t\t\tthis._renderable.unmaskMeshInstance.stencilFront = sp;\n\t\t\tthis._renderable.unmaskMeshInstance.stencilBack = sp;\n\t\t}\n\t}\n\tset color(value) {\n\t\tconst r = value.r;\n\t\tconst g = value.g;\n\t\tconst b = value.b;\n\t\tif (this._color.r !== r || this._color.g !== g || this._color.b !== b) {\n\t\t\tthis._color.r = r;\n\t\t\tthis._color.g = g;\n\t\t\tthis._color.b = b;\n\t\t\tthis._colorUniform[0] = r;\n\t\t\tthis._colorUniform[1] = g;\n\t\t\tthis._colorUniform[2] = b;\n\t\t\tthis._renderable.setParameter('material_emissive', this._colorUniform);\n\t\t}\n\t\tif (this._element) {\n\t\t\tthis._element.fire('set:color', this._color);\n\t\t}\n\t}\n\tget color() {\n\t\treturn this._color;\n\t}\n\tset opacity(value) {\n\t\tif (value !== this._color.a) {\n\t\t\tthis._color.a = value;\n\t\t\tthis._renderable.setParameter('material_opacity', value);\n\t\t}\n\t\tif (this._element) {\n\t\t\tthis._element.fire('set:opacity', value);\n\t\t}\n\t}\n\tget opacity() {\n\t\treturn this._color.a;\n\t}\n\tset rect(value) {\n\t\tlet x, y, z, w;\n\t\tif (value instanceof Vec4) {\n\t\t\tx = value.x;\n\t\t\ty = value.y;\n\t\t\tz = value.z;\n\t\t\tw = value.w;\n\t\t} else {\n\t\t\tx = value[0];\n\t\t\ty = value[1];\n\t\t\tz = value[2];\n\t\t\tw = value[3];\n\t\t}\n\t\tif (x === this._rect.x && y === this._rect.y && z === this._rect.z && w === this._rect.w) {\n\t\t\treturn;\n\t\t}\n\t\tthis._rect.set(x, y, z, w);\n\t\tif (this._renderable.mesh) {\n\t\t\tif (!this._element._beingInitialized) {\n\t\t\t\tthis._updateMesh(this._renderable.mesh);\n\t\t\t} else {\n\t\t\t\tthis._meshDirty = true;\n\t\t\t}\n\t\t}\n\t}\n\tget rect() {\n\t\treturn this._rect;\n\t}\n\t_removeMaterialAssetEvents() {\n\t\tif (this._materialAsset) {\n\t\t\tconst assets = this._system.app.assets;\n\t\t\tassets.off(`add:${this._materialAsset}`, this._onMaterialAdded, this);\n\t\t\tconst asset = assets.get(this._materialAsset);\n\t\t\tif (asset) {\n\t\t\t\tasset.off('load', this._onMaterialLoad, this);\n\t\t\t\tasset.off('change', this._onMaterialChange, this);\n\t\t\t\tasset.off('remove', this._onMaterialRemove, this);\n\t\t\t}\n\t\t}\n\t}\n\tset material(value) {\n\t\tif (this._material === value) return;\n\t\tif (!value) {\n\t\t\tconst screenSpace = this._element._isScreenSpace();\n\t\t\tif (this.mask) {\n\t\t\t\tvalue = screenSpace ? this._system.defaultScreenSpaceImageMaskMaterial : this._system.defaultImageMaskMaterial;\n\t\t\t} else {\n\t\t\t\tvalue = screenSpace ? this._system.defaultScreenSpaceImageMaterial : this._system.defaultImageMaterial;\n\t\t\t}\n\t\t}\n\t\tthis._material = value;\n\t\tif (this._materialAsset) {\n\t\t\tconst asset = this._system.app.assets.get(this._materialAsset);\n\t\t\tif (!asset || asset.resource !== value) {\n\t\t\t\tthis._removeMaterialAssetEvents();\n\t\t\t\tthis._materialAsset = null;\n\t\t\t}\n\t\t}\n\t\tif (value) {\n\t\t\tthis._renderable.setMaterial(value);\n\t\t\tif (this._hasUserMaterial()) {\n\t\t\t\tthis._renderable.deleteParameter('material_opacity');\n\t\t\t\tthis._renderable.deleteParameter('material_emissive');\n\t\t\t} else {\n\t\t\t\tthis._colorUniform[0] = this._color.r;\n\t\t\t\tthis._colorUniform[1] = this._color.g;\n\t\t\t\tthis._colorUniform[2] = this._color.b;\n\t\t\t\tthis._renderable.setParameter('material_emissive', this._colorUniform);\n\t\t\t\tthis._renderable.setParameter('material_opacity', this._color.a);\n\t\t\t}\n\t\t}\n\t}\n\tget material() {\n\t\treturn this._material;\n\t}\n\tset materialAsset(value) {\n\t\tconst assets = this._system.app.assets;\n\t\tlet _id = value;\n\t\tif (value instanceof Asset) {\n\t\t\t_id = value.id;\n\t\t}\n\t\tif (this._materialAsset !== _id) {\n\t\t\tthis._removeMaterialAssetEvents();\n\t\t\tthis._materialAsset = _id;\n\t\t\tif (this._materialAsset) {\n\t\t\t\tconst asset = assets.get(this._materialAsset);\n\t\t\t\tif (!asset) {\n\t\t\t\t\tthis._materialAsset = null;\n\t\t\t\t\tthis.material = null;\n\t\t\t\t\tthis._materialAsset = _id;\n\t\t\t\t\tassets.on(`add:${this._materialAsset}`, this._onMaterialAdded, this);\n\t\t\t\t} else {\n\t\t\t\t\tthis._bindMaterialAsset(asset);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._materialAsset = null;\n\t\t\t\tthis.material = null;\n\t\t\t\tthis._materialAsset = _id;\n\t\t\t}\n\t\t}\n\t}\n\tget materialAsset() {\n\t\treturn this._materialAsset;\n\t}\n\tset texture(value) {\n\t\tif (this._texture === value) return;\n\t\tif (this._textureAsset) {\n\t\t\tconst textureAsset = this._system.app.assets.get(this._textureAsset);\n\t\t\tif (textureAsset && textureAsset.resource !== value) {\n\t\t\t\tthis.textureAsset = null;\n\t\t\t}\n\t\t}\n\t\tthis._texture = value;\n\t\tif (value) {\n\t\t\tif (this._spriteAsset) {\n\t\t\t\tthis.spriteAsset = null;\n\t\t\t}\n\t\t\tthis._renderable.setParameter('texture_emissiveMap', this._texture);\n\t\t\tthis._renderable.setParameter('texture_opacityMap', this._texture);\n\t\t\tthis._colorUniform[0] = this._color.r;\n\t\t\tthis._colorUniform[1] = this._color.g;\n\t\t\tthis._colorUniform[2] = this._color.b;\n\t\t\tthis._renderable.setParameter('material_emissive', this._colorUniform);\n\t\t\tthis._renderable.setParameter('material_opacity', this._color.a);\n\t\t\tconst newAspectRatio = this._texture.width / this._texture.height;\n\t\t\tif (newAspectRatio !== this._targetAspectRatio) {\n\t\t\t\tthis._targetAspectRatio = newAspectRatio;\n\t\t\t\tif (this._element.fitMode !== FITMODE_STRETCH) {\n\t\t\t\t\tthis.refreshMesh();\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthis._renderable.deleteParameter('texture_emissiveMap');\n\t\t\tthis._renderable.deleteParameter('texture_opacityMap');\n\t\t\tthis._targetAspectRatio = -1;\n\t\t\tif (this._element.fitMode !== FITMODE_STRETCH) {\n\t\t\t\tthis.refreshMesh();\n\t\t\t}\n\t\t}\n\t}\n\tget texture() {\n\t\treturn this._texture;\n\t}\n\tset textureAsset(value) {\n\t\tconst assets = this._system.app.assets;\n\t\tlet _id = value;\n\t\tif (value instanceof Asset) {\n\t\t\t_id = value.id;\n\t\t}\n\t\tif (this._textureAsset !== _id) {\n\t\t\tif (this._textureAsset) {\n\t\t\t\tassets.off(`add:${this._textureAsset}`, this._onTextureAdded, this);\n\t\t\t\tconst _prev = assets.get(this._textureAsset);\n\t\t\t\tif (_prev) {\n\t\t\t\t\t_prev.off('load', this._onTextureLoad, this);\n\t\t\t\t\t_prev.off('change', this._onTextureChange, this);\n\t\t\t\t\t_prev.off('remove', this._onTextureRemove, this);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._textureAsset = _id;\n\t\t\tif (this._textureAsset) {\n\t\t\t\tconst asset = assets.get(this._textureAsset);\n\t\t\t\tif (!asset) {\n\t\t\t\t\tthis.texture = null;\n\t\t\t\t\tassets.on(`add:${this._textureAsset}`, this._onTextureAdded, this);\n\t\t\t\t} else {\n\t\t\t\t\tthis._bindTextureAsset(asset);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.texture = null;\n\t\t\t}\n\t\t}\n\t}\n\tget textureAsset() {\n\t\treturn this._textureAsset;\n\t}\n\tset spriteAsset(value) {\n\t\tconst assets = this._system.app.assets;\n\t\tlet _id = value;\n\t\tif (value instanceof Asset) {\n\t\t\t_id = value.id;\n\t\t}\n\t\tif (this._spriteAsset !== _id) {\n\t\t\tif (this._spriteAsset) {\n\t\t\t\tassets.off(`add:${this._spriteAsset}`, this._onSpriteAssetAdded, this);\n\t\t\t\tconst _prev = assets.get(this._spriteAsset);\n\t\t\t\tif (_prev) {\n\t\t\t\t\tthis._unbindSpriteAsset(_prev);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._spriteAsset = _id;\n\t\t\tif (this._spriteAsset) {\n\t\t\t\tconst asset = assets.get(this._spriteAsset);\n\t\t\t\tif (!asset) {\n\t\t\t\t\tthis.sprite = null;\n\t\t\t\t\tassets.on(`add:${this._spriteAsset}`, this._onSpriteAssetAdded, this);\n\t\t\t\t} else {\n\t\t\t\t\tthis._bindSpriteAsset(asset);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.sprite = null;\n\t\t\t}\n\t\t}\n\t\tif (this._element) {\n\t\t\tthis._element.fire('set:spriteAsset', _id);\n\t\t}\n\t}\n\tget spriteAsset() {\n\t\treturn this._spriteAsset;\n\t}\n\tset sprite(value) {\n\t\tif (this._sprite === value) return;\n\t\tif (this._sprite) {\n\t\t\tthis._unbindSprite(this._sprite);\n\t\t}\n\t\tif (this._spriteAsset) {\n\t\t\tconst spriteAsset = this._system.app.assets.get(this._spriteAsset);\n\t\t\tif (spriteAsset && spriteAsset.resource !== value) {\n\t\t\t\tthis.spriteAsset = null;\n\t\t\t}\n\t\t}\n\t\tthis._sprite = value;\n\t\tif (this._sprite) {\n\t\t\tthis._bindSprite(this._sprite);\n\t\t\tif (this._textureAsset) {\n\t\t\t\tthis.textureAsset = null;\n\t\t\t}\n\t\t}\n\t\tif (this._sprite && this._sprite.atlas && this._sprite.atlas.texture) {\n\t\t\tthis._renderable.setParameter('texture_emissiveMap', this._sprite.atlas.texture);\n\t\t\tthis._renderable.setParameter('texture_opacityMap', this._sprite.atlas.texture);\n\t\t} else {\n\t\t\tthis._renderable.deleteParameter('texture_emissiveMap');\n\t\t\tthis._renderable.deleteParameter('texture_opacityMap');\n\t\t}\n\t\tif (this._sprite) {\n\t\t\tthis._spriteFrame = math.clamp(this._spriteFrame, 0, this._sprite.frameKeys.length - 1);\n\t\t}\n\t\tthis._updateSprite();\n\t}\n\tget sprite() {\n\t\treturn this._sprite;\n\t}\n\tset spriteFrame(value) {\n\t\tconst oldValue = this._spriteFrame;\n\t\tif (this._sprite) {\n\t\t\tthis._spriteFrame = math.clamp(value, 0, this._sprite.frameKeys.length - 1);\n\t\t} else {\n\t\t\tthis._spriteFrame = value;\n\t\t}\n\t\tif (this._spriteFrame !== oldValue) {\n\t\t\tthis._updateSprite();\n\t\t}\n\t\tif (this._element) {\n\t\t\tthis._element.fire('set:spriteFrame', value);\n\t\t}\n\t}\n\tget spriteFrame() {\n\t\treturn this._spriteFrame;\n\t}\n\tset mesh(value) {\n\t\tthis._renderable.setMesh(value);\n\t\tif (this._defaultMesh === value) {\n\t\t\tthis._renderable.setAabbFunc(null);\n\t\t} else {\n\t\t\tthis._renderable.setAabbFunc(this._updateAabbFunc);\n\t\t}\n\t}\n\tget mesh() {\n\t\treturn this._renderable.mesh;\n\t}\n\tset mask(value) {\n\t\tif (this._mask !== value) {\n\t\t\tthis._mask = value;\n\t\t\tthis._toggleMask();\n\t\t}\n\t}\n\tget mask() {\n\t\treturn this._mask;\n\t}\n\tset pixelsPerUnit(value) {\n\t\tif (this._pixelsPerUnit === value) return;\n\t\tthis._pixelsPerUnit = value;\n\t\tif (this._sprite && (this._sprite.renderMode === SPRITE_RENDERMODE_SLICED || this._sprite.renderMode === SPRITE_RENDERMODE_TILED)) {\n\t\t\tthis._updateSprite();\n\t\t}\n\t}\n\tget pixelsPerUnit() {\n\t\treturn this._pixelsPerUnit;\n\t}\n\tget aabb() {\n\t\tif (this._renderable.meshInstance) {\n\t\t\treturn this._renderable.meshInstance.aabb;\n\t\t}\n\t\treturn null;\n\t}\n}\n\nclass LocalizedAsset extends EventHandler {\n\tconstructor(app) {\n\t\tsuper();\n\t\tthis._app = app;\n\t\tapp.i18n.on('set:locale', this._onSetLocale, this);\n\t\tthis._autoLoad = false;\n\t\tthis._disableLocalization = false;\n\t\tthis._defaultAsset = null;\n\t\tthis._localizedAsset = null;\n\t}\n\tset defaultAsset(value) {\n\t\tconst id = value instanceof Asset ? value.id : value;\n\t\tif (this._defaultAsset === id) return;\n\t\tif (this._defaultAsset) {\n\t\t\tthis._unbindDefaultAsset();\n\t\t}\n\t\tthis._defaultAsset = id;\n\t\tif (this._defaultAsset) {\n\t\t\tthis._bindDefaultAsset();\n\t\t}\n\t\tthis._onSetLocale(this._app.i18n.locale);\n\t}\n\tget defaultAsset() {\n\t\treturn this._defaultAsset;\n\t}\n\tset localizedAsset(value) {\n\t\tconst id = value instanceof Asset ? value.id : value;\n\t\tif (this._localizedAsset === id) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._localizedAsset) {\n\t\t\tthis._app.assets.off(`add:${this._localizedAsset}`, this._onLocalizedAssetAdd, this);\n\t\t\tthis._unbindLocalizedAsset();\n\t\t}\n\t\tthis._localizedAsset = id;\n\t\tif (this._localizedAsset) {\n\t\t\tconst asset = this._app.assets.get(this._localizedAsset);\n\t\t\tif (!asset) {\n\t\t\t\tthis._app.assets.once(`add:${this._localizedAsset}`, this._onLocalizedAssetAdd, this);\n\t\t\t} else {\n\t\t\t\tthis._bindLocalizedAsset();\n\t\t\t}\n\t\t}\n\t}\n\tget localizedAsset() {\n\t\treturn this._localizedAsset;\n\t}\n\tset autoLoad(value) {\n\t\tif (this._autoLoad === value) return;\n\t\tthis._autoLoad = value;\n\t\tif (this._autoLoad && this._localizedAsset) {\n\t\t\tthis._unbindLocalizedAsset();\n\t\t\tthis._bindLocalizedAsset();\n\t\t}\n\t}\n\tget autoLoad() {\n\t\treturn this._autoLoad;\n\t}\n\tset disableLocalization(value) {\n\t\tif (this._disableLocalization === value) return;\n\t\tthis._disableLocalization = value;\n\t\tthis._onSetLocale(this._app.i18n.locale);\n\t}\n\tget disableLocalization() {\n\t\treturn this._disableLocalization;\n\t}\n\t_bindDefaultAsset() {\n\t\tconst asset = this._app.assets.get(this._defaultAsset);\n\t\tif (!asset) {\n\t\t\tthis._app.assets.once(`add:${this._defaultAsset}`, this._onDefaultAssetAdd, this);\n\t\t} else {\n\t\t\tthis._onDefaultAssetAdd(asset);\n\t\t}\n\t}\n\t_unbindDefaultAsset() {\n\t\tif (!this._defaultAsset) return;\n\t\tthis._app.assets.off(`add:${this._defaultAsset}`, this._onDefaultAssetAdd, this);\n\t\tconst asset = this._app.assets.get(this._defaultAsset);\n\t\tif (!asset) return;\n\t\tasset.off('add:localized', this._onLocaleAdd, this);\n\t\tasset.off('remove:localized', this._onLocaleRemove, this);\n\t\tasset.off('remove', this._onDefaultAssetRemove, this);\n\t}\n\t_onDefaultAssetAdd(asset) {\n\t\tif (this._defaultAsset !== asset.id) return;\n\t\tasset.on('add:localized', this._onLocaleAdd, this);\n\t\tasset.on('remove:localized', this._onLocaleRemove, this);\n\t\tasset.once('remove', this._onDefaultAssetRemove, this);\n\t}\n\t_onDefaultAssetRemove(asset) {\n\t\tif (this._defaultAsset !== asset.id) return;\n\t\tasset.off('add:localized', this._onLocaleAdd, this);\n\t\tasset.off('remove:localized', this._onLocaleAdd, this);\n\t\tthis._app.assets.once(`add:${this._defaultAsset}`, this._onDefaultAssetAdd, this);\n\t}\n\t_bindLocalizedAsset() {\n\t\tif (!this._autoLoad) return;\n\t\tconst asset = this._app.assets.get(this._localizedAsset);\n\t\tif (!asset) return;\n\t\tasset.on('load', this._onLocalizedAssetLoad, this);\n\t\tasset.on('change', this._onLocalizedAssetChange, this);\n\t\tasset.on('remove', this._onLocalizedAssetRemove, this);\n\t\tif (asset.resource) {\n\t\t\tthis._onLocalizedAssetLoad(asset);\n\t\t} else {\n\t\t\tthis._app.assets.load(asset);\n\t\t}\n\t}\n\t_unbindLocalizedAsset() {\n\t\tconst asset = this._app.assets.get(this._localizedAsset);\n\t\tif (!asset) return;\n\t\tasset.off('load', this._onLocalizedAssetLoad, this);\n\t\tasset.off('change', this._onLocalizedAssetChange, this);\n\t\tasset.off('remove', this._onLocalizedAssetRemove, this);\n\t}\n\t_onLocalizedAssetAdd(asset) {\n\t\tif (this._localizedAsset !== asset.id) return;\n\t\tthis._bindLocalizedAsset();\n\t}\n\t_onLocalizedAssetLoad(asset) {\n\t\tthis.fire('load', asset);\n\t}\n\t_onLocalizedAssetChange(asset, name, newValue, oldValue) {\n\t\tthis.fire('change', asset, name, newValue, oldValue);\n\t}\n\t_onLocalizedAssetRemove(asset) {\n\t\tif (this._localizedAsset === asset.id) {\n\t\t\tthis.localizedAsset = this._defaultAsset;\n\t\t}\n\t\tthis.fire('remove', asset);\n\t}\n\t_onLocaleAdd(locale, assetId) {\n\t\tif (this._app.i18n.locale !== locale) return;\n\t\tthis._onSetLocale(locale);\n\t}\n\t_onLocaleRemove(locale, assetId) {\n\t\tif (this._app.i18n.locale !== locale) return;\n\t\tthis._onSetLocale(locale);\n\t}\n\t_onSetLocale(locale) {\n\t\tif (!this._defaultAsset) {\n\t\t\tthis.localizedAsset = null;\n\t\t\treturn;\n\t\t}\n\t\tconst asset = this._app.assets.get(this._defaultAsset);\n\t\tif (!asset || this._disableLocalization) {\n\t\t\tthis.localizedAsset = this._defaultAsset;\n\t\t\treturn;\n\t\t}\n\t\tconst localizedAssetId = asset.getLocalizedAssetId(locale);\n\t\tif (!localizedAssetId) {\n\t\t\tthis.localizedAsset = this._defaultAsset;\n\t\t\treturn;\n\t\t}\n\t\tthis.localizedAsset = localizedAssetId;\n\t}\n\tdestroy() {\n\t\tthis.defaultAsset = null;\n\t\tthis._app.i18n.off('set:locale', this._onSetLocale, this);\n\t\tthis.off();\n\t}\n}\n\nconst FONT_MSDF = 'msdf';\nconst FONT_BITMAP = 'bitmap';\n\nconst EOF_TOKEN = 0;\nconst ERROR_TOKEN = 1;\nconst TEXT_TOKEN = 2;\nconst OPEN_BRACKET_TOKEN = 3;\nconst CLOSE_BRACKET_TOKEN = 4;\nconst EQUALS_TOKEN = 5;\nconst STRING_TOKEN = 6;\nconst IDENTIFIER_TOKEN = 7;\nconst WHITESPACE_TOKEN = 8;\nconst WHITESPACE_CHARS = ' \\t\\n\\r\\v\\f';\nconst IDENTIFIER_REGEX = /[\\w|/]/;\nclass Scanner {\n\tconstructor(symbols) {\n\t\tthis._symbols = symbols;\n\t\tthis._index = 0;\n\t\tthis._last = 0;\n\t\tthis._cur = this._symbols.length > 0 ? this._symbols[0] : null;\n\t\tthis._buf = [];\n\t\tthis._mode = 'text';\n\t\tthis._error = null;\n\t}\n\tread() {\n\t\tlet token = this._read();\n\t\twhile (token === WHITESPACE_TOKEN) {\n\t\t\ttoken = this._read();\n\t\t}\n\t\tif (token !== EOF_TOKEN && token !== ERROR_TOKEN) {\n\t\t\tthis._last = this._index;\n\t\t}\n\t\treturn token;\n\t}\n\tbuf() {\n\t\treturn this._buf;\n\t}\n\tlast() {\n\t\treturn this._last;\n\t}\n\terror() {\n\t\treturn this._error;\n\t}\n\tdebugPrint() {\n\t\tconst tokenStrings = ['EOF', 'ERROR', 'TEXT', 'OPEN_BRACKET', 'CLOSE_BRACKET', 'EQUALS', 'STRING', 'IDENTIFIER', 'WHITESPACE'];\n\t\tlet token = this.read();\n\t\tlet result = '';\n\t\twhile (true) {\n\t\t\tresult += `${(result.length > 0 ? '\\n' : '') + tokenStrings[token]} '${this.buf().join('')}'`;\n\t\t\tif (token === EOF_TOKEN || token === ERROR_TOKEN) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\ttoken = this.read();\n\t\t}\n\t\treturn result;\n\t}\n\t_read() {\n\t\tthis._buf = [];\n\t\tif (this._eof()) {\n\t\t\treturn EOF_TOKEN;\n\t\t}\n\t\treturn this._mode === 'text' ? this._text() : this._tag();\n\t}\n\t_text() {\n\t\twhile (true) {\n\t\t\tswitch (this._cur) {\n\t\t\t\tcase null:\n\t\t\t\t\treturn this._buf.length > 0 ? TEXT_TOKEN : EOF_TOKEN;\n\t\t\t\tcase '[':\n\t\t\t\t\tthis._mode = 'tag';\n\t\t\t\t\treturn this._buf.length > 0 ? TEXT_TOKEN : this._tag();\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tthis._next();\n\t\t\t\t\tswitch (this._cur) {\n\t\t\t\t\t\tcase '[':\n\t\t\t\t\t\t\tthis._store();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tthis._output('\\\\');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthis._store();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t_tag() {\n\t\tswitch (this._cur) {\n\t\t\tcase null:\n\t\t\t\tthis._error = 'unexpected end of input reading tag';\n\t\t\t\treturn ERROR_TOKEN;\n\t\t\tcase '[':\n\t\t\t\tthis._store();\n\t\t\t\treturn OPEN_BRACKET_TOKEN;\n\t\t\tcase ']':\n\t\t\t\tthis._store();\n\t\t\t\tthis._mode = 'text';\n\t\t\t\treturn CLOSE_BRACKET_TOKEN;\n\t\t\tcase '=':\n\t\t\t\tthis._store();\n\t\t\t\treturn EQUALS_TOKEN;\n\t\t\tcase ' ':\n\t\t\tcase '\\t':\n\t\t\tcase '\\n':\n\t\t\tcase '\\r':\n\t\t\tcase '\\v':\n\t\t\tcase '\\f':\n\t\t\t\treturn this._whitespace();\n\t\t\tcase '\"':\n\t\t\t\treturn this._string();\n\t\t\tdefault:\n\t\t\t\tif (!this._isIdentifierSymbol(this._cur)) {\n\t\t\t\t\tthis._error = 'unrecognized character';\n\t\t\t\t\treturn ERROR_TOKEN;\n\t\t\t\t}\n\t\t\t\treturn this._identifier();\n\t\t}\n\t}\n\t_whitespace() {\n\t\tthis._store();\n\t\twhile (WHITESPACE_CHARS.indexOf(this._cur) !== -1) {\n\t\t\tthis._store();\n\t\t}\n\t\treturn WHITESPACE_TOKEN;\n\t}\n\t_string() {\n\t\tthis._next();\n\t\twhile (true) {\n\t\t\tswitch (this._cur) {\n\t\t\t\tcase null:\n\t\t\t\t\tthis._error = 'unexpected end of input reading string';\n\t\t\t\t\treturn ERROR_TOKEN;\n\t\t\t\tcase '\"':\n\t\t\t\t\tthis._next();\n\t\t\t\t\treturn STRING_TOKEN;\n\t\t\t\tdefault:\n\t\t\t\t\tthis._store();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t_identifier() {\n\t\tthis._store();\n\t\twhile (this._cur !== null && this._isIdentifierSymbol(this._cur)) {\n\t\t\tthis._store();\n\t\t}\n\t\treturn IDENTIFIER_TOKEN;\n\t}\n\t_isIdentifierSymbol(s) {\n\t\treturn s.length === 1 && s.match(IDENTIFIER_REGEX) !== null;\n\t}\n\t_eof() {\n\t\treturn this._cur === null;\n\t}\n\t_next() {\n\t\tif (!this._eof()) {\n\t\t\tthis._index++;\n\t\t\tthis._cur = this._index < this._symbols.length ? this._symbols[this._index] : null;\n\t\t}\n\t\treturn this._cur;\n\t}\n\t_store() {\n\t\tthis._buf.push(this._cur);\n\t\treturn this._next();\n\t}\n\t_output(c) {\n\t\tthis._buf.push(c);\n\t}\n}\nclass Parser {\n\tconstructor(symbols) {\n\t\tthis._scanner = new Scanner(symbols);\n\t\tthis._error = null;\n\t}\n\tparse(symbols, tags) {\n\t\twhile (true) {\n\t\t\tconst token = this._scanner.read();\n\t\t\tswitch (token) {\n\t\t\t\tcase EOF_TOKEN:\n\t\t\t\t\treturn true;\n\t\t\t\tcase ERROR_TOKEN:\n\t\t\t\t\treturn false;\n\t\t\t\tcase TEXT_TOKEN:\n\t\t\t\t\tArray.prototype.push.apply(symbols, this._scanner.buf());\n\t\t\t\t\tbreak;\n\t\t\t\tcase OPEN_BRACKET_TOKEN:\n\t\t\t\t\tif (!this._parseTag(symbols, tags)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n\terror() {\n\t\treturn `Error evaluating markup at #${this._scanner.last().toString()} (${this._scanner.error() || this._error})`;\n\t}\n\t_parseTag(symbols, tags) {\n\t\tlet token = this._scanner.read();\n\t\tif (token !== IDENTIFIER_TOKEN) {\n\t\t\tthis._error = 'expected identifier';\n\t\t\treturn false;\n\t\t}\n\t\tconst name = this._scanner.buf().join('');\n\t\tif (name[0] === '/') {\n\t\t\tfor (let index = tags.length - 1; index >= 0; --index) {\n\t\t\t\tif (name === `/${tags[index].name}` && tags[index].end === null) {\n\t\t\t\t\ttags[index].end = symbols.length;\n\t\t\t\t\ttoken = this._scanner.read();\n\t\t\t\t\tif (token !== CLOSE_BRACKET_TOKEN) {\n\t\t\t\t\t\tthis._error = 'expected close bracket';\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._error = 'failed to find matching tag';\n\t\t\treturn false;\n\t\t}\n\t\tconst tag = {\n\t\t\tname: name,\n\t\t\tvalue: null,\n\t\t\tattributes: {},\n\t\t\tstart: symbols.length,\n\t\t\tend: null\n\t\t};\n\t\ttoken = this._scanner.read();\n\t\tif (token === EQUALS_TOKEN) {\n\t\t\ttoken = this._scanner.read();\n\t\t\tif (token !== STRING_TOKEN) {\n\t\t\t\tthis._error = 'expected string';\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\ttag.value = this._scanner.buf().join('');\n\t\t\ttoken = this._scanner.read();\n\t\t}\n\t\twhile (true) {\n\t\t\tswitch (token) {\n\t\t\t\tcase CLOSE_BRACKET_TOKEN:\n\t\t\t\t\ttags.push(tag);\n\t\t\t\t\treturn true;\n\t\t\t\tcase IDENTIFIER_TOKEN:\n\t\t\t\t\t{\n\t\t\t\t\t\tconst identifier = this._scanner.buf().join('');\n\t\t\t\t\t\ttoken = this._scanner.read();\n\t\t\t\t\t\tif (token !== EQUALS_TOKEN) {\n\t\t\t\t\t\t\tthis._error = 'expected equals';\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttoken = this._scanner.read();\n\t\t\t\t\t\tif (token !== STRING_TOKEN) {\n\t\t\t\t\t\t\tthis._error = 'expected string';\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst value = this._scanner.buf().join('');\n\t\t\t\t\t\ttag.attributes[identifier] = value;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tthis._error = 'expected close bracket or identifier';\n\t\t\t\t\treturn false;\n\t\t\t}\n\t\t\ttoken = this._scanner.read();\n\t\t}\n\t}\n}\nfunction merge(target, source) {\n\tfor (const key in source) {\n\t\tif (!source.hasOwnProperty(key)) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst value = source[key];\n\t\tif (value instanceof Object) {\n\t\t\tif (!target.hasOwnProperty(key)) {\n\t\t\t\ttarget[key] = {};\n\t\t\t}\n\t\t\tmerge(target[key], source[key]);\n\t\t} else {\n\t\t\ttarget[key] = value;\n\t\t}\n\t}\n}\nfunction combineTags(tags) {\n\tif (tags.length === 0) {\n\t\treturn null;\n\t}\n\tconst result = {};\n\tfor (let index = 0; index < tags.length; ++index) {\n\t\tconst tag = tags[index];\n\t\tconst tmp = {};\n\t\ttmp[tag.name] = {\n\t\t\tvalue: tag.value,\n\t\t\tattributes: tag.attributes\n\t\t};\n\t\tmerge(result, tmp);\n\t}\n\treturn result;\n}\nfunction resolveMarkupTags(tags, numSymbols) {\n\tif (tags.length === 0) {\n\t\treturn null;\n\t}\n\tconst edges = {};\n\tfor (let index = 0; index < tags.length; ++index) {\n\t\tconst tag = tags[index];\n\t\tif (!edges.hasOwnProperty(tag.start)) {\n\t\t\tedges[tag.start] = {\n\t\t\t\topen: [tag],\n\t\t\t\tclose: null\n\t\t\t};\n\t\t} else {\n\t\t\tif (edges[tag.start].open === null) {\n\t\t\t\tedges[tag.start].open = [tag];\n\t\t\t} else {\n\t\t\t\tedges[tag.start].open.push(tag);\n\t\t\t}\n\t\t}\n\t\tif (!edges.hasOwnProperty(tag.end)) {\n\t\t\tedges[tag.end] = {\n\t\t\t\topen: null,\n\t\t\t\tclose: [tag]\n\t\t\t};\n\t\t} else {\n\t\t\tif (edges[tag.end].close === null) {\n\t\t\t\tedges[tag.end].close = [tag];\n\t\t\t} else {\n\t\t\t\tedges[tag.end].close.push(tag);\n\t\t\t}\n\t\t}\n\t}\n\tlet tagStack = [];\n\tfunction removeTags(tags) {\n\t\ttagStack = tagStack.filter(tag => {\n\t\t\treturn tags.find(t => {\n\t\t\t\treturn t === tag;\n\t\t\t}) === undefined;\n\t\t});\n\t}\n\tfunction addTags(tags) {\n\t\tfor (let index = 0; index < tags.length; ++index) {\n\t\t\ttagStack.push(tags[index]);\n\t\t}\n\t}\n\tconst edgeKeys = Object.keys(edges).sort((a, b) => {\n\t\treturn a - b;\n\t});\n\tconst resolvedTags = [];\n\tfor (let index = 0; index < edgeKeys.length; ++index) {\n\t\tconst edge = edges[edgeKeys[index]];\n\t\tif (edge.close !== null) {\n\t\t\tremoveTags(edge.close);\n\t\t}\n\t\tif (edge.open !== null) {\n\t\t\taddTags(edge.open);\n\t\t}\n\t\tresolvedTags.push({\n\t\t\tstart: edgeKeys[index],\n\t\t\ttags: combineTags(tagStack)\n\t\t});\n\t}\n\tconst result = [];\n\tlet prevTag = null;\n\tfor (let index = 0; index < resolvedTags.length; ++index) {\n\t\tconst resolvedTag = resolvedTags[index];\n\t\twhile (result.length < resolvedTag.start) {\n\t\t\tresult.push(prevTag ? prevTag.tags : null);\n\t\t}\n\t\tprevTag = resolvedTag;\n\t}\n\twhile (result.length < numSymbols) {\n\t\tresult.push(null);\n\t}\n\treturn result;\n}\nfunction evaluateMarkup(symbols) {\n\tconst parser = new Parser(symbols);\n\tconst stripped_symbols = [];\n\tconst tags = [];\n\tif (!parser.parse(stripped_symbols, tags)) {\n\t\tconsole.warn(parser.error());\n\t\treturn {\n\t\t\tsymbols: symbols,\n\t\t\ttags: null\n\t\t};\n\t}\n\tconst invalidTag = tags.find(t => {\n\t\treturn t.end === null;\n\t});\n\tif (invalidTag) {\n\t\tconsole.warn(`Markup error: found unclosed tag='${invalidTag.name}'`);\n\t\treturn {\n\t\t\tsymbols: symbols,\n\t\t\ttags: null\n\t\t};\n\t}\n\tconst resolved_tags = resolveMarkupTags(tags, stripped_symbols.length);\n\treturn {\n\t\tsymbols: stripped_symbols,\n\t\ttags: resolved_tags\n\t};\n}\nclass Markup {\n\tstatic evaluate(symbols) {\n\t\treturn evaluateMarkup(symbols);\n\t}\n}\n\nclass MeshInfo {\n\tconstructor() {\n\t\tthis.count = 0;\n\t\tthis.quad = 0;\n\t\tthis.lines = {};\n\t\tthis.positions = [];\n\t\tthis.normals = [];\n\t\tthis.uvs = [];\n\t\tthis.colors = [];\n\t\tthis.indices = [];\n\t\tthis.outlines = [];\n\t\tthis.shadows = [];\n\t\tthis.meshInstance = null;\n\t}\n}\nfunction createTextMesh(device, meshInfo) {\n\tconst mesh = new Mesh(device);\n\tmesh.setPositions(meshInfo.positions);\n\tmesh.setNormals(meshInfo.normals);\n\tmesh.setColors32(meshInfo.colors);\n\tmesh.setUvs(0, meshInfo.uvs);\n\tmesh.setIndices(meshInfo.indices);\n\tmesh.setVertexStream(SEMANTIC_ATTR8, meshInfo.outlines, 3, undefined, TYPE_FLOAT32, false);\n\tmesh.setVertexStream(SEMANTIC_ATTR9, meshInfo.shadows, 3, undefined, TYPE_FLOAT32, false);\n\tmesh.update();\n\treturn mesh;\n}\nconst LINE_BREAK_CHAR = /^[\\r\\n]$/;\nconst WHITESPACE_CHAR = /^[ \\t]$/;\nconst WORD_BOUNDARY_CHAR = /^[ \\t\\-]|\\u200b$/;\nconst ALPHANUMERIC_CHAR = /^[a-z0-9]$/i;\nconst CJK_CHAR = /^[\\u1100-\\u11ff]|[\\u3000-\\u9fff\\ua960-\\ua97f]|[\\uac00-\\ud7ff]$/;\nconst NO_LINE_BREAK_CJK_CHAR = /^[〕〉》」』】〙〗〟ヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻]$/;\nconst CONTROL_CHARS = ['\\u200B', '\\u061C', '\\u200E', '\\u200F', '\\u202A', '\\u202B', '\\u202C', '\\u202D', '\\u202E', '\\u2066', '\\u2067', '\\u2068', '\\u2069'];\nconst CONTROL_GLYPH_DATA = {\n\twidth: 0,\n\theight: 0,\n\txadvance: 0,\n\txoffset: 0,\n\tyoffset: 0\n};\nconst colorTmp = new Color();\nconst vec2Tmp = new Vec2();\nclass TextElement {\n\tconstructor(element) {\n\t\tthis._element = element;\n\t\tthis._system = element.system;\n\t\tthis._entity = element.entity;\n\t\tthis._text = '';\n\t\tthis._symbols = [];\n\t\tthis._colorPalette = [];\n\t\tthis._outlinePalette = [];\n\t\tthis._shadowPalette = [];\n\t\tthis._symbolColors = null;\n\t\tthis._symbolOutlineParams = null;\n\t\tthis._symbolShadowParams = null;\n\t\tthis._i18nKey = null;\n\t\tthis._fontAsset = new LocalizedAsset(this._system.app);\n\t\tthis._fontAsset.disableLocalization = true;\n\t\tthis._fontAsset.on('load', this._onFontLoad, this);\n\t\tthis._fontAsset.on('change', this._onFontChange, this);\n\t\tthis._fontAsset.on('remove', this._onFontRemove, this);\n\t\tthis._font = null;\n\t\tthis._color = new Color(1, 1, 1, 1);\n\t\tthis._colorUniform = new Float32Array(3);\n\t\tthis._spacing = 1;\n\t\tthis._fontSize = 32;\n\t\tthis._fontMinY = 0;\n\t\tthis._fontMaxY = 0;\n\t\tthis._originalFontSize = 32;\n\t\tthis._maxFontSize = 32;\n\t\tthis._minFontSize = 8;\n\t\tthis._autoFitWidth = false;\n\t\tthis._autoFitHeight = false;\n\t\tthis._maxLines = -1;\n\t\tthis._lineHeight = 32;\n\t\tthis._scaledLineHeight = 32;\n\t\tthis._wrapLines = false;\n\t\tthis._drawOrder = 0;\n\t\tthis._alignment = new Vec2(0.5, 0.5);\n\t\tthis._autoWidth = true;\n\t\tthis._autoHeight = true;\n\t\tthis.width = 0;\n\t\tthis.height = 0;\n\t\tthis._node = new GraphNode();\n\t\tthis._model = new Model();\n\t\tthis._model.graph = this._node;\n\t\tthis._entity.addChild(this._node);\n\t\tthis._meshInfo = [];\n\t\tthis._material = null;\n\t\tthis._aabbDirty = true;\n\t\tthis._aabb = new BoundingBox();\n\t\tthis._noResize = false;\n\t\tthis._currentMaterialType = null;\n\t\tthis._maskedMaterialSrc = null;\n\t\tthis._rtlReorder = false;\n\t\tthis._unicodeConverter = false;\n\t\tthis._rtl = false;\n\t\tthis._outlineColor = new Color(0, 0, 0, 1);\n\t\tthis._outlineColorUniform = new Float32Array(4);\n\t\tthis._outlineThicknessScale = 0.2;\n\t\tthis._outlineThickness = 0.0;\n\t\tthis._shadowColor = new Color(0, 0, 0, 1);\n\t\tthis._shadowColorUniform = new Float32Array(4);\n\t\tthis._shadowOffsetScale = 0.005;\n\t\tthis._shadowOffset = new Vec2(0, 0);\n\t\tthis._shadowOffsetUniform = new Float32Array(2);\n\t\tthis._enableMarkup = false;\n\t\tthis._onScreenChange(this._element.screen);\n\t\telement.on('resize', this._onParentResize, this);\n\t\telement.on('set:screen', this._onScreenChange, this);\n\t\telement.on('screen:set:screenspace', this._onScreenSpaceChange, this);\n\t\telement.on('set:draworder', this._onDrawOrderChange, this);\n\t\telement.on('set:pivot', this._onPivotChange, this);\n\t\tthis._system.app.i18n.on('set:locale', this._onLocaleSet, this);\n\t\tthis._system.app.i18n.on('data:add', this._onLocalizationData, this);\n\t\tthis._system.app.i18n.on('data:remove', this._onLocalizationData, this);\n\t\tthis._rangeStart = 0;\n\t\tthis._rangeEnd = 0;\n\t}\n\tdestroy() {\n\t\tthis._setMaterial(null);\n\t\tif (this._model) {\n\t\t\tthis._element.removeModelFromLayers(this._model);\n\t\t\tthis._model.destroy();\n\t\t\tthis._model = null;\n\t\t}\n\t\tthis._fontAsset.destroy();\n\t\tthis.font = null;\n\t\tthis._element.off('resize', this._onParentResize, this);\n\t\tthis._element.off('set:screen', this._onScreenChange, this);\n\t\tthis._element.off('screen:set:screenspace', this._onScreenSpaceChange, this);\n\t\tthis._element.off('set:draworder', this._onDrawOrderChange, this);\n\t\tthis._element.off('set:pivot', this._onPivotChange, this);\n\t\tthis._system.app.i18n.off('set:locale', this._onLocaleSet, this);\n\t\tthis._system.app.i18n.off('data:add', this._onLocalizationData, this);\n\t\tthis._system.app.i18n.off('data:remove', this._onLocalizationData, this);\n\t}\n\t_onParentResize(width, height) {\n\t\tif (this._noResize) return;\n\t\tif (this._font) this._updateText();\n\t}\n\t_onScreenChange(screen) {\n\t\tif (screen) {\n\t\t\tthis._updateMaterial(screen.screen.screenSpace);\n\t\t} else {\n\t\t\tthis._updateMaterial(false);\n\t\t}\n\t}\n\t_onScreenSpaceChange(value) {\n\t\tthis._updateMaterial(value);\n\t}\n\t_onDrawOrderChange(order) {\n\t\tthis._drawOrder = order;\n\t\tif (this._model) {\n\t\t\tfor (let i = 0, len = this._model.meshInstances.length; i < len; i++) {\n\t\t\t\tthis._model.meshInstances[i].drawOrder = order;\n\t\t\t}\n\t\t}\n\t}\n\t_onPivotChange(pivot) {\n\t\tif (this._font) {\n\t\t\tthis._updateText();\n\t\t}\n\t}\n\t_onLocaleSet(locale) {\n\t\tif (!this._i18nKey) return;\n\t\tif (this.fontAsset) {\n\t\t\tconst asset = this._system.app.assets.get(this.fontAsset);\n\t\t\tif (!asset || !asset.resource || asset.resource !== this._font) {\n\t\t\t\tthis.font = null;\n\t\t\t}\n\t\t}\n\t\tthis._resetLocalizedText();\n\t}\n\t_onLocalizationData(locale, messages) {\n\t\tif (this._i18nKey && messages[this._i18nKey]) {\n\t\t\tthis._resetLocalizedText();\n\t\t}\n\t}\n\t_resetLocalizedText() {\n\t\tthis._setText(this._system.app.i18n.getText(this._i18nKey));\n\t}\n\t_setText(text) {\n\t\tif (this.unicodeConverter) {\n\t\t\tconst unicodeConverterFunc = this._system.getUnicodeConverter();\n\t\t\tif (unicodeConverterFunc) {\n\t\t\t\ttext = unicodeConverterFunc(text);\n\t\t\t} else {\n\t\t\t\tconsole.warn('Element created with unicodeConverter option but no unicodeConverter function registered');\n\t\t\t}\n\t\t}\n\t\tif (this._text !== text) {\n\t\t\tif (this._font) {\n\t\t\t\tthis._updateText(text);\n\t\t\t}\n\t\t\tthis._text = text;\n\t\t}\n\t}\n\t_updateText(text) {\n\t\tlet tags;\n\t\tif (text === undefined) text = this._text;\n\t\tthis._symbols = string.getSymbols(text.normalize ? text.normalize('NFC') : text);\n\t\tif (this._symbols.length === 0) {\n\t\t\tthis._symbols = [' '];\n\t\t}\n\t\tif (this._enableMarkup) {\n\t\t\tconst results = Markup.evaluate(this._symbols);\n\t\t\tthis._symbols = results.symbols;\n\t\t\ttags = results.tags || [];\n\t\t}\n\t\tif (this._rtlReorder) {\n\t\t\tconst rtlReorderFunc = this._system.app.systems.element.getRtlReorder();\n\t\t\tif (rtlReorderFunc) {\n\t\t\t\tconst results = rtlReorderFunc(this._symbols);\n\t\t\t\tthis._rtl = results.rtl;\n\t\t\t\tthis._symbols = results.mapping.map(function (v) {\n\t\t\t\t\treturn this._symbols[v];\n\t\t\t\t}, this);\n\t\t\t\tif (tags) {\n\t\t\t\t\ttags = results.mapping.map(v => {\n\t\t\t\t\t\treturn tags[v];\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconsole.warn('Element created with rtlReorder option but no rtlReorder function registered');\n\t\t\t}\n\t\t} else {\n\t\t\tthis._rtl = false;\n\t\t}\n\t\tconst getColorThicknessHash = (color, thickness) => {\n\t\t\treturn `${color.toString(true).toLowerCase()}:${thickness.toFixed(2)}`;\n\t\t};\n\t\tconst getColorOffsetHash = (color, offset) => {\n\t\t\treturn `${color.toString(true).toLowerCase()}:${offset.x.toFixed(2)}:${offset.y.toFixed(2)}`;\n\t\t};\n\t\tif (tags) {\n\t\t\tconst paletteMap = {};\n\t\t\tconst outlinePaletteMap = {};\n\t\t\tconst shadowPaletteMap = {};\n\t\t\tthis._colorPalette = [Math.round(this._color.r * 255), Math.round(this._color.g * 255), Math.round(this._color.b * 255)];\n\t\t\tthis._outlinePalette = [Math.round(this._outlineColor.r * 255), Math.round(this._outlineColor.g * 255), Math.round(this._outlineColor.b * 255), Math.round(this._outlineColor.a * 255), Math.round(this._outlineThickness * 255)];\n\t\t\tthis._shadowPalette = [Math.round(this._shadowColor.r * 255), Math.round(this._shadowColor.g * 255), Math.round(this._shadowColor.b * 255), Math.round(this._shadowColor.a * 255), Math.round(this._shadowOffset.x * 127), Math.round(this._shadowOffset.y * 127)];\n\t\t\tthis._symbolColors = [];\n\t\t\tthis._symbolOutlineParams = [];\n\t\t\tthis._symbolShadowParams = [];\n\t\t\tpaletteMap[this._color.toString(false).toLowerCase()] = 0;\n\t\t\toutlinePaletteMap[getColorThicknessHash(this._outlineColor, this._outlineThickness)] = 0;\n\t\t\tshadowPaletteMap[getColorOffsetHash(this._shadowColor, this._shadowOffset)] = 0;\n\t\t\tfor (let i = 0, len = this._symbols.length; i < len; ++i) {\n\t\t\t\tconst tag = tags[i];\n\t\t\t\tlet color = 0;\n\t\t\t\tif (tag && tag.color && tag.color.value) {\n\t\t\t\t\tconst c = tag.color.value;\n\t\t\t\t\tif (c.length === 7 && c[0] === '#') {\n\t\t\t\t\t\tconst hex = c.substring(1).toLowerCase();\n\t\t\t\t\t\tif (paletteMap.hasOwnProperty(hex)) {\n\t\t\t\t\t\t\tcolor = paletteMap[hex];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (/^[0-9a-f]{6}$/.test(hex)) {\n\t\t\t\t\t\t\t\tcolor = this._colorPalette.length / 3;\n\t\t\t\t\t\t\t\tpaletteMap[hex] = color;\n\t\t\t\t\t\t\t\tthis._colorPalette.push(parseInt(hex.substring(0, 2), 16));\n\t\t\t\t\t\t\t\tthis._colorPalette.push(parseInt(hex.substring(2, 4), 16));\n\t\t\t\t\t\t\t\tthis._colorPalette.push(parseInt(hex.substring(4, 6), 16));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis._symbolColors.push(color);\n\t\t\t\tlet outline = 0;\n\t\t\t\tif (tag && tag.outline && (tag.outline.attributes.color || tag.outline.attributes.thickness)) {\n\t\t\t\t\tlet _color = tag.outline.attributes.color ? colorTmp.fromString(tag.outline.attributes.color) : this._outlineColor;\n\t\t\t\t\tlet thickness = Number(tag.outline.attributes.thickness);\n\t\t\t\t\tif (Number.isNaN(_color.r) || Number.isNaN(_color.g) || Number.isNaN(_color.b) || Number.isNaN(_color.a)) {\n\t\t\t\t\t\t_color = this._outlineColor;\n\t\t\t\t\t}\n\t\t\t\t\tif (Number.isNaN(thickness)) {\n\t\t\t\t\t\tthickness = this._outlineThickness;\n\t\t\t\t\t}\n\t\t\t\t\tconst outlineHash = getColorThicknessHash(_color, thickness);\n\t\t\t\t\tif (outlinePaletteMap.hasOwnProperty(outlineHash)) {\n\t\t\t\t\t\toutline = outlinePaletteMap[outlineHash];\n\t\t\t\t\t} else {\n\t\t\t\t\t\toutline = this._outlinePalette.length / 5;\n\t\t\t\t\t\toutlinePaletteMap[outlineHash] = outline;\n\t\t\t\t\t\tthis._outlinePalette.push(Math.round(_color.r * 255), Math.round(_color.g * 255), Math.round(_color.b * 255), Math.round(_color.a * 255), Math.round(thickness * 255));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis._symbolOutlineParams.push(outline);\n\t\t\t\tlet shadow = 0;\n\t\t\t\tif (tag && tag.shadow && (tag.shadow.attributes.color || tag.shadow.attributes.offset || tag.shadow.attributes.offsetX || tag.shadow.attributes.offsetY)) {\n\t\t\t\t\tlet _color2 = tag.shadow.attributes.color ? colorTmp.fromString(tag.shadow.attributes.color) : this._shadowColor;\n\t\t\t\t\tconst off = Number(tag.shadow.attributes.offset);\n\t\t\t\t\tconst offX = Number(tag.shadow.attributes.offsetX);\n\t\t\t\t\tconst offY = Number(tag.shadow.attributes.offsetY);\n\t\t\t\t\tif (Number.isNaN(_color2.r) || Number.isNaN(_color2.g) || Number.isNaN(_color2.b) || Number.isNaN(_color2.a)) {\n\t\t\t\t\t\t_color2 = this._shadowColor;\n\t\t\t\t\t}\n\t\t\t\t\tconst offset = vec2Tmp.set(!Number.isNaN(offX) ? offX : !Number.isNaN(off) ? off : this._shadowOffset.x, !Number.isNaN(offY) ? offY : !Number.isNaN(off) ? off : this._shadowOffset.y);\n\t\t\t\t\tconst shadowHash = getColorOffsetHash(_color2, offset);\n\t\t\t\t\tif (shadowPaletteMap.hasOwnProperty(shadowHash)) {\n\t\t\t\t\t\tshadow = shadowPaletteMap[shadowHash];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tshadow = this._shadowPalette.length / 6;\n\t\t\t\t\t\tshadowPaletteMap[shadowHash] = shadow;\n\t\t\t\t\t\tthis._shadowPalette.push(Math.round(_color2.r * 255), Math.round(_color2.g * 255), Math.round(_color2.b * 255), Math.round(_color2.a * 255), Math.round(offset.x * 127), Math.round(offset.y * 127));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis._symbolShadowParams.push(shadow);\n\t\t\t}\n\t\t} else {\n\t\t\tthis._colorPalette = [];\n\t\t\tthis._symbolColors = null;\n\t\t\tthis._symbolOutlineParams = null;\n\t\t\tthis._symbolShadowParams = null;\n\t\t}\n\t\tthis._updateMaterialEmissive();\n\t\tthis._updateMaterialOutline();\n\t\tthis._updateMaterialShadow();\n\t\tconst charactersPerTexture = this._calculateCharsPerTexture();\n\t\tlet removedModel = false;\n\t\tconst element = this._element;\n\t\tconst screenSpace = element._isScreenSpace();\n\t\tconst screenCulled = element._isScreenCulled();\n\t\tconst visibleFn = function visibleFn(camera) {\n\t\t\treturn element.isVisibleForCamera(camera);\n\t\t};\n\t\tfor (let i = 0, len = this._meshInfo.length; i < len; i++) {\n\t\t\tconst l = charactersPerTexture[i] || 0;\n\t\t\tconst meshInfo = this._meshInfo[i];\n\t\t\tif (meshInfo.count !== l) {\n\t\t\t\tif (!removedModel) {\n\t\t\t\t\telement.removeModelFromLayers(this._model);\n\t\t\t\t\tremovedModel = true;\n\t\t\t\t}\n\t\t\t\tmeshInfo.count = l;\n\t\t\t\tmeshInfo.positions.length = meshInfo.normals.length = l * 3 * 4;\n\t\t\t\tmeshInfo.indices.length = l * 3 * 2;\n\t\t\t\tmeshInfo.uvs.length = l * 2 * 4;\n\t\t\t\tmeshInfo.colors.length = l * 4 * 4;\n\t\t\t\tmeshInfo.outlines.length = l * 4 * 3;\n\t\t\t\tmeshInfo.shadows.length = l * 4 * 3;\n\t\t\t\tif (meshInfo.meshInstance) {\n\t\t\t\t\tthis._removeMeshInstance(meshInfo.meshInstance);\n\t\t\t\t}\n\t\t\t\tif (l === 0) {\n\t\t\t\t\tmeshInfo.meshInstance = null;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tfor (let v = 0; v < l; v++) {\n\t\t\t\t\tmeshInfo.indices[v * 3 * 2 + 0] = v * 4;\n\t\t\t\t\tmeshInfo.indices[v * 3 * 2 + 1] = v * 4 + 1;\n\t\t\t\t\tmeshInfo.indices[v * 3 * 2 + 2] = v * 4 + 3;\n\t\t\t\t\tmeshInfo.indices[v * 3 * 2 + 3] = v * 4 + 2;\n\t\t\t\t\tmeshInfo.indices[v * 3 * 2 + 4] = v * 4 + 3;\n\t\t\t\t\tmeshInfo.indices[v * 3 * 2 + 5] = v * 4 + 1;\n\t\t\t\t\tmeshInfo.normals[v * 4 * 3 + 0] = 0;\n\t\t\t\t\tmeshInfo.normals[v * 4 * 3 + 1] = 0;\n\t\t\t\t\tmeshInfo.normals[v * 4 * 3 + 2] = -1;\n\t\t\t\t\tmeshInfo.normals[v * 4 * 3 + 3] = 0;\n\t\t\t\t\tmeshInfo.normals[v * 4 * 3 + 4] = 0;\n\t\t\t\t\tmeshInfo.normals[v * 4 * 3 + 5] = -1;\n\t\t\t\t\tmeshInfo.normals[v * 4 * 3 + 6] = 0;\n\t\t\t\t\tmeshInfo.normals[v * 4 * 3 + 7] = 0;\n\t\t\t\t\tmeshInfo.normals[v * 4 * 3 + 8] = -1;\n\t\t\t\t\tmeshInfo.normals[v * 4 * 3 + 9] = 0;\n\t\t\t\t\tmeshInfo.normals[v * 4 * 3 + 10] = 0;\n\t\t\t\t\tmeshInfo.normals[v * 4 * 3 + 11] = -1;\n\t\t\t\t}\n\t\t\t\tconst mesh = createTextMesh(this._system.app.graphicsDevice, meshInfo);\n\t\t\t\tconst mi = new MeshInstance(mesh, this._material, this._node);\n\t\t\t\tmi.name = `Text Element: ${this._entity.name}`;\n\t\t\t\tmi.castShadow = false;\n\t\t\t\tmi.receiveShadow = false;\n\t\t\t\tmi.cull = !screenSpace;\n\t\t\t\tmi.screenSpace = screenSpace;\n\t\t\t\tmi.drawOrder = this._drawOrder;\n\t\t\t\tif (screenCulled) {\n\t\t\t\t\tmi.cull = true;\n\t\t\t\t\tmi.isVisibleFunc = visibleFn;\n\t\t\t\t}\n\t\t\t\tthis._setTextureParams(mi, this._font.textures[i]);\n\t\t\t\tmi.setParameter('material_emissive', this._colorUniform);\n\t\t\t\tmi.setParameter('material_opacity', this._color.a);\n\t\t\t\tmi.setParameter('font_sdfIntensity', this._font.intensity);\n\t\t\t\tmi.setParameter('font_pxrange', this._getPxRange(this._font));\n\t\t\t\tmi.setParameter('font_textureWidth', this._font.data.info.maps[i].width);\n\t\t\t\tmi.setParameter('outline_color', this._outlineColorUniform);\n\t\t\t\tmi.setParameter('outline_thickness', this._outlineThicknessScale * this._outlineThickness);\n\t\t\t\tmi.setParameter('shadow_color', this._shadowColorUniform);\n\t\t\t\tif (this._symbolShadowParams) {\n\t\t\t\t\tthis._shadowOffsetUniform[0] = 0;\n\t\t\t\t\tthis._shadowOffsetUniform[1] = 0;\n\t\t\t\t} else {\n\t\t\t\t\tconst ratio = -this._font.data.info.maps[i].width / this._font.data.info.maps[i].height;\n\t\t\t\t\tthis._shadowOffsetUniform[0] = this._shadowOffsetScale * this._shadowOffset.x;\n\t\t\t\t\tthis._shadowOffsetUniform[1] = ratio * this._shadowOffsetScale * this._shadowOffset.y;\n\t\t\t\t}\n\t\t\t\tmi.setParameter('shadow_offset', this._shadowOffsetUniform);\n\t\t\t\tmeshInfo.meshInstance = mi;\n\t\t\t\tthis._model.meshInstances.push(mi);\n\t\t\t}\n\t\t}\n\t\tif (this._element.maskedBy) {\n\t\t\tthis._element._setMaskedBy(this._element.maskedBy);\n\t\t}\n\t\tif (removedModel && this._element.enabled && this._entity.enabled) {\n\t\t\tthis._element.addModelToLayers(this._model);\n\t\t}\n\t\tthis._updateMeshes();\n\t\tthis._rangeStart = 0;\n\t\tthis._rangeEnd = this._symbols.length;\n\t\tthis._updateRenderRange();\n\t}\n\t_removeMeshInstance(meshInstance) {\n\t\tmeshInstance.destroy();\n\t\tconst idx = this._model.meshInstances.indexOf(meshInstance);\n\t\tif (idx !== -1) {\n\t\t\tthis._model.meshInstances.splice(idx, 1);\n\t\t}\n\t}\n\t_setMaterial(material) {\n\t\tthis._material = material;\n\t\tif (this._model) {\n\t\t\tfor (let i = 0, len = this._model.meshInstances.length; i < len; i++) {\n\t\t\t\tconst mi = this._model.meshInstances[i];\n\t\t\t\tmi.material = material;\n\t\t\t}\n\t\t}\n\t}\n\t_updateMaterial(screenSpace) {\n\t\tconst element = this._element;\n\t\tconst screenCulled = element._isScreenCulled();\n\t\tconst visibleFn = function visibleFn(camera) {\n\t\t\treturn element.isVisibleForCamera(camera);\n\t\t};\n\t\tconst msdf = this._font && this._font.type === FONT_MSDF;\n\t\tthis._material = this._system.getTextElementMaterial(screenSpace, msdf, this._enableMarkup);\n\t\tif (this._model) {\n\t\t\tfor (let i = 0, len = this._model.meshInstances.length; i < len; i++) {\n\t\t\t\tconst mi = this._model.meshInstances[i];\n\t\t\t\tmi.cull = !screenSpace;\n\t\t\t\tmi.material = this._material;\n\t\t\t\tmi.screenSpace = screenSpace;\n\t\t\t\tif (screenCulled) {\n\t\t\t\t\tmi.cull = true;\n\t\t\t\t\tmi.isVisibleFunc = visibleFn;\n\t\t\t\t} else {\n\t\t\t\t\tmi.isVisibleFunc = null;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t_updateMaterialEmissive() {\n\t\tif (this._symbolColors) {\n\t\t\tthis._colorUniform[0] = 1;\n\t\t\tthis._colorUniform[1] = 1;\n\t\t\tthis._colorUniform[2] = 1;\n\t\t} else {\n\t\t\tthis._colorUniform[0] = this._color.r;\n\t\t\tthis._colorUniform[1] = this._color.g;\n\t\t\tthis._colorUniform[2] = this._color.b;\n\t\t}\n\t}\n\t_updateMaterialOutline() {\n\t\tif (this._symbolOutlineParams) {\n\t\t\tthis._outlineColorUniform[0] = 0;\n\t\t\tthis._outlineColorUniform[1] = 0;\n\t\t\tthis._outlineColorUniform[2] = 0;\n\t\t\tthis._outlineColorUniform[3] = 1;\n\t\t} else {\n\t\t\tthis._outlineColorUniform[0] = this._outlineColor.r;\n\t\t\tthis._outlineColorUniform[1] = this._outlineColor.g;\n\t\t\tthis._outlineColorUniform[2] = this._outlineColor.b;\n\t\t\tthis._outlineColorUniform[3] = this._outlineColor.a;\n\t\t}\n\t}\n\t_updateMaterialShadow() {\n\t\tif (this._symbolOutlineParams) {\n\t\t\tthis._shadowColorUniform[0] = 0;\n\t\t\tthis._shadowColorUniform[1] = 0;\n\t\t\tthis._shadowColorUniform[2] = 0;\n\t\t\tthis._shadowColorUniform[3] = 0;\n\t\t} else {\n\t\t\tthis._shadowColorUniform[0] = this._shadowColor.r;\n\t\t\tthis._shadowColorUniform[1] = this._shadowColor.g;\n\t\t\tthis._shadowColorUniform[2] = this._shadowColor.b;\n\t\t\tthis._shadowColorUniform[3] = this._shadowColor.a;\n\t\t}\n\t}\n\t_isWordBoundary(char) {\n\t\treturn WORD_BOUNDARY_CHAR.test(char);\n\t}\n\t_isValidNextChar(nextchar) {\n\t\treturn nextchar !== null && !NO_LINE_BREAK_CJK_CHAR.test(nextchar);\n\t}\n\t_isNextCJKBoundary(char, nextchar) {\n\t\treturn CJK_CHAR.test(char) && (WORD_BOUNDARY_CHAR.test(nextchar) || ALPHANUMERIC_CHAR.test(nextchar));\n\t}\n\t_isNextCJKWholeWord(nextchar) {\n\t\treturn CJK_CHAR.test(nextchar);\n\t}\n\t_updateMeshes() {\n\t\tconst json = this._font.data;\n\t\tconst self = this;\n\t\tconst minFont = Math.min(this._minFontSize, this._maxFontSize);\n\t\tconst maxFont = this._maxFontSize;\n\t\tconst autoFit = this._shouldAutoFit();\n\t\tif (autoFit) {\n\t\t\tthis._fontSize = this._maxFontSize;\n\t\t}\n\t\tconst MAGIC = 32;\n\t\tconst l = this._symbols.length;\n\t\tlet _x = 0;\n\t\tlet _y = 0;\n\t\tlet _z = 0;\n\t\tlet _xMinusTrailingWhitespace = 0;\n\t\tlet lines = 1;\n\t\tlet wordStartX = 0;\n\t\tlet wordStartIndex = 0;\n\t\tlet lineStartIndex = 0;\n\t\tlet numWordsThisLine = 0;\n\t\tlet numCharsThisLine = 0;\n\t\tlet numBreaksThisLine = 0;\n\t\tconst splitHorizontalAnchors = Math.abs(this._element.anchor.x - this._element.anchor.z) >= 0.0001;\n\t\tlet maxLineWidth = this._element.calculatedWidth;\n\t\tif (this.autoWidth && !splitHorizontalAnchors || !this._wrapLines) {\n\t\t\tmaxLineWidth = Number.POSITIVE_INFINITY;\n\t\t}\n\t\tlet fontMinY = 0;\n\t\tlet fontMaxY = 0;\n\t\tlet char, data, quad, nextchar;\n\t\tfunction breakLine(symbols, lineBreakIndex, lineBreakX) {\n\t\t\tself._lineWidths.push(Math.abs(lineBreakX));\n\t\t\tconst sliceStart = lineStartIndex > lineBreakIndex ? lineBreakIndex + 1 : lineStartIndex;\n\t\t\tconst sliceEnd = lineStartIndex > lineBreakIndex ? lineStartIndex + 1 : lineBreakIndex;\n\t\t\tconst chars = symbols.slice(sliceStart, sliceEnd);\n\t\t\tif (numBreaksThisLine) {\n\t\t\t\tlet i = chars.length;\n\t\t\t\twhile (i-- && numBreaksThisLine > 0) {\n\t\t\t\t\tif (LINE_BREAK_CHAR.test(chars[i])) {\n\t\t\t\t\t\tchars.splice(i, 1);\n\t\t\t\t\t\tnumBreaksThisLine--;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tself._lineContents.push(chars.join(''));\n\t\t\t_x = 0;\n\t\t\t_y -= self._scaledLineHeight;\n\t\t\tlines++;\n\t\t\tnumWordsThisLine = 0;\n\t\t\tnumCharsThisLine = 0;\n\t\t\tnumBreaksThisLine = 0;\n\t\t\twordStartX = 0;\n\t\t\tlineStartIndex = lineBreakIndex;\n\t\t}\n\t\tlet retryUpdateMeshes = true;\n\t\twhile (retryUpdateMeshes) {\n\t\t\tretryUpdateMeshes = false;\n\t\t\tif (autoFit) {\n\t\t\t\tthis._scaledLineHeight = this._lineHeight * this._fontSize / (this._maxFontSize || 0.0001);\n\t\t\t} else {\n\t\t\t\tthis._scaledLineHeight = this._lineHeight;\n\t\t\t}\n\t\t\tthis.width = 0;\n\t\t\tthis.height = 0;\n\t\t\tthis._lineWidths = [];\n\t\t\tthis._lineContents = [];\n\t\t\t_x = 0;\n\t\t\t_y = 0;\n\t\t\t_z = 0;\n\t\t\t_xMinusTrailingWhitespace = 0;\n\t\t\tlines = 1;\n\t\t\twordStartX = 0;\n\t\t\twordStartIndex = 0;\n\t\t\tlineStartIndex = 0;\n\t\t\tnumWordsThisLine = 0;\n\t\t\tnumCharsThisLine = 0;\n\t\t\tnumBreaksThisLine = 0;\n\t\t\tconst scale = this._fontSize / MAGIC;\n\t\t\tfontMinY = this._fontMinY * scale;\n\t\t\tfontMaxY = this._fontMaxY * scale;\n\t\t\tfor (let i = 0; i < this._meshInfo.length; i++) {\n\t\t\t\tthis._meshInfo[i].quad = 0;\n\t\t\t\tthis._meshInfo[i].lines = {};\n\t\t\t}\n\t\t\tlet color_r = 255;\n\t\t\tlet color_g = 255;\n\t\t\tlet color_b = 255;\n\t\t\tlet outline_color_rg = 255 + 255 * 256;\n\t\t\tlet outline_color_ba = 255 + 255 * 256;\n\t\t\tlet outline_thickness = 0;\n\t\t\tlet shadow_color_rg = 255 + 255 * 256;\n\t\t\tlet shadow_color_ba = 255 + 255 * 256;\n\t\t\tlet shadow_offset_xy = 127 + 127 * 256;\n\t\t\tfor (let i = 0; i < l; i++) {\n\t\t\t\tchar = this._symbols[i];\n\t\t\t\tnextchar = i + 1 >= l ? null : this._symbols[i + 1];\n\t\t\t\tconst isLineBreak = LINE_BREAK_CHAR.test(char);\n\t\t\t\tif (isLineBreak) {\n\t\t\t\t\tnumBreaksThisLine++;\n\t\t\t\t\tif (!this._wrapLines || this._maxLines < 0 || lines < this._maxLines) {\n\t\t\t\t\t\tbreakLine(this._symbols, i, _xMinusTrailingWhitespace);\n\t\t\t\t\t\twordStartIndex = i + 1;\n\t\t\t\t\t\tlineStartIndex = i + 1;\n\t\t\t\t\t}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tlet x = 0;\n\t\t\t\tlet y = 0;\n\t\t\t\tlet advance = 0;\n\t\t\t\tlet quadsize = 1;\n\t\t\t\tlet dataScale, size;\n\t\t\t\tdata = json.chars[char];\n\t\t\t\tif (!data) {\n\t\t\t\t\tif (CONTROL_CHARS.indexOf(char) !== -1) {\n\t\t\t\t\t\tdata = CONTROL_GLYPH_DATA;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (json.chars[' ']) {\n\t\t\t\t\t\t\tdata = json.chars[' '];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfor (const key in json.chars) {\n\t\t\t\t\t\t\t\tdata = json.chars[key];\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (data) {\n\t\t\t\t\tlet kerning = 0;\n\t\t\t\t\tif (numCharsThisLine > 0) {\n\t\t\t\t\t\tconst kernTable = this._font.data.kerning;\n\t\t\t\t\t\tif (kernTable) {\n\t\t\t\t\t\t\tconst kernLeft = kernTable[string.getCodePoint(this._symbols[i - 1]) || 0];\n\t\t\t\t\t\t\tif (kernLeft) {\n\t\t\t\t\t\t\t\tkerning = kernLeft[string.getCodePoint(this._symbols[i]) || 0] || 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataScale = data.scale || 1;\n\t\t\t\t\tsize = (data.width + data.height) / 2;\n\t\t\t\t\tquadsize = scale * size / dataScale;\n\t\t\t\t\tadvance = (data.xadvance + kerning) * scale;\n\t\t\t\t\tx = (data.xoffset - kerning) * scale;\n\t\t\t\t\ty = data.yoffset * scale;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error(`Couldn't substitute missing character: '${char}'`);\n\t\t\t\t}\n\t\t\t\tconst isWhitespace = WHITESPACE_CHAR.test(char);\n\t\t\t\tconst meshInfoId = data && data.map || 0;\n\t\t\t\tconst ratio = -this._font.data.info.maps[meshInfoId].width / this._font.data.info.maps[meshInfoId].height;\n\t\t\t\tconst meshInfo = this._meshInfo[meshInfoId];\n\t\t\t\tconst candidateLineWidth = _x + this._spacing * advance;\n\t\t\t\tif (candidateLineWidth > maxLineWidth && numCharsThisLine > 0 && !isWhitespace) {\n\t\t\t\t\tif (this._maxLines < 0 || lines < this._maxLines) {\n\t\t\t\t\t\tif (numWordsThisLine === 0) {\n\t\t\t\t\t\t\twordStartIndex = i;\n\t\t\t\t\t\t\tbreakLine(this._symbols, i, _xMinusTrailingWhitespace);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst backtrack = Math.max(i - wordStartIndex, 0);\n\t\t\t\t\t\t\tif (this._meshInfo.length <= 1) {\n\t\t\t\t\t\t\t\tmeshInfo.lines[lines - 1] -= backtrack;\n\t\t\t\t\t\t\t\tmeshInfo.quad -= backtrack;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tconst backtrackStart = wordStartIndex;\n\t\t\t\t\t\t\t\tconst backtrackEnd = i;\n\t\t\t\t\t\t\t\tfor (let j = backtrackStart; j < backtrackEnd; j++) {\n\t\t\t\t\t\t\t\t\tconst backChar = this._symbols[j];\n\t\t\t\t\t\t\t\t\tconst backCharData = json.chars[backChar];\n\t\t\t\t\t\t\t\t\tconst backMeshInfo = this._meshInfo[backCharData && backCharData.map || 0];\n\t\t\t\t\t\t\t\t\tbackMeshInfo.lines[lines - 1] -= 1;\n\t\t\t\t\t\t\t\t\tbackMeshInfo.quad -= 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ti -= backtrack + 1;\n\t\t\t\t\t\t\tbreakLine(this._symbols, wordStartIndex, wordStartX);\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tquad = meshInfo.quad;\n\t\t\t\tmeshInfo.lines[lines - 1] = quad;\n\t\t\t\tlet left = _x - x;\n\t\t\t\tlet right = left + quadsize;\n\t\t\t\tconst bottom = _y - y;\n\t\t\t\tconst top = bottom + quadsize;\n\t\t\t\tif (this._rtl) {\n\t\t\t\t\tconst shift = quadsize - x - this._spacing * advance - x;\n\t\t\t\t\tleft -= shift;\n\t\t\t\t\tright -= shift;\n\t\t\t\t}\n\t\t\t\tmeshInfo.positions[quad * 4 * 3 + 0] = left;\n\t\t\t\tmeshInfo.positions[quad * 4 * 3 + 1] = bottom;\n\t\t\t\tmeshInfo.positions[quad * 4 * 3 + 2] = _z;\n\t\t\t\tmeshInfo.positions[quad * 4 * 3 + 3] = right;\n\t\t\t\tmeshInfo.positions[quad * 4 * 3 + 4] = bottom;\n\t\t\t\tmeshInfo.positions[quad * 4 * 3 + 5] = _z;\n\t\t\t\tmeshInfo.positions[quad * 4 * 3 + 6] = right;\n\t\t\t\tmeshInfo.positions[quad * 4 * 3 + 7] = top;\n\t\t\t\tmeshInfo.positions[quad * 4 * 3 + 8] = _z;\n\t\t\t\tmeshInfo.positions[quad * 4 * 3 + 9] = left;\n\t\t\t\tmeshInfo.positions[quad * 4 * 3 + 10] = top;\n\t\t\t\tmeshInfo.positions[quad * 4 * 3 + 11] = _z;\n\t\t\t\tthis.width = Math.max(this.width, candidateLineWidth);\n\t\t\t\tlet fontSize;\n\t\t\t\tif (this._shouldAutoFitWidth() && this.width > this._element.calculatedWidth) {\n\t\t\t\t\tfontSize = Math.floor(this._element.fontSize * this._element.calculatedWidth / (this.width || 0.0001));\n\t\t\t\t\tfontSize = math.clamp(fontSize, minFont, maxFont);\n\t\t\t\t\tif (fontSize !== this._element.fontSize) {\n\t\t\t\t\t\tthis._fontSize = fontSize;\n\t\t\t\t\t\tretryUpdateMeshes = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.height = Math.max(this.height, fontMaxY - (_y + fontMinY));\n\t\t\t\tif (this._shouldAutoFitHeight() && this.height > this._element.calculatedHeight) {\n\t\t\t\t\tfontSize = math.clamp(this._fontSize - 1, minFont, maxFont);\n\t\t\t\t\tif (fontSize !== this._element.fontSize) {\n\t\t\t\t\t\tthis._fontSize = fontSize;\n\t\t\t\t\t\tretryUpdateMeshes = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t_x += this._spacing * advance;\n\t\t\t\tif (!isWhitespace) {\n\t\t\t\t\t_xMinusTrailingWhitespace = _x;\n\t\t\t\t}\n\t\t\t\tif (this._isWordBoundary(char) || this._isValidNextChar(nextchar) && (this._isNextCJKBoundary(char, nextchar) || this._isNextCJKWholeWord(nextchar))) {\n\t\t\t\t\tnumWordsThisLine++;\n\t\t\t\t\twordStartX = _xMinusTrailingWhitespace;\n\t\t\t\t\twordStartIndex = i + 1;\n\t\t\t\t}\n\t\t\t\tnumCharsThisLine++;\n\t\t\t\tconst uv = this._getUv(char);\n\t\t\t\tmeshInfo.uvs[quad * 4 * 2 + 0] = uv[0];\n\t\t\t\tmeshInfo.uvs[quad * 4 * 2 + 1] = 1.0 - uv[1];\n\t\t\t\tmeshInfo.uvs[quad * 4 * 2 + 2] = uv[2];\n\t\t\t\tmeshInfo.uvs[quad * 4 * 2 + 3] = 1.0 - uv[1];\n\t\t\t\tmeshInfo.uvs[quad * 4 * 2 + 4] = uv[2];\n\t\t\t\tmeshInfo.uvs[quad * 4 * 2 + 5] = 1.0 - uv[3];\n\t\t\t\tmeshInfo.uvs[quad * 4 * 2 + 6] = uv[0];\n\t\t\t\tmeshInfo.uvs[quad * 4 * 2 + 7] = 1.0 - uv[3];\n\t\t\t\tif (this._symbolColors) {\n\t\t\t\t\tconst colorIdx = this._symbolColors[i] * 3;\n\t\t\t\t\tcolor_r = this._colorPalette[colorIdx];\n\t\t\t\t\tcolor_g = this._colorPalette[colorIdx + 1];\n\t\t\t\t\tcolor_b = this._colorPalette[colorIdx + 2];\n\t\t\t\t}\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 0] = color_r;\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 1] = color_g;\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 2] = color_b;\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 3] = 255;\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 4] = color_r;\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 5] = color_g;\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 6] = color_b;\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 7] = 255;\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 8] = color_r;\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 9] = color_g;\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 10] = color_b;\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 11] = 255;\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 12] = color_r;\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 13] = color_g;\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 14] = color_b;\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 15] = 255;\n\t\t\t\tif (this._symbolOutlineParams) {\n\t\t\t\t\tconst outlineIdx = this._symbolOutlineParams[i] * 5;\n\t\t\t\t\toutline_color_rg = this._outlinePalette[outlineIdx] + this._outlinePalette[outlineIdx + 1] * 256;\n\t\t\t\t\toutline_color_ba = this._outlinePalette[outlineIdx + 2] + this._outlinePalette[outlineIdx + 3] * 256;\n\t\t\t\t\toutline_thickness = this._outlinePalette[outlineIdx + 4];\n\t\t\t\t}\n\t\t\t\tmeshInfo.outlines[quad * 4 * 3 + 0] = outline_color_rg;\n\t\t\t\tmeshInfo.outlines[quad * 4 * 3 + 1] = outline_color_ba;\n\t\t\t\tmeshInfo.outlines[quad * 4 * 3 + 2] = outline_thickness;\n\t\t\t\tmeshInfo.outlines[quad * 4 * 3 + 3] = outline_color_rg;\n\t\t\t\tmeshInfo.outlines[quad * 4 * 3 + 4] = outline_color_ba;\n\t\t\t\tmeshInfo.outlines[quad * 4 * 3 + 5] = outline_thickness;\n\t\t\t\tmeshInfo.outlines[quad * 4 * 3 + 6] = outline_color_rg;\n\t\t\t\tmeshInfo.outlines[quad * 4 * 3 + 7] = outline_color_ba;\n\t\t\t\tmeshInfo.outlines[quad * 4 * 3 + 8] = outline_thickness;\n\t\t\t\tmeshInfo.outlines[quad * 4 * 3 + 9] = outline_color_rg;\n\t\t\t\tmeshInfo.outlines[quad * 4 * 3 + 10] = outline_color_ba;\n\t\t\t\tmeshInfo.outlines[quad * 4 * 3 + 11] = outline_thickness;\n\t\t\t\tif (this._symbolShadowParams) {\n\t\t\t\t\tconst shadowIdx = this._symbolShadowParams[i] * 6;\n\t\t\t\t\tshadow_color_rg = this._shadowPalette[shadowIdx] + this._shadowPalette[shadowIdx + 1] * 256;\n\t\t\t\t\tshadow_color_ba = this._shadowPalette[shadowIdx + 2] + this._shadowPalette[shadowIdx + 3] * 256;\n\t\t\t\t\tshadow_offset_xy = this._shadowPalette[shadowIdx + 4] + 127 + Math.round(ratio * this._shadowPalette[shadowIdx + 5] + 127) * 256;\n\t\t\t\t}\n\t\t\t\tmeshInfo.shadows[quad * 4 * 3 + 0] = shadow_color_rg;\n\t\t\t\tmeshInfo.shadows[quad * 4 * 3 + 1] = shadow_color_ba;\n\t\t\t\tmeshInfo.shadows[quad * 4 * 3 + 2] = shadow_offset_xy;\n\t\t\t\tmeshInfo.shadows[quad * 4 * 3 + 3] = shadow_color_rg;\n\t\t\t\tmeshInfo.shadows[quad * 4 * 3 + 4] = shadow_color_ba;\n\t\t\t\tmeshInfo.shadows[quad * 4 * 3 + 5] = shadow_offset_xy;\n\t\t\t\tmeshInfo.shadows[quad * 4 * 3 + 6] = shadow_color_rg;\n\t\t\t\tmeshInfo.shadows[quad * 4 * 3 + 7] = shadow_color_ba;\n\t\t\t\tmeshInfo.shadows[quad * 4 * 3 + 8] = shadow_offset_xy;\n\t\t\t\tmeshInfo.shadows[quad * 4 * 3 + 9] = shadow_color_rg;\n\t\t\t\tmeshInfo.shadows[quad * 4 * 3 + 10] = shadow_color_ba;\n\t\t\t\tmeshInfo.shadows[quad * 4 * 3 + 11] = shadow_offset_xy;\n\t\t\t\tmeshInfo.quad++;\n\t\t\t}\n\t\t\tif (retryUpdateMeshes) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (lineStartIndex < l) {\n\t\t\t\tbreakLine(this._symbols, l, _x);\n\t\t\t}\n\t\t}\n\t\tthis._noResize = true;\n\t\tthis.autoWidth = this._autoWidth;\n\t\tthis.autoHeight = this._autoHeight;\n\t\tthis._noResize = false;\n\t\tconst hp = this._element.pivot.x;\n\t\tconst vp = this._element.pivot.y;\n\t\tconst ha = this._alignment.x;\n\t\tconst va = this._alignment.y;\n\t\tfor (let i = 0; i < this._meshInfo.length; i++) {\n\t\t\tif (this._meshInfo[i].count === 0) continue;\n\t\t\tlet prevQuad = 0;\n\t\t\tfor (const line in this._meshInfo[i].lines) {\n\t\t\t\tconst index = this._meshInfo[i].lines[line];\n\t\t\t\tconst lw = this._lineWidths[parseInt(line, 10)];\n\t\t\t\tconst hoffset = -hp * this._element.calculatedWidth + ha * (this._element.calculatedWidth - lw) * (this._rtl ? -1 : 1);\n\t\t\t\tconst voffset = (1 - vp) * this._element.calculatedHeight - fontMaxY - (1 - va) * (this._element.calculatedHeight - this.height);\n\t\t\t\tfor (let _quad = prevQuad; _quad <= index; _quad++) {\n\t\t\t\t\tthis._meshInfo[i].positions[_quad * 4 * 3] += hoffset;\n\t\t\t\t\tthis._meshInfo[i].positions[_quad * 4 * 3 + 3] += hoffset;\n\t\t\t\t\tthis._meshInfo[i].positions[_quad * 4 * 3 + 6] += hoffset;\n\t\t\t\t\tthis._meshInfo[i].positions[_quad * 4 * 3 + 9] += hoffset;\n\t\t\t\t\tthis._meshInfo[i].positions[_quad * 4 * 3 + 1] += voffset;\n\t\t\t\t\tthis._meshInfo[i].positions[_quad * 4 * 3 + 4] += voffset;\n\t\t\t\t\tthis._meshInfo[i].positions[_quad * 4 * 3 + 7] += voffset;\n\t\t\t\t\tthis._meshInfo[i].positions[_quad * 4 * 3 + 10] += voffset;\n\t\t\t\t}\n\t\t\t\tif (this._rtl) {\n\t\t\t\t\tfor (let _quad2 = prevQuad; _quad2 <= index; _quad2++) {\n\t\t\t\t\t\tconst idx = _quad2 * 4 * 3;\n\t\t\t\t\t\tfor (let vert = 0; vert < 4; ++vert) {\n\t\t\t\t\t\t\tthis._meshInfo[i].positions[idx + vert * 3] = this._element.calculatedWidth - this._meshInfo[i].positions[idx + vert * 3] + hoffset * 2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst tmp0 = this._meshInfo[i].positions[idx + 3];\n\t\t\t\t\t\tconst tmp1 = this._meshInfo[i].positions[idx + 6];\n\t\t\t\t\t\tthis._meshInfo[i].positions[idx + 3] = this._meshInfo[i].positions[idx + 0];\n\t\t\t\t\t\tthis._meshInfo[i].positions[idx + 6] = this._meshInfo[i].positions[idx + 9];\n\t\t\t\t\t\tthis._meshInfo[i].positions[idx + 0] = tmp0;\n\t\t\t\t\t\tthis._meshInfo[i].positions[idx + 9] = tmp1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tprevQuad = index + 1;\n\t\t\t}\n\t\t\tconst numVertices = this._meshInfo[i].count * 4;\n\t\t\tconst vertMax = this._meshInfo[i].quad * 4;\n\t\t\tconst it = new VertexIterator(this._meshInfo[i].meshInstance.mesh.vertexBuffer);\n\t\t\tfor (let v = 0; v < numVertices; v++) {\n\t\t\t\tif (v >= vertMax) {\n\t\t\t\t\tit.element[SEMANTIC_POSITION].set(0, 0, 0);\n\t\t\t\t\tit.element[SEMANTIC_TEXCOORD0].set(0, 0);\n\t\t\t\t\tit.element[SEMANTIC_COLOR].set(0, 0, 0, 0);\n\t\t\t\t\tit.element[SEMANTIC_ATTR8].set(0, 0, 0, 0);\n\t\t\t\t\tit.element[SEMANTIC_ATTR9].set(0, 0, 0, 0);\n\t\t\t\t} else {\n\t\t\t\t\tit.element[SEMANTIC_POSITION].set(this._meshInfo[i].positions[v * 3 + 0], this._meshInfo[i].positions[v * 3 + 1], this._meshInfo[i].positions[v * 3 + 2]);\n\t\t\t\t\tit.element[SEMANTIC_TEXCOORD0].set(this._meshInfo[i].uvs[v * 2 + 0], this._meshInfo[i].uvs[v * 2 + 1]);\n\t\t\t\t\tit.element[SEMANTIC_COLOR].set(this._meshInfo[i].colors[v * 4 + 0], this._meshInfo[i].colors[v * 4 + 1], this._meshInfo[i].colors[v * 4 + 2], this._meshInfo[i].colors[v * 4 + 3]);\n\t\t\t\t\tit.element[SEMANTIC_ATTR8].set(this._meshInfo[i].outlines[v * 3 + 0], this._meshInfo[i].outlines[v * 3 + 1], this._meshInfo[i].outlines[v * 3 + 2]);\n\t\t\t\t\tit.element[SEMANTIC_ATTR9].set(this._meshInfo[i].shadows[v * 3 + 0], this._meshInfo[i].shadows[v * 3 + 1], this._meshInfo[i].shadows[v * 3 + 2]);\n\t\t\t\t}\n\t\t\t\tit.next();\n\t\t\t}\n\t\t\tit.end();\n\t\t\tthis._meshInfo[i].meshInstance.mesh.aabb.compute(this._meshInfo[i].positions);\n\t\t\tthis._meshInfo[i].meshInstance._aabbVer = -1;\n\t\t}\n\t\tthis._aabbDirty = true;\n\t}\n\t_onFontRender() {\n\t\tthis.font = this._font;\n\t}\n\t_onFontLoad(asset) {\n\t\tif (this.font !== asset.resource) {\n\t\t\tthis.font = asset.resource;\n\t\t}\n\t}\n\t_onFontChange(asset, name, _new, _old) {\n\t\tif (name === 'data') {\n\t\t\tthis._font.data = _new;\n\t\t\tconst maps = this._font.data.info.maps.length;\n\t\t\tfor (let i = 0; i < maps; i++) {\n\t\t\t\tif (!this._meshInfo[i]) continue;\n\t\t\t\tconst mi = this._meshInfo[i].meshInstance;\n\t\t\t\tif (mi) {\n\t\t\t\t\tmi.setParameter('font_sdfIntensity', this._font.intensity);\n\t\t\t\t\tmi.setParameter('font_pxrange', this._getPxRange(this._font));\n\t\t\t\t\tmi.setParameter('font_textureWidth', this._font.data.info.maps[i].width);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t_onFontRemove(asset) {}\n\t_setTextureParams(mi, texture) {\n\t\tif (this._font) {\n\t\t\tif (this._font.type === FONT_MSDF) {\n\t\t\t\tmi.deleteParameter('texture_emissiveMap');\n\t\t\t\tmi.deleteParameter('texture_opacityMap');\n\t\t\t\tmi.setParameter('texture_msdfMap', texture);\n\t\t\t} else if (this._font.type === FONT_BITMAP) {\n\t\t\t\tmi.deleteParameter('texture_msdfMap');\n\t\t\t\tmi.setParameter('texture_emissiveMap', texture);\n\t\t\t\tmi.setParameter('texture_opacityMap', texture);\n\t\t\t}\n\t\t}\n\t}\n\t_getPxRange(font) {\n\t\tconst keys = Object.keys(this._font.data.chars);\n\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\tconst char = this._font.data.chars[keys[i]];\n\t\t\tif (char.range) {\n\t\t\t\treturn (char.scale || 1) * char.range;\n\t\t\t}\n\t\t}\n\t\treturn 2;\n\t}\n\t_getUv(char) {\n\t\tconst data = this._font.data;\n\t\tif (!data.chars[char]) {\n\t\t\tconst space = ' ';\n\t\t\tif (data.chars[space]) {\n\t\t\t\treturn this._getUv(space);\n\t\t\t}\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\t\tconst map = data.chars[char].map;\n\t\tconst width = data.info.maps[map].width;\n\t\tconst height = data.info.maps[map].height;\n\t\tconst x = data.chars[char].x;\n\t\tconst y = data.chars[char].y;\n\t\tconst x1 = x;\n\t\tconst y1 = y;\n\t\tconst x2 = x + data.chars[char].width;\n\t\tconst y2 = y - data.chars[char].height;\n\t\tconst edge = 1 - data.chars[char].height / height;\n\t\treturn [x1 / width, edge - y1 / height, x2 / width, edge - y2 / height];\n\t}\n\tonEnable() {\n\t\tthis._fontAsset.autoLoad = true;\n\t\tif (this._model) {\n\t\t\tthis._element.addModelToLayers(this._model);\n\t\t}\n\t}\n\tonDisable() {\n\t\tthis._fontAsset.autoLoad = false;\n\t\tif (this._model) {\n\t\t\tthis._element.removeModelFromLayers(this._model);\n\t\t}\n\t}\n\t_setStencil(stencilParams) {\n\t\tif (this._model) {\n\t\t\tconst instances = this._model.meshInstances;\n\t\t\tfor (let i = 0; i < instances.length; i++) {\n\t\t\t\tinstances[i].stencilFront = stencilParams;\n\t\t\t\tinstances[i].stencilBack = stencilParams;\n\t\t\t}\n\t\t}\n\t}\n\t_shouldAutoFitWidth() {\n\t\treturn this._autoFitWidth && !this._autoWidth;\n\t}\n\t_shouldAutoFitHeight() {\n\t\treturn this._autoFitHeight && !this._autoHeight;\n\t}\n\t_shouldAutoFit() {\n\t\treturn this._autoFitWidth && !this._autoWidth || this._autoFitHeight && !this._autoHeight;\n\t}\n\t_calculateCharsPerTexture(symbolIndex) {\n\t\tconst charactersPerTexture = {};\n\t\tif (symbolIndex === undefined) {\n\t\t\tsymbolIndex = this._symbols.length;\n\t\t}\n\t\tfor (let i = 0, len = symbolIndex; i < len; i++) {\n\t\t\tconst char = this._symbols[i];\n\t\t\tlet info = this._font.data.chars[char];\n\t\t\tif (!info) {\n\t\t\t\tinfo = this._font.data.chars[' '];\n\t\t\t\tif (!info) {\n\t\t\t\t\tinfo = this._font.data.chars[Object.keys(this._font.data.chars)[0]];\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst map = info.map;\n\t\t\tif (!charactersPerTexture[map]) {\n\t\t\t\tcharactersPerTexture[map] = 1;\n\t\t\t} else {\n\t\t\t\tcharactersPerTexture[map]++;\n\t\t\t}\n\t\t}\n\t\treturn charactersPerTexture;\n\t}\n\t_updateRenderRange() {\n\t\tconst startChars = this._rangeStart === 0 ? 0 : this._calculateCharsPerTexture(this._rangeStart);\n\t\tconst endChars = this._rangeEnd === 0 ? 0 : this._calculateCharsPerTexture(this._rangeEnd);\n\t\tfor (let i = 0, len = this._meshInfo.length; i < len; i++) {\n\t\t\tconst start = startChars[i] || 0;\n\t\t\tconst end = endChars[i] || 0;\n\t\t\tconst instance = this._meshInfo[i].meshInstance;\n\t\t\tif (instance) {\n\t\t\t\tconst mesh = instance.mesh;\n\t\t\t\tif (mesh) {\n\t\t\t\t\tmesh.primitive[0].base = start * 3 * 2;\n\t\t\t\t\tmesh.primitive[0].count = (end - start) * 3 * 2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tset text(value) {\n\t\tthis._i18nKey = null;\n\t\tconst str = value != null && value.toString() || '';\n\t\tthis._setText(str);\n\t}\n\tget text() {\n\t\treturn this._text;\n\t}\n\tset key(value) {\n\t\tconst str = value !== null ? value.toString() : null;\n\t\tif (this._i18nKey === str) {\n\t\t\treturn;\n\t\t}\n\t\tthis._i18nKey = str;\n\t\tif (str) {\n\t\t\tthis._fontAsset.disableLocalization = false;\n\t\t\tthis._resetLocalizedText();\n\t\t} else {\n\t\t\tthis._fontAsset.disableLocalization = true;\n\t\t}\n\t}\n\tget key() {\n\t\treturn this._i18nKey;\n\t}\n\tset color(value) {\n\t\tconst r = value.r;\n\t\tconst g = value.g;\n\t\tconst b = value.b;\n\t\tif (this._color.r === r && this._color.g === g && this._color.b === b) {\n\t\t\treturn;\n\t\t}\n\t\tthis._color.r = r;\n\t\tthis._color.g = g;\n\t\tthis._color.b = b;\n\t\tif (!this._model) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._symbolColors) {\n\t\t\tif (this._font) {\n\t\t\t\tthis._updateText();\n\t\t\t}\n\t\t} else {\n\t\t\tthis._colorUniform[0] = this._color.r;\n\t\t\tthis._colorUniform[1] = this._color.g;\n\t\t\tthis._colorUniform[2] = this._color.b;\n\t\t\tfor (let i = 0, len = this._model.meshInstances.length; i < len; i++) {\n\t\t\t\tconst mi = this._model.meshInstances[i];\n\t\t\t\tmi.setParameter('material_emissive', this._colorUniform);\n\t\t\t}\n\t\t}\n\t\tif (this._element) {\n\t\t\tthis._element.fire('set:color', this._color);\n\t\t}\n\t}\n\tget color() {\n\t\treturn this._color;\n\t}\n\tset opacity(value) {\n\t\tif (this._color.a !== value) {\n\t\t\tthis._color.a = value;\n\t\t\tif (this._model) {\n\t\t\t\tfor (let i = 0, len = this._model.meshInstances.length; i < len; i++) {\n\t\t\t\t\tconst mi = this._model.meshInstances[i];\n\t\t\t\t\tmi.setParameter('material_opacity', value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this._element) {\n\t\t\tthis._element.fire('set:opacity', value);\n\t\t}\n\t}\n\tget opacity() {\n\t\treturn this._color.a;\n\t}\n\tset lineHeight(value) {\n\t\tconst _prev = this._lineHeight;\n\t\tthis._lineHeight = value;\n\t\tthis._scaledLineHeight = value;\n\t\tif (_prev !== value && this._font) {\n\t\t\tthis._updateText();\n\t\t}\n\t}\n\tget lineHeight() {\n\t\treturn this._lineHeight;\n\t}\n\tset wrapLines(value) {\n\t\tconst _prev = this._wrapLines;\n\t\tthis._wrapLines = value;\n\t\tif (_prev !== value && this._font) {\n\t\t\tthis._updateText();\n\t\t}\n\t}\n\tget wrapLines() {\n\t\treturn this._wrapLines;\n\t}\n\tget lines() {\n\t\treturn this._lineContents;\n\t}\n\tset spacing(value) {\n\t\tconst _prev = this._spacing;\n\t\tthis._spacing = value;\n\t\tif (_prev !== value && this._font) {\n\t\t\tthis._updateText();\n\t\t}\n\t}\n\tget spacing() {\n\t\treturn this._spacing;\n\t}\n\tset fontSize(value) {\n\t\tconst _prev = this._fontSize;\n\t\tthis._fontSize = value;\n\t\tthis._originalFontSize = value;\n\t\tif (_prev !== value && this._font) {\n\t\t\tthis._updateText();\n\t\t}\n\t}\n\tget fontSize() {\n\t\treturn this._fontSize;\n\t}\n\tset fontAsset(value) {\n\t\tthis._fontAsset.defaultAsset = value;\n\t}\n\tget fontAsset() {\n\t\treturn this._fontAsset.localizedAsset;\n\t}\n\tset font(value) {\n\t\tlet previousFontType;\n\t\tif (this._font) {\n\t\t\tpreviousFontType = this._font.type;\n\t\t\tif (this._font.off) this._font.off('render', this._onFontRender, this);\n\t\t}\n\t\tthis._font = value;\n\t\tthis._fontMinY = 0;\n\t\tthis._fontMaxY = 0;\n\t\tif (!value) return;\n\t\tconst json = this._font.data;\n\t\tfor (const charId in json.chars) {\n\t\t\tconst data = json.chars[charId];\n\t\t\tif (data.bounds) {\n\t\t\t\tthis._fontMinY = Math.min(this._fontMinY, data.bounds[1]);\n\t\t\t\tthis._fontMaxY = Math.max(this._fontMaxY, data.bounds[3]);\n\t\t\t}\n\t\t}\n\t\tif (this._font.on) this._font.on('render', this._onFontRender, this);\n\t\tif (this._fontAsset.localizedAsset) {\n\t\t\tconst asset = this._system.app.assets.get(this._fontAsset.localizedAsset);\n\t\t\tif (asset.resource !== this._font) {\n\t\t\t\tthis._fontAsset.defaultAsset = null;\n\t\t\t}\n\t\t}\n\t\tif (value.type !== previousFontType) {\n\t\t\tconst screenSpace = this._element._isScreenSpace();\n\t\t\tthis._updateMaterial(screenSpace);\n\t\t}\n\t\tfor (let i = 0, len = this._font.textures.length; i < len; i++) {\n\t\t\tif (!this._meshInfo[i]) {\n\t\t\t\tthis._meshInfo[i] = new MeshInfo();\n\t\t\t} else {\n\t\t\t\tconst mi = this._meshInfo[i].meshInstance;\n\t\t\t\tif (mi) {\n\t\t\t\t\tmi.setParameter('font_sdfIntensity', this._font.intensity);\n\t\t\t\t\tmi.setParameter('font_pxrange', this._getPxRange(this._font));\n\t\t\t\t\tmi.setParameter('font_textureWidth', this._font.data.info.maps[i].width);\n\t\t\t\t\tthis._setTextureParams(mi, this._font.textures[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tlet removedModel = false;\n\t\tfor (let i = this._font.textures.length; i < this._meshInfo.length; i++) {\n\t\t\tif (this._meshInfo[i].meshInstance) {\n\t\t\t\tif (!removedModel) {\n\t\t\t\t\tthis._element.removeModelFromLayers(this._model);\n\t\t\t\t\tremovedModel = true;\n\t\t\t\t}\n\t\t\t\tthis._removeMeshInstance(this._meshInfo[i].meshInstance);\n\t\t\t}\n\t\t}\n\t\tif (this._meshInfo.length > this._font.textures.length) {\n\t\t\tthis._meshInfo.length = this._font.textures.length;\n\t\t}\n\t\tthis._updateText();\n\t}\n\tget font() {\n\t\treturn this._font;\n\t}\n\tset alignment(value) {\n\t\tif (value instanceof Vec2) {\n\t\t\tthis._alignment.set(value.x, value.y);\n\t\t} else {\n\t\t\tthis._alignment.set(value[0], value[1]);\n\t\t}\n\t\tif (this._font) {\n\t\t\tthis._updateText();\n\t\t}\n\t}\n\tget alignment() {\n\t\treturn this._alignment;\n\t}\n\tset autoWidth(value) {\n\t\tconst old = this._autoWidth;\n\t\tthis._autoWidth = value;\n\t\tif (value && Math.abs(this._element.anchor.x - this._element.anchor.z) < 0.0001) {\n\t\t\tthis._element.width = this.width;\n\t\t}\n\t\tif (old !== value) {\n\t\t\tconst newFontSize = this._shouldAutoFit() ? this._maxFontSize : this._originalFontSize;\n\t\t\tif (newFontSize !== this._fontSize) {\n\t\t\t\tthis._fontSize = newFontSize;\n\t\t\t\tif (this._font) {\n\t\t\t\t\tthis._updateText();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget autoWidth() {\n\t\treturn this._autoWidth;\n\t}\n\tset autoHeight(value) {\n\t\tconst old = this._autoHeight;\n\t\tthis._autoHeight = value;\n\t\tif (value && Math.abs(this._element.anchor.y - this._element.anchor.w) < 0.0001) {\n\t\t\tthis._element.height = this.height;\n\t\t}\n\t\tif (old !== value) {\n\t\t\tconst newFontSize = this._shouldAutoFit() ? this._maxFontSize : this._originalFontSize;\n\t\t\tif (newFontSize !== this._fontSize) {\n\t\t\t\tthis._fontSize = newFontSize;\n\t\t\t\tif (this._font) {\n\t\t\t\t\tthis._updateText();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget autoHeight() {\n\t\treturn this._autoHeight;\n\t}\n\tset rtlReorder(value) {\n\t\tif (this._rtlReorder !== value) {\n\t\t\tthis._rtlReorder = value;\n\t\t\tif (this._font) {\n\t\t\t\tthis._updateText();\n\t\t\t}\n\t\t}\n\t}\n\tget rtlReorder() {\n\t\treturn this._rtlReorder;\n\t}\n\tset unicodeConverter(value) {\n\t\tif (this._unicodeConverter !== value) {\n\t\t\tthis._unicodeConverter = value;\n\t\t\tthis._setText(this._text);\n\t\t}\n\t}\n\tget unicodeConverter() {\n\t\treturn this._unicodeConverter;\n\t}\n\tget aabb() {\n\t\tif (this._aabbDirty) {\n\t\t\tlet initialized = false;\n\t\t\tfor (let i = 0; i < this._meshInfo.length; i++) {\n\t\t\t\tif (!this._meshInfo[i].meshInstance) continue;\n\t\t\t\tif (!initialized) {\n\t\t\t\t\tthis._aabb.copy(this._meshInfo[i].meshInstance.aabb);\n\t\t\t\t\tinitialized = true;\n\t\t\t\t} else {\n\t\t\t\t\tthis._aabb.add(this._meshInfo[i].meshInstance.aabb);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._aabbDirty = false;\n\t\t}\n\t\treturn this._aabb;\n\t}\n\tset outlineColor(value) {\n\t\tconst r = value instanceof Color ? value.r : value[0];\n\t\tconst g = value instanceof Color ? value.g : value[1];\n\t\tconst b = value instanceof Color ? value.b : value[2];\n\t\tconst a = value instanceof Color ? value.a : value[3];\n\t\tif (this._outlineColor.r === r && this._outlineColor.g === g && this._outlineColor.b === b && this._outlineColor.a === a) {\n\t\t\treturn;\n\t\t}\n\t\tthis._outlineColor.r = r;\n\t\tthis._outlineColor.g = g;\n\t\tthis._outlineColor.b = b;\n\t\tthis._outlineColor.a = a;\n\t\tif (!this._model) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._symbolOutlineParams) {\n\t\t\tif (this._font) {\n\t\t\t\tthis._updateText();\n\t\t\t}\n\t\t} else {\n\t\t\tthis._outlineColorUniform[0] = this._outlineColor.r;\n\t\t\tthis._outlineColorUniform[1] = this._outlineColor.g;\n\t\t\tthis._outlineColorUniform[2] = this._outlineColor.b;\n\t\t\tthis._outlineColorUniform[3] = this._outlineColor.a;\n\t\t\tfor (let i = 0, len = this._model.meshInstances.length; i < len; i++) {\n\t\t\t\tconst mi = this._model.meshInstances[i];\n\t\t\t\tmi.setParameter('outline_color', this._outlineColorUniform);\n\t\t\t}\n\t\t}\n\t\tif (this._element) {\n\t\t\tthis._element.fire('set:outline', this._color);\n\t\t}\n\t}\n\tget outlineColor() {\n\t\treturn this._outlineColor;\n\t}\n\tset outlineThickness(value) {\n\t\tconst _prev = this._outlineThickness;\n\t\tthis._outlineThickness = value;\n\t\tif (_prev !== value && this._font) {\n\t\t\tif (!this._model) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this._symbolOutlineParams) {\n\t\t\t\tif (this._font) {\n\t\t\t\t\tthis._updateText();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (let i = 0, len = this._model.meshInstances.length; i < len; i++) {\n\t\t\t\t\tconst mi = this._model.meshInstances[i];\n\t\t\t\t\tmi.setParameter('outline_thickness', this._outlineThicknessScale * this._outlineThickness);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget outlineThickness() {\n\t\treturn this._outlineThickness;\n\t}\n\tset shadowColor(value) {\n\t\tconst r = value instanceof Color ? value.r : value[0];\n\t\tconst g = value instanceof Color ? value.g : value[1];\n\t\tconst b = value instanceof Color ? value.b : value[2];\n\t\tconst a = value instanceof Color ? value.a : value[3];\n\t\tif (this._shadowColor.r === r && this._shadowColor.g === g && this._shadowColor.b === b && this._shadowColor.a === a) {\n\t\t\treturn;\n\t\t}\n\t\tthis._shadowColor.r = r;\n\t\tthis._shadowColor.g = g;\n\t\tthis._shadowColor.b = b;\n\t\tthis._shadowColor.a = a;\n\t\tif (!this._model) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._symbolShadowParams) {\n\t\t\tif (this._font) {\n\t\t\t\tthis._updateText();\n\t\t\t}\n\t\t} else {\n\t\t\tthis._shadowColorUniform[0] = this._shadowColor.r;\n\t\t\tthis._shadowColorUniform[1] = this._shadowColor.g;\n\t\t\tthis._shadowColorUniform[2] = this._shadowColor.b;\n\t\t\tthis._shadowColorUniform[3] = this._shadowColor.a;\n\t\t\tfor (let i = 0, len = this._model.meshInstances.length; i < len; i++) {\n\t\t\t\tconst mi = this._model.meshInstances[i];\n\t\t\t\tmi.setParameter('shadow_color', this._shadowColorUniform);\n\t\t\t}\n\t\t}\n\t}\n\tget shadowColor() {\n\t\treturn this._shadowColor;\n\t}\n\tset shadowOffset(value) {\n\t\tconst x = value instanceof Vec2 ? value.x : value[0],\n\t\t\ty = value instanceof Vec2 ? value.y : value[1];\n\t\tif (this._shadowOffset.x === x && this._shadowOffset.y === y) {\n\t\t\treturn;\n\t\t}\n\t\tthis._shadowOffset.set(x, y);\n\t\tif (this._font && this._model) {\n\t\t\tif (this._symbolShadowParams) {\n\t\t\t\tthis._updateText();\n\t\t\t} else {\n\t\t\t\tfor (let i = 0, len = this._model.meshInstances.length; i < len; i++) {\n\t\t\t\t\tconst ratio = -this._font.data.info.maps[i].width / this._font.data.info.maps[i].height;\n\t\t\t\t\tthis._shadowOffsetUniform[0] = this._shadowOffsetScale * this._shadowOffset.x;\n\t\t\t\t\tthis._shadowOffsetUniform[1] = ratio * this._shadowOffsetScale * this._shadowOffset.y;\n\t\t\t\t\tconst mi = this._model.meshInstances[i];\n\t\t\t\t\tmi.setParameter('shadow_offset', this._shadowOffsetUniform);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget shadowOffset() {\n\t\treturn this._shadowOffset;\n\t}\n\tset minFontSize(value) {\n\t\tif (this._minFontSize === value) return;\n\t\tthis._minFontSize = value;\n\t\tif (this.font && this._shouldAutoFit()) {\n\t\t\tthis._updateText();\n\t\t}\n\t}\n\tget minFontSize() {\n\t\treturn this._minFontSize;\n\t}\n\tset maxFontSize(value) {\n\t\tif (this._maxFontSize === value) return;\n\t\tthis._maxFontSize = value;\n\t\tif (this.font && this._shouldAutoFit()) {\n\t\t\tthis._updateText();\n\t\t}\n\t}\n\tget maxFontSize() {\n\t\treturn this._maxFontSize;\n\t}\n\tset autoFitWidth(value) {\n\t\tif (this._autoFitWidth === value) return;\n\t\tthis._autoFitWidth = value;\n\t\tthis._fontSize = this._shouldAutoFit() ? this._maxFontSize : this._originalFontSize;\n\t\tif (this.font) {\n\t\t\tthis._updateText();\n\t\t}\n\t}\n\tget autoFitWidth() {\n\t\treturn this._autoFitWidth;\n\t}\n\tset autoFitHeight(value) {\n\t\tif (this._autoFitHeight === value) return;\n\t\tthis._autoFitHeight = value;\n\t\tthis._fontSize = this._shouldAutoFit() ? this._maxFontSize : this._originalFontSize;\n\t\tif (this.font) {\n\t\t\tthis._updateText();\n\t\t}\n\t}\n\tget autoFitHeight() {\n\t\treturn this._autoFitHeight;\n\t}\n\tset maxLines(value) {\n\t\tif (this._maxLines === value) return;\n\t\tif (value === null && this._maxLines === -1) return;\n\t\tthis._maxLines = value === null ? -1 : value;\n\t\tif (this.font && this._wrapLines) {\n\t\t\tthis._updateText();\n\t\t}\n\t}\n\tget maxLines() {\n\t\treturn this._maxLines;\n\t}\n\tset enableMarkup(value) {\n\t\tvalue = !!value;\n\t\tif (this._enableMarkup === value) return;\n\t\tthis._enableMarkup = value;\n\t\tif (this.font) {\n\t\t\tthis._updateText();\n\t\t}\n\t\tconst screenSpace = this._element._isScreenSpace();\n\t\tthis._updateMaterial(screenSpace);\n\t}\n\tget enableMarkup() {\n\t\treturn this._enableMarkup;\n\t}\n\tget symbols() {\n\t\treturn this._symbols;\n\t}\n\tget symbolColors() {\n\t\tif (this._symbolColors === null) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._symbolColors.map(function (c) {\n\t\t\treturn this._colorPalette.slice(c * 3, c * 3 + 3);\n\t\t}, this);\n\t}\n\tget symbolOutlineParams() {\n\t\tif (this._symbolOutlineParams === null) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._symbolOutlineParams.map(function (paramId) {\n\t\t\treturn this._outlinePalette.slice(paramId * 5, paramId * 5 + 5);\n\t\t}, this);\n\t}\n\tget symbolShadowParams() {\n\t\tif (this._symbolShadowParams === null) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._symbolShadowParams.map(function (paramId) {\n\t\t\treturn this._shadowPalette.slice(paramId * 6, paramId * 6 + 6);\n\t\t}, this);\n\t}\n\tget rtl() {\n\t\treturn this._rtl;\n\t}\n\tset rangeStart(rangeStart) {\n\t\trangeStart = Math.max(0, Math.min(rangeStart, this._symbols.length));\n\t\tif (rangeStart !== this._rangeStart) {\n\t\t\tthis._rangeStart = rangeStart;\n\t\t\tthis._updateRenderRange();\n\t\t}\n\t}\n\tget rangeStart() {\n\t\treturn this._rangeStart;\n\t}\n\tset rangeEnd(rangeEnd) {\n\t\trangeEnd = Math.max(this._rangeStart, Math.min(rangeEnd, this._symbols.length));\n\t\tif (rangeEnd !== this._rangeEnd) {\n\t\t\tthis._rangeEnd = rangeEnd;\n\t\t\tthis._updateRenderRange();\n\t\t}\n\t}\n\tget rangeEnd() {\n\t\treturn this._rangeEnd;\n\t}\n}\n\nconst position = new Vec3();\nconst invParentWtm = new Mat4();\nconst vecA$2 = new Vec3();\nconst vecB$2 = new Vec3();\nconst matA = new Mat4();\nconst matB = new Mat4();\nconst matC = new Mat4();\nconst matD = new Mat4();\nclass ElementComponent extends Component {\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis._evtLayersChanged = null;\n\t\tthis._evtLayerAdded = null;\n\t\tthis._evtLayerRemoved = null;\n\t\tthis._beingInitialized = false;\n\t\tthis._anchor = new Vec4();\n\t\tthis._localAnchor = new Vec4();\n\t\tthis._pivot = new Vec2();\n\t\tthis._width = this._calculatedWidth = 32;\n\t\tthis._height = this._calculatedHeight = 32;\n\t\tthis._margin = new Vec4(0, 0, -32, -32);\n\t\tthis._modelTransform = new Mat4();\n\t\tthis._screenToWorld = new Mat4();\n\t\tthis._anchorTransform = new Mat4();\n\t\tthis._anchorDirty = true;\n\t\tthis._parentWorldTransform = new Mat4();\n\t\tthis._screenTransform = new Mat4();\n\t\tthis._screenCorners = [new Vec3(), new Vec3(), new Vec3(), new Vec3()];\n\t\tthis._canvasCorners = [new Vec2(), new Vec2(), new Vec2(), new Vec2()];\n\t\tthis._worldCorners = [new Vec3(), new Vec3(), new Vec3(), new Vec3()];\n\t\tthis._cornersDirty = true;\n\t\tthis._canvasCornersDirty = true;\n\t\tthis._worldCornersDirty = true;\n\t\tthis.entity.on('insert', this._onInsert, this);\n\t\tthis._patch();\n\t\tthis.screen = null;\n\t\tthis._type = ELEMENTTYPE_GROUP;\n\t\tthis._image = null;\n\t\tthis._text = null;\n\t\tthis._group = null;\n\t\tthis._drawOrder = 0;\n\t\tthis._fitMode = FITMODE_STRETCH;\n\t\tthis._useInput = false;\n\t\tthis._layers = [LAYERID_UI];\n\t\tthis._addedModels = [];\n\t\tthis._batchGroupId = -1;\n\t\tthis._offsetReadAt = 0;\n\t\tthis._maskOffset = 0.5;\n\t\tthis._maskedBy = null;\n\t}\n\tget data() {\n\t\tconst record = this.system.store[this.entity.getGuid()];\n\t\treturn record ? record.data : null;\n\t}\n\tset enabled(value) {\n\t\tconst data = this.data;\n\t\tconst oldValue = data.enabled;\n\t\tdata.enabled = value;\n\t\tthis.fire('set', 'enabled', oldValue, value);\n\t}\n\tget enabled() {\n\t\treturn this.data.enabled;\n\t}\n\tget _absLeft() {\n\t\treturn this._localAnchor.x + this._margin.x;\n\t}\n\tget _absRight() {\n\t\treturn this._localAnchor.z - this._margin.z;\n\t}\n\tget _absTop() {\n\t\treturn this._localAnchor.w - this._margin.w;\n\t}\n\tget _absBottom() {\n\t\treturn this._localAnchor.y + this._margin.y;\n\t}\n\tget _hasSplitAnchorsX() {\n\t\treturn Math.abs(this._anchor.x - this._anchor.z) > 0.001;\n\t}\n\tget _hasSplitAnchorsY() {\n\t\treturn Math.abs(this._anchor.y - this._anchor.w) > 0.001;\n\t}\n\tget aabb() {\n\t\tif (this._image) {\n\t\t\treturn this._image.aabb;\n\t\t}\n\t\tif (this._text) {\n\t\t\treturn this._text.aabb;\n\t\t}\n\t\treturn null;\n\t}\n\tset anchor(value) {\n\t\tif (value instanceof Vec4) {\n\t\t\tthis._anchor.copy(value);\n\t\t} else {\n\t\t\tthis._anchor.set(...value);\n\t\t}\n\t\tif (!this.entity._parent && !this.screen) {\n\t\t\tthis._calculateLocalAnchors();\n\t\t} else {\n\t\t\tthis._calculateSize(this._hasSplitAnchorsX, this._hasSplitAnchorsY);\n\t\t}\n\t\tthis._anchorDirty = true;\n\t\tif (!this.entity._dirtyLocal) {\n\t\t\tthis.entity._dirtifyLocal();\n\t\t}\n\t\tthis.fire('set:anchor', this._anchor);\n\t}\n\tget anchor() {\n\t\treturn this._anchor;\n\t}\n\tset batchGroupId(value) {\n\t\tif (this._batchGroupId === value) {\n\t\t\treturn;\n\t\t}\n\t\tif (this.entity.enabled && this._batchGroupId >= 0) {\n\t\t\tvar _this$system$app$batc;\n\t\t\t(_this$system$app$batc = this.system.app.batcher) == null || _this$system$app$batc.remove(BatchGroup.ELEMENT, this.batchGroupId, this.entity);\n\t\t}\n\t\tif (this.entity.enabled && value >= 0) {\n\t\t\tvar _this$system$app$batc2;\n\t\t\t(_this$system$app$batc2 = this.system.app.batcher) == null || _this$system$app$batc2.insert(BatchGroup.ELEMENT, value, this.entity);\n\t\t}\n\t\tif (value < 0 && this._batchGroupId >= 0 && this.enabled && this.entity.enabled) {\n\t\t\tif (this._image && this._image._renderable.model) {\n\t\t\t\tthis.addModelToLayers(this._image._renderable.model);\n\t\t\t} else if (this._text && this._text._model) {\n\t\t\t\tthis.addModelToLayers(this._text._model);\n\t\t\t}\n\t\t}\n\t\tthis._batchGroupId = value;\n\t}\n\tget batchGroupId() {\n\t\treturn this._batchGroupId;\n\t}\n\tset bottom(value) {\n\t\tthis._margin.y = value;\n\t\tconst p = this.entity.getLocalPosition();\n\t\tconst wt = this._absTop;\n\t\tconst wb = this._localAnchor.y + value;\n\t\tthis._setHeight(wt - wb);\n\t\tp.y = value + this._calculatedHeight * this._pivot.y;\n\t\tthis.entity.setLocalPosition(p);\n\t}\n\tget bottom() {\n\t\treturn this._margin.y;\n\t}\n\tset calculatedWidth(value) {\n\t\tthis._setCalculatedWidth(value, true);\n\t}\n\tget calculatedWidth() {\n\t\treturn this._calculatedWidth;\n\t}\n\tset calculatedHeight(value) {\n\t\tthis._setCalculatedHeight(value, true);\n\t}\n\tget calculatedHeight() {\n\t\treturn this._calculatedHeight;\n\t}\n\tget canvasCorners() {\n\t\tif (!this._canvasCornersDirty || !this.screen || !this.screen.screen.screenSpace) {\n\t\t\treturn this._canvasCorners;\n\t\t}\n\t\tconst device = this.system.app.graphicsDevice;\n\t\tconst screenCorners = this.screenCorners;\n\t\tconst sx = device.canvas.clientWidth / device.width;\n\t\tconst sy = device.canvas.clientHeight / device.height;\n\t\tfor (let i = 0; i < 4; i++) {\n\t\t\tthis._canvasCorners[i].set(screenCorners[i].x * sx, (device.height - screenCorners[i].y) * sy);\n\t\t}\n\t\tthis._canvasCornersDirty = false;\n\t\treturn this._canvasCorners;\n\t}\n\tset drawOrder(value) {\n\t\tlet priority = 0;\n\t\tif (this.screen) {\n\t\t\tpriority = this.screen.screen.priority;\n\t\t}\n\t\tif (value > 0xFFFFFF) {\n\t\t\tvalue = 0xFFFFFF;\n\t\t}\n\t\tthis._drawOrder = (priority << 24) + value;\n\t\tthis.fire('set:draworder', this._drawOrder);\n\t}\n\tget drawOrder() {\n\t\treturn this._drawOrder;\n\t}\n\tset height(value) {\n\t\tthis._height = value;\n\t\tif (!this._hasSplitAnchorsY) {\n\t\t\tthis._setCalculatedHeight(value, true);\n\t\t}\n\t\tthis.fire('set:height', this._height);\n\t}\n\tget height() {\n\t\treturn this._height;\n\t}\n\tset layers(value) {\n\t\tif (this._addedModels.length) {\n\t\t\tfor (let i = 0; i < this._layers.length; i++) {\n\t\t\t\tconst layer = this.system.app.scene.layers.getLayerById(this._layers[i]);\n\t\t\t\tif (layer) {\n\t\t\t\t\tfor (let j = 0; j < this._addedModels.length; j++) {\n\t\t\t\t\t\tlayer.removeMeshInstances(this._addedModels[j].meshInstances);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._layers = value;\n\t\tif (!this.enabled || !this.entity.enabled || !this._addedModels.length) {\n\t\t\treturn;\n\t\t}\n\t\tfor (let i = 0; i < this._layers.length; i++) {\n\t\t\tconst layer = this.system.app.scene.layers.getLayerById(this._layers[i]);\n\t\t\tif (layer) {\n\t\t\t\tfor (let j = 0; j < this._addedModels.length; j++) {\n\t\t\t\t\tlayer.addMeshInstances(this._addedModels[j].meshInstances);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget layers() {\n\t\treturn this._layers;\n\t}\n\tset left(value) {\n\t\tthis._margin.x = value;\n\t\tconst p = this.entity.getLocalPosition();\n\t\tconst wr = this._absRight;\n\t\tconst wl = this._localAnchor.x + value;\n\t\tthis._setWidth(wr - wl);\n\t\tp.x = value + this._calculatedWidth * this._pivot.x;\n\t\tthis.entity.setLocalPosition(p);\n\t}\n\tget left() {\n\t\treturn this._margin.x;\n\t}\n\tset margin(value) {\n\t\tthis._margin.copy(value);\n\t\tthis._calculateSize(true, true);\n\t\tthis.fire('set:margin', this._margin);\n\t}\n\tget margin() {\n\t\treturn this._margin;\n\t}\n\tget maskedBy() {\n\t\treturn this._maskedBy;\n\t}\n\tset pivot(value) {\n\t\tconst {\n\t\t\tpivot,\n\t\t\tmargin\n\t\t} = this;\n\t\tconst prevX = pivot.x;\n\t\tconst prevY = pivot.y;\n\t\tif (value instanceof Vec2) {\n\t\t\tpivot.copy(value);\n\t\t} else {\n\t\t\tpivot.set(...value);\n\t\t}\n\t\tconst mx = margin.x + margin.z;\n\t\tconst dx = pivot.x - prevX;\n\t\tmargin.x += mx * dx;\n\t\tmargin.z -= mx * dx;\n\t\tconst my = margin.y + margin.w;\n\t\tconst dy = pivot.y - prevY;\n\t\tmargin.y += my * dy;\n\t\tmargin.w -= my * dy;\n\t\tthis._anchorDirty = true;\n\t\tthis._cornersDirty = true;\n\t\tthis._worldCornersDirty = true;\n\t\tthis._calculateSize(false, false);\n\t\tthis._flagChildrenAsDirty();\n\t\tthis.fire('set:pivot', pivot);\n\t}\n\tget pivot() {\n\t\treturn this._pivot;\n\t}\n\tset right(value) {\n\t\tthis._margin.z = value;\n\t\tconst p = this.entity.getLocalPosition();\n\t\tconst wl = this._absLeft;\n\t\tconst wr = this._localAnchor.z - value;\n\t\tthis._setWidth(wr - wl);\n\t\tp.x = this._localAnchor.z - this._localAnchor.x - value - this._calculatedWidth * (1 - this._pivot.x);\n\t\tthis.entity.setLocalPosition(p);\n\t}\n\tget right() {\n\t\treturn this._margin.z;\n\t}\n\tget screenCorners() {\n\t\tif (!this._cornersDirty || !this.screen) {\n\t\t\treturn this._screenCorners;\n\t\t}\n\t\tconst parentBottomLeft = this.entity.parent && this.entity.parent.element && this.entity.parent.element.screenCorners[0];\n\t\tthis._screenCorners[0].set(this._absLeft, this._absBottom, 0);\n\t\tthis._screenCorners[1].set(this._absRight, this._absBottom, 0);\n\t\tthis._screenCorners[2].set(this._absRight, this._absTop, 0);\n\t\tthis._screenCorners[3].set(this._absLeft, this._absTop, 0);\n\t\tconst screenSpace = this.screen.screen.screenSpace;\n\t\tfor (let i = 0; i < 4; i++) {\n\t\t\tthis._screenTransform.transformPoint(this._screenCorners[i], this._screenCorners[i]);\n\t\t\tif (screenSpace) {\n\t\t\t\tthis._screenCorners[i].mulScalar(this.screen.screen.scale);\n\t\t\t}\n\t\t\tif (parentBottomLeft) {\n\t\t\t\tthis._screenCorners[i].add(parentBottomLeft);\n\t\t\t}\n\t\t}\n\t\tthis._cornersDirty = false;\n\t\tthis._canvasCornersDirty = true;\n\t\tthis._worldCornersDirty = true;\n\t\treturn this._screenCorners;\n\t}\n\tget textWidth() {\n\t\treturn this._text ? this._text.width : 0;\n\t}\n\tget textHeight() {\n\t\treturn this._text ? this._text.height : 0;\n\t}\n\tset top(value) {\n\t\tthis._margin.w = value;\n\t\tconst p = this.entity.getLocalPosition();\n\t\tconst wb = this._absBottom;\n\t\tconst wt = this._localAnchor.w - value;\n\t\tthis._setHeight(wt - wb);\n\t\tp.y = this._localAnchor.w - this._localAnchor.y - value - this._calculatedHeight * (1 - this._pivot.y);\n\t\tthis.entity.setLocalPosition(p);\n\t}\n\tget top() {\n\t\treturn this._margin.w;\n\t}\n\tset type(value) {\n\t\tif (value !== this._type) {\n\t\t\tthis._type = value;\n\t\t\tif (this._image) {\n\t\t\t\tthis._image.destroy();\n\t\t\t\tthis._image = null;\n\t\t\t}\n\t\t\tif (this._text) {\n\t\t\t\tthis._text.destroy();\n\t\t\t\tthis._text = null;\n\t\t\t}\n\t\t\tif (value === ELEMENTTYPE_IMAGE) {\n\t\t\t\tthis._image = new ImageElement(this);\n\t\t\t} else if (value === ELEMENTTYPE_TEXT) {\n\t\t\t\tthis._text = new TextElement(this);\n\t\t\t}\n\t\t}\n\t}\n\tget type() {\n\t\treturn this._type;\n\t}\n\tset useInput(value) {\n\t\tif (this._useInput === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis._useInput = value;\n\t\tif (this.system.app.elementInput) {\n\t\t\tif (value) {\n\t\t\t\tif (this.enabled && this.entity.enabled) {\n\t\t\t\t\tthis.system.app.elementInput.addElement(this);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.system.app.elementInput.removeElement(this);\n\t\t\t}\n\t\t} else {\n\t\t\tif (this._useInput === true) ;\n\t\t}\n\t\tthis.fire('set:useInput', value);\n\t}\n\tget useInput() {\n\t\treturn this._useInput;\n\t}\n\tset fitMode(value) {\n\t\tthis._fitMode = value;\n\t\tthis._calculateSize(true, true);\n\t\tif (this._image) {\n\t\t\tthis._image.refreshMesh();\n\t\t}\n\t}\n\tget fitMode() {\n\t\treturn this._fitMode;\n\t}\n\tset width(value) {\n\t\tthis._width = value;\n\t\tif (!this._hasSplitAnchorsX) {\n\t\t\tthis._setCalculatedWidth(value, true);\n\t\t}\n\t\tthis.fire('set:width', this._width);\n\t}\n\tget width() {\n\t\treturn this._width;\n\t}\n\tget worldCorners() {\n\t\tif (!this._worldCornersDirty) {\n\t\t\treturn this._worldCorners;\n\t\t}\n\t\tif (this.screen) {\n\t\t\tconst screenCorners = this.screenCorners;\n\t\t\tif (!this.screen.screen.screenSpace) {\n\t\t\t\tmatA.copy(this.screen.screen._screenMatrix);\n\t\t\t\tmatA.data[13] = -matA.data[13];\n\t\t\t\tmatA.mul2(this.screen.getWorldTransform(), matA);\n\t\t\t\tfor (let i = 0; i < 4; i++) {\n\t\t\t\t\tmatA.transformPoint(screenCorners[i], this._worldCorners[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tconst localPos = this.entity.getLocalPosition();\n\t\t\tmatA.setTranslate(-localPos.x, -localPos.y, -localPos.z);\n\t\t\tmatB.setTRS(Vec3.ZERO, this.entity.getLocalRotation(), this.entity.getLocalScale());\n\t\t\tmatC.setTranslate(localPos.x, localPos.y, localPos.z);\n\t\t\tconst entity = this.entity.parent ? this.entity.parent : this.entity;\n\t\t\tmatD.copy(entity.getWorldTransform());\n\t\t\tmatD.mul(matC).mul(matB).mul(matA);\n\t\t\tvecA$2.set(localPos.x - this.pivot.x * this.calculatedWidth, localPos.y - this.pivot.y * this.calculatedHeight, localPos.z);\n\t\t\tmatD.transformPoint(vecA$2, this._worldCorners[0]);\n\t\t\tvecA$2.set(localPos.x + (1 - this.pivot.x) * this.calculatedWidth, localPos.y - this.pivot.y * this.calculatedHeight, localPos.z);\n\t\t\tmatD.transformPoint(vecA$2, this._worldCorners[1]);\n\t\t\tvecA$2.set(localPos.x + (1 - this.pivot.x) * this.calculatedWidth, localPos.y + (1 - this.pivot.y) * this.calculatedHeight, localPos.z);\n\t\t\tmatD.transformPoint(vecA$2, this._worldCorners[2]);\n\t\t\tvecA$2.set(localPos.x - this.pivot.x * this.calculatedWidth, localPos.y + (1 - this.pivot.y) * this.calculatedHeight, localPos.z);\n\t\t\tmatD.transformPoint(vecA$2, this._worldCorners[3]);\n\t\t}\n\t\tthis._worldCornersDirty = false;\n\t\treturn this._worldCorners;\n\t}\n\tset fontSize(arg) {\n\t\tthis._setValue('fontSize', arg);\n\t}\n\tget fontSize() {\n\t\tif (this._text) {\n\t\t\treturn this._text.fontSize;\n\t\t}\n\t\treturn null;\n\t}\n\tset minFontSize(arg) {\n\t\tthis._setValue('minFontSize', arg);\n\t}\n\tget minFontSize() {\n\t\tif (this._text) {\n\t\t\treturn this._text.minFontSize;\n\t\t}\n\t\treturn null;\n\t}\n\tset maxFontSize(arg) {\n\t\tthis._setValue('maxFontSize', arg);\n\t}\n\tget maxFontSize() {\n\t\tif (this._text) {\n\t\t\treturn this._text.maxFontSize;\n\t\t}\n\t\treturn null;\n\t}\n\tset maxLines(arg) {\n\t\tthis._setValue('maxLines', arg);\n\t}\n\tget maxLines() {\n\t\tif (this._text) {\n\t\t\treturn this._text.maxLines;\n\t\t}\n\t\treturn null;\n\t}\n\tset autoFitWidth(arg) {\n\t\tthis._setValue('autoFitWidth', arg);\n\t}\n\tget autoFitWidth() {\n\t\tif (this._text) {\n\t\t\treturn this._text.autoFitWidth;\n\t\t}\n\t\treturn null;\n\t}\n\tset autoFitHeight(arg) {\n\t\tthis._setValue('autoFitHeight', arg);\n\t}\n\tget autoFitHeight() {\n\t\tif (this._text) {\n\t\t\treturn this._text.autoFitHeight;\n\t\t}\n\t\treturn null;\n\t}\n\tset color(arg) {\n\t\tthis._setValue('color', arg);\n\t}\n\tget color() {\n\t\tif (this._text) {\n\t\t\treturn this._text.color;\n\t\t}\n\t\tif (this._image) {\n\t\t\treturn this._image.color;\n\t\t}\n\t\treturn null;\n\t}\n\tset font(arg) {\n\t\tthis._setValue('font', arg);\n\t}\n\tget font() {\n\t\tif (this._text) {\n\t\t\treturn this._text.font;\n\t\t}\n\t\treturn null;\n\t}\n\tset fontAsset(arg) {\n\t\tthis._setValue('fontAsset', arg);\n\t}\n\tget fontAsset() {\n\t\tif (this._text && typeof this._text.fontAsset === 'number') {\n\t\t\treturn this._text.fontAsset;\n\t\t}\n\t\treturn null;\n\t}\n\tset spacing(arg) {\n\t\tthis._setValue('spacing', arg);\n\t}\n\tget spacing() {\n\t\tif (this._text) {\n\t\t\treturn this._text.spacing;\n\t\t}\n\t\treturn null;\n\t}\n\tset lineHeight(arg) {\n\t\tthis._setValue('lineHeight', arg);\n\t}\n\tget lineHeight() {\n\t\tif (this._text) {\n\t\t\treturn this._text.lineHeight;\n\t\t}\n\t\treturn null;\n\t}\n\tset wrapLines(arg) {\n\t\tthis._setValue('wrapLines', arg);\n\t}\n\tget wrapLines() {\n\t\tif (this._text) {\n\t\t\treturn this._text.wrapLines;\n\t\t}\n\t\treturn null;\n\t}\n\tset lines(arg) {\n\t\tthis._setValue('lines', arg);\n\t}\n\tget lines() {\n\t\tif (this._text) {\n\t\t\treturn this._text.lines;\n\t\t}\n\t\treturn null;\n\t}\n\tset alignment(arg) {\n\t\tthis._setValue('alignment', arg);\n\t}\n\tget alignment() {\n\t\tif (this._text) {\n\t\t\treturn this._text.alignment;\n\t\t}\n\t\treturn null;\n\t}\n\tset autoWidth(arg) {\n\t\tthis._setValue('autoWidth', arg);\n\t}\n\tget autoWidth() {\n\t\tif (this._text) {\n\t\t\treturn this._text.autoWidth;\n\t\t}\n\t\treturn null;\n\t}\n\tset autoHeight(arg) {\n\t\tthis._setValue('autoHeight', arg);\n\t}\n\tget autoHeight() {\n\t\tif (this._text) {\n\t\t\treturn this._text.autoHeight;\n\t\t}\n\t\treturn null;\n\t}\n\tset rtlReorder(arg) {\n\t\tthis._setValue('rtlReorder', arg);\n\t}\n\tget rtlReorder() {\n\t\tif (this._text) {\n\t\t\treturn this._text.rtlReorder;\n\t\t}\n\t\treturn null;\n\t}\n\tset unicodeConverter(arg) {\n\t\tthis._setValue('unicodeConverter', arg);\n\t}\n\tget unicodeConverter() {\n\t\tif (this._text) {\n\t\t\treturn this._text.unicodeConverter;\n\t\t}\n\t\treturn null;\n\t}\n\tset text(arg) {\n\t\tthis._setValue('text', arg);\n\t}\n\tget text() {\n\t\tif (this._text) {\n\t\t\treturn this._text.text;\n\t\t}\n\t\treturn null;\n\t}\n\tset key(arg) {\n\t\tthis._setValue('key', arg);\n\t}\n\tget key() {\n\t\tif (this._text) {\n\t\t\treturn this._text.key;\n\t\t}\n\t\treturn null;\n\t}\n\tset texture(arg) {\n\t\tthis._setValue('texture', arg);\n\t}\n\tget texture() {\n\t\tif (this._image) {\n\t\t\treturn this._image.texture;\n\t\t}\n\t\treturn null;\n\t}\n\tset textureAsset(arg) {\n\t\tthis._setValue('textureAsset', arg);\n\t}\n\tget textureAsset() {\n\t\tif (this._image) {\n\t\t\treturn this._image.textureAsset;\n\t\t}\n\t\treturn null;\n\t}\n\tset material(arg) {\n\t\tthis._setValue('material', arg);\n\t}\n\tget material() {\n\t\tif (this._image) {\n\t\t\treturn this._image.material;\n\t\t}\n\t\treturn null;\n\t}\n\tset materialAsset(arg) {\n\t\tthis._setValue('materialAsset', arg);\n\t}\n\tget materialAsset() {\n\t\tif (this._image) {\n\t\t\treturn this._image.materialAsset;\n\t\t}\n\t\treturn null;\n\t}\n\tset sprite(arg) {\n\t\tthis._setValue('sprite', arg);\n\t}\n\tget sprite() {\n\t\tif (this._image) {\n\t\t\treturn this._image.sprite;\n\t\t}\n\t\treturn null;\n\t}\n\tset spriteAsset(arg) {\n\t\tthis._setValue('spriteAsset', arg);\n\t}\n\tget spriteAsset() {\n\t\tif (this._image) {\n\t\t\treturn this._image.spriteAsset;\n\t\t}\n\t\treturn null;\n\t}\n\tset spriteFrame(arg) {\n\t\tthis._setValue('spriteFrame', arg);\n\t}\n\tget spriteFrame() {\n\t\tif (this._image) {\n\t\t\treturn this._image.spriteFrame;\n\t\t}\n\t\treturn null;\n\t}\n\tset pixelsPerUnit(arg) {\n\t\tthis._setValue('pixelsPerUnit', arg);\n\t}\n\tget pixelsPerUnit() {\n\t\tif (this._image) {\n\t\t\treturn this._image.pixelsPerUnit;\n\t\t}\n\t\treturn null;\n\t}\n\tset opacity(arg) {\n\t\tthis._setValue('opacity', arg);\n\t}\n\tget opacity() {\n\t\tif (this._text) {\n\t\t\treturn this._text.opacity;\n\t\t}\n\t\tif (this._image) {\n\t\t\treturn this._image.opacity;\n\t\t}\n\t\treturn null;\n\t}\n\tset rect(arg) {\n\t\tthis._setValue('rect', arg);\n\t}\n\tget rect() {\n\t\tif (this._image) {\n\t\t\treturn this._image.rect;\n\t\t}\n\t\treturn null;\n\t}\n\tset mask(arg) {\n\t\tthis._setValue('mask', arg);\n\t}\n\tget mask() {\n\t\tif (this._image) {\n\t\t\treturn this._image.mask;\n\t\t}\n\t\treturn null;\n\t}\n\tset outlineColor(arg) {\n\t\tthis._setValue('outlineColor', arg);\n\t}\n\tget outlineColor() {\n\t\tif (this._text) {\n\t\t\treturn this._text.outlineColor;\n\t\t}\n\t\treturn null;\n\t}\n\tset outlineThickness(arg) {\n\t\tthis._setValue('outlineThickness', arg);\n\t}\n\tget outlineThickness() {\n\t\tif (this._text) {\n\t\t\treturn this._text.outlineThickness;\n\t\t}\n\t\treturn null;\n\t}\n\tset shadowColor(arg) {\n\t\tthis._setValue('shadowColor', arg);\n\t}\n\tget shadowColor() {\n\t\tif (this._text) {\n\t\t\treturn this._text.shadowColor;\n\t\t}\n\t\treturn null;\n\t}\n\tset shadowOffset(arg) {\n\t\tthis._setValue('shadowOffset', arg);\n\t}\n\tget shadowOffset() {\n\t\tif (this._text) {\n\t\t\treturn this._text.shadowOffset;\n\t\t}\n\t\treturn null;\n\t}\n\tset enableMarkup(arg) {\n\t\tthis._setValue('enableMarkup', arg);\n\t}\n\tget enableMarkup() {\n\t\tif (this._text) {\n\t\t\treturn this._text.enableMarkup;\n\t\t}\n\t\treturn null;\n\t}\n\tset rangeStart(arg) {\n\t\tthis._setValue('rangeStart', arg);\n\t}\n\tget rangeStart() {\n\t\tif (this._text) {\n\t\t\treturn this._text.rangeStart;\n\t\t}\n\t\treturn null;\n\t}\n\tset rangeEnd(arg) {\n\t\tthis._setValue('rangeEnd', arg);\n\t}\n\tget rangeEnd() {\n\t\tif (this._text) {\n\t\t\treturn this._text.rangeEnd;\n\t\t}\n\t\treturn null;\n\t}\n\t_setValue(name, value) {\n\t\tif (this._text) {\n\t\t\tif (this._text[name] !== value) {\n\t\t\t\tthis._dirtyBatch();\n\t\t\t}\n\t\t\tthis._text[name] = value;\n\t\t} else if (this._image) {\n\t\t\tif (this._image[name] !== value) {\n\t\t\t\tthis._dirtyBatch();\n\t\t\t}\n\t\t\tthis._image[name] = value;\n\t\t}\n\t}\n\t_patch() {\n\t\tthis.entity._sync = this._sync;\n\t\tthis.entity.setPosition = this._setPosition;\n\t\tthis.entity.setLocalPosition = this._setLocalPosition;\n\t}\n\t_unpatch() {\n\t\tthis.entity._sync = Entity.prototype._sync;\n\t\tthis.entity.setPosition = Entity.prototype.setPosition;\n\t\tthis.entity.setLocalPosition = Entity.prototype.setLocalPosition;\n\t}\n\t_setPosition(x, y, z) {\n\t\tif (!this.element.screen) {\n\t\t\tEntity.prototype.setPosition.call(this, x, y, z);\n\t\t\treturn;\n\t\t}\n\t\tif (x instanceof Vec3) {\n\t\t\tposition.copy(x);\n\t\t} else {\n\t\t\tposition.set(x, y, z);\n\t\t}\n\t\tthis.getWorldTransform();\n\t\tinvParentWtm.copy(this.element._screenToWorld).invert();\n\t\tinvParentWtm.transformPoint(position, this.localPosition);\n\t\tif (!this._dirtyLocal) {\n\t\t\tthis._dirtifyLocal();\n\t\t}\n\t}\n\t_setLocalPosition(x, y, z) {\n\t\tif (x instanceof Vec3) {\n\t\t\tthis.localPosition.copy(x);\n\t\t} else {\n\t\t\tthis.localPosition.set(x, y, z);\n\t\t}\n\t\tconst element = this.element;\n\t\tconst p = this.localPosition;\n\t\tconst pvt = element._pivot;\n\t\telement._margin.x = p.x - element._calculatedWidth * pvt.x;\n\t\telement._margin.z = element._localAnchor.z - element._localAnchor.x - element._calculatedWidth - element._margin.x;\n\t\telement._margin.y = p.y - element._calculatedHeight * pvt.y;\n\t\telement._margin.w = element._localAnchor.w - element._localAnchor.y - element._calculatedHeight - element._margin.y;\n\t\tif (!this._dirtyLocal) {\n\t\t\tthis._dirtifyLocal();\n\t\t}\n\t}\n\t_sync() {\n\t\tconst element = this.element;\n\t\tconst screen = element.screen;\n\t\tif (screen) {\n\t\t\tif (element._anchorDirty) {\n\t\t\t\tlet resx = 0;\n\t\t\t\tlet resy = 0;\n\t\t\t\tlet px = 0;\n\t\t\t\tlet py = 1;\n\t\t\t\tif (this._parent && this._parent.element) {\n\t\t\t\t\tresx = this._parent.element.calculatedWidth;\n\t\t\t\t\tresy = this._parent.element.calculatedHeight;\n\t\t\t\t\tpx = this._parent.element.pivot.x;\n\t\t\t\t\tpy = this._parent.element.pivot.y;\n\t\t\t\t} else {\n\t\t\t\t\tconst resolution = screen.screen.resolution;\n\t\t\t\t\tresx = resolution.x / screen.screen.scale;\n\t\t\t\t\tresy = resolution.y / screen.screen.scale;\n\t\t\t\t}\n\t\t\t\telement._anchorTransform.setTranslate(resx * (element.anchor.x - px), -(resy * (py - element.anchor.y)), 0);\n\t\t\t\telement._anchorDirty = false;\n\t\t\t\telement._calculateLocalAnchors();\n\t\t\t}\n\t\t\tif (element._sizeDirty) {\n\t\t\t\telement._calculateSize(false, false);\n\t\t\t}\n\t\t}\n\t\tif (this._dirtyLocal) {\n\t\t\tthis.localTransform.setTRS(this.localPosition, this.localRotation, this.localScale);\n\t\t\tconst p = this.localPosition;\n\t\t\tconst pvt = element._pivot;\n\t\t\telement._margin.x = p.x - element._calculatedWidth * pvt.x;\n\t\t\telement._margin.z = element._localAnchor.z - element._localAnchor.x - element._calculatedWidth - element._margin.x;\n\t\t\telement._margin.y = p.y - element._calculatedHeight * pvt.y;\n\t\t\telement._margin.w = element._localAnchor.w - element._localAnchor.y - element._calculatedHeight - element._margin.y;\n\t\t\tthis._dirtyLocal = false;\n\t\t}\n\t\tif (!screen) {\n\t\t\tif (this._dirtyWorld) {\n\t\t\t\telement._cornersDirty = true;\n\t\t\t\telement._canvasCornersDirty = true;\n\t\t\t\telement._worldCornersDirty = true;\n\t\t\t}\n\t\t\tEntity.prototype._sync.call(this);\n\t\t\treturn;\n\t\t}\n\t\tif (this._dirtyWorld) {\n\t\t\tif (this._parent === null) {\n\t\t\t\tthis.worldTransform.copy(this.localTransform);\n\t\t\t} else {\n\t\t\t\tif (this._parent.element) {\n\t\t\t\t\telement._screenToWorld.mul2(this._parent.element._modelTransform, element._anchorTransform);\n\t\t\t\t} else {\n\t\t\t\t\telement._screenToWorld.copy(element._anchorTransform);\n\t\t\t\t}\n\t\t\t\telement._modelTransform.mul2(element._screenToWorld, this.localTransform);\n\t\t\t\tif (screen) {\n\t\t\t\t\telement._screenToWorld.mul2(screen.screen._screenMatrix, element._screenToWorld);\n\t\t\t\t\tif (!screen.screen.screenSpace) {\n\t\t\t\t\t\telement._screenToWorld.mul2(screen.worldTransform, element._screenToWorld);\n\t\t\t\t\t}\n\t\t\t\t\tthis.worldTransform.mul2(element._screenToWorld, this.localTransform);\n\t\t\t\t\tconst parentWorldTransform = element._parentWorldTransform;\n\t\t\t\t\tparentWorldTransform.setIdentity();\n\t\t\t\t\tconst parent = this._parent;\n\t\t\t\t\tif (parent && parent.element && parent !== screen) {\n\t\t\t\t\t\tmatA.setTRS(Vec3.ZERO, parent.getLocalRotation(), parent.getLocalScale());\n\t\t\t\t\t\tparentWorldTransform.mul2(parent.element._parentWorldTransform, matA);\n\t\t\t\t\t}\n\t\t\t\t\tconst depthOffset = vecA$2;\n\t\t\t\t\tdepthOffset.set(0, 0, this.localPosition.z);\n\t\t\t\t\tconst pivotOffset = vecB$2;\n\t\t\t\t\tpivotOffset.set(element._absLeft + element._pivot.x * element.calculatedWidth, element._absBottom + element._pivot.y * element.calculatedHeight, 0);\n\t\t\t\t\tmatA.setTranslate(-pivotOffset.x, -pivotOffset.y, -pivotOffset.z);\n\t\t\t\t\tmatB.setTRS(depthOffset, this.getLocalRotation(), this.getLocalScale());\n\t\t\t\t\tmatC.setTranslate(pivotOffset.x, pivotOffset.y, pivotOffset.z);\n\t\t\t\t\telement._screenTransform.mul2(element._parentWorldTransform, matC).mul(matB).mul(matA);\n\t\t\t\t\telement._cornersDirty = true;\n\t\t\t\t\telement._canvasCornersDirty = true;\n\t\t\t\t\telement._worldCornersDirty = true;\n\t\t\t\t} else {\n\t\t\t\t\tthis.worldTransform.copy(element._modelTransform);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._dirtyWorld = false;\n\t\t}\n\t}\n\t_onInsert(parent) {\n\t\tconst result = this._parseUpToScreen();\n\t\tthis.entity._dirtifyWorld();\n\t\tthis._updateScreen(result.screen);\n\t\tthis._dirtifyMask();\n\t}\n\t_dirtifyMask() {\n\t\tlet current = this.entity;\n\t\twhile (current) {\n\t\t\tconst next = current.parent;\n\t\t\tif ((next === null || next.screen) && current.element) {\n\t\t\t\tif (!this.system._prerender || !this.system._prerender.length) {\n\t\t\t\t\tthis.system._prerender = [];\n\t\t\t\t\tthis.system.app.once('prerender', this._onPrerender, this);\n\t\t\t\t}\n\t\t\t\tconst i = this.system._prerender.indexOf(this.entity);\n\t\t\t\tif (i >= 0) {\n\t\t\t\t\tthis.system._prerender.splice(i, 1);\n\t\t\t\t}\n\t\t\t\tconst j = this.system._prerender.indexOf(current);\n\t\t\t\tif (j < 0) {\n\t\t\t\t\tthis.system._prerender.push(current);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcurrent = next;\n\t\t}\n\t}\n\t_onPrerender() {\n\t\tfor (let i = 0; i < this.system._prerender.length; i++) {\n\t\t\tconst mask = this.system._prerender[i];\n\t\t\tif (mask.element) {\n\t\t\t\tconst depth = 1;\n\t\t\t\tmask.element.syncMask(depth);\n\t\t\t}\n\t\t}\n\t\tthis.system._prerender.length = 0;\n\t}\n\t_bindScreen(screen) {\n\t\tscreen._bindElement(this);\n\t}\n\t_unbindScreen(screen) {\n\t\tscreen._unbindElement(this);\n\t}\n\t_updateScreen(screen) {\n\t\tif (this.screen && this.screen !== screen) {\n\t\t\tthis._unbindScreen(this.screen.screen);\n\t\t}\n\t\tconst previousScreen = this.screen;\n\t\tthis.screen = screen;\n\t\tif (this.screen) {\n\t\t\tthis._bindScreen(this.screen.screen);\n\t\t}\n\t\tthis._calculateSize(this._hasSplitAnchorsX, this._hasSplitAnchorsY);\n\t\tthis.fire('set:screen', this.screen, previousScreen);\n\t\tthis._anchorDirty = true;\n\t\tconst children = this.entity.children;\n\t\tfor (let i = 0, l = children.length; i < l; i++) {\n\t\t\tif (children[i].element) {\n\t\t\t\tchildren[i].element._updateScreen(screen);\n\t\t\t}\n\t\t}\n\t\tif (this.screen) {\n\t\t\tthis.screen.screen.syncDrawOrder();\n\t\t}\n\t}\n\tsyncMask(depth) {\n\t\tconst result = this._parseUpToScreen();\n\t\tthis._updateMask(result.mask, depth);\n\t}\n\t_setMaskedBy(mask) {\n\t\tconst renderableElement = this._image || this._text;\n\t\tif (mask) {\n\t\t\tconst ref = mask.element._image._maskRef;\n\t\t\trenderableElement == null || renderableElement._setStencil(new StencilParameters({\n\t\t\t\tref: ref,\n\t\t\t\tfunc: FUNC_EQUAL\n\t\t\t}));\n\t\t\tthis._maskedBy = mask;\n\t\t} else {\n\t\t\trenderableElement == null || renderableElement._setStencil(null);\n\t\t\tthis._maskedBy = null;\n\t\t}\n\t}\n\t_updateMask(currentMask, depth) {\n\t\tif (currentMask) {\n\t\t\tthis._setMaskedBy(currentMask);\n\t\t\tif (this.mask) {\n\t\t\t\tconst ref = currentMask.element._image._maskRef;\n\t\t\t\tconst sp = new StencilParameters({\n\t\t\t\t\tref: ref,\n\t\t\t\t\tfunc: FUNC_EQUAL,\n\t\t\t\t\tzpass: STENCILOP_INCREMENT\n\t\t\t\t});\n\t\t\t\tthis._image._setStencil(sp);\n\t\t\t\tthis._image._maskRef = depth;\n\t\t\t\tdepth++;\n\t\t\t\tcurrentMask = this.entity;\n\t\t\t}\n\t\t\tconst children = this.entity.children;\n\t\t\tfor (let i = 0, l = children.length; i < l; i++) {\n\t\t\t\tvar _children$i$element;\n\t\t\t\t(_children$i$element = children[i].element) == null || _children$i$element._updateMask(currentMask, depth);\n\t\t\t}\n\t\t\tif (this.mask) depth--;\n\t\t} else {\n\t\t\tthis._setMaskedBy(null);\n\t\t\tif (this.mask) {\n\t\t\t\tconst sp = new StencilParameters({\n\t\t\t\t\tref: depth,\n\t\t\t\t\tfunc: FUNC_ALWAYS,\n\t\t\t\t\tzpass: STENCILOP_REPLACE\n\t\t\t\t});\n\t\t\t\tthis._image._setStencil(sp);\n\t\t\t\tthis._image._maskRef = depth;\n\t\t\t\tdepth++;\n\t\t\t\tcurrentMask = this.entity;\n\t\t\t}\n\t\t\tconst children = this.entity.children;\n\t\t\tfor (let i = 0, l = children.length; i < l; i++) {\n\t\t\t\tvar _children$i$element2;\n\t\t\t\t(_children$i$element2 = children[i].element) == null || _children$i$element2._updateMask(currentMask, depth);\n\t\t\t}\n\t\t\tif (this.mask) {\n\t\t\t\tdepth--;\n\t\t\t}\n\t\t}\n\t}\n\t_parseUpToScreen() {\n\t\tconst result = {\n\t\t\tscreen: null,\n\t\t\tmask: null\n\t\t};\n\t\tlet parent = this.entity._parent;\n\t\twhile (parent && !parent.screen) {\n\t\t\tif (parent.element && parent.element.mask) {\n\t\t\t\tif (!result.mask) result.mask = parent;\n\t\t\t}\n\t\t\tparent = parent.parent;\n\t\t}\n\t\tif (parent && parent.screen) {\n\t\t\tresult.screen = parent;\n\t\t}\n\t\treturn result;\n\t}\n\t_onScreenResize(res) {\n\t\tthis._anchorDirty = true;\n\t\tthis._cornersDirty = true;\n\t\tthis._worldCornersDirty = true;\n\t\tthis._calculateSize(this._hasSplitAnchorsX, this._hasSplitAnchorsY);\n\t\tthis.fire('screen:set:resolution', res);\n\t}\n\t_onScreenSpaceChange() {\n\t\tthis.fire('screen:set:screenspace', this.screen.screen.screenSpace);\n\t}\n\t_onScreenRemove() {\n\t\tif (this.screen) {\n\t\t\tif (this.screen._destroying) {\n\t\t\t\tthis.screen = null;\n\t\t\t} else {\n\t\t\t\tthis._updateScreen(null);\n\t\t\t}\n\t\t}\n\t}\n\t_calculateLocalAnchors() {\n\t\tlet resx = 1000;\n\t\tlet resy = 1000;\n\t\tconst parent = this.entity._parent;\n\t\tif (parent && parent.element) {\n\t\t\tresx = parent.element.calculatedWidth;\n\t\t\tresy = parent.element.calculatedHeight;\n\t\t} else if (this.screen) {\n\t\t\tconst res = this.screen.screen.resolution;\n\t\t\tconst scale = this.screen.screen.scale;\n\t\t\tresx = res.x / scale;\n\t\t\tresy = res.y / scale;\n\t\t}\n\t\tthis._localAnchor.set(this._anchor.x * resx, this._anchor.y * resy, this._anchor.z * resx, this._anchor.w * resy);\n\t}\n\tgetOffsetPosition(x, y) {\n\t\tconst p = this.entity.getLocalPosition().clone();\n\t\tp.x += x;\n\t\tp.y += y;\n\t\tthis._screenToWorld.transformPoint(p, p);\n\t\treturn p;\n\t}\n\tonLayersChanged(oldComp, newComp) {\n\t\tthis.addModelToLayers(this._image ? this._image._renderable.model : this._text._model);\n\t\toldComp.off('add', this.onLayerAdded, this);\n\t\toldComp.off('remove', this.onLayerRemoved, this);\n\t\tnewComp.on('add', this.onLayerAdded, this);\n\t\tnewComp.on('remove', this.onLayerRemoved, this);\n\t}\n\tonLayerAdded(layer) {\n\t\tconst index = this.layers.indexOf(layer.id);\n\t\tif (index < 0) return;\n\t\tif (this._image) {\n\t\t\tlayer.addMeshInstances(this._image._renderable.model.meshInstances);\n\t\t} else if (this._text) {\n\t\t\tlayer.addMeshInstances(this._text._model.meshInstances);\n\t\t}\n\t}\n\tonLayerRemoved(layer) {\n\t\tconst index = this.layers.indexOf(layer.id);\n\t\tif (index < 0) return;\n\t\tif (this._image) {\n\t\t\tlayer.removeMeshInstances(this._image._renderable.model.meshInstances);\n\t\t} else if (this._text) {\n\t\t\tlayer.removeMeshInstances(this._text._model.meshInstances);\n\t\t}\n\t}\n\tonEnable() {\n\t\tconst scene = this.system.app.scene;\n\t\tconst layers = scene.layers;\n\t\tif (this._image) {\n\t\t\tthis._image.onEnable();\n\t\t}\n\t\tif (this._text) {\n\t\t\tthis._text.onEnable();\n\t\t}\n\t\tif (this._group) {\n\t\t\tthis._group.onEnable();\n\t\t}\n\t\tif (this.useInput && this.system.app.elementInput) {\n\t\t\tthis.system.app.elementInput.addElement(this);\n\t\t}\n\t\tthis._evtLayersChanged = scene.on('set:layers', this.onLayersChanged, this);\n\t\tif (layers) {\n\t\t\tthis._evtLayerAdded = layers.on('add', this.onLayerAdded, this);\n\t\t\tthis._evtLayerRemoved = layers.on('remove', this.onLayerRemoved, this);\n\t\t}\n\t\tif (this._batchGroupId >= 0) {\n\t\t\tvar _this$system$app$batc3;\n\t\t\t(_this$system$app$batc3 = this.system.app.batcher) == null || _this$system$app$batc3.insert(BatchGroup.ELEMENT, this.batchGroupId, this.entity);\n\t\t}\n\t\tthis.fire('enableelement');\n\t}\n\tonDisable() {\n\t\tvar _this$_evtLayersChang;\n\t\tconst scene = this.system.app.scene;\n\t\tconst layers = scene.layers;\n\t\t(_this$_evtLayersChang = this._evtLayersChanged) == null || _this$_evtLayersChang.off();\n\t\tthis._evtLayersChanged = null;\n\t\tif (layers) {\n\t\t\tvar _this$_evtLayerAdded, _this$_evtLayerRemove;\n\t\t\t(_this$_evtLayerAdded = this._evtLayerAdded) == null || _this$_evtLayerAdded.off();\n\t\t\tthis._evtLayerAdded = null;\n\t\t\t(_this$_evtLayerRemove = this._evtLayerRemoved) == null || _this$_evtLayerRemove.off();\n\t\t\tthis._evtLayerRemoved = null;\n\t\t}\n\t\tif (this._image) this._image.onDisable();\n\t\tif (this._text) this._text.onDisable();\n\t\tif (this._group) this._group.onDisable();\n\t\tif (this.system.app.elementInput && this.useInput) {\n\t\t\tthis.system.app.elementInput.removeElement(this);\n\t\t}\n\t\tif (this._batchGroupId >= 0) {\n\t\t\tvar _this$system$app$batc4;\n\t\t\t(_this$system$app$batc4 = this.system.app.batcher) == null || _this$system$app$batc4.remove(BatchGroup.ELEMENT, this.batchGroupId, this.entity);\n\t\t}\n\t\tthis.fire('disableelement');\n\t}\n\tonRemove() {\n\t\tthis.entity.off('insert', this._onInsert, this);\n\t\tthis._unpatch();\n\t\tif (this._image) {\n\t\t\tthis._image.destroy();\n\t\t}\n\t\tif (this._text) {\n\t\t\tthis._text.destroy();\n\t\t}\n\t\tif (this.system.app.elementInput && this.useInput) {\n\t\t\tthis.system.app.elementInput.removeElement(this);\n\t\t}\n\t\tif (this.screen && this.screen.screen) {\n\t\t\tthis._unbindScreen(this.screen.screen);\n\t\t\tthis.screen.screen.syncDrawOrder();\n\t\t}\n\t\tthis.off();\n\t}\n\t_calculateSize(propagateCalculatedWidth, propagateCalculatedHeight) {\n\t\tif (!this.entity._parent && !this.screen) {\n\t\t\treturn;\n\t\t}\n\t\tthis._calculateLocalAnchors();\n\t\tconst newWidth = this._absRight - this._absLeft;\n\t\tconst newHeight = this._absTop - this._absBottom;\n\t\tif (propagateCalculatedWidth) {\n\t\t\tthis._setWidth(newWidth);\n\t\t} else {\n\t\t\tthis._setCalculatedWidth(newWidth, false);\n\t\t}\n\t\tif (propagateCalculatedHeight) {\n\t\t\tthis._setHeight(newHeight);\n\t\t} else {\n\t\t\tthis._setCalculatedHeight(newHeight, false);\n\t\t}\n\t\tconst p = this.entity.getLocalPosition();\n\t\tp.x = this._margin.x + this._calculatedWidth * this._pivot.x;\n\t\tp.y = this._margin.y + this._calculatedHeight * this._pivot.y;\n\t\tthis.entity.setLocalPosition(p);\n\t\tthis._sizeDirty = false;\n\t}\n\t_setWidth(w) {\n\t\tthis._width = w;\n\t\tthis._setCalculatedWidth(w, false);\n\t\tthis.fire('set:width', this._width);\n\t}\n\t_setHeight(h) {\n\t\tthis._height = h;\n\t\tthis._setCalculatedHeight(h, false);\n\t\tthis.fire('set:height', this._height);\n\t}\n\t_setCalculatedWidth(value, updateMargins) {\n\t\tif (Math.abs(value - this._calculatedWidth) <= 1e-4) {\n\t\t\treturn;\n\t\t}\n\t\tthis._calculatedWidth = value;\n\t\tthis.entity._dirtifyLocal();\n\t\tif (updateMargins) {\n\t\t\tconst p = this.entity.getLocalPosition();\n\t\t\tconst pvt = this._pivot;\n\t\t\tthis._margin.x = p.x - this._calculatedWidth * pvt.x;\n\t\t\tthis._margin.z = this._localAnchor.z - this._localAnchor.x - this._calculatedWidth - this._margin.x;\n\t\t}\n\t\tthis._flagChildrenAsDirty();\n\t\tthis.fire('set:calculatedWidth', this._calculatedWidth);\n\t\tthis.fire('resize', this._calculatedWidth, this._calculatedHeight);\n\t}\n\t_setCalculatedHeight(value, updateMargins) {\n\t\tif (Math.abs(value - this._calculatedHeight) <= 1e-4) {\n\t\t\treturn;\n\t\t}\n\t\tthis._calculatedHeight = value;\n\t\tthis.entity._dirtifyLocal();\n\t\tif (updateMargins) {\n\t\t\tconst p = this.entity.getLocalPosition();\n\t\t\tconst pvt = this._pivot;\n\t\t\tthis._margin.y = p.y - this._calculatedHeight * pvt.y;\n\t\t\tthis._margin.w = this._localAnchor.w - this._localAnchor.y - this._calculatedHeight - this._margin.y;\n\t\t}\n\t\tthis._flagChildrenAsDirty();\n\t\tthis.fire('set:calculatedHeight', this._calculatedHeight);\n\t\tthis.fire('resize', this._calculatedWidth, this._calculatedHeight);\n\t}\n\t_flagChildrenAsDirty() {\n\t\tconst c = this.entity._children;\n\t\tfor (let i = 0, l = c.length; i < l; i++) {\n\t\t\tif (c[i].element) {\n\t\t\t\tc[i].element._anchorDirty = true;\n\t\t\t\tc[i].element._sizeDirty = true;\n\t\t\t}\n\t\t}\n\t}\n\taddModelToLayers(model) {\n\t\tthis._addedModels.push(model);\n\t\tfor (let i = 0; i < this.layers.length; i++) {\n\t\t\tconst layer = this.system.app.scene.layers.getLayerById(this.layers[i]);\n\t\t\tif (!layer) continue;\n\t\t\tlayer.addMeshInstances(model.meshInstances);\n\t\t}\n\t}\n\tremoveModelFromLayers(model) {\n\t\tconst idx = this._addedModels.indexOf(model);\n\t\tif (idx >= 0) {\n\t\t\tthis._addedModels.splice(idx, 1);\n\t\t}\n\t\tfor (let i = 0; i < this.layers.length; i++) {\n\t\t\tconst layer = this.system.app.scene.layers.getLayerById(this.layers[i]);\n\t\t\tif (!layer) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlayer.removeMeshInstances(model.meshInstances);\n\t\t}\n\t}\n\tgetMaskOffset() {\n\t\tconst frame = this.system.app.frame;\n\t\tif (this._offsetReadAt !== frame) {\n\t\t\tthis._maskOffset = 0.5;\n\t\t\tthis._offsetReadAt = frame;\n\t\t}\n\t\tconst mo = this._maskOffset;\n\t\tthis._maskOffset -= 0.001;\n\t\treturn mo;\n\t}\n\tisVisibleForCamera(camera) {\n\t\tlet clipL, clipR, clipT, clipB;\n\t\tif (this.maskedBy) {\n\t\t\tconst corners = this.maskedBy.element.screenCorners;\n\t\t\tclipL = Math.min(Math.min(corners[0].x, corners[1].x), Math.min(corners[2].x, corners[3].x));\n\t\t\tclipR = Math.max(Math.max(corners[0].x, corners[1].x), Math.max(corners[2].x, corners[3].x));\n\t\t\tclipB = Math.min(Math.min(corners[0].y, corners[1].y), Math.min(corners[2].y, corners[3].y));\n\t\t\tclipT = Math.max(Math.max(corners[0].y, corners[1].y), Math.max(corners[2].y, corners[3].y));\n\t\t} else {\n\t\t\tconst sw = this.system.app.graphicsDevice.width;\n\t\t\tconst sh = this.system.app.graphicsDevice.height;\n\t\t\tconst cameraWidth = camera._rect.z * sw;\n\t\t\tconst cameraHeight = camera._rect.w * sh;\n\t\t\tclipL = camera._rect.x * sw;\n\t\t\tclipR = clipL + cameraWidth;\n\t\t\tclipT = (1 - camera._rect.y) * sh;\n\t\t\tclipB = clipT - cameraHeight;\n\t\t}\n\t\tconst hitCorners = this.screenCorners;\n\t\tconst left = Math.min(Math.min(hitCorners[0].x, hitCorners[1].x), Math.min(hitCorners[2].x, hitCorners[3].x));\n\t\tconst right = Math.max(Math.max(hitCorners[0].x, hitCorners[1].x), Math.max(hitCorners[2].x, hitCorners[3].x));\n\t\tconst bottom = Math.min(Math.min(hitCorners[0].y, hitCorners[1].y), Math.min(hitCorners[2].y, hitCorners[3].y));\n\t\tconst top = Math.max(Math.max(hitCorners[0].y, hitCorners[1].y), Math.max(hitCorners[2].y, hitCorners[3].y));\n\t\tif (right < clipL || left > clipR || bottom > clipT || top < clipB) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\t_isScreenSpace() {\n\t\tif (this.screen && this.screen.screen) {\n\t\t\treturn this.screen.screen.screenSpace;\n\t\t}\n\t\treturn false;\n\t}\n\t_isScreenCulled() {\n\t\tif (this.screen && this.screen.screen) {\n\t\t\treturn this.screen.screen.cull;\n\t\t}\n\t\treturn false;\n\t}\n\t_dirtyBatch() {\n\t\tif (this.batchGroupId !== -1) {\n\t\t\tvar _this$system$app$batc5;\n\t\t\t(_this$system$app$batc5 = this.system.app.batcher) == null || _this$system$app$batc5.markGroupDirty(this.batchGroupId);\n\t\t}\n\t}\n}\nElementComponent.EVENT_MOUSEDOWN = 'mousedown';\nElementComponent.EVENT_MOUSEUP = 'mouseup';\nElementComponent.EVENT_MOUSEENTER = 'mouseenter';\nElementComponent.EVENT_MOUSELEAVE = 'mouseleave';\nElementComponent.EVENT_MOUSEMOVE = 'mousemove';\nElementComponent.EVENT_MOUSEWHEEL = 'mousewheel';\nElementComponent.EVENT_CLICK = 'click';\nElementComponent.EVENT_TOUCHSTART = 'touchstart';\nElementComponent.EVENT_TOUCHEND = 'touchend';\nElementComponent.EVENT_TOUCHMOVE = 'touchmove';\nElementComponent.EVENT_TOUCHCANCEL = 'touchcancel';\n\nclass ElementComponentData {\n\tconstructor() {\n\t\tthis.enabled = true;\n\t}\n}\n\nconst _schema$g = ['enabled'];\nclass ElementComponentSystem extends ComponentSystem {\n\tconstructor(app) {\n\t\tsuper(app);\n\t\tthis.id = 'element';\n\t\tthis.ComponentType = ElementComponent;\n\t\tthis.DataType = ElementComponentData;\n\t\tthis.schema = _schema$g;\n\t\tthis._unicodeConverter = null;\n\t\tthis._rtlReorder = null;\n\t\tthis._defaultTexture = new Texture(app.graphicsDevice, {\n\t\t\twidth: 1,\n\t\t\theight: 1,\n\t\t\tformat: PIXELFORMAT_RGBA8,\n\t\t\tname: 'element-system'\n\t\t});\n\t\tconst pixels = this._defaultTexture.lock();\n\t\tconst pixelData = new Uint8Array(4);\n\t\tpixelData[0] = 255.0;\n\t\tpixelData[1] = 255.0;\n\t\tpixelData[2] = 255.0;\n\t\tpixelData[3] = 255.0;\n\t\tpixels.set(pixelData);\n\t\tthis._defaultTexture.unlock();\n\t\tthis.defaultImageMaterial = null;\n\t\tthis.defaultImage9SlicedMaterial = null;\n\t\tthis.defaultImage9TiledMaterial = null;\n\t\tthis.defaultImageMaskMaterial = null;\n\t\tthis.defaultImage9SlicedMaskMaterial = null;\n\t\tthis.defaultImage9TiledMaskMaterial = null;\n\t\tthis.defaultScreenSpaceImageMaterial = null;\n\t\tthis.defaultScreenSpaceImage9SlicedMaterial = null;\n\t\tthis.defaultScreenSpaceImage9TiledMaterial = null;\n\t\tthis.defaultScreenSpaceImageMask9SlicedMaterial = null;\n\t\tthis.defaultScreenSpaceImageMask9TiledMaterial = null;\n\t\tthis.defaultScreenSpaceImageMaskMaterial = null;\n\t\tthis._defaultTextMaterials = {};\n\t\tthis.defaultImageMaterials = [];\n\t\tthis.on('add', this.onAddComponent, this);\n\t\tthis.on('beforeremove', this.onRemoveComponent, this);\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis._defaultTexture.destroy();\n\t}\n\tinitializeComponentData(component, data, properties) {\n\t\tcomponent._beingInitialized = true;\n\t\tif (data.anchor !== undefined) {\n\t\t\tif (data.anchor instanceof Vec4) {\n\t\t\t\tcomponent.anchor.copy(data.anchor);\n\t\t\t} else {\n\t\t\t\tcomponent.anchor.set(data.anchor[0], data.anchor[1], data.anchor[2], data.anchor[3]);\n\t\t\t}\n\t\t}\n\t\tif (data.pivot !== undefined) {\n\t\t\tif (data.pivot instanceof Vec2) {\n\t\t\t\tcomponent.pivot.copy(data.pivot);\n\t\t\t} else {\n\t\t\t\tcomponent.pivot.set(data.pivot[0], data.pivot[1]);\n\t\t\t}\n\t\t}\n\t\tconst splitHorAnchors = Math.abs(component.anchor.x - component.anchor.z) > 0.001;\n\t\tconst splitVerAnchors = Math.abs(component.anchor.y - component.anchor.w) > 0.001;\n\t\tlet _marginChange = false;\n\t\tlet color;\n\t\tif (data.margin !== undefined) {\n\t\t\tif (data.margin instanceof Vec4) {\n\t\t\t\tcomponent.margin.copy(data.margin);\n\t\t\t} else {\n\t\t\t\tcomponent._margin.set(data.margin[0], data.margin[1], data.margin[2], data.margin[3]);\n\t\t\t}\n\t\t\t_marginChange = true;\n\t\t}\n\t\tif (data.left !== undefined) {\n\t\t\tcomponent._margin.x = data.left;\n\t\t\t_marginChange = true;\n\t\t}\n\t\tif (data.bottom !== undefined) {\n\t\t\tcomponent._margin.y = data.bottom;\n\t\t\t_marginChange = true;\n\t\t}\n\t\tif (data.right !== undefined) {\n\t\t\tcomponent._margin.z = data.right;\n\t\t\t_marginChange = true;\n\t\t}\n\t\tif (data.top !== undefined) {\n\t\t\tcomponent._margin.w = data.top;\n\t\t\t_marginChange = true;\n\t\t}\n\t\tif (_marginChange) {\n\t\t\tcomponent.margin = component._margin;\n\t\t}\n\t\tlet shouldForceSetAnchor = false;\n\t\tif (data.width !== undefined && !splitHorAnchors) {\n\t\t\tcomponent.width = data.width;\n\t\t} else if (splitHorAnchors) {\n\t\t\tshouldForceSetAnchor = true;\n\t\t}\n\t\tif (data.height !== undefined && !splitVerAnchors) {\n\t\t\tcomponent.height = data.height;\n\t\t} else if (splitVerAnchors) {\n\t\t\tshouldForceSetAnchor = true;\n\t\t}\n\t\tif (shouldForceSetAnchor) {\n\t\t\tcomponent.anchor = component.anchor;\n\t\t}\n\t\tif (data.enabled !== undefined) {\n\t\t\tcomponent.enabled = data.enabled;\n\t\t}\n\t\tif (data.useInput !== undefined) {\n\t\t\tcomponent.useInput = data.useInput;\n\t\t}\n\t\tif (data.fitMode !== undefined) {\n\t\t\tcomponent.fitMode = data.fitMode;\n\t\t}\n\t\tcomponent.batchGroupId = data.batchGroupId === undefined || data.batchGroupId === null ? -1 : data.batchGroupId;\n\t\tif (data.layers && Array.isArray(data.layers)) {\n\t\t\tcomponent.layers = data.layers.slice(0);\n\t\t}\n\t\tif (data.type !== undefined) {\n\t\t\tcomponent.type = data.type;\n\t\t}\n\t\tif (component.type === ELEMENTTYPE_IMAGE) {\n\t\t\tif (data.rect !== undefined) {\n\t\t\t\tcomponent.rect = data.rect;\n\t\t\t}\n\t\t\tif (data.color !== undefined) {\n\t\t\t\tcolor = data.color;\n\t\t\t\tif (!(color instanceof Color)) {\n\t\t\t\t\tcolor = new Color(data.color[0], data.color[1], data.color[2]);\n\t\t\t\t}\n\t\t\t\tcomponent.color = color;\n\t\t\t}\n\t\t\tif (data.opacity !== undefined) component.opacity = data.opacity;\n\t\t\tif (data.textureAsset !== undefined) component.textureAsset = data.textureAsset;\n\t\t\tif (data.texture) component.texture = data.texture;\n\t\t\tif (data.spriteAsset !== undefined) component.spriteAsset = data.spriteAsset;\n\t\t\tif (data.sprite) component.sprite = data.sprite;\n\t\t\tif (data.spriteFrame !== undefined) component.spriteFrame = data.spriteFrame;\n\t\t\tif (data.pixelsPerUnit !== undefined && data.pixelsPerUnit !== null) component.pixelsPerUnit = data.pixelsPerUnit;\n\t\t\tif (data.materialAsset !== undefined) component.materialAsset = data.materialAsset;\n\t\t\tif (data.material) component.material = data.material;\n\t\t\tif (data.mask !== undefined) {\n\t\t\t\tcomponent.mask = data.mask;\n\t\t\t}\n\t\t} else if (component.type === ELEMENTTYPE_TEXT) {\n\t\t\tif (data.autoWidth !== undefined) component.autoWidth = data.autoWidth;\n\t\t\tif (data.autoHeight !== undefined) component.autoHeight = data.autoHeight;\n\t\t\tif (data.rtlReorder !== undefined) component.rtlReorder = data.rtlReorder;\n\t\t\tif (data.unicodeConverter !== undefined) component.unicodeConverter = data.unicodeConverter;\n\t\t\tif (data.text !== null && data.text !== undefined) {\n\t\t\t\tcomponent.text = data.text;\n\t\t\t} else if (data.key !== null && data.key !== undefined) {\n\t\t\t\tcomponent.key = data.key;\n\t\t\t}\n\t\t\tif (data.color !== undefined) {\n\t\t\t\tcolor = data.color;\n\t\t\t\tif (!(color instanceof Color)) {\n\t\t\t\t\tcolor = new Color(color[0], color[1], color[2]);\n\t\t\t\t}\n\t\t\t\tcomponent.color = color;\n\t\t\t}\n\t\t\tif (data.opacity !== undefined) {\n\t\t\t\tcomponent.opacity = data.opacity;\n\t\t\t}\n\t\t\tif (data.spacing !== undefined) component.spacing = data.spacing;\n\t\t\tif (data.fontSize !== undefined) {\n\t\t\t\tcomponent.fontSize = data.fontSize;\n\t\t\t\tif (!data.lineHeight) component.lineHeight = data.fontSize;\n\t\t\t}\n\t\t\tif (data.lineHeight !== undefined) component.lineHeight = data.lineHeight;\n\t\t\tif (data.maxLines !== undefined) component.maxLines = data.maxLines;\n\t\t\tif (data.wrapLines !== undefined) component.wrapLines = data.wrapLines;\n\t\t\tif (data.minFontSize !== undefined) component.minFontSize = data.minFontSize;\n\t\t\tif (data.maxFontSize !== undefined) component.maxFontSize = data.maxFontSize;\n\t\t\tif (data.autoFitWidth) component.autoFitWidth = data.autoFitWidth;\n\t\t\tif (data.autoFitHeight) component.autoFitHeight = data.autoFitHeight;\n\t\t\tif (data.fontAsset !== undefined) component.fontAsset = data.fontAsset;\n\t\t\tif (data.font !== undefined) component.font = data.font;\n\t\t\tif (data.alignment !== undefined) component.alignment = data.alignment;\n\t\t\tif (data.outlineColor !== undefined) component.outlineColor = data.outlineColor;\n\t\t\tif (data.outlineThickness !== undefined) component.outlineThickness = data.outlineThickness;\n\t\t\tif (data.shadowColor !== undefined) component.shadowColor = data.shadowColor;\n\t\t\tif (data.shadowOffset !== undefined) component.shadowOffset = data.shadowOffset;\n\t\t\tif (data.enableMarkup !== undefined) component.enableMarkup = data.enableMarkup;\n\t\t}\n\t\tconst result = component._parseUpToScreen();\n\t\tif (result.screen) {\n\t\t\tcomponent._updateScreen(result.screen);\n\t\t}\n\t\tsuper.initializeComponentData(component, data, properties);\n\t\tcomponent._beingInitialized = false;\n\t\tif (component.type === ELEMENTTYPE_IMAGE && component._image._meshDirty) {\n\t\t\tcomponent._image._updateMesh(component._image.mesh);\n\t\t}\n\t}\n\tonAddComponent(entity, component) {\n\t\tentity.fire('element:add');\n\t}\n\tonRemoveComponent(entity, component) {\n\t\tcomponent.onRemove();\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst source = entity.element;\n\t\tconst data = {\n\t\t\tenabled: source.enabled,\n\t\t\twidth: source.width,\n\t\t\theight: source.height,\n\t\t\tanchor: source.anchor.clone(),\n\t\t\tpivot: source.pivot.clone(),\n\t\t\tmargin: source.margin.clone(),\n\t\t\talignment: source.alignment && source.alignment.clone() || source.alignment,\n\t\t\tautoWidth: source.autoWidth,\n\t\t\tautoHeight: source.autoHeight,\n\t\t\ttype: source.type,\n\t\t\trect: source.rect && source.rect.clone() || source.rect,\n\t\t\trtlReorder: source.rtlReorder,\n\t\t\tunicodeConverter: source.unicodeConverter,\n\t\t\tmaterialAsset: source.materialAsset,\n\t\t\tmaterial: source.material,\n\t\t\tcolor: source.color && source.color.clone() || source.color,\n\t\t\topacity: source.opacity,\n\t\t\ttextureAsset: source.textureAsset,\n\t\t\ttexture: source.texture,\n\t\t\tspriteAsset: source.spriteAsset,\n\t\t\tsprite: source.sprite,\n\t\t\tspriteFrame: source.spriteFrame,\n\t\t\tpixelsPerUnit: source.pixelsPerUnit,\n\t\t\tspacing: source.spacing,\n\t\t\tlineHeight: source.lineHeight,\n\t\t\twrapLines: source.wrapLines,\n\t\t\tlayers: source.layers,\n\t\t\tfontSize: source.fontSize,\n\t\t\tminFontSize: source.minFontSize,\n\t\t\tmaxFontSize: source.maxFontSize,\n\t\t\tautoFitWidth: source.autoFitWidth,\n\t\t\tautoFitHeight: source.autoFitHeight,\n\t\t\tmaxLines: source.maxLines,\n\t\t\tfontAsset: source.fontAsset,\n\t\t\tfont: source.font,\n\t\t\tuseInput: source.useInput,\n\t\t\tfitMode: source.fitMode,\n\t\t\tbatchGroupId: source.batchGroupId,\n\t\t\tmask: source.mask,\n\t\t\toutlineColor: source.outlineColor && source.outlineColor.clone() || source.outlineColor,\n\t\t\toutlineThickness: source.outlineThickness,\n\t\t\tshadowColor: source.shadowColor && source.shadowColor.clone() || source.shadowColor,\n\t\t\tshadowOffset: source.shadowOffset && source.shadowOffset.clone() || source.shadowOffset,\n\t\t\tenableMarkup: source.enableMarkup\n\t\t};\n\t\tif (source.key !== undefined && source.key !== null) {\n\t\t\tdata.key = source.key;\n\t\t} else {\n\t\t\tdata.text = source.text;\n\t\t}\n\t\treturn this.addComponent(clone, data);\n\t}\n\tgetTextElementMaterial(screenSpace, msdf, textAttibutes) {\n\t\tconst hash = (screenSpace && 1 << 0) | (msdf && 1 << 1) | (textAttibutes && 1 << 2);\n\t\tlet material = this._defaultTextMaterials[hash];\n\t\tif (material) {\n\t\t\treturn material;\n\t\t}\n\t\tlet name = 'TextMaterial';\n\t\tmaterial = new StandardMaterial();\n\t\tif (msdf) {\n\t\t\tmaterial.msdfMap = this._defaultTexture;\n\t\t\tmaterial.msdfTextAttribute = textAttibutes;\n\t\t\tmaterial.emissive.set(1, 1, 1);\n\t\t} else {\n\t\t\tname = `Bitmap${name}`;\n\t\t\tmaterial.emissive.set(0.5, 0.5, 0.5);\n\t\t\tmaterial.emissiveMap = this._defaultTexture;\n\t\t\tmaterial.emissiveTint = true;\n\t\t\tmaterial.opacityMap = this._defaultTexture;\n\t\t\tmaterial.opacityMapChannel = 'a';\n\t\t}\n\t\tif (screenSpace) {\n\t\t\tname = `ScreenSpace${name}`;\n\t\t\tmaterial.depthTest = false;\n\t\t}\n\t\tmaterial.name = `default${name}`;\n\t\tmaterial.useLighting = false;\n\t\tmaterial.useGammaTonemap = false;\n\t\tmaterial.useFog = false;\n\t\tmaterial.useSkybox = false;\n\t\tmaterial.diffuse.set(0, 0, 0);\n\t\tmaterial.opacity = 0.5;\n\t\tmaterial.blendType = BLEND_PREMULTIPLIED;\n\t\tmaterial.depthWrite = false;\n\t\tmaterial.emissiveVertexColor = true;\n\t\tmaterial.update();\n\t\tthis._defaultTextMaterials[hash] = material;\n\t\treturn material;\n\t}\n\t_createBaseImageMaterial() {\n\t\tconst material = new StandardMaterial();\n\t\tmaterial.diffuse.set(0, 0, 0);\n\t\tmaterial.emissive.set(0.5, 0.5, 0.5);\n\t\tmaterial.emissiveMap = this._defaultTexture;\n\t\tmaterial.emissiveTint = true;\n\t\tmaterial.opacityMap = this._defaultTexture;\n\t\tmaterial.opacityMapChannel = 'a';\n\t\tmaterial.opacityTint = true;\n\t\tmaterial.opacity = 0;\n\t\tmaterial.useLighting = false;\n\t\tmaterial.useGammaTonemap = false;\n\t\tmaterial.useFog = false;\n\t\tmaterial.useSkybox = false;\n\t\tmaterial.blendType = BLEND_PREMULTIPLIED;\n\t\tmaterial.depthWrite = false;\n\t\treturn material;\n\t}\n\tgetImageElementMaterial(screenSpace, mask, nineSliced, nineSliceTiled) {\n\t\tif (screenSpace) {\n\t\t\tif (mask) {\n\t\t\t\tif (nineSliced) {\n\t\t\t\t\tif (!this.defaultScreenSpaceImageMask9SlicedMaterial) {\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9SlicedMaterial = this._createBaseImageMaterial();\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9SlicedMaterial.name = 'defaultScreenSpaceImageMask9SlicedMaterial';\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9SlicedMaterial.nineSlicedMode = SPRITE_RENDERMODE_SLICED;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9SlicedMaterial.depthTest = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9SlicedMaterial.alphaTest = 1;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9SlicedMaterial.redWrite = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9SlicedMaterial.greenWrite = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9SlicedMaterial.blueWrite = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9SlicedMaterial.alphaWrite = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9SlicedMaterial.update();\n\t\t\t\t\t\tthis.defaultImageMaterials.push(this.defaultScreenSpaceImageMask9SlicedMaterial);\n\t\t\t\t\t}\n\t\t\t\t\treturn this.defaultScreenSpaceImageMask9SlicedMaterial;\n\t\t\t\t} else if (nineSliceTiled) {\n\t\t\t\t\tif (!this.defaultScreenSpaceImageMask9TiledMaterial) {\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9TiledMaterial = this.defaultScreenSpaceImage9TiledMaterial.clone();\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9TiledMaterial.name = 'defaultScreenSpaceImageMask9TiledMaterial';\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9TiledMaterial.nineSlicedMode = SPRITE_RENDERMODE_TILED;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9TiledMaterial.depthTest = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9TiledMaterial.alphaTest = 1;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9TiledMaterial.redWrite = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9TiledMaterial.greenWrite = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9TiledMaterial.blueWrite = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9TiledMaterial.alphaWrite = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9TiledMaterial.update();\n\t\t\t\t\t\tthis.defaultImageMaterials.push(this.defaultScreenSpaceImageMask9TiledMaterial);\n\t\t\t\t\t}\n\t\t\t\t\treturn this.defaultScreenSpaceImageMask9TiledMaterial;\n\t\t\t\t} else {\n\t\t\t\t\tif (!this.defaultScreenSpaceImageMaskMaterial) {\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMaskMaterial = this._createBaseImageMaterial();\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMaskMaterial.name = 'defaultScreenSpaceImageMaskMaterial';\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMaskMaterial.depthTest = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMaskMaterial.alphaTest = 1;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMaskMaterial.redWrite = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMaskMaterial.greenWrite = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMaskMaterial.blueWrite = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMaskMaterial.alphaWrite = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMaskMaterial.update();\n\t\t\t\t\t\tthis.defaultImageMaterials.push(this.defaultScreenSpaceImageMaskMaterial);\n\t\t\t\t\t}\n\t\t\t\t\treturn this.defaultScreenSpaceImageMaskMaterial;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (nineSliced) {\n\t\t\t\t\tif (!this.defaultScreenSpaceImage9SlicedMaterial) {\n\t\t\t\t\t\tthis.defaultScreenSpaceImage9SlicedMaterial = this._createBaseImageMaterial();\n\t\t\t\t\t\tthis.defaultScreenSpaceImage9SlicedMaterial.name = 'defaultScreenSpaceImage9SlicedMaterial';\n\t\t\t\t\t\tthis.defaultScreenSpaceImage9SlicedMaterial.nineSlicedMode = SPRITE_RENDERMODE_SLICED;\n\t\t\t\t\t\tthis.defaultScreenSpaceImage9SlicedMaterial.depthTest = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImage9SlicedMaterial.update();\n\t\t\t\t\t\tthis.defaultImageMaterials.push(this.defaultScreenSpaceImage9SlicedMaterial);\n\t\t\t\t\t}\n\t\t\t\t\treturn this.defaultScreenSpaceImage9SlicedMaterial;\n\t\t\t\t} else if (nineSliceTiled) {\n\t\t\t\t\tif (!this.defaultScreenSpaceImage9TiledMaterial) {\n\t\t\t\t\t\tthis.defaultScreenSpaceImage9TiledMaterial = this._createBaseImageMaterial();\n\t\t\t\t\t\tthis.defaultScreenSpaceImage9TiledMaterial.name = 'defaultScreenSpaceImage9TiledMaterial';\n\t\t\t\t\t\tthis.defaultScreenSpaceImage9TiledMaterial.nineSlicedMode = SPRITE_RENDERMODE_TILED;\n\t\t\t\t\t\tthis.defaultScreenSpaceImage9TiledMaterial.depthTest = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImage9TiledMaterial.update();\n\t\t\t\t\t\tthis.defaultImageMaterials.push(this.defaultScreenSpaceImage9TiledMaterial);\n\t\t\t\t\t}\n\t\t\t\t\treturn this.defaultScreenSpaceImage9TiledMaterial;\n\t\t\t\t} else {\n\t\t\t\t\tif (!this.defaultScreenSpaceImageMaterial) {\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMaterial = this._createBaseImageMaterial();\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMaterial.name = 'defaultScreenSpaceImageMaterial';\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMaterial.depthTest = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMaterial.update();\n\t\t\t\t\t\tthis.defaultImageMaterials.push(this.defaultScreenSpaceImageMaterial);\n\t\t\t\t\t}\n\t\t\t\t\treturn this.defaultScreenSpaceImageMaterial;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (mask) {\n\t\t\t\tif (nineSliced) {\n\t\t\t\t\tif (!this.defaultImage9SlicedMaskMaterial) {\n\t\t\t\t\t\tthis.defaultImage9SlicedMaskMaterial = this._createBaseImageMaterial();\n\t\t\t\t\t\tthis.defaultImage9SlicedMaskMaterial.name = 'defaultImage9SlicedMaskMaterial';\n\t\t\t\t\t\tthis.defaultImage9SlicedMaskMaterial.nineSlicedMode = SPRITE_RENDERMODE_SLICED;\n\t\t\t\t\t\tthis.defaultImage9SlicedMaskMaterial.alphaTest = 1;\n\t\t\t\t\t\tthis.defaultImage9SlicedMaskMaterial.redWrite = false;\n\t\t\t\t\t\tthis.defaultImage9SlicedMaskMaterial.greenWrite = false;\n\t\t\t\t\t\tthis.defaultImage9SlicedMaskMaterial.blueWrite = false;\n\t\t\t\t\t\tthis.defaultImage9SlicedMaskMaterial.alphaWrite = false;\n\t\t\t\t\t\tthis.defaultImage9SlicedMaskMaterial.update();\n\t\t\t\t\t\tthis.defaultImageMaterials.push(this.defaultImage9SlicedMaskMaterial);\n\t\t\t\t\t}\n\t\t\t\t\treturn this.defaultImage9SlicedMaskMaterial;\n\t\t\t\t} else if (nineSliceTiled) {\n\t\t\t\t\tif (!this.defaultImage9TiledMaskMaterial) {\n\t\t\t\t\t\tthis.defaultImage9TiledMaskMaterial = this._createBaseImageMaterial();\n\t\t\t\t\t\tthis.defaultImage9TiledMaskMaterial.name = 'defaultImage9TiledMaskMaterial';\n\t\t\t\t\t\tthis.defaultImage9TiledMaskMaterial.nineSlicedMode = SPRITE_RENDERMODE_TILED;\n\t\t\t\t\t\tthis.defaultImage9TiledMaskMaterial.alphaTest = 1;\n\t\t\t\t\t\tthis.defaultImage9TiledMaskMaterial.redWrite = false;\n\t\t\t\t\t\tthis.defaultImage9TiledMaskMaterial.greenWrite = false;\n\t\t\t\t\t\tthis.defaultImage9TiledMaskMaterial.blueWrite = false;\n\t\t\t\t\t\tthis.defaultImage9TiledMaskMaterial.alphaWrite = false;\n\t\t\t\t\t\tthis.defaultImage9TiledMaskMaterial.update();\n\t\t\t\t\t\tthis.defaultImageMaterials.push(this.defaultImage9TiledMaskMaterial);\n\t\t\t\t\t}\n\t\t\t\t\treturn this.defaultImage9TiledMaskMaterial;\n\t\t\t\t} else {\n\t\t\t\t\tif (!this.defaultImageMaskMaterial) {\n\t\t\t\t\t\tthis.defaultImageMaskMaterial = this._createBaseImageMaterial();\n\t\t\t\t\t\tthis.defaultImageMaskMaterial.name = 'defaultImageMaskMaterial';\n\t\t\t\t\t\tthis.defaultImageMaskMaterial.alphaTest = 1;\n\t\t\t\t\t\tthis.defaultImageMaskMaterial.redWrite = false;\n\t\t\t\t\t\tthis.defaultImageMaskMaterial.greenWrite = false;\n\t\t\t\t\t\tthis.defaultImageMaskMaterial.blueWrite = false;\n\t\t\t\t\t\tthis.defaultImageMaskMaterial.alphaWrite = false;\n\t\t\t\t\t\tthis.defaultImageMaskMaterial.update();\n\t\t\t\t\t\tthis.defaultImageMaterials.push(this.defaultImageMaskMaterial);\n\t\t\t\t\t}\n\t\t\t\t\treturn this.defaultImageMaskMaterial;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (nineSliced) {\n\t\t\t\t\tif (!this.defaultImage9SlicedMaterial) {\n\t\t\t\t\t\tthis.defaultImage9SlicedMaterial = this._createBaseImageMaterial();\n\t\t\t\t\t\tthis.defaultImage9SlicedMaterial.name = 'defaultImage9SlicedMaterial';\n\t\t\t\t\t\tthis.defaultImage9SlicedMaterial.nineSlicedMode = SPRITE_RENDERMODE_SLICED;\n\t\t\t\t\t\tthis.defaultImage9SlicedMaterial.update();\n\t\t\t\t\t\tthis.defaultImageMaterials.push(this.defaultImage9SlicedMaterial);\n\t\t\t\t\t}\n\t\t\t\t\treturn this.defaultImage9SlicedMaterial;\n\t\t\t\t} else if (nineSliceTiled) {\n\t\t\t\t\tif (!this.defaultImage9TiledMaterial) {\n\t\t\t\t\t\tthis.defaultImage9TiledMaterial = this._createBaseImageMaterial();\n\t\t\t\t\t\tthis.defaultImage9TiledMaterial.name = 'defaultImage9TiledMaterial';\n\t\t\t\t\t\tthis.defaultImage9TiledMaterial.nineSlicedMode = SPRITE_RENDERMODE_TILED;\n\t\t\t\t\t\tthis.defaultImage9TiledMaterial.update();\n\t\t\t\t\t\tthis.defaultImageMaterials.push(this.defaultImage9TiledMaterial);\n\t\t\t\t\t}\n\t\t\t\t\treturn this.defaultImage9TiledMaterial;\n\t\t\t\t} else {\n\t\t\t\t\tif (!this.defaultImageMaterial) {\n\t\t\t\t\t\tthis.defaultImageMaterial = this._createBaseImageMaterial();\n\t\t\t\t\t\tthis.defaultImageMaterial.name = 'defaultImageMaterial';\n\t\t\t\t\t\tthis.defaultImageMaterial.update();\n\t\t\t\t\t\tthis.defaultImageMaterials.push(this.defaultImageMaterial);\n\t\t\t\t\t}\n\t\t\t\t\treturn this.defaultImageMaterial;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tregisterUnicodeConverter(func) {\n\t\tthis._unicodeConverter = func;\n\t}\n\tregisterRtlReorder(func) {\n\t\tthis._rtlReorder = func;\n\t}\n\tgetUnicodeConverter() {\n\t\treturn this._unicodeConverter;\n\t}\n\tgetRtlReorder() {\n\t\treturn this._rtlReorder;\n\t}\n}\n\nconst MOTION_FREE = 'free';\nconst MOTION_LIMITED = 'limited';\nconst MOTION_LOCKED = 'locked';\n\nconst properties$1 = ['angularDampingX', 'angularDampingY', 'angularDampingZ', 'angularEquilibriumX', 'angularEquilibriumY', 'angularEquilibriumZ', 'angularLimitsX', 'angularLimitsY', 'angularLimitsZ', 'angularMotionX', 'angularMotionY', 'angularMotionZ', 'angularSpringX', 'angularSpringY', 'angularSpringZ', 'angularStiffnessX', 'angularStiffnessY', 'angularStiffnessZ', 'breakForce', 'enableCollision', 'enabled', 'entityA', 'entityB', 'linearDampingX', 'linearDampingY', 'linearDampingZ', 'linearEquilibriumX', 'linearEquilibriumY', 'linearEquilibriumZ', 'linearLimitsX', 'linearLimitsY', 'linearLimitsZ', 'linearMotionX', 'linearMotionY', 'linearMotionZ', 'linearSpringX', 'linearSpringY', 'linearSpringZ', 'linearStiffnessX', 'linearStiffnessY', 'linearStiffnessZ'];\nclass JointComponent extends Component {\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis._constraint = null;\n\t\tthis._entityA = null;\n\t\tthis._entityB = null;\n\t\tthis._breakForce = 3.4e+38;\n\t\tthis._enableCollision = true;\n\t\tthis._linearMotionX = MOTION_LOCKED;\n\t\tthis._linearLimitsX = new Vec2(0, 0);\n\t\tthis._linearSpringX = false;\n\t\tthis._linearStiffnessX = 0;\n\t\tthis._linearDampingX = 1;\n\t\tthis._linearEquilibriumX = 0;\n\t\tthis._linearMotionY = MOTION_LOCKED;\n\t\tthis._linearLimitsY = new Vec2(0, 0);\n\t\tthis._linearSpringY = false;\n\t\tthis._linearStiffnessY = 0;\n\t\tthis._linearDampingY = 1;\n\t\tthis._linearEquilibriumY = 0;\n\t\tthis._linearMotionZ = MOTION_LOCKED;\n\t\tthis._linearLimitsZ = new Vec2(0, 0);\n\t\tthis._linearSpringZ = false;\n\t\tthis._linearStiffnessZ = 0;\n\t\tthis._linearDampingZ = 1;\n\t\tthis._linearEquilibriumZ = 0;\n\t\tthis._angularMotionX = MOTION_LOCKED;\n\t\tthis._angularLimitsX = new Vec2(0, 0);\n\t\tthis._angularSpringX = false;\n\t\tthis._angularStiffnessX = 0;\n\t\tthis._angularDampingX = 1;\n\t\tthis._angularEquilibriumX = 0;\n\t\tthis._angularMotionY = MOTION_LOCKED;\n\t\tthis._angularLimitsY = new Vec2(0, 0);\n\t\tthis._angularSpringY = false;\n\t\tthis._angularStiffnessY = 0;\n\t\tthis._angularDampingY = 1;\n\t\tthis._angularEquilibriumY = 0;\n\t\tthis._angularMotionZ = MOTION_LOCKED;\n\t\tthis._angularLimitsZ = new Vec2(0, 0);\n\t\tthis._angularSpringZ = false;\n\t\tthis._angularEquilibriumZ = 0;\n\t\tthis._angularDampingZ = 1;\n\t\tthis._angularStiffnessZ = 0;\n\t\tthis.on('set_enabled', this._onSetEnabled, this);\n\t}\n\tset entityA(body) {\n\t\tthis._destroyConstraint();\n\t\tthis._entityA = body;\n\t\tthis._createConstraint();\n\t}\n\tget entityA() {\n\t\treturn this._entityA;\n\t}\n\tset entityB(body) {\n\t\tthis._destroyConstraint();\n\t\tthis._entityB = body;\n\t\tthis._createConstraint();\n\t}\n\tget entityB() {\n\t\treturn this._entityB;\n\t}\n\tset breakForce(force) {\n\t\tif (this._constraint && this._breakForce !== force) {\n\t\t\tthis._constraint.setBreakingImpulseThreshold(force);\n\t\t\tthis._breakForce = force;\n\t\t}\n\t}\n\tget breakForce() {\n\t\treturn this._breakForce;\n\t}\n\tset enableCollision(enableCollision) {\n\t\tthis._destroyConstraint();\n\t\tthis._enableCollision = enableCollision;\n\t\tthis._createConstraint();\n\t}\n\tget enableCollision() {\n\t\treturn this._enableCollision;\n\t}\n\tset angularLimitsX(limits) {\n\t\tif (!this._angularLimitsX.equals(limits)) {\n\t\t\tthis._angularLimitsX.copy(limits);\n\t\t\tthis._updateAngularLimits();\n\t\t}\n\t}\n\tget angularLimitsX() {\n\t\treturn this._angularLimitsX;\n\t}\n\tset angularMotionX(value) {\n\t\tif (this._angularMotionX !== value) {\n\t\t\tthis._angularMotionX = value;\n\t\t\tthis._updateAngularLimits();\n\t\t}\n\t}\n\tget angularMotionX() {\n\t\treturn this._angularMotionX;\n\t}\n\tset angularLimitsY(limits) {\n\t\tif (!this._angularLimitsY.equals(limits)) {\n\t\t\tthis._angularLimitsY.copy(limits);\n\t\t\tthis._updateAngularLimits();\n\t\t}\n\t}\n\tget angularLimitsY() {\n\t\treturn this._angularLimitsY;\n\t}\n\tset angularMotionY(value) {\n\t\tif (this._angularMotionY !== value) {\n\t\t\tthis._angularMotionY = value;\n\t\t\tthis._updateAngularLimits();\n\t\t}\n\t}\n\tget angularMotionY() {\n\t\treturn this._angularMotionY;\n\t}\n\tset angularLimitsZ(limits) {\n\t\tif (!this._angularLimitsZ.equals(limits)) {\n\t\t\tthis._angularLimitsZ.copy(limits);\n\t\t\tthis._updateAngularLimits();\n\t\t}\n\t}\n\tget angularLimitsZ() {\n\t\treturn this._angularLimitsZ;\n\t}\n\tset angularMotionZ(value) {\n\t\tif (this._angularMotionZ !== value) {\n\t\t\tthis._angularMotionZ = value;\n\t\t\tthis._updateAngularLimits();\n\t\t}\n\t}\n\tget angularMotionZ() {\n\t\treturn this._angularMotionZ;\n\t}\n\tset linearLimitsX(limits) {\n\t\tif (!this._linearLimitsX.equals(limits)) {\n\t\t\tthis._linearLimitsX.copy(limits);\n\t\t\tthis._updateLinearLimits();\n\t\t}\n\t}\n\tget linearLimitsX() {\n\t\treturn this._linearLimitsX;\n\t}\n\tset linearMotionX(value) {\n\t\tif (this._linearMotionX !== value) {\n\t\t\tthis._linearMotionX = value;\n\t\t\tthis._updateLinearLimits();\n\t\t}\n\t}\n\tget linearMotionX() {\n\t\treturn this._linearMotionX;\n\t}\n\tset linearLimitsY(limits) {\n\t\tif (!this._linearLimitsY.equals(limits)) {\n\t\t\tthis._linearLimitsY.copy(limits);\n\t\t\tthis._updateLinearLimits();\n\t\t}\n\t}\n\tget linearLimitsY() {\n\t\treturn this._linearLimitsY;\n\t}\n\tset linearMotionY(value) {\n\t\tif (this._linearMotionY !== value) {\n\t\t\tthis._linearMotionY = value;\n\t\t\tthis._updateLinearLimits();\n\t\t}\n\t}\n\tget linearMotionY() {\n\t\treturn this._linearMotionY;\n\t}\n\tset linearLimitsZ(limits) {\n\t\tif (!this._linearLimitsZ.equals(limits)) {\n\t\t\tthis._linearLimitsZ.copy(limits);\n\t\t\tthis._updateLinearLimits();\n\t\t}\n\t}\n\tget linearLimitsZ() {\n\t\treturn this._linearLimitsZ;\n\t}\n\tset linearMotionZ(value) {\n\t\tif (this._linearMotionZ !== value) {\n\t\t\tthis._linearMotionZ = value;\n\t\t\tthis._updateLinearLimits();\n\t\t}\n\t}\n\tget linearMotionZ() {\n\t\treturn this._linearMotionZ;\n\t}\n\t_convertTransform(pcTransform, ammoTransform) {\n\t\tconst pos = pcTransform.getTranslation();\n\t\tconst rot = new Quat();\n\t\trot.setFromMat4(pcTransform);\n\t\tconst ammoVec = new Ammo.btVector3(pos.x, pos.y, pos.z);\n\t\tconst ammoQuat = new Ammo.btQuaternion(rot.x, rot.y, rot.z, rot.w);\n\t\tammoTransform.setOrigin(ammoVec);\n\t\tammoTransform.setRotation(ammoQuat);\n\t\tAmmo.destroy(ammoVec);\n\t\tAmmo.destroy(ammoQuat);\n\t}\n\t_updateAngularLimits() {\n\t\tconst constraint = this._constraint;\n\t\tif (constraint) {\n\t\t\tlet lx, ly, lz, ux, uy, uz;\n\t\t\tif (this._angularMotionX === MOTION_LIMITED) {\n\t\t\t\tlx = this._angularLimitsX.x * math.DEG_TO_RAD;\n\t\t\t\tux = this._angularLimitsX.y * math.DEG_TO_RAD;\n\t\t\t} else if (this._angularMotionX === MOTION_FREE) {\n\t\t\t\tlx = 1;\n\t\t\t\tux = 0;\n\t\t\t} else {\n\t\t\t\tlx = ux = 0;\n\t\t\t}\n\t\t\tif (this._angularMotionY === MOTION_LIMITED) {\n\t\t\t\tly = this._angularLimitsY.x * math.DEG_TO_RAD;\n\t\t\t\tuy = this._angularLimitsY.y * math.DEG_TO_RAD;\n\t\t\t} else if (this._angularMotionY === MOTION_FREE) {\n\t\t\t\tly = 1;\n\t\t\t\tuy = 0;\n\t\t\t} else {\n\t\t\t\tly = uy = 0;\n\t\t\t}\n\t\t\tif (this._angularMotionZ === MOTION_LIMITED) {\n\t\t\t\tlz = this._angularLimitsZ.x * math.DEG_TO_RAD;\n\t\t\t\tuz = this._angularLimitsZ.y * math.DEG_TO_RAD;\n\t\t\t} else if (this._angularMotionZ === MOTION_FREE) {\n\t\t\t\tlz = 1;\n\t\t\t\tuz = 0;\n\t\t\t} else {\n\t\t\t\tlz = uz = 0;\n\t\t\t}\n\t\t\tconst limits = new Ammo.btVector3(lx, ly, lz);\n\t\t\tconstraint.setAngularLowerLimit(limits);\n\t\t\tlimits.setValue(ux, uy, uz);\n\t\t\tconstraint.setAngularUpperLimit(limits);\n\t\t\tAmmo.destroy(limits);\n\t\t}\n\t}\n\t_updateLinearLimits() {\n\t\tconst constraint = this._constraint;\n\t\tif (constraint) {\n\t\t\tlet lx, ly, lz, ux, uy, uz;\n\t\t\tif (this._linearMotionX === MOTION_LIMITED) {\n\t\t\t\tlx = this._linearLimitsX.x;\n\t\t\t\tux = this._linearLimitsX.y;\n\t\t\t} else if (this._linearMotionX === MOTION_FREE) {\n\t\t\t\tlx = 1;\n\t\t\t\tux = 0;\n\t\t\t} else {\n\t\t\t\tlx = ux = 0;\n\t\t\t}\n\t\t\tif (this._linearMotionY === MOTION_LIMITED) {\n\t\t\t\tly = this._linearLimitsY.x;\n\t\t\t\tuy = this._linearLimitsY.y;\n\t\t\t} else if (this._linearMotionY === MOTION_FREE) {\n\t\t\t\tly = 1;\n\t\t\t\tuy = 0;\n\t\t\t} else {\n\t\t\t\tly = uy = 0;\n\t\t\t}\n\t\t\tif (this._linearMotionZ === MOTION_LIMITED) {\n\t\t\t\tlz = this._linearLimitsZ.x;\n\t\t\t\tuz = this._linearLimitsZ.y;\n\t\t\t} else if (this._linearMotionZ === MOTION_FREE) {\n\t\t\t\tlz = 1;\n\t\t\t\tuz = 0;\n\t\t\t} else {\n\t\t\t\tlz = uz = 0;\n\t\t\t}\n\t\t\tconst limits = new Ammo.btVector3(lx, ly, lz);\n\t\t\tconstraint.setLinearLowerLimit(limits);\n\t\t\tlimits.setValue(ux, uy, uz);\n\t\t\tconstraint.setLinearUpperLimit(limits);\n\t\t\tAmmo.destroy(limits);\n\t\t}\n\t}\n\t_createConstraint() {\n\t\tif (this._entityA && this._entityA.rigidbody) {\n\t\t\tthis._destroyConstraint();\n\t\t\tconst mat = new Mat4();\n\t\t\tconst bodyA = this._entityA.rigidbody.body;\n\t\t\tbodyA.activate();\n\t\t\tconst jointWtm = this.entity.getWorldTransform();\n\t\t\tconst entityAWtm = this._entityA.getWorldTransform();\n\t\t\tconst invEntityAWtm = entityAWtm.clone().invert();\n\t\t\tmat.mul2(invEntityAWtm, jointWtm);\n\t\t\tconst frameA = new Ammo.btTransform();\n\t\t\tthis._convertTransform(mat, frameA);\n\t\t\tif (this._entityB && this._entityB.rigidbody) {\n\t\t\t\tconst bodyB = this._entityB.rigidbody.body;\n\t\t\t\tbodyB.activate();\n\t\t\t\tconst entityBWtm = this._entityB.getWorldTransform();\n\t\t\t\tconst invEntityBWtm = entityBWtm.clone().invert();\n\t\t\t\tmat.mul2(invEntityBWtm, jointWtm);\n\t\t\t\tconst frameB = new Ammo.btTransform();\n\t\t\t\tthis._convertTransform(mat, frameB);\n\t\t\t\tthis._constraint = new Ammo.btGeneric6DofSpringConstraint(bodyA, bodyB, frameA, frameB, !this._enableCollision);\n\t\t\t\tAmmo.destroy(frameB);\n\t\t\t} else {\n\t\t\t\tthis._constraint = new Ammo.btGeneric6DofSpringConstraint(bodyA, frameA, !this._enableCollision);\n\t\t\t}\n\t\t\tAmmo.destroy(frameA);\n\t\t\tconst axis = ['X', 'Y', 'Z', 'X', 'Y', 'Z'];\n\t\t\tfor (let i = 0; i < 6; i++) {\n\t\t\t\tconst type = i < 3 ? '_linear' : '_angular';\n\t\t\t\tthis._constraint.enableSpring(i, this[`${type}Spring${axis[i]}`]);\n\t\t\t\tthis._constraint.setDamping(i, this[`${type}Damping${axis[i]}`]);\n\t\t\t\tthis._constraint.setEquilibriumPoint(i, this[`${type}Equilibrium${axis[i]}`]);\n\t\t\t\tthis._constraint.setStiffness(i, this[`${type}Stiffness${axis[i]}`]);\n\t\t\t}\n\t\t\tthis._constraint.setBreakingImpulseThreshold(this._breakForce);\n\t\t\tthis._updateLinearLimits();\n\t\t\tthis._updateAngularLimits();\n\t\t\tconst app = this.system.app;\n\t\t\tconst dynamicsWorld = app.systems.rigidbody.dynamicsWorld;\n\t\t\tdynamicsWorld.addConstraint(this._constraint, !this._enableCollision);\n\t\t}\n\t}\n\t_destroyConstraint() {\n\t\tif (this._constraint) {\n\t\t\tconst app = this.system.app;\n\t\t\tconst dynamicsWorld = app.systems.rigidbody.dynamicsWorld;\n\t\t\tdynamicsWorld.removeConstraint(this._constraint);\n\t\t\tAmmo.destroy(this._constraint);\n\t\t\tthis._constraint = null;\n\t\t}\n\t}\n\tinitFromData(data) {\n\t\tfor (const prop of properties$1) {\n\t\t\tif (data.hasOwnProperty(prop)) {\n\t\t\t\tif (data[prop] instanceof Vec2) {\n\t\t\t\t\tthis[`_${prop}`].copy(data[prop]);\n\t\t\t\t} else {\n\t\t\t\t\tthis[`_${prop}`] = data[prop];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._createConstraint();\n\t}\n\tonEnable() {\n\t\tthis._createConstraint();\n\t}\n\tonDisable() {\n\t\tthis._destroyConstraint();\n\t}\n\t_onSetEnabled(prop, old, value) {}\n\t_onBeforeRemove() {\n\t\tthis.fire('remove');\n\t}\n}\nconst functionMap = {\n\tDamping: 'setDamping',\n\tEquilibrium: 'setEquilibriumPoint',\n\tSpring: 'enableSpring',\n\tStiffness: 'setStiffness'\n};\n['linear', 'angular'].forEach(type => {\n\t['Damping', 'Equilibrium', 'Spring', 'Stiffness'].forEach(name => {\n\t\t['X', 'Y', 'Z'].forEach(axis => {\n\t\t\tconst prop = type + name + axis;\n\t\t\tconst propInternal = `_${prop}`;\n\t\t\tlet index = type === 'linear' ? 0 : 3;\n\t\t\tif (axis === 'Y') index += 1;\n\t\t\tif (axis === 'Z') index += 2;\n\t\t\tObject.defineProperty(JointComponent.prototype, prop, {\n\t\t\t\tget: function () {\n\t\t\t\t\treturn this[propInternal];\n\t\t\t\t},\n\t\t\t\tset: function (value) {\n\t\t\t\t\tif (this[propInternal] !== value) {\n\t\t\t\t\t\tthis[propInternal] = value;\n\t\t\t\t\t\tthis._constraint[functionMap[name]](index, value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t});\n});\n\nclass JointComponentData {\n\tconstructor() {\n\t\tthis.enabled = true;\n\t}\n}\n\nconst _schema$f = ['enabled'];\nclass JointComponentSystem extends ComponentSystem {\n\tconstructor(app) {\n\t\tsuper(app);\n\t\tthis.id = 'joint';\n\t\tthis.app = app;\n\t\tthis.ComponentType = JointComponent;\n\t\tthis.DataType = JointComponentData;\n\t\tthis.schema = _schema$f;\n\t}\n\tinitializeComponentData(component, data, properties) {\n\t\tcomponent.initFromData(data);\n\t}\n}\nComponent._buildAccessors(JointComponent.prototype, _schema$f);\n\nclass LayoutChildComponent extends Component {\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis._minWidth = 0;\n\t\tthis._minHeight = 0;\n\t\tthis._maxWidth = null;\n\t\tthis._maxHeight = null;\n\t\tthis._fitWidthProportion = 0;\n\t\tthis._fitHeightProportion = 0;\n\t\tthis._excludeFromLayout = false;\n\t}\n\tset minWidth(value) {\n\t\tif (value !== this._minWidth) {\n\t\t\tthis._minWidth = value;\n\t\t\tthis.fire('resize');\n\t\t}\n\t}\n\tget minWidth() {\n\t\treturn this._minWidth;\n\t}\n\tset minHeight(value) {\n\t\tif (value !== this._minHeight) {\n\t\t\tthis._minHeight = value;\n\t\t\tthis.fire('resize');\n\t\t}\n\t}\n\tget minHeight() {\n\t\treturn this._minHeight;\n\t}\n\tset maxWidth(value) {\n\t\tif (value !== this._maxWidth) {\n\t\t\tthis._maxWidth = value;\n\t\t\tthis.fire('resize');\n\t\t}\n\t}\n\tget maxWidth() {\n\t\treturn this._maxWidth;\n\t}\n\tset maxHeight(value) {\n\t\tif (value !== this._maxHeight) {\n\t\t\tthis._maxHeight = value;\n\t\t\tthis.fire('resize');\n\t\t}\n\t}\n\tget maxHeight() {\n\t\treturn this._maxHeight;\n\t}\n\tset fitWidthProportion(value) {\n\t\tif (value !== this._fitWidthProportion) {\n\t\t\tthis._fitWidthProportion = value;\n\t\t\tthis.fire('resize');\n\t\t}\n\t}\n\tget fitWidthProportion() {\n\t\treturn this._fitWidthProportion;\n\t}\n\tset fitHeightProportion(value) {\n\t\tif (value !== this._fitHeightProportion) {\n\t\t\tthis._fitHeightProportion = value;\n\t\t\tthis.fire('resize');\n\t\t}\n\t}\n\tget fitHeightProportion() {\n\t\treturn this._fitHeightProportion;\n\t}\n\tset excludeFromLayout(value) {\n\t\tif (value !== this._excludeFromLayout) {\n\t\t\tthis._excludeFromLayout = value;\n\t\t\tthis.fire('resize');\n\t\t}\n\t}\n\tget excludeFromLayout() {\n\t\treturn this._excludeFromLayout;\n\t}\n}\n\nclass LayoutChildComponentData {\n\tconstructor() {\n\t\tthis.enabled = true;\n\t}\n}\n\nconst _schema$e = ['enabled'];\nclass LayoutChildComponentSystem extends ComponentSystem {\n\tconstructor(app) {\n\t\tsuper(app);\n\t\tthis.id = 'layoutchild';\n\t\tthis.ComponentType = LayoutChildComponent;\n\t\tthis.DataType = LayoutChildComponentData;\n\t\tthis.schema = _schema$e;\n\t}\n\tinitializeComponentData(component, data, properties) {\n\t\tif (data.enabled !== undefined) component.enabled = data.enabled;\n\t\tif (data.minWidth !== undefined) component.minWidth = data.minWidth;\n\t\tif (data.minHeight !== undefined) component.minHeight = data.minHeight;\n\t\tif (data.maxWidth !== undefined) component.maxWidth = data.maxWidth;\n\t\tif (data.maxHeight !== undefined) component.maxHeight = data.maxHeight;\n\t\tif (data.fitWidthProportion !== undefined) component.fitWidthProportion = data.fitWidthProportion;\n\t\tif (data.fitHeightProportion !== undefined) component.fitHeightProportion = data.fitHeightProportion;\n\t\tif (data.excludeFromLayout !== undefined) component.excludeFromLayout = data.excludeFromLayout;\n\t\tsuper.initializeComponentData(component, data, properties);\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst layoutChild = entity.layoutchild;\n\t\treturn this.addComponent(clone, {\n\t\t\tenabled: layoutChild.enabled,\n\t\t\tminWidth: layoutChild.minWidth,\n\t\t\tminHeight: layoutChild.minHeight,\n\t\t\tmaxWidth: layoutChild.maxWidth,\n\t\t\tmaxHeight: layoutChild.maxHeight,\n\t\t\tfitWidthProportion: layoutChild.fitWidthProportion,\n\t\t\tfitHeightProportion: layoutChild.fitHeightProportion,\n\t\t\texcludeFromLayout: layoutChild.excludeFromLayout\n\t\t});\n\t}\n}\nComponent._buildAccessors(LayoutChildComponent.prototype, _schema$e);\n\nconst FITTING_NONE = 0;\nconst FITTING_STRETCH = 1;\nconst FITTING_SHRINK = 2;\nconst FITTING_BOTH = 3;\n\nconst AXIS_MAPPINGS = {};\nAXIS_MAPPINGS[ORIENTATION_HORIZONTAL] = {\n\taxis: 'x',\n\tsize: 'width',\n\tcalculatedSize: 'calculatedWidth',\n\tminSize: 'minWidth',\n\tmaxSize: 'maxWidth',\n\tfitting: 'widthFitting',\n\tfittingProportion: 'fitWidthProportion'\n};\nAXIS_MAPPINGS[ORIENTATION_VERTICAL] = {\n\taxis: 'y',\n\tsize: 'height',\n\tcalculatedSize: 'calculatedHeight',\n\tminSize: 'minHeight',\n\tmaxSize: 'maxHeight',\n\tfitting: 'heightFitting',\n\tfittingProportion: 'fitHeightProportion'\n};\nconst OPPOSITE_ORIENTATION = {};\nOPPOSITE_ORIENTATION[ORIENTATION_HORIZONTAL] = ORIENTATION_VERTICAL;\nOPPOSITE_ORIENTATION[ORIENTATION_VERTICAL] = ORIENTATION_HORIZONTAL;\nconst PROPERTY_DEFAULTS = {\n\tminWidth: 0,\n\tminHeight: 0,\n\tmaxWidth: Number.POSITIVE_INFINITY,\n\tmaxHeight: Number.POSITIVE_INFINITY,\n\twidth: null,\n\theight: null,\n\tfitWidthProportion: 0,\n\tfitHeightProportion: 0\n};\nconst FITTING_ACTION = {\n\tNONE: 'NONE',\n\tAPPLY_STRETCHING: 'APPLY_STRETCHING',\n\tAPPLY_SHRINKING: 'APPLY_SHRINKING'\n};\nconst availableSpace = new Vec2();\nfunction createCalculator(orientation) {\n\tlet options;\n\tconst a = AXIS_MAPPINGS[orientation];\n\tconst b = AXIS_MAPPINGS[OPPOSITE_ORIENTATION[orientation]];\n\tfunction minExtentA(element, size) {\n\t\treturn -size[a.size] * element.pivot[a.axis];\n\t}\n\tfunction minExtentB(element, size) {\n\t\treturn -size[b.size] * element.pivot[b.axis];\n\t}\n\tfunction maxExtentA(element, size) {\n\t\treturn size[a.size] * (1 - element.pivot[a.axis]);\n\t}\n\tfunction calculateAll(allElements, layoutOptions) {\n\t\tallElements = allElements.filter(shouldIncludeInLayout);\n\t\toptions = layoutOptions;\n\t\tavailableSpace.x = options.containerSize.x - options.padding.x - options.padding.z;\n\t\tavailableSpace.y = options.containerSize.y - options.padding.y - options.padding.w;\n\t\tresetAnchors(allElements);\n\t\tconst lines = reverseLinesIfRequired(splitLines(allElements));\n\t\tconst sizes = calculateSizesOnAxisB(lines, calculateSizesOnAxisA(lines));\n\t\tconst positions = calculateBasePositions(lines, sizes);\n\t\tapplyAlignmentAndPadding(lines, sizes, positions);\n\t\tapplySizesAndPositions(lines, sizes, positions);\n\t\treturn createLayoutInfo(lines);\n\t}\n\tfunction shouldIncludeInLayout(element) {\n\t\tconst layoutChildComponent = element.entity.layoutchild;\n\t\treturn !layoutChildComponent || !layoutChildComponent.enabled || !layoutChildComponent.excludeFromLayout;\n\t}\n\tfunction resetAnchors(allElements) {\n\t\tfor (let i = 0; i < allElements.length; ++i) {\n\t\t\tconst element = allElements[i];\n\t\t\tconst anchor = element.anchor;\n\t\t\tif (anchor.x !== 0 || anchor.y !== 0 || anchor.z !== 0 || anchor.w !== 0) {\n\t\t\t\telement.anchor = Vec4.ZERO;\n\t\t\t}\n\t\t}\n\t}\n\tfunction splitLines(allElements) {\n\t\tif (!options.wrap) {\n\t\t\treturn [allElements];\n\t\t}\n\t\tconst lines = [[]];\n\t\tconst sizes = getElementSizeProperties(allElements);\n\t\tlet runningSize = 0;\n\t\tconst allowOverrun = options[a.fitting] === FITTING_SHRINK;\n\t\tfor (let i = 0; i < allElements.length; ++i) {\n\t\t\tif (lines[lines.length - 1].length > 0) {\n\t\t\t\trunningSize += options.spacing[a.axis];\n\t\t\t}\n\t\t\tconst idealElementSize = sizes[i][a.size];\n\t\t\trunningSize += idealElementSize;\n\t\t\tif (!allowOverrun && runningSize > availableSpace[a.axis] && lines[lines.length - 1].length !== 0) {\n\t\t\t\trunningSize = idealElementSize;\n\t\t\t\tlines.push([]);\n\t\t\t}\n\t\t\tlines[lines.length - 1].push(allElements[i]);\n\t\t\tif (allowOverrun && runningSize > availableSpace[a.axis] && i !== allElements.length - 1) {\n\t\t\t\trunningSize = 0;\n\t\t\t\tlines.push([]);\n\t\t\t}\n\t\t}\n\t\treturn lines;\n\t}\n\tfunction reverseLinesIfRequired(lines) {\n\t\tconst reverseAxisA = options.orientation === ORIENTATION_HORIZONTAL && options.reverseX || options.orientation === ORIENTATION_VERTICAL && options.reverseY;\n\t\tconst reverseAxisB = options.orientation === ORIENTATION_HORIZONTAL && options.reverseY || options.orientation === ORIENTATION_VERTICAL && options.reverseX;\n\t\tif (reverseAxisA) {\n\t\t\tfor (let lineIndex = 0; lineIndex < lines.length; ++lineIndex) {\n\t\t\t\tif (reverseAxisA) {\n\t\t\t\t\tlines[lineIndex].reverse();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (reverseAxisB) {\n\t\t\tlines.reverse();\n\t\t}\n\t\treturn lines;\n\t}\n\tfunction calculateSizesOnAxisA(lines) {\n\t\tconst sizesAllLines = [];\n\t\tfor (let lineIndex = 0; lineIndex < lines.length; ++lineIndex) {\n\t\t\tconst line = lines[lineIndex];\n\t\t\tconst sizesThisLine = getElementSizeProperties(line);\n\t\t\tconst idealRequiredSpace = calculateTotalSpace(sizesThisLine, a);\n\t\t\tconst fittingAction = determineFittingAction(options[a.fitting], idealRequiredSpace, availableSpace[a.axis]);\n\t\t\tif (fittingAction === FITTING_ACTION.APPLY_STRETCHING) {\n\t\t\t\tstretchSizesToFitContainer(sizesThisLine, idealRequiredSpace, a);\n\t\t\t} else if (fittingAction === FITTING_ACTION.APPLY_SHRINKING) {\n\t\t\t\tshrinkSizesToFitContainer(sizesThisLine, idealRequiredSpace, a);\n\t\t\t}\n\t\t\tsizesAllLines.push(sizesThisLine);\n\t\t}\n\t\treturn sizesAllLines;\n\t}\n\tfunction calculateSizesOnAxisB(lines, sizesAllLines) {\n\t\tconst largestElementsForEachLine = [];\n\t\tconst largestSizesForEachLine = [];\n\t\tfor (let lineIndex = 0; lineIndex < lines.length; ++lineIndex) {\n\t\t\tconst line = lines[lineIndex];\n\t\t\tline.largestElement = null;\n\t\t\tline.largestSize = {\n\t\t\t\twidth: Number.NEGATIVE_INFINITY,\n\t\t\t\theight: Number.NEGATIVE_INFINITY\n\t\t\t};\n\t\t\tfor (let elementIndex = 0; elementIndex < line.length; ++elementIndex) {\n\t\t\t\tconst sizesThisElement = sizesAllLines[lineIndex][elementIndex];\n\t\t\t\tif (sizesThisElement[b.size] > line.largestSize[b.size]) {\n\t\t\t\t\tline.largestElement = line[elementIndex];\n\t\t\t\t\tline.largestSize = sizesThisElement;\n\t\t\t\t}\n\t\t\t}\n\t\t\tlargestElementsForEachLine.push(line.largestElement);\n\t\t\tlargestSizesForEachLine.push(line.largestSize);\n\t\t}\n\t\tconst idealRequiredSpace = calculateTotalSpace(largestSizesForEachLine, b);\n\t\tconst fittingAction = determineFittingAction(options[b.fitting], idealRequiredSpace, availableSpace[b.axis]);\n\t\tif (fittingAction === FITTING_ACTION.APPLY_STRETCHING) {\n\t\t\tstretchSizesToFitContainer(largestSizesForEachLine, idealRequiredSpace, b);\n\t\t} else if (fittingAction === FITTING_ACTION.APPLY_SHRINKING) {\n\t\t\tshrinkSizesToFitContainer(largestSizesForEachLine, idealRequiredSpace, b);\n\t\t}\n\t\tfor (let lineIndex = 0; lineIndex < lines.length; ++lineIndex) {\n\t\t\tconst line = lines[lineIndex];\n\t\t\tfor (let elementIndex = 0; elementIndex < line.length; ++elementIndex) {\n\t\t\t\tconst sizesForThisElement = sizesAllLines[lineIndex][elementIndex];\n\t\t\t\tconst currentSize = sizesForThisElement[b.size];\n\t\t\t\tconst availableSize = lines.length === 1 ? availableSpace[b.axis] : line.largestSize[b.size];\n\t\t\t\tconst elementFittingAction = determineFittingAction(options[b.fitting], currentSize, availableSize);\n\t\t\t\tif (elementFittingAction === FITTING_ACTION.APPLY_STRETCHING) {\n\t\t\t\t\tsizesForThisElement[b.size] = Math.min(availableSize, sizesForThisElement[b.maxSize]);\n\t\t\t\t} else if (elementFittingAction === FITTING_ACTION.APPLY_SHRINKING) {\n\t\t\t\t\tsizesForThisElement[b.size] = Math.max(availableSize, sizesForThisElement[b.minSize]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn sizesAllLines;\n\t}\n\tfunction determineFittingAction(fittingMode, currentSize, availableSize) {\n\t\tswitch (fittingMode) {\n\t\t\tcase FITTING_NONE:\n\t\t\t\treturn FITTING_ACTION.NONE;\n\t\t\tcase FITTING_STRETCH:\n\t\t\t\tif (currentSize < availableSize) {\n\t\t\t\t\treturn FITTING_ACTION.APPLY_STRETCHING;\n\t\t\t\t}\n\t\t\t\treturn FITTING_ACTION.NONE;\n\t\t\tcase FITTING_SHRINK:\n\t\t\t\tif (currentSize >= availableSize) {\n\t\t\t\t\treturn FITTING_ACTION.APPLY_SHRINKING;\n\t\t\t\t}\n\t\t\t\treturn FITTING_ACTION.NONE;\n\t\t\tcase FITTING_BOTH:\n\t\t\t\tif (currentSize < availableSize) {\n\t\t\t\t\treturn FITTING_ACTION.APPLY_STRETCHING;\n\t\t\t\t}\n\t\t\t\treturn FITTING_ACTION.APPLY_SHRINKING;\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Unrecognized fitting mode: ${fittingMode}`);\n\t\t}\n\t}\n\tfunction calculateTotalSpace(sizes, axis) {\n\t\tconst totalSizes = sumValues(sizes, axis.size);\n\t\tconst totalSpacing = (sizes.length - 1) * options.spacing[axis.axis];\n\t\treturn totalSizes + totalSpacing;\n\t}\n\tfunction stretchSizesToFitContainer(sizesThisLine, idealRequiredSpace, axis) {\n\t\tconst ascendingMaxSizeOrder = getTraversalOrder(sizesThisLine, axis.maxSize);\n\t\tconst fittingProportions = getNormalizedValues(sizesThisLine, axis.fittingProportion);\n\t\tconst fittingProportionSums = createSumArray(fittingProportions, ascendingMaxSizeOrder);\n\t\tlet remainingUndershoot = availableSpace[axis.axis] - idealRequiredSpace;\n\t\tfor (let i = 0; i < sizesThisLine.length; ++i) {\n\t\t\tconst index = ascendingMaxSizeOrder[i];\n\t\t\tconst targetIncrease = calculateAdjustment(index, remainingUndershoot, fittingProportions, fittingProportionSums);\n\t\t\tconst targetSize = sizesThisLine[index][axis.size] + targetIncrease;\n\t\t\tconst maxSize = sizesThisLine[index][axis.maxSize];\n\t\t\tconst actualSize = Math.min(targetSize, maxSize);\n\t\t\tsizesThisLine[index][axis.size] = actualSize;\n\t\t\tconst actualIncrease = Math.max(targetSize - actualSize, 0);\n\t\t\tconst appliedIncrease = targetIncrease - actualIncrease;\n\t\t\tremainingUndershoot -= appliedIncrease;\n\t\t}\n\t}\n\tfunction shrinkSizesToFitContainer(sizesThisLine, idealRequiredSpace, axis) {\n\t\tconst descendingMinSizeOrder = getTraversalOrder(sizesThisLine, axis.minSize, true);\n\t\tconst fittingProportions = getNormalizedValues(sizesThisLine, axis.fittingProportion);\n\t\tconst inverseFittingProportions = invertNormalizedValues(fittingProportions);\n\t\tconst inverseFittingProportionSums = createSumArray(inverseFittingProportions, descendingMinSizeOrder);\n\t\tlet remainingOvershoot = idealRequiredSpace - availableSpace[axis.axis];\n\t\tfor (let i = 0; i < sizesThisLine.length; ++i) {\n\t\t\tconst index = descendingMinSizeOrder[i];\n\t\t\tconst targetReduction = calculateAdjustment(index, remainingOvershoot, inverseFittingProportions, inverseFittingProportionSums);\n\t\t\tconst targetSize = sizesThisLine[index][axis.size] - targetReduction;\n\t\t\tconst minSize = sizesThisLine[index][axis.minSize];\n\t\t\tconst actualSize = Math.max(targetSize, minSize);\n\t\t\tsizesThisLine[index][axis.size] = actualSize;\n\t\t\tconst actualReduction = Math.max(actualSize - targetSize, 0);\n\t\t\tconst appliedReduction = targetReduction - actualReduction;\n\t\t\tremainingOvershoot -= appliedReduction;\n\t\t}\n\t}\n\tfunction calculateAdjustment(index, remainingAdjustment, fittingProportions, fittingProportionSums) {\n\t\tconst proportion = fittingProportions[index];\n\t\tconst sumOfRemainingProportions = fittingProportionSums[index];\n\t\tif (Math.abs(proportion) < 1e-5 && Math.abs(sumOfRemainingProportions) < 1e-5) {\n\t\t\treturn remainingAdjustment;\n\t\t}\n\t\treturn remainingAdjustment * proportion / sumOfRemainingProportions;\n\t}\n\tfunction calculateBasePositions(lines, sizes) {\n\t\tconst cursor = {};\n\t\tcursor[a.axis] = 0;\n\t\tcursor[b.axis] = 0;\n\t\tlines[a.size] = Number.NEGATIVE_INFINITY;\n\t\tconst positionsAllLines = [];\n\t\tfor (let lineIndex = 0; lineIndex < lines.length; ++lineIndex) {\n\t\t\tconst line = lines[lineIndex];\n\t\t\tif (line.length === 0) {\n\t\t\t\tpositionsAllLines.push([]);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst positionsThisLine = [];\n\t\t\tconst sizesThisLine = sizes[lineIndex];\n\t\t\tfor (let elementIndex = 0; elementIndex < line.length; ++elementIndex) {\n\t\t\t\tconst element = line[elementIndex];\n\t\t\t\tconst sizesThisElement = sizesThisLine[elementIndex];\n\t\t\t\tcursor[b.axis] -= minExtentB(element, sizesThisElement);\n\t\t\t\tcursor[a.axis] -= minExtentA(element, sizesThisElement);\n\t\t\t\tpositionsThisLine[elementIndex] = {};\n\t\t\t\tpositionsThisLine[elementIndex][a.axis] = cursor[a.axis];\n\t\t\t\tpositionsThisLine[elementIndex][b.axis] = cursor[b.axis];\n\t\t\t\tcursor[b.axis] += minExtentB(element, sizesThisElement);\n\t\t\t\tcursor[a.axis] += maxExtentA(element, sizesThisElement) + options.spacing[a.axis];\n\t\t\t}\n\t\t\tline[a.size] = cursor[a.axis] - options.spacing[a.axis];\n\t\t\tline[b.size] = line.largestSize[b.size];\n\t\t\tlines[a.size] = Math.max(lines[a.size], line[a.size]);\n\t\t\tcursor[a.axis] = 0;\n\t\t\tcursor[b.axis] += line[b.size] + options.spacing[b.axis];\n\t\t\tpositionsAllLines.push(positionsThisLine);\n\t\t}\n\t\tlines[b.size] = cursor[b.axis] - options.spacing[b.axis];\n\t\treturn positionsAllLines;\n\t}\n\tfunction applyAlignmentAndPadding(lines, sizes, positions) {\n\t\tconst alignmentA = options.alignment[a.axis];\n\t\tconst alignmentB = options.alignment[b.axis];\n\t\tconst paddingA = options.padding[a.axis];\n\t\tconst paddingB = options.padding[b.axis];\n\t\tfor (let lineIndex = 0; lineIndex < lines.length; ++lineIndex) {\n\t\t\tconst line = lines[lineIndex];\n\t\t\tconst sizesThisLine = sizes[lineIndex];\n\t\t\tconst positionsThisLine = positions[lineIndex];\n\t\t\tconst axisAOffset = (availableSpace[a.axis] - line[a.size]) * alignmentA + paddingA;\n\t\t\tconst axisBOffset = (availableSpace[b.axis] - lines[b.size]) * alignmentB + paddingB;\n\t\t\tfor (let elementIndex = 0; elementIndex < line.length; ++elementIndex) {\n\t\t\t\tconst withinLineAxisBOffset = (line[b.size] - sizesThisLine[elementIndex][b.size]) * options.alignment[b.axis];\n\t\t\t\tpositionsThisLine[elementIndex][a.axis] += axisAOffset;\n\t\t\t\tpositionsThisLine[elementIndex][b.axis] += axisBOffset + withinLineAxisBOffset;\n\t\t\t}\n\t\t}\n\t}\n\tfunction applySizesAndPositions(lines, sizes, positions) {\n\t\tfor (let lineIndex = 0; lineIndex < lines.length; ++lineIndex) {\n\t\t\tconst line = lines[lineIndex];\n\t\t\tconst sizesThisLine = sizes[lineIndex];\n\t\t\tconst positionsThisLine = positions[lineIndex];\n\t\t\tfor (let elementIndex = 0; elementIndex < line.length; ++elementIndex) {\n\t\t\t\tconst element = line[elementIndex];\n\t\t\t\telement[a.calculatedSize] = sizesThisLine[elementIndex][a.size];\n\t\t\t\telement[b.calculatedSize] = sizesThisLine[elementIndex][b.size];\n\t\t\t\tif (options.orientation === ORIENTATION_HORIZONTAL) {\n\t\t\t\t\telement.entity.setLocalPosition(positionsThisLine[elementIndex][a.axis], positionsThisLine[elementIndex][b.axis], element.entity.getLocalPosition().z);\n\t\t\t\t} else {\n\t\t\t\t\telement.entity.setLocalPosition(positionsThisLine[elementIndex][b.axis], positionsThisLine[elementIndex][a.axis], element.entity.getLocalPosition().z);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tfunction createLayoutInfo(lines) {\n\t\tconst layoutWidth = lines.width;\n\t\tconst layoutHeight = lines.height;\n\t\tconst xOffset = (availableSpace.x - layoutWidth) * options.alignment.x + options.padding.x;\n\t\tconst yOffset = (availableSpace.y - layoutHeight) * options.alignment.y + options.padding.y;\n\t\treturn {\n\t\t\tbounds: new Vec4(xOffset, yOffset, layoutWidth, layoutHeight)\n\t\t};\n\t}\n\tfunction getElementSizeProperties(elements) {\n\t\tconst sizeProperties = [];\n\t\tfor (let i = 0; i < elements.length; ++i) {\n\t\t\tconst element = elements[i];\n\t\t\tconst minWidth = Math.max(getProperty(element, 'minWidth'), 0);\n\t\t\tconst minHeight = Math.max(getProperty(element, 'minHeight'), 0);\n\t\t\tconst maxWidth = Math.max(getProperty(element, 'maxWidth'), minWidth);\n\t\t\tconst maxHeight = Math.max(getProperty(element, 'maxHeight'), minHeight);\n\t\t\tconst width = clamp(getProperty(element, 'width'), minWidth, maxWidth);\n\t\t\tconst height = clamp(getProperty(element, 'height'), minHeight, maxHeight);\n\t\t\tconst fitWidthProportion = getProperty(element, 'fitWidthProportion');\n\t\t\tconst fitHeightProportion = getProperty(element, 'fitHeightProportion');\n\t\t\tsizeProperties.push({\n\t\t\t\tminWidth: minWidth,\n\t\t\t\tminHeight: minHeight,\n\t\t\t\tmaxWidth: maxWidth,\n\t\t\t\tmaxHeight: maxHeight,\n\t\t\t\twidth: width,\n\t\t\t\theight: height,\n\t\t\t\tfitWidthProportion: fitWidthProportion,\n\t\t\t\tfitHeightProportion: fitHeightProportion\n\t\t\t});\n\t\t}\n\t\treturn sizeProperties;\n\t}\n\tfunction getProperty(element, propertyName) {\n\t\tconst layoutChildComponent = element.entity.layoutchild;\n\t\tif (layoutChildComponent && layoutChildComponent.enabled && layoutChildComponent[propertyName] !== undefined && layoutChildComponent[propertyName] !== null) {\n\t\t\treturn layoutChildComponent[propertyName];\n\t\t} else if (element[propertyName] !== undefined) {\n\t\t\treturn element[propertyName];\n\t\t}\n\t\treturn PROPERTY_DEFAULTS[propertyName];\n\t}\n\tfunction clamp(value, min, max) {\n\t\treturn Math.min(Math.max(value, min), max);\n\t}\n\tfunction sumValues(items, propertyName) {\n\t\treturn items.reduce((accumulator, current) => {\n\t\t\treturn accumulator + current[propertyName];\n\t\t}, 0);\n\t}\n\tfunction getNormalizedValues(items, propertyName) {\n\t\tconst sum = sumValues(items, propertyName);\n\t\tconst normalizedValues = [];\n\t\tconst numItems = items.length;\n\t\tif (sum === 0) {\n\t\t\tfor (let i = 0; i < numItems; ++i) {\n\t\t\t\tnormalizedValues.push(1 / numItems);\n\t\t\t}\n\t\t} else {\n\t\t\tfor (let i = 0; i < numItems; ++i) {\n\t\t\t\tnormalizedValues.push(items[i][propertyName] / sum);\n\t\t\t}\n\t\t}\n\t\treturn normalizedValues;\n\t}\n\tfunction invertNormalizedValues(values) {\n\t\tif (values.length === 1) {\n\t\t\treturn [1];\n\t\t}\n\t\tconst invertedValues = [];\n\t\tconst numValues = values.length;\n\t\tfor (let i = 0; i < numValues; ++i) {\n\t\t\tinvertedValues.push((1 - values[i]) / (numValues - 1));\n\t\t}\n\t\treturn invertedValues;\n\t}\n\tfunction getTraversalOrder(items, orderBy, descending) {\n\t\titems.forEach(assignIndex);\n\t\treturn items.slice().sort((itemA, itemB) => {\n\t\t\treturn descending ? itemB[orderBy] - itemA[orderBy] : itemA[orderBy] - itemB[orderBy];\n\t\t}).map(getIndex);\n\t}\n\tfunction assignIndex(item, index) {\n\t\titem.index = index;\n\t}\n\tfunction getIndex(item) {\n\t\treturn item.index;\n\t}\n\tfunction createSumArray(values, order) {\n\t\tconst sumArray = [];\n\t\tsumArray[order[values.length - 1]] = values[order[values.length - 1]];\n\t\tfor (let i = values.length - 2; i >= 0; --i) {\n\t\t\tsumArray[order[i]] = sumArray[order[i + 1]] + values[order[i]];\n\t\t}\n\t\treturn sumArray;\n\t}\n\treturn calculateAll;\n}\nconst CALCULATE_FNS = {};\nCALCULATE_FNS[ORIENTATION_HORIZONTAL] = createCalculator(ORIENTATION_HORIZONTAL);\nCALCULATE_FNS[ORIENTATION_VERTICAL] = createCalculator(ORIENTATION_VERTICAL);\nclass LayoutCalculator {\n\tcalculateLayout(elements, options) {\n\t\tconst calculateFn = CALCULATE_FNS[options.orientation];\n\t\tif (!calculateFn) {\n\t\t\tthrow new Error(`Unrecognized orientation value: ${options.orientation}`);\n\t\t} else {\n\t\t\treturn calculateFn(elements, options);\n\t\t}\n\t}\n}\n\nfunction getElement(entity) {\n\treturn entity.element;\n}\nfunction isEnabledAndHasEnabledElement(entity) {\n\treturn entity.enabled && entity.element && entity.element.enabled;\n}\nclass LayoutGroupComponent extends Component {\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis._orientation = ORIENTATION_HORIZONTAL;\n\t\tthis._reverseX = false;\n\t\tthis._reverseY = true;\n\t\tthis._alignment = new Vec2(0, 1);\n\t\tthis._padding = new Vec4();\n\t\tthis._spacing = new Vec2();\n\t\tthis._widthFitting = FITTING_NONE;\n\t\tthis._heightFitting = FITTING_NONE;\n\t\tthis._wrap = false;\n\t\tthis._layoutCalculator = new LayoutCalculator();\n\t\tthis._listenForReflowEvents(this.entity, 'on');\n\t\tthis.entity.children.forEach(child => {\n\t\t\tthis._listenForReflowEvents(child, 'on');\n\t\t});\n\t\tthis.entity.on('childinsert', this._onChildInsert, this);\n\t\tthis.entity.on('childremove', this._onChildRemove, this);\n\t\tsystem.app.systems.element.on('add', this._onElementOrLayoutComponentAdd, this);\n\t\tsystem.app.systems.element.on('beforeremove', this._onElementOrLayoutComponentRemove, this);\n\t\tsystem.app.systems.layoutchild.on('add', this._onElementOrLayoutComponentAdd, this);\n\t\tsystem.app.systems.layoutchild.on('beforeremove', this._onElementOrLayoutComponentRemove, this);\n\t}\n\tset orientation(value) {\n\t\tif (value !== this._orientation) {\n\t\t\tthis._orientation = value;\n\t\t\tthis._scheduleReflow();\n\t\t}\n\t}\n\tget orientation() {\n\t\treturn this._orientation;\n\t}\n\tset reverseX(value) {\n\t\tif (value !== this._reverseX) {\n\t\t\tthis._reverseX = value;\n\t\t\tthis._scheduleReflow();\n\t\t}\n\t}\n\tget reverseX() {\n\t\treturn this._reverseX;\n\t}\n\tset reverseY(value) {\n\t\tif (value !== this._reverseY) {\n\t\t\tthis._reverseY = value;\n\t\t\tthis._scheduleReflow();\n\t\t}\n\t}\n\tget reverseY() {\n\t\treturn this._reverseY;\n\t}\n\tset alignment(value) {\n\t\tif (!value.equals(this._alignment)) {\n\t\t\tthis._alignment.copy(value);\n\t\t\tthis._scheduleReflow();\n\t\t}\n\t}\n\tget alignment() {\n\t\treturn this._alignment;\n\t}\n\tset padding(value) {\n\t\tif (!value.equals(this._padding)) {\n\t\t\tthis._padding.copy(value);\n\t\t\tthis._scheduleReflow();\n\t\t}\n\t}\n\tget padding() {\n\t\treturn this._padding;\n\t}\n\tset spacing(value) {\n\t\tif (!value.equals(this._spacing)) {\n\t\t\tthis._spacing.copy(value);\n\t\t\tthis._scheduleReflow();\n\t\t}\n\t}\n\tget spacing() {\n\t\treturn this._spacing;\n\t}\n\tset widthFitting(value) {\n\t\tif (value !== this._widthFitting) {\n\t\t\tthis._widthFitting = value;\n\t\t\tthis._scheduleReflow();\n\t\t}\n\t}\n\tget widthFitting() {\n\t\treturn this._widthFitting;\n\t}\n\tset heightFitting(value) {\n\t\tif (value !== this._heightFitting) {\n\t\t\tthis._heightFitting = value;\n\t\t\tthis._scheduleReflow();\n\t\t}\n\t}\n\tget heightFitting() {\n\t\treturn this._heightFitting;\n\t}\n\tset wrap(value) {\n\t\tif (value !== this._wrap) {\n\t\t\tthis._wrap = value;\n\t\t\tthis._scheduleReflow();\n\t\t}\n\t}\n\tget wrap() {\n\t\treturn this._wrap;\n\t}\n\t_isSelfOrChild(entity) {\n\t\treturn entity === this.entity || this.entity.children.indexOf(entity) !== -1;\n\t}\n\t_listenForReflowEvents(target, onOff) {\n\t\tif (target.element) {\n\t\t\ttarget.element[onOff]('enableelement', this._scheduleReflow, this);\n\t\t\ttarget.element[onOff]('disableelement', this._scheduleReflow, this);\n\t\t\ttarget.element[onOff]('resize', this._scheduleReflow, this);\n\t\t\ttarget.element[onOff]('set:pivot', this._scheduleReflow, this);\n\t\t}\n\t\tif (target.layoutchild) {\n\t\t\ttarget.layoutchild[onOff]('set_enabled', this._scheduleReflow, this);\n\t\t\ttarget.layoutchild[onOff]('resize', this._scheduleReflow, this);\n\t\t}\n\t}\n\t_onElementOrLayoutComponentAdd(entity) {\n\t\tif (this._isSelfOrChild(entity)) {\n\t\t\tthis._listenForReflowEvents(entity, 'on');\n\t\t\tthis._scheduleReflow();\n\t\t}\n\t}\n\t_onElementOrLayoutComponentRemove(entity) {\n\t\tif (this._isSelfOrChild(entity)) {\n\t\t\tthis._listenForReflowEvents(entity, 'off');\n\t\t\tthis._scheduleReflow();\n\t\t}\n\t}\n\t_onChildInsert(child) {\n\t\tthis._listenForReflowEvents(child, 'on');\n\t\tthis._scheduleReflow();\n\t}\n\t_onChildRemove(child) {\n\t\tthis._listenForReflowEvents(child, 'off');\n\t\tthis._scheduleReflow();\n\t}\n\t_scheduleReflow() {\n\t\tif (this.enabled && this.entity && this.entity.enabled && !this._isPerformingReflow) {\n\t\t\tthis.system.scheduleReflow(this);\n\t\t}\n\t}\n\treflow() {\n\t\tconst container = getElement(this.entity);\n\t\tconst elements = this.entity.children.filter(isEnabledAndHasEnabledElement).map(getElement);\n\t\tif (!container || elements.length === 0) {\n\t\t\treturn;\n\t\t}\n\t\tconst containerWidth = Math.max(container.calculatedWidth, 0);\n\t\tconst containerHeight = Math.max(container.calculatedHeight, 0);\n\t\tconst options = {\n\t\t\torientation: this._orientation,\n\t\t\treverseX: this._reverseX,\n\t\t\treverseY: this._reverseY,\n\t\t\talignment: this._alignment,\n\t\t\tpadding: this._padding,\n\t\t\tspacing: this._spacing,\n\t\t\twidthFitting: this._widthFitting,\n\t\t\theightFitting: this._heightFitting,\n\t\t\twrap: this._wrap,\n\t\t\tcontainerSize: new Vec2(containerWidth, containerHeight)\n\t\t};\n\t\tthis._isPerformingReflow = true;\n\t\tconst layoutInfo = this._layoutCalculator.calculateLayout(elements, options);\n\t\tthis._isPerformingReflow = false;\n\t\tthis.fire('reflow', layoutInfo);\n\t}\n\tonEnable() {\n\t\tthis._scheduleReflow();\n\t}\n\tonRemove() {\n\t\tthis.entity.off('childinsert', this._onChildInsert, this);\n\t\tthis.entity.off('childremove', this._onChildRemove, this);\n\t\tthis._listenForReflowEvents(this.entity, 'off');\n\t\tthis.entity.children.forEach(child => {\n\t\t\tthis._listenForReflowEvents(child, 'off');\n\t\t});\n\t\tthis.system.app.systems.element.off('add', this._onElementOrLayoutComponentAdd, this);\n\t\tthis.system.app.systems.element.off('beforeremove', this._onElementOrLayoutComponentRemove, this);\n\t\tthis.system.app.systems.layoutchild.off('add', this._onElementOrLayoutComponentAdd, this);\n\t\tthis.system.app.systems.layoutchild.off('beforeremove', this._onElementOrLayoutComponentRemove, this);\n\t}\n}\n\nclass LayoutGroupComponentData {\n\tconstructor() {\n\t\tthis.enabled = true;\n\t}\n}\n\nconst _schema$d = ['enabled'];\nconst MAX_ITERATIONS = 100;\nclass LayoutGroupComponentSystem extends ComponentSystem {\n\tconstructor(app) {\n\t\tsuper(app);\n\t\tthis.id = 'layoutgroup';\n\t\tthis.ComponentType = LayoutGroupComponent;\n\t\tthis.DataType = LayoutGroupComponentData;\n\t\tthis.schema = _schema$d;\n\t\tthis._reflowQueue = [];\n\t\tthis.on('beforeremove', this._onRemoveComponent, this);\n\t\tthis.app.systems.on('postUpdate', this._onPostUpdate, this);\n\t}\n\tinitializeComponentData(component, data, properties) {\n\t\tif (data.enabled !== undefined) component.enabled = data.enabled;\n\t\tif (data.orientation !== undefined) component.orientation = data.orientation;\n\t\tif (data.reverseX !== undefined) component.reverseX = data.reverseX;\n\t\tif (data.reverseY !== undefined) component.reverseY = data.reverseY;\n\t\tif (data.alignment !== undefined) {\n\t\t\tcomponent.alignment = Array.isArray(data.alignment) ? new Vec2(data.alignment) : data.alignment;\n\t\t}\n\t\tif (data.padding !== undefined) {\n\t\t\tcomponent.padding = Array.isArray(data.padding) ? new Vec4(data.padding) : data.padding;\n\t\t}\n\t\tif (data.spacing !== undefined) {\n\t\t\tcomponent.spacing = Array.isArray(data.spacing) ? new Vec2(data.spacing) : data.spacing;\n\t\t}\n\t\tif (data.widthFitting !== undefined) component.widthFitting = data.widthFitting;\n\t\tif (data.heightFitting !== undefined) component.heightFitting = data.heightFitting;\n\t\tif (data.wrap !== undefined) component.wrap = data.wrap;\n\t\tsuper.initializeComponentData(component, data, properties);\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst layoutGroup = entity.layoutgroup;\n\t\treturn this.addComponent(clone, {\n\t\t\tenabled: layoutGroup.enabled,\n\t\t\torientation: layoutGroup.orientation,\n\t\t\treverseX: layoutGroup.reverseX,\n\t\t\treverseY: layoutGroup.reverseY,\n\t\t\talignment: layoutGroup.alignment,\n\t\t\tpadding: layoutGroup.padding,\n\t\t\tspacing: layoutGroup.spacing,\n\t\t\twidthFitting: layoutGroup.widthFitting,\n\t\t\theightFitting: layoutGroup.heightFitting,\n\t\t\twrap: layoutGroup.wrap\n\t\t});\n\t}\n\tscheduleReflow(component) {\n\t\tif (this._reflowQueue.indexOf(component) === -1) {\n\t\t\tthis._reflowQueue.push(component);\n\t\t}\n\t}\n\t_onPostUpdate() {\n\t\tthis._processReflowQueue();\n\t}\n\t_processReflowQueue() {\n\t\tif (this._reflowQueue.length === 0) {\n\t\t\treturn;\n\t\t}\n\t\tlet iterationCount = 0;\n\t\twhile (this._reflowQueue.length > 0) {\n\t\t\tconst queue = this._reflowQueue.slice();\n\t\t\tthis._reflowQueue.length = 0;\n\t\t\tqueue.sort((componentA, componentB) => {\n\t\t\t\treturn componentA.entity.graphDepth - componentB.entity.graphDepth;\n\t\t\t});\n\t\t\tfor (let i = 0; i < queue.length; ++i) {\n\t\t\t\tqueue[i].reflow();\n\t\t\t}\n\t\t\tif (++iterationCount >= MAX_ITERATIONS) {\n\t\t\t\tconsole.warn('Max reflow iterations limit reached, bailing.');\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t_onRemoveComponent(entity, component) {\n\t\tcomponent.onRemove();\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.app.systems.off('postUpdate', this._onPostUpdate, this);\n\t}\n}\nComponent._buildAccessors(LayoutGroupComponent.prototype, _schema$d);\n\nconst shapePrimitives = [];\nfunction getShapePrimitive(device, type) {\n\tlet primData = null;\n\tfor (let i = 0; i < shapePrimitives.length; i++) {\n\t\tif (shapePrimitives[i].type === type && shapePrimitives[i].device === device) {\n\t\t\tprimData = shapePrimitives[i].primData;\n\t\t}\n\t}\n\tif (!primData) {\n\t\tlet mesh, area;\n\t\tswitch (type) {\n\t\t\tcase 'box':\n\t\t\t\tmesh = Mesh.fromGeometry(device, new BoxGeometry());\n\t\t\t\tarea = {\n\t\t\t\t\tx: 2,\n\t\t\t\t\ty: 2,\n\t\t\t\t\tz: 2,\n\t\t\t\t\tuv: 2.0 / 3\n\t\t\t\t};\n\t\t\t\tbreak;\n\t\t\tcase 'capsule':\n\t\t\t\tmesh = Mesh.fromGeometry(device, new CapsuleGeometry({\n\t\t\t\t\tradius: 0.5,\n\t\t\t\t\theight: 2\n\t\t\t\t}));\n\t\t\t\tarea = {\n\t\t\t\t\tx: Math.PI * 2,\n\t\t\t\t\ty: Math.PI,\n\t\t\t\t\tz: Math.PI * 2,\n\t\t\t\t\tuv: 1.0 / 3 + 1.0 / 3 / 3 * 2\n\t\t\t\t};\n\t\t\t\tbreak;\n\t\t\tcase 'cone':\n\t\t\t\tmesh = Mesh.fromGeometry(device, new ConeGeometry({\n\t\t\t\t\tbaseRadius: 0.5,\n\t\t\t\t\tpeakRadius: 0,\n\t\t\t\t\theight: 1\n\t\t\t\t}));\n\t\t\t\tarea = {\n\t\t\t\t\tx: 2.54,\n\t\t\t\t\ty: 2.54,\n\t\t\t\t\tz: 2.54,\n\t\t\t\t\tuv: 1.0 / 3 + 1.0 / 3 / 3\n\t\t\t\t};\n\t\t\t\tbreak;\n\t\t\tcase 'cylinder':\n\t\t\t\tmesh = Mesh.fromGeometry(device, new CylinderGeometry({\n\t\t\t\t\tradius: 0.5,\n\t\t\t\t\theight: 1\n\t\t\t\t}));\n\t\t\t\tarea = {\n\t\t\t\t\tx: Math.PI,\n\t\t\t\t\ty: 0.79 * 2,\n\t\t\t\t\tz: Math.PI,\n\t\t\t\t\tuv: 1.0 / 3 + 1.0 / 3 / 3 * 2\n\t\t\t\t};\n\t\t\t\tbreak;\n\t\t\tcase 'plane':\n\t\t\t\tmesh = Mesh.fromGeometry(device, new PlaneGeometry({\n\t\t\t\t\thalfExtents: new Vec2(0.5, 0.5),\n\t\t\t\t\twidthSegments: 1,\n\t\t\t\t\tlengthSegments: 1\n\t\t\t\t}));\n\t\t\t\tarea = {\n\t\t\t\t\tx: 0,\n\t\t\t\t\ty: 1,\n\t\t\t\t\tz: 0,\n\t\t\t\t\tuv: 1\n\t\t\t\t};\n\t\t\t\tbreak;\n\t\t\tcase 'sphere':\n\t\t\t\tmesh = Mesh.fromGeometry(device, new SphereGeometry({\n\t\t\t\t\tradius: 0.5\n\t\t\t\t}));\n\t\t\t\tarea = {\n\t\t\t\t\tx: Math.PI,\n\t\t\t\t\ty: Math.PI,\n\t\t\t\t\tz: Math.PI,\n\t\t\t\t\tuv: 1\n\t\t\t\t};\n\t\t\t\tbreak;\n\t\t\tcase 'torus':\n\t\t\t\tmesh = Mesh.fromGeometry(device, new TorusGeometry({\n\t\t\t\t\ttubeRadius: 0.2,\n\t\t\t\t\tringRadius: 0.3\n\t\t\t\t}));\n\t\t\t\tarea = {\n\t\t\t\t\tx: Math.PI * 0.5 * 0.5 - Math.PI * 0.1 * 0.1,\n\t\t\t\t\ty: 0.4,\n\t\t\t\t\tz: 0.4,\n\t\t\t\t\tuv: 1\n\t\t\t\t};\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Invalid primitive type: ${type}`);\n\t\t}\n\t\tmesh.incRefCount();\n\t\tprimData = {\n\t\t\tmesh: mesh,\n\t\t\tarea: area\n\t\t};\n\t\tshapePrimitives.push({\n\t\t\ttype: type,\n\t\t\tdevice: device,\n\t\t\tprimData: primData\n\t\t});\n\t}\n\treturn primData;\n}\n\nclass ModelComponent extends Component {\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis._type = 'asset';\n\t\tthis._asset = null;\n\t\tthis._model = null;\n\t\tthis._mapping = {};\n\t\tthis._castShadows = true;\n\t\tthis._receiveShadows = true;\n\t\tthis._materialAsset = null;\n\t\tthis._material = void 0;\n\t\tthis._castShadowsLightmap = true;\n\t\tthis._lightmapped = false;\n\t\tthis._lightmapSizeMultiplier = 1;\n\t\tthis.isStatic = false;\n\t\tthis._layers = [LAYERID_WORLD];\n\t\tthis._batchGroupId = -1;\n\t\tthis._customAabb = null;\n\t\tthis._area = null;\n\t\tthis._materialEvents = null;\n\t\tthis._clonedModel = false;\n\t\tthis._evtLayersChanged = null;\n\t\tthis._evtLayerAdded = null;\n\t\tthis._evtLayerRemoved = null;\n\t\tthis._material = system.defaultMaterial;\n\t\tentity.on('remove', this.onRemoveChild, this);\n\t\tentity.on('removehierarchy', this.onRemoveChild, this);\n\t\tentity.on('insert', this.onInsertChild, this);\n\t\tentity.on('inserthierarchy', this.onInsertChild, this);\n\t}\n\tset meshInstances(value) {\n\t\tif (!this._model) {\n\t\t\treturn;\n\t\t}\n\t\tthis._model.meshInstances = value;\n\t}\n\tget meshInstances() {\n\t\tif (!this._model) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._model.meshInstances;\n\t}\n\tset customAabb(value) {\n\t\tthis._customAabb = value;\n\t\tif (this._model) {\n\t\t\tconst mi = this._model.meshInstances;\n\t\t\tif (mi) {\n\t\t\t\tfor (let i = 0; i < mi.length; i++) {\n\t\t\t\t\tmi[i].setCustomAabb(this._customAabb);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget customAabb() {\n\t\treturn this._customAabb;\n\t}\n\tset type(value) {\n\t\tif (this._type === value) return;\n\t\tthis._area = null;\n\t\tthis._type = value;\n\t\tif (value === 'asset') {\n\t\t\tif (this._asset !== null) {\n\t\t\t\tthis._bindModelAsset(this._asset);\n\t\t\t} else {\n\t\t\t\tthis.model = null;\n\t\t\t}\n\t\t} else {\n\t\t\tconst primData = getShapePrimitive(this.system.app.graphicsDevice, value);\n\t\t\tthis._area = primData.area;\n\t\t\tconst mesh = primData.mesh;\n\t\t\tconst node = new GraphNode();\n\t\t\tconst model = new Model();\n\t\t\tmodel.graph = node;\n\t\t\tmodel.meshInstances = [new MeshInstance(mesh, this._material, node)];\n\t\t\tthis.model = model;\n\t\t\tthis._asset = null;\n\t\t}\n\t}\n\tget type() {\n\t\treturn this._type;\n\t}\n\tset asset(value) {\n\t\tconst assets = this.system.app.assets;\n\t\tlet _id = value;\n\t\tif (value instanceof Asset) {\n\t\t\t_id = value.id;\n\t\t}\n\t\tif (this._asset !== _id) {\n\t\t\tif (this._asset) {\n\t\t\t\tassets.off(`add:${this._asset}`, this._onModelAssetAdded, this);\n\t\t\t\tconst _prev = assets.get(this._asset);\n\t\t\t\tif (_prev) {\n\t\t\t\t\tthis._unbindModelAsset(_prev);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._asset = _id;\n\t\t\tif (this._asset) {\n\t\t\t\tconst asset = assets.get(this._asset);\n\t\t\t\tif (!asset) {\n\t\t\t\t\tthis.model = null;\n\t\t\t\t\tassets.on(`add:${this._asset}`, this._onModelAssetAdded, this);\n\t\t\t\t} else {\n\t\t\t\t\tthis._bindModelAsset(asset);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.model = null;\n\t\t\t}\n\t\t}\n\t}\n\tget asset() {\n\t\treturn this._asset;\n\t}\n\tset model(value) {\n\t\tif (this._model === value) {\n\t\t\treturn;\n\t\t}\n\t\tif (value && value._immutable) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._model) {\n\t\t\tthis._model._immutable = false;\n\t\t\tthis.removeModelFromLayers();\n\t\t\tthis._model.getGraph().destroy();\n\t\t\tdelete this._model._entity;\n\t\t\tif (this._clonedModel) {\n\t\t\t\tthis._model.destroy();\n\t\t\t\tthis._clonedModel = false;\n\t\t\t}\n\t\t}\n\t\tthis._model = value;\n\t\tif (this._model) {\n\t\t\tthis._model._immutable = true;\n\t\t\tconst meshInstances = this._model.meshInstances;\n\t\t\tfor (let i = 0; i < meshInstances.length; i++) {\n\t\t\t\tmeshInstances[i].castShadow = this._castShadows;\n\t\t\t\tmeshInstances[i].receiveShadow = this._receiveShadows;\n\t\t\t\tmeshInstances[i].setCustomAabb(this._customAabb);\n\t\t\t}\n\t\t\tthis.lightmapped = this._lightmapped;\n\t\t\tthis.entity.addChild(this._model.graph);\n\t\t\tif (this.enabled && this.entity.enabled) {\n\t\t\t\tthis.addModelToLayers();\n\t\t\t}\n\t\t\tthis._model._entity = this.entity;\n\t\t\tif (this.entity.animation) {\n\t\t\t\tthis.entity.animation.setModel(this._model);\n\t\t\t}\n\t\t\tif (this.entity.anim) {\n\t\t\t\tthis.entity.anim.rebind();\n\t\t\t}\n\t\t\tif (this.type === 'asset') {\n\t\t\t\tthis.mapping = this._mapping;\n\t\t\t} else {\n\t\t\t\tthis._unsetMaterialEvents();\n\t\t\t}\n\t\t}\n\t}\n\tget model() {\n\t\treturn this._model;\n\t}\n\tset lightmapped(value) {\n\t\tif (value !== this._lightmapped) {\n\t\t\tthis._lightmapped = value;\n\t\t\tif (this._model) {\n\t\t\t\tconst mi = this._model.meshInstances;\n\t\t\t\tfor (let i = 0; i < mi.length; i++) {\n\t\t\t\t\tmi[i].setLightmapped(value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget lightmapped() {\n\t\treturn this._lightmapped;\n\t}\n\tset castShadows(value) {\n\t\tif (this._castShadows === value) return;\n\t\tconst model = this._model;\n\t\tif (model) {\n\t\t\tconst layers = this.layers;\n\t\t\tconst scene = this.system.app.scene;\n\t\t\tif (this._castShadows && !value) {\n\t\t\t\tfor (let i = 0; i < layers.length; i++) {\n\t\t\t\t\tconst layer = this.system.app.scene.layers.getLayerById(this.layers[i]);\n\t\t\t\t\tif (!layer) continue;\n\t\t\t\t\tlayer.removeShadowCasters(model.meshInstances);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst meshInstances = model.meshInstances;\n\t\t\tfor (let i = 0; i < meshInstances.length; i++) {\n\t\t\t\tmeshInstances[i].castShadow = value;\n\t\t\t}\n\t\t\tif (!this._castShadows && value) {\n\t\t\t\tfor (let i = 0; i < layers.length; i++) {\n\t\t\t\t\tconst layer = scene.layers.getLayerById(layers[i]);\n\t\t\t\t\tif (!layer) continue;\n\t\t\t\t\tlayer.addShadowCasters(model.meshInstances);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._castShadows = value;\n\t}\n\tget castShadows() {\n\t\treturn this._castShadows;\n\t}\n\tset receiveShadows(value) {\n\t\tif (this._receiveShadows === value) return;\n\t\tthis._receiveShadows = value;\n\t\tif (this._model) {\n\t\t\tconst meshInstances = this._model.meshInstances;\n\t\t\tfor (let i = 0, len = meshInstances.length; i < len; i++) {\n\t\t\t\tmeshInstances[i].receiveShadow = value;\n\t\t\t}\n\t\t}\n\t}\n\tget receiveShadows() {\n\t\treturn this._receiveShadows;\n\t}\n\tset castShadowsLightmap(value) {\n\t\tthis._castShadowsLightmap = value;\n\t}\n\tget castShadowsLightmap() {\n\t\treturn this._castShadowsLightmap;\n\t}\n\tset lightmapSizeMultiplier(value) {\n\t\tthis._lightmapSizeMultiplier = value;\n\t}\n\tget lightmapSizeMultiplier() {\n\t\treturn this._lightmapSizeMultiplier;\n\t}\n\tset layers(value) {\n\t\tconst layers = this.system.app.scene.layers;\n\t\tif (this.meshInstances) {\n\t\t\tfor (let i = 0; i < this._layers.length; i++) {\n\t\t\t\tconst layer = layers.getLayerById(this._layers[i]);\n\t\t\t\tif (!layer) continue;\n\t\t\t\tlayer.removeMeshInstances(this.meshInstances);\n\t\t\t}\n\t\t}\n\t\tthis._layers.length = 0;\n\t\tfor (let i = 0; i < value.length; i++) {\n\t\t\tthis._layers[i] = value[i];\n\t\t}\n\t\tif (!this.enabled || !this.entity.enabled || !this.meshInstances) return;\n\t\tfor (let i = 0; i < this._layers.length; i++) {\n\t\t\tconst layer = layers.getLayerById(this._layers[i]);\n\t\t\tif (!layer) continue;\n\t\t\tlayer.addMeshInstances(this.meshInstances);\n\t\t}\n\t}\n\tget layers() {\n\t\treturn this._layers;\n\t}\n\tset batchGroupId(value) {\n\t\tif (this._batchGroupId === value) return;\n\t\tif (this.entity.enabled && this._batchGroupId >= 0) {\n\t\t\tvar _this$system$app$batc;\n\t\t\t(_this$system$app$batc = this.system.app.batcher) == null || _this$system$app$batc.remove(BatchGroup.MODEL, this.batchGroupId, this.entity);\n\t\t}\n\t\tif (this.entity.enabled && value >= 0) {\n\t\t\tvar _this$system$app$batc2;\n\t\t\t(_this$system$app$batc2 = this.system.app.batcher) == null || _this$system$app$batc2.insert(BatchGroup.MODEL, value, this.entity);\n\t\t}\n\t\tif (value < 0 && this._batchGroupId >= 0 && this.enabled && this.entity.enabled) {\n\t\t\tthis.addModelToLayers();\n\t\t}\n\t\tthis._batchGroupId = value;\n\t}\n\tget batchGroupId() {\n\t\treturn this._batchGroupId;\n\t}\n\tset materialAsset(value) {\n\t\tlet _id = value;\n\t\tif (value instanceof Asset) {\n\t\t\t_id = value.id;\n\t\t}\n\t\tconst assets = this.system.app.assets;\n\t\tif (_id !== this._materialAsset) {\n\t\t\tif (this._materialAsset) {\n\t\t\t\tassets.off(`add:${this._materialAsset}`, this._onMaterialAssetAdd, this);\n\t\t\t\tconst _prev = assets.get(this._materialAsset);\n\t\t\t\tif (_prev) {\n\t\t\t\t\tthis._unbindMaterialAsset(_prev);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._materialAsset = _id;\n\t\t\tif (this._materialAsset) {\n\t\t\t\tconst asset = assets.get(this._materialAsset);\n\t\t\t\tif (!asset) {\n\t\t\t\t\tthis._setMaterial(this.system.defaultMaterial);\n\t\t\t\t\tassets.on(`add:${this._materialAsset}`, this._onMaterialAssetAdd, this);\n\t\t\t\t} else {\n\t\t\t\t\tthis._bindMaterialAsset(asset);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._setMaterial(this.system.defaultMaterial);\n\t\t\t}\n\t\t}\n\t}\n\tget materialAsset() {\n\t\treturn this._materialAsset;\n\t}\n\tset material(value) {\n\t\tif (this._material === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis.materialAsset = null;\n\t\tthis._setMaterial(value);\n\t}\n\tget material() {\n\t\treturn this._material;\n\t}\n\tset mapping(value) {\n\t\tif (this._type !== 'asset') {\n\t\t\treturn;\n\t\t}\n\t\tthis._unsetMaterialEvents();\n\t\tif (!value) {\n\t\t\tvalue = {};\n\t\t}\n\t\tthis._mapping = value;\n\t\tif (!this._model) return;\n\t\tconst meshInstances = this._model.meshInstances;\n\t\tconst modelAsset = this.asset ? this.system.app.assets.get(this.asset) : null;\n\t\tconst assetMapping = modelAsset ? modelAsset.data.mapping : null;\n\t\tlet asset = null;\n\t\tfor (let i = 0, len = meshInstances.length; i < len; i++) {\n\t\t\tif (value[i] !== undefined) {\n\t\t\t\tif (value[i]) {\n\t\t\t\t\tasset = this.system.app.assets.get(value[i]);\n\t\t\t\t\tthis._loadAndSetMeshInstanceMaterial(asset, meshInstances[i], i);\n\t\t\t\t} else {\n\t\t\t\t\tmeshInstances[i].material = this.system.defaultMaterial;\n\t\t\t\t}\n\t\t\t} else if (assetMapping) {\n\t\t\t\tif (assetMapping[i] && (assetMapping[i].material || assetMapping[i].path)) {\n\t\t\t\t\tif (assetMapping[i].material !== undefined) {\n\t\t\t\t\t\tasset = this.system.app.assets.get(assetMapping[i].material);\n\t\t\t\t\t} else if (assetMapping[i].path !== undefined) {\n\t\t\t\t\t\tconst url = this._getMaterialAssetUrl(assetMapping[i].path);\n\t\t\t\t\t\tif (url) {\n\t\t\t\t\t\t\tasset = this.system.app.assets.getByUrl(url);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tthis._loadAndSetMeshInstanceMaterial(asset, meshInstances[i], i);\n\t\t\t\t} else {\n\t\t\t\t\tmeshInstances[i].material = this.system.defaultMaterial;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget mapping() {\n\t\treturn this._mapping;\n\t}\n\taddModelToLayers() {\n\t\tconst layers = this.system.app.scene.layers;\n\t\tfor (let i = 0; i < this._layers.length; i++) {\n\t\t\tconst layer = layers.getLayerById(this._layers[i]);\n\t\t\tif (layer) {\n\t\t\t\tlayer.addMeshInstances(this.meshInstances);\n\t\t\t}\n\t\t}\n\t}\n\tremoveModelFromLayers() {\n\t\tconst layers = this.system.app.scene.layers;\n\t\tfor (let i = 0; i < this._layers.length; i++) {\n\t\t\tconst layer = layers.getLayerById(this._layers[i]);\n\t\t\tif (!layer) continue;\n\t\t\tlayer.removeMeshInstances(this.meshInstances);\n\t\t}\n\t}\n\tonRemoveChild() {\n\t\tif (this._model) {\n\t\t\tthis.removeModelFromLayers();\n\t\t}\n\t}\n\tonInsertChild() {\n\t\tif (this._model && this.enabled && this.entity.enabled) {\n\t\t\tthis.addModelToLayers();\n\t\t}\n\t}\n\tonRemove() {\n\t\tthis.asset = null;\n\t\tthis.model = null;\n\t\tthis.materialAsset = null;\n\t\tthis._unsetMaterialEvents();\n\t\tthis.entity.off('remove', this.onRemoveChild, this);\n\t\tthis.entity.off('insert', this.onInsertChild, this);\n\t}\n\tonLayersChanged(oldComp, newComp) {\n\t\tthis.addModelToLayers();\n\t\toldComp.off('add', this.onLayerAdded, this);\n\t\toldComp.off('remove', this.onLayerRemoved, this);\n\t\tnewComp.on('add', this.onLayerAdded, this);\n\t\tnewComp.on('remove', this.onLayerRemoved, this);\n\t}\n\tonLayerAdded(layer) {\n\t\tconst index = this.layers.indexOf(layer.id);\n\t\tif (index < 0) return;\n\t\tlayer.addMeshInstances(this.meshInstances);\n\t}\n\tonLayerRemoved(layer) {\n\t\tconst index = this.layers.indexOf(layer.id);\n\t\tif (index < 0) return;\n\t\tlayer.removeMeshInstances(this.meshInstances);\n\t}\n\t_setMaterialEvent(index, event, id, handler) {\n\t\tconst evt = `${event}:${id}`;\n\t\tthis.system.app.assets.on(evt, handler, this);\n\t\tif (!this._materialEvents) {\n\t\t\tthis._materialEvents = [];\n\t\t}\n\t\tif (!this._materialEvents[index]) {\n\t\t\tthis._materialEvents[index] = {};\n\t\t}\n\t\tthis._materialEvents[index][evt] = {\n\t\t\tid: id,\n\t\t\thandler: handler\n\t\t};\n\t}\n\t_unsetMaterialEvents() {\n\t\tconst assets = this.system.app.assets;\n\t\tconst events = this._materialEvents;\n\t\tif (!events) {\n\t\t\treturn;\n\t\t}\n\t\tfor (let i = 0, len = events.length; i < len; i++) {\n\t\t\tif (!events[i]) continue;\n\t\t\tconst evt = events[i];\n\t\t\tfor (const key in evt) {\n\t\t\t\tassets.off(key, evt[key].handler, this);\n\t\t\t}\n\t\t}\n\t\tthis._materialEvents = null;\n\t}\n\t_getAssetByIdOrPath(idOrPath) {\n\t\tlet asset = null;\n\t\tconst isPath = isNaN(parseInt(idOrPath, 10));\n\t\tif (!isPath) {\n\t\t\tasset = this.system.app.assets.get(idOrPath);\n\t\t} else if (this.asset) {\n\t\t\tconst url = this._getMaterialAssetUrl(idOrPath);\n\t\t\tif (url) {\n\t\t\t\tasset = this.system.app.assets.getByUrl(url);\n\t\t\t}\n\t\t}\n\t\treturn asset;\n\t}\n\t_getMaterialAssetUrl(path) {\n\t\tif (!this.asset) return null;\n\t\tconst modelAsset = this.system.app.assets.get(this.asset);\n\t\treturn modelAsset ? modelAsset.getAbsoluteUrl(path) : null;\n\t}\n\t_loadAndSetMeshInstanceMaterial(materialAsset, meshInstance, index) {\n\t\tconst assets = this.system.app.assets;\n\t\tif (!materialAsset) {\n\t\t\treturn;\n\t\t}\n\t\tif (materialAsset.resource) {\n\t\t\tmeshInstance.material = materialAsset.resource;\n\t\t\tthis._setMaterialEvent(index, 'remove', materialAsset.id, function () {\n\t\t\t\tmeshInstance.material = this.system.defaultMaterial;\n\t\t\t});\n\t\t} else {\n\t\t\tthis._setMaterialEvent(index, 'load', materialAsset.id, function (asset) {\n\t\t\t\tmeshInstance.material = asset.resource;\n\t\t\t\tthis._setMaterialEvent(index, 'remove', materialAsset.id, function () {\n\t\t\t\t\tmeshInstance.material = this.system.defaultMaterial;\n\t\t\t\t});\n\t\t\t});\n\t\t\tif (this.enabled && this.entity.enabled) {\n\t\t\t\tassets.load(materialAsset);\n\t\t\t}\n\t\t}\n\t}\n\tonEnable() {\n\t\tconst app = this.system.app;\n\t\tconst scene = app.scene;\n\t\tconst layers = scene == null ? void 0 : scene.layers;\n\t\tthis._evtLayersChanged = scene.on('set:layers', this.onLayersChanged, this);\n\t\tif (layers) {\n\t\t\tthis._evtLayerAdded = layers.on('add', this.onLayerAdded, this);\n\t\t\tthis._evtLayerRemoved = layers.on('remove', this.onLayerRemoved, this);\n\t\t}\n\t\tconst isAsset = this._type === 'asset';\n\t\tlet asset;\n\t\tif (this._model) {\n\t\t\tthis.addModelToLayers();\n\t\t} else if (isAsset && this._asset) {\n\t\t\tasset = app.assets.get(this._asset);\n\t\t\tif (asset && asset.resource !== this._model) {\n\t\t\t\tthis._bindModelAsset(asset);\n\t\t\t}\n\t\t}\n\t\tif (this._materialAsset) {\n\t\t\tasset = app.assets.get(this._materialAsset);\n\t\t\tif (asset && asset.resource !== this._material) {\n\t\t\t\tthis._bindMaterialAsset(asset);\n\t\t\t}\n\t\t}\n\t\tif (isAsset) {\n\t\t\tif (this._mapping) {\n\t\t\t\tfor (const index in this._mapping) {\n\t\t\t\t\tif (this._mapping[index]) {\n\t\t\t\t\t\tasset = this._getAssetByIdOrPath(this._mapping[index]);\n\t\t\t\t\t\tif (asset && !asset.resource) {\n\t\t\t\t\t\t\tapp.assets.load(asset);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this._batchGroupId >= 0) {\n\t\t\tvar _app$batcher;\n\t\t\t(_app$batcher = app.batcher) == null || _app$batcher.insert(BatchGroup.MODEL, this.batchGroupId, this.entity);\n\t\t}\n\t}\n\tonDisable() {\n\t\tvar _this$_evtLayersChang;\n\t\tconst app = this.system.app;\n\t\tconst scene = app.scene;\n\t\tconst layers = scene.layers;\n\t\t(_this$_evtLayersChang = this._evtLayersChanged) == null || _this$_evtLayersChang.off();\n\t\tthis._evtLayersChanged = null;\n\t\tif (layers) {\n\t\t\tvar _this$_evtLayerAdded, _this$_evtLayerRemove;\n\t\t\t(_this$_evtLayerAdded = this._evtLayerAdded) == null || _this$_evtLayerAdded.off();\n\t\t\tthis._evtLayerAdded = null;\n\t\t\t(_this$_evtLayerRemove = this._evtLayerRemoved) == null || _this$_evtLayerRemove.off();\n\t\t\tthis._evtLayerRemoved = null;\n\t\t}\n\t\tif (this._batchGroupId >= 0) {\n\t\t\tvar _app$batcher2;\n\t\t\t(_app$batcher2 = app.batcher) == null || _app$batcher2.remove(BatchGroup.MODEL, this.batchGroupId, this.entity);\n\t\t}\n\t\tif (this._model) {\n\t\t\tthis.removeModelFromLayers();\n\t\t}\n\t}\n\thide() {\n\t\tif (this._model) {\n\t\t\tconst instances = this._model.meshInstances;\n\t\t\tfor (let i = 0, l = instances.length; i < l; i++) {\n\t\t\t\tinstances[i].visible = false;\n\t\t\t}\n\t\t}\n\t}\n\tshow() {\n\t\tif (this._model) {\n\t\t\tconst instances = this._model.meshInstances;\n\t\t\tfor (let i = 0, l = instances.length; i < l; i++) {\n\t\t\t\tinstances[i].visible = true;\n\t\t\t}\n\t\t}\n\t}\n\t_bindMaterialAsset(asset) {\n\t\tasset.on('load', this._onMaterialAssetLoad, this);\n\t\tasset.on('unload', this._onMaterialAssetUnload, this);\n\t\tasset.on('remove', this._onMaterialAssetRemove, this);\n\t\tasset.on('change', this._onMaterialAssetChange, this);\n\t\tif (asset.resource) {\n\t\t\tthis._onMaterialAssetLoad(asset);\n\t\t} else {\n\t\t\tif (!this.enabled || !this.entity.enabled) return;\n\t\t\tthis.system.app.assets.load(asset);\n\t\t}\n\t}\n\t_unbindMaterialAsset(asset) {\n\t\tasset.off('load', this._onMaterialAssetLoad, this);\n\t\tasset.off('unload', this._onMaterialAssetUnload, this);\n\t\tasset.off('remove', this._onMaterialAssetRemove, this);\n\t\tasset.off('change', this._onMaterialAssetChange, this);\n\t}\n\t_onMaterialAssetAdd(asset) {\n\t\tthis.system.app.assets.off(`add:${asset.id}`, this._onMaterialAssetAdd, this);\n\t\tif (this._materialAsset === asset.id) {\n\t\t\tthis._bindMaterialAsset(asset);\n\t\t}\n\t}\n\t_onMaterialAssetLoad(asset) {\n\t\tthis._setMaterial(asset.resource);\n\t}\n\t_onMaterialAssetUnload(asset) {\n\t\tthis._setMaterial(this.system.defaultMaterial);\n\t}\n\t_onMaterialAssetRemove(asset) {\n\t\tthis._onMaterialAssetUnload(asset);\n\t}\n\t_onMaterialAssetChange(asset) {}\n\t_bindModelAsset(asset) {\n\t\tthis._unbindModelAsset(asset);\n\t\tasset.on('load', this._onModelAssetLoad, this);\n\t\tasset.on('unload', this._onModelAssetUnload, this);\n\t\tasset.on('change', this._onModelAssetChange, this);\n\t\tasset.on('remove', this._onModelAssetRemove, this);\n\t\tif (asset.resource) {\n\t\t\tthis._onModelAssetLoad(asset);\n\t\t} else {\n\t\t\tif (!this.enabled || !this.entity.enabled) return;\n\t\t\tthis.system.app.assets.load(asset);\n\t\t}\n\t}\n\t_unbindModelAsset(asset) {\n\t\tasset.off('load', this._onModelAssetLoad, this);\n\t\tasset.off('unload', this._onModelAssetUnload, this);\n\t\tasset.off('change', this._onModelAssetChange, this);\n\t\tasset.off('remove', this._onModelAssetRemove, this);\n\t}\n\t_onModelAssetAdded(asset) {\n\t\tthis.system.app.assets.off(`add:${asset.id}`, this._onModelAssetAdded, this);\n\t\tif (asset.id === this._asset) {\n\t\t\tthis._bindModelAsset(asset);\n\t\t}\n\t}\n\t_onModelAssetLoad(asset) {\n\t\tthis.model = asset.resource.clone();\n\t\tthis._clonedModel = true;\n\t}\n\t_onModelAssetUnload(asset) {\n\t\tthis.model = null;\n\t}\n\t_onModelAssetChange(asset, attr, _new, _old) {\n\t\tif (attr === 'data') {\n\t\t\tthis.mapping = this._mapping;\n\t\t}\n\t}\n\t_onModelAssetRemove(asset) {\n\t\tthis.model = null;\n\t}\n\t_setMaterial(material) {\n\t\tif (this._material === material) {\n\t\t\treturn;\n\t\t}\n\t\tthis._material = material;\n\t\tconst model = this._model;\n\t\tif (model && this._type !== 'asset') {\n\t\t\tconst meshInstances = model.meshInstances;\n\t\t\tfor (let i = 0, len = meshInstances.length; i < len; i++) {\n\t\t\t\tmeshInstances[i].material = material;\n\t\t\t}\n\t\t}\n\t}\n}\n\nclass ModelComponentData {\n\tconstructor() {\n\t\tthis.enabled = true;\n\t}\n}\n\nconst _schema$c = ['enabled'];\nclass ModelComponentSystem extends ComponentSystem {\n\tconstructor(app) {\n\t\tsuper(app);\n\t\tthis.id = 'model';\n\t\tthis.ComponentType = ModelComponent;\n\t\tthis.DataType = ModelComponentData;\n\t\tthis.schema = _schema$c;\n\t\tthis.defaultMaterial = getDefaultMaterial(app.graphicsDevice);\n\t\tthis.on('beforeremove', this.onRemove, this);\n\t}\n\tinitializeComponentData(component, _data, properties) {\n\t\tproperties = ['material', 'materialAsset', 'asset', 'castShadows', 'receiveShadows', 'castShadowsLightmap', 'lightmapped', 'lightmapSizeMultiplier', 'type', 'mapping', 'layers', 'isStatic', 'batchGroupId'];\n\t\tif (_data.batchGroupId === null || _data.batchGroupId === undefined) {\n\t\t\t_data.batchGroupId = -1;\n\t\t}\n\t\tif (_data.layers && _data.layers.length) {\n\t\t\t_data.layers = _data.layers.slice(0);\n\t\t}\n\t\tfor (let i = 0; i < properties.length; i++) {\n\t\t\tif (_data.hasOwnProperty(properties[i])) {\n\t\t\t\tcomponent[properties[i]] = _data[properties[i]];\n\t\t\t}\n\t\t}\n\t\tif (_data.aabbCenter && _data.aabbHalfExtents) {\n\t\t\tcomponent.customAabb = new BoundingBox(new Vec3(_data.aabbCenter), new Vec3(_data.aabbHalfExtents));\n\t\t}\n\t\tsuper.initializeComponentData(component, _data, ['enabled']);\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst data = {\n\t\t\ttype: entity.model.type,\n\t\t\tasset: entity.model.asset,\n\t\t\tcastShadows: entity.model.castShadows,\n\t\t\treceiveShadows: entity.model.receiveShadows,\n\t\t\tcastShadowsLightmap: entity.model.castShadowsLightmap,\n\t\t\tlightmapped: entity.model.lightmapped,\n\t\t\tlightmapSizeMultiplier: entity.model.lightmapSizeMultiplier,\n\t\t\tisStatic: entity.model.isStatic,\n\t\t\tenabled: entity.model.enabled,\n\t\t\tlayers: entity.model.layers,\n\t\t\tbatchGroupId: entity.model.batchGroupId,\n\t\t\tmapping: extend({}, entity.model.mapping)\n\t\t};\n\t\tlet materialAsset = entity.model.materialAsset;\n\t\tif (!(materialAsset instanceof Asset) && materialAsset != null) {\n\t\t\tmaterialAsset = this.app.assets.get(materialAsset);\n\t\t}\n\t\tconst material = entity.model.material;\n\t\tif (!material || material === this.defaultMaterial || !materialAsset || material === materialAsset.resource) {\n\t\t\tdata.materialAsset = materialAsset;\n\t\t}\n\t\tconst component = this.addComponent(clone, data);\n\t\tif (entity.model.model && entity.model.type === 'asset' && !entity.model.asset) {\n\t\t\tcomponent.model = entity.model.model.clone();\n\t\t\tcomponent._clonedModel = true;\n\t\t}\n\t\tif (!data.materialAsset) {\n\t\t\tcomponent.material = material;\n\t\t}\n\t\tif (entity.model.model) {\n\t\t\tconst meshInstances = entity.model.model.meshInstances;\n\t\t\tconst meshInstancesClone = component.model.meshInstances;\n\t\t\tfor (let i = 0; i < meshInstances.length; i++) {\n\t\t\t\tmeshInstancesClone[i].mask = meshInstances[i].mask;\n\t\t\t\tmeshInstancesClone[i].material = meshInstances[i].material;\n\t\t\t\tmeshInstancesClone[i].layer = meshInstances[i].layer;\n\t\t\t\tmeshInstancesClone[i].receiveShadow = meshInstances[i].receiveShadow;\n\t\t\t}\n\t\t}\n\t\tif (entity.model.customAabb) {\n\t\t\tcomponent.customAabb = entity.model.customAabb.clone();\n\t\t}\n\t\treturn component;\n\t}\n\tonRemove(entity, component) {\n\t\tcomponent.onRemove();\n\t}\n}\nComponent._buildAccessors(ModelComponent.prototype, _schema$c);\n\nconst SIMPLE_PROPERTIES = ['emitterExtents', 'emitterRadius', 'emitterExtentsInner', 'emitterRadiusInner', 'loop', 'initialVelocity', 'animSpeed', 'normalMap', 'particleNormal'];\nconst COMPLEX_PROPERTIES = ['numParticles', 'lifetime', 'rate', 'rate2', 'startAngle', 'startAngle2', 'lighting', 'halfLambert', 'intensity', 'wrap', 'wrapBounds', 'depthWrite', 'noFog', 'sort', 'stretch', 'alignToMotion', 'preWarm', 'emitterShape', 'animTilesX', 'animTilesY', 'animStartFrame', 'animNumFrames', 'animNumAnimations', 'animIndex', 'randomizeAnimIndex', 'animLoop', 'colorMap', 'localSpace', 'screenSpace', 'orientation'];\nconst GRAPH_PROPERTIES = ['scaleGraph', 'scaleGraph2', 'colorGraph', 'colorGraph2', 'alphaGraph', 'alphaGraph2', 'velocityGraph', 'velocityGraph2', 'localVelocityGraph', 'localVelocityGraph2', 'rotationSpeedGraph', 'rotationSpeedGraph2', 'radialSpeedGraph', 'radialSpeedGraph2'];\nconst ASSET_PROPERTIES = ['colorMapAsset', 'normalMapAsset', 'meshAsset', 'renderAsset'];\nlet depthLayer;\nclass ParticleSystemComponent extends Component {\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis._requestedDepth = false;\n\t\tthis._drawOrder = 0;\n\t\tthis._evtLayersChanged = null;\n\t\tthis._evtLayerAdded = null;\n\t\tthis._evtLayerRemoved = null;\n\t\tthis._evtSetMeshes = null;\n\t\tthis.on('set_colorMapAsset', this.onSetColorMapAsset, this);\n\t\tthis.on('set_normalMapAsset', this.onSetNormalMapAsset, this);\n\t\tthis.on('set_meshAsset', this.onSetMeshAsset, this);\n\t\tthis.on('set_mesh', this.onSetMesh, this);\n\t\tthis.on('set_renderAsset', this.onSetRenderAsset, this);\n\t\tthis.on('set_loop', this.onSetLoop, this);\n\t\tthis.on('set_blendType', this.onSetBlendType, this);\n\t\tthis.on('set_depthSoftening', this.onSetDepthSoftening, this);\n\t\tthis.on('set_layers', this.onSetLayers, this);\n\t\tSIMPLE_PROPERTIES.forEach(prop => {\n\t\t\tthis.on(`set_${prop}`, this.onSetSimpleProperty, this);\n\t\t});\n\t\tCOMPLEX_PROPERTIES.forEach(prop => {\n\t\t\tthis.on(`set_${prop}`, this.onSetComplexProperty, this);\n\t\t});\n\t\tGRAPH_PROPERTIES.forEach(prop => {\n\t\t\tthis.on(`set_${prop}`, this.onSetGraphProperty, this);\n\t\t});\n\t}\n\tget data() {\n\t\tconst record = this.system.store[this.entity.getGuid()];\n\t\treturn record ? record.data : null;\n\t}\n\tset enabled(arg) {\n\t\tthis._setValue('enabled', arg);\n\t}\n\tget enabled() {\n\t\treturn this.data.enabled;\n\t}\n\tset autoPlay(arg) {\n\t\tthis._setValue('autoPlay', arg);\n\t}\n\tget autoPlay() {\n\t\treturn this.data.autoPlay;\n\t}\n\tset numParticles(arg) {\n\t\tthis._setValue('numParticles', arg);\n\t}\n\tget numParticles() {\n\t\treturn this.data.numParticles;\n\t}\n\tset lifetime(arg) {\n\t\tthis._setValue('lifetime', arg);\n\t}\n\tget lifetime() {\n\t\treturn this.data.lifetime;\n\t}\n\tset rate(arg) {\n\t\tthis._setValue('rate', arg);\n\t}\n\tget rate() {\n\t\treturn this.data.rate;\n\t}\n\tset rate2(arg) {\n\t\tthis._setValue('rate2', arg);\n\t}\n\tget rate2() {\n\t\treturn this.data.rate2;\n\t}\n\tset startAngle(arg) {\n\t\tthis._setValue('startAngle', arg);\n\t}\n\tget startAngle() {\n\t\treturn this.data.startAngle;\n\t}\n\tset startAngle2(arg) {\n\t\tthis._setValue('startAngle2', arg);\n\t}\n\tget startAngle2() {\n\t\treturn this.data.startAngle2;\n\t}\n\tset loop(arg) {\n\t\tthis._setValue('loop', arg);\n\t}\n\tget loop() {\n\t\treturn this.data.loop;\n\t}\n\tset preWarm(arg) {\n\t\tthis._setValue('preWarm', arg);\n\t}\n\tget preWarm() {\n\t\treturn this.data.preWarm;\n\t}\n\tset lighting(arg) {\n\t\tthis._setValue('lighting', arg);\n\t}\n\tget lighting() {\n\t\treturn this.data.lighting;\n\t}\n\tset halfLambert(arg) {\n\t\tthis._setValue('halfLambert', arg);\n\t}\n\tget halfLambert() {\n\t\treturn this.data.halfLambert;\n\t}\n\tset intensity(arg) {\n\t\tthis._setValue('intensity', arg);\n\t}\n\tget intensity() {\n\t\treturn this.data.intensity;\n\t}\n\tset depthWrite(arg) {\n\t\tthis._setValue('depthWrite', arg);\n\t}\n\tget depthWrite() {\n\t\treturn this.data.depthWrite;\n\t}\n\tset noFog(arg) {\n\t\tthis._setValue('noFog', arg);\n\t}\n\tget noFog() {\n\t\treturn this.data.noFog;\n\t}\n\tset depthSoftening(arg) {\n\t\tthis._setValue('depthSoftening', arg);\n\t}\n\tget depthSoftening() {\n\t\treturn this.data.depthSoftening;\n\t}\n\tset sort(arg) {\n\t\tthis._setValue('sort', arg);\n\t}\n\tget sort() {\n\t\treturn this.data.sort;\n\t}\n\tset blendType(arg) {\n\t\tthis._setValue('blendType', arg);\n\t}\n\tget blendType() {\n\t\treturn this.data.blendType;\n\t}\n\tset stretch(arg) {\n\t\tthis._setValue('stretch', arg);\n\t}\n\tget stretch() {\n\t\treturn this.data.stretch;\n\t}\n\tset alignToMotion(arg) {\n\t\tthis._setValue('alignToMotion', arg);\n\t}\n\tget alignToMotion() {\n\t\treturn this.data.alignToMotion;\n\t}\n\tset emitterShape(arg) {\n\t\tthis._setValue('emitterShape', arg);\n\t}\n\tget emitterShape() {\n\t\treturn this.data.emitterShape;\n\t}\n\tset emitterExtents(arg) {\n\t\tthis._setValue('emitterExtents', arg);\n\t}\n\tget emitterExtents() {\n\t\treturn this.data.emitterExtents;\n\t}\n\tset emitterExtentsInner(arg) {\n\t\tthis._setValue('emitterExtentsInner', arg);\n\t}\n\tget emitterExtentsInner() {\n\t\treturn this.data.emitterExtentsInner;\n\t}\n\tset emitterRadius(arg) {\n\t\tthis._setValue('emitterRadius', arg);\n\t}\n\tget emitterRadius() {\n\t\treturn this.data.emitterRadius;\n\t}\n\tset emitterRadiusInner(arg) {\n\t\tthis._setValue('emitterRadiusInner', arg);\n\t}\n\tget emitterRadiusInner() {\n\t\treturn this.data.emitterRadiusInner;\n\t}\n\tset initialVelocity(arg) {\n\t\tthis._setValue('initialVelocity', arg);\n\t}\n\tget initialVelocity() {\n\t\treturn this.data.initialVelocity;\n\t}\n\tset wrap(arg) {\n\t\tthis._setValue('wrap', arg);\n\t}\n\tget wrap() {\n\t\treturn this.data.wrap;\n\t}\n\tset wrapBounds(arg) {\n\t\tthis._setValue('wrapBounds', arg);\n\t}\n\tget wrapBounds() {\n\t\treturn this.data.wrapBounds;\n\t}\n\tset localSpace(arg) {\n\t\tthis._setValue('localSpace', arg);\n\t}\n\tget localSpace() {\n\t\treturn this.data.localSpace;\n\t}\n\tset screenSpace(arg) {\n\t\tthis._setValue('screenSpace', arg);\n\t}\n\tget screenSpace() {\n\t\treturn this.data.screenSpace;\n\t}\n\tset colorMapAsset(arg) {\n\t\tthis._setValue('colorMapAsset', arg);\n\t}\n\tget colorMapAsset() {\n\t\treturn this.data.colorMapAsset;\n\t}\n\tset normalMapAsset(arg) {\n\t\tthis._setValue('normalMapAsset', arg);\n\t}\n\tget normalMapAsset() {\n\t\treturn this.data.normalMapAsset;\n\t}\n\tset mesh(arg) {\n\t\tthis._setValue('mesh', arg);\n\t}\n\tget mesh() {\n\t\treturn this.data.mesh;\n\t}\n\tset meshAsset(arg) {\n\t\tthis._setValue('meshAsset', arg);\n\t}\n\tget meshAsset() {\n\t\treturn this.data.meshAsset;\n\t}\n\tset renderAsset(arg) {\n\t\tthis._setValue('renderAsset', arg);\n\t}\n\tget renderAsset() {\n\t\treturn this.data.renderAsset;\n\t}\n\tset orientation(arg) {\n\t\tthis._setValue('orientation', arg);\n\t}\n\tget orientation() {\n\t\treturn this.data.orientation;\n\t}\n\tset particleNormal(arg) {\n\t\tthis._setValue('particleNormal', arg);\n\t}\n\tget particleNormal() {\n\t\treturn this.data.particleNormal;\n\t}\n\tset localVelocityGraph(arg) {\n\t\tthis._setValue('localVelocityGraph', arg);\n\t}\n\tget localVelocityGraph() {\n\t\treturn this.data.localVelocityGraph;\n\t}\n\tset localVelocityGraph2(arg) {\n\t\tthis._setValue('localVelocityGraph2', arg);\n\t}\n\tget localVelocityGraph2() {\n\t\treturn this.data.localVelocityGraph2;\n\t}\n\tset velocityGraph(arg) {\n\t\tthis._setValue('velocityGraph', arg);\n\t}\n\tget velocityGraph() {\n\t\treturn this.data.velocityGraph;\n\t}\n\tset velocityGraph2(arg) {\n\t\tthis._setValue('velocityGraph2', arg);\n\t}\n\tget velocityGraph2() {\n\t\treturn this.data.velocityGraph2;\n\t}\n\tset rotationSpeedGraph(arg) {\n\t\tthis._setValue('rotationSpeedGraph', arg);\n\t}\n\tget rotationSpeedGraph() {\n\t\treturn this.data.rotationSpeedGraph;\n\t}\n\tset rotationSpeedGraph2(arg) {\n\t\tthis._setValue('rotationSpeedGraph2', arg);\n\t}\n\tget rotationSpeedGraph2() {\n\t\treturn this.data.rotationSpeedGraph2;\n\t}\n\tset radialSpeedGraph(arg) {\n\t\tthis._setValue('radialSpeedGraph', arg);\n\t}\n\tget radialSpeedGraph() {\n\t\treturn this.data.radialSpeedGraph;\n\t}\n\tset radialSpeedGraph2(arg) {\n\t\tthis._setValue('radialSpeedGraph2', arg);\n\t}\n\tget radialSpeedGraph2() {\n\t\treturn this.data.radialSpeedGraph2;\n\t}\n\tset scaleGraph(arg) {\n\t\tthis._setValue('scaleGraph', arg);\n\t}\n\tget scaleGraph() {\n\t\treturn this.data.scaleGraph;\n\t}\n\tset scaleGraph2(arg) {\n\t\tthis._setValue('scaleGraph2', arg);\n\t}\n\tget scaleGraph2() {\n\t\treturn this.data.scaleGraph2;\n\t}\n\tset colorGraph(arg) {\n\t\tthis._setValue('colorGraph', arg);\n\t}\n\tget colorGraph() {\n\t\treturn this.data.colorGraph;\n\t}\n\tset colorGraph2(arg) {\n\t\tthis._setValue('colorGraph2', arg);\n\t}\n\tget colorGraph2() {\n\t\treturn this.data.colorGraph2;\n\t}\n\tset alphaGraph(arg) {\n\t\tthis._setValue('alphaGraph', arg);\n\t}\n\tget alphaGraph() {\n\t\treturn this.data.alphaGraph;\n\t}\n\tset alphaGraph2(arg) {\n\t\tthis._setValue('alphaGraph2', arg);\n\t}\n\tget alphaGraph2() {\n\t\treturn this.data.alphaGraph2;\n\t}\n\tset colorMap(arg) {\n\t\tthis._setValue('colorMap', arg);\n\t}\n\tget colorMap() {\n\t\treturn this.data.colorMap;\n\t}\n\tset normalMap(arg) {\n\t\tthis._setValue('normalMap', arg);\n\t}\n\tget normalMap() {\n\t\treturn this.data.normalMap;\n\t}\n\tset animTilesX(arg) {\n\t\tthis._setValue('animTilesX', arg);\n\t}\n\tget animTilesX() {\n\t\treturn this.data.animTilesX;\n\t}\n\tset animTilesY(arg) {\n\t\tthis._setValue('animTilesY', arg);\n\t}\n\tget animTilesY() {\n\t\treturn this.data.animTilesY;\n\t}\n\tset animStartFrame(arg) {\n\t\tthis._setValue('animStartFrame', arg);\n\t}\n\tget animStartFrame() {\n\t\treturn this.data.animStartFrame;\n\t}\n\tset animNumFrames(arg) {\n\t\tthis._setValue('animNumFrames', arg);\n\t}\n\tget animNumFrames() {\n\t\treturn this.data.animNumFrames;\n\t}\n\tset animNumAnimations(arg) {\n\t\tthis._setValue('animNumAnimations', arg);\n\t}\n\tget animNumAnimations() {\n\t\treturn this.data.animNumAnimations;\n\t}\n\tset animIndex(arg) {\n\t\tthis._setValue('animIndex', arg);\n\t}\n\tget animIndex() {\n\t\treturn this.data.animIndex;\n\t}\n\tset randomizeAnimIndex(arg) {\n\t\tthis._setValue('randomizeAnimIndex', arg);\n\t}\n\tget randomizeAnimIndex() {\n\t\treturn this.data.randomizeAnimIndex;\n\t}\n\tset animSpeed(arg) {\n\t\tthis._setValue('animSpeed', arg);\n\t}\n\tget animSpeed() {\n\t\treturn this.data.animSpeed;\n\t}\n\tset animLoop(arg) {\n\t\tthis._setValue('animLoop', arg);\n\t}\n\tget animLoop() {\n\t\treturn this.data.animLoop;\n\t}\n\tset layers(arg) {\n\t\tthis._setValue('layers', arg);\n\t}\n\tget layers() {\n\t\treturn this.data.layers;\n\t}\n\tset drawOrder(drawOrder) {\n\t\tthis._drawOrder = drawOrder;\n\t\tif (this.emitter) {\n\t\t\tthis.emitter.drawOrder = drawOrder;\n\t\t}\n\t}\n\tget drawOrder() {\n\t\treturn this._drawOrder;\n\t}\n\t_setValue(name, value) {\n\t\tconst data = this.data;\n\t\tconst oldValue = data[name];\n\t\tdata[name] = value;\n\t\tthis.fire('set', name, oldValue, value);\n\t}\n\taddMeshInstanceToLayers() {\n\t\tif (!this.emitter) return;\n\t\tfor (let i = 0; i < this.layers.length; i++) {\n\t\t\tconst layer = this.system.app.scene.layers.getLayerById(this.layers[i]);\n\t\t\tif (!layer) continue;\n\t\t\tlayer.addMeshInstances([this.emitter.meshInstance]);\n\t\t\tthis.emitter._layer = layer;\n\t\t}\n\t}\n\tremoveMeshInstanceFromLayers() {\n\t\tif (!this.emitter) return;\n\t\tfor (let i = 0; i < this.layers.length; i++) {\n\t\t\tconst layer = this.system.app.scene.layers.getLayerById(this.layers[i]);\n\t\t\tif (!layer) continue;\n\t\t\tlayer.removeMeshInstances([this.emitter.meshInstance]);\n\t\t}\n\t}\n\tonSetLayers(name, oldValue, newValue) {\n\t\tif (!this.emitter) return;\n\t\tfor (let i = 0; i < oldValue.length; i++) {\n\t\t\tconst layer = this.system.app.scene.layers.getLayerById(oldValue[i]);\n\t\t\tif (!layer) continue;\n\t\t\tlayer.removeMeshInstances([this.emitter.meshInstance]);\n\t\t}\n\t\tif (!this.enabled || !this.entity.enabled) return;\n\t\tfor (let i = 0; i < newValue.length; i++) {\n\t\t\tconst layer = this.system.app.scene.layers.getLayerById(newValue[i]);\n\t\t\tif (!layer) continue;\n\t\t\tlayer.addMeshInstances([this.emitter.meshInstance]);\n\t\t}\n\t}\n\tonLayersChanged(oldComp, newComp) {\n\t\tthis.addMeshInstanceToLayers();\n\t\toldComp.off('add', this.onLayerAdded, this);\n\t\toldComp.off('remove', this.onLayerRemoved, this);\n\t\tnewComp.on('add', this.onLayerAdded, this);\n\t\tnewComp.on('remove', this.onLayerRemoved, this);\n\t}\n\tonLayerAdded(layer) {\n\t\tif (!this.emitter) return;\n\t\tconst index = this.layers.indexOf(layer.id);\n\t\tif (index < 0) return;\n\t\tlayer.addMeshInstances([this.emitter.meshInstance]);\n\t}\n\tonLayerRemoved(layer) {\n\t\tif (!this.emitter) return;\n\t\tconst index = this.layers.indexOf(layer.id);\n\t\tif (index < 0) return;\n\t\tlayer.removeMeshInstances([this.emitter.meshInstance]);\n\t}\n\t_bindColorMapAsset(asset) {\n\t\tasset.on('load', this._onColorMapAssetLoad, this);\n\t\tasset.on('unload', this._onColorMapAssetUnload, this);\n\t\tasset.on('remove', this._onColorMapAssetRemove, this);\n\t\tasset.on('change', this._onColorMapAssetChange, this);\n\t\tif (asset.resource) {\n\t\t\tthis._onColorMapAssetLoad(asset);\n\t\t} else {\n\t\t\tif (!this.enabled || !this.entity.enabled) return;\n\t\t\tthis.system.app.assets.load(asset);\n\t\t}\n\t}\n\t_unbindColorMapAsset(asset) {\n\t\tasset.off('load', this._onColorMapAssetLoad, this);\n\t\tasset.off('unload', this._onColorMapAssetUnload, this);\n\t\tasset.off('remove', this._onColorMapAssetRemove, this);\n\t\tasset.off('change', this._onColorMapAssetChange, this);\n\t}\n\t_onColorMapAssetLoad(asset) {\n\t\tthis.colorMap = asset.resource;\n\t}\n\t_onColorMapAssetUnload(asset) {\n\t\tthis.colorMap = null;\n\t}\n\t_onColorMapAssetRemove(asset) {\n\t\tthis._onColorMapAssetUnload(asset);\n\t}\n\t_onColorMapAssetChange(asset) {}\n\tonSetColorMapAsset(name, oldValue, newValue) {\n\t\tconst assets = this.system.app.assets;\n\t\tif (oldValue) {\n\t\t\tconst asset = assets.get(oldValue);\n\t\t\tif (asset) {\n\t\t\t\tthis._unbindColorMapAsset(asset);\n\t\t\t}\n\t\t}\n\t\tif (newValue) {\n\t\t\tif (newValue instanceof Asset) {\n\t\t\t\tthis.data.colorMapAsset = newValue.id;\n\t\t\t\tnewValue = newValue.id;\n\t\t\t}\n\t\t\tconst asset = assets.get(newValue);\n\t\t\tif (asset) {\n\t\t\t\tthis._bindColorMapAsset(asset);\n\t\t\t} else {\n\t\t\t\tassets.once(`add:${newValue}`, asset => {\n\t\t\t\t\tthis._bindColorMapAsset(asset);\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tthis.colorMap = null;\n\t\t}\n\t}\n\t_bindNormalMapAsset(asset) {\n\t\tasset.on('load', this._onNormalMapAssetLoad, this);\n\t\tasset.on('unload', this._onNormalMapAssetUnload, this);\n\t\tasset.on('remove', this._onNormalMapAssetRemove, this);\n\t\tasset.on('change', this._onNormalMapAssetChange, this);\n\t\tif (asset.resource) {\n\t\t\tthis._onNormalMapAssetLoad(asset);\n\t\t} else {\n\t\t\tif (!this.enabled || !this.entity.enabled) return;\n\t\t\tthis.system.app.assets.load(asset);\n\t\t}\n\t}\n\t_unbindNormalMapAsset(asset) {\n\t\tasset.off('load', this._onNormalMapAssetLoad, this);\n\t\tasset.off('unload', this._onNormalMapAssetUnload, this);\n\t\tasset.off('remove', this._onNormalMapAssetRemove, this);\n\t\tasset.off('change', this._onNormalMapAssetChange, this);\n\t}\n\t_onNormalMapAssetLoad(asset) {\n\t\tthis.normalMap = asset.resource;\n\t}\n\t_onNormalMapAssetUnload(asset) {\n\t\tthis.normalMap = null;\n\t}\n\t_onNormalMapAssetRemove(asset) {\n\t\tthis._onNormalMapAssetUnload(asset);\n\t}\n\t_onNormalMapAssetChange(asset) {}\n\tonSetNormalMapAsset(name, oldValue, newValue) {\n\t\tconst assets = this.system.app.assets;\n\t\tif (oldValue) {\n\t\t\tconst asset = assets.get(oldValue);\n\t\t\tif (asset) {\n\t\t\t\tthis._unbindNormalMapAsset(asset);\n\t\t\t}\n\t\t}\n\t\tif (newValue) {\n\t\t\tif (newValue instanceof Asset) {\n\t\t\t\tthis.data.normalMapAsset = newValue.id;\n\t\t\t\tnewValue = newValue.id;\n\t\t\t}\n\t\t\tconst asset = assets.get(newValue);\n\t\t\tif (asset) {\n\t\t\t\tthis._bindNormalMapAsset(asset);\n\t\t\t} else {\n\t\t\t\tassets.once(`add:${newValue}`, asset => {\n\t\t\t\t\tthis._bindNormalMapAsset(asset);\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tthis.normalMap = null;\n\t\t}\n\t}\n\t_bindMeshAsset(asset) {\n\t\tasset.on('load', this._onMeshAssetLoad, this);\n\t\tasset.on('unload', this._onMeshAssetUnload, this);\n\t\tasset.on('remove', this._onMeshAssetRemove, this);\n\t\tasset.on('change', this._onMeshAssetChange, this);\n\t\tif (asset.resource) {\n\t\t\tthis._onMeshAssetLoad(asset);\n\t\t} else {\n\t\t\tif (!this.enabled || !this.entity.enabled) return;\n\t\t\tthis.system.app.assets.load(asset);\n\t\t}\n\t}\n\t_unbindMeshAsset(asset) {\n\t\tasset.off('load', this._onMeshAssetLoad, this);\n\t\tasset.off('unload', this._onMeshAssetUnload, this);\n\t\tasset.off('remove', this._onMeshAssetRemove, this);\n\t\tasset.off('change', this._onMeshAssetChange, this);\n\t}\n\t_onMeshAssetLoad(asset) {\n\t\tthis._onMeshChanged(asset.resource);\n\t}\n\t_onMeshAssetUnload(asset) {\n\t\tthis.mesh = null;\n\t}\n\t_onMeshAssetRemove(asset) {\n\t\tthis._onMeshAssetUnload(asset);\n\t}\n\t_onMeshAssetChange(asset) {}\n\tonSetMeshAsset(name, oldValue, newValue) {\n\t\tconst assets = this.system.app.assets;\n\t\tif (oldValue) {\n\t\t\tconst asset = assets.get(oldValue);\n\t\t\tif (asset) {\n\t\t\t\tthis._unbindMeshAsset(asset);\n\t\t\t}\n\t\t}\n\t\tif (newValue) {\n\t\t\tif (newValue instanceof Asset) {\n\t\t\t\tthis.data.meshAsset = newValue.id;\n\t\t\t\tnewValue = newValue.id;\n\t\t\t}\n\t\t\tconst asset = assets.get(newValue);\n\t\t\tif (asset) {\n\t\t\t\tthis._bindMeshAsset(asset);\n\t\t\t}\n\t\t} else {\n\t\t\tthis._onMeshChanged(null);\n\t\t}\n\t}\n\tonSetMesh(name, oldValue, newValue) {\n\t\tif (!newValue || newValue instanceof Asset || typeof newValue === 'number') {\n\t\t\tthis.meshAsset = newValue;\n\t\t} else {\n\t\t\tthis._onMeshChanged(newValue);\n\t\t}\n\t}\n\t_onMeshChanged(mesh) {\n\t\tif (mesh && !(mesh instanceof Mesh)) {\n\t\t\tif (mesh.meshInstances[0]) {\n\t\t\t\tmesh = mesh.meshInstances[0].mesh;\n\t\t\t} else {\n\t\t\t\tmesh = null;\n\t\t\t}\n\t\t}\n\t\tthis.data.mesh = mesh;\n\t\tif (this.emitter) {\n\t\t\tthis.emitter.mesh = mesh;\n\t\t\tthis.emitter.resetMaterial();\n\t\t\tthis.rebuild();\n\t\t}\n\t}\n\tonSetRenderAsset(name, oldValue, newValue) {\n\t\tconst assets = this.system.app.assets;\n\t\tif (oldValue) {\n\t\t\tconst asset = assets.get(oldValue);\n\t\t\tif (asset) {\n\t\t\t\tthis._unbindRenderAsset(asset);\n\t\t\t}\n\t\t}\n\t\tif (newValue) {\n\t\t\tif (newValue instanceof Asset) {\n\t\t\t\tthis.data.renderAsset = newValue.id;\n\t\t\t\tnewValue = newValue.id;\n\t\t\t}\n\t\t\tconst asset = assets.get(newValue);\n\t\t\tif (asset) {\n\t\t\t\tthis._bindRenderAsset(asset);\n\t\t\t}\n\t\t} else {\n\t\t\tthis._onRenderChanged(null);\n\t\t}\n\t}\n\t_bindRenderAsset(asset) {\n\t\tasset.on('load', this._onRenderAssetLoad, this);\n\t\tasset.on('unload', this._onRenderAssetUnload, this);\n\t\tasset.on('remove', this._onRenderAssetRemove, this);\n\t\tif (asset.resource) {\n\t\t\tthis._onRenderAssetLoad(asset);\n\t\t} else {\n\t\t\tif (!this.enabled || !this.entity.enabled) return;\n\t\t\tthis.system.app.assets.load(asset);\n\t\t}\n\t}\n\t_unbindRenderAsset(asset) {\n\t\tvar _this$_evtSetMeshes;\n\t\tasset.off('load', this._onRenderAssetLoad, this);\n\t\tasset.off('unload', this._onRenderAssetUnload, this);\n\t\tasset.off('remove', this._onRenderAssetRemove, this);\n\t\t(_this$_evtSetMeshes = this._evtSetMeshes) == null || _this$_evtSetMeshes.off();\n\t\tthis._evtSetMeshes = null;\n\t}\n\t_onRenderAssetLoad(asset) {\n\t\tthis._onRenderChanged(asset.resource);\n\t}\n\t_onRenderAssetUnload(asset) {\n\t\tthis._onRenderChanged(null);\n\t}\n\t_onRenderAssetRemove(asset) {\n\t\tthis._onRenderAssetUnload(asset);\n\t}\n\t_onRenderChanged(render) {\n\t\tvar _this$_evtSetMeshes2;\n\t\tif (!render) {\n\t\t\tthis._onMeshChanged(null);\n\t\t\treturn;\n\t\t}\n\t\t(_this$_evtSetMeshes2 = this._evtSetMeshes) == null || _this$_evtSetMeshes2.off();\n\t\tthis._evtSetMeshes = render.on('set:meshes', this._onRenderSetMeshes, this);\n\t\tif (render.meshes) {\n\t\t\tthis._onRenderSetMeshes(render.meshes);\n\t\t}\n\t}\n\t_onRenderSetMeshes(meshes) {\n\t\tthis._onMeshChanged(meshes && meshes[0]);\n\t}\n\tonSetLoop(name, oldValue, newValue) {\n\t\tif (this.emitter) {\n\t\t\tthis.emitter[name] = newValue;\n\t\t\tthis.emitter.resetTime();\n\t\t}\n\t}\n\tonSetBlendType(name, oldValue, newValue) {\n\t\tif (this.emitter) {\n\t\t\tthis.emitter[name] = newValue;\n\t\t\tthis.emitter.material.blendType = newValue;\n\t\t\tthis.emitter.resetMaterial();\n\t\t\tthis.rebuild();\n\t\t}\n\t}\n\t_requestDepth() {\n\t\tif (this._requestedDepth) return;\n\t\tif (!depthLayer) depthLayer = this.system.app.scene.layers.getLayerById(LAYERID_DEPTH);\n\t\tif (depthLayer) {\n\t\t\tdepthLayer.incrementCounter();\n\t\t\tthis._requestedDepth = true;\n\t\t}\n\t}\n\t_releaseDepth() {\n\t\tif (!this._requestedDepth) return;\n\t\tif (depthLayer) {\n\t\t\tdepthLayer.decrementCounter();\n\t\t\tthis._requestedDepth = false;\n\t\t}\n\t}\n\tonSetDepthSoftening(name, oldValue, newValue) {\n\t\tif (oldValue !== newValue) {\n\t\t\tif (newValue) {\n\t\t\t\tif (this.enabled && this.entity.enabled) this._requestDepth();\n\t\t\t\tif (this.emitter) this.emitter[name] = newValue;\n\t\t\t} else {\n\t\t\t\tif (this.enabled && this.entity.enabled) this._releaseDepth();\n\t\t\t\tif (this.emitter) this.emitter[name] = newValue;\n\t\t\t}\n\t\t\tif (this.emitter) {\n\t\t\t\tthis.reset();\n\t\t\t\tthis.emitter.resetMaterial();\n\t\t\t\tthis.rebuild();\n\t\t\t}\n\t\t}\n\t}\n\tonSetSimpleProperty(name, oldValue, newValue) {\n\t\tif (this.emitter) {\n\t\t\tthis.emitter[name] = newValue;\n\t\t\tthis.emitter.resetMaterial();\n\t\t}\n\t}\n\tonSetComplexProperty(name, oldValue, newValue) {\n\t\tif (this.emitter) {\n\t\t\tthis.emitter[name] = newValue;\n\t\t\tthis.emitter.resetMaterial();\n\t\t\tthis.rebuild();\n\t\t\tthis.reset();\n\t\t}\n\t}\n\tonSetGraphProperty(name, oldValue, newValue) {\n\t\tif (this.emitter) {\n\t\t\tthis.emitter[name] = newValue;\n\t\t\tthis.emitter.rebuildGraphs();\n\t\t\tthis.emitter.resetMaterial();\n\t\t}\n\t}\n\tonEnable() {\n\t\tconst scene = this.system.app.scene;\n\t\tconst layers = scene.layers;\n\t\tconst data = this.data;\n\t\tfor (let i = 0, len = ASSET_PROPERTIES.length; i < len; i++) {\n\t\t\tlet asset = data[ASSET_PROPERTIES[i]];\n\t\t\tif (asset) {\n\t\t\t\tif (!(asset instanceof Asset)) {\n\t\t\t\t\tconst id = parseInt(asset, 10);\n\t\t\t\t\tif (id >= 0) {\n\t\t\t\t\t\tasset = this.system.app.assets.get(asset);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (asset && !asset.resource) {\n\t\t\t\t\tthis.system.app.assets.load(asset);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this.system.app.graphicsDevice.disableParticleSystem) {\n\t\t\treturn;\n\t\t}\n\t\tif (!this.emitter) {\n\t\t\tlet mesh = data.mesh;\n\t\t\tif (!(mesh instanceof Mesh)) {\n\t\t\t\tmesh = null;\n\t\t\t}\n\t\t\tthis.emitter = new ParticleEmitter(this.system.app.graphicsDevice, {\n\t\t\t\tnumParticles: data.numParticles,\n\t\t\t\temitterExtents: data.emitterExtents,\n\t\t\t\temitterExtentsInner: data.emitterExtentsInner,\n\t\t\t\temitterRadius: data.emitterRadius,\n\t\t\t\temitterRadiusInner: data.emitterRadiusInner,\n\t\t\t\temitterShape: data.emitterShape,\n\t\t\t\tinitialVelocity: data.initialVelocity,\n\t\t\t\twrap: data.wrap,\n\t\t\t\tlocalSpace: data.localSpace,\n\t\t\t\tscreenSpace: data.screenSpace,\n\t\t\t\twrapBounds: data.wrapBounds,\n\t\t\t\tlifetime: data.lifetime,\n\t\t\t\trate: data.rate,\n\t\t\t\trate2: data.rate2,\n\t\t\t\torientation: data.orientation,\n\t\t\t\tparticleNormal: data.particleNormal,\n\t\t\t\tanimTilesX: data.animTilesX,\n\t\t\t\tanimTilesY: data.animTilesY,\n\t\t\t\tanimStartFrame: data.animStartFrame,\n\t\t\t\tanimNumFrames: data.animNumFrames,\n\t\t\t\tanimNumAnimations: data.animNumAnimations,\n\t\t\t\tanimIndex: data.animIndex,\n\t\t\t\trandomizeAnimIndex: data.randomizeAnimIndex,\n\t\t\t\tanimSpeed: data.animSpeed,\n\t\t\t\tanimLoop: data.animLoop,\n\t\t\t\tstartAngle: data.startAngle,\n\t\t\t\tstartAngle2: data.startAngle2,\n\t\t\t\tscaleGraph: data.scaleGraph,\n\t\t\t\tscaleGraph2: data.scaleGraph2,\n\t\t\t\tcolorGraph: data.colorGraph,\n\t\t\t\tcolorGraph2: data.colorGraph2,\n\t\t\t\talphaGraph: data.alphaGraph,\n\t\t\t\talphaGraph2: data.alphaGraph2,\n\t\t\t\tlocalVelocityGraph: data.localVelocityGraph,\n\t\t\t\tlocalVelocityGraph2: data.localVelocityGraph2,\n\t\t\t\tvelocityGraph: data.velocityGraph,\n\t\t\t\tvelocityGraph2: data.velocityGraph2,\n\t\t\t\trotationSpeedGraph: data.rotationSpeedGraph,\n\t\t\t\trotationSpeedGraph2: data.rotationSpeedGraph2,\n\t\t\t\tradialSpeedGraph: data.radialSpeedGraph,\n\t\t\t\tradialSpeedGraph2: data.radialSpeedGraph2,\n\t\t\t\tcolorMap: data.colorMap,\n\t\t\t\tnormalMap: data.normalMap,\n\t\t\t\tloop: data.loop,\n\t\t\t\tpreWarm: data.preWarm,\n\t\t\t\tsort: data.sort,\n\t\t\t\tstretch: data.stretch,\n\t\t\t\talignToMotion: data.alignToMotion,\n\t\t\t\tlighting: data.lighting,\n\t\t\t\thalfLambert: data.halfLambert,\n\t\t\t\tintensity: data.intensity,\n\t\t\t\tdepthSoftening: data.depthSoftening,\n\t\t\t\tscene: this.system.app.scene,\n\t\t\t\tmesh: mesh,\n\t\t\t\tdepthWrite: data.depthWrite,\n\t\t\t\tnoFog: data.noFog,\n\t\t\t\tnode: this.entity,\n\t\t\t\tblendType: data.blendType\n\t\t\t});\n\t\t\tthis.emitter.meshInstance.node = this.entity;\n\t\t\tthis.emitter.drawOrder = this.drawOrder;\n\t\t\tif (!data.autoPlay) {\n\t\t\t\tthis.pause();\n\t\t\t\tthis.emitter.meshInstance.visible = false;\n\t\t\t}\n\t\t}\n\t\tif (this.emitter.colorMap) {\n\t\t\tthis.addMeshInstanceToLayers();\n\t\t}\n\t\tthis._evtLayersChanged = scene.on('set:layers', this.onLayersChanged, this);\n\t\tif (layers) {\n\t\t\tthis._evtLayerAdded = layers.on('add', this.onLayerAdded, this);\n\t\t\tthis._evtLayerRemoved = layers.on('remove', this.onLayerRemoved, this);\n\t\t}\n\t\tif (this.enabled && this.entity.enabled && data.depthSoftening) {\n\t\t\tthis._requestDepth();\n\t\t}\n\t}\n\tonDisable() {\n\t\tvar _this$_evtLayersChang;\n\t\tconst scene = this.system.app.scene;\n\t\tconst layers = scene.layers;\n\t\t(_this$_evtLayersChang = this._evtLayersChanged) == null || _this$_evtLayersChang.off();\n\t\tthis._evtLayersChanged = null;\n\t\tif (layers) {\n\t\t\tvar _this$_evtLayerAdded, _this$_evtLayerRemove;\n\t\t\t(_this$_evtLayerAdded = this._evtLayerAdded) == null || _this$_evtLayerAdded.off();\n\t\t\tthis._evtLayerAdded = null;\n\t\t\t(_this$_evtLayerRemove = this._evtLayerRemoved) == null || _this$_evtLayerRemove.off();\n\t\t\tthis._evtLayerRemoved = null;\n\t\t}\n\t\tif (this.emitter) {\n\t\t\tthis.removeMeshInstanceFromLayers();\n\t\t\tif (this.data.depthSoftening) this._releaseDepth();\n\t\t\tthis.emitter.camera = null;\n\t\t}\n\t}\n\tonBeforeRemove() {\n\t\tif (this.enabled) {\n\t\t\tthis.enabled = false;\n\t\t}\n\t\tif (this.emitter) {\n\t\t\tthis.emitter.destroy();\n\t\t\tthis.emitter = null;\n\t\t}\n\t\tfor (let i = 0; i < ASSET_PROPERTIES.length; i++) {\n\t\t\tconst prop = ASSET_PROPERTIES[i];\n\t\t\tif (this.data[prop]) {\n\t\t\t\tthis[prop] = null;\n\t\t\t}\n\t\t}\n\t\tthis.off();\n\t}\n\treset() {\n\t\tif (this.emitter) {\n\t\t\tthis.emitter.reset();\n\t\t}\n\t}\n\tstop() {\n\t\tif (this.emitter) {\n\t\t\tthis.emitter.loop = false;\n\t\t\tthis.emitter.resetTime();\n\t\t\tthis.emitter.addTime(0, true);\n\t\t}\n\t}\n\tpause() {\n\t\tthis.data.paused = true;\n\t}\n\tunpause() {\n\t\tthis.data.paused = false;\n\t}\n\tplay() {\n\t\tthis.data.paused = false;\n\t\tif (this.emitter) {\n\t\t\tthis.emitter.meshInstance.visible = true;\n\t\t\tthis.emitter.loop = this.data.loop;\n\t\t\tthis.emitter.resetTime();\n\t\t}\n\t}\n\tisPlaying() {\n\t\tif (this.data.paused) {\n\t\t\treturn false;\n\t\t}\n\t\tif (this.emitter && this.emitter.loop) {\n\t\t\treturn true;\n\t\t}\n\t\treturn Date.now() <= this.emitter.endTime;\n\t}\n\trebuild() {\n\t\tconst enabled = this.enabled;\n\t\tthis.enabled = false;\n\t\tif (this.emitter) {\n\t\t\tthis.emitter.rebuild();\n\t\t\tthis.emitter.meshInstance.node = this.entity;\n\t\t}\n\t\tthis.enabled = enabled;\n\t}\n}\n\nclass ParticleSystemComponentData {\n\tconstructor() {\n\t\tthis.numParticles = 1;\n\t\tthis.rate = 1;\n\t\tthis.rate2 = null;\n\t\tthis.startAngle = 0;\n\t\tthis.startAngle2 = null;\n\t\tthis.lifetime = 50;\n\t\tthis.emitterExtents = new Vec3();\n\t\tthis.emitterExtentsInner = new Vec3();\n\t\tthis.emitterRadius = 0;\n\t\tthis.emitterRadiusInner = 0;\n\t\tthis.emitterShape = EMITTERSHAPE_BOX;\n\t\tthis.initialVelocity = 0;\n\t\tthis.wrap = false;\n\t\tthis.wrapBounds = new Vec3();\n\t\tthis.localSpace = false;\n\t\tthis.screenSpace = false;\n\t\tthis.colorMap = null;\n\t\tthis.colorMapAsset = null;\n\t\tthis.normalMap = null;\n\t\tthis.normalMapAsset = null;\n\t\tthis.loop = true;\n\t\tthis.preWarm = false;\n\t\tthis.sort = 0;\n\t\tthis.mode = PARTICLEMODE_GPU;\n\t\tthis.scene = null;\n\t\tthis.lighting = false;\n\t\tthis.halfLambert = false;\n\t\tthis.intensity = 1;\n\t\tthis.stretch = 0.0;\n\t\tthis.alignToMotion = false;\n\t\tthis.depthSoftening = 0;\n\t\tthis.renderAsset = null;\n\t\tthis.meshAsset = null;\n\t\tthis.mesh = null;\n\t\tthis.depthWrite = false;\n\t\tthis.noFog = false;\n\t\tthis.orientation = PARTICLEORIENTATION_SCREEN;\n\t\tthis.particleNormal = new Vec3(0, 1, 0);\n\t\tthis.animTilesX = 1;\n\t\tthis.animTilesY = 1;\n\t\tthis.animStartFrame = 0;\n\t\tthis.animNumFrames = 1;\n\t\tthis.animNumAnimations = 1;\n\t\tthis.animIndex = 0;\n\t\tthis.randomizeAnimIndex = false;\n\t\tthis.animSpeed = 1;\n\t\tthis.animLoop = true;\n\t\tthis.scaleGraph = null;\n\t\tthis.scaleGraph2 = null;\n\t\tthis.colorGraph = null;\n\t\tthis.colorGraph2 = null;\n\t\tthis.alphaGraph = null;\n\t\tthis.alphaGraph2 = null;\n\t\tthis.localVelocityGraph = null;\n\t\tthis.localVelocityGraph2 = null;\n\t\tthis.velocityGraph = null;\n\t\tthis.velocityGraph2 = null;\n\t\tthis.rotationSpeedGraph = null;\n\t\tthis.rotationSpeedGraph2 = null;\n\t\tthis.radialSpeedGraph = null;\n\t\tthis.radialSpeedGraph2 = null;\n\t\tthis.blendType = BLEND_NORMAL;\n\t\tthis.enabled = true;\n\t\tthis.paused = false;\n\t\tthis.autoPlay = true;\n\t\tthis.layers = [LAYERID_WORLD];\n\t}\n}\n\nconst _schema$b = ['enabled', 'autoPlay', 'numParticles', 'lifetime', 'rate', 'rate2', 'startAngle', 'startAngle2', 'loop', 'preWarm', 'lighting', 'halfLambert', 'intensity', 'depthWrite', 'noFog', 'depthSoftening', 'sort', 'blendType', 'stretch', 'alignToMotion', 'emitterShape', 'emitterExtents', 'emitterExtentsInner', 'emitterRadius', 'emitterRadiusInner', 'initialVelocity', 'wrap', 'wrapBounds', 'localSpace', 'screenSpace', 'colorMapAsset', 'normalMapAsset', 'mesh', 'meshAsset', 'renderAsset', 'orientation', 'particleNormal', 'localVelocityGraph', 'localVelocityGraph2', 'velocityGraph', 'velocityGraph2', 'rotationSpeedGraph', 'rotationSpeedGraph2', 'radialSpeedGraph', 'radialSpeedGraph2', 'scaleGraph', 'scaleGraph2', 'colorGraph', 'colorGraph2', 'alphaGraph', 'alphaGraph2', 'colorMap', 'normalMap', 'animTilesX', 'animTilesY', 'animStartFrame', 'animNumFrames', 'animNumAnimations', 'animIndex', 'randomizeAnimIndex', 'animSpeed', 'animLoop', 'layers'];\nclass ParticleSystemComponentSystem extends ComponentSystem {\n\tconstructor(app) {\n\t\tsuper(app);\n\t\tthis.id = 'particlesystem';\n\t\tthis.ComponentType = ParticleSystemComponent;\n\t\tthis.DataType = ParticleSystemComponentData;\n\t\tthis.schema = _schema$b;\n\t\tthis.propertyTypes = {\n\t\t\temitterExtents: 'vec3',\n\t\t\temitterExtentsInner: 'vec3',\n\t\t\tparticleNormal: 'vec3',\n\t\t\twrapBounds: 'vec3',\n\t\t\tlocalVelocityGraph: 'curveset',\n\t\t\tlocalVelocityGraph2: 'curveset',\n\t\t\tvelocityGraph: 'curveset',\n\t\t\tvelocityGraph2: 'curveset',\n\t\t\tcolorGraph: 'curveset',\n\t\t\tcolorGraph2: 'curveset',\n\t\t\talphaGraph: 'curve',\n\t\t\talphaGraph2: 'curve',\n\t\t\trotationSpeedGraph: 'curve',\n\t\t\trotationSpeedGraph2: 'curve',\n\t\t\tradialSpeedGraph: 'curve',\n\t\t\tradialSpeedGraph2: 'curve',\n\t\t\tscaleGraph: 'curve',\n\t\t\tscaleGraph2: 'curve'\n\t\t};\n\t\tthis.on('beforeremove', this.onBeforeRemove, this);\n\t\tthis.app.systems.on('update', this.onUpdate, this);\n\t}\n\tinitializeComponentData(component, _data, properties) {\n\t\tconst data = {};\n\t\tproperties = [];\n\t\tconst types = this.propertyTypes;\n\t\tif (_data.mesh instanceof Asset || typeof _data.mesh === 'number') {\n\t\t\t_data.meshAsset = _data.mesh;\n\t\t\tdelete _data.mesh;\n\t\t}\n\t\tfor (const prop in _data) {\n\t\t\tif (_data.hasOwnProperty(prop)) {\n\t\t\t\tproperties.push(prop);\n\t\t\t\tdata[prop] = _data[prop];\n\t\t\t}\n\t\t\tif (types[prop] === 'vec3') {\n\t\t\t\tif (Array.isArray(data[prop])) {\n\t\t\t\t\tdata[prop] = new Vec3(data[prop][0], data[prop][1], data[prop][2]);\n\t\t\t\t}\n\t\t\t} else if (types[prop] === 'curve') {\n\t\t\t\tif (!(data[prop] instanceof Curve)) {\n\t\t\t\t\tconst t = data[prop].type;\n\t\t\t\t\tdata[prop] = new Curve(data[prop].keys);\n\t\t\t\t\tdata[prop].type = t;\n\t\t\t\t}\n\t\t\t} else if (types[prop] === 'curveset') {\n\t\t\t\tif (!(data[prop] instanceof CurveSet)) {\n\t\t\t\t\tconst t = data[prop].type;\n\t\t\t\t\tdata[prop] = new CurveSet(data[prop].keys);\n\t\t\t\t\tdata[prop].type = t;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (data.layers && Array.isArray(data.layers)) {\n\t\t\t\tdata.layers = data.layers.slice(0);\n\t\t\t}\n\t\t}\n\t\tsuper.initializeComponentData(component, data, properties);\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst source = entity.particlesystem.data;\n\t\tconst schema = this.schema;\n\t\tconst data = {};\n\t\tfor (let i = 0, len = schema.length; i < len; i++) {\n\t\t\tconst prop = schema[i];\n\t\t\tlet sourceProp = source[prop];\n\t\t\tif (sourceProp instanceof Vec3 || sourceProp instanceof Curve || sourceProp instanceof CurveSet) {\n\t\t\t\tsourceProp = sourceProp.clone();\n\t\t\t\tdata[prop] = sourceProp;\n\t\t\t} else if (prop === 'layers') {\n\t\t\t\tdata.layers = source.layers.slice(0);\n\t\t\t} else {\n\t\t\t\tif (sourceProp !== null && sourceProp !== undefined) {\n\t\t\t\t\tdata[prop] = sourceProp;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this.addComponent(clone, data);\n\t}\n\tonUpdate(dt) {\n\t\tconst components = this.store;\n\t\tlet numSteps;\n\t\tconst stats = this.app.stats.particles;\n\t\tconst composition = this.app.scene.layers;\n\t\tfor (let i = 0; i < composition.layerList.length; i++) {\n\t\t\tcomposition.layerList[i].requiresLightCube = false;\n\t\t}\n\t\tfor (const id in components) {\n\t\t\tif (components.hasOwnProperty(id)) {\n\t\t\t\tconst component = components[id];\n\t\t\t\tconst entity = component.entity;\n\t\t\t\tconst data = component.data;\n\t\t\t\tif (data.enabled && entity.enabled) {\n\t\t\t\t\tconst emitter = entity.particlesystem.emitter;\n\t\t\t\t\tif (!(emitter != null && emitter.meshInstance.visible)) continue;\n\t\t\t\t\tif (emitter.lighting) {\n\t\t\t\t\t\tconst layers = data.layers;\n\t\t\t\t\t\tfor (let i = 0; i < layers.length; i++) {\n\t\t\t\t\t\t\tconst layer = composition.getLayerById(layers[i]);\n\t\t\t\t\t\t\tif (layer) {\n\t\t\t\t\t\t\t\tlayer.requiresLightCube = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!data.paused) {\n\t\t\t\t\t\temitter.simTime += dt;\n\t\t\t\t\t\tif (emitter.simTime > emitter.fixedTimeStep) {\n\t\t\t\t\t\t\tnumSteps = Math.floor(emitter.simTime / emitter.fixedTimeStep);\n\t\t\t\t\t\t\temitter.simTime -= numSteps * emitter.fixedTimeStep;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (numSteps) {\n\t\t\t\t\t\t\tnumSteps = Math.min(numSteps, emitter.maxSubSteps);\n\t\t\t\t\t\t\tfor (let i = 0; i < numSteps; i++) {\n\t\t\t\t\t\t\t\temitter.addTime(emitter.fixedTimeStep, false);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstats._updatesPerFrame += numSteps;\n\t\t\t\t\t\t\tstats._frameTime += emitter._addTimeTime;\n\t\t\t\t\t\t\temitter._addTimeTime = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\temitter.finishFrame();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tonBeforeRemove(entity, component) {\n\t\tcomponent.onBeforeRemove();\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.app.systems.off('update', this.onUpdate, this);\n\t}\n}\n\nclass SkinInstanceCachedObject extends RefCountedObject {\n\tconstructor(skin, skinInstance) {\n\t\tsuper();\n\t\tthis.skin = skin;\n\t\tthis.skinInstance = skinInstance;\n\t}\n}\nclass SkinInstanceCache {\n\tstatic createCachedSkinInstance(skin, rootBone, entity) {\n\t\tlet skinInst = SkinInstanceCache.getCachedSkinInstance(skin, rootBone);\n\t\tif (!skinInst) {\n\t\t\tskinInst = new SkinInstance(skin);\n\t\t\tskinInst.resolve(rootBone, entity);\n\t\t\tSkinInstanceCache.addCachedSkinInstance(skin, rootBone, skinInst);\n\t\t}\n\t\treturn skinInst;\n\t}\n\tstatic getCachedSkinInstance(skin, rootBone) {\n\t\tlet skinInstance = null;\n\t\tconst cachedObjArray = SkinInstanceCache._skinInstanceCache.get(rootBone);\n\t\tif (cachedObjArray) {\n\t\t\tconst cachedObj = cachedObjArray.find(element => element.skin === skin);\n\t\t\tif (cachedObj) {\n\t\t\t\tcachedObj.incRefCount();\n\t\t\t\tskinInstance = cachedObj.skinInstance;\n\t\t\t}\n\t\t}\n\t\treturn skinInstance;\n\t}\n\tstatic addCachedSkinInstance(skin, rootBone, skinInstance) {\n\t\tlet cachedObjArray = SkinInstanceCache._skinInstanceCache.get(rootBone);\n\t\tif (!cachedObjArray) {\n\t\t\tcachedObjArray = [];\n\t\t\tSkinInstanceCache._skinInstanceCache.set(rootBone, cachedObjArray);\n\t\t}\n\t\tlet cachedObj = cachedObjArray.find(element => element.skin === skin);\n\t\tif (!cachedObj) {\n\t\t\tcachedObj = new SkinInstanceCachedObject(skin, skinInstance);\n\t\t\tcachedObjArray.push(cachedObj);\n\t\t}\n\t\tcachedObj.incRefCount();\n\t}\n\tstatic removeCachedSkinInstance(skinInstance) {\n\t\tif (skinInstance) {\n\t\t\tconst rootBone = skinInstance.rootBone;\n\t\t\tif (rootBone) {\n\t\t\t\tconst cachedObjArray = SkinInstanceCache._skinInstanceCache.get(rootBone);\n\t\t\t\tif (cachedObjArray) {\n\t\t\t\t\tconst cachedObjIndex = cachedObjArray.findIndex(element => element.skinInstance === skinInstance);\n\t\t\t\t\tif (cachedObjIndex >= 0) {\n\t\t\t\t\t\tconst cachedObj = cachedObjArray[cachedObjIndex];\n\t\t\t\t\t\tcachedObj.decRefCount();\n\t\t\t\t\t\tif (cachedObj.refCount === 0) {\n\t\t\t\t\t\t\tcachedObjArray.splice(cachedObjIndex, 1);\n\t\t\t\t\t\t\tif (!cachedObjArray.length) {\n\t\t\t\t\t\t\t\tSkinInstanceCache._skinInstanceCache.delete(rootBone);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (skinInstance) {\n\t\t\t\t\t\t\t\tskinInstance.destroy();\n\t\t\t\t\t\t\t\tcachedObj.skinInstance = null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\nSkinInstanceCache._skinInstanceCache = new Map();\n\nclass AssetReference {\n\tconstructor(propertyName, parent, registry, callbacks, scope) {\n\t\tthis._evtLoadById = null;\n\t\tthis._evtUnloadById = null;\n\t\tthis._evtAddById = null;\n\t\tthis._evtRemoveById = null;\n\t\tthis._evtLoadByUrl = null;\n\t\tthis._evtAddByUrl = null;\n\t\tthis._evtRemoveByUrl = null;\n\t\tthis.propertyName = propertyName;\n\t\tthis.parent = parent;\n\t\tthis._scope = scope;\n\t\tthis._registry = registry;\n\t\tthis.id = null;\n\t\tthis.url = null;\n\t\tthis.asset = null;\n\t\tthis._onAssetLoad = callbacks.load;\n\t\tthis._onAssetAdd = callbacks.add;\n\t\tthis._onAssetRemove = callbacks.remove;\n\t\tthis._onAssetUnload = callbacks.unload;\n\t}\n\tset id(value) {\n\t\tif (this.url) throw Error('Can\\'t set id and url');\n\t\tthis._unbind();\n\t\tthis._id = value;\n\t\tthis.asset = this._registry.get(this._id);\n\t\tthis._bind();\n\t}\n\tget id() {\n\t\treturn this._id;\n\t}\n\tset url(value) {\n\t\tif (this.id) throw Error('Can\\'t set id and url');\n\t\tthis._unbind();\n\t\tthis._url = value;\n\t\tthis.asset = this._registry.getByUrl(this._url);\n\t\tthis._bind();\n\t}\n\tget url() {\n\t\treturn this._url;\n\t}\n\t_bind() {\n\t\tif (this.id) {\n\t\t\tif (this._onAssetLoad) this._evtLoadById = this._registry.on(`load:${this.id}`, this._onLoad, this);\n\t\t\tif (this._onAssetAdd) this._evtAddById = this._registry.once(`add:${this.id}`, this._onAdd, this);\n\t\t\tif (this._onAssetRemove) this._evtRemoveById = this._registry.on(`remove:${this.id}`, this._onRemove, this);\n\t\t\tif (this._onAssetUnload) this._evtUnloadById = this._registry.on(`unload:${this.id}`, this._onUnload, this);\n\t\t}\n\t\tif (this.url) {\n\t\t\tif (this._onAssetLoad) this._evtLoadByUrl = this._registry.on(`load:url:${this.url}`, this._onLoad, this);\n\t\t\tif (this._onAssetAdd) this._evtAddByUrl = this._registry.once(`add:url:${this.url}`, this._onAdd, this);\n\t\t\tif (this._onAssetRemove) this._evtRemoveByUrl = this._registry.on(`remove:url:${this.url}`, this._onRemove, this);\n\t\t}\n\t}\n\t_unbind() {\n\t\tif (this.id) {\n\t\t\tvar _this$_evtLoadById, _this$_evtAddById, _this$_evtRemoveById, _this$_evtUnloadById;\n\t\t\t(_this$_evtLoadById = this._evtLoadById) == null || _this$_evtLoadById.off();\n\t\t\tthis._evtLoadById = null;\n\t\t\t(_this$_evtAddById = this._evtAddById) == null || _this$_evtAddById.off();\n\t\t\tthis._evtAddById = null;\n\t\t\t(_this$_evtRemoveById = this._evtRemoveById) == null || _this$_evtRemoveById.off();\n\t\t\tthis._evtRemoveById = null;\n\t\t\t(_this$_evtUnloadById = this._evtUnloadById) == null || _this$_evtUnloadById.off();\n\t\t\tthis._evtUnloadById = null;\n\t\t}\n\t\tif (this.url) {\n\t\t\tvar _this$_evtLoadByUrl, _this$_evtAddByUrl, _this$_evtRemoveByUrl;\n\t\t\t(_this$_evtLoadByUrl = this._evtLoadByUrl) == null || _this$_evtLoadByUrl.off();\n\t\t\tthis._evtLoadByUrl = null;\n\t\t\t(_this$_evtAddByUrl = this._evtAddByUrl) == null || _this$_evtAddByUrl.off();\n\t\t\tthis._evtAddByUrl = null;\n\t\t\t(_this$_evtRemoveByUrl = this._evtRemoveByUrl) == null || _this$_evtRemoveByUrl.off();\n\t\t\tthis._evtRemoveByUrl = null;\n\t\t}\n\t}\n\t_onLoad(asset) {\n\t\tthis._onAssetLoad.call(this._scope, this.propertyName, this.parent, asset);\n\t}\n\t_onAdd(asset) {\n\t\tthis.asset = asset;\n\t\tthis._onAssetAdd.call(this._scope, this.propertyName, this.parent, asset);\n\t}\n\t_onRemove(asset) {\n\t\tthis._onAssetRemove.call(this._scope, this.propertyName, this.parent, asset);\n\t\tthis.asset = null;\n\t}\n\t_onUnload(asset) {\n\t\tthis._onAssetUnload.call(this._scope, this.propertyName, this.parent, asset);\n\t}\n}\n\nclass RenderComponent extends Component {\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis._type = 'asset';\n\t\tthis._castShadows = true;\n\t\tthis._receiveShadows = true;\n\t\tthis._castShadowsLightmap = true;\n\t\tthis._lightmapped = false;\n\t\tthis._lightmapSizeMultiplier = 1;\n\t\tthis.isStatic = false;\n\t\tthis._batchGroupId = -1;\n\t\tthis._layers = [LAYERID_WORLD];\n\t\tthis._renderStyle = RENDERSTYLE_SOLID;\n\t\tthis._meshInstances = [];\n\t\tthis._customAabb = null;\n\t\tthis._area = null;\n\t\tthis._assetReference = void 0;\n\t\tthis._materialReferences = [];\n\t\tthis._material = void 0;\n\t\tthis._rootBone = null;\n\t\tthis._evtLayersChanged = null;\n\t\tthis._evtLayerAdded = null;\n\t\tthis._evtLayerRemoved = null;\n\t\tthis._evtSetMeshes = null;\n\t\tthis._assetReference = new AssetReference('asset', this, system.app.assets, {\n\t\t\tadd: this._onRenderAssetAdded,\n\t\t\tload: this._onRenderAssetLoad,\n\t\t\tremove: this._onRenderAssetRemove,\n\t\t\tunload: this._onRenderAssetUnload\n\t\t}, this);\n\t\tthis._material = system.defaultMaterial;\n\t\tentity.on('remove', this.onRemoveChild, this);\n\t\tentity.on('removehierarchy', this.onRemoveChild, this);\n\t\tentity.on('insert', this.onInsertChild, this);\n\t\tentity.on('inserthierarchy', this.onInsertChild, this);\n\t}\n\tset renderStyle(renderStyle) {\n\t\tif (this._renderStyle !== renderStyle) {\n\t\t\tthis._renderStyle = renderStyle;\n\t\t\tMeshInstance._prepareRenderStyleForArray(this._meshInstances, renderStyle);\n\t\t}\n\t}\n\tget renderStyle() {\n\t\treturn this._renderStyle;\n\t}\n\tset customAabb(value) {\n\t\tthis._customAabb = value;\n\t\tconst mi = this._meshInstances;\n\t\tif (mi) {\n\t\t\tfor (let i = 0; i < mi.length; i++) {\n\t\t\t\tmi[i].setCustomAabb(this._customAabb);\n\t\t\t}\n\t\t}\n\t}\n\tget customAabb() {\n\t\treturn this._customAabb;\n\t}\n\tset type(value) {\n\t\tif (this._type !== value) {\n\t\t\tthis._area = null;\n\t\t\tthis._type = value;\n\t\t\tthis.destroyMeshInstances();\n\t\t\tif (value !== 'asset') {\n\t\t\t\tlet material = this._material;\n\t\t\t\tif (!material || material === this.system.defaultMaterial) {\n\t\t\t\t\tmaterial = this._materialReferences[0] && this._materialReferences[0].asset && this._materialReferences[0].asset.resource;\n\t\t\t\t}\n\t\t\t\tconst primData = getShapePrimitive(this.system.app.graphicsDevice, value);\n\t\t\t\tthis._area = primData.area;\n\t\t\t\tthis.meshInstances = [new MeshInstance(primData.mesh, material || this.system.defaultMaterial, this.entity)];\n\t\t\t}\n\t\t}\n\t}\n\tget type() {\n\t\treturn this._type;\n\t}\n\tset meshInstances(value) {\n\t\tthis.destroyMeshInstances();\n\t\tthis._meshInstances = value;\n\t\tif (this._meshInstances) {\n\t\t\tconst mi = this._meshInstances;\n\t\t\tfor (let i = 0; i < mi.length; i++) {\n\t\t\t\tif (!mi[i].node) {\n\t\t\t\t\tmi[i].node = this.entity;\n\t\t\t\t}\n\t\t\t\tmi[i].castShadow = this._castShadows;\n\t\t\t\tmi[i].receiveShadow = this._receiveShadows;\n\t\t\t\tmi[i].renderStyle = this._renderStyle;\n\t\t\t\tmi[i].setLightmapped(this._lightmapped);\n\t\t\t\tmi[i].setCustomAabb(this._customAabb);\n\t\t\t}\n\t\t\tif (this.enabled && this.entity.enabled) {\n\t\t\t\tthis.addToLayers();\n\t\t\t}\n\t\t}\n\t}\n\tget meshInstances() {\n\t\treturn this._meshInstances;\n\t}\n\tset lightmapped(value) {\n\t\tif (value !== this._lightmapped) {\n\t\t\tthis._lightmapped = value;\n\t\t\tconst mi = this._meshInstances;\n\t\t\tif (mi) {\n\t\t\t\tfor (let i = 0; i < mi.length; i++) {\n\t\t\t\t\tmi[i].setLightmapped(value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget lightmapped() {\n\t\treturn this._lightmapped;\n\t}\n\tset castShadows(value) {\n\t\tif (this._castShadows !== value) {\n\t\t\tconst mi = this._meshInstances;\n\t\t\tif (mi) {\n\t\t\t\tconst layers = this.layers;\n\t\t\t\tconst scene = this.system.app.scene;\n\t\t\t\tif (this._castShadows && !value) {\n\t\t\t\t\tfor (let i = 0; i < layers.length; i++) {\n\t\t\t\t\t\tconst layer = scene.layers.getLayerById(this.layers[i]);\n\t\t\t\t\t\tif (layer) {\n\t\t\t\t\t\t\tlayer.removeShadowCasters(mi);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (let i = 0; i < mi.length; i++) {\n\t\t\t\t\tmi[i].castShadow = value;\n\t\t\t\t}\n\t\t\t\tif (!this._castShadows && value) {\n\t\t\t\t\tfor (let i = 0; i < layers.length; i++) {\n\t\t\t\t\t\tconst layer = scene.layers.getLayerById(layers[i]);\n\t\t\t\t\t\tif (layer) {\n\t\t\t\t\t\t\tlayer.addShadowCasters(mi);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._castShadows = value;\n\t\t}\n\t}\n\tget castShadows() {\n\t\treturn this._castShadows;\n\t}\n\tset receiveShadows(value) {\n\t\tif (this._receiveShadows !== value) {\n\t\t\tthis._receiveShadows = value;\n\t\t\tconst mi = this._meshInstances;\n\t\t\tif (mi) {\n\t\t\t\tfor (let i = 0; i < mi.length; i++) {\n\t\t\t\t\tmi[i].receiveShadow = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget receiveShadows() {\n\t\treturn this._receiveShadows;\n\t}\n\tset castShadowsLightmap(value) {\n\t\tthis._castShadowsLightmap = value;\n\t}\n\tget castShadowsLightmap() {\n\t\treturn this._castShadowsLightmap;\n\t}\n\tset lightmapSizeMultiplier(value) {\n\t\tthis._lightmapSizeMultiplier = value;\n\t}\n\tget lightmapSizeMultiplier() {\n\t\treturn this._lightmapSizeMultiplier;\n\t}\n\tset layers(value) {\n\t\tconst layers = this.system.app.scene.layers;\n\t\tlet layer;\n\t\tif (this._meshInstances) {\n\t\t\tfor (let i = 0; i < this._layers.length; i++) {\n\t\t\t\tlayer = layers.getLayerById(this._layers[i]);\n\t\t\t\tif (layer) {\n\t\t\t\t\tlayer.removeMeshInstances(this._meshInstances);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._layers.length = 0;\n\t\tfor (let i = 0; i < value.length; i++) {\n\t\t\tthis._layers[i] = value[i];\n\t\t}\n\t\tif (!this.enabled || !this.entity.enabled || !this._meshInstances) return;\n\t\tfor (let i = 0; i < this._layers.length; i++) {\n\t\t\tlayer = layers.getLayerById(this._layers[i]);\n\t\t\tif (layer) {\n\t\t\t\tlayer.addMeshInstances(this._meshInstances);\n\t\t\t}\n\t\t}\n\t}\n\tget layers() {\n\t\treturn this._layers;\n\t}\n\tset batchGroupId(value) {\n\t\tif (this._batchGroupId !== value) {\n\t\t\tif (this.entity.enabled && this._batchGroupId >= 0) {\n\t\t\t\tvar _this$system$app$batc;\n\t\t\t\t(_this$system$app$batc = this.system.app.batcher) == null || _this$system$app$batc.remove(BatchGroup.RENDER, this.batchGroupId, this.entity);\n\t\t\t}\n\t\t\tif (this.entity.enabled && value >= 0) {\n\t\t\t\tvar _this$system$app$batc2;\n\t\t\t\t(_this$system$app$batc2 = this.system.app.batcher) == null || _this$system$app$batc2.insert(BatchGroup.RENDER, value, this.entity);\n\t\t\t}\n\t\t\tif (value < 0 && this._batchGroupId >= 0 && this.enabled && this.entity.enabled) {\n\t\t\t\tthis.addToLayers();\n\t\t\t}\n\t\t\tthis._batchGroupId = value;\n\t\t}\n\t}\n\tget batchGroupId() {\n\t\treturn this._batchGroupId;\n\t}\n\tset material(value) {\n\t\tif (this._material !== value) {\n\t\t\tthis._material = value;\n\t\t\tif (this._meshInstances && this._type !== 'asset') {\n\t\t\t\tfor (let i = 0; i < this._meshInstances.length; i++) {\n\t\t\t\t\tthis._meshInstances[i].material = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget material() {\n\t\treturn this._material;\n\t}\n\tset materialAssets(value = []) {\n\t\tif (this._materialReferences.length > value.length) {\n\t\t\tfor (let i = value.length; i < this._materialReferences.length; i++) {\n\t\t\t\tthis._materialReferences[i].id = null;\n\t\t\t}\n\t\t\tthis._materialReferences.length = value.length;\n\t\t}\n\t\tfor (let i = 0; i < value.length; i++) {\n\t\t\tif (!this._materialReferences[i]) {\n\t\t\t\tthis._materialReferences.push(new AssetReference(i, this, this.system.app.assets, {\n\t\t\t\t\tadd: this._onMaterialAdded,\n\t\t\t\t\tload: this._onMaterialLoad,\n\t\t\t\t\tremove: this._onMaterialRemove,\n\t\t\t\t\tunload: this._onMaterialUnload\n\t\t\t\t}, this));\n\t\t\t}\n\t\t\tif (value[i]) {\n\t\t\t\tconst id = value[i] instanceof Asset ? value[i].id : value[i];\n\t\t\t\tif (this._materialReferences[i].id !== id) {\n\t\t\t\t\tthis._materialReferences[i].id = id;\n\t\t\t\t}\n\t\t\t\tif (this._materialReferences[i].asset) {\n\t\t\t\t\tthis._onMaterialAdded(i, this, this._materialReferences[i].asset);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._materialReferences[i].id = null;\n\t\t\t\tif (this._meshInstances[i]) {\n\t\t\t\t\tthis._meshInstances[i].material = this.system.defaultMaterial;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget materialAssets() {\n\t\treturn this._materialReferences.map(ref => {\n\t\t\treturn ref.id;\n\t\t});\n\t}\n\tset asset(value) {\n\t\tconst id = value instanceof Asset ? value.id : value;\n\t\tif (this._assetReference.id === id) return;\n\t\tif (this._assetReference.asset && this._assetReference.asset.resource) {\n\t\t\tthis._onRenderAssetRemove();\n\t\t}\n\t\tthis._assetReference.id = id;\n\t\tif (this._assetReference.asset) {\n\t\t\tthis._onRenderAssetAdded();\n\t\t}\n\t}\n\tget asset() {\n\t\treturn this._assetReference.id;\n\t}\n\tassignAsset(asset) {\n\t\tconst id = asset instanceof Asset ? asset.id : asset;\n\t\tthis._assetReference.id = id;\n\t}\n\tset rootBone(value) {\n\t\tif (this._rootBone !== value) {\n\t\t\tconst isString = typeof value === 'string';\n\t\t\tif (this._rootBone && isString && this._rootBone.getGuid() === value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this._rootBone) {\n\t\t\t\tthis._clearSkinInstances();\n\t\t\t}\n\t\t\tif (value instanceof GraphNode) {\n\t\t\t\tthis._rootBone = value;\n\t\t\t} else if (isString) {\n\t\t\t\tthis._rootBone = this.system.app.getEntityFromIndex(value) || null;\n\t\t\t\tif (!this._rootBone) ;\n\t\t\t} else {\n\t\t\t\tthis._rootBone = null;\n\t\t\t}\n\t\t\tif (this._rootBone) {\n\t\t\t\tthis._cloneSkinInstances();\n\t\t\t}\n\t\t}\n\t}\n\tget rootBone() {\n\t\treturn this._rootBone;\n\t}\n\tdestroyMeshInstances() {\n\t\tconst meshInstances = this._meshInstances;\n\t\tif (meshInstances) {\n\t\t\tthis.removeFromLayers();\n\t\t\tthis._clearSkinInstances();\n\t\t\tfor (let i = 0; i < meshInstances.length; i++) {\n\t\t\t\tmeshInstances[i].destroy();\n\t\t\t}\n\t\t\tthis._meshInstances.length = 0;\n\t\t}\n\t}\n\taddToLayers() {\n\t\tconst layers = this.system.app.scene.layers;\n\t\tfor (let i = 0; i < this._layers.length; i++) {\n\t\t\tconst layer = layers.getLayerById(this._layers[i]);\n\t\t\tif (layer) {\n\t\t\t\tlayer.addMeshInstances(this._meshInstances);\n\t\t\t}\n\t\t}\n\t}\n\tremoveFromLayers() {\n\t\tif (this._meshInstances && this._meshInstances.length) {\n\t\t\tconst layers = this.system.app.scene.layers;\n\t\t\tfor (let i = 0; i < this._layers.length; i++) {\n\t\t\t\tconst layer = layers.getLayerById(this._layers[i]);\n\t\t\t\tif (layer) {\n\t\t\t\t\tlayer.removeMeshInstances(this._meshInstances);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tonRemoveChild() {\n\t\tthis.removeFromLayers();\n\t}\n\tonInsertChild() {\n\t\tif (this._meshInstances && this.enabled && this.entity.enabled) {\n\t\t\tthis.addToLayers();\n\t\t}\n\t}\n\tonRemove() {\n\t\tthis.destroyMeshInstances();\n\t\tthis.asset = null;\n\t\tthis.materialAsset = null;\n\t\tthis._assetReference.id = null;\n\t\tfor (let i = 0; i < this._materialReferences.length; i++) {\n\t\t\tthis._materialReferences[i].id = null;\n\t\t}\n\t\tthis.entity.off('remove', this.onRemoveChild, this);\n\t\tthis.entity.off('insert', this.onInsertChild, this);\n\t}\n\tonLayersChanged(oldComp, newComp) {\n\t\tthis.addToLayers();\n\t\toldComp.off('add', this.onLayerAdded, this);\n\t\toldComp.off('remove', this.onLayerRemoved, this);\n\t\tnewComp.on('add', this.onLayerAdded, this);\n\t\tnewComp.on('remove', this.onLayerRemoved, this);\n\t}\n\tonLayerAdded(layer) {\n\t\tconst index = this.layers.indexOf(layer.id);\n\t\tif (index < 0) return;\n\t\tlayer.addMeshInstances(this._meshInstances);\n\t}\n\tonLayerRemoved(layer) {\n\t\tconst index = this.layers.indexOf(layer.id);\n\t\tif (index < 0) return;\n\t\tlayer.removeMeshInstances(this._meshInstances);\n\t}\n\tonEnable() {\n\t\tconst app = this.system.app;\n\t\tconst scene = app.scene;\n\t\tconst layers = scene.layers;\n\t\tif (this._rootBone) {\n\t\t\tthis._cloneSkinInstances();\n\t\t}\n\t\tthis._evtLayersChanged = scene.on('set:layers', this.onLayersChanged, this);\n\t\tif (layers) {\n\t\t\tthis._evtLayerAdded = layers.on('add', this.onLayerAdded, this);\n\t\t\tthis._evtLayerRemoved = layers.on('remove', this.onLayerRemoved, this);\n\t\t}\n\t\tconst isAsset = this._type === 'asset';\n\t\tif (this._meshInstances && this._meshInstances.length) {\n\t\t\tthis.addToLayers();\n\t\t} else if (isAsset && this.asset) {\n\t\t\tthis._onRenderAssetAdded();\n\t\t}\n\t\tfor (let i = 0; i < this._materialReferences.length; i++) {\n\t\t\tif (this._materialReferences[i].asset) {\n\t\t\t\tthis.system.app.assets.load(this._materialReferences[i].asset);\n\t\t\t}\n\t\t}\n\t\tif (this._batchGroupId >= 0) {\n\t\t\tvar _app$batcher;\n\t\t\t(_app$batcher = app.batcher) == null || _app$batcher.insert(BatchGroup.RENDER, this.batchGroupId, this.entity);\n\t\t}\n\t}\n\tonDisable() {\n\t\tvar _this$_evtLayersChang;\n\t\tconst app = this.system.app;\n\t\tconst scene = app.scene;\n\t\tconst layers = scene.layers;\n\t\t(_this$_evtLayersChang = this._evtLayersChanged) == null || _this$_evtLayersChang.off();\n\t\tthis._evtLayersChanged = null;\n\t\tif (this._rootBone) {\n\t\t\tthis._clearSkinInstances();\n\t\t}\n\t\tif (layers) {\n\t\t\tvar _this$_evtLayerAdded, _this$_evtLayerRemove;\n\t\t\t(_this$_evtLayerAdded = this._evtLayerAdded) == null || _this$_evtLayerAdded.off();\n\t\t\tthis._evtLayerAdded = null;\n\t\t\t(_this$_evtLayerRemove = this._evtLayerRemoved) == null || _this$_evtLayerRemove.off();\n\t\t\tthis._evtLayerRemoved = null;\n\t\t}\n\t\tif (this._batchGroupId >= 0) {\n\t\t\tvar _app$batcher2;\n\t\t\t(_app$batcher2 = app.batcher) == null || _app$batcher2.remove(BatchGroup.RENDER, this.batchGroupId, this.entity);\n\t\t}\n\t\tthis.removeFromLayers();\n\t}\n\thide() {\n\t\tif (this._meshInstances) {\n\t\t\tfor (let i = 0; i < this._meshInstances.length; i++) {\n\t\t\t\tthis._meshInstances[i].visible = false;\n\t\t\t}\n\t\t}\n\t}\n\tshow() {\n\t\tif (this._meshInstances) {\n\t\t\tfor (let i = 0; i < this._meshInstances.length; i++) {\n\t\t\t\tthis._meshInstances[i].visible = true;\n\t\t\t}\n\t\t}\n\t}\n\t_onRenderAssetAdded() {\n\t\tif (!this._assetReference.asset) return;\n\t\tif (this._assetReference.asset.resource) {\n\t\t\tthis._onRenderAssetLoad();\n\t\t} else if (this.enabled && this.entity.enabled) {\n\t\t\tthis.system.app.assets.load(this._assetReference.asset);\n\t\t}\n\t}\n\t_onRenderAssetLoad() {\n\t\tthis.destroyMeshInstances();\n\t\tif (this._assetReference.asset) {\n\t\t\tvar _this$_evtSetMeshes;\n\t\t\tconst render = this._assetReference.asset.resource;\n\t\t\t(_this$_evtSetMeshes = this._evtSetMeshes) == null || _this$_evtSetMeshes.off();\n\t\t\tthis._evtSetMeshes = render.on('set:meshes', this._onSetMeshes, this);\n\t\t\tif (render.meshes) {\n\t\t\t\tthis._onSetMeshes(render.meshes);\n\t\t\t}\n\t\t}\n\t}\n\t_onSetMeshes(meshes) {\n\t\tthis._cloneMeshes(meshes);\n\t}\n\t_clearSkinInstances() {\n\t\tfor (let i = 0; i < this._meshInstances.length; i++) {\n\t\t\tconst meshInstance = this._meshInstances[i];\n\t\t\tSkinInstanceCache.removeCachedSkinInstance(meshInstance.skinInstance);\n\t\t\tmeshInstance.skinInstance = null;\n\t\t}\n\t}\n\t_cloneSkinInstances() {\n\t\tif (this._meshInstances.length && this._rootBone instanceof GraphNode) {\n\t\t\tfor (let i = 0; i < this._meshInstances.length; i++) {\n\t\t\t\tconst meshInstance = this._meshInstances[i];\n\t\t\t\tconst mesh = meshInstance.mesh;\n\t\t\t\tif (mesh.skin && !meshInstance.skinInstance) {\n\t\t\t\t\tmeshInstance.skinInstance = SkinInstanceCache.createCachedSkinInstance(mesh.skin, this._rootBone, this.entity);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t_cloneMeshes(meshes) {\n\t\tif (meshes && meshes.length) {\n\t\t\tconst meshInstances = [];\n\t\t\tfor (let i = 0; i < meshes.length; i++) {\n\t\t\t\tconst mesh = meshes[i];\n\t\t\t\tconst material = this._materialReferences[i] && this._materialReferences[i].asset && this._materialReferences[i].asset.resource;\n\t\t\t\tconst meshInst = new MeshInstance(mesh, material || this.system.defaultMaterial, this.entity);\n\t\t\t\tmeshInstances.push(meshInst);\n\t\t\t\tif (mesh.morph) {\n\t\t\t\t\tmeshInst.morphInstance = new MorphInstance(mesh.morph);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.meshInstances = meshInstances;\n\t\t\tthis._cloneSkinInstances();\n\t\t}\n\t}\n\t_onRenderAssetUnload() {\n\t\tif (this._type === 'asset') {\n\t\t\tthis.destroyMeshInstances();\n\t\t}\n\t}\n\t_onRenderAssetRemove() {\n\t\tvar _this$_evtSetMeshes2;\n\t\t(_this$_evtSetMeshes2 = this._evtSetMeshes) == null || _this$_evtSetMeshes2.off();\n\t\tthis._evtSetMeshes = null;\n\t\tthis._onRenderAssetUnload();\n\t}\n\t_onMaterialAdded(index, component, asset) {\n\t\tif (asset.resource) {\n\t\t\tthis._onMaterialLoad(index, component, asset);\n\t\t} else {\n\t\t\tif (this.enabled && this.entity.enabled) {\n\t\t\t\tthis.system.app.assets.load(asset);\n\t\t\t}\n\t\t}\n\t}\n\t_updateMainMaterial(index, material) {\n\t\tif (index === 0) {\n\t\t\tthis.material = material;\n\t\t}\n\t}\n\t_onMaterialLoad(index, component, asset) {\n\t\tif (this._meshInstances[index]) {\n\t\t\tthis._meshInstances[index].material = asset.resource;\n\t\t}\n\t\tthis._updateMainMaterial(index, asset.resource);\n\t}\n\t_onMaterialRemove(index, component, asset) {\n\t\tif (this._meshInstances[index]) {\n\t\t\tthis._meshInstances[index].material = this.system.defaultMaterial;\n\t\t}\n\t\tthis._updateMainMaterial(index, this.system.defaultMaterial);\n\t}\n\t_onMaterialUnload(index, component, asset) {\n\t\tif (this._meshInstances[index]) {\n\t\t\tthis._meshInstances[index].material = this.system.defaultMaterial;\n\t\t}\n\t\tthis._updateMainMaterial(index, this.system.defaultMaterial);\n\t}\n\tresolveDuplicatedEntityReferenceProperties(oldRender, duplicatedIdsMap) {\n\t\tif (oldRender.rootBone) {\n\t\t\tthis.rootBone = duplicatedIdsMap[oldRender.rootBone.getGuid()];\n\t\t}\n\t}\n}\n\nclass RenderComponentData {\n\tconstructor() {\n\t\tthis.enabled = true;\n\t}\n}\n\nconst _schema$a = ['enabled'];\nconst _properties$1 = ['material', 'meshInstances', 'asset', 'materialAssets', 'castShadows', 'receiveShadows', 'castShadowsLightmap', 'lightmapped', 'lightmapSizeMultiplier', 'renderStyle', 'type', 'layers', 'isStatic', 'batchGroupId', 'rootBone'];\nclass RenderComponentSystem extends ComponentSystem {\n\tconstructor(app) {\n\t\tsuper(app);\n\t\tthis.id = 'render';\n\t\tthis.ComponentType = RenderComponent;\n\t\tthis.DataType = RenderComponentData;\n\t\tthis.schema = _schema$a;\n\t\tthis.defaultMaterial = getDefaultMaterial(app.graphicsDevice);\n\t\tthis.on('beforeremove', this.onRemove, this);\n\t}\n\tinitializeComponentData(component, _data, properties) {\n\t\tif (_data.batchGroupId === null || _data.batchGroupId === undefined) {\n\t\t\t_data.batchGroupId = -1;\n\t\t}\n\t\tif (_data.layers && _data.layers.length) {\n\t\t\t_data.layers = _data.layers.slice(0);\n\t\t}\n\t\tfor (let i = 0; i < _properties$1.length; i++) {\n\t\t\tif (_data.hasOwnProperty(_properties$1[i])) {\n\t\t\t\tcomponent[_properties$1[i]] = _data[_properties$1[i]];\n\t\t\t}\n\t\t}\n\t\tif (_data.aabbCenter && _data.aabbHalfExtents) {\n\t\t\tcomponent.customAabb = new BoundingBox(new Vec3(_data.aabbCenter), new Vec3(_data.aabbHalfExtents));\n\t\t}\n\t\tsuper.initializeComponentData(component, _data, _schema$a);\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst data = {};\n\t\tfor (let i = 0; i < _properties$1.length; i++) {\n\t\t\tdata[_properties$1[i]] = entity.render[_properties$1[i]];\n\t\t}\n\t\tdata.enabled = entity.render.enabled;\n\t\tdelete data.meshInstances;\n\t\tconst component = this.addComponent(clone, data);\n\t\tconst srcMeshInstances = entity.render.meshInstances;\n\t\tconst meshes = srcMeshInstances.map(mi => mi.mesh);\n\t\tcomponent._onSetMeshes(meshes);\n\t\tfor (let m = 0; m < srcMeshInstances.length; m++) {\n\t\t\tcomponent.meshInstances[m].material = srcMeshInstances[m].material;\n\t\t}\n\t\tif (entity.render.customAabb) {\n\t\t\tcomponent.customAabb = entity.render.customAabb.clone();\n\t\t}\n\t\treturn component;\n\t}\n\tonRemove(entity, component) {\n\t\tcomponent.onRemove();\n\t}\n}\nComponent._buildAccessors(RenderComponent.prototype, _schema$a);\n\nclass ObjectPool {\n\tconstructor(constructorFunc, size) {\n\t\tthis._constructor = void 0;\n\t\tthis._pool = [];\n\t\tthis._count = 0;\n\t\tthis._constructor = constructorFunc;\n\t\tthis._resize(size);\n\t}\n\t_resize(size) {\n\t\tif (size > this._pool.length) {\n\t\t\tfor (let i = this._pool.length; i < size; i++) {\n\t\t\t\tthis._pool[i] = new this._constructor();\n\t\t\t}\n\t\t}\n\t}\n\tallocate() {\n\t\tif (this._count >= this._pool.length) {\n\t\t\tthis._resize(this._pool.length * 2);\n\t\t}\n\t\treturn this._pool[this._count++];\n\t}\n\tfreeAll() {\n\t\tthis._count = 0;\n\t}\n}\n\nlet _ammoTransform;\nlet _ammoVec1, _ammoVec2, _ammoQuat;\nconst _quat1 = new Quat();\nconst _quat2 = new Quat();\nconst _vec3 = new Vec3();\nclass RigidBodyComponent extends Component {\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis._angularDamping = 0;\n\t\tthis._angularFactor = new Vec3(1, 1, 1);\n\t\tthis._angularVelocity = new Vec3();\n\t\tthis._body = null;\n\t\tthis._friction = 0.5;\n\t\tthis._group = BODYGROUP_STATIC;\n\t\tthis._linearDamping = 0;\n\t\tthis._linearFactor = new Vec3(1, 1, 1);\n\t\tthis._linearVelocity = new Vec3();\n\t\tthis._mask = BODYMASK_NOT_STATIC;\n\t\tthis._mass = 1;\n\t\tthis._restitution = 0;\n\t\tthis._rollingFriction = 0;\n\t\tthis._simulationEnabled = false;\n\t\tthis._type = BODYTYPE_STATIC;\n\t}\n\tstatic onLibraryLoaded() {\n\t\tif (typeof Ammo !== 'undefined') {\n\t\t\t_ammoTransform = new Ammo.btTransform();\n\t\t\t_ammoVec1 = new Ammo.btVector3();\n\t\t\t_ammoVec2 = new Ammo.btVector3();\n\t\t\t_ammoQuat = new Ammo.btQuaternion();\n\t\t}\n\t}\n\tstatic onAppDestroy() {\n\t\tAmmo.destroy(_ammoTransform);\n\t\tAmmo.destroy(_ammoVec1);\n\t\tAmmo.destroy(_ammoVec2);\n\t\tAmmo.destroy(_ammoQuat);\n\t\t_ammoTransform = null;\n\t\t_ammoVec1 = null;\n\t\t_ammoVec2 = null;\n\t\t_ammoQuat = null;\n\t}\n\tset angularDamping(damping) {\n\t\tif (this._angularDamping !== damping) {\n\t\t\tthis._angularDamping = damping;\n\t\t\tif (this._body) {\n\t\t\t\tthis._body.setDamping(this._linearDamping, damping);\n\t\t\t}\n\t\t}\n\t}\n\tget angularDamping() {\n\t\treturn this._angularDamping;\n\t}\n\tset angularFactor(factor) {\n\t\tif (!this._angularFactor.equals(factor)) {\n\t\t\tthis._angularFactor.copy(factor);\n\t\t\tif (this._body && this._type === BODYTYPE_DYNAMIC) {\n\t\t\t\t_ammoVec1.setValue(factor.x, factor.y, factor.z);\n\t\t\t\tthis._body.setAngularFactor(_ammoVec1);\n\t\t\t}\n\t\t}\n\t}\n\tget angularFactor() {\n\t\treturn this._angularFactor;\n\t}\n\tset angularVelocity(velocity) {\n\t\tif (this._body && this._type === BODYTYPE_DYNAMIC) {\n\t\t\tthis._body.activate();\n\t\t\t_ammoVec1.setValue(velocity.x, velocity.y, velocity.z);\n\t\t\tthis._body.setAngularVelocity(_ammoVec1);\n\t\t\tthis._angularVelocity.copy(velocity);\n\t\t}\n\t}\n\tget angularVelocity() {\n\t\tif (this._body && this._type === BODYTYPE_DYNAMIC) {\n\t\t\tconst velocity = this._body.getAngularVelocity();\n\t\t\tthis._angularVelocity.set(velocity.x(), velocity.y(), velocity.z());\n\t\t}\n\t\treturn this._angularVelocity;\n\t}\n\tset body(body) {\n\t\tif (this._body !== body) {\n\t\t\tthis._body = body;\n\t\t\tif (body && this._simulationEnabled) {\n\t\t\t\tbody.activate();\n\t\t\t}\n\t\t}\n\t}\n\tget body() {\n\t\treturn this._body;\n\t}\n\tset friction(friction) {\n\t\tif (this._friction !== friction) {\n\t\t\tthis._friction = friction;\n\t\t\tif (this._body) {\n\t\t\t\tthis._body.setFriction(friction);\n\t\t\t}\n\t\t}\n\t}\n\tget friction() {\n\t\treturn this._friction;\n\t}\n\tset group(group) {\n\t\tif (this._group !== group) {\n\t\t\tthis._group = group;\n\t\t\tif (this.enabled && this.entity.enabled) {\n\t\t\t\tthis.disableSimulation();\n\t\t\t\tthis.enableSimulation();\n\t\t\t}\n\t\t}\n\t}\n\tget group() {\n\t\treturn this._group;\n\t}\n\tset linearDamping(damping) {\n\t\tif (this._linearDamping !== damping) {\n\t\t\tthis._linearDamping = damping;\n\t\t\tif (this._body) {\n\t\t\t\tthis._body.setDamping(damping, this._angularDamping);\n\t\t\t}\n\t\t}\n\t}\n\tget linearDamping() {\n\t\treturn this._linearDamping;\n\t}\n\tset linearFactor(factor) {\n\t\tif (!this._linearFactor.equals(factor)) {\n\t\t\tthis._linearFactor.copy(factor);\n\t\t\tif (this._body && this._type === BODYTYPE_DYNAMIC) {\n\t\t\t\t_ammoVec1.setValue(factor.x, factor.y, factor.z);\n\t\t\t\tthis._body.setLinearFactor(_ammoVec1);\n\t\t\t}\n\t\t}\n\t}\n\tget linearFactor() {\n\t\treturn this._linearFactor;\n\t}\n\tset linearVelocity(velocity) {\n\t\tif (this._body && this._type === BODYTYPE_DYNAMIC) {\n\t\t\tthis._body.activate();\n\t\t\t_ammoVec1.setValue(velocity.x, velocity.y, velocity.z);\n\t\t\tthis._body.setLinearVelocity(_ammoVec1);\n\t\t\tthis._linearVelocity.copy(velocity);\n\t\t}\n\t}\n\tget linearVelocity() {\n\t\tif (this._body && this._type === BODYTYPE_DYNAMIC) {\n\t\t\tconst velocity = this._body.getLinearVelocity();\n\t\t\tthis._linearVelocity.set(velocity.x(), velocity.y(), velocity.z());\n\t\t}\n\t\treturn this._linearVelocity;\n\t}\n\tset mask(mask) {\n\t\tif (this._mask !== mask) {\n\t\t\tthis._mask = mask;\n\t\t\tif (this.enabled && this.entity.enabled) {\n\t\t\t\tthis.disableSimulation();\n\t\t\t\tthis.enableSimulation();\n\t\t\t}\n\t\t}\n\t}\n\tget mask() {\n\t\treturn this._mask;\n\t}\n\tset mass(mass) {\n\t\tif (this._mass !== mass) {\n\t\t\tthis._mass = mass;\n\t\t\tif (this._body && this._type === BODYTYPE_DYNAMIC) {\n\t\t\t\tconst enabled = this.enabled && this.entity.enabled;\n\t\t\t\tif (enabled) {\n\t\t\t\t\tthis.disableSimulation();\n\t\t\t\t}\n\t\t\t\tthis._body.getCollisionShape().calculateLocalInertia(mass, _ammoVec1);\n\t\t\t\tthis._body.setMassProps(mass, _ammoVec1);\n\t\t\t\tthis._body.updateInertiaTensor();\n\t\t\t\tif (enabled) {\n\t\t\t\t\tthis.enableSimulation();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget mass() {\n\t\treturn this._mass;\n\t}\n\tset restitution(restitution) {\n\t\tif (this._restitution !== restitution) {\n\t\t\tthis._restitution = restitution;\n\t\t\tif (this._body) {\n\t\t\t\tthis._body.setRestitution(restitution);\n\t\t\t}\n\t\t}\n\t}\n\tget restitution() {\n\t\treturn this._restitution;\n\t}\n\tset rollingFriction(friction) {\n\t\tif (this._rollingFriction !== friction) {\n\t\t\tthis._rollingFriction = friction;\n\t\t\tif (this._body) {\n\t\t\t\tthis._body.setRollingFriction(friction);\n\t\t\t}\n\t\t}\n\t}\n\tget rollingFriction() {\n\t\treturn this._rollingFriction;\n\t}\n\tset type(type) {\n\t\tif (this._type !== type) {\n\t\t\tthis._type = type;\n\t\t\tthis.disableSimulation();\n\t\t\tswitch (type) {\n\t\t\t\tcase BODYTYPE_DYNAMIC:\n\t\t\t\t\tthis._group = BODYGROUP_DYNAMIC;\n\t\t\t\t\tthis._mask = BODYMASK_ALL;\n\t\t\t\t\tbreak;\n\t\t\t\tcase BODYTYPE_KINEMATIC:\n\t\t\t\t\tthis._group = BODYGROUP_KINEMATIC;\n\t\t\t\t\tthis._mask = BODYMASK_ALL;\n\t\t\t\t\tbreak;\n\t\t\t\tcase BODYTYPE_STATIC:\n\t\t\t\tdefault:\n\t\t\t\t\tthis._group = BODYGROUP_STATIC;\n\t\t\t\t\tthis._mask = BODYMASK_NOT_STATIC;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tthis.createBody();\n\t\t}\n\t}\n\tget type() {\n\t\treturn this._type;\n\t}\n\tcreateBody() {\n\t\tconst entity = this.entity;\n\t\tlet shape;\n\t\tif (entity.collision) {\n\t\t\tshape = entity.collision.shape;\n\t\t\tif (entity.trigger) {\n\t\t\t\tentity.trigger.destroy();\n\t\t\t\tdelete entity.trigger;\n\t\t\t}\n\t\t}\n\t\tif (shape) {\n\t\t\tif (this._body) {\n\t\t\t\tthis.system.removeBody(this._body);\n\t\t\t\tthis.system.destroyBody(this._body);\n\t\t\t\tthis._body = null;\n\t\t\t}\n\t\t\tconst mass = this._type === BODYTYPE_DYNAMIC ? this._mass : 0;\n\t\t\tthis._getEntityTransform(_ammoTransform);\n\t\t\tconst body = this.system.createBody(mass, shape, _ammoTransform);\n\t\t\tbody.setRestitution(this._restitution);\n\t\t\tbody.setFriction(this._friction);\n\t\t\tbody.setRollingFriction(this._rollingFriction);\n\t\t\tbody.setDamping(this._linearDamping, this._angularDamping);\n\t\t\tif (this._type === BODYTYPE_DYNAMIC) {\n\t\t\t\tconst linearFactor = this._linearFactor;\n\t\t\t\t_ammoVec1.setValue(linearFactor.x, linearFactor.y, linearFactor.z);\n\t\t\t\tbody.setLinearFactor(_ammoVec1);\n\t\t\t\tconst angularFactor = this._angularFactor;\n\t\t\t\t_ammoVec1.setValue(angularFactor.x, angularFactor.y, angularFactor.z);\n\t\t\t\tbody.setAngularFactor(_ammoVec1);\n\t\t\t} else if (this._type === BODYTYPE_KINEMATIC) {\n\t\t\t\tbody.setCollisionFlags(body.getCollisionFlags() | BODYFLAG_KINEMATIC_OBJECT);\n\t\t\t\tbody.setActivationState(BODYSTATE_DISABLE_DEACTIVATION);\n\t\t\t}\n\t\t\tbody.entity = entity;\n\t\t\tthis.body = body;\n\t\t\tif (this.enabled && entity.enabled) {\n\t\t\t\tthis.enableSimulation();\n\t\t\t}\n\t\t}\n\t}\n\tisActive() {\n\t\treturn this._body ? this._body.isActive() : false;\n\t}\n\tactivate() {\n\t\tif (this._body) {\n\t\t\tthis._body.activate();\n\t\t}\n\t}\n\tenableSimulation() {\n\t\tconst entity = this.entity;\n\t\tif (entity.collision && entity.collision.enabled && !this._simulationEnabled) {\n\t\t\tconst body = this._body;\n\t\t\tif (body) {\n\t\t\t\tthis.system.addBody(body, this._group, this._mask);\n\t\t\t\tswitch (this._type) {\n\t\t\t\t\tcase BODYTYPE_DYNAMIC:\n\t\t\t\t\t\tthis.system._dynamic.push(this);\n\t\t\t\t\t\tbody.forceActivationState(BODYSTATE_ACTIVE_TAG);\n\t\t\t\t\t\tthis.syncEntityToBody();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase BODYTYPE_KINEMATIC:\n\t\t\t\t\t\tthis.system._kinematic.push(this);\n\t\t\t\t\t\tbody.forceActivationState(BODYSTATE_DISABLE_DEACTIVATION);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase BODYTYPE_STATIC:\n\t\t\t\t\t\tbody.forceActivationState(BODYSTATE_ACTIVE_TAG);\n\t\t\t\t\t\tthis.syncEntityToBody();\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (entity.collision.type === 'compound') {\n\t\t\t\t\tthis.system._compounds.push(entity.collision);\n\t\t\t\t}\n\t\t\t\tbody.activate();\n\t\t\t\tthis._simulationEnabled = true;\n\t\t\t}\n\t\t}\n\t}\n\tdisableSimulation() {\n\t\tconst body = this._body;\n\t\tif (body && this._simulationEnabled) {\n\t\t\tconst system = this.system;\n\t\t\tlet idx = system._compounds.indexOf(this.entity.collision);\n\t\t\tif (idx > -1) {\n\t\t\t\tsystem._compounds.splice(idx, 1);\n\t\t\t}\n\t\t\tidx = system._dynamic.indexOf(this);\n\t\t\tif (idx > -1) {\n\t\t\t\tsystem._dynamic.splice(idx, 1);\n\t\t\t}\n\t\t\tidx = system._kinematic.indexOf(this);\n\t\t\tif (idx > -1) {\n\t\t\t\tsystem._kinematic.splice(idx, 1);\n\t\t\t}\n\t\t\tsystem.removeBody(body);\n\t\t\tbody.forceActivationState(BODYSTATE_DISABLE_SIMULATION);\n\t\t\tthis._simulationEnabled = false;\n\t\t}\n\t}\n\tapplyForce(x, y, z, px, py, pz) {\n\t\tconst body = this._body;\n\t\tif (body) {\n\t\t\tbody.activate();\n\t\t\tif (x instanceof Vec3) {\n\t\t\t\t_ammoVec1.setValue(x.x, x.y, x.z);\n\t\t\t} else {\n\t\t\t\t_ammoVec1.setValue(x, y, z);\n\t\t\t}\n\t\t\tif (y instanceof Vec3) {\n\t\t\t\t_ammoVec2.setValue(y.x, y.y, y.z);\n\t\t\t} else if (px !== undefined) {\n\t\t\t\t_ammoVec2.setValue(px, py, pz);\n\t\t\t} else {\n\t\t\t\t_ammoVec2.setValue(0, 0, 0);\n\t\t\t}\n\t\t\tbody.applyForce(_ammoVec1, _ammoVec2);\n\t\t}\n\t}\n\tapplyTorque(x, y, z) {\n\t\tconst body = this._body;\n\t\tif (body) {\n\t\t\tbody.activate();\n\t\t\tif (x instanceof Vec3) {\n\t\t\t\t_ammoVec1.setValue(x.x, x.y, x.z);\n\t\t\t} else {\n\t\t\t\t_ammoVec1.setValue(x, y, z);\n\t\t\t}\n\t\t\tbody.applyTorque(_ammoVec1);\n\t\t}\n\t}\n\tapplyImpulse(x, y, z, px, py, pz) {\n\t\tconst body = this._body;\n\t\tif (body) {\n\t\t\tbody.activate();\n\t\t\tif (x instanceof Vec3) {\n\t\t\t\t_ammoVec1.setValue(x.x, x.y, x.z);\n\t\t\t} else {\n\t\t\t\t_ammoVec1.setValue(x, y, z);\n\t\t\t}\n\t\t\tif (y instanceof Vec3) {\n\t\t\t\t_ammoVec2.setValue(y.x, y.y, y.z);\n\t\t\t} else if (px !== undefined) {\n\t\t\t\t_ammoVec2.setValue(px, py, pz);\n\t\t\t} else {\n\t\t\t\t_ammoVec2.setValue(0, 0, 0);\n\t\t\t}\n\t\t\tbody.applyImpulse(_ammoVec1, _ammoVec2);\n\t\t}\n\t}\n\tapplyTorqueImpulse(x, y, z) {\n\t\tconst body = this._body;\n\t\tif (body) {\n\t\t\tbody.activate();\n\t\t\tif (x instanceof Vec3) {\n\t\t\t\t_ammoVec1.setValue(x.x, x.y, x.z);\n\t\t\t} else {\n\t\t\t\t_ammoVec1.setValue(x, y, z);\n\t\t\t}\n\t\t\tbody.applyTorqueImpulse(_ammoVec1);\n\t\t}\n\t}\n\tisStatic() {\n\t\treturn this._type === BODYTYPE_STATIC;\n\t}\n\tisStaticOrKinematic() {\n\t\treturn this._type === BODYTYPE_STATIC || this._type === BODYTYPE_KINEMATIC;\n\t}\n\tisKinematic() {\n\t\treturn this._type === BODYTYPE_KINEMATIC;\n\t}\n\t_getEntityTransform(transform) {\n\t\tconst entity = this.entity;\n\t\tconst component = entity.collision;\n\t\tif (component) {\n\t\t\tconst bodyPos = component.getShapePosition();\n\t\t\tconst bodyRot = component.getShapeRotation();\n\t\t\t_ammoVec1.setValue(bodyPos.x, bodyPos.y, bodyPos.z);\n\t\t\t_ammoQuat.setValue(bodyRot.x, bodyRot.y, bodyRot.z, bodyRot.w);\n\t\t} else {\n\t\t\tconst pos = entity.getPosition();\n\t\t\tconst rot = entity.getRotation();\n\t\t\t_ammoVec1.setValue(pos.x, pos.y, pos.z);\n\t\t\t_ammoQuat.setValue(rot.x, rot.y, rot.z, rot.w);\n\t\t}\n\t\ttransform.setOrigin(_ammoVec1);\n\t\ttransform.setRotation(_ammoQuat);\n\t}\n\tsyncEntityToBody() {\n\t\tconst body = this._body;\n\t\tif (body) {\n\t\t\tthis._getEntityTransform(_ammoTransform);\n\t\t\tbody.setWorldTransform(_ammoTransform);\n\t\t\tif (this._type === BODYTYPE_KINEMATIC) {\n\t\t\t\tconst motionState = body.getMotionState();\n\t\t\t\tif (motionState) {\n\t\t\t\t\tmotionState.setWorldTransform(_ammoTransform);\n\t\t\t\t}\n\t\t\t}\n\t\t\tbody.activate();\n\t\t}\n\t}\n\t_updateDynamic() {\n\t\tconst body = this._body;\n\t\tif (body.isActive()) {\n\t\t\tconst motionState = body.getMotionState();\n\t\t\tif (motionState) {\n\t\t\t\tconst entity = this.entity;\n\t\t\t\tmotionState.getWorldTransform(_ammoTransform);\n\t\t\t\tconst p = _ammoTransform.getOrigin();\n\t\t\t\tconst q = _ammoTransform.getRotation();\n\t\t\t\tconst component = entity.collision;\n\t\t\t\tif (component && component._hasOffset) {\n\t\t\t\t\tconst lo = component.data.linearOffset;\n\t\t\t\t\tconst ao = component.data.angularOffset;\n\t\t\t\t\tconst invertedAo = _quat2.copy(ao).invert();\n\t\t\t\t\tconst entityRot = _quat1.set(q.x(), q.y(), q.z(), q.w()).mul(invertedAo);\n\t\t\t\t\tentityRot.transformVector(lo, _vec3);\n\t\t\t\t\tentity.setPosition(p.x() - _vec3.x, p.y() - _vec3.y, p.z() - _vec3.z);\n\t\t\t\t\tentity.setRotation(entityRot);\n\t\t\t\t} else {\n\t\t\t\t\tentity.setPosition(p.x(), p.y(), p.z());\n\t\t\t\t\tentity.setRotation(q.x(), q.y(), q.z(), q.w());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t_updateKinematic() {\n\t\tconst motionState = this._body.getMotionState();\n\t\tif (motionState) {\n\t\t\tthis._getEntityTransform(_ammoTransform);\n\t\t\tmotionState.setWorldTransform(_ammoTransform);\n\t\t}\n\t}\n\tteleport(x, y, z, rx, ry, rz) {\n\t\tif (x instanceof Vec3) {\n\t\t\tthis.entity.setPosition(x);\n\t\t} else {\n\t\t\tthis.entity.setPosition(x, y, z);\n\t\t}\n\t\tif (y instanceof Quat) {\n\t\t\tthis.entity.setRotation(y);\n\t\t} else if (y instanceof Vec3) {\n\t\t\tthis.entity.setEulerAngles(y);\n\t\t} else if (rx !== undefined) {\n\t\t\tthis.entity.setEulerAngles(rx, ry, rz);\n\t\t}\n\t\tthis.syncEntityToBody();\n\t}\n\tonEnable() {\n\t\tif (!this._body) {\n\t\t\tthis.createBody();\n\t\t}\n\t\tthis.enableSimulation();\n\t}\n\tonDisable() {\n\t\tthis.disableSimulation();\n\t}\n}\nRigidBodyComponent.EVENT_CONTACT = 'contact';\nRigidBodyComponent.EVENT_COLLISIONSTART = 'collisionstart';\nRigidBodyComponent.EVENT_COLLISIONEND = 'collisionend';\nRigidBodyComponent.EVENT_TRIGGERENTER = 'triggerenter';\nRigidBodyComponent.EVENT_TRIGGERLEAVE = 'triggerleave';\n\nclass RigidBodyComponentData {\n\tconstructor() {\n\t\tthis.enabled = true;\n\t}\n}\n\nlet ammoRayStart, ammoRayEnd;\nclass RaycastResult {\n\tconstructor(entity, point, normal, hitFraction) {\n\t\tthis.entity = void 0;\n\t\tthis.point = void 0;\n\t\tthis.normal = void 0;\n\t\tthis.hitFraction = void 0;\n\t\tthis.entity = entity;\n\t\tthis.point = point;\n\t\tthis.normal = normal;\n\t\tthis.hitFraction = hitFraction;\n\t}\n}\nclass SingleContactResult {\n\tconstructor(a, b, contactPoint) {\n\t\tthis.a = void 0;\n\t\tthis.b = void 0;\n\t\tthis.impulse = void 0;\n\t\tthis.localPointA = void 0;\n\t\tthis.localPointB = void 0;\n\t\tthis.pointA = void 0;\n\t\tthis.pointB = void 0;\n\t\tthis.normal = void 0;\n\t\tif (arguments.length !== 0) {\n\t\t\tthis.a = a;\n\t\t\tthis.b = b;\n\t\t\tthis.impulse = contactPoint.impulse;\n\t\t\tthis.localPointA = contactPoint.localPoint;\n\t\t\tthis.localPointB = contactPoint.localPointOther;\n\t\t\tthis.pointA = contactPoint.point;\n\t\t\tthis.pointB = contactPoint.pointOther;\n\t\t\tthis.normal = contactPoint.normal;\n\t\t} else {\n\t\t\tthis.a = null;\n\t\t\tthis.b = null;\n\t\t\tthis.impulse = 0;\n\t\t\tthis.localPointA = new Vec3();\n\t\t\tthis.localPointB = new Vec3();\n\t\t\tthis.pointA = new Vec3();\n\t\t\tthis.pointB = new Vec3();\n\t\t\tthis.normal = new Vec3();\n\t\t}\n\t}\n}\nclass ContactPoint {\n\tconstructor(localPoint = new Vec3(), localPointOther = new Vec3(), point = new Vec3(), pointOther = new Vec3(), normal = new Vec3(), impulse = 0) {\n\t\tthis.localPoint = void 0;\n\t\tthis.localPointOther = void 0;\n\t\tthis.point = void 0;\n\t\tthis.pointOther = void 0;\n\t\tthis.normal = void 0;\n\t\tthis.impulse = void 0;\n\t\tthis.localPoint = localPoint;\n\t\tthis.localPointOther = localPointOther;\n\t\tthis.point = point;\n\t\tthis.pointOther = pointOther;\n\t\tthis.normal = normal;\n\t\tthis.impulse = impulse;\n\t}\n}\nclass ContactResult {\n\tconstructor(other, contacts) {\n\t\tthis.other = void 0;\n\t\tthis.contacts = void 0;\n\t\tthis.other = other;\n\t\tthis.contacts = contacts;\n\t}\n}\nconst _schema$9 = ['enabled'];\nclass RigidBodyComponentSystem extends ComponentSystem {\n\tconstructor(app) {\n\t\tsuper(app);\n\t\tthis.maxSubSteps = 10;\n\t\tthis.fixedTimeStep = 1 / 60;\n\t\tthis.gravity = new Vec3(0, -9.81, 0);\n\t\tthis._gravityFloat32 = new Float32Array(3);\n\t\tthis._dynamic = [];\n\t\tthis._kinematic = [];\n\t\tthis._triggers = [];\n\t\tthis._compounds = [];\n\t\tthis.id = 'rigidbody';\n\t\tthis._stats = app.stats.frame;\n\t\tthis.ComponentType = RigidBodyComponent;\n\t\tthis.DataType = RigidBodyComponentData;\n\t\tthis.contactPointPool = null;\n\t\tthis.contactResultPool = null;\n\t\tthis.singleContactResultPool = null;\n\t\tthis.schema = _schema$9;\n\t\tthis.collisions = {};\n\t\tthis.frameCollisions = {};\n\t\tthis.on('beforeremove', this.onBeforeRemove, this);\n\t}\n\tonLibraryLoaded() {\n\t\tif (typeof Ammo !== 'undefined') {\n\t\t\tthis.collisionConfiguration = new Ammo.btDefaultCollisionConfiguration();\n\t\t\tthis.dispatcher = new Ammo.btCollisionDispatcher(this.collisionConfiguration);\n\t\t\tthis.overlappingPairCache = new Ammo.btDbvtBroadphase();\n\t\t\tthis.solver = new Ammo.btSequentialImpulseConstraintSolver();\n\t\t\tthis.dynamicsWorld = new Ammo.btDiscreteDynamicsWorld(this.dispatcher, this.overlappingPairCache, this.solver, this.collisionConfiguration);\n\t\t\tif (this.dynamicsWorld.setInternalTickCallback) {\n\t\t\t\tconst checkForCollisionsPointer = Ammo.addFunction(this._checkForCollisions.bind(this), 'vif');\n\t\t\t\tthis.dynamicsWorld.setInternalTickCallback(checkForCollisionsPointer);\n\t\t\t}\n\t\t\tammoRayStart = new Ammo.btVector3();\n\t\t\tammoRayEnd = new Ammo.btVector3();\n\t\t\tRigidBodyComponent.onLibraryLoaded();\n\t\t\tthis.contactPointPool = new ObjectPool(ContactPoint, 1);\n\t\t\tthis.contactResultPool = new ObjectPool(ContactResult, 1);\n\t\t\tthis.singleContactResultPool = new ObjectPool(SingleContactResult, 1);\n\t\t\tthis.app.systems.on('update', this.onUpdate, this);\n\t\t} else {\n\t\t\tthis.app.systems.off('update', this.onUpdate, this);\n\t\t}\n\t}\n\tinitializeComponentData(component, data, properties) {\n\t\tconst props = ['mass', 'linearDamping', 'angularDamping', 'linearFactor', 'angularFactor', 'friction', 'rollingFriction', 'restitution', 'type', 'group', 'mask'];\n\t\tfor (const property of props) {\n\t\t\tif (data.hasOwnProperty(property)) {\n\t\t\t\tconst value = data[property];\n\t\t\t\tif (Array.isArray(value)) {\n\t\t\t\t\tcomponent[property] = new Vec3(value[0], value[1], value[2]);\n\t\t\t\t} else {\n\t\t\t\t\tcomponent[property] = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tsuper.initializeComponentData(component, data, ['enabled']);\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst rigidbody = entity.rigidbody;\n\t\tconst data = {\n\t\t\tenabled: rigidbody.enabled,\n\t\t\tmass: rigidbody.mass,\n\t\t\tlinearDamping: rigidbody.linearDamping,\n\t\t\tangularDamping: rigidbody.angularDamping,\n\t\t\tlinearFactor: [rigidbody.linearFactor.x, rigidbody.linearFactor.y, rigidbody.linearFactor.z],\n\t\t\tangularFactor: [rigidbody.angularFactor.x, rigidbody.angularFactor.y, rigidbody.angularFactor.z],\n\t\t\tfriction: rigidbody.friction,\n\t\t\trollingFriction: rigidbody.rollingFriction,\n\t\t\trestitution: rigidbody.restitution,\n\t\t\ttype: rigidbody.type,\n\t\t\tgroup: rigidbody.group,\n\t\t\tmask: rigidbody.mask\n\t\t};\n\t\treturn this.addComponent(clone, data);\n\t}\n\tonBeforeRemove(entity, component) {\n\t\tif (component.enabled) {\n\t\t\tcomponent.enabled = false;\n\t\t}\n\t\tif (component.body) {\n\t\t\tthis.destroyBody(component.body);\n\t\t\tcomponent.body = null;\n\t\t}\n\t}\n\taddBody(body, group, mask) {\n\t\tif (group !== undefined && mask !== undefined) {\n\t\t\tthis.dynamicsWorld.addRigidBody(body, group, mask);\n\t\t} else {\n\t\t\tthis.dynamicsWorld.addRigidBody(body);\n\t\t}\n\t}\n\tremoveBody(body) {\n\t\tthis.dynamicsWorld.removeRigidBody(body);\n\t}\n\tcreateBody(mass, shape, transform) {\n\t\tconst localInertia = new Ammo.btVector3(0, 0, 0);\n\t\tif (mass !== 0) {\n\t\t\tshape.calculateLocalInertia(mass, localInertia);\n\t\t}\n\t\tconst motionState = new Ammo.btDefaultMotionState(transform);\n\t\tconst bodyInfo = new Ammo.btRigidBodyConstructionInfo(mass, motionState, shape, localInertia);\n\t\tconst body = new Ammo.btRigidBody(bodyInfo);\n\t\tAmmo.destroy(bodyInfo);\n\t\tAmmo.destroy(localInertia);\n\t\treturn body;\n\t}\n\tdestroyBody(body) {\n\t\tconst motionState = body.getMotionState();\n\t\tif (motionState) {\n\t\t\tAmmo.destroy(motionState);\n\t\t}\n\t\tAmmo.destroy(body);\n\t}\n\traycastFirst(start, end, options = {}) {\n\t\tif (options.filterTags || options.filterCallback) {\n\t\t\toptions.sort = true;\n\t\t\treturn this.raycastAll(start, end, options)[0] || null;\n\t\t}\n\t\tlet result = null;\n\t\tammoRayStart.setValue(start.x, start.y, start.z);\n\t\tammoRayEnd.setValue(end.x, end.y, end.z);\n\t\tconst rayCallback = new Ammo.ClosestRayResultCallback(ammoRayStart, ammoRayEnd);\n\t\tif (typeof options.filterCollisionGroup === 'number') {\n\t\t\trayCallback.set_m_collisionFilterGroup(options.filterCollisionGroup);\n\t\t}\n\t\tif (typeof options.filterCollisionMask === 'number') {\n\t\t\trayCallback.set_m_collisionFilterMask(options.filterCollisionMask);\n\t\t}\n\t\tthis.dynamicsWorld.rayTest(ammoRayStart, ammoRayEnd, rayCallback);\n\t\tif (rayCallback.hasHit()) {\n\t\t\tconst collisionObj = rayCallback.get_m_collisionObject();\n\t\t\tconst body = Ammo.castObject(collisionObj, Ammo.btRigidBody);\n\t\t\tif (body) {\n\t\t\t\tconst point = rayCallback.get_m_hitPointWorld();\n\t\t\t\tconst normal = rayCallback.get_m_hitNormalWorld();\n\t\t\t\tresult = new RaycastResult(body.entity, new Vec3(point.x(), point.y(), point.z()), new Vec3(normal.x(), normal.y(), normal.z()), rayCallback.get_m_closestHitFraction());\n\t\t\t}\n\t\t}\n\t\tAmmo.destroy(rayCallback);\n\t\treturn result;\n\t}\n\traycastAll(start, end, options = {}) {\n\t\tconst results = [];\n\t\tammoRayStart.setValue(start.x, start.y, start.z);\n\t\tammoRayEnd.setValue(end.x, end.y, end.z);\n\t\tconst rayCallback = new Ammo.AllHitsRayResultCallback(ammoRayStart, ammoRayEnd);\n\t\tif (typeof options.filterCollisionGroup === 'number') {\n\t\t\trayCallback.set_m_collisionFilterGroup(options.filterCollisionGroup);\n\t\t}\n\t\tif (typeof options.filterCollisionMask === 'number') {\n\t\t\trayCallback.set_m_collisionFilterMask(options.filterCollisionMask);\n\t\t}\n\t\tthis.dynamicsWorld.rayTest(ammoRayStart, ammoRayEnd, rayCallback);\n\t\tif (rayCallback.hasHit()) {\n\t\t\tconst collisionObjs = rayCallback.get_m_collisionObjects();\n\t\t\tconst points = rayCallback.get_m_hitPointWorld();\n\t\t\tconst normals = rayCallback.get_m_hitNormalWorld();\n\t\t\tconst hitFractions = rayCallback.get_m_hitFractions();\n\t\t\tconst numHits = collisionObjs.size();\n\t\t\tfor (let i = 0; i < numHits; i++) {\n\t\t\t\tconst body = Ammo.castObject(collisionObjs.at(i), Ammo.btRigidBody);\n\t\t\t\tif (body && body.entity) {\n\t\t\t\t\tif (options.filterTags && !body.entity.tags.has(...options.filterTags) || options.filterCallback && !options.filterCallback(body.entity)) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tconst point = points.at(i);\n\t\t\t\t\tconst normal = normals.at(i);\n\t\t\t\t\tconst result = new RaycastResult(body.entity, new Vec3(point.x(), point.y(), point.z()), new Vec3(normal.x(), normal.y(), normal.z()), hitFractions.at(i));\n\t\t\t\t\tresults.push(result);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (options.sort) {\n\t\t\t\tresults.sort((a, b) => a.hitFraction - b.hitFraction);\n\t\t\t}\n\t\t}\n\t\tAmmo.destroy(rayCallback);\n\t\treturn results;\n\t}\n\t_storeCollision(entity, other) {\n\t\tlet isNewCollision = false;\n\t\tconst guid = entity.getGuid();\n\t\tthis.collisions[guid] = this.collisions[guid] || {\n\t\t\tothers: [],\n\t\t\tentity: entity\n\t\t};\n\t\tif (this.collisions[guid].others.indexOf(other) < 0) {\n\t\t\tthis.collisions[guid].others.push(other);\n\t\t\tisNewCollision = true;\n\t\t}\n\t\tthis.frameCollisions[guid] = this.frameCollisions[guid] || {\n\t\t\tothers: [],\n\t\t\tentity: entity\n\t\t};\n\t\tthis.frameCollisions[guid].others.push(other);\n\t\treturn isNewCollision;\n\t}\n\t_createContactPointFromAmmo(contactPoint) {\n\t\tconst localPointA = contactPoint.get_m_localPointA();\n\t\tconst localPointB = contactPoint.get_m_localPointB();\n\t\tconst positionWorldOnA = contactPoint.getPositionWorldOnA();\n\t\tconst positionWorldOnB = contactPoint.getPositionWorldOnB();\n\t\tconst normalWorldOnB = contactPoint.get_m_normalWorldOnB();\n\t\tconst contact = this.contactPointPool.allocate();\n\t\tcontact.localPoint.set(localPointA.x(), localPointA.y(), localPointA.z());\n\t\tcontact.localPointOther.set(localPointB.x(), localPointB.y(), localPointB.z());\n\t\tcontact.point.set(positionWorldOnA.x(), positionWorldOnA.y(), positionWorldOnA.z());\n\t\tcontact.pointOther.set(positionWorldOnB.x(), positionWorldOnB.y(), positionWorldOnB.z());\n\t\tcontact.normal.set(normalWorldOnB.x(), normalWorldOnB.y(), normalWorldOnB.z());\n\t\tcontact.impulse = contactPoint.getAppliedImpulse();\n\t\treturn contact;\n\t}\n\t_createReverseContactPointFromAmmo(contactPoint) {\n\t\tconst localPointA = contactPoint.get_m_localPointA();\n\t\tconst localPointB = contactPoint.get_m_localPointB();\n\t\tconst positionWorldOnA = contactPoint.getPositionWorldOnA();\n\t\tconst positionWorldOnB = contactPoint.getPositionWorldOnB();\n\t\tconst normalWorldOnB = contactPoint.get_m_normalWorldOnB();\n\t\tconst contact = this.contactPointPool.allocate();\n\t\tcontact.localPointOther.set(localPointA.x(), localPointA.y(), localPointA.z());\n\t\tcontact.localPoint.set(localPointB.x(), localPointB.y(), localPointB.z());\n\t\tcontact.pointOther.set(positionWorldOnA.x(), positionWorldOnA.y(), positionWorldOnA.z());\n\t\tcontact.point.set(positionWorldOnB.x(), positionWorldOnB.y(), positionWorldOnB.z());\n\t\tcontact.normal.set(normalWorldOnB.x(), normalWorldOnB.y(), normalWorldOnB.z());\n\t\tcontact.impulse = contactPoint.getAppliedImpulse();\n\t\treturn contact;\n\t}\n\t_createSingleContactResult(a, b, contactPoint) {\n\t\tconst result = this.singleContactResultPool.allocate();\n\t\tresult.a = a;\n\t\tresult.b = b;\n\t\tresult.localPointA = contactPoint.localPoint;\n\t\tresult.localPointB = contactPoint.localPointOther;\n\t\tresult.pointA = contactPoint.point;\n\t\tresult.pointB = contactPoint.pointOther;\n\t\tresult.normal = contactPoint.normal;\n\t\tresult.impulse = contactPoint.impulse;\n\t\treturn result;\n\t}\n\t_createContactResult(other, contacts) {\n\t\tconst result = this.contactResultPool.allocate();\n\t\tresult.other = other;\n\t\tresult.contacts = contacts;\n\t\treturn result;\n\t}\n\t_cleanOldCollisions() {\n\t\tfor (const guid in this.collisions) {\n\t\t\tif (this.collisions.hasOwnProperty(guid)) {\n\t\t\t\tconst frameCollision = this.frameCollisions[guid];\n\t\t\t\tconst collision = this.collisions[guid];\n\t\t\t\tconst entity = collision.entity;\n\t\t\t\tconst entityCollision = entity.collision;\n\t\t\t\tconst entityRigidbody = entity.rigidbody;\n\t\t\t\tconst others = collision.others;\n\t\t\t\tconst length = others.length;\n\t\t\t\tlet i = length;\n\t\t\t\twhile (i--) {\n\t\t\t\t\tconst other = others[i];\n\t\t\t\t\tif (!frameCollision || frameCollision.others.indexOf(other) < 0) {\n\t\t\t\t\t\tothers.splice(i, 1);\n\t\t\t\t\t\tif (entity.trigger) {\n\t\t\t\t\t\t\tif (entityCollision) {\n\t\t\t\t\t\t\t\tentityCollision.fire('triggerleave', other);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (other.rigidbody) {\n\t\t\t\t\t\t\t\tother.rigidbody.fire('triggerleave', entity);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (!other.trigger) {\n\t\t\t\t\t\t\tif (entityRigidbody) {\n\t\t\t\t\t\t\t\tentityRigidbody.fire('collisionend', other);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (entityCollision) {\n\t\t\t\t\t\t\t\tentityCollision.fire('collisionend', other);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (others.length === 0) {\n\t\t\t\t\tdelete this.collisions[guid];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t_hasContactEvent(entity) {\n\t\tconst c = entity.collision;\n\t\tif (c && (c.hasEvent('collisionstart') || c.hasEvent('collisionend') || c.hasEvent('contact'))) {\n\t\t\treturn true;\n\t\t}\n\t\tconst r = entity.rigidbody;\n\t\treturn r && (r.hasEvent('collisionstart') || r.hasEvent('collisionend') || r.hasEvent('contact'));\n\t}\n\t_checkForCollisions(world, timeStep) {\n\t\tconst dynamicsWorld = Ammo.wrapPointer(world, Ammo.btDynamicsWorld);\n\t\tconst dispatcher = dynamicsWorld.getDispatcher();\n\t\tconst numManifolds = dispatcher.getNumManifolds();\n\t\tthis.frameCollisions = {};\n\t\tfor (let i = 0; i < numManifolds; i++) {\n\t\t\tconst manifold = dispatcher.getManifoldByIndexInternal(i);\n\t\t\tconst body0 = manifold.getBody0();\n\t\t\tconst body1 = manifold.getBody1();\n\t\t\tconst wb0 = Ammo.castObject(body0, Ammo.btRigidBody);\n\t\t\tconst wb1 = Ammo.castObject(body1, Ammo.btRigidBody);\n\t\t\tconst e0 = wb0.entity;\n\t\t\tconst e1 = wb1.entity;\n\t\t\tif (!e0 || !e1) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst flags0 = wb0.getCollisionFlags();\n\t\t\tconst flags1 = wb1.getCollisionFlags();\n\t\t\tconst numContacts = manifold.getNumContacts();\n\t\t\tconst forwardContacts = [];\n\t\t\tconst reverseContacts = [];\n\t\t\tlet newCollision;\n\t\t\tif (numContacts > 0) {\n\t\t\t\tif (flags0 & BODYFLAG_NORESPONSE_OBJECT || flags1 & BODYFLAG_NORESPONSE_OBJECT) {\n\t\t\t\t\tconst e0Events = e0.collision && (e0.collision.hasEvent('triggerenter') || e0.collision.hasEvent('triggerleave'));\n\t\t\t\t\tconst e1Events = e1.collision && (e1.collision.hasEvent('triggerenter') || e1.collision.hasEvent('triggerleave'));\n\t\t\t\t\tconst e0BodyEvents = e0.rigidbody && (e0.rigidbody.hasEvent('triggerenter') || e0.rigidbody.hasEvent('triggerleave'));\n\t\t\t\t\tconst e1BodyEvents = e1.rigidbody && (e1.rigidbody.hasEvent('triggerenter') || e1.rigidbody.hasEvent('triggerleave'));\n\t\t\t\t\tif (e0Events) {\n\t\t\t\t\t\tnewCollision = this._storeCollision(e0, e1);\n\t\t\t\t\t\tif (newCollision && !(flags1 & BODYFLAG_NORESPONSE_OBJECT)) {\n\t\t\t\t\t\t\te0.collision.fire('triggerenter', e1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (e1Events) {\n\t\t\t\t\t\tnewCollision = this._storeCollision(e1, e0);\n\t\t\t\t\t\tif (newCollision && !(flags0 & BODYFLAG_NORESPONSE_OBJECT)) {\n\t\t\t\t\t\t\te1.collision.fire('triggerenter', e0);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (e0BodyEvents) {\n\t\t\t\t\t\tif (!newCollision) {\n\t\t\t\t\t\t\tnewCollision = this._storeCollision(e1, e0);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (newCollision) {\n\t\t\t\t\t\t\te0.rigidbody.fire('triggerenter', e1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (e1BodyEvents) {\n\t\t\t\t\t\tif (!newCollision) {\n\t\t\t\t\t\t\tnewCollision = this._storeCollision(e0, e1);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (newCollision) {\n\t\t\t\t\t\t\te1.rigidbody.fire('triggerenter', e0);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst e0Events = this._hasContactEvent(e0);\n\t\t\t\t\tconst e1Events = this._hasContactEvent(e1);\n\t\t\t\t\tconst globalEvents = this.hasEvent('contact');\n\t\t\t\t\tif (globalEvents || e0Events || e1Events) {\n\t\t\t\t\t\tfor (let j = 0; j < numContacts; j++) {\n\t\t\t\t\t\t\tconst btContactPoint = manifold.getContactPoint(j);\n\t\t\t\t\t\t\tconst contactPoint = this._createContactPointFromAmmo(btContactPoint);\n\t\t\t\t\t\t\tif (e0Events || e1Events) {\n\t\t\t\t\t\t\t\tforwardContacts.push(contactPoint);\n\t\t\t\t\t\t\t\tconst reverseContactPoint = this._createReverseContactPointFromAmmo(btContactPoint);\n\t\t\t\t\t\t\t\treverseContacts.push(reverseContactPoint);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (globalEvents) {\n\t\t\t\t\t\t\t\tconst result = this._createSingleContactResult(e0, e1, contactPoint);\n\t\t\t\t\t\t\t\tthis.fire('contact', result);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (e0Events) {\n\t\t\t\t\t\t\tconst forwardResult = this._createContactResult(e1, forwardContacts);\n\t\t\t\t\t\t\tnewCollision = this._storeCollision(e0, e1);\n\t\t\t\t\t\t\tif (e0.collision) {\n\t\t\t\t\t\t\t\te0.collision.fire('contact', forwardResult);\n\t\t\t\t\t\t\t\tif (newCollision) {\n\t\t\t\t\t\t\t\t\te0.collision.fire('collisionstart', forwardResult);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (e0.rigidbody) {\n\t\t\t\t\t\t\t\te0.rigidbody.fire('contact', forwardResult);\n\t\t\t\t\t\t\t\tif (newCollision) {\n\t\t\t\t\t\t\t\t\te0.rigidbody.fire('collisionstart', forwardResult);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (e1Events) {\n\t\t\t\t\t\t\tconst reverseResult = this._createContactResult(e0, reverseContacts);\n\t\t\t\t\t\t\tnewCollision = this._storeCollision(e1, e0);\n\t\t\t\t\t\t\tif (e1.collision) {\n\t\t\t\t\t\t\t\te1.collision.fire('contact', reverseResult);\n\t\t\t\t\t\t\t\tif (newCollision) {\n\t\t\t\t\t\t\t\t\te1.collision.fire('collisionstart', reverseResult);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (e1.rigidbody) {\n\t\t\t\t\t\t\t\te1.rigidbody.fire('contact', reverseResult);\n\t\t\t\t\t\t\t\tif (newCollision) {\n\t\t\t\t\t\t\t\t\te1.rigidbody.fire('collisionstart', reverseResult);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._cleanOldCollisions();\n\t\tthis.contactPointPool.freeAll();\n\t\tthis.contactResultPool.freeAll();\n\t\tthis.singleContactResultPool.freeAll();\n\t}\n\tonUpdate(dt) {\n\t\tlet i, len;\n\t\tthis._gravityFloat32[0] = this.gravity.x;\n\t\tthis._gravityFloat32[1] = this.gravity.y;\n\t\tthis._gravityFloat32[2] = this.gravity.z;\n\t\tconst gravity = this.dynamicsWorld.getGravity();\n\t\tif (gravity.x() !== this._gravityFloat32[0] || gravity.y() !== this._gravityFloat32[1] || gravity.z() !== this._gravityFloat32[2]) {\n\t\t\tgravity.setValue(this.gravity.x, this.gravity.y, this.gravity.z);\n\t\t\tthis.dynamicsWorld.setGravity(gravity);\n\t\t}\n\t\tconst triggers = this._triggers;\n\t\tfor (i = 0, len = triggers.length; i < len; i++) {\n\t\t\ttriggers[i].updateTransform();\n\t\t}\n\t\tconst compounds = this._compounds;\n\t\tfor (i = 0, len = compounds.length; i < len; i++) {\n\t\t\tcompounds[i]._updateCompound();\n\t\t}\n\t\tconst kinematic = this._kinematic;\n\t\tfor (i = 0, len = kinematic.length; i < len; i++) {\n\t\t\tkinematic[i]._updateKinematic();\n\t\t}\n\t\tthis.dynamicsWorld.stepSimulation(dt, this.maxSubSteps, this.fixedTimeStep);\n\t\tconst dynamic = this._dynamic;\n\t\tfor (i = 0, len = dynamic.length; i < len; i++) {\n\t\t\tdynamic[i]._updateDynamic();\n\t\t}\n\t\tif (!this.dynamicsWorld.setInternalTickCallback) {\n\t\t\tthis._checkForCollisions(Ammo.getPointer(this.dynamicsWorld), dt);\n\t\t}\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.app.systems.off('update', this.onUpdate, this);\n\t\tif (typeof Ammo !== 'undefined') {\n\t\t\tAmmo.destroy(this.dynamicsWorld);\n\t\t\tAmmo.destroy(this.solver);\n\t\t\tAmmo.destroy(this.overlappingPairCache);\n\t\t\tAmmo.destroy(this.dispatcher);\n\t\t\tAmmo.destroy(this.collisionConfiguration);\n\t\t\tAmmo.destroy(ammoRayStart);\n\t\t\tAmmo.destroy(ammoRayEnd);\n\t\t\tthis.dynamicsWorld = null;\n\t\t\tthis.solver = null;\n\t\t\tthis.overlappingPairCache = null;\n\t\t\tthis.dispatcher = null;\n\t\t\tthis.collisionConfiguration = null;\n\t\t\tammoRayStart = null;\n\t\t\tammoRayEnd = null;\n\t\t\tRigidBodyComponent.onAppDestroy();\n\t\t}\n\t}\n}\nRigidBodyComponentSystem.EVENT_CONTACT = 'contact';\nComponent._buildAccessors(RigidBodyComponent.prototype, _schema$9);\n\nconst SCALEMODE_NONE = 'none';\nconst SCALEMODE_BLEND = 'blend';\n\nconst _transform = new Mat4();\nclass ScreenComponent extends Component {\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis._resolution = new Vec2(640, 320);\n\t\tthis._referenceResolution = new Vec2(640, 320);\n\t\tthis._scaleMode = SCALEMODE_NONE;\n\t\tthis.scale = 1;\n\t\tthis._scaleBlend = 0.5;\n\t\tthis._priority = 0;\n\t\tthis._screenSpace = false;\n\t\tthis.cull = this._screenSpace;\n\t\tthis._screenMatrix = new Mat4();\n\t\tthis._elements = new Set();\n\t\tsystem.app.graphicsDevice.on('resizecanvas', this._onResize, this);\n\t}\n\tsyncDrawOrder() {\n\t\tthis.system.queueDrawOrderSync(this.entity.getGuid(), this._processDrawOrderSync, this);\n\t}\n\t_recurseDrawOrderSync(e, i) {\n\t\tif (!(e instanceof Entity)) {\n\t\t\treturn i;\n\t\t}\n\t\tif (e.element) {\n\t\t\tconst prevDrawOrder = e.element.drawOrder;\n\t\t\te.element.drawOrder = i++;\n\t\t\tif (e.element._batchGroupId >= 0 && prevDrawOrder !== e.element.drawOrder) {\n\t\t\t\tvar _this$system$app$batc;\n\t\t\t\t(_this$system$app$batc = this.system.app.batcher) == null || _this$system$app$batc.markGroupDirty(e.element._batchGroupId);\n\t\t\t}\n\t\t}\n\t\tif (e.particlesystem) {\n\t\t\te.particlesystem.drawOrder = i++;\n\t\t}\n\t\tconst children = e.children;\n\t\tfor (let j = 0; j < children.length; j++) {\n\t\t\ti = this._recurseDrawOrderSync(children[j], i);\n\t\t}\n\t\treturn i;\n\t}\n\t_processDrawOrderSync() {\n\t\tconst i = 1;\n\t\tthis._recurseDrawOrderSync(this.entity, i);\n\t\tthis.fire('syncdraworder');\n\t}\n\t_calcProjectionMatrix() {\n\t\tconst w = this._resolution.x / this.scale;\n\t\tconst h = this._resolution.y / this.scale;\n\t\tconst left = 0;\n\t\tconst right = w;\n\t\tconst bottom = -h;\n\t\tconst top = 0;\n\t\tconst near = 1;\n\t\tconst far = -1;\n\t\tthis._screenMatrix.setOrtho(left, right, bottom, top, near, far);\n\t\tif (!this._screenSpace) {\n\t\t\t_transform.setScale(0.5 * w, 0.5 * h, 1);\n\t\t\tthis._screenMatrix.mul2(_transform, this._screenMatrix);\n\t\t}\n\t}\n\t_updateScale() {\n\t\tthis.scale = this._calcScale(this._resolution, this.referenceResolution);\n\t}\n\t_calcScale(resolution, referenceResolution) {\n\t\tconst lx = Math.log2((resolution.x || 1) / referenceResolution.x);\n\t\tconst ly = Math.log2((resolution.y || 1) / referenceResolution.y);\n\t\treturn Math.pow(2, lx * (1 - this._scaleBlend) + ly * this._scaleBlend);\n\t}\n\t_onResize(width, height) {\n\t\tif (this._screenSpace) {\n\t\t\tthis._resolution.set(width, height);\n\t\t\tthis.resolution = this._resolution;\n\t\t}\n\t}\n\t_bindElement(element) {\n\t\tthis._elements.add(element);\n\t}\n\t_unbindElement(element) {\n\t\tthis._elements.delete(element);\n\t}\n\tonRemove() {\n\t\tthis.system.app.graphicsDevice.off('resizecanvas', this._onResize, this);\n\t\tthis.fire('remove');\n\t\tthis._elements.forEach(element => element._onScreenRemove());\n\t\tthis._elements.clear();\n\t\tthis.off();\n\t}\n\tset resolution(value) {\n\t\tif (!this._screenSpace) {\n\t\t\tthis._resolution.set(value.x, value.y);\n\t\t} else {\n\t\t\tthis._resolution.set(this.system.app.graphicsDevice.width, this.system.app.graphicsDevice.height);\n\t\t}\n\t\tthis._updateScale();\n\t\tthis._calcProjectionMatrix();\n\t\tif (!this.entity._dirtyLocal) {\n\t\t\tthis.entity._dirtifyLocal();\n\t\t}\n\t\tthis.fire('set:resolution', this._resolution);\n\t\tthis._elements.forEach(element => element._onScreenResize(this._resolution));\n\t}\n\tget resolution() {\n\t\treturn this._resolution;\n\t}\n\tset referenceResolution(value) {\n\t\tthis._referenceResolution.set(value.x, value.y);\n\t\tthis._updateScale();\n\t\tthis._calcProjectionMatrix();\n\t\tif (!this.entity._dirtyLocal) {\n\t\t\tthis.entity._dirtifyLocal();\n\t\t}\n\t\tthis.fire('set:referenceresolution', this._resolution);\n\t\tthis._elements.forEach(element => element._onScreenResize(this._resolution));\n\t}\n\tget referenceResolution() {\n\t\tif (this._scaleMode === SCALEMODE_NONE) {\n\t\t\treturn this._resolution;\n\t\t}\n\t\treturn this._referenceResolution;\n\t}\n\tset screenSpace(value) {\n\t\tthis._screenSpace = value;\n\t\tif (this._screenSpace) {\n\t\t\tthis._resolution.set(this.system.app.graphicsDevice.width, this.system.app.graphicsDevice.height);\n\t\t}\n\t\tthis.resolution = this._resolution;\n\t\tif (!this.entity._dirtyLocal) {\n\t\t\tthis.entity._dirtifyLocal();\n\t\t}\n\t\tthis.fire('set:screenspace', this._screenSpace);\n\t\tthis._elements.forEach(element => element._onScreenSpaceChange());\n\t}\n\tget screenSpace() {\n\t\treturn this._screenSpace;\n\t}\n\tset scaleMode(value) {\n\t\tif (value !== SCALEMODE_NONE && value !== SCALEMODE_BLEND) {\n\t\t\tvalue = SCALEMODE_NONE;\n\t\t}\n\t\tif (!this._screenSpace && value !== SCALEMODE_NONE) {\n\t\t\tvalue = SCALEMODE_NONE;\n\t\t}\n\t\tthis._scaleMode = value;\n\t\tthis.resolution = this._resolution;\n\t\tthis.fire('set:scalemode', this._scaleMode);\n\t}\n\tget scaleMode() {\n\t\treturn this._scaleMode;\n\t}\n\tset scaleBlend(value) {\n\t\tthis._scaleBlend = value;\n\t\tthis._updateScale();\n\t\tthis._calcProjectionMatrix();\n\t\tif (!this.entity._dirtyLocal) {\n\t\t\tthis.entity._dirtifyLocal();\n\t\t}\n\t\tthis.fire('set:scaleblend', this._scaleBlend);\n\t\tthis._elements.forEach(element => element._onScreenResize(this._resolution));\n\t}\n\tget scaleBlend() {\n\t\treturn this._scaleBlend;\n\t}\n\tset priority(value) {\n\t\tif (value > 0xFF) {\n\t\t\tvalue = 0xFF;\n\t\t}\n\t\tif (this._priority === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis._priority = value;\n\t\tthis.syncDrawOrder();\n\t}\n\tget priority() {\n\t\treturn this._priority;\n\t}\n}\n\nclass ScreenComponentData {\n\tconstructor() {\n\t\tthis.enabled = true;\n\t}\n}\n\nconst _schema$8 = ['enabled'];\nclass ScreenComponentSystem extends ComponentSystem {\n\tconstructor(app) {\n\t\tsuper(app);\n\t\tthis.id = 'screen';\n\t\tthis.ComponentType = ScreenComponent;\n\t\tthis.DataType = ScreenComponentData;\n\t\tthis.schema = _schema$8;\n\t\tthis.windowResolution = new Vec2();\n\t\tthis._drawOrderSyncQueue = new IndexedList();\n\t\tthis.app.graphicsDevice.on('resizecanvas', this._onResize, this);\n\t\tthis.app.systems.on('update', this._onUpdate, this);\n\t\tthis.on('beforeremove', this.onRemoveComponent, this);\n\t}\n\tinitializeComponentData(component, data, properties) {\n\t\tif (data.priority !== undefined) component.priority = data.priority;\n\t\tif (data.screenSpace !== undefined) component.screenSpace = data.screenSpace;\n\t\tcomponent.cull = component.screenSpace;\n\t\tif (data.scaleMode !== undefined) component.scaleMode = data.scaleMode;\n\t\tif (data.scaleBlend !== undefined) component.scaleBlend = data.scaleBlend;\n\t\tif (data.resolution !== undefined) {\n\t\t\tif (data.resolution instanceof Vec2) {\n\t\t\t\tcomponent._resolution.copy(data.resolution);\n\t\t\t} else {\n\t\t\t\tcomponent._resolution.set(data.resolution[0], data.resolution[1]);\n\t\t\t}\n\t\t\tcomponent.resolution = component._resolution;\n\t\t}\n\t\tif (data.referenceResolution !== undefined) {\n\t\t\tif (data.referenceResolution instanceof Vec2) {\n\t\t\t\tcomponent._referenceResolution.copy(data.referenceResolution);\n\t\t\t} else {\n\t\t\t\tcomponent._referenceResolution.set(data.referenceResolution[0], data.referenceResolution[1]);\n\t\t\t}\n\t\t\tcomponent.referenceResolution = component._referenceResolution;\n\t\t}\n\t\tcomponent.syncDrawOrder();\n\t\tsuper.initializeComponentData(component, data, properties);\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.app.graphicsDevice.off('resizecanvas', this._onResize, this);\n\t\tthis.app.systems.off('update', this._onUpdate, this);\n\t}\n\t_onUpdate(dt) {\n\t\tconst components = this.store;\n\t\tfor (const id in components) {\n\t\t\tif (components[id].entity.screen.update) components[id].entity.screen.update(dt);\n\t\t}\n\t}\n\t_onResize(width, height) {\n\t\tthis.windowResolution.x = width;\n\t\tthis.windowResolution.y = height;\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst screen = entity.screen;\n\t\treturn this.addComponent(clone, {\n\t\t\tenabled: screen.enabled,\n\t\t\tscreenSpace: screen.screenSpace,\n\t\t\tscaleMode: screen.scaleMode,\n\t\t\tresolution: screen.resolution.clone(),\n\t\t\treferenceResolution: screen.referenceResolution.clone()\n\t\t});\n\t}\n\tonRemoveComponent(entity, component) {\n\t\tcomponent.onRemove();\n\t}\n\tprocessDrawOrderSyncQueue() {\n\t\tconst list = this._drawOrderSyncQueue.list();\n\t\tfor (let i = 0; i < list.length; i++) {\n\t\t\tconst item = list[i];\n\t\t\titem.callback.call(item.scope);\n\t\t}\n\t\tthis._drawOrderSyncQueue.clear();\n\t}\n\tqueueDrawOrderSync(id, fn, scope) {\n\t\tif (!this._drawOrderSyncQueue.list().length) {\n\t\t\tthis.app.once('prerender', this.processDrawOrderSyncQueue, this);\n\t\t}\n\t\tif (!this._drawOrderSyncQueue.has(id)) {\n\t\t\tthis._drawOrderSyncQueue.push(id, {\n\t\t\t\tcallback: fn,\n\t\t\t\tscope: scope\n\t\t\t});\n\t\t}\n\t}\n}\nComponent._buildAccessors(ScreenComponent.prototype, _schema$8);\n\nclass ScriptLegacyComponent extends Component {\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis.on('set_scripts', this.onSetScripts, this);\n\t}\n\tsend(name, functionName) {\n\t\tconst args = Array.prototype.slice.call(arguments, 2);\n\t\tconst instances = this.entity.script.instances;\n\t\tlet fn;\n\t\tif (instances && instances[name]) {\n\t\t\tfn = instances[name].instance[functionName];\n\t\t\tif (fn) {\n\t\t\t\treturn fn.apply(instances[name].instance, args);\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}\n\tonEnable() {\n\t\tif (this.data.areScriptsLoaded && !this.system.preloading) {\n\t\t\tif (!this.data.initialized) {\n\t\t\t\tthis.system._initializeScriptComponent(this);\n\t\t\t} else {\n\t\t\t\tthis.system._enableScriptComponent(this);\n\t\t\t}\n\t\t\tif (!this.data.postInitialized) {\n\t\t\t\tthis.system._postInitializeScriptComponent(this);\n\t\t\t}\n\t\t}\n\t}\n\tonDisable() {\n\t\tthis.system._disableScriptComponent(this);\n\t}\n\tonSetScripts(name, oldValue, newValue) {\n\t\tif (!this.system._inTools || this.runInTools) {\n\t\t\tif (this._updateScriptAttributes(oldValue, newValue)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this.enabled) {\n\t\t\t\tthis.system._disableScriptComponent(this);\n\t\t\t}\n\t\t\tthis.system._destroyScriptComponent(this);\n\t\t\tthis.data.areScriptsLoaded = false;\n\t\t\tconst scripts = newValue;\n\t\t\tconst urls = scripts.map(s => {\n\t\t\t\treturn s.url;\n\t\t\t});\n\t\t\tif (this._loadFromCache(urls)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._loadScripts(urls);\n\t\t}\n\t}\n\t_updateScriptAttributes(oldValue, newValue) {\n\t\tlet onlyUpdateAttributes = true;\n\t\tif (oldValue.length !== newValue.length) {\n\t\t\tonlyUpdateAttributes = false;\n\t\t} else {\n\t\t\tfor (let i = 0, len = newValue.length; i < len; i++) {\n\t\t\t\tif (oldValue[i].url !== newValue[i].url) {\n\t\t\t\t\tonlyUpdateAttributes = false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (onlyUpdateAttributes) {\n\t\t\tfor (const key in this.instances) {\n\t\t\t\tif (this.instances.hasOwnProperty(key)) {\n\t\t\t\t\tthis.system._updateAccessors(this.entity, this.instances[key]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn onlyUpdateAttributes;\n\t}\n\t_loadFromCache(urls) {\n\t\tconst cached = [];\n\t\tconst prefix = this.system.app._scriptPrefix || '';\n\t\tconst regex = /^https?:\\/\\//i;\n\t\tfor (let i = 0, len = urls.length; i < len; i++) {\n\t\t\tlet url = urls[i];\n\t\t\tif (!regex.test(url)) {\n\t\t\t\turl = path.join(prefix, url);\n\t\t\t}\n\t\t\tconst type = this.system.app.loader.getFromCache(url, 'script');\n\t\t\tif (!type) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tcached.push(type);\n\t\t}\n\t\tfor (let i = 0, len = cached.length; i < len; i++) {\n\t\t\tconst ScriptType = cached[i];\n\t\t\tif (ScriptType === true) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (ScriptType && this.entity.script) {\n\t\t\t\tif (!this.entity.script.instances[ScriptType._pcScriptName]) {\n\t\t\t\t\tconst instance = new ScriptType(this.entity);\n\t\t\t\t\tthis.system._preRegisterInstance(this.entity, urls[i], ScriptType._pcScriptName, instance);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this.data) {\n\t\t\tthis.data.areScriptsLoaded = true;\n\t\t}\n\t\tif (!this.system.preloading) {\n\t\t\tthis.system.onInitialize(this.entity);\n\t\t\tthis.system.onPostInitialize(this.entity);\n\t\t}\n\t\treturn true;\n\t}\n\t_loadScripts(urls) {\n\t\tlet count = urls.length;\n\t\tconst prefix = this.system.app._scriptPrefix || '';\n\t\turls.forEach(url => {\n\t\t\tlet _url = null;\n\t\t\tlet _unprefixed = null;\n\t\t\tif (url.toLowerCase().startsWith('http://') || url.toLowerCase().startsWith('https://')) {\n\t\t\t\t_unprefixed = url;\n\t\t\t\t_url = url;\n\t\t\t} else {\n\t\t\t\t_unprefixed = url;\n\t\t\t\t_url = path.join(prefix, url);\n\t\t\t}\n\t\t\tthis.system.app.loader.load(_url, 'script', (err, ScriptType) => {\n\t\t\t\tcount--;\n\t\t\t\tif (!err) {\n\t\t\t\t\tif (ScriptType && this.entity.script) {\n\t\t\t\t\t\tif (!this.entity.script.instances[ScriptType._pcScriptName]) {\n\t\t\t\t\t\t\tconst instance = new ScriptType(this.entity);\n\t\t\t\t\t\t\tthis.system._preRegisterInstance(this.entity, _unprefixed, ScriptType._pcScriptName, instance);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error(err);\n\t\t\t\t}\n\t\t\t\tif (count === 0) {\n\t\t\t\t\tthis.data.areScriptsLoaded = true;\n\t\t\t\t\tif (!this.system.preloading) {\n\t\t\t\t\t\tthis.system.onInitialize(this.entity);\n\t\t\t\t\t\tthis.system.onPostInitialize(this.entity);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n}\n\nclass ScriptLegacyComponentData {\n\tconstructor() {\n\t\tthis.scripts = [];\n\t\tthis.enabled = true;\n\t\tthis.instances = {};\n\t\tthis._instances = {};\n\t\tthis.runInTools = false;\n\t\tthis.attributes = {};\n\t\tthis.initialized = false;\n\t\tthis.postInitialized = false;\n\t\tthis.areScriptsLoaded = false;\n\t}\n}\n\nconst _schema$7 = ['enabled', 'scripts', 'instances', 'runInTools'];\nconst INITIALIZE = 'initialize';\nconst POST_INITIALIZE = 'postInitialize';\nconst UPDATE = 'update';\nconst POST_UPDATE = 'postUpdate';\nconst FIXED_UPDATE = 'fixedUpdate';\nconst TOOLS_UPDATE = 'toolsUpdate';\nconst ON_ENABLE = 'onEnable';\nconst ON_DISABLE = 'onDisable';\nclass ScriptLegacyComponentSystem extends ComponentSystem {\n\tconstructor(app) {\n\t\tsuper(app);\n\t\tthis.id = 'script';\n\t\tthis.ComponentType = ScriptLegacyComponent;\n\t\tthis.DataType = ScriptLegacyComponentData;\n\t\tthis.schema = _schema$7;\n\t\tthis.preloading = false;\n\t\tthis.instancesWithUpdate = [];\n\t\tthis.instancesWithFixedUpdate = [];\n\t\tthis.instancesWithPostUpdate = [];\n\t\tthis.instancesWithToolsUpdate = [];\n\t\tthis.on('beforeremove', this.onBeforeRemove, this);\n\t\tthis.app.systems.on(INITIALIZE, this.onInitialize, this);\n\t\tthis.app.systems.on(POST_INITIALIZE, this.onPostInitialize, this);\n\t\tthis.app.systems.on(UPDATE, this.onUpdate, this);\n\t\tthis.app.systems.on(FIXED_UPDATE, this.onFixedUpdate, this);\n\t\tthis.app.systems.on(POST_UPDATE, this.onPostUpdate, this);\n\t\tthis.app.systems.on(TOOLS_UPDATE, this.onToolsUpdate, this);\n\t}\n\tinitializeComponentData(component, data, properties) {\n\t\tproperties = ['runInTools', 'enabled', 'scripts'];\n\t\tif (data.scripts && data.scripts.length) {\n\t\t\tdata.scripts.forEach(script => {\n\t\t\t\tif (script.attributes && Array.isArray(script.attributes)) {\n\t\t\t\t\tconst dict = {};\n\t\t\t\t\tfor (let i = 0; i < script.attributes.length; i++) {\n\t\t\t\t\t\tdict[script.attributes[i].name] = script.attributes[i];\n\t\t\t\t\t}\n\t\t\t\t\tscript.attributes = dict;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tsuper.initializeComponentData(component, data, properties);\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst src = this.store[entity.getGuid()];\n\t\tconst data = {\n\t\t\trunInTools: src.data.runInTools,\n\t\t\tscripts: [],\n\t\t\tenabled: src.data.enabled\n\t\t};\n\t\tconst scripts = src.data.scripts;\n\t\tfor (let i = 0, len = scripts.length; i < len; i++) {\n\t\t\tconst attributes = scripts[i].attributes;\n\t\t\tif (attributes) {\n\t\t\t\tdelete scripts[i].attributes;\n\t\t\t}\n\t\t\tdata.scripts.push(extend({}, scripts[i]));\n\t\t\tif (attributes) {\n\t\t\t\tdata.scripts[i].attributes = this._cloneAttributes(attributes);\n\t\t\t\tscripts[i].attributes = attributes;\n\t\t\t}\n\t\t}\n\t\treturn this.addComponent(clone, data);\n\t}\n\tonBeforeRemove(entity, component) {\n\t\tif (component.enabled) {\n\t\t\tthis._disableScriptComponent(component);\n\t\t}\n\t\tthis._destroyScriptComponent(component);\n\t}\n\tonInitialize(root) {\n\t\tthis._registerInstances(root);\n\t\tif (root.enabled) {\n\t\t\tif (root.script && root.script.enabled) {\n\t\t\t\tthis._initializeScriptComponent(root.script);\n\t\t\t}\n\t\t\tconst children = root._children;\n\t\t\tfor (let i = 0, len = children.length; i < len; i++) {\n\t\t\t\tif (children[i] instanceof Entity) {\n\t\t\t\t\tthis.onInitialize(children[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tonPostInitialize(root) {\n\t\tif (root.enabled) {\n\t\t\tif (root.script && root.script.enabled) {\n\t\t\t\tthis._postInitializeScriptComponent(root.script);\n\t\t\t}\n\t\t\tconst children = root._children;\n\t\t\tfor (let i = 0, len = children.length; i < len; i++) {\n\t\t\t\tif (children[i] instanceof Entity) {\n\t\t\t\t\tthis.onPostInitialize(children[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t_callInstancesMethod(script, method) {\n\t\tconst instances = script.data.instances;\n\t\tfor (const name in instances) {\n\t\t\tif (instances.hasOwnProperty(name)) {\n\t\t\t\tconst instance = instances[name].instance;\n\t\t\t\tif (instance[method]) {\n\t\t\t\t\tinstance[method]();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t_initializeScriptComponent(script) {\n\t\tthis._callInstancesMethod(script, INITIALIZE);\n\t\tscript.data.initialized = true;\n\t\tif (script.enabled && script.entity.enabled) {\n\t\t\tthis._enableScriptComponent(script);\n\t\t}\n\t}\n\t_enableScriptComponent(script) {\n\t\tthis._callInstancesMethod(script, ON_ENABLE);\n\t}\n\t_disableScriptComponent(script) {\n\t\tthis._callInstancesMethod(script, ON_DISABLE);\n\t}\n\t_destroyScriptComponent(script) {\n\t\tconst instances = script.data.instances;\n\t\tfor (const name in instances) {\n\t\t\tif (instances.hasOwnProperty(name)) {\n\t\t\t\tconst instance = instances[name].instance;\n\t\t\t\tif (instance.destroy) {\n\t\t\t\t\tinstance.destroy();\n\t\t\t\t}\n\t\t\t\tif (instance.update) {\n\t\t\t\t\tconst index = this.instancesWithUpdate.indexOf(instance);\n\t\t\t\t\tif (index >= 0) {\n\t\t\t\t\t\tthis.instancesWithUpdate.splice(index, 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (instance.fixedUpdate) {\n\t\t\t\t\tconst index = this.instancesWithFixedUpdate.indexOf(instance);\n\t\t\t\t\tif (index >= 0) {\n\t\t\t\t\t\tthis.instancesWithFixedUpdate.splice(index, 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (instance.postUpdate) {\n\t\t\t\t\tconst index = this.instancesWithPostUpdate.indexOf(instance);\n\t\t\t\t\tif (index >= 0) {\n\t\t\t\t\t\tthis.instancesWithPostUpdate.splice(index, 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (instance.toolsUpdate) {\n\t\t\t\t\tconst index = this.instancesWithToolsUpdate.indexOf(instance);\n\t\t\t\t\tif (index >= 0) {\n\t\t\t\t\t\tthis.instancesWithToolsUpdate.splice(index, 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (script.instances[name].instance === script[name]) {\n\t\t\t\t\tdelete script[name];\n\t\t\t\t}\n\t\t\t\tdelete script.instances[name];\n\t\t\t}\n\t\t}\n\t}\n\t_postInitializeScriptComponent(script) {\n\t\tthis._callInstancesMethod(script, POST_INITIALIZE);\n\t\tscript.data.postInitialized = true;\n\t}\n\t_updateInstances(method, updateList, dt) {\n\t\tfor (let i = 0, len = updateList.length; i < len; i++) {\n\t\t\tconst item = updateList[i];\n\t\t\tif (item && item.entity && item.entity.enabled && item.entity.script.enabled) {\n\t\t\t\titem[method](dt);\n\t\t\t}\n\t\t}\n\t}\n\tonUpdate(dt) {\n\t\tthis._updateInstances(UPDATE, this.instancesWithUpdate, dt);\n\t}\n\tonFixedUpdate(dt) {\n\t\tthis._updateInstances(FIXED_UPDATE, this.instancesWithFixedUpdate, dt);\n\t}\n\tonPostUpdate(dt) {\n\t\tthis._updateInstances(POST_UPDATE, this.instancesWithPostUpdate, dt);\n\t}\n\tonToolsUpdate(dt) {\n\t\tthis._updateInstances(TOOLS_UPDATE, this.instancesWithToolsUpdate, dt);\n\t}\n\tbroadcast(name, functionName) {\n\t\tconst args = Array.prototype.slice.call(arguments, 2);\n\t\tconst dataStore = this.store;\n\t\tfor (const id in dataStore) {\n\t\t\tif (dataStore.hasOwnProperty(id)) {\n\t\t\t\tconst data = dataStore[id].data;\n\t\t\t\tif (data.instances[name]) {\n\t\t\t\t\tconst fn = data.instances[name].instance[functionName];\n\t\t\t\t\tif (fn) {\n\t\t\t\t\t\tfn.apply(data.instances[name].instance, args);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t_preRegisterInstance(entity, url, name, instance) {\n\t\tif (entity.script) {\n\t\t\tentity.script.data._instances = entity.script.data._instances || {};\n\t\t\tif (entity.script.data._instances[name]) {\n\t\t\t\tthrow Error(`Script name collision '${name}'. Scripts from '${url}' and '${entity.script.data._instances[name].url}' {${entity.getGuid()}}`);\n\t\t\t}\n\t\t\tentity.script.data._instances[name] = {\n\t\t\t\turl: url,\n\t\t\t\tname: name,\n\t\t\t\tinstance: instance\n\t\t\t};\n\t\t}\n\t}\n\t_registerInstances(entity) {\n\t\tif (entity.script) {\n\t\t\tif (entity.script.data._instances) {\n\t\t\t\tentity.script.instances = entity.script.data._instances;\n\t\t\t\tfor (const instanceName in entity.script.instances) {\n\t\t\t\t\tconst preRegistered = entity.script.instances[instanceName];\n\t\t\t\t\tconst instance = preRegistered.instance;\n\t\t\t\t\tevents.attach(instance);\n\t\t\t\t\tif (instance.update) {\n\t\t\t\t\t\tthis.instancesWithUpdate.push(instance);\n\t\t\t\t\t}\n\t\t\t\t\tif (instance.fixedUpdate) {\n\t\t\t\t\t\tthis.instancesWithFixedUpdate.push(instance);\n\t\t\t\t\t}\n\t\t\t\t\tif (instance.postUpdate) {\n\t\t\t\t\t\tthis.instancesWithPostUpdate.push(instance);\n\t\t\t\t\t}\n\t\t\t\t\tif (instance.toolsUpdate) {\n\t\t\t\t\t\tthis.instancesWithToolsUpdate.push(instance);\n\t\t\t\t\t}\n\t\t\t\t\tif (entity.script.scripts) {\n\t\t\t\t\t\tthis._createAccessors(entity, preRegistered);\n\t\t\t\t\t}\n\t\t\t\t\tif (entity.script[instanceName]) {\n\t\t\t\t\t\tthrow Error(`Script with name '${instanceName}' is already attached to Script Component`);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tentity.script[instanceName] = instance;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tdelete entity.script.data._instances;\n\t\t\t}\n\t\t}\n\t\tconst children = entity._children;\n\t\tfor (let i = 0, len = children.length; i < len; i++) {\n\t\t\tif (children[i] instanceof Entity) {\n\t\t\t\tthis._registerInstances(children[i]);\n\t\t\t}\n\t\t}\n\t}\n\t_cloneAttributes(attributes) {\n\t\tconst result = {};\n\t\tfor (const key in attributes) {\n\t\t\tif (!attributes.hasOwnProperty(key)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (attributes[key].type !== 'entity') {\n\t\t\t\tresult[key] = extend({}, attributes[key]);\n\t\t\t} else {\n\t\t\t\tconst val = attributes[key].value;\n\t\t\t\tdelete attributes[key].value;\n\t\t\t\tresult[key] = extend({}, attributes[key]);\n\t\t\t\tresult[key].value = val;\n\t\t\t\tattributes[key].value = val;\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\t_createAccessors(entity, instance) {\n\t\tconst len = entity.script.scripts.length;\n\t\tconst url = instance.url;\n\t\tfor (let i = 0; i < len; i++) {\n\t\t\tconst script = entity.script.scripts[i];\n\t\t\tif (script.url === url) {\n\t\t\t\tconst attributes = script.attributes;\n\t\t\t\tif (script.name && attributes) {\n\t\t\t\t\tfor (const key in attributes) {\n\t\t\t\t\t\tif (attributes.hasOwnProperty(key)) {\n\t\t\t\t\t\t\tthis._createAccessor(attributes[key], instance);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tentity.script.data.attributes[script.name] = this._cloneAttributes(attributes);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t_createAccessor(attribute, instance) {\n\t\tconst self = this;\n\t\tattribute = {\n\t\t\tname: attribute.name,\n\t\t\tvalue: attribute.value,\n\t\t\ttype: attribute.type\n\t\t};\n\t\tthis._convertAttributeValue(attribute);\n\t\tObject.defineProperty(instance.instance, attribute.name, {\n\t\t\tget: function () {\n\t\t\t\treturn attribute.value;\n\t\t\t},\n\t\t\tset: function (value) {\n\t\t\t\tconst oldValue = attribute.value;\n\t\t\t\tattribute.value = value;\n\t\t\t\tself._convertAttributeValue(attribute);\n\t\t\t\tinstance.instance.fire('set', attribute.name, oldValue, attribute.value);\n\t\t\t},\n\t\t\tconfigurable: true\n\t\t});\n\t}\n\t_updateAccessors(entity, instance) {\n\t\tconst len = entity.script.scripts.length;\n\t\tconst url = instance.url;\n\t\tfor (let i = 0; i < len; i++) {\n\t\t\tconst scriptComponent = entity.script;\n\t\t\tconst script = scriptComponent.scripts[i];\n\t\t\tif (script.url === url) {\n\t\t\t\tconst name = script.name;\n\t\t\t\tconst attributes = script.attributes;\n\t\t\t\tif (name) {\n\t\t\t\t\tif (attributes) {\n\t\t\t\t\t\tfor (const key in attributes) {\n\t\t\t\t\t\t\tif (attributes.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tthis._createAccessor(attributes[key], instance);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tconst previousAttributes = scriptComponent.data.attributes[name];\n\t\t\t\t\tif (previousAttributes) {\n\t\t\t\t\t\tfor (const key in previousAttributes) {\n\t\t\t\t\t\t\tconst oldAttribute = previousAttributes[key];\n\t\t\t\t\t\t\tif (!(key in attributes)) {\n\t\t\t\t\t\t\t\tdelete instance.instance[oldAttribute.name];\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif (attributes[key].value !== oldAttribute.value) {\n\t\t\t\t\t\t\t\t\tif (instance.instance.onAttributeChanged) {\n\t\t\t\t\t\t\t\t\t\tinstance.instance.onAttributeChanged(oldAttribute.name, oldAttribute.value, attributes[key].value);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (attributes) {\n\t\t\t\t\t\tscriptComponent.data.attributes[name] = this._cloneAttributes(attributes);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete scriptComponent.data.attributes[name];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t_convertAttributeValue(attribute) {\n\t\tif (attribute.type === 'rgb' || attribute.type === 'rgba') {\n\t\t\tif (Array.isArray(attribute.value)) {\n\t\t\t\tattribute.value = attribute.value.length === 3 ? new Color(attribute.value[0], attribute.value[1], attribute.value[2]) : new Color(attribute.value[0], attribute.value[1], attribute.value[2], attribute.value[3]);\n\t\t\t}\n\t\t} else if (attribute.type === 'vec2') {\n\t\t\tif (Array.isArray(attribute.value)) {\n\t\t\t\tattribute.value = new Vec2(attribute.value[0], attribute.value[1]);\n\t\t\t}\n\t\t} else if (attribute.type === 'vec3' || attribute.type === 'vector') {\n\t\t\tif (Array.isArray(attribute.value)) {\n\t\t\t\tattribute.value = new Vec3(attribute.value[0], attribute.value[1], attribute.value[2]);\n\t\t\t}\n\t\t} else if (attribute.type === 'vec4') {\n\t\t\tif (Array.isArray(attribute.value)) {\n\t\t\t\tattribute.value = new Vec4(attribute.value[0], attribute.value[1], attribute.value[2], attribute.value[3]);\n\t\t\t}\n\t\t} else if (attribute.type === 'entity') {\n\t\t\tif (attribute.value !== null && typeof attribute.value === 'string') {\n\t\t\t\tattribute.value = this.app.root.findByGuid(attribute.value);\n\t\t\t}\n\t\t} else if (attribute.type === 'curve' || attribute.type === 'colorcurve') {\n\t\t\tconst curveType = attribute.value.keys[0] instanceof Array ? CurveSet : Curve;\n\t\t\tattribute.value = new curveType(attribute.value.keys);\n\t\t\tattribute.value.type = attribute.value.type;\n\t\t}\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.app.systems.off(INITIALIZE, this.onInitialize, this);\n\t\tthis.app.systems.off(POST_INITIALIZE, this.onPostInitialize, this);\n\t\tthis.app.systems.off(UPDATE, this.onUpdate, this);\n\t\tthis.app.systems.off(FIXED_UPDATE, this.onFixedUpdate, this);\n\t\tthis.app.systems.off(POST_UPDATE, this.onPostUpdate, this);\n\t\tthis.app.systems.off(TOOLS_UPDATE, this.onToolsUpdate, this);\n\t}\n}\nComponent._buildAccessors(ScriptLegacyComponent.prototype, _schema$7);\n\nconst _inputScreenPosition = new Vec2();\nconst _inputWorldPosition = new Vec3();\nconst _ray = new Ray();\nconst _plane = new Plane();\nconst _normal = new Vec3();\nconst _point = new Vec3();\nconst _entityRotation = new Quat();\nconst OPPOSITE_AXIS = {\n\tx: 'y',\n\ty: 'x'\n};\nclass ElementDragHelper extends EventHandler {\n\tconstructor(element, axis) {\n\t\tsuper();\n\t\tif (!element || !(element instanceof ElementComponent)) {\n\t\t\tthrow new Error('Element was null or not an ElementComponent');\n\t\t}\n\t\tif (axis && axis !== 'x' && axis !== 'y') {\n\t\t\tthrow new Error(`Unrecognized axis: ${axis}`);\n\t\t}\n\t\tthis._element = element;\n\t\tthis._app = element.system.app;\n\t\tthis._axis = axis || null;\n\t\tthis._enabled = true;\n\t\tthis._dragScale = new Vec3();\n\t\tthis._dragStartMousePosition = new Vec3();\n\t\tthis._dragStartHandlePosition = new Vec3();\n\t\tthis._deltaMousePosition = new Vec3();\n\t\tthis._deltaHandlePosition = new Vec3();\n\t\tthis._isDragging = false;\n\t\tthis._toggleLifecycleListeners('on');\n\t}\n\t_toggleLifecycleListeners(onOrOff) {\n\t\tthis._element[onOrOff]('mousedown', this._onMouseDownOrTouchStart, this);\n\t\tthis._element[onOrOff]('touchstart', this._onMouseDownOrTouchStart, this);\n\t\tthis._element[onOrOff]('selectstart', this._onMouseDownOrTouchStart, this);\n\t}\n\t_toggleDragListeners(onOrOff) {\n\t\tconst isOn = onOrOff === 'on';\n\t\tif (this._hasDragListeners && isOn) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._app.mouse) {\n\t\t\tthis._element[onOrOff]('mousemove', this._onMove, this);\n\t\t\tthis._element[onOrOff]('mouseup', this._onMouseUpOrTouchEnd, this);\n\t\t}\n\t\tif (platform.touch) {\n\t\t\tthis._element[onOrOff]('touchmove', this._onMove, this);\n\t\t\tthis._element[onOrOff]('touchend', this._onMouseUpOrTouchEnd, this);\n\t\t\tthis._element[onOrOff]('touchcancel', this._onMouseUpOrTouchEnd, this);\n\t\t}\n\t\tthis._element[onOrOff]('selectmove', this._onMove, this);\n\t\tthis._element[onOrOff]('selectend', this._onMouseUpOrTouchEnd, this);\n\t\tthis._hasDragListeners = isOn;\n\t}\n\t_onMouseDownOrTouchStart(event) {\n\t\tif (this._element && !this._isDragging && this.enabled) {\n\t\t\tthis._dragCamera = event.camera;\n\t\t\tthis._calculateDragScale();\n\t\t\tconst currentMousePosition = this._screenToLocal(event);\n\t\t\tif (currentMousePosition) {\n\t\t\t\tthis._toggleDragListeners('on');\n\t\t\t\tthis._isDragging = true;\n\t\t\t\tthis._dragStartMousePosition.copy(currentMousePosition);\n\t\t\t\tthis._dragStartHandlePosition.copy(this._element.entity.getLocalPosition());\n\t\t\t\tthis.fire('drag:start');\n\t\t\t}\n\t\t}\n\t}\n\t_onMouseUpOrTouchEnd() {\n\t\tif (this._isDragging) {\n\t\t\tthis._isDragging = false;\n\t\t\tthis._toggleDragListeners('off');\n\t\t\tthis.fire('drag:end');\n\t\t}\n\t}\n\t_screenToLocal(event) {\n\t\tif (event.inputSource) {\n\t\t\t_ray.set(event.inputSource.getOrigin(), event.inputSource.getDirection());\n\t\t} else {\n\t\t\tthis._determineInputPosition(event);\n\t\t\tthis._chooseRayOriginAndDirection();\n\t\t}\n\t\t_normal.copy(this._element.entity.forward).mulScalar(-1);\n\t\t_plane.setFromPointNormal(this._element.entity.getPosition(), _normal);\n\t\tif (_plane.intersectsRay(_ray, _point)) {\n\t\t\t_entityRotation.copy(this._element.entity.getRotation()).invert().transformVector(_point, _point);\n\t\t\t_point.mul(this._dragScale);\n\t\t\treturn _point;\n\t\t}\n\t\treturn null;\n\t}\n\t_determineInputPosition(event) {\n\t\tconst devicePixelRatio = this._app.graphicsDevice.maxPixelRatio;\n\t\tif (typeof event.x !== 'undefined' && typeof event.y !== 'undefined') {\n\t\t\t_inputScreenPosition.x = event.x * devicePixelRatio;\n\t\t\t_inputScreenPosition.y = event.y * devicePixelRatio;\n\t\t} else if (event.changedTouches) {\n\t\t\t_inputScreenPosition.x = event.changedTouches[0].x * devicePixelRatio;\n\t\t\t_inputScreenPosition.y = event.changedTouches[0].y * devicePixelRatio;\n\t\t} else {\n\t\t\tconsole.warn('Could not determine position from input event');\n\t\t}\n\t}\n\t_chooseRayOriginAndDirection() {\n\t\tif (this._element.screen && this._element.screen.screen.screenSpace) {\n\t\t\t_ray.origin.set(_inputScreenPosition.x, -_inputScreenPosition.y, 0);\n\t\t\t_ray.direction.copy(Vec3.FORWARD);\n\t\t} else {\n\t\t\t_inputWorldPosition.copy(this._dragCamera.screenToWorld(_inputScreenPosition.x, _inputScreenPosition.y, 1));\n\t\t\t_ray.origin.copy(this._dragCamera.entity.getPosition());\n\t\t\t_ray.direction.copy(_inputWorldPosition).sub(_ray.origin).normalize();\n\t\t}\n\t}\n\t_calculateDragScale() {\n\t\tlet current = this._element.entity.parent;\n\t\tconst screen = this._element.screen && this._element.screen.screen;\n\t\tconst isWithin2DScreen = screen && screen.screenSpace;\n\t\tconst screenScale = isWithin2DScreen ? screen.scale : 1;\n\t\tconst dragScale = this._dragScale;\n\t\tdragScale.set(screenScale, screenScale, screenScale);\n\t\twhile (current) {\n\t\t\tdragScale.mul(current.getLocalScale());\n\t\t\tcurrent = current.parent;\n\t\t\tif (isWithin2DScreen && current.screen) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tdragScale.x = 1 / dragScale.x;\n\t\tdragScale.y = 1 / dragScale.y;\n\t\tdragScale.z = 0;\n\t}\n\t_onMove(event) {\n\t\tconst {\n\t\t\t_element: element,\n\t\t\t_deltaMousePosition: deltaMousePosition,\n\t\t\t_deltaHandlePosition: deltaHandlePosition,\n\t\t\t_axis: axis\n\t\t} = this;\n\t\tif (element && this._isDragging && this.enabled && element.enabled && element.entity.enabled) {\n\t\t\tconst currentMousePosition = this._screenToLocal(event);\n\t\t\tif (currentMousePosition) {\n\t\t\t\tdeltaMousePosition.sub2(currentMousePosition, this._dragStartMousePosition);\n\t\t\t\tdeltaHandlePosition.add2(this._dragStartHandlePosition, deltaMousePosition);\n\t\t\t\tif (axis) {\n\t\t\t\t\tconst currentPosition = element.entity.getLocalPosition();\n\t\t\t\t\tconst constrainedAxis = OPPOSITE_AXIS[axis];\n\t\t\t\t\tdeltaHandlePosition[constrainedAxis] = currentPosition[constrainedAxis];\n\t\t\t\t}\n\t\t\t\telement.entity.setLocalPosition(deltaHandlePosition);\n\t\t\t\tthis.fire('drag:move', deltaHandlePosition);\n\t\t\t}\n\t\t}\n\t}\n\tdestroy() {\n\t\tthis._toggleLifecycleListeners('off');\n\t\tthis._toggleDragListeners('off');\n\t}\n\tset enabled(value) {\n\t\tthis._enabled = value;\n\t}\n\tget enabled() {\n\t\treturn this._enabled;\n\t}\n\tget isDragging() {\n\t\treturn this._isDragging;\n\t}\n}\nElementDragHelper.EVENT_DRAGSTART = 'drag:start';\nElementDragHelper.EVENT_DRAGEND = 'drag:end';\nElementDragHelper.EVENT_DRAGMOVE = 'drag:move';\n\nconst SCROLL_MODE_CLAMP = 0;\nconst SCROLL_MODE_BOUNCE = 1;\nconst SCROLL_MODE_INFINITE = 2;\nconst SCROLLBAR_VISIBILITY_SHOW_ALWAYS = 0;\nconst SCROLLBAR_VISIBILITY_SHOW_WHEN_REQUIRED = 1;\n\nconst _tempScrollValue = new Vec2();\nclass ScrollViewComponent extends Component {\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis._viewportEntity = null;\n\t\tthis._contentEntity = null;\n\t\tthis._horizontalScrollbarEntity = null;\n\t\tthis._verticalScrollbarEntity = null;\n\t\tthis._evtElementRemove = null;\n\t\tthis._evtViewportElementRemove = null;\n\t\tthis._evtViewportResize = null;\n\t\tthis._evtContentEntityElementAdd = null;\n\t\tthis._evtContentElementRemove = null;\n\t\tthis._evtContentResize = null;\n\t\tthis._evtHorizontalScrollbarAdd = null;\n\t\tthis._evtHorizontalScrollbarRemove = null;\n\t\tthis._evtHorizontalScrollbarValue = null;\n\t\tthis._evtVerticalScrollbarAdd = null;\n\t\tthis._evtVerticalScrollbarRemove = null;\n\t\tthis._evtVerticalScrollbarValue = null;\n\t\tthis._scrollbarUpdateFlags = {};\n\t\tthis._scrollbarEntities = {};\n\t\tthis._prevContentSizes = {};\n\t\tthis._prevContentSizes[ORIENTATION_HORIZONTAL] = null;\n\t\tthis._prevContentSizes[ORIENTATION_VERTICAL] = null;\n\t\tthis._scroll = new Vec2();\n\t\tthis._velocity = new Vec3();\n\t\tthis._dragStartPosition = new Vec3();\n\t\tthis._disabledContentInput = false;\n\t\tthis._disabledContentInputEntities = [];\n\t\tthis._toggleLifecycleListeners('on');\n\t\tthis._toggleElementListeners('on');\n\t}\n\tget data() {\n\t\tconst record = this.system.store[this.entity.getGuid()];\n\t\treturn record ? record.data : null;\n\t}\n\tset enabled(arg) {\n\t\tthis._setValue('enabled', arg);\n\t}\n\tget enabled() {\n\t\treturn this.data.enabled;\n\t}\n\tset horizontal(arg) {\n\t\tthis._setValue('horizontal', arg);\n\t}\n\tget horizontal() {\n\t\treturn this.data.horizontal;\n\t}\n\tset vertical(arg) {\n\t\tthis._setValue('vertical', arg);\n\t}\n\tget vertical() {\n\t\treturn this.data.vertical;\n\t}\n\tset scrollMode(arg) {\n\t\tthis._setValue('scrollMode', arg);\n\t}\n\tget scrollMode() {\n\t\treturn this.data.scrollMode;\n\t}\n\tset bounceAmount(arg) {\n\t\tthis._setValue('bounceAmount', arg);\n\t}\n\tget bounceAmount() {\n\t\treturn this.data.bounceAmount;\n\t}\n\tset friction(arg) {\n\t\tthis._setValue('friction', arg);\n\t}\n\tget friction() {\n\t\treturn this.data.friction;\n\t}\n\tset dragThreshold(arg) {\n\t\tthis._setValue('dragThreshold', arg);\n\t}\n\tget dragThreshold() {\n\t\treturn this.data.dragThreshold;\n\t}\n\tset useMouseWheel(arg) {\n\t\tthis._setValue('useMouseWheel', arg);\n\t}\n\tget useMouseWheel() {\n\t\treturn this.data.useMouseWheel;\n\t}\n\tset mouseWheelSensitivity(arg) {\n\t\tthis._setValue('mouseWheelSensitivity', arg);\n\t}\n\tget mouseWheelSensitivity() {\n\t\treturn this.data.mouseWheelSensitivity;\n\t}\n\tset horizontalScrollbarVisibility(arg) {\n\t\tthis._setValue('horizontalScrollbarVisibility', arg);\n\t}\n\tget horizontalScrollbarVisibility() {\n\t\treturn this.data.horizontalScrollbarVisibility;\n\t}\n\tset verticalScrollbarVisibility(arg) {\n\t\tthis._setValue('verticalScrollbarVisibility', arg);\n\t}\n\tget verticalScrollbarVisibility() {\n\t\treturn this.data.verticalScrollbarVisibility;\n\t}\n\tset viewportEntity(arg) {\n\t\tif (this._viewportEntity === arg) {\n\t\t\treturn;\n\t\t}\n\t\tconst isString = typeof arg === 'string';\n\t\tif (this._viewportEntity && isString && this._viewportEntity.getGuid() === arg) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._viewportEntity) {\n\t\t\tthis._viewportEntityUnsubscribe();\n\t\t}\n\t\tif (arg instanceof GraphNode) {\n\t\t\tthis._viewportEntity = arg;\n\t\t} else if (isString) {\n\t\t\tthis._viewportEntity = this.system.app.getEntityFromIndex(arg) || null;\n\t\t} else {\n\t\t\tthis._viewportEntity = null;\n\t\t}\n\t\tif (this._viewportEntity) {\n\t\t\tthis._viewportEntitySubscribe();\n\t\t}\n\t\tif (this._viewportEntity) {\n\t\t\tthis.data.viewportEntity = this._viewportEntity.getGuid();\n\t\t} else if (isString && arg) {\n\t\t\tthis.data.viewportEntity = arg;\n\t\t}\n\t}\n\tget viewportEntity() {\n\t\treturn this._viewportEntity;\n\t}\n\tset contentEntity(arg) {\n\t\tif (this._contentEntity === arg) {\n\t\t\treturn;\n\t\t}\n\t\tconst isString = typeof arg === 'string';\n\t\tif (this._contentEntity && isString && this._contentEntity.getGuid() === arg) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._contentEntity) {\n\t\t\tthis._contentEntityUnsubscribe();\n\t\t}\n\t\tif (arg instanceof GraphNode) {\n\t\t\tthis._contentEntity = arg;\n\t\t} else if (isString) {\n\t\t\tthis._contentEntity = this.system.app.getEntityFromIndex(arg) || null;\n\t\t} else {\n\t\t\tthis._contentEntity = null;\n\t\t}\n\t\tif (this._contentEntity) {\n\t\t\tthis._contentEntitySubscribe();\n\t\t}\n\t\tif (this._contentEntity) {\n\t\t\tthis.data.contentEntity = this._contentEntity.getGuid();\n\t\t} else if (isString && arg) {\n\t\t\tthis.data.contentEntity = arg;\n\t\t}\n\t}\n\tget contentEntity() {\n\t\treturn this._contentEntity;\n\t}\n\tset horizontalScrollbarEntity(arg) {\n\t\tif (this._horizontalScrollbarEntity === arg) {\n\t\t\treturn;\n\t\t}\n\t\tconst isString = typeof arg === 'string';\n\t\tif (this._horizontalScrollbarEntity && isString && this._horizontalScrollbarEntity.getGuid() === arg) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._horizontalScrollbarEntity) {\n\t\t\tthis._horizontalScrollbarEntityUnsubscribe();\n\t\t}\n\t\tif (arg instanceof GraphNode) {\n\t\t\tthis._horizontalScrollbarEntity = arg;\n\t\t} else if (isString) {\n\t\t\tthis._horizontalScrollbarEntity = this.system.app.getEntityFromIndex(arg) || null;\n\t\t} else {\n\t\t\tthis._horizontalScrollbarEntity = null;\n\t\t}\n\t\tthis._scrollbarEntities[ORIENTATION_HORIZONTAL] = this._horizontalScrollbarEntity;\n\t\tif (this._horizontalScrollbarEntity) {\n\t\t\tthis._horizontalScrollbarEntitySubscribe();\n\t\t}\n\t\tif (this._horizontalScrollbarEntity) {\n\t\t\tthis.data.horizontalScrollbarEntity = this._horizontalScrollbarEntity.getGuid();\n\t\t} else if (isString && arg) {\n\t\t\tthis.data.horizontalScrollbarEntity = arg;\n\t\t}\n\t}\n\tget horizontalScrollbarEntity() {\n\t\treturn this._horizontalScrollbarEntity;\n\t}\n\tset verticalScrollbarEntity(arg) {\n\t\tif (this._verticalScrollbarEntity === arg) {\n\t\t\treturn;\n\t\t}\n\t\tconst isString = typeof arg === 'string';\n\t\tif (this._verticalScrollbarEntity && isString && this._verticalScrollbarEntity.getGuid() === arg) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._verticalScrollbarEntity) {\n\t\t\tthis._verticalScrollbarEntityUnsubscribe();\n\t\t}\n\t\tif (arg instanceof GraphNode) {\n\t\t\tthis._verticalScrollbarEntity = arg;\n\t\t} else if (isString) {\n\t\t\tthis._verticalScrollbarEntity = this.system.app.getEntityFromIndex(arg) || null;\n\t\t} else {\n\t\t\tthis._verticalScrollbarEntity = null;\n\t\t}\n\t\tthis._scrollbarEntities[ORIENTATION_VERTICAL] = this._verticalScrollbarEntity;\n\t\tif (this._verticalScrollbarEntity) {\n\t\t\tthis._verticalScrollbarEntitySubscribe();\n\t\t}\n\t\tif (this._verticalScrollbarEntity) {\n\t\t\tthis.data.verticalScrollbarEntity = this._verticalScrollbarEntity.getGuid();\n\t\t} else if (isString && arg) {\n\t\t\tthis.data.verticalScrollbarEntity = arg;\n\t\t}\n\t}\n\tget verticalScrollbarEntity() {\n\t\treturn this._verticalScrollbarEntity;\n\t}\n\tset scroll(value) {\n\t\tthis._onSetScroll(value.x, value.y);\n\t}\n\tget scroll() {\n\t\treturn this._scroll;\n\t}\n\t_setValue(name, value) {\n\t\tconst data = this.data;\n\t\tconst oldValue = data[name];\n\t\tdata[name] = value;\n\t\tthis.fire('set', name, oldValue, value);\n\t}\n\t_toggleLifecycleListeners(onOrOff) {\n\t\tthis[onOrOff]('set_horizontal', this._onSetHorizontalScrollingEnabled, this);\n\t\tthis[onOrOff]('set_vertical', this._onSetVerticalScrollingEnabled, this);\n\t\tthis.entity[onOrOff]('element:add', this._onElementComponentAdd, this);\n\t}\n\t_toggleElementListeners(onOrOff) {\n\t\tif (this.entity.element) {\n\t\t\tif (onOrOff === 'on' && this._hasElementListeners) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.entity.element[onOrOff]('resize', this._syncAll, this);\n\t\t\tthis.entity.element[onOrOff](EVENT_MOUSEWHEEL, this._onMouseWheel, this);\n\t\t\tthis._hasElementListeners = onOrOff === 'on';\n\t\t}\n\t}\n\t_onElementComponentAdd(entity) {\n\t\tthis._evtElementRemove = this.entity.element.once('beforeremove', this._onElementComponentRemove, this);\n\t\tthis._toggleElementListeners('on');\n\t}\n\t_onElementComponentRemove(entity) {\n\t\tvar _this$_evtElementRemo;\n\t\t(_this$_evtElementRemo = this._evtElementRemove) == null || _this$_evtElementRemo.off();\n\t\tthis._evtElementRemove = null;\n\t\tthis._toggleElementListeners('off');\n\t}\n\t_viewportEntitySubscribe() {\n\t\tthis._evtViewportEntityElementAdd = this._viewportEntity.on('element:add', this._onViewportElementGain, this);\n\t\tif (this._viewportEntity.element) {\n\t\t\tthis._onViewportElementGain();\n\t\t}\n\t}\n\t_viewportEntityUnsubscribe() {\n\t\tvar _this$_evtViewportEnt, _this$_viewportEntity;\n\t\t(_this$_evtViewportEnt = this._evtViewportEntityElementAdd) == null || _this$_evtViewportEnt.off();\n\t\tthis._evtViewportEntityElementAdd = null;\n\t\tif ((_this$_viewportEntity = this._viewportEntity) != null && _this$_viewportEntity.element) {\n\t\t\tthis._onViewportElementLose();\n\t\t}\n\t}\n\t_viewportEntityElementSubscribe() {\n\t\tconst element = this._viewportEntity.element;\n\t\tthis._evtViewportElementRemove = element.once('beforeremove', this._onViewportElementLose, this);\n\t\tthis._evtViewportResize = element.on('resize', this._syncAll, this);\n\t}\n\t_viewportEntityElementUnsubscribe() {\n\t\tvar _this$_evtViewportEle, _this$_evtViewportRes;\n\t\t(_this$_evtViewportEle = this._evtViewportElementRemove) == null || _this$_evtViewportEle.off();\n\t\tthis._evtViewportElementRemove = null;\n\t\t(_this$_evtViewportRes = this._evtViewportResize) == null || _this$_evtViewportRes.off();\n\t\tthis._evtViewportResize = null;\n\t}\n\t_onViewportElementGain() {\n\t\tthis._viewportEntityElementSubscribe();\n\t\tthis._syncAll();\n\t}\n\t_onViewportElementLose() {\n\t\tthis._viewportEntityElementUnsubscribe();\n\t}\n\t_contentEntitySubscribe() {\n\t\tthis._evtContentEntityElementAdd = this._contentEntity.on('element:add', this._onContentElementGain, this);\n\t\tif (this._contentEntity.element) {\n\t\t\tthis._onContentElementGain();\n\t\t}\n\t}\n\t_contentEntityUnsubscribe() {\n\t\tvar _this$_evtContentEnti, _this$_contentEntity;\n\t\t(_this$_evtContentEnti = this._evtContentEntityElementAdd) == null || _this$_evtContentEnti.off();\n\t\tthis._evtContentEntityElementAdd = null;\n\t\tif ((_this$_contentEntity = this._contentEntity) != null && _this$_contentEntity.element) {\n\t\t\tthis._onContentElementLose();\n\t\t}\n\t}\n\t_contentEntityElementSubscribe() {\n\t\tconst element = this._contentEntity.element;\n\t\tthis._evtContentElementRemove = element.once('beforeremove', this._onContentElementLose, this);\n\t\tthis._evtContentResize = element.on('resize', this._syncAll, this);\n\t}\n\t_contentEntityElementUnsubscribe() {\n\t\tvar _this$_evtContentElem, _this$_evtContentResi;\n\t\t(_this$_evtContentElem = this._evtContentElementRemove) == null || _this$_evtContentElem.off();\n\t\tthis._evtContentElementRemove = null;\n\t\t(_this$_evtContentResi = this._evtContentResize) == null || _this$_evtContentResi.off();\n\t\tthis._evtContentResize = null;\n\t}\n\t_onContentElementGain() {\n\t\tthis._contentEntityElementSubscribe();\n\t\tthis._destroyDragHelper();\n\t\tthis._contentDragHelper = new ElementDragHelper(this._contentEntity.element);\n\t\tthis._contentDragHelper.on('drag:start', this._onContentDragStart, this);\n\t\tthis._contentDragHelper.on('drag:end', this._onContentDragEnd, this);\n\t\tthis._contentDragHelper.on('drag:move', this._onContentDragMove, this);\n\t\tthis._prevContentSizes[ORIENTATION_HORIZONTAL] = null;\n\t\tthis._prevContentSizes[ORIENTATION_VERTICAL] = null;\n\t\tthis._syncAll();\n\t}\n\t_onContentElementLose() {\n\t\tthis._contentEntityElementUnsubscribe();\n\t\tthis._destroyDragHelper();\n\t}\n\t_onContentDragStart() {\n\t\tif (this._contentEntity && this.enabled && this.entity.enabled) {\n\t\t\tthis._dragStartPosition.copy(this._contentEntity.getLocalPosition());\n\t\t}\n\t}\n\t_onContentDragEnd() {\n\t\tthis._prevContentDragPosition = null;\n\t\tthis._enableContentInput();\n\t}\n\t_onContentDragMove(position) {\n\t\tif (this._contentEntity && this.enabled && this.entity.enabled) {\n\t\t\tthis._wasDragged = true;\n\t\t\tthis._setScrollFromContentPosition(position);\n\t\t\tthis._setVelocityFromContentPositionDelta(position);\n\t\t\tif (!this._disabledContentInput) {\n\t\t\t\tconst dx = position.x - this._dragStartPosition.x;\n\t\t\t\tconst dy = position.y - this._dragStartPosition.y;\n\t\t\t\tif (Math.abs(dx) > this.dragThreshold || Math.abs(dy) > this.dragThreshold) {\n\t\t\t\t\tthis._disableContentInput();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t_horizontalScrollbarEntitySubscribe() {\n\t\tthis._evtHorizontalScrollbarAdd = this._horizontalScrollbarEntity.on('scrollbar:add', this._onHorizontalScrollbarGain, this);\n\t\tif (this._horizontalScrollbarEntity.scrollbar) {\n\t\t\tthis._onHorizontalScrollbarGain();\n\t\t}\n\t}\n\t_verticalScrollbarEntitySubscribe() {\n\t\tthis._evtVerticalScrollbarAdd = this._verticalScrollbarEntity.on('scrollbar:add', this._onVerticalScrollbarGain, this);\n\t\tif (this._verticalScrollbarEntity.scrollbar) {\n\t\t\tthis._onVerticalScrollbarGain();\n\t\t}\n\t}\n\t_horizontalScrollbarEntityUnsubscribe() {\n\t\tvar _this$_evtHorizontalS;\n\t\t(_this$_evtHorizontalS = this._evtHorizontalScrollbarAdd) == null || _this$_evtHorizontalS.off();\n\t\tthis._evtHorizontalScrollbarAdd = null;\n\t\tif (this._horizontalScrollbarEntity.scrollbar) {\n\t\t\tthis._onHorizontalScrollbarLose();\n\t\t}\n\t}\n\t_verticalScrollbarEntityUnsubscribe() {\n\t\tvar _this$_evtVerticalScr;\n\t\t(_this$_evtVerticalScr = this._evtVerticalScrollbarAdd) == null || _this$_evtVerticalScr.off();\n\t\tthis._evtVerticalScrollbarAdd = null;\n\t\tif (this._verticalScrollbarEntity.scrollbar) {\n\t\t\tthis._onVerticalScrollbarLose();\n\t\t}\n\t}\n\t_onSetHorizontalScrollbarValue(scrollValueX) {\n\t\tif (!this._scrollbarUpdateFlags[ORIENTATION_HORIZONTAL] && this.enabled && this.entity.enabled) {\n\t\t\tthis._onSetScroll(scrollValueX, null);\n\t\t}\n\t}\n\t_onSetVerticalScrollbarValue(scrollValueY) {\n\t\tif (!this._scrollbarUpdateFlags[ORIENTATION_VERTICAL] && this.enabled && this.entity.enabled) {\n\t\t\tthis._onSetScroll(null, scrollValueY);\n\t\t}\n\t}\n\t_onHorizontalScrollbarGain() {\n\t\tvar _this$_horizontalScro;\n\t\tconst scrollbar = (_this$_horizontalScro = this._horizontalScrollbarEntity) == null ? void 0 : _this$_horizontalScro.scrollbar;\n\t\tthis._evtHorizontalScrollbarRemove = scrollbar.on('beforeremove', this._onHorizontalScrollbarLose, this);\n\t\tthis._evtHorizontalScrollbarValue = scrollbar.on('set:value', this._onSetHorizontalScrollbarValue, this);\n\t\tthis._syncScrollbarEnabledState(ORIENTATION_HORIZONTAL);\n\t\tthis._syncScrollbarPosition(ORIENTATION_HORIZONTAL);\n\t}\n\t_onVerticalScrollbarGain() {\n\t\tvar _this$_verticalScroll;\n\t\tconst scrollbar = (_this$_verticalScroll = this._verticalScrollbarEntity) == null ? void 0 : _this$_verticalScroll.scrollbar;\n\t\tthis._evtVerticalScrollbarRemove = scrollbar.on('beforeremove', this._onVerticalScrollbarLose, this);\n\t\tthis._evtVerticalScrollbarValue = scrollbar.on('set:value', this._onSetVerticalScrollbarValue, this);\n\t\tthis._syncScrollbarEnabledState(ORIENTATION_VERTICAL);\n\t\tthis._syncScrollbarPosition(ORIENTATION_VERTICAL);\n\t}\n\t_onHorizontalScrollbarLose() {\n\t\tvar _this$_evtHorizontalS2, _this$_evtHorizontalS3;\n\t\t(_this$_evtHorizontalS2 = this._evtHorizontalScrollbarRemove) == null || _this$_evtHorizontalS2.off();\n\t\tthis._evtHorizontalScrollbarRemove = null;\n\t\t(_this$_evtHorizontalS3 = this._evtHorizontalScrollbarValue) == null || _this$_evtHorizontalS3.off();\n\t\tthis._evtHorizontalScrollbarValue = null;\n\t}\n\t_onVerticalScrollbarLose() {\n\t\tvar _this$_evtVerticalScr2, _this$_evtVerticalScr3;\n\t\t(_this$_evtVerticalScr2 = this._evtVerticalScrollbarRemove) == null || _this$_evtVerticalScr2.off();\n\t\tthis._evtVerticalScrollbarRemove = null;\n\t\t(_this$_evtVerticalScr3 = this._evtVerticalScrollbarValue) == null || _this$_evtVerticalScr3.off();\n\t\tthis._evtVerticalScrollbarValue = null;\n\t}\n\t_onSetHorizontalScrollingEnabled() {\n\t\tthis._syncScrollbarEnabledState(ORIENTATION_HORIZONTAL);\n\t}\n\t_onSetVerticalScrollingEnabled() {\n\t\tthis._syncScrollbarEnabledState(ORIENTATION_VERTICAL);\n\t}\n\t_onSetScroll(x, y, resetVelocity) {\n\t\tif (resetVelocity !== false) {\n\t\t\tthis._velocity.set(0, 0, 0);\n\t\t}\n\t\tconst xChanged = this._updateAxis(x, 'x', ORIENTATION_HORIZONTAL);\n\t\tconst yChanged = this._updateAxis(y, 'y', ORIENTATION_VERTICAL);\n\t\tif (xChanged || yChanged) {\n\t\t\tthis.fire('set:scroll', this._scroll);\n\t\t}\n\t}\n\t_updateAxis(scrollValue, axis, orientation) {\n\t\tconst hasChanged = scrollValue !== null && Math.abs(scrollValue - this._scroll[axis]) > 1e-5;\n\t\tif (hasChanged || this._isDragging() || scrollValue === 0) {\n\t\t\tthis._scroll[axis] = this._determineNewScrollValue(scrollValue, axis, orientation);\n\t\t\tthis._syncContentPosition(orientation);\n\t\t\tthis._syncScrollbarPosition(orientation);\n\t\t}\n\t\treturn hasChanged;\n\t}\n\t_determineNewScrollValue(scrollValue, axis, orientation) {\n\t\tif (!this._getScrollingEnabled(orientation)) {\n\t\t\treturn this._scroll[axis];\n\t\t}\n\t\tswitch (this.scrollMode) {\n\t\t\tcase SCROLL_MODE_CLAMP:\n\t\t\t\treturn math.clamp(scrollValue, 0, this._getMaxScrollValue(orientation));\n\t\t\tcase SCROLL_MODE_BOUNCE:\n\t\t\t\tthis._setVelocityFromOvershoot(scrollValue, axis, orientation);\n\t\t\t\treturn scrollValue;\n\t\t\tcase SCROLL_MODE_INFINITE:\n\t\t\t\treturn scrollValue;\n\t\t\tdefault:\n\t\t\t\tconsole.warn(`Unhandled scroll mode:${this.scrollMode}`);\n\t\t\t\treturn scrollValue;\n\t\t}\n\t}\n\t_syncAll() {\n\t\tthis._syncContentPosition(ORIENTATION_HORIZONTAL);\n\t\tthis._syncContentPosition(ORIENTATION_VERTICAL);\n\t\tthis._syncScrollbarPosition(ORIENTATION_HORIZONTAL);\n\t\tthis._syncScrollbarPosition(ORIENTATION_VERTICAL);\n\t\tthis._syncScrollbarEnabledState(ORIENTATION_HORIZONTAL);\n\t\tthis._syncScrollbarEnabledState(ORIENTATION_VERTICAL);\n\t}\n\t_syncContentPosition(orientation) {\n\t\tif (!this._contentEntity) {\n\t\t\treturn;\n\t\t}\n\t\tconst axis = this._getAxis(orientation);\n\t\tconst sign = this._getSign(orientation);\n\t\tconst prevContentSize = this._prevContentSizes[orientation];\n\t\tconst currContentSize = this._getContentSize(orientation);\n\t\tif (prevContentSize !== null && Math.abs(prevContentSize - currContentSize) > 1e-4) {\n\t\t\tconst prevMaxOffset = this._getMaxOffset(orientation, prevContentSize);\n\t\t\tconst currMaxOffset = this._getMaxOffset(orientation, currContentSize);\n\t\t\tif (currMaxOffset === 0) {\n\t\t\t\tthis._scroll[axis] = 1;\n\t\t\t} else {\n\t\t\t\tthis._scroll[axis] = math.clamp(this._scroll[axis] * prevMaxOffset / currMaxOffset, 0, 1);\n\t\t\t}\n\t\t}\n\t\tconst offset = this._scroll[axis] * this._getMaxOffset(orientation);\n\t\tconst contentPosition = this._contentEntity.getLocalPosition();\n\t\tcontentPosition[axis] = offset * sign;\n\t\tthis._contentEntity.setLocalPosition(contentPosition);\n\t\tthis._prevContentSizes[orientation] = currContentSize;\n\t}\n\t_syncScrollbarPosition(orientation) {\n\t\tconst scrollbarEntity = this._scrollbarEntities[orientation];\n\t\tif (!(scrollbarEntity != null && scrollbarEntity.scrollbar)) {\n\t\t\treturn;\n\t\t}\n\t\tconst axis = this._getAxis(orientation);\n\t\tthis._scrollbarUpdateFlags[orientation] = true;\n\t\tscrollbarEntity.scrollbar.value = this._scroll[axis];\n\t\tscrollbarEntity.scrollbar.handleSize = this._getScrollbarHandleSize(axis, orientation);\n\t\tthis._scrollbarUpdateFlags[orientation] = false;\n\t}\n\t_syncScrollbarEnabledState(orientation) {\n\t\tconst entity = this._scrollbarEntities[orientation];\n\t\tif (!entity) {\n\t\t\treturn;\n\t\t}\n\t\tconst isScrollingEnabled = this._getScrollingEnabled(orientation);\n\t\tconst requestedVisibility = this._getScrollbarVisibility(orientation);\n\t\tswitch (requestedVisibility) {\n\t\t\tcase SCROLLBAR_VISIBILITY_SHOW_ALWAYS:\n\t\t\t\tentity.enabled = isScrollingEnabled;\n\t\t\t\treturn;\n\t\t\tcase SCROLLBAR_VISIBILITY_SHOW_WHEN_REQUIRED:\n\t\t\t\tentity.enabled = isScrollingEnabled && this._contentIsLargerThanViewport(orientation);\n\t\t\t\treturn;\n\t\t\tdefault:\n\t\t\t\tconsole.warn(`Unhandled scrollbar visibility:${requestedVisibility}`);\n\t\t\t\tentity.enabled = isScrollingEnabled;\n\t\t}\n\t}\n\t_contentIsLargerThanViewport(orientation) {\n\t\treturn this._getContentSize(orientation) > this._getViewportSize(orientation);\n\t}\n\t_contentPositionToScrollValue(contentPosition) {\n\t\tconst maxOffsetH = this._getMaxOffset(ORIENTATION_HORIZONTAL);\n\t\tconst maxOffsetV = this._getMaxOffset(ORIENTATION_VERTICAL);\n\t\tif (maxOffsetH === 0) {\n\t\t\t_tempScrollValue.x = 0;\n\t\t} else {\n\t\t\t_tempScrollValue.x = contentPosition.x / maxOffsetH;\n\t\t}\n\t\tif (maxOffsetV === 0) {\n\t\t\t_tempScrollValue.y = 0;\n\t\t} else {\n\t\t\t_tempScrollValue.y = contentPosition.y / -maxOffsetV;\n\t\t}\n\t\treturn _tempScrollValue;\n\t}\n\t_getMaxOffset(orientation, contentSize) {\n\t\tcontentSize = contentSize === undefined ? this._getContentSize(orientation) : contentSize;\n\t\tconst viewportSize = this._getViewportSize(orientation);\n\t\tif (contentSize < viewportSize) {\n\t\t\treturn -this._getViewportSize(orientation);\n\t\t}\n\t\treturn viewportSize - contentSize;\n\t}\n\t_getMaxScrollValue(orientation) {\n\t\treturn this._contentIsLargerThanViewport(orientation) ? 1 : 0;\n\t}\n\t_getScrollbarHandleSize(axis, orientation) {\n\t\tconst viewportSize = this._getViewportSize(orientation);\n\t\tconst contentSize = this._getContentSize(orientation);\n\t\tif (Math.abs(contentSize) < 0.001) {\n\t\t\treturn 1;\n\t\t}\n\t\tconst handleSize = Math.min(viewportSize / contentSize, 1);\n\t\tconst overshoot = this._toOvershoot(this._scroll[axis], orientation);\n\t\tif (overshoot === 0) {\n\t\t\treturn handleSize;\n\t\t}\n\t\treturn handleSize / (1 + Math.abs(overshoot));\n\t}\n\t_getViewportSize(orientation) {\n\t\treturn this._getSize(orientation, this._viewportEntity);\n\t}\n\t_getContentSize(orientation) {\n\t\treturn this._getSize(orientation, this._contentEntity);\n\t}\n\t_getSize(orientation, entity) {\n\t\tif (entity != null && entity.element) {\n\t\t\treturn entity.element[this._getCalculatedDimension(orientation)];\n\t\t}\n\t\treturn 0;\n\t}\n\t_getScrollingEnabled(orientation) {\n\t\tif (orientation === ORIENTATION_HORIZONTAL) {\n\t\t\treturn this.horizontal;\n\t\t} else if (orientation === ORIENTATION_VERTICAL) {\n\t\t\treturn this.vertical;\n\t\t}\n\t\treturn undefined;\n\t}\n\t_getScrollbarVisibility(orientation) {\n\t\tif (orientation === ORIENTATION_HORIZONTAL) {\n\t\t\treturn this.horizontalScrollbarVisibility;\n\t\t} else if (orientation === ORIENTATION_VERTICAL) {\n\t\t\treturn this.verticalScrollbarVisibility;\n\t\t}\n\t\treturn undefined;\n\t}\n\t_getSign(orientation) {\n\t\treturn orientation === ORIENTATION_HORIZONTAL ? 1 : -1;\n\t}\n\t_getAxis(orientation) {\n\t\treturn orientation === ORIENTATION_HORIZONTAL ? 'x' : 'y';\n\t}\n\t_getCalculatedDimension(orientation) {\n\t\treturn orientation === ORIENTATION_HORIZONTAL ? 'calculatedWidth' : 'calculatedHeight';\n\t}\n\t_destroyDragHelper() {\n\t\tif (this._contentDragHelper) {\n\t\t\tthis._contentDragHelper.destroy();\n\t\t}\n\t}\n\tonUpdate() {\n\t\tif (this._contentEntity) {\n\t\t\tthis._updateVelocity();\n\t\t\tthis._syncScrollbarEnabledState(ORIENTATION_HORIZONTAL);\n\t\t\tthis._syncScrollbarEnabledState(ORIENTATION_VERTICAL);\n\t\t}\n\t}\n\t_updateVelocity() {\n\t\tif (!this._isDragging()) {\n\t\t\tif (this.scrollMode === SCROLL_MODE_BOUNCE) {\n\t\t\t\tif (this._hasOvershoot('x', ORIENTATION_HORIZONTAL)) {\n\t\t\t\t\tthis._setVelocityFromOvershoot(this.scroll.x, 'x', ORIENTATION_HORIZONTAL);\n\t\t\t\t}\n\t\t\t\tif (this._hasOvershoot('y', ORIENTATION_VERTICAL)) {\n\t\t\t\t\tthis._setVelocityFromOvershoot(this.scroll.y, 'y', ORIENTATION_VERTICAL);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (Math.abs(this._velocity.x) > 1e-4 || Math.abs(this._velocity.y) > 1e-4) {\n\t\t\t\tconst position = this._contentEntity.getLocalPosition();\n\t\t\t\tposition.x += this._velocity.x;\n\t\t\t\tposition.y += this._velocity.y;\n\t\t\t\tthis._contentEntity.setLocalPosition(position);\n\t\t\t\tthis._setScrollFromContentPosition(position);\n\t\t\t}\n\t\t\tthis._velocity.x *= 1 - this.friction;\n\t\t\tthis._velocity.y *= 1 - this.friction;\n\t\t}\n\t}\n\t_hasOvershoot(axis, orientation) {\n\t\treturn Math.abs(this._toOvershoot(this.scroll[axis], orientation)) > 0.001;\n\t}\n\t_toOvershoot(scrollValue, orientation) {\n\t\tconst maxScrollValue = this._getMaxScrollValue(orientation);\n\t\tif (scrollValue < 0) {\n\t\t\treturn scrollValue;\n\t\t} else if (scrollValue > maxScrollValue) {\n\t\t\treturn scrollValue - maxScrollValue;\n\t\t}\n\t\treturn 0;\n\t}\n\t_setVelocityFromOvershoot(scrollValue, axis, orientation) {\n\t\tconst overshootValue = this._toOvershoot(scrollValue, orientation);\n\t\tconst overshootPixels = overshootValue * this._getMaxOffset(orientation) * this._getSign(orientation);\n\t\tif (Math.abs(overshootPixels) > 0) {\n\t\t\tthis._velocity[axis] = -overshootPixels / (this.bounceAmount * 50 + 1);\n\t\t}\n\t}\n\t_setVelocityFromContentPositionDelta(position) {\n\t\tif (this._prevContentDragPosition) {\n\t\t\tthis._velocity.sub2(position, this._prevContentDragPosition);\n\t\t\tthis._prevContentDragPosition.copy(position);\n\t\t} else {\n\t\t\tthis._velocity.set(0, 0, 0);\n\t\t\tthis._prevContentDragPosition = position.clone();\n\t\t}\n\t}\n\t_setScrollFromContentPosition(position) {\n\t\tlet scrollValue = this._contentPositionToScrollValue(position);\n\t\tif (this._isDragging()) {\n\t\t\tscrollValue = this._applyScrollValueTension(scrollValue);\n\t\t}\n\t\tthis._onSetScroll(scrollValue.x, scrollValue.y, false);\n\t}\n\t_applyScrollValueTension(scrollValue) {\n\t\tconst factor = 1;\n\t\tlet max = this._getMaxScrollValue(ORIENTATION_HORIZONTAL);\n\t\tlet overshoot = this._toOvershoot(scrollValue.x, ORIENTATION_HORIZONTAL);\n\t\tif (overshoot > 0) {\n\t\t\tscrollValue.x = max + factor * Math.log10(1 + overshoot);\n\t\t} else if (overshoot < 0) {\n\t\t\tscrollValue.x = -factor * Math.log10(1 - overshoot);\n\t\t}\n\t\tmax = this._getMaxScrollValue(ORIENTATION_VERTICAL);\n\t\tovershoot = this._toOvershoot(scrollValue.y, ORIENTATION_VERTICAL);\n\t\tif (overshoot > 0) {\n\t\t\tscrollValue.y = max + factor * Math.log10(1 + overshoot);\n\t\t} else if (overshoot < 0) {\n\t\t\tscrollValue.y = -factor * Math.log10(1 - overshoot);\n\t\t}\n\t\treturn scrollValue;\n\t}\n\t_isDragging() {\n\t\treturn this._contentDragHelper && this._contentDragHelper.isDragging;\n\t}\n\t_setScrollbarComponentsEnabled(enabled) {\n\t\tvar _this$_horizontalScro2, _this$_verticalScroll2;\n\t\tif ((_this$_horizontalScro2 = this._horizontalScrollbarEntity) != null && _this$_horizontalScro2.scrollbar) {\n\t\t\tthis._horizontalScrollbarEntity.scrollbar.enabled = enabled;\n\t\t}\n\t\tif ((_this$_verticalScroll2 = this._verticalScrollbarEntity) != null && _this$_verticalScroll2.scrollbar) {\n\t\t\tthis._verticalScrollbarEntity.scrollbar.enabled = enabled;\n\t\t}\n\t}\n\t_setContentDraggingEnabled(enabled) {\n\t\tif (this._contentDragHelper) {\n\t\t\tthis._contentDragHelper.enabled = enabled;\n\t\t}\n\t}\n\t_onMouseWheel(event) {\n\t\tvar _this$_contentEntity2;\n\t\tif (!this.useMouseWheel || !((_this$_contentEntity2 = this._contentEntity) != null && _this$_contentEntity2.element)) {\n\t\t\treturn;\n\t\t}\n\t\tconst wheelEvent = event.event;\n\t\tconst normalizedDeltaX = wheelEvent.deltaX / this._contentEntity.element.calculatedWidth * this.mouseWheelSensitivity.x;\n\t\tconst normalizedDeltaY = wheelEvent.deltaY / this._contentEntity.element.calculatedHeight * this.mouseWheelSensitivity.y;\n\t\tconst scrollX = math.clamp(this._scroll.x + normalizedDeltaX, 0, this._getMaxScrollValue(ORIENTATION_HORIZONTAL));\n\t\tconst scrollY = math.clamp(this._scroll.y + normalizedDeltaY, 0, this._getMaxScrollValue(ORIENTATION_VERTICAL));\n\t\tthis.scroll = new Vec2(scrollX, scrollY);\n\t}\n\t_enableContentInput() {\n\t\twhile (this._disabledContentInputEntities.length) {\n\t\t\tconst e = this._disabledContentInputEntities.pop();\n\t\t\tif (e.element) {\n\t\t\t\te.element.useInput = true;\n\t\t\t}\n\t\t}\n\t\tthis._disabledContentInput = false;\n\t}\n\t_disableContentInput() {\n\t\tconst _disableInput = e => {\n\t\t\tif (e.element && e.element.useInput) {\n\t\t\t\tthis._disabledContentInputEntities.push(e);\n\t\t\t\te.element.useInput = false;\n\t\t\t}\n\t\t\tconst children = e.children;\n\t\t\tfor (let i = 0, l = children.length; i < l; i++) {\n\t\t\t\t_disableInput(children[i]);\n\t\t\t}\n\t\t};\n\t\tif (this._contentEntity) {\n\t\t\tconst children = this._contentEntity.children;\n\t\t\tfor (let i = 0, l = children.length; i < l; i++) {\n\t\t\t\t_disableInput(children[i]);\n\t\t\t}\n\t\t}\n\t\tthis._disabledContentInput = true;\n\t}\n\tonEnable() {\n\t\tthis._setScrollbarComponentsEnabled(true);\n\t\tthis._setContentDraggingEnabled(true);\n\t\tthis._syncAll();\n\t}\n\tonDisable() {\n\t\tthis._setScrollbarComponentsEnabled(false);\n\t\tthis._setContentDraggingEnabled(false);\n\t}\n\tonRemove() {\n\t\tthis._toggleLifecycleListeners('off');\n\t\tthis._toggleElementListeners('off');\n\t\tthis._destroyDragHelper();\n\t}\n\tresolveDuplicatedEntityReferenceProperties(oldScrollView, duplicatedIdsMap) {\n\t\tif (oldScrollView.viewportEntity) {\n\t\t\tthis.viewportEntity = duplicatedIdsMap[oldScrollView.viewportEntity.getGuid()];\n\t\t}\n\t\tif (oldScrollView.contentEntity) {\n\t\t\tthis.contentEntity = duplicatedIdsMap[oldScrollView.contentEntity.getGuid()];\n\t\t}\n\t\tif (oldScrollView.horizontalScrollbarEntity) {\n\t\t\tthis.horizontalScrollbarEntity = duplicatedIdsMap[oldScrollView.horizontalScrollbarEntity.getGuid()];\n\t\t}\n\t\tif (oldScrollView.verticalScrollbarEntity) {\n\t\t\tthis.verticalScrollbarEntity = duplicatedIdsMap[oldScrollView.verticalScrollbarEntity.getGuid()];\n\t\t}\n\t}\n}\nScrollViewComponent.EVENT_SETSCROLL = 'set:scroll';\n\nconst DEFAULT_DRAG_THRESHOLD$1 = 10;\nclass ScrollViewComponentData {\n\tconstructor() {\n\t\tthis.enabled = true;\n\t\tthis.horizontal = void 0;\n\t\tthis.vertical = void 0;\n\t\tthis.scrollMode = void 0;\n\t\tthis.bounceAmount = void 0;\n\t\tthis.friction = void 0;\n\t\tthis.dragThreshold = DEFAULT_DRAG_THRESHOLD$1;\n\t\tthis.useMouseWheel = true;\n\t\tthis.mouseWheelSensitivity = new Vec2(1, 1);\n\t\tthis.horizontalScrollbarVisibility = 0;\n\t\tthis.verticalScrollbarVisibility = 0;\n\t\tthis.viewportEntity = null;\n\t\tthis.contentEntity = null;\n\t\tthis.horizontalScrollbarEntity = null;\n\t\tthis.verticalScrollbarEntity = null;\n\t}\n}\n\nconst _schema$6 = [{\n\tname: 'enabled',\n\ttype: 'boolean'\n}, {\n\tname: 'horizontal',\n\ttype: 'boolean'\n}, {\n\tname: 'vertical',\n\ttype: 'boolean'\n}, {\n\tname: 'scrollMode',\n\ttype: 'number'\n}, {\n\tname: 'bounceAmount',\n\ttype: 'number'\n}, {\n\tname: 'friction',\n\ttype: 'number'\n}, {\n\tname: 'dragThreshold',\n\ttype: 'number'\n}, {\n\tname: 'useMouseWheel',\n\ttype: 'boolean'\n}, {\n\tname: 'mouseWheelSensitivity',\n\ttype: 'vec2'\n}, {\n\tname: 'horizontalScrollbarVisibility',\n\ttype: 'number'\n}, {\n\tname: 'verticalScrollbarVisibility',\n\ttype: 'number'\n}];\nconst DEFAULT_DRAG_THRESHOLD = 10;\nclass ScrollViewComponentSystem extends ComponentSystem {\n\tconstructor(app) {\n\t\tsuper(app);\n\t\tthis.id = 'scrollview';\n\t\tthis.ComponentType = ScrollViewComponent;\n\t\tthis.DataType = ScrollViewComponentData;\n\t\tthis.schema = _schema$6;\n\t\tthis.on('beforeremove', this._onRemoveComponent, this);\n\t\tthis.app.systems.on('update', this.onUpdate, this);\n\t}\n\tinitializeComponentData(component, data, properties) {\n\t\tif (data.dragThreshold === undefined) {\n\t\t\tdata.dragThreshold = DEFAULT_DRAG_THRESHOLD;\n\t\t}\n\t\tif (data.useMouseWheel === undefined) {\n\t\t\tdata.useMouseWheel = true;\n\t\t}\n\t\tif (data.mouseWheelSensitivity === undefined) {\n\t\t\tdata.mouseWheelSensitivity = new Vec2(1, 1);\n\t\t}\n\t\tsuper.initializeComponentData(component, data, _schema$6);\n\t\tcomponent.viewportEntity = data.viewportEntity;\n\t\tcomponent.contentEntity = data.contentEntity;\n\t\tcomponent.horizontalScrollbarEntity = data.horizontalScrollbarEntity;\n\t\tcomponent.verticalScrollbarEntity = data.verticalScrollbarEntity;\n\t}\n\tonUpdate(dt) {\n\t\tconst components = this.store;\n\t\tfor (const id in components) {\n\t\t\tconst entity = components[id].entity;\n\t\t\tconst component = entity.scrollview;\n\t\t\tif (component.enabled && entity.enabled) {\n\t\t\t\tcomponent.onUpdate();\n\t\t\t}\n\t\t}\n\t}\n\t_onRemoveComponent(entity, component) {\n\t\tcomponent.onRemove();\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.app.systems.off('update', this.onUpdate, this);\n\t}\n}\n\nclass ScrollbarComponent extends Component {\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis._handleEntity = null;\n\t\tthis._evtHandleEntityElementAdd = null;\n\t\tthis._evtHandleEntityChanges = [];\n\t\tthis._toggleLifecycleListeners('on');\n\t}\n\tget data() {\n\t\tconst record = this.system.store[this.entity.getGuid()];\n\t\treturn record ? record.data : null;\n\t}\n\tset enabled(arg) {\n\t\tthis._setValue('enabled', arg);\n\t}\n\tget enabled() {\n\t\treturn this.data.enabled;\n\t}\n\tset orientation(arg) {\n\t\tthis._setValue('orientation', arg);\n\t}\n\tget orientation() {\n\t\treturn this.data.orientation;\n\t}\n\tset value(arg) {\n\t\tthis._setValue('value', arg);\n\t}\n\tget value() {\n\t\treturn this.data.value;\n\t}\n\tset handleSize(arg) {\n\t\tthis._setValue('handleSize', arg);\n\t}\n\tget handleSize() {\n\t\treturn this.data.handleSize;\n\t}\n\tset handleEntity(arg) {\n\t\tif (this._handleEntity === arg) {\n\t\t\treturn;\n\t\t}\n\t\tconst isString = typeof arg === 'string';\n\t\tif (this._handleEntity && isString && this._handleEntity.getGuid() === arg) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._handleEntity) {\n\t\t\tthis._handleEntityUnsubscribe();\n\t\t}\n\t\tif (arg instanceof GraphNode) {\n\t\t\tthis._handleEntity = arg;\n\t\t} else if (isString) {\n\t\t\tthis._handleEntity = this.system.app.getEntityFromIndex(arg) || null;\n\t\t} else {\n\t\t\tthis._handleEntity = null;\n\t\t}\n\t\tif (this._handleEntity) {\n\t\t\tthis._handleEntitySubscribe();\n\t\t}\n\t\tif (this._handleEntity) {\n\t\t\tthis.data.handleEntity = this._handleEntity.getGuid();\n\t\t} else if (isString && arg) {\n\t\t\tthis.data.handleEntity = arg;\n\t\t}\n\t}\n\tget handleEntity() {\n\t\treturn this._handleEntity;\n\t}\n\t_setValue(name, value) {\n\t\tconst data = this.data;\n\t\tconst oldValue = data[name];\n\t\tdata[name] = value;\n\t\tthis.fire('set', name, oldValue, value);\n\t}\n\t_toggleLifecycleListeners(onOrOff) {\n\t\tthis[onOrOff]('set_value', this._onSetValue, this);\n\t\tthis[onOrOff]('set_handleSize', this._onSetHandleSize, this);\n\t\tthis[onOrOff]('set_orientation', this._onSetOrientation, this);\n\t}\n\t_handleEntitySubscribe() {\n\t\tthis._evtHandleEntityElementAdd = this._handleEntity.on('element:add', this._onHandleElementGain, this);\n\t\tif (this._handleEntity.element) {\n\t\t\tthis._onHandleElementGain();\n\t\t}\n\t}\n\t_handleEntityUnsubscribe() {\n\t\tvar _this$_evtHandleEntit, _this$_handleEntity;\n\t\t(_this$_evtHandleEntit = this._evtHandleEntityElementAdd) == null || _this$_evtHandleEntit.off();\n\t\tthis._evtHandleEntityElementAdd = null;\n\t\tif ((_this$_handleEntity = this._handleEntity) != null && _this$_handleEntity.element) {\n\t\t\tthis._onHandleElementLose();\n\t\t}\n\t}\n\t_handleEntityElementSubscribe() {\n\t\tconst element = this._handleEntity.element;\n\t\tconst handles = this._evtHandleEntityChanges;\n\t\thandles.push(element.once('beforeremove', this._onHandleElementLose, this));\n\t\thandles.push(element.on('set:anchor', this._onSetHandleAlignment, this));\n\t\thandles.push(element.on('set:margin', this._onSetHandleAlignment, this));\n\t\thandles.push(element.on('set:pivot', this._onSetHandleAlignment, this));\n\t}\n\t_handleEntityElementUnsubscribe() {\n\t\tfor (let i = 0; i < this._evtHandleEntityChanges.length; i++) {\n\t\t\tthis._evtHandleEntityChanges[i].off();\n\t\t}\n\t\tthis._evtHandleEntityChanges.length = 0;\n\t}\n\t_onHandleElementGain() {\n\t\tthis._handleEntityElementSubscribe();\n\t\tthis._destroyDragHelper();\n\t\tthis._handleDragHelper = new ElementDragHelper(this._handleEntity.element, this._getAxis());\n\t\tthis._handleDragHelper.on('drag:move', this._onHandleDrag, this);\n\t\tthis._updateHandlePositionAndSize();\n\t}\n\t_onHandleElementLose() {\n\t\tthis._handleEntityElementUnsubscribe();\n\t\tthis._destroyDragHelper();\n\t}\n\t_onHandleDrag(position) {\n\t\tif (this._handleEntity && this.enabled && this.entity.enabled) {\n\t\t\tthis.value = this._handlePositionToScrollValue(position[this._getAxis()]);\n\t\t}\n\t}\n\t_onSetValue(name, oldValue, newValue) {\n\t\tif (Math.abs(newValue - oldValue) > 1e-5) {\n\t\t\tthis.data.value = math.clamp(newValue, 0, 1);\n\t\t\tthis._updateHandlePositionAndSize();\n\t\t\tthis.fire('set:value', this.data.value);\n\t\t}\n\t}\n\t_onSetHandleSize(name, oldValue, newValue) {\n\t\tif (Math.abs(newValue - oldValue) > 1e-5) {\n\t\t\tthis.data.handleSize = math.clamp(newValue, 0, 1);\n\t\t\tthis._updateHandlePositionAndSize();\n\t\t}\n\t}\n\t_onSetHandleAlignment() {\n\t\tthis._updateHandlePositionAndSize();\n\t}\n\t_onSetOrientation(name, oldValue, newValue) {\n\t\tvar _this$_handleEntity2;\n\t\tif (newValue !== oldValue && (_this$_handleEntity2 = this._handleEntity) != null && _this$_handleEntity2.element) {\n\t\t\tthis._handleEntity.element[this._getOppositeDimension()] = 0;\n\t\t}\n\t}\n\t_updateHandlePositionAndSize() {\n\t\tconst handleEntity = this._handleEntity;\n\t\tconst handleElement = handleEntity == null ? void 0 : handleEntity.element;\n\t\tif (handleEntity) {\n\t\t\tconst position = handleEntity.getLocalPosition();\n\t\t\tposition[this._getAxis()] = this._getHandlePosition();\n\t\t\thandleEntity.setLocalPosition(position);\n\t\t}\n\t\tif (handleElement) {\n\t\t\thandleElement[this._getDimension()] = this._getHandleLength();\n\t\t}\n\t}\n\t_handlePositionToScrollValue(handlePosition) {\n\t\treturn handlePosition * this._getSign() / this._getUsableTrackLength();\n\t}\n\t_scrollValueToHandlePosition(value) {\n\t\treturn value * this._getSign() * this._getUsableTrackLength();\n\t}\n\t_getUsableTrackLength() {\n\t\treturn Math.max(this._getTrackLength() - this._getHandleLength(), 0.001);\n\t}\n\t_getTrackLength() {\n\t\tif (this.entity.element) {\n\t\t\treturn this.orientation === ORIENTATION_HORIZONTAL ? this.entity.element.calculatedWidth : this.entity.element.calculatedHeight;\n\t\t}\n\t\treturn 0;\n\t}\n\t_getHandleLength() {\n\t\treturn this._getTrackLength() * this.handleSize;\n\t}\n\t_getHandlePosition() {\n\t\treturn this._scrollValueToHandlePosition(this.value);\n\t}\n\t_getSign() {\n\t\treturn this.orientation === ORIENTATION_HORIZONTAL ? 1 : -1;\n\t}\n\t_getAxis() {\n\t\treturn this.orientation === ORIENTATION_HORIZONTAL ? 'x' : 'y';\n\t}\n\t_getDimension() {\n\t\treturn this.orientation === ORIENTATION_HORIZONTAL ? 'width' : 'height';\n\t}\n\t_getOppositeDimension() {\n\t\treturn this.orientation === ORIENTATION_HORIZONTAL ? 'height' : 'width';\n\t}\n\t_destroyDragHelper() {\n\t\tif (this._handleDragHelper) {\n\t\t\tthis._handleDragHelper.destroy();\n\t\t}\n\t}\n\t_setHandleDraggingEnabled(enabled) {\n\t\tif (this._handleDragHelper) {\n\t\t\tthis._handleDragHelper.enabled = enabled;\n\t\t}\n\t}\n\tonEnable() {\n\t\tthis._setHandleDraggingEnabled(true);\n\t}\n\tonDisable() {\n\t\tthis._setHandleDraggingEnabled(false);\n\t}\n\tonRemove() {\n\t\tthis._destroyDragHelper();\n\t\tthis._toggleLifecycleListeners('off');\n\t}\n\tresolveDuplicatedEntityReferenceProperties(oldScrollbar, duplicatedIdsMap) {\n\t\tif (oldScrollbar.handleEntity) {\n\t\t\tthis.handleEntity = duplicatedIdsMap[oldScrollbar.handleEntity.getGuid()];\n\t\t}\n\t}\n}\nScrollbarComponent.EVENT_SETVALUE = 'set:value';\n\nclass ScrollbarComponentData {\n\tconstructor() {\n\t\tthis.enabled = true;\n\t\tthis.orientation = ORIENTATION_HORIZONTAL;\n\t\tthis.value = 0;\n\t\tthis.handleSize = 0;\n\t\tthis.handleEntity = null;\n\t}\n}\n\nconst _schema$5 = [{\n\tname: 'enabled',\n\ttype: 'boolean'\n}, {\n\tname: 'orientation',\n\ttype: 'number'\n}, {\n\tname: 'value',\n\ttype: 'number'\n}, {\n\tname: 'handleSize',\n\ttype: 'number'\n}];\nclass ScrollbarComponentSystem extends ComponentSystem {\n\tconstructor(app) {\n\t\tsuper(app);\n\t\tthis.id = 'scrollbar';\n\t\tthis.ComponentType = ScrollbarComponent;\n\t\tthis.DataType = ScrollbarComponentData;\n\t\tthis.schema = _schema$5;\n\t\tthis.on('add', this._onAddComponent, this);\n\t\tthis.on('beforeremove', this._onRemoveComponent, this);\n\t}\n\tinitializeComponentData(component, data, properties) {\n\t\tsuper.initializeComponentData(component, data, _schema$5);\n\t\tcomponent.handleEntity = data.handleEntity;\n\t}\n\t_onAddComponent(entity) {\n\t\tentity.fire('scrollbar:add');\n\t}\n\t_onRemoveComponent(entity, component) {\n\t\tcomponent.onRemove();\n\t}\n}\n\nconst instanceOptions = {\n\tvolume: 0,\n\tpitch: 0,\n\tloop: false,\n\tstartTime: 0,\n\tduration: 0,\n\tposition: new Vec3(),\n\tmaxDistance: 0,\n\trefDistance: 0,\n\trollOffFactor: 0,\n\tdistanceModel: 0,\n\tonPlay: null,\n\tonPause: null,\n\tonResume: null,\n\tonStop: null,\n\tonEnd: null\n};\nclass SoundSlot extends EventHandler {\n\tconstructor(component, name = 'Untitled', options = {}) {\n\t\tsuper();\n\t\tthis.name = void 0;\n\t\tthis.instances = [];\n\t\tthis._component = component;\n\t\tthis._assets = component.system.app.assets;\n\t\tthis._manager = component.system.manager;\n\t\tthis.name = name;\n\t\tthis._volume = options.volume !== undefined ? math.clamp(Number(options.volume) || 0, 0, 1) : 1;\n\t\tthis._pitch = options.pitch !== undefined ? Math.max(0.01, Number(options.pitch) || 0) : 1;\n\t\tthis._loop = !!(options.loop !== undefined ? options.loop : false);\n\t\tthis._duration = options.duration > 0 ? options.duration : null;\n\t\tthis._startTime = Math.max(0, Number(options.startTime) || 0);\n\t\tthis._overlap = !!options.overlap;\n\t\tthis._autoPlay = !!options.autoPlay;\n\t\tthis._firstNode = null;\n\t\tthis._lastNode = null;\n\t\tthis._asset = options.asset;\n\t\tif (this._asset instanceof Asset) {\n\t\t\tthis._asset = this._asset.id;\n\t\t}\n\t\tthis._onInstancePlayHandler = this._onInstancePlay.bind(this);\n\t\tthis._onInstancePauseHandler = this._onInstancePause.bind(this);\n\t\tthis._onInstanceResumeHandler = this._onInstanceResume.bind(this);\n\t\tthis._onInstanceStopHandler = this._onInstanceStop.bind(this);\n\t\tthis._onInstanceEndHandler = this._onInstanceEnd.bind(this);\n\t}\n\tplay() {\n\t\tif (!this.overlap) {\n\t\t\tthis.stop();\n\t\t}\n\t\tif (!this.isLoaded && !this._hasAsset()) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst instance = this._createInstance();\n\t\tthis.instances.push(instance);\n\t\tif (!this.isLoaded) {\n\t\t\tconst onLoad = function onLoad(sound) {\n\t\t\t\tconst playWhenLoaded = instance._playWhenLoaded;\n\t\t\t\tinstance.sound = sound;\n\t\t\t\tif (playWhenLoaded) {\n\t\t\t\t\tinstance.play();\n\t\t\t\t}\n\t\t\t};\n\t\t\tthis.off('load', onLoad);\n\t\t\tthis.once('load', onLoad);\n\t\t\tthis.load();\n\t\t} else {\n\t\t\tinstance.play();\n\t\t}\n\t\treturn instance;\n\t}\n\tpause() {\n\t\tlet paused = false;\n\t\tconst instances = this.instances;\n\t\tfor (let i = 0, len = instances.length; i < len; i++) {\n\t\t\tif (instances[i].pause()) {\n\t\t\t\tpaused = true;\n\t\t\t}\n\t\t}\n\t\treturn paused;\n\t}\n\tresume() {\n\t\tlet resumed = false;\n\t\tconst instances = this.instances;\n\t\tfor (let i = 0, len = instances.length; i < len; i++) {\n\t\t\tif (instances[i].resume()) {\n\t\t\t\tresumed = true;\n\t\t\t}\n\t\t}\n\t\treturn resumed;\n\t}\n\tstop() {\n\t\tlet stopped = false;\n\t\tconst instances = this.instances;\n\t\tlet i = instances.length;\n\t\twhile (i--) {\n\t\t\tinstances[i].stop();\n\t\t\tstopped = true;\n\t\t}\n\t\tinstances.length = 0;\n\t\treturn stopped;\n\t}\n\tload() {\n\t\tif (!this._hasAsset()) {\n\t\t\treturn;\n\t\t}\n\t\tconst asset = this._assets.get(this._asset);\n\t\tif (!asset) {\n\t\t\tthis._assets.off(`add:${this._asset}`, this._onAssetAdd, this);\n\t\t\tthis._assets.once(`add:${this._asset}`, this._onAssetAdd, this);\n\t\t\treturn;\n\t\t}\n\t\tasset.off('remove', this._onAssetRemoved, this);\n\t\tasset.on('remove', this._onAssetRemoved, this);\n\t\tif (!asset.resource) {\n\t\t\tasset.off('load', this._onAssetLoad, this);\n\t\t\tasset.once('load', this._onAssetLoad, this);\n\t\t\tthis._assets.load(asset);\n\t\t\treturn;\n\t\t}\n\t\tthis.fire('load', asset.resource);\n\t}\n\tsetExternalNodes(firstNode, lastNode) {\n\t\tif (!firstNode) {\n\t\t\tconsole.error('The firstNode must have a valid AudioNode');\n\t\t\treturn;\n\t\t}\n\t\tif (!lastNode) {\n\t\t\tlastNode = firstNode;\n\t\t}\n\t\tthis._firstNode = firstNode;\n\t\tthis._lastNode = lastNode;\n\t\tif (!this._overlap) {\n\t\t\tconst instances = this.instances;\n\t\t\tfor (let i = 0, len = instances.length; i < len; i++) {\n\t\t\t\tinstances[i].setExternalNodes(firstNode, lastNode);\n\t\t\t}\n\t\t}\n\t}\n\tclearExternalNodes() {\n\t\tthis._firstNode = null;\n\t\tthis._lastNode = null;\n\t\tif (!this._overlap) {\n\t\t\tconst instances = this.instances;\n\t\t\tfor (let i = 0, len = instances.length; i < len; i++) {\n\t\t\t\tinstances[i].clearExternalNodes();\n\t\t\t}\n\t\t}\n\t}\n\tgetExternalNodes() {\n\t\treturn [this._firstNode, this._lastNode];\n\t}\n\t_hasAsset() {\n\t\treturn this._asset != null;\n\t}\n\t_createInstance() {\n\t\tlet instance = null;\n\t\tconst component = this._component;\n\t\tlet sound = null;\n\t\tif (this._hasAsset()) {\n\t\t\tconst asset = this._assets.get(this._asset);\n\t\t\tif (asset) {\n\t\t\t\tsound = asset.resource;\n\t\t\t}\n\t\t}\n\t\tconst data = instanceOptions;\n\t\tdata.volume = this._volume * component.volume;\n\t\tdata.pitch = this._pitch * component.pitch;\n\t\tdata.loop = this._loop;\n\t\tdata.startTime = this._startTime;\n\t\tdata.duration = this._duration;\n\t\tdata.onPlay = this._onInstancePlayHandler;\n\t\tdata.onPause = this._onInstancePauseHandler;\n\t\tdata.onResume = this._onInstanceResumeHandler;\n\t\tdata.onStop = this._onInstanceStopHandler;\n\t\tdata.onEnd = this._onInstanceEndHandler;\n\t\tif (component.positional) {\n\t\t\tdata.position.copy(component.entity.getPosition());\n\t\t\tdata.maxDistance = component.maxDistance;\n\t\t\tdata.refDistance = component.refDistance;\n\t\t\tdata.rollOffFactor = component.rollOffFactor;\n\t\t\tdata.distanceModel = component.distanceModel;\n\t\t\tinstance = new SoundInstance3d(this._manager, sound, data);\n\t\t} else {\n\t\t\tinstance = new SoundInstance(this._manager, sound, data);\n\t\t}\n\t\tif (this._firstNode) {\n\t\t\tinstance.setExternalNodes(this._firstNode, this._lastNode);\n\t\t}\n\t\treturn instance;\n\t}\n\t_onInstancePlay(instance) {\n\t\tthis.fire('play', instance);\n\t\tthis._component.fire('play', this, instance);\n\t}\n\t_onInstancePause(instance) {\n\t\tthis.fire('pause', instance);\n\t\tthis._component.fire('pause', this, instance);\n\t}\n\t_onInstanceResume(instance) {\n\t\tthis.fire('resume', instance);\n\t\tthis._component.fire('resume', this, instance);\n\t}\n\t_onInstanceStop(instance) {\n\t\tconst idx = this.instances.indexOf(instance);\n\t\tif (idx !== -1) {\n\t\t\tthis.instances.splice(idx, 1);\n\t\t}\n\t\tthis.fire('stop', instance);\n\t\tthis._component.fire('stop', this, instance);\n\t}\n\t_onInstanceEnd(instance) {\n\t\tconst idx = this.instances.indexOf(instance);\n\t\tif (idx !== -1) {\n\t\t\tthis.instances.splice(idx, 1);\n\t\t}\n\t\tthis.fire('end', instance);\n\t\tthis._component.fire('end', this, instance);\n\t}\n\t_onAssetAdd(asset) {\n\t\tthis.load();\n\t}\n\t_onAssetLoad(asset) {\n\t\tthis.load();\n\t}\n\t_onAssetRemoved(asset) {\n\t\tasset.off('remove', this._onAssetRemoved, this);\n\t\tthis._assets.off(`add:${asset.id}`, this._onAssetAdd, this);\n\t\tthis.stop();\n\t}\n\tupdatePosition(position) {\n\t\tconst instances = this.instances;\n\t\tfor (let i = 0, len = instances.length; i < len; i++) {\n\t\t\tinstances[i].position = position;\n\t\t}\n\t}\n\tset asset(value) {\n\t\tconst old = this._asset;\n\t\tif (old) {\n\t\t\tthis._assets.off(`add:${old}`, this._onAssetAdd, this);\n\t\t\tconst oldAsset = this._assets.get(old);\n\t\t\tif (oldAsset) {\n\t\t\t\toldAsset.off('remove', this._onAssetRemoved, this);\n\t\t\t}\n\t\t}\n\t\tthis._asset = value;\n\t\tif (this._asset instanceof Asset) {\n\t\t\tthis._asset = this._asset.id;\n\t\t}\n\t\tif (this._hasAsset() && this._component.enabled && this._component.entity.enabled) {\n\t\t\tthis.load();\n\t\t}\n\t}\n\tget asset() {\n\t\treturn this._asset;\n\t}\n\tset autoPlay(value) {\n\t\tthis._autoPlay = !!value;\n\t}\n\tget autoPlay() {\n\t\treturn this._autoPlay;\n\t}\n\tset duration(value) {\n\t\tthis._duration = Math.max(0, Number(value) || 0) || null;\n\t\tif (!this._overlap) {\n\t\t\tconst instances = this.instances;\n\t\t\tfor (let i = 0, len = instances.length; i < len; i++) {\n\t\t\t\tinstances[i].duration = this._duration;\n\t\t\t}\n\t\t}\n\t}\n\tget duration() {\n\t\tlet assetDuration = 0;\n\t\tif (this._hasAsset()) {\n\t\t\tconst asset = this._assets.get(this._asset);\n\t\t\tassetDuration = asset != null && asset.resource ? asset.resource.duration : 0;\n\t\t}\n\t\tif (this._duration != null) {\n\t\t\treturn this._duration % (assetDuration || 1);\n\t\t}\n\t\treturn assetDuration;\n\t}\n\tget isLoaded() {\n\t\tif (this._hasAsset()) {\n\t\t\tconst asset = this._assets.get(this._asset);\n\t\t\tif (asset) {\n\t\t\t\treturn !!asset.resource;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\tget isPaused() {\n\t\tconst instances = this.instances;\n\t\tconst len = instances.length;\n\t\tif (len === 0) {\n\t\t\treturn false;\n\t\t}\n\t\tfor (let i = 0; i < len; i++) {\n\t\t\tif (!instances[i].isPaused) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\tget isPlaying() {\n\t\tconst instances = this.instances;\n\t\tfor (let i = 0, len = instances.length; i < len; i++) {\n\t\t\tif (instances[i].isPlaying) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\tget isStopped() {\n\t\tconst instances = this.instances;\n\t\tfor (let i = 0, len = instances.length; i < len; i++) {\n\t\t\tif (!instances[i].isStopped) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\tset loop(value) {\n\t\tthis._loop = !!value;\n\t\tconst instances = this.instances;\n\t\tfor (let i = 0, len = instances.length; i < len; i++) {\n\t\t\tinstances[i].loop = this._loop;\n\t\t}\n\t}\n\tget loop() {\n\t\treturn this._loop;\n\t}\n\tset overlap(value) {\n\t\tthis._overlap = !!value;\n\t}\n\tget overlap() {\n\t\treturn this._overlap;\n\t}\n\tset pitch(value) {\n\t\tthis._pitch = Math.max(Number(value) || 0, 0.01);\n\t\tif (!this._overlap) {\n\t\t\tconst instances = this.instances;\n\t\t\tfor (let i = 0, len = instances.length; i < len; i++) {\n\t\t\t\tinstances[i].pitch = this.pitch * this._component.pitch;\n\t\t\t}\n\t\t}\n\t}\n\tget pitch() {\n\t\treturn this._pitch;\n\t}\n\tset startTime(value) {\n\t\tthis._startTime = Math.max(0, Number(value) || 0);\n\t\tif (!this._overlap) {\n\t\t\tconst instances = this.instances;\n\t\t\tfor (let i = 0, len = instances.length; i < len; i++) {\n\t\t\t\tinstances[i].startTime = this._startTime;\n\t\t\t}\n\t\t}\n\t}\n\tget startTime() {\n\t\treturn this._startTime;\n\t}\n\tset volume(value) {\n\t\tthis._volume = math.clamp(Number(value) || 0, 0, 1);\n\t\tif (!this._overlap) {\n\t\t\tconst instances = this.instances;\n\t\t\tfor (let i = 0, len = instances.length; i < len; i++) {\n\t\t\t\tinstances[i].volume = this._volume * this._component.volume;\n\t\t\t}\n\t\t}\n\t}\n\tget volume() {\n\t\treturn this._volume;\n\t}\n}\nSoundSlot.EVENT_PLAY = 'play';\nSoundSlot.EVENT_PAUSE = 'pause';\nSoundSlot.EVENT_RESUME = 'resume';\nSoundSlot.EVENT_STOP = 'stop';\nSoundSlot.EVENT_LOAD = 'load';\n\nclass SoundComponent extends Component {\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis._volume = 1;\n\t\tthis._pitch = 1;\n\t\tthis._positional = true;\n\t\tthis._refDistance = 1;\n\t\tthis._maxDistance = 10000;\n\t\tthis._rollOffFactor = 1;\n\t\tthis._distanceModel = DISTANCE_LINEAR;\n\t\tthis._slots = {};\n\t\tthis._playingBeforeDisable = {};\n\t}\n\t_updateSoundInstances(property, value, isFactor) {\n\t\tconst slots = this._slots;\n\t\tfor (const key in slots) {\n\t\t\tconst slot = slots[key];\n\t\t\tif (!slot.overlap) {\n\t\t\t\tconst instances = slot.instances;\n\t\t\t\tfor (let i = 0, len = instances.length; i < len; i++) {\n\t\t\t\t\tinstances[i][property] = isFactor ? slot[property] * value : value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tset distanceModel(value) {\n\t\tthis._distanceModel = value;\n\t\tthis._updateSoundInstances('distanceModel', value, false);\n\t}\n\tget distanceModel() {\n\t\treturn this._distanceModel;\n\t}\n\tset maxDistance(value) {\n\t\tthis._maxDistance = value;\n\t\tthis._updateSoundInstances('maxDistance', value, false);\n\t}\n\tget maxDistance() {\n\t\treturn this._maxDistance;\n\t}\n\tset refDistance(value) {\n\t\tthis._refDistance = value;\n\t\tthis._updateSoundInstances('refDistance', value, false);\n\t}\n\tget refDistance() {\n\t\treturn this._refDistance;\n\t}\n\tset rollOffFactor(value) {\n\t\tthis._rollOffFactor = value;\n\t\tthis._updateSoundInstances('rollOffFactor', value, false);\n\t}\n\tget rollOffFactor() {\n\t\treturn this._rollOffFactor;\n\t}\n\tset pitch(value) {\n\t\tthis._pitch = value;\n\t\tthis._updateSoundInstances('pitch', value, true);\n\t}\n\tget pitch() {\n\t\treturn this._pitch;\n\t}\n\tset volume(value) {\n\t\tthis._volume = value;\n\t\tthis._updateSoundInstances('volume', value, true);\n\t}\n\tget volume() {\n\t\treturn this._volume;\n\t}\n\tset positional(newValue) {\n\t\tthis._positional = newValue;\n\t\tconst slots = this._slots;\n\t\tfor (const key in slots) {\n\t\t\tconst slot = slots[key];\n\t\t\tif (!slot.overlap) {\n\t\t\t\tconst instances = slot.instances;\n\t\t\t\tconst oldLength = instances.length;\n\t\t\t\tfor (let i = oldLength - 1; i >= 0; i--) {\n\t\t\t\t\tconst isPlaying = instances[i].isPlaying || instances[i].isSuspended;\n\t\t\t\t\tconst currentTime = instances[i].currentTime;\n\t\t\t\t\tif (isPlaying) {\n\t\t\t\t\t\tinstances[i].stop();\n\t\t\t\t\t}\n\t\t\t\t\tconst instance = slot._createInstance();\n\t\t\t\t\tif (isPlaying) {\n\t\t\t\t\t\tinstance.play();\n\t\t\t\t\t\tinstance.currentTime = currentTime;\n\t\t\t\t\t}\n\t\t\t\t\tinstances.push(instance);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget positional() {\n\t\treturn this._positional;\n\t}\n\tset slots(newValue) {\n\t\tconst oldValue = this._slots;\n\t\tif (oldValue) {\n\t\t\tfor (const key in oldValue) {\n\t\t\t\toldValue[key].stop();\n\t\t\t}\n\t\t}\n\t\tconst slots = {};\n\t\tfor (const key in newValue) {\n\t\t\tif (!(newValue[key] instanceof SoundSlot)) {\n\t\t\t\tif (newValue[key].name) {\n\t\t\t\t\tslots[newValue[key].name] = new SoundSlot(this, newValue[key].name, newValue[key]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tslots[newValue[key].name] = newValue[key];\n\t\t\t}\n\t\t}\n\t\tthis._slots = slots;\n\t\tif (this.enabled && this.entity.enabled) {\n\t\t\tthis.onEnable();\n\t\t}\n\t}\n\tget slots() {\n\t\treturn this._slots;\n\t}\n\tonEnable() {\n\t\tif (this.system._inTools) {\n\t\t\treturn;\n\t\t}\n\t\tconst slots = this._slots;\n\t\tconst playingBeforeDisable = this._playingBeforeDisable;\n\t\tfor (const key in slots) {\n\t\t\tconst slot = slots[key];\n\t\t\tif (slot.autoPlay && slot.isStopped) {\n\t\t\t\tslot.play();\n\t\t\t} else if (playingBeforeDisable[key]) {\n\t\t\t\tslot.resume();\n\t\t\t} else if (!slot.isLoaded) {\n\t\t\t\tslot.load();\n\t\t\t}\n\t\t}\n\t}\n\tonDisable() {\n\t\tconst slots = this._slots;\n\t\tconst playingBeforeDisable = {};\n\t\tfor (const key in slots) {\n\t\t\tif (!slots[key].overlap) {\n\t\t\t\tif (slots[key].isPlaying) {\n\t\t\t\t\tslots[key].pause();\n\t\t\t\t\tplayingBeforeDisable[key] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._playingBeforeDisable = playingBeforeDisable;\n\t}\n\tonRemove() {\n\t\tthis.off();\n\t}\n\taddSlot(name, options) {\n\t\tconst slots = this._slots;\n\t\tif (slots[name]) {\n\t\t\treturn null;\n\t\t}\n\t\tconst slot = new SoundSlot(this, name, options);\n\t\tslots[name] = slot;\n\t\tif (slot.autoPlay && this.enabled && this.entity.enabled) {\n\t\t\tslot.play();\n\t\t}\n\t\treturn slot;\n\t}\n\tremoveSlot(name) {\n\t\tconst slots = this._slots;\n\t\tif (slots[name]) {\n\t\t\tslots[name].stop();\n\t\t\tdelete slots[name];\n\t\t}\n\t}\n\tslot(name) {\n\t\treturn this._slots[name];\n\t}\n\t_getSlotProperty(name, property) {\n\t\tif (!this.enabled || !this.entity.enabled) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst slot = this._slots[name];\n\t\tif (!slot) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn slot[property];\n\t}\n\tisPlaying(name) {\n\t\treturn this._getSlotProperty(name, 'isPlaying') || false;\n\t}\n\tisLoaded(name) {\n\t\treturn this._getSlotProperty(name, 'isLoaded') || false;\n\t}\n\tisPaused(name) {\n\t\treturn this._getSlotProperty(name, 'isPaused') || false;\n\t}\n\tisStopped(name) {\n\t\treturn this._getSlotProperty(name, 'isStopped') || false;\n\t}\n\tplay(name) {\n\t\tif (!this.enabled || !this.entity.enabled) {\n\t\t\treturn null;\n\t\t}\n\t\tconst slot = this._slots[name];\n\t\tif (!slot) {\n\t\t\treturn null;\n\t\t}\n\t\treturn slot.play();\n\t}\n\tpause(name) {\n\t\tconst slots = this._slots;\n\t\tif (name) {\n\t\t\tconst slot = slots[name];\n\t\t\tif (!slot) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tslot.pause();\n\t\t} else {\n\t\t\tfor (const key in slots) {\n\t\t\t\tslots[key].pause();\n\t\t\t}\n\t\t}\n\t}\n\tresume(name) {\n\t\tconst slots = this._slots;\n\t\tif (name) {\n\t\t\tconst slot = slots[name];\n\t\t\tif (!slot) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (slot.isPaused) {\n\t\t\t\tslot.resume();\n\t\t\t}\n\t\t} else {\n\t\t\tfor (const key in slots) {\n\t\t\t\tslots[key].resume();\n\t\t\t}\n\t\t}\n\t}\n\tstop(name) {\n\t\tconst slots = this._slots;\n\t\tif (name) {\n\t\t\tconst slot = slots[name];\n\t\t\tif (!slot) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tslot.stop();\n\t\t} else {\n\t\t\tfor (const key in slots) {\n\t\t\t\tslots[key].stop();\n\t\t\t}\n\t\t}\n\t}\n}\nSoundComponent.EVENT_PLAY = 'play';\nSoundComponent.EVENT_PAUSE = 'pause';\nSoundComponent.EVENT_RESUME = 'resume';\nSoundComponent.EVENT_STOP = 'stop';\nSoundComponent.EVENT_END = 'end';\n\nclass SoundComponentData {\n\tconstructor() {\n\t\tthis.enabled = true;\n\t}\n}\n\nconst _schema$4 = ['enabled'];\nclass SoundComponentSystem extends ComponentSystem {\n\tconstructor(app) {\n\t\tsuper(app);\n\t\tthis.id = 'sound';\n\t\tthis.ComponentType = SoundComponent;\n\t\tthis.DataType = SoundComponentData;\n\t\tthis.schema = _schema$4;\n\t\tthis.manager = app.soundManager;\n\t\tthis.app.systems.on('update', this.onUpdate, this);\n\t\tthis.on('beforeremove', this.onBeforeRemove, this);\n\t}\n\tset volume(volume) {\n\t\tthis.manager.volume = volume;\n\t}\n\tget volume() {\n\t\treturn this.manager.volume;\n\t}\n\tget context() {\n\t\tif (!hasAudioContext()) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.manager.context;\n\t}\n\tinitializeComponentData(component, data, properties) {\n\t\tproperties = ['volume', 'pitch', 'positional', 'refDistance', 'maxDistance', 'rollOffFactor', 'distanceModel', 'slots'];\n\t\tfor (let i = 0; i < properties.length; i++) {\n\t\t\tif (data.hasOwnProperty(properties[i])) {\n\t\t\t\tcomponent[properties[i]] = data[properties[i]];\n\t\t\t}\n\t\t}\n\t\tsuper.initializeComponentData(component, data, ['enabled']);\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst srcComponent = entity.sound;\n\t\tconst srcSlots = srcComponent.slots;\n\t\tconst slots = {};\n\t\tfor (const key in srcSlots) {\n\t\t\tconst srcSlot = srcSlots[key];\n\t\t\tslots[key] = {\n\t\t\t\tname: srcSlot.name,\n\t\t\t\tvolume: srcSlot.volume,\n\t\t\t\tpitch: srcSlot.pitch,\n\t\t\t\tloop: srcSlot.loop,\n\t\t\t\tduration: srcSlot.duration,\n\t\t\t\tstartTime: srcSlot.startTime,\n\t\t\t\toverlap: srcSlot.overlap,\n\t\t\t\tautoPlay: srcSlot.autoPlay,\n\t\t\t\tasset: srcSlot.asset\n\t\t\t};\n\t\t}\n\t\tconst cloneData = {\n\t\t\tdistanceModel: srcComponent.distanceModel,\n\t\t\tenabled: srcComponent.enabled,\n\t\t\tmaxDistance: srcComponent.maxDistance,\n\t\t\tpitch: srcComponent.pitch,\n\t\t\tpositional: srcComponent.positional,\n\t\t\trefDistance: srcComponent.refDistance,\n\t\t\trollOffFactor: srcComponent.rollOffFactor,\n\t\t\tslots: slots,\n\t\t\tvolume: srcComponent.volume\n\t\t};\n\t\treturn this.addComponent(clone, cloneData);\n\t}\n\tonUpdate(dt) {\n\t\tconst store = this.store;\n\t\tfor (const id in store) {\n\t\t\tif (store.hasOwnProperty(id)) {\n\t\t\t\tconst item = store[id];\n\t\t\t\tconst entity = item.entity;\n\t\t\t\tif (entity.enabled) {\n\t\t\t\t\tconst component = entity.sound;\n\t\t\t\t\tif (component.enabled && component.positional) {\n\t\t\t\t\t\tconst position = entity.getPosition();\n\t\t\t\t\t\tconst slots = component.slots;\n\t\t\t\t\t\tfor (const key in slots) {\n\t\t\t\t\t\t\tslots[key].updatePosition(position);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tonBeforeRemove(entity, component) {\n\t\tconst slots = component.slots;\n\t\tfor (const key in slots) {\n\t\t\tif (!slots[key].overlap) {\n\t\t\t\tslots[key].stop();\n\t\t\t}\n\t\t}\n\t\tcomponent.onRemove();\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.app.systems.off('update', this.onUpdate, this);\n\t}\n}\nComponent._buildAccessors(SoundComponent.prototype, _schema$4);\n\nconst SPRITETYPE_SIMPLE = 'simple';\nconst SPRITETYPE_ANIMATED = 'animated';\n\nclass SpriteAnimationClip extends EventHandler {\n\tconstructor(component, data) {\n\t\tsuper();\n\t\tthis._evtSetMeshes = null;\n\t\tthis._component = component;\n\t\tthis._frame = 0;\n\t\tthis._sprite = null;\n\t\tthis._spriteAsset = null;\n\t\tthis.spriteAsset = data.spriteAsset;\n\t\tthis.name = data.name;\n\t\tthis.fps = data.fps || 0;\n\t\tthis.loop = data.loop || false;\n\t\tthis._playing = false;\n\t\tthis._paused = false;\n\t\tthis._time = 0;\n\t}\n\tget duration() {\n\t\tif (this._sprite) {\n\t\t\tconst fps = this.fps || Number.MIN_VALUE;\n\t\t\treturn this._sprite.frameKeys.length / Math.abs(fps);\n\t\t}\n\t\treturn 0;\n\t}\n\tset frame(value) {\n\t\tthis._setFrame(value);\n\t\tconst fps = this.fps || Number.MIN_VALUE;\n\t\tthis._setTime(this._frame / fps);\n\t}\n\tget frame() {\n\t\treturn this._frame;\n\t}\n\tget isPaused() {\n\t\treturn this._paused;\n\t}\n\tget isPlaying() {\n\t\treturn this._playing;\n\t}\n\tset sprite(value) {\n\t\tif (this._sprite) {\n\t\t\tvar _this$_evtSetMeshes;\n\t\t\t(_this$_evtSetMeshes = this._evtSetMeshes) == null || _this$_evtSetMeshes.off();\n\t\t\tthis._evtSetMeshes = null;\n\t\t\tthis._sprite.off('set:pixelsPerUnit', this._onSpritePpuChanged, this);\n\t\t\tthis._sprite.off('set:atlas', this._onSpriteMeshesChange, this);\n\t\t\tif (this._sprite.atlas) {\n\t\t\t\tthis._sprite.atlas.off('set:texture', this._onSpriteMeshesChange, this);\n\t\t\t}\n\t\t}\n\t\tthis._sprite = value;\n\t\tif (this._sprite) {\n\t\t\tthis._evtSetMeshes = this._sprite.on('set:meshes', this._onSpriteMeshesChange, this);\n\t\t\tthis._sprite.on('set:pixelsPerUnit', this._onSpritePpuChanged, this);\n\t\t\tthis._sprite.on('set:atlas', this._onSpriteMeshesChange, this);\n\t\t\tif (this._sprite.atlas) {\n\t\t\t\tthis._sprite.atlas.on('set:texture', this._onSpriteMeshesChange, this);\n\t\t\t}\n\t\t}\n\t\tif (this._component.currentClip === this) {\n\t\t\tlet mi;\n\t\t\tif (!value || !value.atlas) {\n\t\t\t\tmi = this._component._meshInstance;\n\t\t\t\tif (mi) {\n\t\t\t\t\tmi.deleteParameter('texture_emissiveMap');\n\t\t\t\t\tmi.deleteParameter('texture_opacityMap');\n\t\t\t\t}\n\t\t\t\tthis._component._hideModel();\n\t\t\t} else {\n\t\t\t\tif (value.atlas.texture) {\n\t\t\t\t\tmi = this._component._meshInstance;\n\t\t\t\t\tif (mi) {\n\t\t\t\t\t\tmi.setParameter('texture_emissiveMap', value.atlas.texture);\n\t\t\t\t\t\tmi.setParameter('texture_opacityMap', value.atlas.texture);\n\t\t\t\t\t}\n\t\t\t\t\tif (this._component.enabled && this._component.entity.enabled) {\n\t\t\t\t\t\tthis._component._showModel();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (this.time && this.fps) {\n\t\t\t\t\tthis.time = this.time;\n\t\t\t\t} else {\n\t\t\t\t\tthis.frame = this.frame;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget sprite() {\n\t\treturn this._sprite;\n\t}\n\tset spriteAsset(value) {\n\t\tconst assets = this._component.system.app.assets;\n\t\tlet id = value;\n\t\tif (value instanceof Asset) {\n\t\t\tid = value.id;\n\t\t}\n\t\tif (this._spriteAsset !== id) {\n\t\t\tif (this._spriteAsset) {\n\t\t\t\tconst prev = assets.get(this._spriteAsset);\n\t\t\t\tif (prev) {\n\t\t\t\t\tthis._unbindSpriteAsset(prev);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._spriteAsset = id;\n\t\t\tif (this._spriteAsset) {\n\t\t\t\tconst asset = assets.get(this._spriteAsset);\n\t\t\t\tif (!asset) {\n\t\t\t\t\tthis.sprite = null;\n\t\t\t\t\tassets.on(`add:${this._spriteAsset}`, this._onSpriteAssetAdded, this);\n\t\t\t\t} else {\n\t\t\t\t\tthis._bindSpriteAsset(asset);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.sprite = null;\n\t\t\t}\n\t\t}\n\t}\n\tget spriteAsset() {\n\t\treturn this._spriteAsset;\n\t}\n\tset time(value) {\n\t\tthis._setTime(value);\n\t\tif (this._sprite) {\n\t\t\tthis.frame = Math.min(this._sprite.frameKeys.length - 1, Math.floor(this._time * Math.abs(this.fps)));\n\t\t} else {\n\t\t\tthis.frame = 0;\n\t\t}\n\t}\n\tget time() {\n\t\treturn this._time;\n\t}\n\t_onSpriteAssetAdded(asset) {\n\t\tthis._component.system.app.assets.off(`add:${asset.id}`, this._onSpriteAssetAdded, this);\n\t\tif (this._spriteAsset === asset.id) {\n\t\t\tthis._bindSpriteAsset(asset);\n\t\t}\n\t}\n\t_bindSpriteAsset(asset) {\n\t\tasset.on('load', this._onSpriteAssetLoad, this);\n\t\tasset.on('remove', this._onSpriteAssetRemove, this);\n\t\tif (asset.resource) {\n\t\t\tthis._onSpriteAssetLoad(asset);\n\t\t} else {\n\t\t\tthis._component.system.app.assets.load(asset);\n\t\t}\n\t}\n\t_unbindSpriteAsset(asset) {\n\t\tif (!asset) {\n\t\t\treturn;\n\t\t}\n\t\tasset.off('load', this._onSpriteAssetLoad, this);\n\t\tasset.off('remove', this._onSpriteAssetRemove, this);\n\t\tif (asset.resource && !asset.resource.atlas) {\n\t\t\tthis._component.system.app.assets.off(`load:${asset.data.textureAtlasAsset}`, this._onTextureAtlasLoad, this);\n\t\t}\n\t}\n\t_onSpriteAssetLoad(asset) {\n\t\tif (!asset.resource) {\n\t\t\tthis.sprite = null;\n\t\t} else {\n\t\t\tif (!asset.resource.atlas) {\n\t\t\t\tconst atlasAssetId = asset.data.textureAtlasAsset;\n\t\t\t\tconst assets = this._component.system.app.assets;\n\t\t\t\tassets.off(`load:${atlasAssetId}`, this._onTextureAtlasLoad, this);\n\t\t\t\tassets.once(`load:${atlasAssetId}`, this._onTextureAtlasLoad, this);\n\t\t\t} else {\n\t\t\t\tthis.sprite = asset.resource;\n\t\t\t}\n\t\t}\n\t}\n\t_onTextureAtlasLoad(atlasAsset) {\n\t\tconst spriteAsset = this._spriteAsset;\n\t\tif (spriteAsset instanceof Asset) {\n\t\t\tthis._onSpriteAssetLoad(spriteAsset);\n\t\t} else {\n\t\t\tthis._onSpriteAssetLoad(this._component.system.app.assets.get(spriteAsset));\n\t\t}\n\t}\n\t_onSpriteAssetRemove(asset) {\n\t\tthis.sprite = null;\n\t}\n\t_onSpriteMeshesChange() {\n\t\tif (this._component.currentClip === this) {\n\t\t\tthis._component._showFrame(this.frame);\n\t\t}\n\t}\n\t_onSpritePpuChanged() {\n\t\tif (this._component.currentClip === this) {\n\t\t\tif (this.sprite.renderMode !== SPRITE_RENDERMODE_SIMPLE) {\n\t\t\t\tthis._component._showFrame(this.frame);\n\t\t\t}\n\t\t}\n\t}\n\t_update(dt) {\n\t\tif (this.fps === 0) return;\n\t\tif (!this._playing || this._paused || !this._sprite) return;\n\t\tconst dir = this.fps < 0 ? -1 : 1;\n\t\tconst time = this._time + dt * this._component.speed * dir;\n\t\tconst duration = this.duration;\n\t\tconst end = time > duration || time < 0;\n\t\tthis._setTime(time);\n\t\tlet frame = this.frame;\n\t\tif (this._sprite) {\n\t\t\tframe = Math.floor(this._sprite.frameKeys.length * this._time / duration);\n\t\t} else {\n\t\t\tframe = 0;\n\t\t}\n\t\tif (frame !== this._frame) {\n\t\t\tthis._setFrame(frame);\n\t\t}\n\t\tif (end) {\n\t\t\tif (this.loop) {\n\t\t\t\tthis.fire('loop');\n\t\t\t\tthis._component.fire('loop', this);\n\t\t\t} else {\n\t\t\t\tthis._playing = false;\n\t\t\t\tthis._paused = false;\n\t\t\t\tthis.fire('end');\n\t\t\t\tthis._component.fire('end', this);\n\t\t\t}\n\t\t}\n\t}\n\t_setTime(value) {\n\t\tthis._time = value;\n\t\tconst duration = this.duration;\n\t\tif (this._time < 0) {\n\t\t\tif (this.loop) {\n\t\t\t\tthis._time = this._time % duration + duration;\n\t\t\t} else {\n\t\t\t\tthis._time = 0;\n\t\t\t}\n\t\t} else if (this._time > duration) {\n\t\t\tif (this.loop) {\n\t\t\t\tthis._time %= duration;\n\t\t\t} else {\n\t\t\t\tthis._time = duration;\n\t\t\t}\n\t\t}\n\t}\n\t_setFrame(value) {\n\t\tif (this._sprite) {\n\t\t\tthis._frame = math.clamp(value, 0, this._sprite.frameKeys.length - 1);\n\t\t} else {\n\t\t\tthis._frame = value;\n\t\t}\n\t\tif (this._component.currentClip === this) {\n\t\t\tthis._component._showFrame(this._frame);\n\t\t}\n\t}\n\t_destroy() {\n\t\tif (this._spriteAsset) {\n\t\t\tconst assets = this._component.system.app.assets;\n\t\t\tthis._unbindSpriteAsset(assets.get(this._spriteAsset));\n\t\t}\n\t\tif (this._sprite) {\n\t\t\tthis.sprite = null;\n\t\t}\n\t\tif (this._spriteAsset) {\n\t\t\tthis.spriteAsset = null;\n\t\t}\n\t}\n\tplay() {\n\t\tif (this._playing) {\n\t\t\treturn;\n\t\t}\n\t\tthis._playing = true;\n\t\tthis._paused = false;\n\t\tthis.frame = 0;\n\t\tthis.fire('play');\n\t\tthis._component.fire('play', this);\n\t}\n\tpause() {\n\t\tif (!this._playing || this._paused) {\n\t\t\treturn;\n\t\t}\n\t\tthis._paused = true;\n\t\tthis.fire('pause');\n\t\tthis._component.fire('pause', this);\n\t}\n\tresume() {\n\t\tif (!this._paused) return;\n\t\tthis._paused = false;\n\t\tthis.fire('resume');\n\t\tthis._component.fire('resume', this);\n\t}\n\tstop() {\n\t\tif (!this._playing) return;\n\t\tthis._playing = false;\n\t\tthis._paused = false;\n\t\tthis._time = 0;\n\t\tthis.frame = 0;\n\t\tthis.fire('stop');\n\t\tthis._component.fire('stop', this);\n\t}\n}\nSpriteAnimationClip.EVENT_PLAY = 'play';\nSpriteAnimationClip.EVENT_PAUSE = 'pause';\nSpriteAnimationClip.EVENT_RESUME = 'resume';\nSpriteAnimationClip.EVENT_STOP = 'stop';\nSpriteAnimationClip.EVENT_END = 'end';\nSpriteAnimationClip.EVENT_LOOP = 'loop';\n\nconst PARAM_EMISSIVE_MAP = 'texture_emissiveMap';\nconst PARAM_OPACITY_MAP = 'texture_opacityMap';\nconst PARAM_EMISSIVE = 'material_emissive';\nconst PARAM_OPACITY = 'material_opacity';\nconst PARAM_INNER_OFFSET = 'innerOffset';\nconst PARAM_OUTER_SCALE = 'outerScale';\nconst PARAM_ATLAS_RECT = 'atlasRect';\nclass SpriteComponent extends Component {\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis._evtLayersChanged = null;\n\t\tthis._evtLayerAdded = null;\n\t\tthis._evtLayerRemoved = null;\n\t\tthis._type = SPRITETYPE_SIMPLE;\n\t\tthis._material = system.defaultMaterial;\n\t\tthis._color = new Color(1, 1, 1, 1);\n\t\tthis._colorUniform = new Float32Array(3);\n\t\tthis._speed = 1;\n\t\tthis._flipX = false;\n\t\tthis._flipY = false;\n\t\tthis._width = 1;\n\t\tthis._height = 1;\n\t\tthis._drawOrder = 0;\n\t\tthis._layers = [LAYERID_WORLD];\n\t\tthis._outerScale = new Vec2(1, 1);\n\t\tthis._outerScaleUniform = new Float32Array(2);\n\t\tthis._innerOffset = new Vec4();\n\t\tthis._innerOffsetUniform = new Float32Array(4);\n\t\tthis._atlasRect = new Vec4();\n\t\tthis._atlasRectUniform = new Float32Array(4);\n\t\tthis._batchGroupId = -1;\n\t\tthis._batchGroup = null;\n\t\tthis._node = new GraphNode();\n\t\tthis._model = new Model();\n\t\tthis._model.graph = this._node;\n\t\tthis._meshInstance = null;\n\t\tentity.addChild(this._model.graph);\n\t\tthis._model._entity = entity;\n\t\tthis._updateAabbFunc = this._updateAabb.bind(this);\n\t\tthis._addedModel = false;\n\t\tthis._autoPlayClip = null;\n\t\tthis._clips = {};\n\t\tthis._defaultClip = new SpriteAnimationClip(this, {\n\t\t\tname: this.entity.name,\n\t\t\tfps: 0,\n\t\t\tloop: false,\n\t\t\tspriteAsset: null\n\t\t});\n\t\tthis._currentClip = this._defaultClip;\n\t}\n\tset type(value) {\n\t\tif (this._type === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis._type = value;\n\t\tif (this._type === SPRITETYPE_SIMPLE) {\n\t\t\tthis.stop();\n\t\t\tthis._currentClip = this._defaultClip;\n\t\t\tif (this.enabled && this.entity.enabled) {\n\t\t\t\tthis._currentClip.frame = this.frame;\n\t\t\t\tif (this._currentClip.sprite) {\n\t\t\t\t\tthis._showModel();\n\t\t\t\t} else {\n\t\t\t\t\tthis._hideModel();\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (this._type === SPRITETYPE_ANIMATED) {\n\t\t\tthis.stop();\n\t\t\tif (this._autoPlayClip) {\n\t\t\t\tthis._tryAutoPlay();\n\t\t\t}\n\t\t\tif (this._currentClip && this._currentClip.isPlaying && this.enabled && this.entity.enabled) {\n\t\t\t\tthis._showModel();\n\t\t\t} else {\n\t\t\t\tthis._hideModel();\n\t\t\t}\n\t\t}\n\t}\n\tget type() {\n\t\treturn this._type;\n\t}\n\tset frame(value) {\n\t\tthis._currentClip.frame = value;\n\t}\n\tget frame() {\n\t\treturn this._currentClip.frame;\n\t}\n\tset spriteAsset(value) {\n\t\tthis._defaultClip.spriteAsset = value;\n\t}\n\tget spriteAsset() {\n\t\treturn this._defaultClip._spriteAsset;\n\t}\n\tset sprite(value) {\n\t\tthis._currentClip.sprite = value;\n\t}\n\tget sprite() {\n\t\treturn this._currentClip.sprite;\n\t}\n\tset material(value) {\n\t\tthis._material = value;\n\t\tif (this._meshInstance) {\n\t\t\tthis._meshInstance.material = value;\n\t\t}\n\t}\n\tget material() {\n\t\treturn this._material;\n\t}\n\tset color(value) {\n\t\tthis._color.r = value.r;\n\t\tthis._color.g = value.g;\n\t\tthis._color.b = value.b;\n\t\tif (this._meshInstance) {\n\t\t\tthis._colorUniform[0] = this._color.r;\n\t\t\tthis._colorUniform[1] = this._color.g;\n\t\t\tthis._colorUniform[2] = this._color.b;\n\t\t\tthis._meshInstance.setParameter(PARAM_EMISSIVE, this._colorUniform);\n\t\t}\n\t}\n\tget color() {\n\t\treturn this._color;\n\t}\n\tset opacity(value) {\n\t\tthis._color.a = value;\n\t\tif (this._meshInstance) {\n\t\t\tthis._meshInstance.setParameter(PARAM_OPACITY, value);\n\t\t}\n\t}\n\tget opacity() {\n\t\treturn this._color.a;\n\t}\n\tset clips(value) {\n\t\tif (!value) {\n\t\t\tfor (const name in this._clips) {\n\t\t\t\tthis.removeClip(name);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tfor (const name in this._clips) {\n\t\t\tlet found = false;\n\t\t\tfor (const key in value) {\n\t\t\t\tif (value[key].name === name) {\n\t\t\t\t\tfound = true;\n\t\t\t\t\tthis._clips[name].fps = value[key].fps;\n\t\t\t\t\tthis._clips[name].loop = value[key].loop;\n\t\t\t\t\tif (value[key].hasOwnProperty('sprite')) {\n\t\t\t\t\t\tthis._clips[name].sprite = value[key].sprite;\n\t\t\t\t\t} else if (value[key].hasOwnProperty('spriteAsset')) {\n\t\t\t\t\t\tthis._clips[name].spriteAsset = value[key].spriteAsset;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!found) {\n\t\t\t\tthis.removeClip(name);\n\t\t\t}\n\t\t}\n\t\tfor (const key in value) {\n\t\t\tif (this._clips[value[key].name]) continue;\n\t\t\tthis.addClip(value[key]);\n\t\t}\n\t\tif (this._autoPlayClip) {\n\t\t\tthis._tryAutoPlay();\n\t\t}\n\t\tif (!this._currentClip || !this._currentClip.sprite) {\n\t\t\tthis._hideModel();\n\t\t}\n\t}\n\tget clips() {\n\t\treturn this._clips;\n\t}\n\tget currentClip() {\n\t\treturn this._currentClip;\n\t}\n\tset speed(value) {\n\t\tthis._speed = value;\n\t}\n\tget speed() {\n\t\treturn this._speed;\n\t}\n\tset flipX(value) {\n\t\tif (this._flipX === value) return;\n\t\tthis._flipX = value;\n\t\tthis._updateTransform();\n\t}\n\tget flipX() {\n\t\treturn this._flipX;\n\t}\n\tset flipY(value) {\n\t\tif (this._flipY === value) return;\n\t\tthis._flipY = value;\n\t\tthis._updateTransform();\n\t}\n\tget flipY() {\n\t\treturn this._flipY;\n\t}\n\tset width(value) {\n\t\tif (value === this._width) return;\n\t\tthis._width = value;\n\t\tthis._outerScale.x = this._width;\n\t\tif (this.sprite && (this.sprite.renderMode === SPRITE_RENDERMODE_TILED || this.sprite.renderMode === SPRITE_RENDERMODE_SLICED)) {\n\t\t\tthis._updateTransform();\n\t\t}\n\t}\n\tget width() {\n\t\treturn this._width;\n\t}\n\tset height(value) {\n\t\tif (value === this._height) return;\n\t\tthis._height = value;\n\t\tthis._outerScale.y = this.height;\n\t\tif (this.sprite && (this.sprite.renderMode === SPRITE_RENDERMODE_TILED || this.sprite.renderMode === SPRITE_RENDERMODE_SLICED)) {\n\t\t\tthis._updateTransform();\n\t\t}\n\t}\n\tget height() {\n\t\treturn this._height;\n\t}\n\tset batchGroupId(value) {\n\t\tif (this._batchGroupId === value) {\n\t\t\treturn;\n\t\t}\n\t\tconst prev = this._batchGroupId;\n\t\tthis._batchGroupId = value;\n\t\tif (this.entity.enabled && prev >= 0) {\n\t\t\tvar _this$system$app$batc;\n\t\t\t(_this$system$app$batc = this.system.app.batcher) == null || _this$system$app$batc.remove(BatchGroup.SPRITE, prev, this.entity);\n\t\t}\n\t\tif (this.entity.enabled && value >= 0) {\n\t\t\tvar _this$system$app$batc2;\n\t\t\t(_this$system$app$batc2 = this.system.app.batcher) == null || _this$system$app$batc2.insert(BatchGroup.SPRITE, value, this.entity);\n\t\t} else {\n\t\t\tif (prev >= 0) {\n\t\t\t\tif (this._currentClip && this._currentClip.sprite && this.enabled && this.entity.enabled) {\n\t\t\t\t\tthis._showModel();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget batchGroupId() {\n\t\treturn this._batchGroupId;\n\t}\n\tset autoPlayClip(value) {\n\t\tthis._autoPlayClip = value instanceof SpriteAnimationClip ? value.name : value;\n\t\tthis._tryAutoPlay();\n\t}\n\tget autoPlayClip() {\n\t\treturn this._autoPlayClip;\n\t}\n\tset drawOrder(value) {\n\t\tthis._drawOrder = value;\n\t\tif (this._meshInstance) {\n\t\t\tthis._meshInstance.drawOrder = value;\n\t\t}\n\t}\n\tget drawOrder() {\n\t\treturn this._drawOrder;\n\t}\n\tset layers(value) {\n\t\tif (this._addedModel) {\n\t\t\tthis._hideModel();\n\t\t}\n\t\tthis._layers = value;\n\t\tif (!this._meshInstance) {\n\t\t\treturn;\n\t\t}\n\t\tif (this.enabled && this.entity.enabled) {\n\t\t\tthis._showModel();\n\t\t}\n\t}\n\tget layers() {\n\t\treturn this._layers;\n\t}\n\tget aabb() {\n\t\tif (this._meshInstance) {\n\t\t\treturn this._meshInstance.aabb;\n\t\t}\n\t\treturn null;\n\t}\n\tonEnable() {\n\t\tconst app = this.system.app;\n\t\tconst scene = app.scene;\n\t\tconst layers = scene.layers;\n\t\tthis._evtLayersChanged = scene.on('set:layers', this._onLayersChanged, this);\n\t\tif (layers) {\n\t\t\tthis._evtLayerAdded = layers.on('add', this._onLayerAdded, this);\n\t\t\tthis._evtLayerRemoved = layers.on('remove', this._onLayerRemoved, this);\n\t\t}\n\t\tthis._showModel();\n\t\tif (this._autoPlayClip) {\n\t\t\tthis._tryAutoPlay();\n\t\t}\n\t\tif (this._batchGroupId >= 0) {\n\t\t\tvar _app$batcher;\n\t\t\t(_app$batcher = app.batcher) == null || _app$batcher.insert(BatchGroup.SPRITE, this._batchGroupId, this.entity);\n\t\t}\n\t}\n\tonDisable() {\n\t\tvar _this$_evtLayersChang;\n\t\tconst app = this.system.app;\n\t\tconst scene = app.scene;\n\t\tconst layers = scene.layers;\n\t\t(_this$_evtLayersChang = this._evtLayersChanged) == null || _this$_evtLayersChang.off();\n\t\tthis._evtLayersChanged = null;\n\t\tif (layers) {\n\t\t\tvar _this$_evtLayerAdded, _this$_evtLayerRemove;\n\t\t\t(_this$_evtLayerAdded = this._evtLayerAdded) == null || _this$_evtLayerAdded.off();\n\t\t\tthis._evtLayerAdded = null;\n\t\t\t(_this$_evtLayerRemove = this._evtLayerRemoved) == null || _this$_evtLayerRemove.off();\n\t\t\tthis._evtLayerRemoved = null;\n\t\t}\n\t\tthis.stop();\n\t\tthis._hideModel();\n\t\tif (this._batchGroupId >= 0) {\n\t\t\tvar _app$batcher2;\n\t\t\t(_app$batcher2 = app.batcher) == null || _app$batcher2.remove(BatchGroup.SPRITE, this._batchGroupId, this.entity);\n\t\t}\n\t}\n\tonDestroy() {\n\t\tvar _this$_node;\n\t\tthis._currentClip = null;\n\t\tif (this._defaultClip) {\n\t\t\tthis._defaultClip._destroy();\n\t\t\tthis._defaultClip = null;\n\t\t}\n\t\tfor (const key in this._clips) {\n\t\t\tthis._clips[key]._destroy();\n\t\t}\n\t\tthis._clips = null;\n\t\tthis._hideModel();\n\t\tthis._model = null;\n\t\t(_this$_node = this._node) == null || _this$_node.remove();\n\t\tthis._node = null;\n\t\tif (this._meshInstance) {\n\t\t\tthis._meshInstance.material = null;\n\t\t\tthis._meshInstance.mesh = null;\n\t\t\tthis._meshInstance = null;\n\t\t}\n\t}\n\t_showModel() {\n\t\tif (this._addedModel) return;\n\t\tif (!this._meshInstance) return;\n\t\tconst meshInstances = [this._meshInstance];\n\t\tfor (let i = 0, len = this._layers.length; i < len; i++) {\n\t\t\tconst layer = this.system.app.scene.layers.getLayerById(this._layers[i]);\n\t\t\tif (layer) {\n\t\t\t\tlayer.addMeshInstances(meshInstances);\n\t\t\t}\n\t\t}\n\t\tthis._addedModel = true;\n\t}\n\t_hideModel() {\n\t\tif (!this._addedModel || !this._meshInstance) return;\n\t\tconst meshInstances = [this._meshInstance];\n\t\tfor (let i = 0, len = this._layers.length; i < len; i++) {\n\t\t\tconst layer = this.system.app.scene.layers.getLayerById(this._layers[i]);\n\t\t\tif (layer) {\n\t\t\t\tlayer.removeMeshInstances(meshInstances);\n\t\t\t}\n\t\t}\n\t\tthis._addedModel = false;\n\t}\n\t_showFrame(frame) {\n\t\tif (!this.sprite) return;\n\t\tconst mesh = this.sprite.meshes[frame];\n\t\tif (!mesh) {\n\t\t\tif (this._meshInstance) {\n\t\t\t\tthis._meshInstance.mesh = null;\n\t\t\t\tthis._meshInstance.visible = false;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tlet material;\n\t\tif (this.sprite.renderMode === SPRITE_RENDERMODE_SLICED) {\n\t\t\tmaterial = this.system.default9SlicedMaterialSlicedMode;\n\t\t} else if (this.sprite.renderMode === SPRITE_RENDERMODE_TILED) {\n\t\t\tmaterial = this.system.default9SlicedMaterialTiledMode;\n\t\t} else {\n\t\t\tmaterial = this.system.defaultMaterial;\n\t\t}\n\t\tif (!this._meshInstance) {\n\t\t\tthis._meshInstance = new MeshInstance(mesh, this._material, this._node);\n\t\t\tthis._meshInstance.castShadow = false;\n\t\t\tthis._meshInstance.receiveShadow = false;\n\t\t\tthis._meshInstance.drawOrder = this._drawOrder;\n\t\t\tthis._model.meshInstances.push(this._meshInstance);\n\t\t\tthis._colorUniform[0] = this._color.r;\n\t\t\tthis._colorUniform[1] = this._color.g;\n\t\t\tthis._colorUniform[2] = this._color.b;\n\t\t\tthis._meshInstance.setParameter(PARAM_EMISSIVE, this._colorUniform);\n\t\t\tthis._meshInstance.setParameter(PARAM_OPACITY, this._color.a);\n\t\t\tif (this.enabled && this.entity.enabled) {\n\t\t\t\tthis._showModel();\n\t\t\t}\n\t\t}\n\t\tif (this._meshInstance.material !== material) {\n\t\t\tthis._meshInstance.material = material;\n\t\t}\n\t\tif (this._meshInstance.mesh !== mesh) {\n\t\t\tthis._meshInstance.mesh = mesh;\n\t\t\tthis._meshInstance.visible = true;\n\t\t\tthis._meshInstance._aabbVer = -1;\n\t\t}\n\t\tif (this.sprite.atlas && this.sprite.atlas.texture) {\n\t\t\tthis._meshInstance.setParameter(PARAM_EMISSIVE_MAP, this.sprite.atlas.texture);\n\t\t\tthis._meshInstance.setParameter(PARAM_OPACITY_MAP, this.sprite.atlas.texture);\n\t\t} else {\n\t\t\tthis._meshInstance.deleteParameter(PARAM_EMISSIVE_MAP);\n\t\t\tthis._meshInstance.deleteParameter(PARAM_OPACITY_MAP);\n\t\t}\n\t\tif (this.sprite.atlas && (this.sprite.renderMode === SPRITE_RENDERMODE_SLICED || this.sprite.renderMode === SPRITE_RENDERMODE_TILED)) {\n\t\t\tthis._meshInstance._updateAabbFunc = this._updateAabbFunc;\n\t\t\tconst frameData = this.sprite.atlas.frames[this.sprite.frameKeys[frame]];\n\t\t\tif (frameData) {\n\t\t\t\tconst borderWidthScale = 2 / frameData.rect.z;\n\t\t\t\tconst borderHeightScale = 2 / frameData.rect.w;\n\t\t\t\tthis._innerOffset.set(frameData.border.x * borderWidthScale, frameData.border.y * borderHeightScale, frameData.border.z * borderWidthScale, frameData.border.w * borderHeightScale);\n\t\t\t\tconst tex = this.sprite.atlas.texture;\n\t\t\t\tthis._atlasRect.set(frameData.rect.x / tex.width, frameData.rect.y / tex.height, frameData.rect.z / tex.width, frameData.rect.w / tex.height);\n\t\t\t} else {\n\t\t\t\tthis._innerOffset.set(0, 0, 0, 0);\n\t\t\t}\n\t\t\tthis._innerOffsetUniform[0] = this._innerOffset.x;\n\t\t\tthis._innerOffsetUniform[1] = this._innerOffset.y;\n\t\t\tthis._innerOffsetUniform[2] = this._innerOffset.z;\n\t\t\tthis._innerOffsetUniform[3] = this._innerOffset.w;\n\t\t\tthis._meshInstance.setParameter(PARAM_INNER_OFFSET, this._innerOffsetUniform);\n\t\t\tthis._atlasRectUniform[0] = this._atlasRect.x;\n\t\t\tthis._atlasRectUniform[1] = this._atlasRect.y;\n\t\t\tthis._atlasRectUniform[2] = this._atlasRect.z;\n\t\t\tthis._atlasRectUniform[3] = this._atlasRect.w;\n\t\t\tthis._meshInstance.setParameter(PARAM_ATLAS_RECT, this._atlasRectUniform);\n\t\t} else {\n\t\t\tthis._meshInstance._updateAabbFunc = null;\n\t\t}\n\t\tthis._updateTransform();\n\t}\n\t_updateTransform() {\n\t\tlet scaleX = this.flipX ? -1 : 1;\n\t\tlet scaleY = this.flipY ? -1 : 1;\n\t\tlet posX = 0;\n\t\tlet posY = 0;\n\t\tif (this.sprite && (this.sprite.renderMode === SPRITE_RENDERMODE_SLICED || this.sprite.renderMode === SPRITE_RENDERMODE_TILED)) {\n\t\t\tlet w = 1;\n\t\t\tlet h = 1;\n\t\t\tif (this.sprite.atlas) {\n\t\t\t\tconst frameData = this.sprite.atlas.frames[this.sprite.frameKeys[this.frame]];\n\t\t\t\tif (frameData) {\n\t\t\t\t\tw = frameData.rect.z;\n\t\t\t\t\th = frameData.rect.w;\n\t\t\t\t\tposX = (0.5 - frameData.pivot.x) * this._width;\n\t\t\t\t\tposY = (0.5 - frameData.pivot.y) * this._height;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst scaleMulX = w / this.sprite.pixelsPerUnit;\n\t\t\tconst scaleMulY = h / this.sprite.pixelsPerUnit;\n\t\t\tthis._outerScale.set(Math.max(this._width, this._innerOffset.x * scaleMulX), Math.max(this._height, this._innerOffset.y * scaleMulY));\n\t\t\tscaleX *= scaleMulX;\n\t\t\tscaleY *= scaleMulY;\n\t\t\tthis._outerScale.x /= scaleMulX;\n\t\t\tthis._outerScale.y /= scaleMulY;\n\t\t\tscaleX *= math.clamp(this._width / (this._innerOffset.x * scaleMulX), 0.0001, 1);\n\t\t\tscaleY *= math.clamp(this._height / (this._innerOffset.y * scaleMulY), 0.0001, 1);\n\t\t\tif (this._meshInstance) {\n\t\t\t\tthis._outerScaleUniform[0] = this._outerScale.x;\n\t\t\t\tthis._outerScaleUniform[1] = this._outerScale.y;\n\t\t\t\tthis._meshInstance.setParameter(PARAM_OUTER_SCALE, this._outerScaleUniform);\n\t\t\t}\n\t\t}\n\t\tthis._node.setLocalScale(scaleX, scaleY, 1);\n\t\tthis._node.setLocalPosition(posX, posY, 0);\n\t}\n\t_updateAabb(aabb) {\n\t\taabb.center.set(0, 0, 0);\n\t\taabb.halfExtents.set(this._outerScale.x * 0.5, this._outerScale.y * 0.5, 0.001);\n\t\taabb.setFromTransformedAabb(aabb, this._node.getWorldTransform());\n\t\treturn aabb;\n\t}\n\t_tryAutoPlay() {\n\t\tif (!this._autoPlayClip) return;\n\t\tif (this.type !== SPRITETYPE_ANIMATED) return;\n\t\tconst clip = this._clips[this._autoPlayClip];\n\t\tif (clip && !clip.isPlaying && (!this._currentClip || !this._currentClip.isPlaying)) {\n\t\t\tif (this.enabled && this.entity.enabled) {\n\t\t\t\tthis.play(clip.name);\n\t\t\t}\n\t\t}\n\t}\n\t_onLayersChanged(oldComp, newComp) {\n\t\toldComp.off('add', this.onLayerAdded, this);\n\t\toldComp.off('remove', this.onLayerRemoved, this);\n\t\tnewComp.on('add', this.onLayerAdded, this);\n\t\tnewComp.on('remove', this.onLayerRemoved, this);\n\t\tif (this.enabled && this.entity.enabled) {\n\t\t\tthis._showModel();\n\t\t}\n\t}\n\t_onLayerAdded(layer) {\n\t\tconst index = this.layers.indexOf(layer.id);\n\t\tif (index < 0) return;\n\t\tif (this._addedModel && this.enabled && this.entity.enabled && this._meshInstance) {\n\t\t\tlayer.addMeshInstances([this._meshInstance]);\n\t\t}\n\t}\n\t_onLayerRemoved(layer) {\n\t\tif (!this._meshInstance) return;\n\t\tconst index = this.layers.indexOf(layer.id);\n\t\tif (index < 0) return;\n\t\tlayer.removeMeshInstances([this._meshInstance]);\n\t}\n\tremoveModelFromLayers() {\n\t\tfor (let i = 0; i < this.layers.length; i++) {\n\t\t\tconst layer = this.system.app.scene.layers.getLayerById(this.layers[i]);\n\t\t\tif (!layer) continue;\n\t\t\tlayer.removeMeshInstances([this._meshInstance]);\n\t\t}\n\t}\n\taddClip(data) {\n\t\tconst clip = new SpriteAnimationClip(this, {\n\t\t\tname: data.name,\n\t\t\tfps: data.fps,\n\t\t\tloop: data.loop,\n\t\t\tspriteAsset: data.spriteAsset\n\t\t});\n\t\tthis._clips[data.name] = clip;\n\t\tif (clip.name && clip.name === this._autoPlayClip) {\n\t\t\tthis._tryAutoPlay();\n\t\t}\n\t\treturn clip;\n\t}\n\tremoveClip(name) {\n\t\tdelete this._clips[name];\n\t}\n\tclip(name) {\n\t\treturn this._clips[name];\n\t}\n\tplay(name) {\n\t\tconst clip = this._clips[name];\n\t\tconst current = this._currentClip;\n\t\tif (current && current !== clip) {\n\t\t\tcurrent._playing = false;\n\t\t}\n\t\tthis._currentClip = clip;\n\t\tif (this._currentClip) {\n\t\t\tthis._currentClip = clip;\n\t\t\tthis._currentClip.play();\n\t\t}\n\t\treturn clip;\n\t}\n\tpause() {\n\t\tif (this._currentClip === this._defaultClip) return;\n\t\tif (this._currentClip.isPlaying) {\n\t\t\tthis._currentClip.pause();\n\t\t}\n\t}\n\tresume() {\n\t\tif (this._currentClip === this._defaultClip) return;\n\t\tif (this._currentClip.isPaused) {\n\t\t\tthis._currentClip.resume();\n\t\t}\n\t}\n\tstop() {\n\t\tif (this._currentClip === this._defaultClip) return;\n\t\tthis._currentClip.stop();\n\t}\n}\nSpriteComponent.EVENT_PLAY = 'play';\nSpriteComponent.EVENT_PAUSE = 'pause';\nSpriteComponent.EVENT_RESUME = 'resume';\nSpriteComponent.EVENT_STOP = 'stop';\nSpriteComponent.EVENT_END = 'end';\nSpriteComponent.EVENT_LOOP = 'loop';\n\nclass SpriteComponentData {\n\tconstructor() {\n\t\tthis.enabled = true;\n\t}\n}\n\nconst _schema$3 = ['enabled'];\nclass SpriteComponentSystem extends ComponentSystem {\n\tconstructor(app) {\n\t\tsuper(app);\n\t\tthis.id = 'sprite';\n\t\tthis.ComponentType = SpriteComponent;\n\t\tthis.DataType = SpriteComponentData;\n\t\tthis.schema = _schema$3;\n\t\tthis._defaultTexture = null;\n\t\tthis._defaultMaterial = null;\n\t\tthis._default9SlicedMaterialSlicedMode = null;\n\t\tthis._default9SlicedMaterialTiledMode = null;\n\t\tthis.app.systems.on('update', this.onUpdate, this);\n\t\tthis.on('beforeremove', this.onBeforeRemove, this);\n\t}\n\tset defaultMaterial(material) {\n\t\tthis._defaultMaterial = material;\n\t}\n\tget defaultMaterial() {\n\t\tif (!this._defaultMaterial) {\n\t\t\tconst texture = new Texture(this.app.graphicsDevice, {\n\t\t\t\twidth: 1,\n\t\t\t\theight: 1,\n\t\t\t\tformat: PIXELFORMAT_RGBA8,\n\t\t\t\tname: 'sprite'\n\t\t\t});\n\t\t\tconst pixels = new Uint8Array(texture.lock());\n\t\t\tpixels[0] = pixels[1] = pixels[2] = pixels[3] = 255;\n\t\t\ttexture.unlock();\n\t\t\tconst material = new StandardMaterial();\n\t\t\tmaterial.diffuse.set(0, 0, 0);\n\t\t\tmaterial.emissive.set(0.5, 0.5, 0.5);\n\t\t\tmaterial.emissiveMap = texture;\n\t\t\tmaterial.emissiveTint = true;\n\t\t\tmaterial.opacityMap = texture;\n\t\t\tmaterial.opacityMapChannel = 'a';\n\t\t\tmaterial.opacityTint = true;\n\t\t\tmaterial.opacity = 0;\n\t\t\tmaterial.useLighting = false;\n\t\t\tmaterial.useGammaTonemap = false;\n\t\t\tmaterial.useFog = false;\n\t\t\tmaterial.useSkybox = false;\n\t\t\tmaterial.blendType = BLEND_PREMULTIPLIED;\n\t\t\tmaterial.depthWrite = false;\n\t\t\tmaterial.pixelSnap = false;\n\t\t\tmaterial.cull = CULLFACE_NONE;\n\t\t\tmaterial.update();\n\t\t\tthis._defaultTexture = texture;\n\t\t\tthis._defaultMaterial = material;\n\t\t}\n\t\treturn this._defaultMaterial;\n\t}\n\tset default9SlicedMaterialSlicedMode(material) {\n\t\tthis._default9SlicedMaterialSlicedMode = material;\n\t}\n\tget default9SlicedMaterialSlicedMode() {\n\t\tif (!this._default9SlicedMaterialSlicedMode) {\n\t\t\tconst material = this.defaultMaterial.clone();\n\t\t\tmaterial.nineSlicedMode = SPRITE_RENDERMODE_SLICED;\n\t\t\tmaterial.update();\n\t\t\tthis._default9SlicedMaterialSlicedMode = material;\n\t\t}\n\t\treturn this._default9SlicedMaterialSlicedMode;\n\t}\n\tset default9SlicedMaterialTiledMode(material) {\n\t\tthis._default9SlicedMaterialTiledMode = material;\n\t}\n\tget default9SlicedMaterialTiledMode() {\n\t\tif (!this._default9SlicedMaterialTiledMode) {\n\t\t\tconst material = this.defaultMaterial.clone();\n\t\t\tmaterial.nineSlicedMode = SPRITE_RENDERMODE_TILED;\n\t\t\tmaterial.update();\n\t\t\tthis._default9SlicedMaterialTiledMode = material;\n\t\t}\n\t\treturn this._default9SlicedMaterialTiledMode;\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.app.systems.off('update', this.onUpdate, this);\n\t\tif (this._defaultTexture) {\n\t\t\tthis._defaultTexture.destroy();\n\t\t\tthis._defaultTexture = null;\n\t\t}\n\t}\n\tinitializeComponentData(component, data, properties) {\n\t\tif (data.enabled !== undefined) {\n\t\t\tcomponent.enabled = data.enabled;\n\t\t}\n\t\tcomponent.type = data.type;\n\t\tif (data.layers && Array.isArray(data.layers)) {\n\t\t\tcomponent.layers = data.layers.slice(0);\n\t\t}\n\t\tif (data.drawOrder !== undefined) {\n\t\t\tcomponent.drawOrder = data.drawOrder;\n\t\t}\n\t\tif (data.color !== undefined) {\n\t\t\tif (data.color instanceof Color) {\n\t\t\t\tvar _data$opacity;\n\t\t\t\tcomponent.color.set(data.color.r, data.color.g, data.color.b, (_data$opacity = data.opacity) != null ? _data$opacity : 1);\n\t\t\t} else {\n\t\t\t\tvar _data$opacity2;\n\t\t\t\tcomponent.color.set(data.color[0], data.color[1], data.color[2], (_data$opacity2 = data.opacity) != null ? _data$opacity2 : 1);\n\t\t\t}\n\t\t\tcomponent.color = component.color;\n\t\t}\n\t\tif (data.opacity !== undefined) {\n\t\t\tcomponent.opacity = data.opacity;\n\t\t}\n\t\tif (data.flipX !== undefined) {\n\t\t\tcomponent.flipX = data.flipX;\n\t\t}\n\t\tif (data.flipY !== undefined) {\n\t\t\tcomponent.flipY = data.flipY;\n\t\t}\n\t\tif (data.width !== undefined) {\n\t\t\tcomponent.width = data.width;\n\t\t}\n\t\tif (data.height !== undefined) {\n\t\t\tcomponent.height = data.height;\n\t\t}\n\t\tif (data.spriteAsset !== undefined) {\n\t\t\tcomponent.spriteAsset = data.spriteAsset;\n\t\t}\n\t\tif (data.sprite) {\n\t\t\tcomponent.sprite = data.sprite;\n\t\t}\n\t\tif (data.frame !== undefined) {\n\t\t\tcomponent.frame = data.frame;\n\t\t}\n\t\tif (data.clips) {\n\t\t\tfor (const name in data.clips) {\n\t\t\t\tcomponent.addClip(data.clips[name]);\n\t\t\t}\n\t\t}\n\t\tif (data.speed !== undefined) {\n\t\t\tcomponent.speed = data.speed;\n\t\t}\n\t\tif (data.autoPlayClip) {\n\t\t\tcomponent.autoPlayClip = data.autoPlayClip;\n\t\t}\n\t\tcomponent.batchGroupId = data.batchGroupId === undefined || data.batchGroupId === null ? -1 : data.batchGroupId;\n\t\tsuper.initializeComponentData(component, data, properties);\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst source = entity.sprite;\n\t\treturn this.addComponent(clone, {\n\t\t\tenabled: source.enabled,\n\t\t\ttype: source.type,\n\t\t\tspriteAsset: source.spriteAsset,\n\t\t\tsprite: source.sprite,\n\t\t\twidth: source.width,\n\t\t\theight: source.height,\n\t\t\tframe: source.frame,\n\t\t\tcolor: source.color.clone(),\n\t\t\topacity: source.opacity,\n\t\t\tflipX: source.flipX,\n\t\t\tflipY: source.flipY,\n\t\t\tspeed: source.speed,\n\t\t\tclips: source.clips,\n\t\t\tautoPlayClip: source.autoPlayClip,\n\t\t\tbatchGroupId: source.batchGroupId,\n\t\t\tdrawOrder: source.drawOrder,\n\t\t\tlayers: source.layers.slice(0)\n\t\t});\n\t}\n\tonUpdate(dt) {\n\t\tconst components = this.store;\n\t\tfor (const id in components) {\n\t\t\tif (components.hasOwnProperty(id)) {\n\t\t\t\tconst component = components[id];\n\t\t\t\tif (component.data.enabled && component.entity.enabled) {\n\t\t\t\t\tconst sprite = component.entity.sprite;\n\t\t\t\t\tif (sprite._currentClip) {\n\t\t\t\t\t\tsprite._currentClip._update(dt);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tonBeforeRemove(entity, component) {\n\t\tcomponent.onDestroy();\n\t}\n}\nComponent._buildAccessors(SpriteComponent.prototype, _schema$3);\n\nclass ZoneComponent extends Component {\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis._oldState = true;\n\t\tthis._size = new Vec3();\n\t\tthis.on('set_enabled', this._onSetEnabled, this);\n\t}\n\tset size(data) {\n\t\tif (data instanceof Vec3) {\n\t\t\tthis._size.copy(data);\n\t\t} else if (data instanceof Array && data.length >= 3) {\n\t\t\tthis.size.set(data[0], data[1], data[2]);\n\t\t}\n\t}\n\tget size() {\n\t\treturn this._size;\n\t}\n\tonEnable() {\n\t\tthis._checkState();\n\t}\n\tonDisable() {\n\t\tthis._checkState();\n\t}\n\t_onSetEnabled(prop, old, value) {\n\t\tthis._checkState();\n\t}\n\t_checkState() {\n\t\tconst state = this.enabled && this.entity.enabled;\n\t\tif (state === this._oldState) {\n\t\t\treturn;\n\t\t}\n\t\tthis._oldState = state;\n\t\tthis.fire('enable');\n\t\tthis.fire('state', this.enabled);\n\t}\n\t_onBeforeRemove() {\n\t\tthis.fire('remove');\n\t}\n}\nZoneComponent.EVENT_ENABLE = 'enable';\nZoneComponent.EVENT_DISABLE = 'disable';\nZoneComponent.EVENT_STATE = 'state';\nZoneComponent.EVENT_REMOVE = 'remove';\n\nclass ZoneComponentData {\n\tconstructor() {\n\t\tthis.enabled = true;\n\t}\n}\n\nconst _schema$2 = ['enabled'];\nclass ZoneComponentSystem extends ComponentSystem {\n\tconstructor(app) {\n\t\tsuper(app);\n\t\tthis.id = 'zone';\n\t\tthis.ComponentType = ZoneComponent;\n\t\tthis.DataType = ZoneComponentData;\n\t\tthis.schema = _schema$2;\n\t\tthis.on('beforeremove', this._onBeforeRemove, this);\n\t}\n\tinitializeComponentData(component, data, properties) {\n\t\tcomponent.enabled = data.hasOwnProperty('enabled') ? !!data.enabled : true;\n\t\tif (data.size) {\n\t\t\tif (data.size instanceof Vec3) {\n\t\t\t\tcomponent.size.copy(data.size);\n\t\t\t} else if (data.size instanceof Array && data.size.length >= 3) {\n\t\t\t\tcomponent.size.set(data.size[0], data.size[1], data.size[2]);\n\t\t\t}\n\t\t}\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst data = {\n\t\t\tsize: entity.zone.size\n\t\t};\n\t\treturn this.addComponent(clone, data);\n\t}\n\t_onBeforeRemove(entity, component) {\n\t\tcomponent._onBeforeRemove();\n\t}\n}\nComponent._buildAccessors(ZoneComponent.prototype, _schema$2);\n\nclass PostEffectEntry {\n\tconstructor(effect, inputTarget) {\n\t\tthis.effect = effect;\n\t\tthis.inputTarget = inputTarget;\n\t\tthis.outputTarget = null;\n\t\tthis.name = effect.constructor.name;\n\t}\n}\nclass PostEffectQueue {\n\tconstructor(app, camera) {\n\t\tthis.app = app;\n\t\tthis.camera = camera;\n\t\tthis.destinationRenderTarget = null;\n\t\tthis.effects = [];\n\t\tthis.enabled = false;\n\t\tthis.depthTarget = null;\n\t\tcamera.on('set:rect', this.onCameraRectChanged, this);\n\t}\n\t_allocateColorBuffer(format, name) {\n\t\tvar _renderTarget$width, _renderTarget$height;\n\t\tconst rect = this.camera.rect;\n\t\tconst renderTarget = this.destinationRenderTarget;\n\t\tconst device = this.app.graphicsDevice;\n\t\tconst width = Math.floor(rect.z * ((_renderTarget$width = renderTarget == null ? void 0 : renderTarget.width) != null ? _renderTarget$width : device.width));\n\t\tconst height = Math.floor(rect.w * ((_renderTarget$height = renderTarget == null ? void 0 : renderTarget.height) != null ? _renderTarget$height : device.height));\n\t\tconst colorBuffer = new Texture(device, {\n\t\t\tname: name,\n\t\t\tformat: format,\n\t\t\twidth: width,\n\t\t\theight: height,\n\t\t\tmipmaps: false,\n\t\t\tminFilter: FILTER_NEAREST,\n\t\t\tmagFilter: FILTER_NEAREST,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE\n\t\t});\n\t\treturn colorBuffer;\n\t}\n\t_createOffscreenTarget(useDepth, hdr) {\n\t\tconst device = this.app.graphicsDevice;\n\t\tconst format = hdr && device.getRenderableHdrFormat([PIXELFORMAT_RGBA16F, PIXELFORMAT_RGBA32F], true) || PIXELFORMAT_RGBA8;\n\t\tconst name = `${this.camera.entity.name}-posteffect-${this.effects.length}`;\n\t\tconst colorBuffer = this._allocateColorBuffer(format, name);\n\t\treturn new RenderTarget({\n\t\t\tcolorBuffer: colorBuffer,\n\t\t\tdepth: useDepth,\n\t\t\tstencil: useDepth && this.app.graphicsDevice.supportsStencil,\n\t\t\tsamples: useDepth ? device.samples : 1\n\t\t});\n\t}\n\t_resizeOffscreenTarget(rt) {\n\t\tconst format = rt.colorBuffer.format;\n\t\tconst name = rt.colorBuffer.name;\n\t\trt.destroyFrameBuffers();\n\t\trt.destroyTextureBuffers();\n\t\trt._colorBuffer = this._allocateColorBuffer(format, name);\n\t\trt._colorBuffers = [rt._colorBuffer];\n\t}\n\t_destroyOffscreenTarget(rt) {\n\t\trt.destroyTextureBuffers();\n\t\trt.destroy();\n\t}\n\taddEffect(effect) {\n\t\tconst effects = this.effects;\n\t\tconst isFirstEffect = effects.length === 0;\n\t\tconst inputTarget = this._createOffscreenTarget(isFirstEffect, effect.hdr);\n\t\tconst newEntry = new PostEffectEntry(effect, inputTarget);\n\t\teffects.push(newEntry);\n\t\tthis._sourceTarget = newEntry.inputTarget;\n\t\tif (effects.length > 1) {\n\t\t\teffects[effects.length - 2].outputTarget = newEntry.inputTarget;\n\t\t}\n\t\tthis._newPostEffect = effect;\n\t\tif (effect.needsDepthBuffer) {\n\t\t\tthis._requestDepthMap();\n\t\t}\n\t\tthis.enable();\n\t\tthis._newPostEffect = undefined;\n\t}\n\tremoveEffect(effect) {\n\t\tlet index = -1;\n\t\tfor (let i = 0, len = this.effects.length; i < len; i++) {\n\t\t\tif (this.effects[i].effect === effect) {\n\t\t\t\tindex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (index >= 0) {\n\t\t\tif (index > 0) {\n\t\t\t\tthis.effects[index - 1].outputTarget = index + 1 < this.effects.length ? this.effects[index + 1].inputTarget : null;\n\t\t\t} else {\n\t\t\t\tif (this.effects.length > 1) {\n\t\t\t\t\tif (!this.effects[1].inputTarget._depth) {\n\t\t\t\t\t\tthis._destroyOffscreenTarget(this.effects[1].inputTarget);\n\t\t\t\t\t\tthis.effects[1].inputTarget = this._createOffscreenTarget(true, this.effects[1].hdr);\n\t\t\t\t\t\tthis._sourceTarget = this.effects[1].inputTarget;\n\t\t\t\t\t}\n\t\t\t\t\tthis.camera.renderTarget = this.effects[1].inputTarget;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._destroyOffscreenTarget(this.effects[index].inputTarget);\n\t\t\tthis.effects.splice(index, 1);\n\t\t}\n\t\tif (this.enabled) {\n\t\t\tif (effect.needsDepthBuffer) {\n\t\t\t\tthis._releaseDepthMap();\n\t\t\t}\n\t\t}\n\t\tif (this.effects.length === 0) {\n\t\t\tthis.disable();\n\t\t}\n\t}\n\t_requestDepthMaps() {\n\t\tfor (let i = 0, len = this.effects.length; i < len; i++) {\n\t\t\tconst effect = this.effects[i].effect;\n\t\t\tif (this._newPostEffect === effect) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (effect.needsDepthBuffer) {\n\t\t\t\tthis._requestDepthMap();\n\t\t\t}\n\t\t}\n\t}\n\t_releaseDepthMaps() {\n\t\tfor (let i = 0, len = this.effects.length; i < len; i++) {\n\t\t\tconst effect = this.effects[i].effect;\n\t\t\tif (effect.needsDepthBuffer) {\n\t\t\t\tthis._releaseDepthMap();\n\t\t\t}\n\t\t}\n\t}\n\t_requestDepthMap() {\n\t\tconst depthLayer = this.app.scene.layers.getLayerById(LAYERID_DEPTH);\n\t\tif (depthLayer) {\n\t\t\tdepthLayer.incrementCounter();\n\t\t\tthis.camera.requestSceneDepthMap(true);\n\t\t}\n\t}\n\t_releaseDepthMap() {\n\t\tconst depthLayer = this.app.scene.layers.getLayerById(LAYERID_DEPTH);\n\t\tif (depthLayer) {\n\t\t\tdepthLayer.decrementCounter();\n\t\t\tthis.camera.requestSceneDepthMap(false);\n\t\t}\n\t}\n\tdestroy() {\n\t\tfor (let i = 0, len = this.effects.length; i < len; i++) {\n\t\t\tthis.effects[i].inputTarget.destroy();\n\t\t}\n\t\tthis.effects.length = 0;\n\t\tthis.disable();\n\t}\n\tenable() {\n\t\tif (!this.enabled && this.effects.length) {\n\t\t\tthis.enabled = true;\n\t\t\tthis._requestDepthMaps();\n\t\t\tthis.app.graphicsDevice.on('resizecanvas', this._onCanvasResized, this);\n\t\t\tthis.destinationRenderTarget = this.camera.renderTarget;\n\t\t\tthis.camera.renderTarget = this.effects[0].inputTarget;\n\t\t\tthis.camera.onPostprocessing = () => {\n\t\t\t\tif (this.enabled) {\n\t\t\t\t\tlet rect = null;\n\t\t\t\t\tconst len = this.effects.length;\n\t\t\t\t\tif (len) {\n\t\t\t\t\t\tfor (let i = 0; i < len; i++) {\n\t\t\t\t\t\t\tconst fx = this.effects[i];\n\t\t\t\t\t\t\tlet destTarget = fx.outputTarget;\n\t\t\t\t\t\t\tif (i === len - 1) {\n\t\t\t\t\t\t\t\trect = this.camera.rect;\n\t\t\t\t\t\t\t\tif (this.destinationRenderTarget) {\n\t\t\t\t\t\t\t\t\tdestTarget = this.destinationRenderTarget;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tfx.effect.render(fx.inputTarget, destTarget, rect);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t}\n\tdisable() {\n\t\tif (this.enabled) {\n\t\t\tthis.enabled = false;\n\t\t\tthis.app.graphicsDevice.off('resizecanvas', this._onCanvasResized, this);\n\t\t\tthis._releaseDepthMaps();\n\t\t\tthis._destroyOffscreenTarget(this._sourceTarget);\n\t\t\tthis.camera.renderTarget = null;\n\t\t\tthis.camera.onPostprocessing = null;\n\t\t}\n\t}\n\t_onCanvasResized(width, height) {\n\t\tvar _renderTarget$width2, _renderTarget$height2;\n\t\tconst rect = this.camera.rect;\n\t\tconst renderTarget = this.destinationRenderTarget;\n\t\twidth = (_renderTarget$width2 = renderTarget == null ? void 0 : renderTarget.width) != null ? _renderTarget$width2 : width;\n\t\theight = (_renderTarget$height2 = renderTarget == null ? void 0 : renderTarget.height) != null ? _renderTarget$height2 : height;\n\t\tthis.camera.camera.aspectRatio = width * rect.z / (height * rect.w);\n\t\tthis.resizeRenderTargets();\n\t}\n\tresizeRenderTargets() {\n\t\tvar _renderTarget$width3, _renderTarget$height3;\n\t\tconst device = this.app.graphicsDevice;\n\t\tconst renderTarget = this.destinationRenderTarget;\n\t\tconst width = (_renderTarget$width3 = renderTarget == null ? void 0 : renderTarget.width) != null ? _renderTarget$width3 : device.width;\n\t\tconst height = (_renderTarget$height3 = renderTarget == null ? void 0 : renderTarget.height) != null ? _renderTarget$height3 : device.height;\n\t\tconst rect = this.camera.rect;\n\t\tconst desiredWidth = Math.floor(rect.z * width);\n\t\tconst desiredHeight = Math.floor(rect.w * height);\n\t\tconst effects = this.effects;\n\t\tfor (let i = 0, len = effects.length; i < len; i++) {\n\t\t\tconst fx = effects[i];\n\t\t\tif (fx.inputTarget.width !== desiredWidth || fx.inputTarget.height !== desiredHeight) {\n\t\t\t\tthis._resizeOffscreenTarget(fx.inputTarget);\n\t\t\t}\n\t\t}\n\t}\n\tonCameraRectChanged(name, oldValue, newValue) {\n\t\tif (this.enabled) {\n\t\t\tthis.resizeRenderTargets();\n\t\t}\n\t}\n}\n\nclass CameraComponent extends Component {\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis.onPostprocessing = null;\n\t\tthis.onPreRender = null;\n\t\tthis.onPostRender = null;\n\t\tthis._renderSceneDepthMap = 0;\n\t\tthis._renderSceneColorMap = 0;\n\t\tthis._sceneDepthMapRequested = false;\n\t\tthis._sceneColorMapRequested = false;\n\t\tthis._priority = 0;\n\t\tthis._disablePostEffectsLayer = LAYERID_UI;\n\t\tthis._camera = new Camera();\n\t\tthis._evtLayersChanged = null;\n\t\tthis._evtLayerAdded = null;\n\t\tthis._evtLayerRemoved = null;\n\t\tthis._camera.node = entity;\n\t\tthis._postEffects = new PostEffectQueue(system.app, this);\n\t}\n\tsetShaderPass(name) {\n\t\tconst shaderPass = ShaderPass.get(this.system.app.graphicsDevice);\n\t\tconst shaderPassInfo = name ? shaderPass.allocate(name, {\n\t\t\tisForward: true\n\t\t}) : null;\n\t\tthis._camera.shaderPassInfo = shaderPassInfo;\n\t\treturn shaderPassInfo.index;\n\t}\n\tgetShaderPass() {\n\t\tvar _this$_camera$shaderP;\n\t\treturn (_this$_camera$shaderP = this._camera.shaderPassInfo) == null ? void 0 : _this$_camera$shaderP.name;\n\t}\n\tset renderPasses(passes) {\n\t\tthis._camera.renderPasses = passes;\n\t}\n\tget renderPasses() {\n\t\treturn this._camera.renderPasses;\n\t}\n\tset aperture(value) {\n\t\tthis._camera.aperture = value;\n\t}\n\tget aperture() {\n\t\treturn this._camera.aperture;\n\t}\n\tset aspectRatio(value) {\n\t\tthis._camera.aspectRatio = value;\n\t}\n\tget aspectRatio() {\n\t\treturn this._camera.aspectRatio;\n\t}\n\tset aspectRatioMode(value) {\n\t\tthis._camera.aspectRatioMode = value;\n\t}\n\tget aspectRatioMode() {\n\t\treturn this._camera.aspectRatioMode;\n\t}\n\tset calculateProjection(value) {\n\t\tthis._camera.calculateProjection = value;\n\t}\n\tget calculateProjection() {\n\t\treturn this._camera.calculateProjection;\n\t}\n\tset calculateTransform(value) {\n\t\tthis._camera.calculateTransform = value;\n\t}\n\tget calculateTransform() {\n\t\treturn this._camera.calculateTransform;\n\t}\n\tget camera() {\n\t\treturn this._camera;\n\t}\n\tset clearColor(value) {\n\t\tthis._camera.clearColor = value;\n\t}\n\tget clearColor() {\n\t\treturn this._camera.clearColor;\n\t}\n\tset clearColorBuffer(value) {\n\t\tthis._camera.clearColorBuffer = value;\n\t\tthis.dirtyLayerCompositionCameras();\n\t}\n\tget clearColorBuffer() {\n\t\treturn this._camera.clearColorBuffer;\n\t}\n\tset clearDepthBuffer(value) {\n\t\tthis._camera.clearDepthBuffer = value;\n\t\tthis.dirtyLayerCompositionCameras();\n\t}\n\tget clearDepthBuffer() {\n\t\treturn this._camera.clearDepthBuffer;\n\t}\n\tset clearStencilBuffer(value) {\n\t\tthis._camera.clearStencilBuffer = value;\n\t\tthis.dirtyLayerCompositionCameras();\n\t}\n\tget clearStencilBuffer() {\n\t\treturn this._camera.clearStencilBuffer;\n\t}\n\tset cullFaces(value) {\n\t\tthis._camera.cullFaces = value;\n\t}\n\tget cullFaces() {\n\t\treturn this._camera.cullFaces;\n\t}\n\tset disablePostEffectsLayer(layer) {\n\t\tthis._disablePostEffectsLayer = layer;\n\t\tthis.dirtyLayerCompositionCameras();\n\t}\n\tget disablePostEffectsLayer() {\n\t\treturn this._disablePostEffectsLayer;\n\t}\n\tset farClip(value) {\n\t\tthis._camera.farClip = value;\n\t}\n\tget farClip() {\n\t\treturn this._camera.farClip;\n\t}\n\tset flipFaces(value) {\n\t\tthis._camera.flipFaces = value;\n\t}\n\tget flipFaces() {\n\t\treturn this._camera.flipFaces;\n\t}\n\tset fov(value) {\n\t\tthis._camera.fov = value;\n\t}\n\tget fov() {\n\t\treturn this._camera.fov;\n\t}\n\tget frustum() {\n\t\treturn this._camera.frustum;\n\t}\n\tset frustumCulling(value) {\n\t\tthis._camera.frustumCulling = value;\n\t}\n\tget frustumCulling() {\n\t\treturn this._camera.frustumCulling;\n\t}\n\tset horizontalFov(value) {\n\t\tthis._camera.horizontalFov = value;\n\t}\n\tget horizontalFov() {\n\t\treturn this._camera.horizontalFov;\n\t}\n\tset layers(newValue) {\n\t\tconst layers = this._camera.layers;\n\t\tfor (let i = 0; i < layers.length; i++) {\n\t\t\tconst layer = this.system.app.scene.layers.getLayerById(layers[i]);\n\t\t\tif (!layer) continue;\n\t\t\tlayer.removeCamera(this);\n\t\t}\n\t\tthis._camera.layers = newValue;\n\t\tif (!this.enabled || !this.entity.enabled) return;\n\t\tfor (let i = 0; i < newValue.length; i++) {\n\t\t\tconst layer = this.system.app.scene.layers.getLayerById(newValue[i]);\n\t\t\tif (!layer) continue;\n\t\t\tlayer.addCamera(this);\n\t\t}\n\t}\n\tget layers() {\n\t\treturn this._camera.layers;\n\t}\n\tget layersSet() {\n\t\treturn this._camera.layersSet;\n\t}\n\tset jitter(value) {\n\t\tthis._camera.jitter = value;\n\t}\n\tget jitter() {\n\t\treturn this._camera.jitter;\n\t}\n\tset nearClip(value) {\n\t\tthis._camera.nearClip = value;\n\t}\n\tget nearClip() {\n\t\treturn this._camera.nearClip;\n\t}\n\tset orthoHeight(value) {\n\t\tthis._camera.orthoHeight = value;\n\t}\n\tget orthoHeight() {\n\t\treturn this._camera.orthoHeight;\n\t}\n\tget postEffects() {\n\t\treturn this._postEffects;\n\t}\n\tget postEffectsEnabled() {\n\t\treturn this._postEffects.enabled;\n\t}\n\tset priority(newValue) {\n\t\tthis._priority = newValue;\n\t\tthis.dirtyLayerCompositionCameras();\n\t}\n\tget priority() {\n\t\treturn this._priority;\n\t}\n\tset projection(value) {\n\t\tthis._camera.projection = value;\n\t}\n\tget projection() {\n\t\treturn this._camera.projection;\n\t}\n\tget projectionMatrix() {\n\t\treturn this._camera.projectionMatrix;\n\t}\n\tset rect(value) {\n\t\tthis._camera.rect = value;\n\t\tthis.fire('set:rect', this._camera.rect);\n\t}\n\tget rect() {\n\t\treturn this._camera.rect;\n\t}\n\tset renderSceneColorMap(value) {\n\t\tif (value && !this._sceneColorMapRequested) {\n\t\t\tthis.requestSceneColorMap(true);\n\t\t\tthis._sceneColorMapRequested = true;\n\t\t} else if (this._sceneColorMapRequested) {\n\t\t\tthis.requestSceneColorMap(false);\n\t\t\tthis._sceneColorMapRequested = false;\n\t\t}\n\t}\n\tget renderSceneColorMap() {\n\t\treturn this._renderSceneColorMap > 0;\n\t}\n\tset renderSceneDepthMap(value) {\n\t\tif (value && !this._sceneDepthMapRequested) {\n\t\t\tthis.requestSceneDepthMap(true);\n\t\t\tthis._sceneDepthMapRequested = true;\n\t\t} else if (this._sceneDepthMapRequested) {\n\t\t\tthis.requestSceneDepthMap(false);\n\t\t\tthis._sceneDepthMapRequested = false;\n\t\t}\n\t}\n\tget renderSceneDepthMap() {\n\t\treturn this._renderSceneDepthMap > 0;\n\t}\n\tset renderTarget(value) {\n\t\tthis._camera.renderTarget = value;\n\t\tthis.dirtyLayerCompositionCameras();\n\t}\n\tget renderTarget() {\n\t\treturn this._camera.renderTarget;\n\t}\n\tset scissorRect(value) {\n\t\tthis._camera.scissorRect = value;\n\t}\n\tget scissorRect() {\n\t\treturn this._camera.scissorRect;\n\t}\n\tset sensitivity(value) {\n\t\tthis._camera.sensitivity = value;\n\t}\n\tget sensitivity() {\n\t\treturn this._camera.sensitivity;\n\t}\n\tset shutter(value) {\n\t\tthis._camera.shutter = value;\n\t}\n\tget shutter() {\n\t\treturn this._camera.shutter;\n\t}\n\tget viewMatrix() {\n\t\treturn this._camera.viewMatrix;\n\t}\n\t_enableDepthLayer(value) {\n\t\tconst hasDepthLayer = this.layers.find(layerId => layerId === LAYERID_DEPTH);\n\t\tif (hasDepthLayer) {\n\t\t\tconst depthLayer = this.system.app.scene.layers.getLayerById(LAYERID_DEPTH);\n\t\t\tif (value) {\n\t\t\t\tdepthLayer == null || depthLayer.incrementCounter();\n\t\t\t} else {\n\t\t\t\tdepthLayer == null || depthLayer.decrementCounter();\n\t\t\t}\n\t\t} else if (value) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\trequestSceneColorMap(enabled) {\n\t\tthis._renderSceneColorMap += enabled ? 1 : -1;\n\t\tthis._enableDepthLayer(enabled);\n\t\tthis.camera._enableRenderPassColorGrab(this.system.app.graphicsDevice, this.renderSceneColorMap);\n\t}\n\trequestSceneDepthMap(enabled) {\n\t\tthis._renderSceneDepthMap += enabled ? 1 : -1;\n\t\tthis._enableDepthLayer(enabled);\n\t\tthis.camera._enableRenderPassDepthGrab(this.system.app.graphicsDevice, this.system.app.renderer, this.renderSceneDepthMap);\n\t}\n\tdirtyLayerCompositionCameras() {\n\t\tconst layerComp = this.system.app.scene.layers;\n\t\tlayerComp._dirty = true;\n\t}\n\tscreenToWorld(screenx, screeny, cameraz, worldCoord) {\n\t\tconst device = this.system.app.graphicsDevice;\n\t\tconst w = device.clientRect.width;\n\t\tconst h = device.clientRect.height;\n\t\treturn this._camera.screenToWorld(screenx, screeny, cameraz, w, h, worldCoord);\n\t}\n\tworldToScreen(worldCoord, screenCoord) {\n\t\tconst device = this.system.app.graphicsDevice;\n\t\tconst w = device.clientRect.width;\n\t\tconst h = device.clientRect.height;\n\t\treturn this._camera.worldToScreen(worldCoord, w, h, screenCoord);\n\t}\n\tonAppPrerender() {\n\t\tthis._camera._viewMatDirty = true;\n\t\tthis._camera._viewProjMatDirty = true;\n\t}\n\taddCameraToLayers() {\n\t\tconst layers = this.layers;\n\t\tfor (let i = 0; i < layers.length; i++) {\n\t\t\tconst layer = this.system.app.scene.layers.getLayerById(layers[i]);\n\t\t\tif (layer) {\n\t\t\t\tlayer.addCamera(this);\n\t\t\t}\n\t\t}\n\t}\n\tremoveCameraFromLayers() {\n\t\tconst layers = this.layers;\n\t\tfor (let i = 0; i < layers.length; i++) {\n\t\t\tconst layer = this.system.app.scene.layers.getLayerById(layers[i]);\n\t\t\tif (layer) {\n\t\t\t\tlayer.removeCamera(this);\n\t\t\t}\n\t\t}\n\t}\n\tonLayersChanged(oldComp, newComp) {\n\t\tthis.addCameraToLayers();\n\t\toldComp.off('add', this.onLayerAdded, this);\n\t\toldComp.off('remove', this.onLayerRemoved, this);\n\t\tnewComp.on('add', this.onLayerAdded, this);\n\t\tnewComp.on('remove', this.onLayerRemoved, this);\n\t}\n\tonLayerAdded(layer) {\n\t\tconst index = this.layers.indexOf(layer.id);\n\t\tif (index < 0) return;\n\t\tlayer.addCamera(this);\n\t}\n\tonLayerRemoved(layer) {\n\t\tconst index = this.layers.indexOf(layer.id);\n\t\tif (index < 0) return;\n\t\tlayer.removeCamera(this);\n\t}\n\tonEnable() {\n\t\tvar _this$_evtLayersChang;\n\t\tconst scene = this.system.app.scene;\n\t\tconst layers = scene.layers;\n\t\tthis.system.addCamera(this);\n\t\t(_this$_evtLayersChang = this._evtLayersChanged) == null || _this$_evtLayersChang.off();\n\t\tthis._evtLayersChanged = scene.on('set:layers', this.onLayersChanged, this);\n\t\tif (layers) {\n\t\t\tvar _this$_evtLayerAdded, _this$_evtLayerRemove;\n\t\t\t(_this$_evtLayerAdded = this._evtLayerAdded) == null || _this$_evtLayerAdded.off();\n\t\t\tthis._evtLayerAdded = layers.on('add', this.onLayerAdded, this);\n\t\t\t(_this$_evtLayerRemove = this._evtLayerRemoved) == null || _this$_evtLayerRemove.off();\n\t\t\tthis._evtLayerRemoved = layers.on('remove', this.onLayerRemoved, this);\n\t\t}\n\t\tif (this.enabled && this.entity.enabled) {\n\t\t\tthis.addCameraToLayers();\n\t\t}\n\t\tthis.postEffects.enable();\n\t}\n\tonDisable() {\n\t\tvar _this$_evtLayersChang2;\n\t\tconst scene = this.system.app.scene;\n\t\tconst layers = scene.layers;\n\t\tthis.postEffects.disable();\n\t\tthis.removeCameraFromLayers();\n\t\t(_this$_evtLayersChang2 = this._evtLayersChanged) == null || _this$_evtLayersChang2.off();\n\t\tthis._evtLayersChanged = null;\n\t\tif (layers) {\n\t\t\tvar _this$_evtLayerAdded2, _this$_evtLayerRemove2;\n\t\t\t(_this$_evtLayerAdded2 = this._evtLayerAdded) == null || _this$_evtLayerAdded2.off();\n\t\t\tthis._evtLayerAdded = null;\n\t\t\t(_this$_evtLayerRemove2 = this._evtLayerRemoved) == null || _this$_evtLayerRemove2.off();\n\t\t\tthis._evtLayerRemoved = null;\n\t\t}\n\t\tthis.system.removeCamera(this);\n\t}\n\tonRemove() {\n\t\tthis.onDisable();\n\t\tthis.off();\n\t\tthis.camera.destroy();\n\t}\n\tcalculateAspectRatio(rt) {\n\t\tconst device = this.system.app.graphicsDevice;\n\t\tconst width = rt ? rt.width : device.width;\n\t\tconst height = rt ? rt.height : device.height;\n\t\treturn width * this.rect.z / (height * this.rect.w);\n\t}\n\tframeUpdate(rt) {\n\t\tif (this.aspectRatioMode === ASPECT_AUTO) {\n\t\t\tthis.aspectRatio = this.calculateAspectRatio(rt);\n\t\t}\n\t}\n\tstartXr(type, spaceType, options) {\n\t\tthis.system.app.xr.start(this, type, spaceType, options);\n\t}\n\tendXr(callback) {\n\t\tif (!this._camera.xr) {\n\t\t\tif (callback) callback(new Error('Camera is not in XR'));\n\t\t\treturn;\n\t\t}\n\t\tthis._camera.xr.end(callback);\n\t}\n\tcopy(source) {\n\t\tthis.aperture = source.aperture;\n\t\tthis.aspectRatio = source.aspectRatio;\n\t\tthis.aspectRatioMode = source.aspectRatioMode;\n\t\tthis.calculateProjection = source.calculateProjection;\n\t\tthis.calculateTransform = source.calculateTransform;\n\t\tthis.clearColor = source.clearColor;\n\t\tthis.clearColorBuffer = source.clearColorBuffer;\n\t\tthis.clearDepthBuffer = source.clearDepthBuffer;\n\t\tthis.clearStencilBuffer = source.clearStencilBuffer;\n\t\tthis.cullFaces = source.cullFaces;\n\t\tthis.disablePostEffectsLayer = source.disablePostEffectsLayer;\n\t\tthis.farClip = source.farClip;\n\t\tthis.flipFaces = source.flipFaces;\n\t\tthis.fov = source.fov;\n\t\tthis.frustumCulling = source.frustumCulling;\n\t\tthis.horizontalFov = source.horizontalFov;\n\t\tthis.layers = source.layers;\n\t\tthis.nearClip = source.nearClip;\n\t\tthis.orthoHeight = source.orthoHeight;\n\t\tthis.priority = source.priority;\n\t\tthis.projection = source.projection;\n\t\tthis.rect = source.rect;\n\t\tthis.renderTarget = source.renderTarget;\n\t\tthis.scissorRect = source.scissorRect;\n\t\tthis.sensitivity = source.sensitivity;\n\t\tthis.shutter = source.shutter;\n\t}\n}\n\nclass CameraComponentData {\n\tconstructor() {\n\t\tthis.enabled = true;\n\t}\n}\n\nconst _schema$1 = ['enabled'];\nclass CameraComponentSystem extends ComponentSystem {\n\tconstructor(app) {\n\t\tsuper(app);\n\t\tthis.cameras = [];\n\t\tthis.id = 'camera';\n\t\tthis.ComponentType = CameraComponent;\n\t\tthis.DataType = CameraComponentData;\n\t\tthis.schema = _schema$1;\n\t\tthis.on('beforeremove', this.onBeforeRemove, this);\n\t\tthis.app.on('prerender', this.onAppPrerender, this);\n\t\tthis.app.systems.on('update', this.onUpdate, this);\n\t}\n\tinitializeComponentData(component, data, properties) {\n\t\tproperties = ['aspectRatio', 'aspectRatioMode', 'calculateProjection', 'calculateTransform', 'clearColor', 'clearColorBuffer', 'clearDepthBuffer', 'clearStencilBuffer', 'renderSceneColorMap', 'renderSceneDepthMap', 'cullFaces', 'farClip', 'flipFaces', 'fov', 'frustumCulling', 'horizontalFov', 'layers', 'renderTarget', 'nearClip', 'orthoHeight', 'projection', 'priority', 'rect', 'scissorRect', 'aperture', 'shutter', 'sensitivity'];\n\t\tfor (let i = 0; i < properties.length; i++) {\n\t\t\tconst property = properties[i];\n\t\t\tif (data.hasOwnProperty(property)) {\n\t\t\t\tconst value = data[property];\n\t\t\t\tswitch (property) {\n\t\t\t\t\tcase 'rect':\n\t\t\t\t\tcase 'scissorRect':\n\t\t\t\t\t\tif (Array.isArray(value)) {\n\t\t\t\t\t\t\tcomponent[property] = new Vec4(value[0], value[1], value[2], value[3]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcomponent[property] = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'clearColor':\n\t\t\t\t\t\tif (Array.isArray(value)) {\n\t\t\t\t\t\t\tcomponent[property] = new Color(value[0], value[1], value[2], value[3]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcomponent[property] = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcomponent[property] = value;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tsuper.initializeComponentData(component, data, ['enabled']);\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst c = entity.camera;\n\t\treturn this.addComponent(clone, {\n\t\t\taspectRatio: c.aspectRatio,\n\t\t\taspectRatioMode: c.aspectRatioMode,\n\t\t\tcalculateProjection: c.calculateProjection,\n\t\t\tcalculateTransform: c.calculateTransform,\n\t\t\tclearColor: c.clearColor,\n\t\t\tclearColorBuffer: c.clearColorBuffer,\n\t\t\tclearDepthBuffer: c.clearDepthBuffer,\n\t\t\tclearStencilBuffer: c.clearStencilBuffer,\n\t\t\trenderSceneDepthMap: c.renderSceneDepthMap,\n\t\t\trenderSceneColorMap: c.renderSceneColorMap,\n\t\t\tcullFaces: c.cullFaces,\n\t\t\tenabled: c.enabled,\n\t\t\tfarClip: c.farClip,\n\t\t\tflipFaces: c.flipFaces,\n\t\t\tfov: c.fov,\n\t\t\tfrustumCulling: c.frustumCulling,\n\t\t\thorizontalFov: c.horizontalFov,\n\t\t\tlayers: c.layers,\n\t\t\trenderTarget: c.renderTarget,\n\t\t\tnearClip: c.nearClip,\n\t\t\torthoHeight: c.orthoHeight,\n\t\t\tprojection: c.projection,\n\t\t\tpriority: c.priority,\n\t\t\trect: c.rect,\n\t\t\tscissorRect: c.scissorRect,\n\t\t\taperture: c.aperture,\n\t\t\tsensitivity: c.sensitivity,\n\t\t\tshutter: c.shutter\n\t\t});\n\t}\n\tonBeforeRemove(entity, component) {\n\t\tthis.removeCamera(component);\n\t\tcomponent.onRemove();\n\t}\n\tonUpdate(dt) {}\n\tonAppPrerender() {\n\t\tfor (let i = 0, len = this.cameras.length; i < len; i++) {\n\t\t\tthis.cameras[i].onAppPrerender();\n\t\t}\n\t}\n\taddCamera(camera) {\n\t\tthis.cameras.push(camera);\n\t\tsortPriority(this.cameras);\n\t}\n\tremoveCamera(camera) {\n\t\tconst index = this.cameras.indexOf(camera);\n\t\tif (index >= 0) {\n\t\t\tthis.cameras.splice(index, 1);\n\t\t\tsortPriority(this.cameras);\n\t\t}\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.app.systems.off('update', this.onUpdate, this);\n\t}\n}\nComponent._buildAccessors(CameraComponent.prototype, _schema$1);\n\nclass LightComponentData {\n\tconstructor() {\n\t\tthis.enabled = true;\n\t\tthis.light = void 0;\n\t\tthis.type = 'directional';\n\t\tthis.color = new Color(1, 1, 1);\n\t\tthis.intensity = 1;\n\t\tthis.luminance = 0;\n\t\tthis.shape = LIGHTSHAPE_PUNCTUAL;\n\t\tthis.affectSpecularity = true;\n\t\tthis.castShadows = false;\n\t\tthis.shadowDistance = 40;\n\t\tthis.shadowIntensity = 1;\n\t\tthis.shadowResolution = 1024;\n\t\tthis.shadowBias = 0.05;\n\t\tthis.numCascades = 1;\n\t\tthis.bakeNumSamples = 1;\n\t\tthis.bakeArea = 0;\n\t\tthis.cascadeDistribution = 0.5;\n\t\tthis.normalOffsetBias = 0;\n\t\tthis.range = 10;\n\t\tthis.innerConeAngle = 40;\n\t\tthis.outerConeAngle = 45;\n\t\tthis.falloffMode = LIGHTFALLOFF_LINEAR;\n\t\tthis.shadowType = SHADOW_PCF3;\n\t\tthis.vsmBlurSize = 11;\n\t\tthis.vsmBlurMode = BLUR_GAUSSIAN;\n\t\tthis.vsmBias = 0.01 * 0.25;\n\t\tthis.cookieAsset = null;\n\t\tthis.cookie = null;\n\t\tthis.cookieIntensity = 1;\n\t\tthis.cookieFalloff = true;\n\t\tthis.cookieChannel = 'rgb';\n\t\tthis.cookieAngle = 0;\n\t\tthis.cookieScale = null;\n\t\tthis.cookieOffset = null;\n\t\tthis.shadowUpdateMode = SHADOWUPDATE_REALTIME;\n\t\tthis.mask = 1;\n\t\tthis.affectDynamic = true;\n\t\tthis.affectLightmapped = false;\n\t\tthis.bake = false;\n\t\tthis.bakeDir = true;\n\t\tthis.isStatic = false;\n\t\tthis.layers = [LAYERID_WORLD];\n\t\tthis.penumbraSize = 1;\n\t}\n}\nconst properties = Object.keys(new LightComponentData());\n\nclass LightComponent extends Component {\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis._evtLayersChanged = null;\n\t\tthis._evtLayerAdded = null;\n\t\tthis._evtLayerRemoved = null;\n\t\tthis._cookieAsset = null;\n\t\tthis._cookieAssetId = null;\n\t\tthis._cookieAssetAdd = false;\n\t\tthis._cookieMatrix = null;\n\t}\n\tget data() {\n\t\tconst record = this.system.store[this.entity.getGuid()];\n\t\treturn record ? record.data : null;\n\t}\n\tset enabled(arg) {\n\t\tthis._setValue('enabled', arg, function (newValue, oldValue) {\n\t\t\tthis.onSetEnabled(null, oldValue, newValue);\n\t\t});\n\t}\n\tget enabled() {\n\t\treturn this.data.enabled;\n\t}\n\tset light(arg) {\n\t\tthis._setValue('light', arg);\n\t}\n\tget light() {\n\t\treturn this.data.light;\n\t}\n\tset type(arg) {\n\t\tthis._setValue('type', arg, function (newValue, oldValue) {\n\t\t\tthis.system.changeType(this, oldValue, newValue);\n\t\t\tthis.refreshProperties();\n\t\t});\n\t}\n\tget type() {\n\t\treturn this.data.type;\n\t}\n\tset color(arg) {\n\t\tthis._setValue('color', arg, function (newValue, oldValue) {\n\t\t\tthis.light.setColor(newValue);\n\t\t}, true);\n\t}\n\tget color() {\n\t\treturn this.data.color;\n\t}\n\tset intensity(arg) {\n\t\tthis._setValue('intensity', arg, function (newValue, oldValue) {\n\t\t\tthis.light.intensity = newValue;\n\t\t});\n\t}\n\tget intensity() {\n\t\treturn this.data.intensity;\n\t}\n\tset luminance(arg) {\n\t\tthis._setValue('luminance', arg, function (newValue, oldValue) {\n\t\t\tthis.light.luminance = newValue;\n\t\t});\n\t}\n\tget luminance() {\n\t\treturn this.data.luminance;\n\t}\n\tset shape(arg) {\n\t\tthis._setValue('shape', arg, function (newValue, oldValue) {\n\t\t\tthis.light.shape = newValue;\n\t\t});\n\t}\n\tget shape() {\n\t\treturn this.data.shape;\n\t}\n\tset affectSpecularity(arg) {\n\t\tthis._setValue('affectSpecularity', arg, function (newValue, oldValue) {\n\t\t\tthis.light.affectSpecularity = newValue;\n\t\t});\n\t}\n\tget affectSpecularity() {\n\t\treturn this.data.affectSpecularity;\n\t}\n\tset castShadows(arg) {\n\t\tthis._setValue('castShadows', arg, function (newValue, oldValue) {\n\t\t\tthis.light.castShadows = newValue;\n\t\t});\n\t}\n\tget castShadows() {\n\t\treturn this.data.castShadows;\n\t}\n\tset shadowDistance(arg) {\n\t\tthis._setValue('shadowDistance', arg, function (newValue, oldValue) {\n\t\t\tthis.light.shadowDistance = newValue;\n\t\t});\n\t}\n\tget shadowDistance() {\n\t\treturn this.data.shadowDistance;\n\t}\n\tset shadowIntensity(arg) {\n\t\tthis._setValue('shadowIntensity', arg, function (newValue, oldValue) {\n\t\t\tthis.light.shadowIntensity = newValue;\n\t\t});\n\t}\n\tget shadowIntensity() {\n\t\treturn this.data.shadowIntensity;\n\t}\n\tset shadowResolution(arg) {\n\t\tthis._setValue('shadowResolution', arg, function (newValue, oldValue) {\n\t\t\tthis.light.shadowResolution = newValue;\n\t\t});\n\t}\n\tget shadowResolution() {\n\t\treturn this.data.shadowResolution;\n\t}\n\tset shadowBias(arg) {\n\t\tthis._setValue('shadowBias', arg, function (newValue, oldValue) {\n\t\t\tthis.light.shadowBias = -0.01 * math.clamp(newValue, 0, 1);\n\t\t});\n\t}\n\tget shadowBias() {\n\t\treturn this.data.shadowBias;\n\t}\n\tset numCascades(arg) {\n\t\tthis._setValue('numCascades', arg, function (newValue, oldValue) {\n\t\t\tthis.light.numCascades = math.clamp(Math.floor(newValue), 1, 4);\n\t\t});\n\t}\n\tget numCascades() {\n\t\treturn this.data.numCascades;\n\t}\n\tset bakeNumSamples(arg) {\n\t\tthis._setValue('bakeNumSamples', arg, function (newValue, oldValue) {\n\t\t\tthis.light.bakeNumSamples = math.clamp(Math.floor(newValue), 1, 255);\n\t\t});\n\t}\n\tget bakeNumSamples() {\n\t\treturn this.data.bakeNumSamples;\n\t}\n\tset bakeArea(arg) {\n\t\tthis._setValue('bakeArea', arg, function (newValue, oldValue) {\n\t\t\tthis.light.bakeArea = math.clamp(newValue, 0, 180);\n\t\t});\n\t}\n\tget bakeArea() {\n\t\treturn this.data.bakeArea;\n\t}\n\tset cascadeDistribution(arg) {\n\t\tthis._setValue('cascadeDistribution', arg, function (newValue, oldValue) {\n\t\t\tthis.light.cascadeDistribution = math.clamp(newValue, 0, 1);\n\t\t});\n\t}\n\tget cascadeDistribution() {\n\t\treturn this.data.cascadeDistribution;\n\t}\n\tset normalOffsetBias(arg) {\n\t\tthis._setValue('normalOffsetBias', arg, function (newValue, oldValue) {\n\t\t\tthis.light.normalOffsetBias = math.clamp(newValue, 0, 1);\n\t\t});\n\t}\n\tget normalOffsetBias() {\n\t\treturn this.data.normalOffsetBias;\n\t}\n\tset range(arg) {\n\t\tthis._setValue('range', arg, function (newValue, oldValue) {\n\t\t\tthis.light.attenuationEnd = newValue;\n\t\t});\n\t}\n\tget range() {\n\t\treturn this.data.range;\n\t}\n\tset innerConeAngle(arg) {\n\t\tthis._setValue('innerConeAngle', arg, function (newValue, oldValue) {\n\t\t\tthis.light.innerConeAngle = newValue;\n\t\t});\n\t}\n\tget innerConeAngle() {\n\t\treturn this.data.innerConeAngle;\n\t}\n\tset outerConeAngle(arg) {\n\t\tthis._setValue('outerConeAngle', arg, function (newValue, oldValue) {\n\t\t\tthis.light.outerConeAngle = newValue;\n\t\t});\n\t}\n\tget outerConeAngle() {\n\t\treturn this.data.outerConeAngle;\n\t}\n\tset falloffMode(arg) {\n\t\tthis._setValue('falloffMode', arg, function (newValue, oldValue) {\n\t\t\tthis.light.falloffMode = newValue;\n\t\t});\n\t}\n\tget falloffMode() {\n\t\treturn this.data.falloffMode;\n\t}\n\tset shadowType(arg) {\n\t\tthis._setValue('shadowType', arg, function (newValue, oldValue) {\n\t\t\tthis.light.shadowType = newValue;\n\t\t});\n\t}\n\tget shadowType() {\n\t\treturn this.data.shadowType;\n\t}\n\tset vsmBlurSize(arg) {\n\t\tthis._setValue('vsmBlurSize', arg, function (newValue, oldValue) {\n\t\t\tthis.light.vsmBlurSize = newValue;\n\t\t});\n\t}\n\tget vsmBlurSize() {\n\t\treturn this.data.vsmBlurSize;\n\t}\n\tset vsmBlurMode(arg) {\n\t\tthis._setValue('vsmBlurMode', arg, function (newValue, oldValue) {\n\t\t\tthis.light.vsmBlurMode = newValue;\n\t\t});\n\t}\n\tget vsmBlurMode() {\n\t\treturn this.data.vsmBlurMode;\n\t}\n\tset vsmBias(arg) {\n\t\tthis._setValue('vsmBias', arg, function (newValue, oldValue) {\n\t\t\tthis.light.vsmBias = math.clamp(newValue, 0, 1);\n\t\t});\n\t}\n\tget vsmBias() {\n\t\treturn this.data.vsmBias;\n\t}\n\tset cookieAsset(arg) {\n\t\tthis._setValue('cookieAsset', arg, function (newValue, oldValue) {\n\t\t\tif (this._cookieAssetId && (newValue instanceof Asset && newValue.id === this._cookieAssetId || newValue === this._cookieAssetId)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.onCookieAssetRemove();\n\t\t\tthis._cookieAssetId = null;\n\t\t\tif (newValue instanceof Asset) {\n\t\t\t\tthis.data.cookieAsset = newValue.id;\n\t\t\t\tthis._cookieAssetId = newValue.id;\n\t\t\t\tthis.onCookieAssetAdd(newValue);\n\t\t\t} else if (typeof newValue === 'number') {\n\t\t\t\tthis._cookieAssetId = newValue;\n\t\t\t\tconst asset = this.system.app.assets.get(newValue);\n\t\t\t\tif (asset) {\n\t\t\t\t\tthis.onCookieAssetAdd(asset);\n\t\t\t\t} else {\n\t\t\t\t\tthis._cookieAssetAdd = true;\n\t\t\t\t\tthis.system.app.assets.on(`add:${this._cookieAssetId}`, this.onCookieAssetAdd, this);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\tget cookieAsset() {\n\t\treturn this.data.cookieAsset;\n\t}\n\tset cookie(arg) {\n\t\tthis._setValue('cookie', arg, function (newValue, oldValue) {\n\t\t\tthis.light.cookie = newValue;\n\t\t});\n\t}\n\tget cookie() {\n\t\treturn this.data.cookie;\n\t}\n\tset cookieIntensity(arg) {\n\t\tthis._setValue('cookieIntensity', arg, function (newValue, oldValue) {\n\t\t\tthis.light.cookieIntensity = math.clamp(newValue, 0, 1);\n\t\t});\n\t}\n\tget cookieIntensity() {\n\t\treturn this.data.cookieIntensity;\n\t}\n\tset cookieFalloff(arg) {\n\t\tthis._setValue('cookieFalloff', arg, function (newValue, oldValue) {\n\t\t\tthis.light.cookieFalloff = newValue;\n\t\t});\n\t}\n\tget cookieFalloff() {\n\t\treturn this.data.cookieFalloff;\n\t}\n\tset cookieChannel(arg) {\n\t\tthis._setValue('cookieChannel', arg, function (newValue, oldValue) {\n\t\t\tthis.light.cookieChannel = newValue;\n\t\t});\n\t}\n\tget cookieChannel() {\n\t\treturn this.data.cookieChannel;\n\t}\n\tset cookieAngle(arg) {\n\t\tthis._setValue('cookieAngle', arg, function (newValue, oldValue) {\n\t\t\tif (newValue !== 0 || this.cookieScale !== null) {\n\t\t\t\tif (!this._cookieMatrix) this._cookieMatrix = new Vec4();\n\t\t\t\tlet scx = 1;\n\t\t\t\tlet scy = 1;\n\t\t\t\tif (this.cookieScale) {\n\t\t\t\t\tscx = this.cookieScale.x;\n\t\t\t\t\tscy = this.cookieScale.y;\n\t\t\t\t}\n\t\t\t\tconst c = Math.cos(newValue * math.DEG_TO_RAD);\n\t\t\t\tconst s = Math.sin(newValue * math.DEG_TO_RAD);\n\t\t\t\tthis._cookieMatrix.set(c / scx, -s / scx, s / scy, c / scy);\n\t\t\t\tthis.light.cookieTransform = this._cookieMatrix;\n\t\t\t} else {\n\t\t\t\tthis.light.cookieTransform = null;\n\t\t\t}\n\t\t});\n\t}\n\tget cookieAngle() {\n\t\treturn this.data.cookieAngle;\n\t}\n\tset cookieScale(arg) {\n\t\tthis._setValue('cookieScale', arg, function (newValue, oldValue) {\n\t\t\tif (newValue !== null || this.cookieAngle !== 0) {\n\t\t\t\tif (!this._cookieMatrix) this._cookieMatrix = new Vec4();\n\t\t\t\tconst scx = newValue.x;\n\t\t\t\tconst scy = newValue.y;\n\t\t\t\tconst c = Math.cos(this.cookieAngle * math.DEG_TO_RAD);\n\t\t\t\tconst s = Math.sin(this.cookieAngle * math.DEG_TO_RAD);\n\t\t\t\tthis._cookieMatrix.set(c / scx, -s / scx, s / scy, c / scy);\n\t\t\t\tthis.light.cookieTransform = this._cookieMatrix;\n\t\t\t} else {\n\t\t\t\tthis.light.cookieTransform = null;\n\t\t\t}\n\t\t}, true);\n\t}\n\tget cookieScale() {\n\t\treturn this.data.cookieScale;\n\t}\n\tset cookieOffset(arg) {\n\t\tthis._setValue('cookieOffset', arg, function (newValue, oldValue) {\n\t\t\tthis.light.cookieOffset = newValue;\n\t\t}, true);\n\t}\n\tget cookieOffset() {\n\t\treturn this.data.cookieOffset;\n\t}\n\tset shadowUpdateMode(arg) {\n\t\tthis._setValue('shadowUpdateMode', arg, function (newValue, oldValue) {\n\t\t\tthis.light.shadowUpdateMode = newValue;\n\t\t}, true);\n\t}\n\tget shadowUpdateMode() {\n\t\treturn this.data.shadowUpdateMode;\n\t}\n\tset mask(arg) {\n\t\tthis._setValue('mask', arg, function (newValue, oldValue) {\n\t\t\tthis.light.mask = newValue;\n\t\t});\n\t}\n\tget mask() {\n\t\treturn this.data.mask;\n\t}\n\tset affectDynamic(arg) {\n\t\tthis._setValue('affectDynamic', arg, function (newValue, oldValue) {\n\t\t\tif (newValue) {\n\t\t\t\tthis.light.mask |= MASK_AFFECT_DYNAMIC;\n\t\t\t} else {\n\t\t\t\tthis.light.mask &= ~MASK_AFFECT_DYNAMIC;\n\t\t\t}\n\t\t\tthis.light.layersDirty();\n\t\t});\n\t}\n\tget affectDynamic() {\n\t\treturn this.data.affectDynamic;\n\t}\n\tset affectLightmapped(arg) {\n\t\tthis._setValue('affectLightmapped', arg, function (newValue, oldValue) {\n\t\t\tif (newValue) {\n\t\t\t\tthis.light.mask |= MASK_AFFECT_LIGHTMAPPED;\n\t\t\t\tif (this.bake) this.light.mask &= ~MASK_BAKE;\n\t\t\t} else {\n\t\t\t\tthis.light.mask &= ~MASK_AFFECT_LIGHTMAPPED;\n\t\t\t\tif (this.bake) this.light.mask |= MASK_BAKE;\n\t\t\t}\n\t\t});\n\t}\n\tget affectLightmapped() {\n\t\treturn this.data.affectLightmapped;\n\t}\n\tset bake(arg) {\n\t\tthis._setValue('bake', arg, function (newValue, oldValue) {\n\t\t\tif (newValue) {\n\t\t\t\tthis.light.mask |= MASK_BAKE;\n\t\t\t\tif (this.affectLightmapped) this.light.mask &= ~MASK_AFFECT_LIGHTMAPPED;\n\t\t\t} else {\n\t\t\t\tthis.light.mask &= ~MASK_BAKE;\n\t\t\t\tif (this.affectLightmapped) this.light.mask |= MASK_AFFECT_LIGHTMAPPED;\n\t\t\t}\n\t\t\tthis.light.layersDirty();\n\t\t});\n\t}\n\tget bake() {\n\t\treturn this.data.bake;\n\t}\n\tset bakeDir(arg) {\n\t\tthis._setValue('bakeDir', arg, function (newValue, oldValue) {\n\t\t\tthis.light.bakeDir = newValue;\n\t\t});\n\t}\n\tget bakeDir() {\n\t\treturn this.data.bakeDir;\n\t}\n\tset isStatic(arg) {\n\t\tthis._setValue('isStatic', arg, function (newValue, oldValue) {\n\t\t\tthis.light.isStatic = newValue;\n\t\t});\n\t}\n\tget isStatic() {\n\t\treturn this.data.isStatic;\n\t}\n\tset layers(arg) {\n\t\tthis._setValue('layers', arg, function (newValue, oldValue) {\n\t\t\tfor (let i = 0; i < oldValue.length; i++) {\n\t\t\t\tconst layer = this.system.app.scene.layers.getLayerById(oldValue[i]);\n\t\t\t\tif (!layer) continue;\n\t\t\t\tlayer.removeLight(this);\n\t\t\t\tthis.light.removeLayer(layer);\n\t\t\t}\n\t\t\tfor (let i = 0; i < newValue.length; i++) {\n\t\t\t\tconst layer = this.system.app.scene.layers.getLayerById(newValue[i]);\n\t\t\t\tif (!layer) continue;\n\t\t\t\tif (this.enabled && this.entity.enabled) {\n\t\t\t\t\tlayer.addLight(this);\n\t\t\t\t\tthis.light.addLayer(layer);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\tget layers() {\n\t\treturn this.data.layers;\n\t}\n\tset shadowUpdateOverrides(values) {\n\t\tthis.light.shadowUpdateOverrides = values;\n\t}\n\tget shadowUpdateOverrides() {\n\t\treturn this.light.shadowUpdateOverrides;\n\t}\n\tset penumbraSize(value) {\n\t\tthis.light.penumbraSize = value;\n\t}\n\tget penumbraSize() {\n\t\treturn this.light.penumbraSize;\n\t}\n\t_setValue(name, value, setFunc, skipEqualsCheck) {\n\t\tconst data = this.data;\n\t\tconst oldValue = data[name];\n\t\tif (!skipEqualsCheck && oldValue === value) return;\n\t\tdata[name] = value;\n\t\tif (setFunc) setFunc.call(this, value, oldValue);\n\t}\n\taddLightToLayers() {\n\t\tfor (let i = 0; i < this.layers.length; i++) {\n\t\t\tconst layer = this.system.app.scene.layers.getLayerById(this.layers[i]);\n\t\t\tif (layer) {\n\t\t\t\tlayer.addLight(this);\n\t\t\t\tthis.light.addLayer(layer);\n\t\t\t}\n\t\t}\n\t}\n\tremoveLightFromLayers() {\n\t\tfor (let i = 0; i < this.layers.length; i++) {\n\t\t\tconst layer = this.system.app.scene.layers.getLayerById(this.layers[i]);\n\t\t\tif (layer) {\n\t\t\t\tlayer.removeLight(this);\n\t\t\t\tthis.light.removeLayer(layer);\n\t\t\t}\n\t\t}\n\t}\n\tonLayersChanged(oldComp, newComp) {\n\t\tif (this.enabled && this.entity.enabled) {\n\t\t\tthis.addLightToLayers();\n\t\t}\n\t\toldComp.off('add', this.onLayerAdded, this);\n\t\toldComp.off('remove', this.onLayerRemoved, this);\n\t\tnewComp.on('add', this.onLayerAdded, this);\n\t\tnewComp.on('remove', this.onLayerRemoved, this);\n\t}\n\tonLayerAdded(layer) {\n\t\tconst index = this.layers.indexOf(layer.id);\n\t\tif (index >= 0 && this.enabled && this.entity.enabled) {\n\t\t\tlayer.addLight(this);\n\t\t\tthis.light.addLayer(layer);\n\t\t}\n\t}\n\tonLayerRemoved(layer) {\n\t\tconst index = this.layers.indexOf(layer.id);\n\t\tif (index >= 0) {\n\t\t\tlayer.removeLight(this);\n\t\t\tthis.light.removeLayer(layer);\n\t\t}\n\t}\n\trefreshProperties() {\n\t\tfor (let i = 0; i < properties.length; i++) {\n\t\t\tconst name = properties[i];\n\t\t\tthis[name] = this[name];\n\t\t}\n\t\tif (this.enabled && this.entity.enabled) {\n\t\t\tthis.onEnable();\n\t\t}\n\t}\n\tonCookieAssetSet() {\n\t\tlet forceLoad = false;\n\t\tif (this._cookieAsset.type === 'cubemap' && !this._cookieAsset.loadFaces) {\n\t\t\tthis._cookieAsset.loadFaces = true;\n\t\t\tforceLoad = true;\n\t\t}\n\t\tif (!this._cookieAsset.resource || forceLoad) this.system.app.assets.load(this._cookieAsset);\n\t\tif (this._cookieAsset.resource) {\n\t\t\tthis.onCookieAssetLoad();\n\t\t}\n\t}\n\tonCookieAssetAdd(asset) {\n\t\tif (this._cookieAssetId !== asset.id) return;\n\t\tthis._cookieAsset = asset;\n\t\tif (this.light.enabled) {\n\t\t\tthis.onCookieAssetSet();\n\t\t}\n\t\tthis._cookieAsset.on('load', this.onCookieAssetLoad, this);\n\t\tthis._cookieAsset.on('remove', this.onCookieAssetRemove, this);\n\t}\n\tonCookieAssetLoad() {\n\t\tif (!this._cookieAsset || !this._cookieAsset.resource) {\n\t\t\treturn;\n\t\t}\n\t\tthis.cookie = this._cookieAsset.resource;\n\t}\n\tonCookieAssetRemove() {\n\t\tif (!this._cookieAssetId) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._cookieAssetAdd) {\n\t\t\tthis.system.app.assets.off(`add:${this._cookieAssetId}`, this.onCookieAssetAdd, this);\n\t\t\tthis._cookieAssetAdd = false;\n\t\t}\n\t\tif (this._cookieAsset) {\n\t\t\tthis._cookieAsset.off('load', this.onCookieAssetLoad, this);\n\t\t\tthis._cookieAsset.off('remove', this.onCookieAssetRemove, this);\n\t\t\tthis._cookieAsset = null;\n\t\t}\n\t\tthis.cookie = null;\n\t}\n\tonEnable() {\n\t\tconst scene = this.system.app.scene;\n\t\tconst layers = scene.layers;\n\t\tthis.light.enabled = true;\n\t\tthis._evtLayersChanged = scene.on('set:layers', this.onLayersChanged, this);\n\t\tif (layers) {\n\t\t\tthis._evtLayerAdded = layers.on('add', this.onLayerAdded, this);\n\t\t\tthis._evtLayerRemoved = layers.on('remove', this.onLayerRemoved, this);\n\t\t}\n\t\tif (this.enabled && this.entity.enabled) {\n\t\t\tthis.addLightToLayers();\n\t\t}\n\t\tif (this._cookieAsset && !this.cookie) {\n\t\t\tthis.onCookieAssetSet();\n\t\t}\n\t}\n\tonDisable() {\n\t\tvar _this$_evtLayersChang;\n\t\tconst scene = this.system.app.scene;\n\t\tconst layers = scene.layers;\n\t\tthis.light.enabled = false;\n\t\t(_this$_evtLayersChang = this._evtLayersChanged) == null || _this$_evtLayersChang.off();\n\t\tthis._evtLayersChanged = null;\n\t\tif (layers) {\n\t\t\tvar _this$_evtLayerAdded, _this$_evtLayerRemove;\n\t\t\t(_this$_evtLayerAdded = this._evtLayerAdded) == null || _this$_evtLayerAdded.off();\n\t\t\tthis._evtLayerAdded = null;\n\t\t\t(_this$_evtLayerRemove = this._evtLayerRemoved) == null || _this$_evtLayerRemove.off();\n\t\t\tthis._evtLayerRemoved = null;\n\t\t}\n\t\tthis.removeLightFromLayers();\n\t}\n\tonRemove() {\n\t\tthis.onDisable();\n\t\tthis.light.destroy();\n\t\tthis.cookieAsset = null;\n\t}\n}\n\nclass LightComponentSystem extends ComponentSystem {\n\tconstructor(app) {\n\t\tsuper(app);\n\t\tthis.id = 'light';\n\t\tthis.ComponentType = LightComponent;\n\t\tthis.DataType = LightComponentData;\n\t\tthis.on('beforeremove', this._onRemoveComponent, this);\n\t}\n\tinitializeComponentData(component, _data) {\n\t\tconst data = _extends({}, _data);\n\t\tif (!data.type) {\n\t\t\tdata.type = component.data.type;\n\t\t}\n\t\tcomponent.data.type = data.type;\n\t\tif (data.layers && Array.isArray(data.layers)) {\n\t\t\tdata.layers = data.layers.slice(0);\n\t\t}\n\t\tif (data.color && Array.isArray(data.color)) {\n\t\t\tdata.color = new Color(data.color[0], data.color[1], data.color[2]);\n\t\t}\n\t\tif (data.cookieOffset && data.cookieOffset instanceof Array) {\n\t\t\tdata.cookieOffset = new Vec2(data.cookieOffset[0], data.cookieOffset[1]);\n\t\t}\n\t\tif (data.cookieScale && data.cookieScale instanceof Array) {\n\t\t\tdata.cookieScale = new Vec2(data.cookieScale[0], data.cookieScale[1]);\n\t\t}\n\t\tif (data.enable) {\n\t\t\tconsole.warn('WARNING: enable: Property is deprecated. Set enabled property instead.');\n\t\t\tdata.enabled = data.enable;\n\t\t}\n\t\tif (!data.shape) {\n\t\t\tdata.shape = LIGHTSHAPE_PUNCTUAL;\n\t\t}\n\t\tconst light = new Light(this.app.graphicsDevice, this.app.scene.clusteredLightingEnabled);\n\t\tlight.type = lightTypes[data.type];\n\t\tlight._node = component.entity;\n\t\tcomponent.data.light = light;\n\t\tsuper.initializeComponentData(component, data, properties);\n\t}\n\t_onRemoveComponent(entity, component) {\n\t\tcomponent.onRemove();\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst light = entity.light;\n\t\tconst data = [];\n\t\tlet name;\n\t\tfor (let i = 0; i < properties.length; i++) {\n\t\t\tname = properties[i];\n\t\t\tif (name === 'light') {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (light[name] && light[name].clone) {\n\t\t\t\tdata[name] = light[name].clone();\n\t\t\t} else {\n\t\t\t\tdata[name] = light[name];\n\t\t\t}\n\t\t}\n\t\treturn this.addComponent(clone, data);\n\t}\n\tchangeType(component, oldValue, newValue) {\n\t\tif (oldValue !== newValue) {\n\t\t\tcomponent.light.type = lightTypes[newValue];\n\t\t}\n\t}\n}\n\nconst components = ['x', 'y', 'z', 'w'];\nconst vecLookup = [undefined, undefined, Vec2, Vec3, Vec4];\nfunction rawToValue(app, args, value, old) {\n\tswitch (args.type) {\n\t\tcase 'boolean':\n\t\t\treturn !!value;\n\t\tcase 'number':\n\t\t\tif (typeof value === 'number') {\n\t\t\t\treturn value;\n\t\t\t} else if (typeof value === 'string') {\n\t\t\t\tconst v = parseInt(value, 10);\n\t\t\t\tif (isNaN(v)) return null;\n\t\t\t\treturn v;\n\t\t\t} else if (typeof value === 'boolean') {\n\t\t\t\treturn 0 + value;\n\t\t\t}\n\t\t\treturn null;\n\t\tcase 'json':\n\t\t\t{\n\t\t\t\tconst result = {};\n\t\t\t\tif (Array.isArray(args.schema)) {\n\t\t\t\t\tif (!value || typeof value !== 'object') {\n\t\t\t\t\t\tvalue = {};\n\t\t\t\t\t}\n\t\t\t\t\tfor (let i = 0; i < args.schema.length; i++) {\n\t\t\t\t\t\tconst field = args.schema[i];\n\t\t\t\t\t\tif (!field.name) continue;\n\t\t\t\t\t\tif (field.array) {\n\t\t\t\t\t\t\tresult[field.name] = [];\n\t\t\t\t\t\t\tconst arr = Array.isArray(value[field.name]) ? value[field.name] : [];\n\t\t\t\t\t\t\tfor (let j = 0; j < arr.length; j++) {\n\t\t\t\t\t\t\t\tresult[field.name].push(rawToValue(app, field, arr[j]));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst val = value.hasOwnProperty(field.name) ? value[field.name] : field.default;\n\t\t\t\t\t\t\tresult[field.name] = rawToValue(app, field, val);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t}\n\t\tcase 'asset':\n\t\t\tif (value instanceof Asset) {\n\t\t\t\treturn value;\n\t\t\t} else if (typeof value === 'number') {\n\t\t\t\treturn app.assets.get(value) || null;\n\t\t\t} else if (typeof value === 'string') {\n\t\t\t\treturn app.assets.get(parseInt(value, 10)) || null;\n\t\t\t}\n\t\t\treturn null;\n\t\tcase 'entity':\n\t\t\tif (value instanceof GraphNode) {\n\t\t\t\treturn value;\n\t\t\t} else if (typeof value === 'string') {\n\t\t\t\treturn app.getEntityFromIndex(value);\n\t\t\t}\n\t\t\treturn null;\n\t\tcase 'rgb':\n\t\tcase 'rgba':\n\t\t\tif (value instanceof Color) {\n\t\t\t\tif (old instanceof Color) {\n\t\t\t\t\told.copy(value);\n\t\t\t\t\treturn old;\n\t\t\t\t}\n\t\t\t\treturn value.clone();\n\t\t\t} else if (value instanceof Array && value.length >= 3 && value.length <= 4) {\n\t\t\t\tfor (let i = 0; i < value.length; i++) {\n\t\t\t\t\tif (typeof value[i] !== 'number') {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!old) old = new Color();\n\t\t\t\told.r = value[0];\n\t\t\t\told.g = value[1];\n\t\t\t\told.b = value[2];\n\t\t\t\told.a = value.length === 3 ? 1 : value[3];\n\t\t\t\treturn old;\n\t\t\t} else if (typeof value === 'string' && /#(?:[0-9a-f]{2}){3,4}/i.test(value)) {\n\t\t\t\tif (!old) {\n\t\t\t\t\told = new Color();\n\t\t\t\t}\n\t\t\t\told.fromString(value);\n\t\t\t\treturn old;\n\t\t\t}\n\t\t\treturn null;\n\t\tcase 'vec2':\n\t\tcase 'vec3':\n\t\tcase 'vec4':\n\t\t\t{\n\t\t\t\tconst len = parseInt(args.type.slice(3), 10);\n\t\t\t\tconst vecType = vecLookup[len];\n\t\t\t\tif (value instanceof vecType) {\n\t\t\t\t\tif (old instanceof vecType) {\n\t\t\t\t\t\told.copy(value);\n\t\t\t\t\t\treturn old;\n\t\t\t\t\t}\n\t\t\t\t\treturn value.clone();\n\t\t\t\t} else if (value instanceof Array && value.length === len) {\n\t\t\t\t\tfor (let i = 0; i < value.length; i++) {\n\t\t\t\t\t\tif (typeof value[i] !== 'number') {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!old) old = new vecType();\n\t\t\t\t\tfor (let i = 0; i < len; i++) {\n\t\t\t\t\t\told[components[i]] = value[i];\n\t\t\t\t\t}\n\t\t\t\t\treturn old;\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t}\n\t\tcase 'curve':\n\t\t\tif (value) {\n\t\t\t\tlet curve;\n\t\t\t\tif (value instanceof Curve || value instanceof CurveSet) {\n\t\t\t\t\tcurve = value.clone();\n\t\t\t\t} else {\n\t\t\t\t\tconst CurveType = value.keys[0] instanceof Array ? CurveSet : Curve;\n\t\t\t\t\tcurve = new CurveType(value.keys);\n\t\t\t\t\tcurve.type = value.type;\n\t\t\t\t}\n\t\t\t\treturn curve;\n\t\t\t}\n\t\t\tbreak;\n\t}\n\treturn value;\n}\nfunction attributeToValue(app, schema, value, current) {\n\tif (schema.array) {\n\t\treturn value.map((item, index) => rawToValue(app, schema, item, current ? current[index] : null));\n\t}\n\treturn rawToValue(app, schema, value, current);\n}\nfunction assignAttributesToScript(app, attributeSchemaMap, data, script) {\n\tif (!data) return;\n\tfor (const attributeName in attributeSchemaMap) {\n\t\tconst attributeSchema = attributeSchemaMap[attributeName];\n\t\tconst dataToAssign = data[attributeName];\n\t\tif (dataToAssign === undefined) continue;\n\t\tscript[attributeName] = attributeToValue(app, attributeSchema, dataToAssign, script[attributeName]);\n\t}\n}\nclass ScriptAttributes {\n\tconstructor(scriptType) {\n\t\tthis.scriptType = scriptType;\n\t\tthis.index = {};\n\t}\n\tadd(name, args) {\n\t\tif (this.index[name]) {\n\t\t\treturn;\n\t\t} else if (ScriptAttributes.reservedNames.has(name)) {\n\t\t\treturn;\n\t\t}\n\t\tthis.index[name] = args;\n\t\tObject.defineProperty(this.scriptType.prototype, name, {\n\t\t\tget: function () {\n\t\t\t\treturn this.__attributes[name];\n\t\t\t},\n\t\t\tset: function (raw) {\n\t\t\t\tconst evt = 'attr';\n\t\t\t\tconst evtName = `attr:${name}`;\n\t\t\t\tconst old = this.__attributes[name];\n\t\t\t\tlet oldCopy = old;\n\t\t\t\tif (old && args.type !== 'json' && args.type !== 'entity' && old.clone) {\n\t\t\t\t\tif (this.hasEvent(evt) || this.hasEvent(evtName)) {\n\t\t\t\t\t\toldCopy = old.clone();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (args.array) {\n\t\t\t\t\tthis.__attributes[name] = [];\n\t\t\t\t\tif (raw) {\n\t\t\t\t\t\tfor (let i = 0, len = raw.length; i < len; i++) {\n\t\t\t\t\t\t\tthis.__attributes[name].push(rawToValue(this.app, args, raw[i], old ? old[i] : null));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.__attributes[name] = rawToValue(this.app, args, raw, old);\n\t\t\t\t}\n\t\t\t\tthis.fire(evt, name, this.__attributes[name], oldCopy);\n\t\t\t\tthis.fire(evtName, this.__attributes[name], oldCopy);\n\t\t\t}\n\t\t});\n\t}\n\tremove(name) {\n\t\tif (!this.index[name]) {\n\t\t\treturn false;\n\t\t}\n\t\tdelete this.index[name];\n\t\tdelete this.scriptType.prototype[name];\n\t\treturn true;\n\t}\n\thas(name) {\n\t\treturn !!this.index[name];\n\t}\n\tget(name) {\n\t\treturn this.index[name] || null;\n\t}\n}\nScriptAttributes.assignAttributesToScript = assignAttributesToScript;\nScriptAttributes.attributeToValue = attributeToValue;\nScriptAttributes.reservedNames = new Set(['app', 'entity', 'enabled', '_enabled', '_enabledOld', '_destroyed', '__attributes', '__attributesRaw', '__scriptType', '__executionOrder', '_callbacks', '_callbackActive', 'has', 'get', 'on', 'off', 'fire', 'once', 'hasEvent']);\n\nconst SCRIPT_INITIALIZE = 'initialize';\nconst SCRIPT_POST_INITIALIZE = 'postInitialize';\nconst SCRIPT_UPDATE = 'update';\nconst SCRIPT_POST_UPDATE = 'postUpdate';\nconst SCRIPT_SWAP = 'swap';\n\nclass Script extends EventHandler {\n\tconstructor(args) {\n\t\tsuper();\n\t\tthis.app = void 0;\n\t\tthis.entity = void 0;\n\t\tthis._enabled = void 0;\n\t\tthis._enabledOld = void 0;\n\t\tthis._initialized = void 0;\n\t\tthis._postInitialized = void 0;\n\t\tthis.__destroyed = void 0;\n\t\tthis.__scriptType = void 0;\n\t\tthis.__executionOrder = void 0;\n\t\tthis.initScript(args);\n\t}\n\tset enabled(value) {\n\t\tthis._enabled = !!value;\n\t\tif (this.enabled === this._enabledOld) return;\n\t\tthis._enabledOld = this.enabled;\n\t\tthis.fire(this.enabled ? 'enable' : 'disable');\n\t\tthis.fire('state', this.enabled);\n\t\tif (!this._initialized && this.enabled) {\n\t\t\tthis._initialized = true;\n\t\t\tthis.fire('preInitialize');\n\t\t\tif (this.initialize) {\n\t\t\t\tthis.entity.script._scriptMethod(this, SCRIPT_INITIALIZE);\n\t\t\t}\n\t\t}\n\t\tif (this._initialized && !this._postInitialized && this.enabled && !this.entity.script._beingEnabled) {\n\t\t\tthis._postInitialized = true;\n\t\t\tif (this.postInitialize) {\n\t\t\t\tthis.entity.script._scriptMethod(this, SCRIPT_POST_INITIALIZE);\n\t\t\t}\n\t\t}\n\t}\n\tget enabled() {\n\t\treturn this._enabled && !this._destroyed && this.entity.script.enabled && this.entity.enabled;\n\t}\n\tinitScript(args) {\n\t\tconst script = this.constructor;\n\t\tthis.app = args.app;\n\t\tthis.entity = args.entity;\n\t\tthis._enabled = typeof args.enabled === 'boolean' ? args.enabled : true;\n\t\tthis._enabledOld = this.enabled;\n\t\tthis.__destroyed = false;\n\t\tthis.__scriptType = script;\n\t\tthis.__executionOrder = -1;\n\t}\n\tstatic get scriptName() {\n\t\treturn this.__name;\n\t}\n}\nScript.EVENT_ENABLE = 'enable';\nScript.EVENT_DISABLE = 'disable';\nScript.EVENT_STATE = 'state';\nScript.EVENT_DESTROY = 'destroy';\nScript.EVENT_ATTR = 'attr';\nScript.EVENT_ERROR = 'error';\nScript.__name = null;\nScript.__getScriptName = getScriptName;\nconst funcNameRegex = /^\\s*function(?:\\s|\\s*\\/\\*.*\\*\\/\\s*)+([^(\\s\\/]*)\\s*/;\nfunction getScriptName(constructorFn) {\n\tif (typeof constructorFn !== 'function') return undefined;\n\tif ('name' in Function.prototype) return constructorFn.name;\n\tif (constructorFn === Function || constructorFn === Function.prototype.constructor) return 'Function';\n\tconst match = `${constructorFn}`.match(funcNameRegex);\n\treturn match ? match[1] : undefined;\n}\n\nclass ScriptType extends Script {\n\tconstructor(args) {\n\t\tsuper(args);\n\t\tthis.__attributes = void 0;\n\t\tthis.__attributesRaw = void 0;\n\t\tthis.initScriptType(args);\n\t}\n\tstatic get attributes() {\n\t\tif (!this.hasOwnProperty('__attributes')) this.__attributes = new ScriptAttributes(this);\n\t\treturn this.__attributes;\n\t}\n\tinitScript(args) {\n\t\tScript.prototype.initScript.call(this, args);\n\t\tthis.__attributes = {};\n\t\tthis.__attributesRaw = args.attributes || {};\n\t}\n\tinitScriptType(args) {\n\t\tthis.initScript(args);\n\t}\n\t__initializeAttributes(force) {\n\t\tif (!force && !this.__attributesRaw) {\n\t\t\treturn;\n\t\t}\n\t\tfor (const key in this.__scriptType.attributes.index) {\n\t\t\tif (this.__attributesRaw && this.__attributesRaw.hasOwnProperty(key)) {\n\t\t\t\tthis[key] = this.__attributesRaw[key];\n\t\t\t} else if (!this.__attributes.hasOwnProperty(key)) {\n\t\t\t\tif (this.__scriptType.attributes.index[key].hasOwnProperty('default')) {\n\t\t\t\t\tthis[key] = this.__scriptType.attributes.index[key].default;\n\t\t\t\t} else {\n\t\t\t\t\tthis[key] = null;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.__attributesRaw = null;\n\t}\n\tstatic extend(methods) {\n\t\tfor (const key in methods) {\n\t\t\tif (!methods.hasOwnProperty(key)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis.prototype[key] = methods[key];\n\t\t}\n\t}\n}\n\nconst toLowerCamelCase$1 = str => str[0].toLowerCase() + str.substring(1);\nclass ScriptComponent extends Component {\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis._attributeDataMap = new Map();\n\t\tthis._scripts = [];\n\t\tthis._updateList = new SortedLoopArray({\n\t\t\tsortBy: '__executionOrder'\n\t\t});\n\t\tthis._postUpdateList = new SortedLoopArray({\n\t\t\tsortBy: '__executionOrder'\n\t\t});\n\t\tthis._scriptsIndex = {};\n\t\tthis._destroyedScripts = [];\n\t\tthis._destroyed = false;\n\t\tthis._scriptsData = null;\n\t\tthis._oldState = true;\n\t\tthis._enabled = true;\n\t\tthis._beingEnabled = false;\n\t\tthis._isLoopingThroughScripts = false;\n\t\tthis._executionOrder = -1;\n\t\tthis.on('set_enabled', this._onSetEnabled, this);\n\t}\n\tset scripts(value) {\n\t\tthis._scriptsData = value;\n\t\tfor (const key in value) {\n\t\t\tif (!value.hasOwnProperty(key)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst script = this._scriptsIndex[key];\n\t\t\tif (script) {\n\t\t\t\tif (typeof value[key].enabled === 'boolean') {\n\t\t\t\t\tscript.once('preInitialize', () => {\n\t\t\t\t\t\tthis.initializeAttributes(script);\n\t\t\t\t\t});\n\t\t\t\t\tscript.enabled = !!value[key].enabled;\n\t\t\t\t}\n\t\t\t\tif (typeof value[key].attributes === 'object') {\n\t\t\t\t\tfor (const attr in value[key].attributes) {\n\t\t\t\t\t\tif (ScriptAttributes.reservedNames.has(attr)) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!script.__attributes.hasOwnProperty(attr)) {\n\t\t\t\t\t\t\tconst scriptType = this.system.app.scripts.get(key);\n\t\t\t\t\t\t\tif (scriptType) {\n\t\t\t\t\t\t\t\tscriptType.attributes.add(attr, {});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tscript[attr] = value[key].attributes[attr];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconsole.log(this.order);\n\t\t\t}\n\t\t}\n\t}\n\tget scripts() {\n\t\treturn this._scripts;\n\t}\n\tset enabled(value) {\n\t\tconst oldValue = this._enabled;\n\t\tthis._enabled = value;\n\t\tthis.fire('set', 'enabled', oldValue, value);\n\t}\n\tget enabled() {\n\t\treturn this._enabled;\n\t}\n\tonEnable() {\n\t\tthis._beingEnabled = true;\n\t\tthis._checkState();\n\t\tif (!this.entity._beingEnabled) {\n\t\t\tthis.onPostStateChange();\n\t\t}\n\t\tthis._beingEnabled = false;\n\t}\n\tonDisable() {\n\t\tthis._checkState();\n\t}\n\tonPostStateChange() {\n\t\tconst wasLooping = this._beginLooping();\n\t\tfor (let i = 0, len = this.scripts.length; i < len; i++) {\n\t\t\tconst script = this.scripts[i];\n\t\t\tif (script._initialized && !script._postInitialized && script.enabled) {\n\t\t\t\tscript._postInitialized = true;\n\t\t\t\tif (script.postInitialize) {\n\t\t\t\t\tthis._scriptMethod(script, SCRIPT_POST_INITIALIZE);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._endLooping(wasLooping);\n\t}\n\t_beginLooping() {\n\t\tconst looping = this._isLoopingThroughScripts;\n\t\tthis._isLoopingThroughScripts = true;\n\t\treturn looping;\n\t}\n\t_endLooping(wasLoopingBefore) {\n\t\tthis._isLoopingThroughScripts = wasLoopingBefore;\n\t\tif (!this._isLoopingThroughScripts) {\n\t\t\tthis._removeDestroyedScripts();\n\t\t}\n\t}\n\t_onSetEnabled(prop, old, value) {\n\t\tthis._beingEnabled = true;\n\t\tthis._checkState();\n\t\tthis._beingEnabled = false;\n\t}\n\t_checkState() {\n\t\tconst state = this.enabled && this.entity.enabled;\n\t\tif (state === this._oldState) {\n\t\t\treturn;\n\t\t}\n\t\tthis._oldState = state;\n\t\tthis.fire(state ? 'enable' : 'disable');\n\t\tthis.fire('state', state);\n\t\tif (state) {\n\t\t\tthis.system._addComponentToEnabled(this);\n\t\t} else {\n\t\t\tthis.system._removeComponentFromEnabled(this);\n\t\t}\n\t\tconst wasLooping = this._beginLooping();\n\t\tfor (let i = 0, len = this.scripts.length; i < len; i++) {\n\t\t\tconst script = this.scripts[i];\n\t\t\tscript.once('preInitialize', () => {\n\t\t\t\tthis.initializeAttributes(script);\n\t\t\t});\n\t\t\tscript.enabled = script._enabled;\n\t\t}\n\t\tthis._endLooping(wasLooping);\n\t}\n\t_onBeforeRemove() {\n\t\tthis.fire('remove');\n\t\tconst wasLooping = this._beginLooping();\n\t\tfor (let i = 0; i < this.scripts.length; i++) {\n\t\t\tconst script = this.scripts[i];\n\t\t\tif (!script) continue;\n\t\t\tthis.destroy(script.__scriptType.__name);\n\t\t}\n\t\tthis._endLooping(wasLooping);\n\t}\n\t_removeDestroyedScripts() {\n\t\tconst len = this._destroyedScripts.length;\n\t\tif (!len) return;\n\t\tfor (let i = 0; i < len; i++) {\n\t\t\tconst script = this._destroyedScripts[i];\n\t\t\tthis._removeScriptInstance(script);\n\t\t}\n\t\tthis._destroyedScripts.length = 0;\n\t\tthis._resetExecutionOrder(0, this._scripts.length);\n\t}\n\t_onInitializeAttributes() {\n\t\tfor (let i = 0, len = this.scripts.length; i < len; i++) {\n\t\t\tconst script = this.scripts[i];\n\t\t\tthis.initializeAttributes(script);\n\t\t}\n\t}\n\tinitializeAttributes(script) {\n\t\tif (script instanceof ScriptType) {\n\t\t\tscript.__initializeAttributes();\n\t\t} else {\n\t\t\tvar _this$system$app$scri;\n\t\t\tconst name = script.__scriptType.__name;\n\t\t\tconst data = this._attributeDataMap.get(name);\n\t\t\tif (!data) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst schema = (_this$system$app$scri = this.system.app.scripts) == null ? void 0 : _this$system$app$scri.getSchema(name);\n\t\t\tassignAttributesToScript(this.system.app, schema.attributes, data, script);\n\t\t}\n\t}\n\t_scriptMethod(script, method, arg) {\n\t\tscript[method](arg);\n\t}\n\t_onInitialize() {\n\t\tconst scripts = this._scripts;\n\t\tconst wasLooping = this._beginLooping();\n\t\tfor (let i = 0, len = scripts.length; i < len; i++) {\n\t\t\tconst script = scripts[i];\n\t\t\tif (!script._initialized && script.enabled) {\n\t\t\t\tscript._initialized = true;\n\t\t\t\tif (script.initialize) {\n\t\t\t\t\tthis._scriptMethod(script, SCRIPT_INITIALIZE);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._endLooping(wasLooping);\n\t}\n\t_onPostInitialize() {\n\t\tthis.onPostStateChange();\n\t}\n\t_onUpdate(dt) {\n\t\tconst list = this._updateList;\n\t\tif (!list.length) return;\n\t\tconst wasLooping = this._beginLooping();\n\t\tfor (list.loopIndex = 0; list.loopIndex < list.length; list.loopIndex++) {\n\t\t\tconst script = list.items[list.loopIndex];\n\t\t\tif (script.enabled) {\n\t\t\t\tthis._scriptMethod(script, SCRIPT_UPDATE, dt);\n\t\t\t}\n\t\t}\n\t\tthis._endLooping(wasLooping);\n\t}\n\t_onPostUpdate(dt) {\n\t\tconst list = this._postUpdateList;\n\t\tif (!list.length) return;\n\t\tconst wasLooping = this._beginLooping();\n\t\tfor (list.loopIndex = 0; list.loopIndex < list.length; list.loopIndex++) {\n\t\t\tconst script = list.items[list.loopIndex];\n\t\t\tif (script.enabled) {\n\t\t\t\tthis._scriptMethod(script, SCRIPT_POST_UPDATE, dt);\n\t\t\t}\n\t\t}\n\t\tthis._endLooping(wasLooping);\n\t}\n\t_insertScriptInstance(scriptInstance, index, scriptsLength) {\n\t\tif (index === -1) {\n\t\t\tthis._scripts.push(scriptInstance);\n\t\t\tscriptInstance.__executionOrder = scriptsLength;\n\t\t\tif (scriptInstance.update) {\n\t\t\t\tthis._updateList.append(scriptInstance);\n\t\t\t}\n\t\t\tif (scriptInstance.postUpdate) {\n\t\t\t\tthis._postUpdateList.append(scriptInstance);\n\t\t\t}\n\t\t} else {\n\t\t\tthis._scripts.splice(index, 0, scriptInstance);\n\t\t\tscriptInstance.__executionOrder = index;\n\t\t\tthis._resetExecutionOrder(index + 1, scriptsLength + 1);\n\t\t\tif (scriptInstance.update) {\n\t\t\t\tthis._updateList.insert(scriptInstance);\n\t\t\t}\n\t\t\tif (scriptInstance.postUpdate) {\n\t\t\t\tthis._postUpdateList.insert(scriptInstance);\n\t\t\t}\n\t\t}\n\t}\n\t_removeScriptInstance(scriptInstance) {\n\t\tconst idx = this._scripts.indexOf(scriptInstance);\n\t\tif (idx === -1) return idx;\n\t\tthis._scripts.splice(idx, 1);\n\t\tif (scriptInstance.update) {\n\t\t\tthis._updateList.remove(scriptInstance);\n\t\t}\n\t\tif (scriptInstance.postUpdate) {\n\t\t\tthis._postUpdateList.remove(scriptInstance);\n\t\t}\n\t\treturn idx;\n\t}\n\t_resetExecutionOrder(startIndex, scriptsLength) {\n\t\tfor (let i = startIndex; i < scriptsLength; i++) {\n\t\t\tthis._scripts[i].__executionOrder = i;\n\t\t}\n\t}\n\t_resolveEntityScriptAttribute(attribute, attributeName, oldValue, useGuid, newAttributes, duplicatedIdsMap) {\n\t\tif (attribute.array) {\n\t\t\tconst len = oldValue.length;\n\t\t\tif (!len) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst newGuidArray = oldValue.slice();\n\t\t\tfor (let i = 0; i < len; i++) {\n\t\t\t\tconst guid = newGuidArray[i] instanceof Entity ? newGuidArray[i].getGuid() : newGuidArray[i];\n\t\t\t\tif (duplicatedIdsMap[guid]) {\n\t\t\t\t\tnewGuidArray[i] = useGuid ? duplicatedIdsMap[guid].getGuid() : duplicatedIdsMap[guid];\n\t\t\t\t}\n\t\t\t}\n\t\t\tnewAttributes[attributeName] = newGuidArray;\n\t\t} else {\n\t\t\tif (oldValue instanceof Entity) {\n\t\t\t\toldValue = oldValue.getGuid();\n\t\t\t} else if (typeof oldValue !== 'string') {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (duplicatedIdsMap[oldValue]) {\n\t\t\t\tnewAttributes[attributeName] = duplicatedIdsMap[oldValue];\n\t\t\t}\n\t\t}\n\t}\n\thas(nameOrType) {\n\t\tif (typeof nameOrType === 'string') {\n\t\t\treturn !!this._scriptsIndex[nameOrType];\n\t\t}\n\t\tif (!nameOrType) return false;\n\t\tconst scriptType = nameOrType;\n\t\tconst scriptName = scriptType.__name;\n\t\tconst scriptData = this._scriptsIndex[scriptName];\n\t\tconst scriptInstance = scriptData && scriptData.instance;\n\t\treturn scriptInstance instanceof scriptType;\n\t}\n\tget(nameOrType) {\n\t\tif (typeof nameOrType === 'string') {\n\t\t\tconst data = this._scriptsIndex[nameOrType];\n\t\t\treturn data ? data.instance : null;\n\t\t}\n\t\tif (!nameOrType) return null;\n\t\tconst scriptType = nameOrType;\n\t\tconst scriptName = scriptType.__name;\n\t\tconst scriptData = this._scriptsIndex[scriptName];\n\t\tconst scriptInstance = scriptData && scriptData.instance;\n\t\treturn scriptInstance instanceof scriptType ? scriptInstance : null;\n\t}\n\tcreate(nameOrType, args = {}) {\n\t\tconst self = this;\n\t\tlet scriptType = nameOrType;\n\t\tlet scriptName = nameOrType;\n\t\tif (typeof scriptType === 'string') {\n\t\t\tscriptType = this.system.app.scripts.get(scriptType);\n\t\t} else if (scriptType) {\n\t\t\tvar _scriptType, _scriptType$__name;\n\t\t\tscriptName = (_scriptType$__name = (_scriptType = scriptType).__name) != null ? _scriptType$__name : _scriptType.__name = toLowerCamelCase$1(getScriptName(scriptType));\n\t\t}\n\t\tif (scriptType) {\n\t\t\tif (!this._scriptsIndex[scriptName] || !this._scriptsIndex[scriptName].instance) {\n\t\t\t\tconst scriptInstance = new scriptType({\n\t\t\t\t\tapp: this.system.app,\n\t\t\t\t\tentity: this.entity,\n\t\t\t\t\tenabled: args.hasOwnProperty('enabled') ? args.enabled : true,\n\t\t\t\t\tattributes: args.attributes\n\t\t\t\t});\n\t\t\t\tif (!(scriptInstance instanceof ScriptType)) {\n\t\t\t\t\tthis._attributeDataMap.set(scriptName, args.attributes);\n\t\t\t\t}\n\t\t\t\tconst len = this._scripts.length;\n\t\t\t\tlet ind = -1;\n\t\t\t\tif (typeof args.ind === 'number' && args.ind !== -1 && len > args.ind) {\n\t\t\t\t\tind = args.ind;\n\t\t\t\t}\n\t\t\t\tthis._insertScriptInstance(scriptInstance, ind, len);\n\t\t\t\tthis._scriptsIndex[scriptName] = {\n\t\t\t\t\tinstance: scriptInstance,\n\t\t\t\t\tonSwap: function () {\n\t\t\t\t\t\tself.swap(scriptName);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tthis[scriptName] = scriptInstance;\n\t\t\t\tif (!args.preloading) {\n\t\t\t\t\tthis.initializeAttributes(scriptInstance);\n\t\t\t\t}\n\t\t\t\tthis.fire('create', scriptName, scriptInstance);\n\t\t\t\tthis.fire(`create:${scriptName}`, scriptInstance);\n\t\t\t\tthis.system.app.scripts.on(`swap:${scriptName}`, this._scriptsIndex[scriptName].onSwap);\n\t\t\t\tif (!args.preloading) {\n\t\t\t\t\tif (scriptInstance.enabled && !scriptInstance._initialized) {\n\t\t\t\t\t\tscriptInstance._initialized = true;\n\t\t\t\t\t\tif (scriptInstance.initialize) {\n\t\t\t\t\t\t\tthis._scriptMethod(scriptInstance, SCRIPT_INITIALIZE);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (scriptInstance.enabled && !scriptInstance._postInitialized) {\n\t\t\t\t\t\tscriptInstance._postInitialized = true;\n\t\t\t\t\t\tif (scriptInstance.postInitialize) {\n\t\t\t\t\t\t\tthis._scriptMethod(scriptInstance, SCRIPT_POST_INITIALIZE);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn scriptInstance;\n\t\t\t}\n\t\t} else {\n\t\t\tthis._scriptsIndex[scriptName] = {\n\t\t\t\tawaiting: true,\n\t\t\t\tind: this._scripts.length\n\t\t\t};\n\t\t}\n\t\treturn null;\n\t}\n\tdestroy(nameOrType) {\n\t\tlet scriptName = nameOrType;\n\t\tlet scriptType = nameOrType;\n\t\tif (typeof scriptType === 'string') {\n\t\t\tscriptType = this.system.app.scripts.get(scriptType);\n\t\t} else if (scriptType) {\n\t\t\tscriptName = scriptType.__name;\n\t\t}\n\t\tconst scriptData = this._scriptsIndex[scriptName];\n\t\tdelete this._scriptsIndex[scriptName];\n\t\tif (!scriptData) return false;\n\t\tthis._attributeDataMap.delete(scriptName);\n\t\tconst scriptInstance = scriptData.instance;\n\t\tif (scriptInstance && !scriptInstance._destroyed) {\n\t\t\tscriptInstance.enabled = false;\n\t\t\tscriptInstance._destroyed = true;\n\t\t\tif (!this._isLoopingThroughScripts) {\n\t\t\t\tconst ind = this._removeScriptInstance(scriptInstance);\n\t\t\t\tif (ind >= 0) {\n\t\t\t\t\tthis._resetExecutionOrder(ind, this._scripts.length);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._destroyedScripts.push(scriptInstance);\n\t\t\t}\n\t\t}\n\t\tthis.system.app.scripts.off(`swap:${scriptName}`, scriptData.onSwap);\n\t\tdelete this[scriptName];\n\t\tthis.fire('destroy', scriptName, scriptInstance || null);\n\t\tthis.fire(`destroy:${scriptName}`, scriptInstance || null);\n\t\tif (scriptInstance) {\n\t\t\tscriptInstance.fire('destroy');\n\t\t}\n\t\treturn true;\n\t}\n\tswap(nameOrType) {\n\t\tlet scriptName = nameOrType;\n\t\tlet scriptType = nameOrType;\n\t\tif (typeof scriptType === 'string') {\n\t\t\tscriptType = this.system.app.scripts.get(scriptType);\n\t\t} else if (scriptType) {\n\t\t\tscriptName = scriptType.__name;\n\t\t}\n\t\tconst old = this._scriptsIndex[scriptName];\n\t\tif (!old || !old.instance) return false;\n\t\tconst scriptInstanceOld = old.instance;\n\t\tconst ind = this._scripts.indexOf(scriptInstanceOld);\n\t\tconst scriptInstance = new scriptType({\n\t\t\tapp: this.system.app,\n\t\t\tentity: this.entity,\n\t\t\tenabled: scriptInstanceOld.enabled,\n\t\t\tattributes: scriptInstanceOld.__attributes\n\t\t});\n\t\tif (!scriptInstance.swap) {\n\t\t\treturn false;\n\t\t}\n\t\tthis.initializeAttributes(scriptInstance);\n\t\tthis._scripts[ind] = scriptInstance;\n\t\tthis._scriptsIndex[scriptName].instance = scriptInstance;\n\t\tthis[scriptName] = scriptInstance;\n\t\tscriptInstance.__executionOrder = ind;\n\t\tif (scriptInstanceOld.update) {\n\t\t\tthis._updateList.remove(scriptInstanceOld);\n\t\t}\n\t\tif (scriptInstanceOld.postUpdate) {\n\t\t\tthis._postUpdateList.remove(scriptInstanceOld);\n\t\t}\n\t\tif (scriptInstance.update) {\n\t\t\tthis._updateList.insert(scriptInstance);\n\t\t}\n\t\tif (scriptInstance.postUpdate) {\n\t\t\tthis._postUpdateList.insert(scriptInstance);\n\t\t}\n\t\tthis._scriptMethod(scriptInstance, SCRIPT_SWAP, scriptInstanceOld);\n\t\tthis.fire('swap', scriptName, scriptInstance);\n\t\tthis.fire(`swap:${scriptName}`, scriptInstance);\n\t\treturn true;\n\t}\n\tresolveDuplicatedEntityReferenceProperties(oldScriptComponent, duplicatedIdsMap) {\n\t\tconst newScriptComponent = this.entity.script;\n\t\tfor (const scriptName in oldScriptComponent._scriptsIndex) {\n\t\t\tconst scriptType = this.system.app.scripts.get(scriptName);\n\t\t\tif (!scriptType) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst script = oldScriptComponent._scriptsIndex[scriptName];\n\t\t\tif (!script || !script.instance) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst newAttributesRaw = newScriptComponent[scriptName].__attributesRaw;\n\t\t\tconst newAttributes = newScriptComponent[scriptName].__attributes;\n\t\t\tif (!newAttributesRaw && !newAttributes) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst useGuid = !!newAttributesRaw;\n\t\t\tconst oldAttributes = script.instance.__attributes;\n\t\t\tfor (const attributeName in oldAttributes) {\n\t\t\t\tif (!oldAttributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst attribute = scriptType.attributes.get(attributeName);\n\t\t\t\tif (!attribute) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (attribute.type === 'entity') {\n\t\t\t\t\tthis._resolveEntityScriptAttribute(attribute, attributeName, oldAttributes[attributeName], useGuid, newAttributesRaw || newAttributes, duplicatedIdsMap);\n\t\t\t\t} else if (attribute.type === 'json' && Array.isArray(attribute.schema)) {\n\t\t\t\t\tconst oldValue = oldAttributes[attributeName];\n\t\t\t\t\tconst newJsonValue = newAttributesRaw ? newAttributesRaw[attributeName] : newAttributes[attributeName];\n\t\t\t\t\tfor (let i = 0; i < attribute.schema.length; i++) {\n\t\t\t\t\t\tconst field = attribute.schema[i];\n\t\t\t\t\t\tif (field.type !== 'entity') {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (attribute.array) {\n\t\t\t\t\t\t\tfor (let j = 0; j < oldValue.length; j++) {\n\t\t\t\t\t\t\t\tthis._resolveEntityScriptAttribute(field, field.name, oldValue[j][field.name], useGuid, newJsonValue[j], duplicatedIdsMap);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis._resolveEntityScriptAttribute(field, field.name, oldValue[field.name], useGuid, newJsonValue, duplicatedIdsMap);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tmove(nameOrType, ind) {\n\t\tconst len = this._scripts.length;\n\t\tif (ind >= len || ind < 0) {\n\t\t\treturn false;\n\t\t}\n\t\tlet scriptType = nameOrType;\n\t\tlet scriptName = nameOrType;\n\t\tif (typeof scriptName !== 'string') {\n\t\t\tscriptName = nameOrType.__name;\n\t\t} else {\n\t\t\tscriptType = null;\n\t\t}\n\t\tconst scriptData = this._scriptsIndex[scriptName];\n\t\tif (!scriptData || !scriptData.instance) {\n\t\t\treturn false;\n\t\t}\n\t\tconst scriptInstance = scriptData.instance;\n\t\tif (scriptType && !(scriptInstance instanceof scriptType)) {\n\t\t\treturn false;\n\t\t}\n\t\tconst indOld = this._scripts.indexOf(scriptInstance);\n\t\tif (indOld === -1 || indOld === ind) {\n\t\t\treturn false;\n\t\t}\n\t\tthis._scripts.splice(ind, 0, this._scripts.splice(indOld, 1)[0]);\n\t\tthis._resetExecutionOrder(0, len);\n\t\tthis._updateList.sort();\n\t\tthis._postUpdateList.sort();\n\t\tthis.fire('move', scriptName, scriptInstance, ind, indOld);\n\t\tthis.fire(`move:${scriptName}`, scriptInstance, ind, indOld);\n\t\treturn true;\n\t}\n}\nScriptComponent.EVENT_CREATE = 'create';\nScriptComponent.EVENT_DESTROY = 'destroy';\nScriptComponent.EVENT_ENABLE = 'enable';\nScriptComponent.EVENT_DISABLE = 'disable';\nScriptComponent.EVENT_REMOVE = 'remove';\nScriptComponent.EVENT_STATE = 'state';\nScriptComponent.EVENT_MOVE = 'move';\nScriptComponent.EVENT_ERROR = 'error';\n\nclass ScriptComponentData {\n\tconstructor() {\n\t\tthis.enabled = true;\n\t}\n}\n\nconst METHOD_INITIALIZE_ATTRIBUTES = '_onInitializeAttributes';\nconst METHOD_INITIALIZE = '_onInitialize';\nconst METHOD_POST_INITIALIZE = '_onPostInitialize';\nconst METHOD_UPDATE = '_onUpdate';\nconst METHOD_POST_UPDATE = '_onPostUpdate';\nlet executionOrderCounter = 0;\nclass ScriptComponentSystem extends ComponentSystem {\n\tconstructor(app) {\n\t\tsuper(app);\n\t\tthis.id = 'script';\n\t\tthis.ComponentType = ScriptComponent;\n\t\tthis.DataType = ScriptComponentData;\n\t\tthis._components = new SortedLoopArray({\n\t\t\tsortBy: '_executionOrder'\n\t\t});\n\t\tthis._enabledComponents = new SortedLoopArray({\n\t\t\tsortBy: '_executionOrder'\n\t\t});\n\t\tthis.preloading = true;\n\t\tthis.on('beforeremove', this._onBeforeRemove, this);\n\t\tthis.app.systems.on('initialize', this._onInitialize, this);\n\t\tthis.app.systems.on('postInitialize', this._onPostInitialize, this);\n\t\tthis.app.systems.on('update', this._onUpdate, this);\n\t\tthis.app.systems.on('postUpdate', this._onPostUpdate, this);\n\t}\n\tinitializeComponentData(component, data) {\n\t\tcomponent._executionOrder = executionOrderCounter++;\n\t\tthis._components.append(component);\n\t\tif (executionOrderCounter > Number.MAX_SAFE_INTEGER) {\n\t\t\tthis._resetExecutionOrder();\n\t\t}\n\t\tcomponent.enabled = data.hasOwnProperty('enabled') ? !!data.enabled : true;\n\t\tif (component.enabled && component.entity.enabled) {\n\t\t\tthis._enabledComponents.append(component);\n\t\t}\n\t\tif (data.hasOwnProperty('order') && data.hasOwnProperty('scripts')) {\n\t\t\tcomponent._scriptsData = data.scripts;\n\t\t\tfor (let i = 0; i < data.order.length; i++) {\n\t\t\t\tcomponent.create(data.order[i], {\n\t\t\t\t\tenabled: data.scripts[data.order[i]].enabled,\n\t\t\t\t\tattributes: data.scripts[data.order[i]].attributes,\n\t\t\t\t\tpreloading: this.preloading\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst order = [];\n\t\tconst scripts = {};\n\t\tfor (let i = 0; i < entity.script._scripts.length; i++) {\n\t\t\tvar _entity$script$_attri;\n\t\t\tconst scriptInstance = entity.script._scripts[i];\n\t\t\tconst scriptName = scriptInstance.__scriptType.__name;\n\t\t\torder.push(scriptName);\n\t\t\tconst attributes = ((_entity$script$_attri = entity.script._attributeDataMap) == null ? void 0 : _entity$script$_attri.get(scriptName)) || {};\n\t\t\tfor (const key in scriptInstance.__attributes) {\n\t\t\t\tattributes[key] = scriptInstance.__attributes[key];\n\t\t\t}\n\t\t\tscripts[scriptName] = {\n\t\t\t\tenabled: scriptInstance._enabled,\n\t\t\t\tattributes: attributes\n\t\t\t};\n\t\t}\n\t\tfor (const key in entity.script._scriptsIndex) {\n\t\t\tif (key.awaiting) {\n\t\t\t\torder.splice(key.ind, 0, key);\n\t\t\t}\n\t\t}\n\t\tconst data = {\n\t\t\tenabled: entity.script.enabled,\n\t\t\torder: order,\n\t\t\tscripts: scripts\n\t\t};\n\t\treturn this.addComponent(clone, data);\n\t}\n\t_resetExecutionOrder() {\n\t\texecutionOrderCounter = 0;\n\t\tfor (let i = 0, len = this._components.length; i < len; i++) {\n\t\t\tthis._components.items[i]._executionOrder = executionOrderCounter++;\n\t\t}\n\t}\n\t_callComponentMethod(components, name, dt) {\n\t\tfor (components.loopIndex = 0; components.loopIndex < components.length; components.loopIndex++) {\n\t\t\tcomponents.items[components.loopIndex][name](dt);\n\t\t}\n\t}\n\t_onInitialize() {\n\t\tthis.preloading = false;\n\t\tthis._callComponentMethod(this._components, METHOD_INITIALIZE_ATTRIBUTES);\n\t\tthis._callComponentMethod(this._enabledComponents, METHOD_INITIALIZE);\n\t}\n\t_onPostInitialize() {\n\t\tthis._callComponentMethod(this._enabledComponents, METHOD_POST_INITIALIZE);\n\t}\n\t_onUpdate(dt) {\n\t\tthis._callComponentMethod(this._enabledComponents, METHOD_UPDATE, dt);\n\t}\n\t_onPostUpdate(dt) {\n\t\tthis._callComponentMethod(this._enabledComponents, METHOD_POST_UPDATE, dt);\n\t}\n\t_addComponentToEnabled(component) {\n\t\tthis._enabledComponents.insert(component);\n\t}\n\t_removeComponentFromEnabled(component) {\n\t\tthis._enabledComponents.remove(component);\n\t}\n\t_onBeforeRemove(entity, component) {\n\t\tconst ind = this._components.items.indexOf(component);\n\t\tif (ind >= 0) {\n\t\t\tcomponent._onBeforeRemove();\n\t\t}\n\t\tthis._removeComponentFromEnabled(component);\n\t\tthis._components.remove(component);\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.app.systems.off('initialize', this._onInitialize, this);\n\t\tthis.app.systems.off('postInitialize', this._onPostInitialize, this);\n\t\tthis.app.systems.off('update', this._onUpdate, this);\n\t\tthis.app.systems.off('postUpdate', this._onPostUpdate, this);\n\t}\n}\n\nclass GSplatComponent extends Component {\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis._layers = [LAYERID_WORLD];\n\t\tthis._instance = null;\n\t\tthis._customAabb = null;\n\t\tthis._assetReference = void 0;\n\t\tthis._materialOptions = null;\n\t\tthis._evtLayersChanged = null;\n\t\tthis._evtLayerAdded = null;\n\t\tthis._evtLayerRemoved = null;\n\t\tthis._assetReference = new AssetReference('asset', this, system.app.assets, {\n\t\t\tadd: this._onGSplatAssetAdded,\n\t\t\tload: this._onGSplatAssetLoad,\n\t\t\tremove: this._onGSplatAssetRemove,\n\t\t\tunload: this._onGSplatAssetUnload\n\t\t}, this);\n\t\tentity.on('remove', this.onRemoveChild, this);\n\t\tentity.on('removehierarchy', this.onRemoveChild, this);\n\t\tentity.on('insert', this.onInsertChild, this);\n\t\tentity.on('inserthierarchy', this.onInsertChild, this);\n\t}\n\tset customAabb(value) {\n\t\tvar _this$_instance;\n\t\tthis._customAabb = value;\n\t\t(_this$_instance = this._instance) == null || (_this$_instance = _this$_instance.meshInstance) == null || _this$_instance.setCustomAabb(this._customAabb);\n\t}\n\tget customAabb() {\n\t\treturn this._customAabb;\n\t}\n\tset instance(value) {\n\t\tvar _this$_instance2;\n\t\tthis.destroyInstance();\n\t\tthis._instance = value;\n\t\tif ((_this$_instance2 = this._instance) != null && _this$_instance2.meshInstance) {\n\t\t\tconst mi = this._instance.meshInstance;\n\t\t\tif (!mi.node) {\n\t\t\t\tmi.node = this.entity;\n\t\t\t}\n\t\t\tmi.setCustomAabb(this._customAabb);\n\t\t\tif (this._materialOptions) {\n\t\t\t\tthis._instance.createMaterial(this._materialOptions);\n\t\t\t}\n\t\t\tif (this.enabled && this.entity.enabled) {\n\t\t\t\tthis.addToLayers();\n\t\t\t}\n\t\t}\n\t}\n\tget instance() {\n\t\treturn this._instance;\n\t}\n\tset materialOptions(value) {\n\t\tthis._materialOptions = Object.assign({}, value);\n\t\tif (this._instance) {\n\t\t\tthis._instance.createMaterial(this._materialOptions);\n\t\t}\n\t}\n\tget materialOptions() {\n\t\treturn this._materialOptions;\n\t}\n\tget material() {\n\t\tvar _this$_instance3;\n\t\treturn (_this$_instance3 = this._instance) == null ? void 0 : _this$_instance3.material;\n\t}\n\tset layers(value) {\n\t\tthis.removeFromLayers();\n\t\tthis._layers.length = 0;\n\t\tfor (let i = 0; i < value.length; i++) {\n\t\t\tthis._layers[i] = value[i];\n\t\t}\n\t\tif (!this.enabled || !this.entity.enabled) {\n\t\t\treturn;\n\t\t}\n\t\tthis.addToLayers();\n\t}\n\tget layers() {\n\t\treturn this._layers;\n\t}\n\tset asset(value) {\n\t\tconst id = value instanceof Asset ? value.id : value;\n\t\tif (this._assetReference.id === id) return;\n\t\tif (this._assetReference.asset && this._assetReference.asset.resource) {\n\t\t\tthis._onGSplatAssetRemove();\n\t\t}\n\t\tthis._assetReference.id = id;\n\t\tif (this._assetReference.asset) {\n\t\t\tthis._onGSplatAssetAdded();\n\t\t}\n\t}\n\tget asset() {\n\t\treturn this._assetReference.id;\n\t}\n\tassignAsset(asset) {\n\t\tconst id = asset instanceof Asset ? asset.id : asset;\n\t\tthis._assetReference.id = id;\n\t}\n\tdestroyInstance() {\n\t\tif (this._instance) {\n\t\t\tvar _this$_instance4;\n\t\t\tthis.removeFromLayers();\n\t\t\t(_this$_instance4 = this._instance) == null || _this$_instance4.destroy();\n\t\t\tthis._instance = null;\n\t\t}\n\t}\n\taddToLayers() {\n\t\tvar _this$instance;\n\t\tconst meshInstance = (_this$instance = this.instance) == null ? void 0 : _this$instance.meshInstance;\n\t\tif (meshInstance) {\n\t\t\tconst layers = this.system.app.scene.layers;\n\t\t\tfor (let i = 0; i < this._layers.length; i++) {\n\t\t\t\tvar _layers$getLayerById;\n\t\t\t\t(_layers$getLayerById = layers.getLayerById(this._layers[i])) == null || _layers$getLayerById.addMeshInstances([meshInstance]);\n\t\t\t}\n\t\t}\n\t}\n\tremoveFromLayers() {\n\t\tvar _this$instance2;\n\t\tconst meshInstance = (_this$instance2 = this.instance) == null ? void 0 : _this$instance2.meshInstance;\n\t\tif (meshInstance) {\n\t\t\tconst layers = this.system.app.scene.layers;\n\t\t\tfor (let i = 0; i < this._layers.length; i++) {\n\t\t\t\tvar _layers$getLayerById2;\n\t\t\t\t(_layers$getLayerById2 = layers.getLayerById(this._layers[i])) == null || _layers$getLayerById2.removeMeshInstances([meshInstance]);\n\t\t\t}\n\t\t}\n\t}\n\tonRemoveChild() {\n\t\tthis.removeFromLayers();\n\t}\n\tonInsertChild() {\n\t\tif (this._instance && this.enabled && this.entity.enabled) {\n\t\t\tthis.addToLayers();\n\t\t}\n\t}\n\tonRemove() {\n\t\tthis.destroyInstance();\n\t\tthis.asset = null;\n\t\tthis._assetReference.id = null;\n\t\tthis.entity.off('remove', this.onRemoveChild, this);\n\t\tthis.entity.off('insert', this.onInsertChild, this);\n\t}\n\tonLayersChanged(oldComp, newComp) {\n\t\tthis.addToLayers();\n\t\toldComp.off('add', this.onLayerAdded, this);\n\t\toldComp.off('remove', this.onLayerRemoved, this);\n\t\tnewComp.on('add', this.onLayerAdded, this);\n\t\tnewComp.on('remove', this.onLayerRemoved, this);\n\t}\n\tonLayerAdded(layer) {\n\t\tconst index = this.layers.indexOf(layer.id);\n\t\tif (index < 0) return;\n\t\tif (this._instance) {\n\t\t\tlayer.addMeshInstances(this._instance.meshInstance);\n\t\t}\n\t}\n\tonLayerRemoved(layer) {\n\t\tconst index = this.layers.indexOf(layer.id);\n\t\tif (index < 0) return;\n\t\tif (this._instance) {\n\t\t\tlayer.removeMeshInstances(this._instance.meshInstance);\n\t\t}\n\t}\n\tonEnable() {\n\t\tconst scene = this.system.app.scene;\n\t\tconst layers = scene.layers;\n\t\tthis._evtLayersChanged = scene.on('set:layers', this.onLayersChanged, this);\n\t\tif (layers) {\n\t\t\tthis._evtLayerAdded = layers.on('add', this.onLayerAdded, this);\n\t\t\tthis._evtLayerRemoved = layers.on('remove', this.onLayerRemoved, this);\n\t\t}\n\t\tif (this._instance) {\n\t\t\tthis.addToLayers();\n\t\t} else if (this.asset) {\n\t\t\tthis._onGSplatAssetAdded();\n\t\t}\n\t}\n\tonDisable() {\n\t\tvar _this$_evtLayersChang;\n\t\tconst scene = this.system.app.scene;\n\t\tconst layers = scene.layers;\n\t\t(_this$_evtLayersChang = this._evtLayersChanged) == null || _this$_evtLayersChang.off();\n\t\tthis._evtLayersChanged = null;\n\t\tif (layers) {\n\t\t\tvar _this$_evtLayerAdded, _this$_evtLayerRemove;\n\t\t\t(_this$_evtLayerAdded = this._evtLayerAdded) == null || _this$_evtLayerAdded.off();\n\t\t\tthis._evtLayerAdded = null;\n\t\t\t(_this$_evtLayerRemove = this._evtLayerRemoved) == null || _this$_evtLayerRemove.off();\n\t\t\tthis._evtLayerRemoved = null;\n\t\t}\n\t\tthis.removeFromLayers();\n\t}\n\thide() {\n\t\tif (this._instance) {\n\t\t\tthis._instance.meshInstance.visible = false;\n\t\t}\n\t}\n\tshow() {\n\t\tif (this._instance) {\n\t\t\tthis._instance.meshInstance.visible = true;\n\t\t}\n\t}\n\t_onGSplatAssetAdded() {\n\t\tif (!this._assetReference.asset) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._assetReference.asset.resource) {\n\t\t\tthis._onGSplatAssetLoad();\n\t\t} else if (this.enabled && this.entity.enabled) {\n\t\t\tthis.system.app.assets.load(this._assetReference.asset);\n\t\t}\n\t}\n\t_onGSplatAssetLoad() {\n\t\tthis.destroyInstance();\n\t\tconst asset = this._assetReference.asset;\n\t\tif (asset) {\n\t\t\tthis.instance = asset.resource.createInstance();\n\t\t}\n\t}\n\t_onGSplatAssetUnload() {\n\t\tthis.destroyInstance();\n\t}\n\t_onGSplatAssetRemove() {\n\t\tthis._onGSplatAssetUnload();\n\t}\n}\n\nclass GSplatComponentData {\n\tconstructor() {\n\t\tthis.enabled = true;\n\t}\n}\n\nconst _schema = ['enabled'];\nconst _properties = ['instance', 'asset', 'layers'];\nclass GSplatComponentSystem extends ComponentSystem {\n\tconstructor(app) {\n\t\tsuper(app);\n\t\tthis.id = 'gsplat';\n\t\tthis.ComponentType = GSplatComponent;\n\t\tthis.DataType = GSplatComponentData;\n\t\tthis.schema = _schema;\n\t\tthis.on('beforeremove', this.onRemove, this);\n\t}\n\tinitializeComponentData(component, _data, properties) {\n\t\tif (_data.layers && _data.layers.length) {\n\t\t\t_data.layers = _data.layers.slice(0);\n\t\t}\n\t\tfor (let i = 0; i < _properties.length; i++) {\n\t\t\tif (_data.hasOwnProperty(_properties[i])) {\n\t\t\t\tcomponent[_properties[i]] = _data[_properties[i]];\n\t\t\t}\n\t\t}\n\t\tif (_data.aabbCenter && _data.aabbHalfExtents) {\n\t\t\tcomponent.customAabb = new BoundingBox(new Vec3(_data.aabbCenter), new Vec3(_data.aabbHalfExtents));\n\t\t}\n\t\tsuper.initializeComponentData(component, _data, _schema);\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst gSplatComponent = entity.gsplat;\n\t\tconst data = {};\n\t\tfor (let i = 0; i < _properties.length; i++) {\n\t\t\tdata[_properties[i]] = gSplatComponent[_properties[i]];\n\t\t}\n\t\tdata.enabled = gSplatComponent.enabled;\n\t\tdelete data.instance;\n\t\tconst component = this.addComponent(clone, data);\n\t\tcomponent.instance = gSplatComponent.instance.clone();\n\t\tif (gSplatComponent.customAabb) {\n\t\t\tcomponent.customAabb = gSplatComponent.customAabb.clone();\n\t\t}\n\t\treturn component;\n\t}\n\tonRemove(entity, component) {\n\t\tcomponent.onRemove();\n\t}\n}\nComponent._buildAccessors(GSplatComponent.prototype, _schema);\n\nclass Render extends EventHandler {\n\tconstructor() {\n\t\tsuper();\n\t\tthis._meshes = null;\n\t}\n\tset meshes(value) {\n\t\tthis.decRefMeshes();\n\t\tthis._meshes = value;\n\t\tthis.incRefMeshes();\n\t\tthis.fire('set:meshes', value);\n\t}\n\tget meshes() {\n\t\treturn this._meshes;\n\t}\n\tdestroy() {\n\t\tthis.meshes = null;\n\t}\n\tdecRefMeshes() {\n\t\tif (this._meshes) {\n\t\t\tconst count = this._meshes.length;\n\t\t\tfor (let i = 0; i < count; i++) {\n\t\t\t\tconst mesh = this._meshes[i];\n\t\t\t\tif (mesh) {\n\t\t\t\t\tmesh.decRefCount();\n\t\t\t\t\tif (mesh.refCount < 1) {\n\t\t\t\t\t\tmesh.destroy();\n\t\t\t\t\t\tthis._meshes[i] = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tincRefMeshes() {\n\t\tif (this._meshes) {\n\t\t\tconst count = this._meshes.length;\n\t\t\tfor (let i = 0; i < count; i++) {\n\t\t\t\tif (this._meshes[i]) {\n\t\t\t\t\tthis._meshes[i].incRefCount();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\nRender.EVENT_SETMESHES = 'set:meshes';\n\nfunction onContainerAssetLoaded(containerAsset) {\n\tconst renderAsset = this;\n\tif (!renderAsset.resource) return;\n\tconst containerResource = containerAsset.resource;\n\tconst render = containerResource.renders && containerResource.renders[renderAsset.data.renderIndex];\n\tif (render) {\n\t\trenderAsset.resource.meshes = render.resource.meshes;\n\t}\n}\nfunction onContainerAssetAdded(containerAsset) {\n\tconst renderAsset = this;\n\trenderAsset.registry.off(`load:${containerAsset.id}`, onContainerAssetLoaded, renderAsset);\n\trenderAsset.registry.on(`load:${containerAsset.id}`, onContainerAssetLoaded, renderAsset);\n\trenderAsset.registry.off(`remove:${containerAsset.id}`, onContainerAssetRemoved, renderAsset);\n\trenderAsset.registry.once(`remove:${containerAsset.id}`, onContainerAssetRemoved, renderAsset);\n\tif (!containerAsset.resource) {\n\t\trenderAsset.registry.load(containerAsset);\n\t} else {\n\t\tonContainerAssetLoaded.call(renderAsset, containerAsset);\n\t}\n}\nfunction onContainerAssetRemoved(containerAsset) {\n\tconst renderAsset = this;\n\trenderAsset.registry.off(`load:${containerAsset.id}`, onContainerAssetLoaded, renderAsset);\n\tif (renderAsset.resource) {\n\t\trenderAsset.resource.destroy();\n\t}\n}\nclass RenderHandler extends ResourceHandler {\n\tconstructor(app) {\n\t\tsuper(app, 'render');\n\t\tthis._registry = app.assets;\n\t}\n\topen(url, data) {\n\t\treturn new Render();\n\t}\n\tpatch(asset, registry) {\n\t\tif (!asset.data.containerAsset) {\n\t\t\treturn;\n\t\t}\n\t\tconst containerAsset = registry.get(asset.data.containerAsset);\n\t\tif (!containerAsset) {\n\t\t\tregistry.once(`add:${asset.data.containerAsset}`, onContainerAssetAdded, asset);\n\t\t\treturn;\n\t\t}\n\t\tonContainerAssetAdded.call(asset, containerAsset);\n\t}\n}\n\nclass AnimCurve {\n\tconstructor(paths, input, output, interpolation) {\n\t\tthis._paths = paths;\n\t\tthis._input = input;\n\t\tthis._output = output;\n\t\tthis._interpolation = interpolation;\n\t}\n\tget paths() {\n\t\treturn this._paths;\n\t}\n\tget input() {\n\t\treturn this._input;\n\t}\n\tget output() {\n\t\treturn this._output;\n\t}\n\tget interpolation() {\n\t\treturn this._interpolation;\n\t}\n}\n\nclass AnimData {\n\tconstructor(components, data) {\n\t\tthis._components = components;\n\t\tthis._data = data;\n\t}\n\tget components() {\n\t\treturn this._components;\n\t}\n\tget data() {\n\t\treturn this._data;\n\t}\n}\n\nfunction DracoWorker(jsUrl, wasmUrl) {\n\tlet draco;\n\tconst POSITION_ATTRIBUTE = 0;\n\tconst NORMAL_ATTRIBUTE = 1;\n\tconst wrap = (typedArray, dataType) => {\n\t\tswitch (dataType) {\n\t\t\tcase draco.DT_INT8:\n\t\t\t\treturn new Int8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\n\t\t\tcase draco.DT_INT16:\n\t\t\t\treturn new Int16Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength / 2);\n\t\t\tcase draco.DT_INT32:\n\t\t\t\treturn new Int32Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength / 4);\n\t\t\tcase draco.DT_UINT8:\n\t\t\t\treturn new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\n\t\t\tcase draco.DT_UINT16:\n\t\t\t\treturn new Uint16Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength / 2);\n\t\t\tcase draco.DT_UINT32:\n\t\t\t\treturn new Uint32Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength / 4);\n\t\t\tcase draco.DT_FLOAT32:\n\t\t\t\treturn new Float32Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength / 4);\n\t\t}\n\t\treturn null;\n\t};\n\tconst componentSizeInBytes = dataType => {\n\t\tswitch (dataType) {\n\t\t\tcase draco.DT_INT8:\n\t\t\t\treturn 1;\n\t\t\tcase draco.DT_INT16:\n\t\t\t\treturn 2;\n\t\t\tcase draco.DT_INT32:\n\t\t\t\treturn 4;\n\t\t\tcase draco.DT_UINT8:\n\t\t\t\treturn 1;\n\t\t\tcase draco.DT_UINT16:\n\t\t\t\treturn 2;\n\t\t\tcase draco.DT_UINT32:\n\t\t\t\treturn 4;\n\t\t\tcase draco.DT_FLOAT32:\n\t\t\t\treturn 4;\n\t\t}\n\t\treturn 1;\n\t};\n\tconst attributeSizeInBytes = attribute => {\n\t\treturn attribute.num_components() * componentSizeInBytes(attribute.data_type());\n\t};\n\tconst attributeOrder = {\n\t\t0: 0,\n\t\t1: 1,\n\t\t5: 2,\n\t\t2: 3,\n\t\t7: 4,\n\t\t8: 5,\n\t\t4: 6,\n\t\t3: 7\n\t};\n\tconst generateNormals = (vertices, indices) => {\n\t\tconst subtract = (dst, a, b) => {\n\t\t\tdst[0] = a[0] - b[0];\n\t\t\tdst[1] = a[1] - b[1];\n\t\t\tdst[2] = a[2] - b[2];\n\t\t};\n\t\tconst cross = (dst, a, b) => {\n\t\t\tdst[0] = a[1] * b[2] - b[1] * a[2];\n\t\t\tdst[1] = a[2] * b[0] - b[2] * a[0];\n\t\t\tdst[2] = a[0] * b[1] - b[0] * a[1];\n\t\t};\n\t\tconst normalize = (dst, offset) => {\n\t\t\tconst a = dst[offset + 0];\n\t\t\tconst b = dst[offset + 1];\n\t\t\tconst c = dst[offset + 2];\n\t\t\tconst l = 1.0 / Math.sqrt(a * a + b * b + c * c);\n\t\t\tdst[offset + 0] *= l;\n\t\t\tdst[offset + 1] *= l;\n\t\t\tdst[offset + 2] *= l;\n\t\t};\n\t\tconst copy = (dst, src, srcOffset) => {\n\t\t\tfor (let i = 0; i < 3; ++i) {\n\t\t\t\tdst[i] = src[srcOffset + i];\n\t\t\t}\n\t\t};\n\t\tconst numTriangles = indices.length / 3;\n\t\tconst numVertices = vertices.length / 3;\n\t\tconst result = new Float32Array(vertices.length);\n\t\tconst a = [0, 0, 0],\n\t\t\tb = [0, 0, 0],\n\t\t\tc = [0, 0, 0],\n\t\t\tt1 = [0, 0, 0],\n\t\t\tt2 = [0, 0, 0],\n\t\t\tn = [0, 0, 0];\n\t\tfor (let i = 0; i < numTriangles; ++i) {\n\t\t\tconst v0 = indices[i * 3 + 0] * 3;\n\t\t\tconst v1 = indices[i * 3 + 1] * 3;\n\t\t\tconst v2 = indices[i * 3 + 2] * 3;\n\t\t\tcopy(a, vertices, v0);\n\t\t\tcopy(b, vertices, v1);\n\t\t\tcopy(c, vertices, v2);\n\t\t\tsubtract(t1, b, a);\n\t\t\tsubtract(t2, c, a);\n\t\t\tcross(n, t1, t2);\n\t\t\tnormalize(n, 0);\n\t\t\tfor (let j = 0; j < 3; ++j) {\n\t\t\t\tresult[v0 + j] += n[j];\n\t\t\t\tresult[v1 + j] += n[j];\n\t\t\t\tresult[v2 + j] += n[j];\n\t\t\t}\n\t\t}\n\t\tfor (let i = 0; i < numVertices; ++i) {\n\t\t\tnormalize(result, i * 3);\n\t\t}\n\t\treturn new Uint8Array(result.buffer);\n\t};\n\tconst decodeMesh = inputBuffer => {\n\t\tconst result = {};\n\t\tconst buffer = new draco.DecoderBuffer();\n\t\tbuffer.Init(inputBuffer, inputBuffer.length);\n\t\tconst decoder = new draco.Decoder();\n\t\tif (decoder.GetEncodedGeometryType(buffer) !== draco.TRIANGULAR_MESH) {\n\t\t\tresult.error = 'Failed to decode draco mesh: not a mesh';\n\t\t\treturn result;\n\t\t}\n\t\tconst mesh = new draco.Mesh();\n\t\tconst status = decoder.DecodeBufferToMesh(buffer, mesh);\n\t\tif (!status || !status.ok() || mesh.ptr === 0) {\n\t\t\tresult.error = 'Failed to decode draco asset';\n\t\t\treturn result;\n\t\t}\n\t\tconst numIndices = mesh.num_faces() * 3;\n\t\tconst shortIndices = mesh.num_points() <= 65535;\n\t\tconst indicesSize = numIndices * (shortIndices ? 2 : 4);\n\t\tconst indicesPtr = draco._malloc(indicesSize);\n\t\tif (shortIndices) {\n\t\t\tdecoder.GetTrianglesUInt16Array(mesh, indicesSize, indicesPtr);\n\t\t\tresult.indices = new Uint16Array(draco.HEAPU16.buffer, indicesPtr, numIndices).slice().buffer;\n\t\t} else {\n\t\t\tdecoder.GetTrianglesUInt32Array(mesh, indicesSize, indicesPtr);\n\t\t\tresult.indices = new Uint32Array(draco.HEAPU32.buffer, indicesPtr, numIndices).slice().buffer;\n\t\t}\n\t\tdraco._free(indicesPtr);\n\t\tconst attributes = [];\n\t\tfor (let i = 0; i < mesh.num_attributes(); ++i) {\n\t\t\tattributes.push(decoder.GetAttribute(mesh, i));\n\t\t}\n\t\tattributes.sort((a, b) => {\n\t\t\tvar _attributeOrder$a$att, _attributeOrder$b$att;\n\t\t\treturn ((_attributeOrder$a$att = attributeOrder[a.attribute_type()]) != null ? _attributeOrder$a$att : attributeOrder.length) - ((_attributeOrder$b$att = attributeOrder[b.attribute_type()]) != null ? _attributeOrder$b$att : attributeOrder.length);\n\t\t});\n\t\tresult.attributes = attributes.map(a => a.unique_id());\n\t\tlet totalVertexSize = 0;\n\t\tconst offsets = attributes.map(a => {\n\t\t\tconst offset = totalVertexSize;\n\t\t\ttotalVertexSize += Math.ceil(attributeSizeInBytes(a) / 4) * 4;\n\t\t\treturn offset;\n\t\t});\n\t\tconst hasNormals = attributes.some(a => a.attribute_type() === NORMAL_ATTRIBUTE);\n\t\tconst normalOffset = offsets[1];\n\t\tif (!hasNormals) {\n\t\t\tfor (let i = 1; i < offsets.length; ++i) {\n\t\t\t\toffsets[i] += 12;\n\t\t\t}\n\t\t\ttotalVertexSize += 12;\n\t\t}\n\t\tresult.vertices = new ArrayBuffer(mesh.num_points() * totalVertexSize);\n\t\tconst dst = new Uint8Array(result.vertices);\n\t\tfor (let i = 0; i < mesh.num_attributes(); ++i) {\n\t\t\tconst attribute = attributes[i];\n\t\t\tconst sizeInBytes = attributeSizeInBytes(attribute);\n\t\t\tconst ptrSize = mesh.num_points() * sizeInBytes;\n\t\t\tconst ptr = draco._malloc(ptrSize);\n\t\t\tdecoder.GetAttributeDataArrayForAllPoints(mesh, attribute, attribute.data_type(), ptrSize, ptr);\n\t\t\tconst src = new Uint8Array(draco.HEAPU8.buffer, ptr, ptrSize);\n\t\t\tfor (let j = 0; j < mesh.num_points(); ++j) {\n\t\t\t\tfor (let c = 0; c < sizeInBytes; ++c) {\n\t\t\t\t\tdst[j * totalVertexSize + offsets[i] + c] = src[j * sizeInBytes + c];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!hasNormals && attribute.attribute_type() === POSITION_ATTRIBUTE) {\n\t\t\t\tconst normals = generateNormals(wrap(src, attribute.data_type()), shortIndices ? new Uint16Array(result.indices) : new Uint32Array(result.indices));\n\t\t\t\tfor (let j = 0; j < mesh.num_points(); ++j) {\n\t\t\t\t\tfor (let c = 0; c < 12; ++c) {\n\t\t\t\t\t\tdst[j * totalVertexSize + normalOffset + c] = normals[j * 12 + c];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tdraco._free(ptr);\n\t\t}\n\t\tdraco.destroy(mesh);\n\t\tdraco.destroy(decoder);\n\t\tdraco.destroy(buffer);\n\t\treturn result;\n\t};\n\tconst decode = data => {\n\t\tconst result = decodeMesh(new Uint8Array(data.buffer));\n\t\tself.postMessage({\n\t\t\tjobId: data.jobId,\n\t\t\terror: result.error,\n\t\t\tindices: result.indices,\n\t\t\tvertices: result.vertices,\n\t\t\tattributes: result.attributes\n\t\t}, [result.indices, result.vertices].filter(t => t != null));\n\t};\n\tconst workQueue = [];\n\tself.onmessage = message => {\n\t\tconst data = message.data;\n\t\tswitch (data.type) {\n\t\t\tcase 'init':\n\t\t\t\tself.DracoDecoderModule({\n\t\t\t\t\tinstantiateWasm: (imports, successCallback) => {\n\t\t\t\t\t\tWebAssembly.instantiate(data.module, imports).then(result => successCallback(result)).catch(reason => console.error(`instantiate failed + ${reason}`));\n\t\t\t\t\t\treturn {};\n\t\t\t\t\t}\n\t\t\t\t}).then(instance => {\n\t\t\t\t\tdraco = instance;\n\t\t\t\t\tworkQueue.forEach(data => decode(data));\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 'decodeMesh':\n\t\t\t\tif (draco) {\n\t\t\t\t\tdecode(data);\n\t\t\t\t} else {\n\t\t\t\t\tworkQueue.push(data);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t};\n}\n\nconst downloadMaxRetries = 3;\nclass JobQueue {\n\tconstructor() {\n\t\tthis.workers = [[], [], []];\n\t\tthis.jobId = 0;\n\t\tthis.jobQueue = [];\n\t\tthis.jobCallbacks = new Map();\n\t\tthis.run = (worker, job) => {\n\t\t\tworker.postMessage({\n\t\t\t\ttype: 'decodeMesh',\n\t\t\t\tjobId: job.jobId,\n\t\t\t\tbuffer: job.buffer\n\t\t\t}, [job.buffer]);\n\t\t};\n\t}\n\tinit(workers) {\n\t\tworkers.forEach(worker => {\n\t\t\tworker.addEventListener('message', message => {\n\t\t\t\tconst data = message.data;\n\t\t\t\tconst callback = this.jobCallbacks.get(data.jobId);\n\t\t\t\tif (callback) {\n\t\t\t\t\tcallback(data.error, {\n\t\t\t\t\t\tindices: data.indices,\n\t\t\t\t\t\tvertices: data.vertices,\n\t\t\t\t\t\tattributes: data.attributes\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tthis.jobCallbacks.delete(data.jobId);\n\t\t\t\tif (this.jobQueue.length > 0) {\n\t\t\t\t\tconst job = this.jobQueue.shift();\n\t\t\t\t\tthis.run(worker, job);\n\t\t\t\t} else {\n\t\t\t\t\tconst index2 = this.workers[2].indexOf(worker);\n\t\t\t\t\tif (index2 !== -1) {\n\t\t\t\t\t\tthis.workers[2].splice(index2, 1);\n\t\t\t\t\t\tthis.workers[1].push(worker);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst index1 = this.workers[1].indexOf(worker);\n\t\t\t\t\t\tif (index1 !== -1) {\n\t\t\t\t\t\t\tthis.workers[1].splice(index1, 1);\n\t\t\t\t\t\t\tthis.workers[0].push(worker);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tthis.workers[0] = workers;\n\t\twhile (this.jobQueue.length && (this.workers[0].length || this.workers[1].length)) {\n\t\t\tconst job = this.jobQueue.shift();\n\t\t\tif (this.workers[0].length > 0) {\n\t\t\t\tconst worker = this.workers[0].shift();\n\t\t\t\tthis.workers[1].push(worker);\n\t\t\t\tthis.run(worker, job);\n\t\t\t} else {\n\t\t\t\tconst worker = this.workers[1].shift();\n\t\t\t\tthis.workers[2].push(worker);\n\t\t\t\tthis.run(worker, job);\n\t\t\t}\n\t\t}\n\t}\n\tenqueueJob(buffer, callback) {\n\t\tconst job = {\n\t\t\tjobId: this.jobId++,\n\t\t\tbuffer: buffer\n\t\t};\n\t\tthis.jobCallbacks.set(job.jobId, callback);\n\t\tif (this.workers[0].length > 0) {\n\t\t\tconst worker = this.workers[0].shift();\n\t\t\tthis.workers[1].push(worker);\n\t\t\tthis.run(worker, job);\n\t\t} else if (this.workers[1].length > 0) {\n\t\t\tconst worker = this.workers[1].shift();\n\t\t\tthis.workers[2].push(worker);\n\t\t\tthis.run(worker, job);\n\t\t} else {\n\t\t\tthis.jobQueue.push(job);\n\t\t}\n\t}\n}\nconst downloadScript = url => {\n\treturn new Promise((resolve, reject) => {\n\t\tconst options = {\n\t\t\tcache: true,\n\t\t\tresponseType: 'text',\n\t\t\tretry: downloadMaxRetries > 0,\n\t\t\tmaxRetries: downloadMaxRetries\n\t\t};\n\t\thttp.get(url, options, (err, response) => {\n\t\t\tif (err) {\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\tresolve(response);\n\t\t\t}\n\t\t});\n\t});\n};\nconst compileModule = url => {\n\tconst compileManual = () => {\n\t\treturn fetch(url).then(result => result.arrayBuffer()).then(buffer => WebAssembly.compile(buffer));\n\t};\n\tconst compileStreaming = () => {\n\t\treturn WebAssembly.compileStreaming(fetch(url)).catch(err => {\n\t\t\treturn compileManual();\n\t\t});\n\t};\n\treturn WebAssembly.compileStreaming ? compileStreaming() : compileManual();\n};\nconst defaultNumWorkers$1 = 1;\nlet jobQueue;\nlet lazyConfig$1;\nconst initializeWorkers = config => {\n\tif (jobQueue) {\n\t\treturn true;\n\t}\n\tif (!config) {\n\t\tif (lazyConfig$1) {\n\t\t\tconfig = lazyConfig$1;\n\t\t} else {\n\t\t\tconst moduleConfig = WasmModule.getConfig('DracoDecoderModule');\n\t\t\tif (moduleConfig) {\n\t\t\t\tconfig = {\n\t\t\t\t\tjsUrl: moduleConfig.glueUrl,\n\t\t\t\t\twasmUrl: moduleConfig.wasmUrl,\n\t\t\t\t\tnumWorkers: moduleConfig.numWorkers\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tconfig = {\n\t\t\t\t\tjsUrl: 'draco.wasm.js',\n\t\t\t\t\twasmUrl: 'draco.wasm.wasm',\n\t\t\t\t\tnumWorkers: defaultNumWorkers$1\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n\tif (!config.jsUrl || !config.wasmUrl) {\n\t\treturn false;\n\t}\n\tjobQueue = new JobQueue();\n\tPromise.all([downloadScript(config.jsUrl), compileModule(config.wasmUrl)]).then(([dracoSource, dracoModule]) => {\n\t\tconst code = ['/* draco */', dracoSource, '/* worker */', `(\\n${DracoWorker.toString()}\\n)()\\n\\n`].join('\\n');\n\t\tconst blob = new Blob([code], {\n\t\t\ttype: 'application/javascript'\n\t\t});\n\t\tconst workerUrl = URL.createObjectURL(blob);\n\t\tconst numWorkers = Math.max(1, Math.min(16, config.numWorkers || defaultNumWorkers$1));\n\t\tconst workers = [];\n\t\tfor (let i = 0; i < numWorkers; ++i) {\n\t\t\tconst worker = new Worker(workerUrl);\n\t\t\tworker.postMessage({\n\t\t\t\ttype: 'init',\n\t\t\t\tmodule: dracoModule\n\t\t\t});\n\t\t\tworkers.push(worker);\n\t\t}\n\t\tjobQueue.init(workers);\n\t});\n\treturn true;\n};\nconst dracoInitialize = config => {\n\tif (config != null && config.lazyInit) {\n\t\tlazyConfig$1 = config;\n\t} else {\n\t\tinitializeWorkers(config);\n\t}\n};\nconst dracoDecode = (buffer, callback) => {\n\tif (!initializeWorkers()) {\n\t\treturn false;\n\t}\n\tjobQueue.enqueueJob(buffer, callback);\n\treturn true;\n};\n\nclass GlbResources {\n\tconstructor() {\n\t\tthis.gltf = void 0;\n\t\tthis.nodes = void 0;\n\t\tthis.scenes = void 0;\n\t\tthis.animations = void 0;\n\t\tthis.textures = void 0;\n\t\tthis.materials = void 0;\n\t\tthis.variants = void 0;\n\t\tthis.meshVariants = void 0;\n\t\tthis.meshDefaultMaterials = void 0;\n\t\tthis.renders = void 0;\n\t\tthis.skins = void 0;\n\t\tthis.lights = void 0;\n\t\tthis.cameras = void 0;\n\t}\n\tdestroy() {\n\t\tif (this.renders) {\n\t\t\tthis.renders.forEach(render => {\n\t\t\t\trender.meshes = null;\n\t\t\t});\n\t\t}\n\t}\n}\nconst isDataURI = uri => {\n\treturn /^data:[^\\n\\r,\\u2028\\u2029]*,.*$/i.test(uri);\n};\nconst getDataURIMimeType = uri => {\n\treturn uri.substring(uri.indexOf(':') + 1, uri.indexOf(';'));\n};\nconst getNumComponents = accessorType => {\n\tswitch (accessorType) {\n\t\tcase 'SCALAR':\n\t\t\treturn 1;\n\t\tcase 'VEC2':\n\t\t\treturn 2;\n\t\tcase 'VEC3':\n\t\t\treturn 3;\n\t\tcase 'VEC4':\n\t\t\treturn 4;\n\t\tcase 'MAT2':\n\t\t\treturn 4;\n\t\tcase 'MAT3':\n\t\t\treturn 9;\n\t\tcase 'MAT4':\n\t\t\treturn 16;\n\t\tdefault:\n\t\t\treturn 3;\n\t}\n};\nconst getComponentType$1 = componentType => {\n\tswitch (componentType) {\n\t\tcase 5120:\n\t\t\treturn TYPE_INT8;\n\t\tcase 5121:\n\t\t\treturn TYPE_UINT8;\n\t\tcase 5122:\n\t\t\treturn TYPE_INT16;\n\t\tcase 5123:\n\t\t\treturn TYPE_UINT16;\n\t\tcase 5124:\n\t\t\treturn TYPE_INT32;\n\t\tcase 5125:\n\t\t\treturn TYPE_UINT32;\n\t\tcase 5126:\n\t\t\treturn TYPE_FLOAT32;\n\t\tdefault:\n\t\t\treturn 0;\n\t}\n};\nconst getComponentSizeInBytes = componentType => {\n\tswitch (componentType) {\n\t\tcase 5120:\n\t\t\treturn 1;\n\t\tcase 5121:\n\t\t\treturn 1;\n\t\tcase 5122:\n\t\t\treturn 2;\n\t\tcase 5123:\n\t\t\treturn 2;\n\t\tcase 5124:\n\t\t\treturn 4;\n\t\tcase 5125:\n\t\t\treturn 4;\n\t\tcase 5126:\n\t\t\treturn 4;\n\t\tdefault:\n\t\t\treturn 0;\n\t}\n};\nconst getComponentDataType = componentType => {\n\tswitch (componentType) {\n\t\tcase 5120:\n\t\t\treturn Int8Array;\n\t\tcase 5121:\n\t\t\treturn Uint8Array;\n\t\tcase 5122:\n\t\t\treturn Int16Array;\n\t\tcase 5123:\n\t\t\treturn Uint16Array;\n\t\tcase 5124:\n\t\t\treturn Int32Array;\n\t\tcase 5125:\n\t\t\treturn Uint32Array;\n\t\tcase 5126:\n\t\t\treturn Float32Array;\n\t\tdefault:\n\t\t\treturn null;\n\t}\n};\nconst gltfToEngineSemanticMap = {\n\t'POSITION': SEMANTIC_POSITION,\n\t'NORMAL': SEMANTIC_NORMAL,\n\t'TANGENT': SEMANTIC_TANGENT,\n\t'COLOR_0': SEMANTIC_COLOR,\n\t'JOINTS_0': SEMANTIC_BLENDINDICES,\n\t'WEIGHTS_0': SEMANTIC_BLENDWEIGHT,\n\t'TEXCOORD_0': SEMANTIC_TEXCOORD0,\n\t'TEXCOORD_1': SEMANTIC_TEXCOORD1,\n\t'TEXCOORD_2': SEMANTIC_TEXCOORD2,\n\t'TEXCOORD_3': SEMANTIC_TEXCOORD3,\n\t'TEXCOORD_4': SEMANTIC_TEXCOORD4,\n\t'TEXCOORD_5': SEMANTIC_TEXCOORD5,\n\t'TEXCOORD_6': SEMANTIC_TEXCOORD6,\n\t'TEXCOORD_7': SEMANTIC_TEXCOORD7\n};\nconst attributeOrder = {\n\t[SEMANTIC_POSITION]: 0,\n\t[SEMANTIC_NORMAL]: 1,\n\t[SEMANTIC_TANGENT]: 2,\n\t[SEMANTIC_COLOR]: 3,\n\t[SEMANTIC_BLENDINDICES]: 4,\n\t[SEMANTIC_BLENDWEIGHT]: 5,\n\t[SEMANTIC_TEXCOORD0]: 6,\n\t[SEMANTIC_TEXCOORD1]: 7,\n\t[SEMANTIC_TEXCOORD2]: 8,\n\t[SEMANTIC_TEXCOORD3]: 9,\n\t[SEMANTIC_TEXCOORD4]: 10,\n\t[SEMANTIC_TEXCOORD5]: 11,\n\t[SEMANTIC_TEXCOORD6]: 12,\n\t[SEMANTIC_TEXCOORD7]: 13\n};\nconst getDequantizeFunc = srcType => {\n\tswitch (srcType) {\n\t\tcase TYPE_INT8:\n\t\t\treturn x => Math.max(x / 127.0, -1.0);\n\t\tcase TYPE_UINT8:\n\t\t\treturn x => x / 255.0;\n\t\tcase TYPE_INT16:\n\t\t\treturn x => Math.max(x / 32767.0, -1.0);\n\t\tcase TYPE_UINT16:\n\t\t\treturn x => x / 65535.0;\n\t\tdefault:\n\t\t\treturn x => x;\n\t}\n};\nconst dequantizeArray = (dstArray, srcArray, srcType) => {\n\tconst convFunc = getDequantizeFunc(srcType);\n\tconst len = srcArray.length;\n\tfor (let i = 0; i < len; ++i) {\n\t\tdstArray[i] = convFunc(srcArray[i]);\n\t}\n\treturn dstArray;\n};\nconst getAccessorData = (gltfAccessor, bufferViews, flatten = false) => {\n\tconst numComponents = getNumComponents(gltfAccessor.type);\n\tconst dataType = getComponentDataType(gltfAccessor.componentType);\n\tif (!dataType) {\n\t\treturn null;\n\t}\n\tlet result;\n\tif (gltfAccessor.sparse) {\n\t\tconst sparse = gltfAccessor.sparse;\n\t\tconst indicesAccessor = {\n\t\t\tcount: sparse.count,\n\t\t\ttype: 'SCALAR'\n\t\t};\n\t\tconst indices = getAccessorData(Object.assign(indicesAccessor, sparse.indices), bufferViews, true);\n\t\tconst valuesAccessor = {\n\t\t\tcount: sparse.count,\n\t\t\ttype: gltfAccessor.type,\n\t\t\tcomponentType: gltfAccessor.componentType\n\t\t};\n\t\tconst values = getAccessorData(Object.assign(valuesAccessor, sparse.values), bufferViews, true);\n\t\tif (gltfAccessor.hasOwnProperty('bufferView')) {\n\t\t\tconst baseAccessor = {\n\t\t\t\tbufferView: gltfAccessor.bufferView,\n\t\t\t\tbyteOffset: gltfAccessor.byteOffset,\n\t\t\t\tcomponentType: gltfAccessor.componentType,\n\t\t\t\tcount: gltfAccessor.count,\n\t\t\t\ttype: gltfAccessor.type\n\t\t\t};\n\t\t\tresult = getAccessorData(baseAccessor, bufferViews, true).slice();\n\t\t} else {\n\t\t\tresult = new dataType(gltfAccessor.count * numComponents);\n\t\t}\n\t\tfor (let i = 0; i < sparse.count; ++i) {\n\t\t\tconst targetIndex = indices[i];\n\t\t\tfor (let j = 0; j < numComponents; ++j) {\n\t\t\t\tresult[targetIndex * numComponents + j] = values[i * numComponents + j];\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (gltfAccessor.hasOwnProperty('bufferView')) {\n\t\t\tconst bufferView = bufferViews[gltfAccessor.bufferView];\n\t\t\tif (flatten && bufferView.hasOwnProperty('byteStride')) {\n\t\t\t\tconst bytesPerElement = numComponents * dataType.BYTES_PER_ELEMENT;\n\t\t\t\tconst storage = new ArrayBuffer(gltfAccessor.count * bytesPerElement);\n\t\t\t\tconst tmpArray = new Uint8Array(storage);\n\t\t\t\tlet dstOffset = 0;\n\t\t\t\tfor (let i = 0; i < gltfAccessor.count; ++i) {\n\t\t\t\t\tlet srcOffset = (gltfAccessor.byteOffset || 0) + i * bufferView.byteStride;\n\t\t\t\t\tfor (let b = 0; b < bytesPerElement; ++b) {\n\t\t\t\t\t\ttmpArray[dstOffset++] = bufferView[srcOffset++];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tresult = new dataType(storage);\n\t\t\t} else {\n\t\t\t\tresult = new dataType(bufferView.buffer, bufferView.byteOffset + (gltfAccessor.byteOffset || 0), gltfAccessor.count * numComponents);\n\t\t\t}\n\t\t} else {\n\t\t\tresult = new dataType(gltfAccessor.count * numComponents);\n\t\t}\n\t}\n\treturn result;\n};\nconst getAccessorDataFloat32 = (gltfAccessor, bufferViews) => {\n\tconst data = getAccessorData(gltfAccessor, bufferViews, true);\n\tif (data instanceof Float32Array || !gltfAccessor.normalized) {\n\t\treturn data;\n\t}\n\tconst float32Data = new Float32Array(data.length);\n\tdequantizeArray(float32Data, data, getComponentType$1(gltfAccessor.componentType));\n\treturn float32Data;\n};\nconst getAccessorBoundingBox = gltfAccessor => {\n\tlet min = gltfAccessor.min;\n\tlet max = gltfAccessor.max;\n\tif (!min || !max) {\n\t\treturn null;\n\t}\n\tif (gltfAccessor.normalized) {\n\t\tconst ctype = getComponentType$1(gltfAccessor.componentType);\n\t\tmin = dequantizeArray([], min, ctype);\n\t\tmax = dequantizeArray([], max, ctype);\n\t}\n\treturn new BoundingBox(new Vec3((max[0] + min[0]) * 0.5, (max[1] + min[1]) * 0.5, (max[2] + min[2]) * 0.5), new Vec3((max[0] - min[0]) * 0.5, (max[1] - min[1]) * 0.5, (max[2] - min[2]) * 0.5));\n};\nconst getPrimitiveType = primitive => {\n\tif (!primitive.hasOwnProperty('mode')) {\n\t\treturn PRIMITIVE_TRIANGLES;\n\t}\n\tswitch (primitive.mode) {\n\t\tcase 0:\n\t\t\treturn PRIMITIVE_POINTS;\n\t\tcase 1:\n\t\t\treturn PRIMITIVE_LINES;\n\t\tcase 2:\n\t\t\treturn PRIMITIVE_LINELOOP;\n\t\tcase 3:\n\t\t\treturn PRIMITIVE_LINESTRIP;\n\t\tcase 4:\n\t\t\treturn PRIMITIVE_TRIANGLES;\n\t\tcase 5:\n\t\t\treturn PRIMITIVE_TRISTRIP;\n\t\tcase 6:\n\t\t\treturn PRIMITIVE_TRIFAN;\n\t\tdefault:\n\t\t\treturn PRIMITIVE_TRIANGLES;\n\t}\n};\nconst generateIndices = numVertices => {\n\tconst dummyIndices = new Uint16Array(numVertices);\n\tfor (let i = 0; i < numVertices; i++) {\n\t\tdummyIndices[i] = i;\n\t}\n\treturn dummyIndices;\n};\nconst generateNormals = (sourceDesc, indices) => {\n\tconst p = sourceDesc[SEMANTIC_POSITION];\n\tif (!p || p.components !== 3) {\n\t\treturn;\n\t}\n\tlet positions;\n\tif (p.size !== p.stride) {\n\t\tconst srcStride = p.stride / typedArrayTypesByteSize[p.type];\n\t\tconst src = new typedArrayTypes[p.type](p.buffer, p.offset, p.count * srcStride);\n\t\tpositions = new typedArrayTypes[p.type](p.count * 3);\n\t\tfor (let i = 0; i < p.count; ++i) {\n\t\t\tpositions[i * 3 + 0] = src[i * srcStride + 0];\n\t\t\tpositions[i * 3 + 1] = src[i * srcStride + 1];\n\t\t\tpositions[i * 3 + 2] = src[i * srcStride + 2];\n\t\t}\n\t} else {\n\t\tpositions = new typedArrayTypes[p.type](p.buffer, p.offset, p.count * 3);\n\t}\n\tconst numVertices = p.count;\n\tif (!indices) {\n\t\tindices = generateIndices(numVertices);\n\t}\n\tconst normalsTemp = calculateNormals(positions, indices);\n\tconst normals = new Float32Array(normalsTemp.length);\n\tnormals.set(normalsTemp);\n\tsourceDesc[SEMANTIC_NORMAL] = {\n\t\tbuffer: normals.buffer,\n\t\tsize: 12,\n\t\toffset: 0,\n\t\tstride: 12,\n\t\tcount: numVertices,\n\t\tcomponents: 3,\n\t\ttype: TYPE_FLOAT32\n\t};\n};\nconst flipTexCoordVs = vertexBuffer => {\n\tlet i, j;\n\tconst floatOffsets = [];\n\tconst shortOffsets = [];\n\tconst byteOffsets = [];\n\tfor (i = 0; i < vertexBuffer.format.elements.length; ++i) {\n\t\tconst element = vertexBuffer.format.elements[i];\n\t\tif (element.name === SEMANTIC_TEXCOORD0 || element.name === SEMANTIC_TEXCOORD1) {\n\t\t\tswitch (element.dataType) {\n\t\t\t\tcase TYPE_FLOAT32:\n\t\t\t\t\tfloatOffsets.push({\n\t\t\t\t\t\toffset: element.offset / 4 + 1,\n\t\t\t\t\t\tstride: element.stride / 4\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase TYPE_UINT16:\n\t\t\t\t\tshortOffsets.push({\n\t\t\t\t\t\toffset: element.offset / 2 + 1,\n\t\t\t\t\t\tstride: element.stride / 2\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase TYPE_UINT8:\n\t\t\t\t\tbyteOffsets.push({\n\t\t\t\t\t\toffset: element.offset + 1,\n\t\t\t\t\t\tstride: element.stride\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tconst flip = (offsets, type, one) => {\n\t\tconst typedArray = new type(vertexBuffer.storage);\n\t\tfor (i = 0; i < offsets.length; ++i) {\n\t\t\tlet index = offsets[i].offset;\n\t\t\tconst stride = offsets[i].stride;\n\t\t\tfor (j = 0; j < vertexBuffer.numVertices; ++j) {\n\t\t\t\ttypedArray[index] = one - typedArray[index];\n\t\t\t\tindex += stride;\n\t\t\t}\n\t\t}\n\t};\n\tif (floatOffsets.length > 0) {\n\t\tflip(floatOffsets, Float32Array, 1.0);\n\t}\n\tif (shortOffsets.length > 0) {\n\t\tflip(shortOffsets, Uint16Array, 65535);\n\t}\n\tif (byteOffsets.length > 0) {\n\t\tflip(byteOffsets, Uint8Array, 255);\n\t}\n};\nconst cloneTexture = texture => {\n\tconst shallowCopyLevels = texture => {\n\t\tconst result = [];\n\t\tfor (let mip = 0; mip < texture._levels.length; ++mip) {\n\t\t\tlet level = [];\n\t\t\tif (texture.cubemap) {\n\t\t\t\tfor (let face = 0; face < 6; ++face) {\n\t\t\t\t\tlevel.push(texture._levels[mip][face]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tlevel = texture._levels[mip];\n\t\t\t}\n\t\t\tresult.push(level);\n\t\t}\n\t\treturn result;\n\t};\n\tconst result = new Texture(texture.device, texture);\n\tresult._levels = shallowCopyLevels(texture);\n\treturn result;\n};\nconst cloneTextureAsset = src => {\n\tconst result = new Asset(`${src.name}_clone`, src.type, src.file, src.data, src.options);\n\tresult.loaded = true;\n\tresult.resource = cloneTexture(src.resource);\n\tsrc.registry.add(result);\n\treturn result;\n};\nconst createVertexBufferInternal = (device, sourceDesc, flipV) => {\n\tconst positionDesc = sourceDesc[SEMANTIC_POSITION];\n\tif (!positionDesc) {\n\t\treturn null;\n\t}\n\tconst numVertices = positionDesc.count;\n\tconst vertexDesc = [];\n\tfor (const semantic in sourceDesc) {\n\t\tif (sourceDesc.hasOwnProperty(semantic)) {\n\t\t\tconst element = {\n\t\t\t\tsemantic: semantic,\n\t\t\t\tcomponents: sourceDesc[semantic].components,\n\t\t\t\ttype: sourceDesc[semantic].type,\n\t\t\t\tnormalize: !!sourceDesc[semantic].normalize\n\t\t\t};\n\t\t\tif (!VertexFormat.isElementValid(device, element)) {\n\t\t\t\telement.components++;\n\t\t\t}\n\t\t\tvertexDesc.push(element);\n\t\t}\n\t}\n\tvertexDesc.sort((lhs, rhs) => {\n\t\treturn attributeOrder[lhs.semantic] - attributeOrder[rhs.semantic];\n\t});\n\tlet i, j, k;\n\tlet source, target, sourceOffset;\n\tconst vertexFormat = new VertexFormat(device, vertexDesc);\n\tlet isCorrectlyInterleaved = true;\n\tfor (i = 0; i < vertexFormat.elements.length; ++i) {\n\t\ttarget = vertexFormat.elements[i];\n\t\tsource = sourceDesc[target.name];\n\t\tsourceOffset = source.offset - positionDesc.offset;\n\t\tif (source.buffer !== positionDesc.buffer || source.stride !== target.stride || source.size !== target.size || sourceOffset !== target.offset) {\n\t\t\tisCorrectlyInterleaved = false;\n\t\t\tbreak;\n\t\t}\n\t}\n\tconst vertexBuffer = new VertexBuffer(device, vertexFormat, numVertices);\n\tconst vertexData = vertexBuffer.lock();\n\tconst targetArray = new Uint32Array(vertexData);\n\tlet sourceArray;\n\tif (isCorrectlyInterleaved) {\n\t\tsourceArray = new Uint32Array(positionDesc.buffer, positionDesc.offset, numVertices * vertexBuffer.format.size / 4);\n\t\ttargetArray.set(sourceArray);\n\t} else {\n\t\tlet targetStride, sourceStride;\n\t\tfor (i = 0; i < vertexBuffer.format.elements.length; ++i) {\n\t\t\ttarget = vertexBuffer.format.elements[i];\n\t\t\ttargetStride = target.stride / 4;\n\t\t\tsource = sourceDesc[target.name];\n\t\t\tsourceStride = source.stride / 4;\n\t\t\tsourceArray = new Uint32Array(source.buffer, source.offset, (source.count - 1) * sourceStride + (source.size + 3) / 4);\n\t\t\tlet src = 0;\n\t\t\tlet dst = target.offset / 4;\n\t\t\tconst kend = Math.floor((source.size + 3) / 4);\n\t\t\tfor (j = 0; j < numVertices; ++j) {\n\t\t\t\tfor (k = 0; k < kend; ++k) {\n\t\t\t\t\ttargetArray[dst + k] = sourceArray[src + k];\n\t\t\t\t}\n\t\t\t\tsrc += sourceStride;\n\t\t\t\tdst += targetStride;\n\t\t\t}\n\t\t}\n\t}\n\tif (flipV) {\n\t\tflipTexCoordVs(vertexBuffer);\n\t}\n\tvertexBuffer.unlock();\n\treturn vertexBuffer;\n};\nconst createVertexBuffer = (device, attributes, indices, accessors, bufferViews, flipV, vertexBufferDict) => {\n\tconst useAttributes = {};\n\tconst attribIds = [];\n\tfor (const attrib in attributes) {\n\t\tif (attributes.hasOwnProperty(attrib) && gltfToEngineSemanticMap.hasOwnProperty(attrib)) {\n\t\t\tuseAttributes[attrib] = attributes[attrib];\n\t\t\tattribIds.push(`${attrib}:${attributes[attrib]}`);\n\t\t}\n\t}\n\tattribIds.sort();\n\tconst vbKey = attribIds.join();\n\tlet vb = vertexBufferDict[vbKey];\n\tif (!vb) {\n\t\tconst sourceDesc = {};\n\t\tfor (const attrib in useAttributes) {\n\t\t\tconst accessor = accessors[attributes[attrib]];\n\t\t\tconst accessorData = getAccessorData(accessor, bufferViews);\n\t\t\tconst bufferView = bufferViews[accessor.bufferView];\n\t\t\tconst semantic = gltfToEngineSemanticMap[attrib];\n\t\t\tconst size = getNumComponents(accessor.type) * getComponentSizeInBytes(accessor.componentType);\n\t\t\tconst stride = bufferView && bufferView.hasOwnProperty('byteStride') ? bufferView.byteStride : size;\n\t\t\tsourceDesc[semantic] = {\n\t\t\t\tbuffer: accessorData.buffer,\n\t\t\t\tsize: size,\n\t\t\t\toffset: accessorData.byteOffset,\n\t\t\t\tstride: stride,\n\t\t\t\tcount: accessor.count,\n\t\t\t\tcomponents: getNumComponents(accessor.type),\n\t\t\t\ttype: getComponentType$1(accessor.componentType),\n\t\t\t\tnormalize: accessor.normalized\n\t\t\t};\n\t\t}\n\t\tif (!sourceDesc.hasOwnProperty(SEMANTIC_NORMAL)) {\n\t\t\tgenerateNormals(sourceDesc, indices);\n\t\t}\n\t\tvb = createVertexBufferInternal(device, sourceDesc, flipV);\n\t\tvertexBufferDict[vbKey] = vb;\n\t}\n\treturn vb;\n};\nconst createSkin = (device, gltfSkin, accessors, bufferViews, nodes, glbSkins) => {\n\tlet i, j, bindMatrix;\n\tconst joints = gltfSkin.joints;\n\tconst numJoints = joints.length;\n\tconst ibp = [];\n\tif (gltfSkin.hasOwnProperty('inverseBindMatrices')) {\n\t\tconst inverseBindMatrices = gltfSkin.inverseBindMatrices;\n\t\tconst ibmData = getAccessorData(accessors[inverseBindMatrices], bufferViews, true);\n\t\tconst ibmValues = [];\n\t\tfor (i = 0; i < numJoints; i++) {\n\t\t\tfor (j = 0; j < 16; j++) {\n\t\t\t\tibmValues[j] = ibmData[i * 16 + j];\n\t\t\t}\n\t\t\tbindMatrix = new Mat4();\n\t\t\tbindMatrix.set(ibmValues);\n\t\t\tibp.push(bindMatrix);\n\t\t}\n\t} else {\n\t\tfor (i = 0; i < numJoints; i++) {\n\t\t\tbindMatrix = new Mat4();\n\t\t\tibp.push(bindMatrix);\n\t\t}\n\t}\n\tconst boneNames = [];\n\tfor (i = 0; i < numJoints; i++) {\n\t\tboneNames[i] = nodes[joints[i]].name;\n\t}\n\tconst key = boneNames.join('#');\n\tlet skin = glbSkins.get(key);\n\tif (!skin) {\n\t\tskin = new Skin(device, ibp, boneNames);\n\t\tglbSkins.set(key, skin);\n\t}\n\treturn skin;\n};\nconst createDracoMesh = (device, primitive, accessors, bufferViews, meshVariants, meshDefaultMaterials, promises) => {\n\tvar _primitive$extensions;\n\tconst result = new Mesh(device);\n\tresult.aabb = getAccessorBoundingBox(accessors[primitive.attributes.POSITION]);\n\tconst vertexDesc = [];\n\tfor (const [name, index] of Object.entries(primitive.attributes)) {\n\t\tvar _accessor$normalized;\n\t\tconst accessor = accessors[index];\n\t\tconst semantic = gltfToEngineSemanticMap[name];\n\t\tconst componentType = getComponentType$1(accessor.componentType);\n\t\tvertexDesc.push({\n\t\t\tsemantic: semantic,\n\t\t\tcomponents: getNumComponents(accessor.type),\n\t\t\ttype: componentType,\n\t\t\tnormalize: (_accessor$normalized = accessor.normalized) != null ? _accessor$normalized : semantic === SEMANTIC_COLOR && (componentType === TYPE_UINT8 || componentType === TYPE_UINT16)\n\t\t});\n\t}\n\tpromises.push(new Promise((resolve, reject) => {\n\t\tconst dracoExt = primitive.extensions.KHR_draco_mesh_compression;\n\t\tdracoDecode(bufferViews[dracoExt.bufferView].slice().buffer, (err, decompressedData) => {\n\t\t\tif (err) {\n\t\t\t\tconsole.log(err);\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\tvar _primitive$attributes;\n\t\t\t\tconst order = {};\n\t\t\t\tfor (const [name, index] of Object.entries(dracoExt.attributes)) {\n\t\t\t\t\torder[gltfToEngineSemanticMap[name]] = decompressedData.attributes.indexOf(index);\n\t\t\t\t}\n\t\t\t\tvertexDesc.sort((a, b) => {\n\t\t\t\t\treturn order[a.semantic] - order[b.semantic];\n\t\t\t\t});\n\t\t\t\tif (!((_primitive$attributes = primitive.attributes) != null && _primitive$attributes.NORMAL)) {\n\t\t\t\t\tvertexDesc.splice(1, 0, {\n\t\t\t\t\t\tsemantic: 'NORMAL',\n\t\t\t\t\t\tcomponents: 3,\n\t\t\t\t\t\ttype: TYPE_FLOAT32\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tconst vertexFormat = new VertexFormat(device, vertexDesc);\n\t\t\t\tconst numVertices = decompressedData.vertices.byteLength / vertexFormat.size;\n\t\t\t\tconst indexFormat = numVertices <= 65535 ? INDEXFORMAT_UINT16 : INDEXFORMAT_UINT32;\n\t\t\t\tconst numIndices = decompressedData.indices.byteLength / (numVertices <= 65535 ? 2 : 4);\n\t\t\t\tconst vertexBuffer = new VertexBuffer(device, vertexFormat, numVertices, {\n\t\t\t\t\tdata: decompressedData.vertices\n\t\t\t\t});\n\t\t\t\tconst indexBuffer = new IndexBuffer(device, indexFormat, numIndices, BUFFER_STATIC, decompressedData.indices);\n\t\t\t\tresult.vertexBuffer = vertexBuffer;\n\t\t\t\tresult.indexBuffer[0] = indexBuffer;\n\t\t\t\tresult.primitive[0].type = getPrimitiveType(primitive);\n\t\t\t\tresult.primitive[0].base = 0;\n\t\t\t\tresult.primitive[0].count = indexBuffer ? numIndices : numVertices;\n\t\t\t\tresult.primitive[0].indexed = !!indexBuffer;\n\t\t\t\tresolve();\n\t\t\t}\n\t\t});\n\t}));\n\tif (primitive != null && (_primitive$extensions = primitive.extensions) != null && _primitive$extensions.KHR_materials_variants) {\n\t\tconst variants = primitive.extensions.KHR_materials_variants;\n\t\tconst tempMapping = {};\n\t\tvariants.mappings.forEach(mapping => {\n\t\t\tmapping.variants.forEach(variant => {\n\t\t\t\ttempMapping[variant] = mapping.material;\n\t\t\t});\n\t\t});\n\t\tmeshVariants[result.id] = tempMapping;\n\t}\n\tmeshDefaultMaterials[result.id] = primitive.material;\n\treturn result;\n};\nconst createMesh$1 = (device, gltfMesh, accessors, bufferViews, flipV, vertexBufferDict, meshVariants, meshDefaultMaterials, assetOptions, promises) => {\n\tconst meshes = [];\n\tgltfMesh.primitives.forEach(primitive => {\n\t\tvar _primitive$extensions2;\n\t\tif ((_primitive$extensions2 = primitive.extensions) != null && _primitive$extensions2.KHR_draco_mesh_compression) {\n\t\t\tmeshes.push(createDracoMesh(device, primitive, accessors, bufferViews, meshVariants, meshDefaultMaterials, promises));\n\t\t} else {\n\t\t\tlet indices = primitive.hasOwnProperty('indices') ? getAccessorData(accessors[primitive.indices], bufferViews, true) : null;\n\t\t\tconst vertexBuffer = createVertexBuffer(device, primitive.attributes, indices, accessors, bufferViews, flipV, vertexBufferDict);\n\t\t\tconst primitiveType = getPrimitiveType(primitive);\n\t\t\tconst mesh = new Mesh(device);\n\t\t\tmesh.vertexBuffer = vertexBuffer;\n\t\t\tmesh.primitive[0].type = primitiveType;\n\t\t\tmesh.primitive[0].base = 0;\n\t\t\tmesh.primitive[0].indexed = indices !== null;\n\t\t\tif (indices !== null) {\n\t\t\t\tlet indexFormat;\n\t\t\t\tif (indices instanceof Uint8Array) {\n\t\t\t\t\tindexFormat = INDEXFORMAT_UINT8;\n\t\t\t\t} else if (indices instanceof Uint16Array) {\n\t\t\t\t\tindexFormat = INDEXFORMAT_UINT16;\n\t\t\t\t} else {\n\t\t\t\t\tindexFormat = INDEXFORMAT_UINT32;\n\t\t\t\t}\n\t\t\t\tif (indexFormat === INDEXFORMAT_UINT32 && !device.extUintElement) {\n\t\t\t\t\tindexFormat = INDEXFORMAT_UINT16;\n\t\t\t\t\tindices = new Uint16Array(indices);\n\t\t\t\t}\n\t\t\t\tif (indexFormat === INDEXFORMAT_UINT8 && device.isWebGPU) {\n\t\t\t\t\tindexFormat = INDEXFORMAT_UINT16;\n\t\t\t\t\tindices = new Uint16Array(indices);\n\t\t\t\t}\n\t\t\t\tconst indexBuffer = new IndexBuffer(device, indexFormat, indices.length, BUFFER_STATIC, indices);\n\t\t\t\tmesh.indexBuffer[0] = indexBuffer;\n\t\t\t\tmesh.primitive[0].count = indices.length;\n\t\t\t} else {\n\t\t\t\tmesh.primitive[0].count = vertexBuffer.numVertices;\n\t\t\t}\n\t\t\tif (primitive.hasOwnProperty('extensions') && primitive.extensions.hasOwnProperty('KHR_materials_variants')) {\n\t\t\t\tconst variants = primitive.extensions.KHR_materials_variants;\n\t\t\t\tconst tempMapping = {};\n\t\t\t\tvariants.mappings.forEach(mapping => {\n\t\t\t\t\tmapping.variants.forEach(variant => {\n\t\t\t\t\t\ttempMapping[variant] = mapping.material;\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t\tmeshVariants[mesh.id] = tempMapping;\n\t\t\t}\n\t\t\tmeshDefaultMaterials[mesh.id] = primitive.material;\n\t\t\tlet accessor = accessors[primitive.attributes.POSITION];\n\t\t\tmesh.aabb = getAccessorBoundingBox(accessor);\n\t\t\tif (primitive.hasOwnProperty('targets')) {\n\t\t\t\tconst targets = [];\n\t\t\t\tprimitive.targets.forEach((target, index) => {\n\t\t\t\t\tconst options = {};\n\t\t\t\t\tif (target.hasOwnProperty('POSITION')) {\n\t\t\t\t\t\taccessor = accessors[target.POSITION];\n\t\t\t\t\t\toptions.deltaPositions = getAccessorDataFloat32(accessor, bufferViews);\n\t\t\t\t\t\toptions.deltaPositionsType = TYPE_FLOAT32;\n\t\t\t\t\t\toptions.aabb = getAccessorBoundingBox(accessor);\n\t\t\t\t\t}\n\t\t\t\t\tif (target.hasOwnProperty('NORMAL')) {\n\t\t\t\t\t\taccessor = accessors[target.NORMAL];\n\t\t\t\t\t\toptions.deltaNormals = getAccessorDataFloat32(accessor, bufferViews);\n\t\t\t\t\t\toptions.deltaNormalsType = TYPE_FLOAT32;\n\t\t\t\t\t}\n\t\t\t\t\tif (gltfMesh.hasOwnProperty('extras') && gltfMesh.extras.hasOwnProperty('targetNames')) {\n\t\t\t\t\t\toptions.name = gltfMesh.extras.targetNames[index];\n\t\t\t\t\t} else {\n\t\t\t\t\t\toptions.name = index.toString(10);\n\t\t\t\t\t}\n\t\t\t\t\tif (gltfMesh.hasOwnProperty('weights')) {\n\t\t\t\t\t\toptions.defaultWeight = gltfMesh.weights[index];\n\t\t\t\t\t}\n\t\t\t\t\toptions.preserveData = assetOptions.morphPreserveData;\n\t\t\t\t\ttargets.push(new MorphTarget(options));\n\t\t\t\t});\n\t\t\t\tmesh.morph = new Morph(targets, device, {\n\t\t\t\t\tpreferHighPrecision: assetOptions.morphPreferHighPrecision\n\t\t\t\t});\n\t\t\t}\n\t\t\tmeshes.push(mesh);\n\t\t}\n\t});\n\treturn meshes;\n};\nconst extractTextureTransform = (source, material, maps) => {\n\tvar _source$extensions;\n\tlet map;\n\tconst texCoord = source.texCoord;\n\tif (texCoord) {\n\t\tfor (map = 0; map < maps.length; ++map) {\n\t\t\tmaterial[`${maps[map]}MapUv`] = texCoord;\n\t\t}\n\t}\n\tconst zeros = [0, 0];\n\tconst ones = [1, 1];\n\tconst textureTransform = (_source$extensions = source.extensions) == null ? void 0 : _source$extensions.KHR_texture_transform;\n\tif (textureTransform) {\n\t\tconst offset = textureTransform.offset || zeros;\n\t\tconst scale = textureTransform.scale || ones;\n\t\tconst rotation = textureTransform.rotation ? -textureTransform.rotation * math.RAD_TO_DEG : 0;\n\t\tconst tilingVec = new Vec2(scale[0], scale[1]);\n\t\tconst offsetVec = new Vec2(offset[0], 1.0 - scale[1] - offset[1]);\n\t\tfor (map = 0; map < maps.length; ++map) {\n\t\t\tmaterial[`${maps[map]}MapTiling`] = tilingVec;\n\t\t\tmaterial[`${maps[map]}MapOffset`] = offsetVec;\n\t\t\tmaterial[`${maps[map]}MapRotation`] = rotation;\n\t\t}\n\t}\n};\nconst extensionPbrSpecGlossiness = (data, material, textures) => {\n\tlet color, texture;\n\tif (data.hasOwnProperty('diffuseFactor')) {\n\t\tcolor = data.diffuseFactor;\n\t\tmaterial.diffuse.set(Math.pow(color[0], 1 / 2.2), Math.pow(color[1], 1 / 2.2), Math.pow(color[2], 1 / 2.2));\n\t\tmaterial.opacity = color[3];\n\t} else {\n\t\tmaterial.diffuse.set(1, 1, 1);\n\t\tmaterial.opacity = 1;\n\t}\n\tif (data.hasOwnProperty('diffuseTexture')) {\n\t\tconst diffuseTexture = data.diffuseTexture;\n\t\ttexture = textures[diffuseTexture.index];\n\t\tmaterial.diffuseMap = texture;\n\t\tmaterial.diffuseMapChannel = 'rgb';\n\t\tmaterial.opacityMap = texture;\n\t\tmaterial.opacityMapChannel = 'a';\n\t\textractTextureTransform(diffuseTexture, material, ['diffuse', 'opacity']);\n\t}\n\tmaterial.useMetalness = false;\n\tif (data.hasOwnProperty('specularFactor')) {\n\t\tcolor = data.specularFactor;\n\t\tmaterial.specular.set(Math.pow(color[0], 1 / 2.2), Math.pow(color[1], 1 / 2.2), Math.pow(color[2], 1 / 2.2));\n\t} else {\n\t\tmaterial.specular.set(1, 1, 1);\n\t}\n\tif (data.hasOwnProperty('glossinessFactor')) {\n\t\tmaterial.gloss = data.glossinessFactor;\n\t} else {\n\t\tmaterial.gloss = 1.0;\n\t}\n\tif (data.hasOwnProperty('specularGlossinessTexture')) {\n\t\tconst specularGlossinessTexture = data.specularGlossinessTexture;\n\t\tmaterial.specularEncoding = 'srgb';\n\t\tmaterial.specularMap = material.glossMap = textures[specularGlossinessTexture.index];\n\t\tmaterial.specularMapChannel = 'rgb';\n\t\tmaterial.glossMapChannel = 'a';\n\t\textractTextureTransform(specularGlossinessTexture, material, ['gloss', 'metalness']);\n\t}\n};\nconst extensionClearCoat = (data, material, textures) => {\n\tif (data.hasOwnProperty('clearcoatFactor')) {\n\t\tmaterial.clearCoat = data.clearcoatFactor * 0.25;\n\t} else {\n\t\tmaterial.clearCoat = 0;\n\t}\n\tif (data.hasOwnProperty('clearcoatTexture')) {\n\t\tconst clearcoatTexture = data.clearcoatTexture;\n\t\tmaterial.clearCoatMap = textures[clearcoatTexture.index];\n\t\tmaterial.clearCoatMapChannel = 'r';\n\t\textractTextureTransform(clearcoatTexture, material, ['clearCoat']);\n\t}\n\tif (data.hasOwnProperty('clearcoatRoughnessFactor')) {\n\t\tmaterial.clearCoatGloss = data.clearcoatRoughnessFactor;\n\t} else {\n\t\tmaterial.clearCoatGloss = 0;\n\t}\n\tif (data.hasOwnProperty('clearcoatRoughnessTexture')) {\n\t\tconst clearcoatRoughnessTexture = data.clearcoatRoughnessTexture;\n\t\tmaterial.clearCoatGlossMap = textures[clearcoatRoughnessTexture.index];\n\t\tmaterial.clearCoatGlossMapChannel = 'g';\n\t\textractTextureTransform(clearcoatRoughnessTexture, material, ['clearCoatGloss']);\n\t}\n\tif (data.hasOwnProperty('clearcoatNormalTexture')) {\n\t\tconst clearcoatNormalTexture = data.clearcoatNormalTexture;\n\t\tmaterial.clearCoatNormalMap = textures[clearcoatNormalTexture.index];\n\t\textractTextureTransform(clearcoatNormalTexture, material, ['clearCoatNormal']);\n\t\tif (clearcoatNormalTexture.hasOwnProperty('scale')) {\n\t\t\tmaterial.clearCoatBumpiness = clearcoatNormalTexture.scale;\n\t\t}\n\t}\n\tmaterial.clearCoatGlossInvert = true;\n};\nconst extensionUnlit = (data, material, textures) => {\n\tmaterial.useLighting = false;\n\tmaterial.emissive.copy(material.diffuse);\n\tmaterial.emissiveTint = material.diffuseTint;\n\tmaterial.emissiveMap = material.diffuseMap;\n\tmaterial.emissiveMapUv = material.diffuseMapUv;\n\tmaterial.emissiveMapTiling.copy(material.diffuseMapTiling);\n\tmaterial.emissiveMapOffset.copy(material.diffuseMapOffset);\n\tmaterial.emissiveMapRotation = material.diffuseMapRotation;\n\tmaterial.emissiveMapChannel = material.diffuseMapChannel;\n\tmaterial.emissiveVertexColor = material.diffuseVertexColor;\n\tmaterial.emissiveVertexColorChannel = material.diffuseVertexColorChannel;\n\tmaterial.useLighting = false;\n\tmaterial.useSkybox = false;\n\tmaterial.diffuse.set(0, 0, 0);\n\tmaterial.diffuseTint = false;\n\tmaterial.diffuseMap = null;\n\tmaterial.diffuseVertexColor = false;\n};\nconst extensionSpecular = (data, material, textures) => {\n\tmaterial.useMetalnessSpecularColor = true;\n\tif (data.hasOwnProperty('specularColorTexture')) {\n\t\tmaterial.specularEncoding = 'srgb';\n\t\tmaterial.specularMap = textures[data.specularColorTexture.index];\n\t\tmaterial.specularMapChannel = 'rgb';\n\t\textractTextureTransform(data.specularColorTexture, material, ['specular']);\n\t}\n\tif (data.hasOwnProperty('specularColorFactor')) {\n\t\tconst color = data.specularColorFactor;\n\t\tmaterial.specular.set(Math.pow(color[0], 1 / 2.2), Math.pow(color[1], 1 / 2.2), Math.pow(color[2], 1 / 2.2));\n\t} else {\n\t\tmaterial.specular.set(1, 1, 1);\n\t}\n\tif (data.hasOwnProperty('specularFactor')) {\n\t\tmaterial.specularityFactor = data.specularFactor;\n\t} else {\n\t\tmaterial.specularityFactor = 1;\n\t}\n\tif (data.hasOwnProperty('specularTexture')) {\n\t\tmaterial.specularityFactorMapChannel = 'a';\n\t\tmaterial.specularityFactorMap = textures[data.specularTexture.index];\n\t\textractTextureTransform(data.specularTexture, material, ['specularityFactor']);\n\t}\n};\nconst extensionIor = (data, material, textures) => {\n\tif (data.hasOwnProperty('ior')) {\n\t\tmaterial.refractionIndex = 1.0 / data.ior;\n\t}\n};\nconst extensionDispersion = (data, material, textures) => {\n\tif (data.hasOwnProperty('dispersion')) {\n\t\tmaterial.dispersion = data.dispersion;\n\t}\n};\nconst extensionTransmission = (data, material, textures) => {\n\tmaterial.blendType = BLEND_NORMAL;\n\tmaterial.useDynamicRefraction = true;\n\tif (data.hasOwnProperty('transmissionFactor')) {\n\t\tmaterial.refraction = data.transmissionFactor;\n\t}\n\tif (data.hasOwnProperty('transmissionTexture')) {\n\t\tmaterial.refractionMapChannel = 'r';\n\t\tmaterial.refractionMap = textures[data.transmissionTexture.index];\n\t\textractTextureTransform(data.transmissionTexture, material, ['refraction']);\n\t}\n};\nconst extensionSheen = (data, material, textures) => {\n\tmaterial.useSheen = true;\n\tif (data.hasOwnProperty('sheenColorFactor')) {\n\t\tconst color = data.sheenColorFactor;\n\t\tmaterial.sheen.set(Math.pow(color[0], 1 / 2.2), Math.pow(color[1], 1 / 2.2), Math.pow(color[2], 1 / 2.2));\n\t} else {\n\t\tmaterial.sheen.set(1, 1, 1);\n\t}\n\tif (data.hasOwnProperty('sheenColorTexture')) {\n\t\tmaterial.sheenMap = textures[data.sheenColorTexture.index];\n\t\tmaterial.sheenEncoding = 'srgb';\n\t\textractTextureTransform(data.sheenColorTexture, material, ['sheen']);\n\t}\n\tif (data.hasOwnProperty('sheenRoughnessFactor')) {\n\t\tmaterial.sheenGloss = data.sheenRoughnessFactor;\n\t} else {\n\t\tmaterial.sheenGloss = 0.0;\n\t}\n\tif (data.hasOwnProperty('sheenRoughnessTexture')) {\n\t\tmaterial.sheenGlossMap = textures[data.sheenRoughnessTexture.index];\n\t\tmaterial.sheenGlossMapChannel = 'a';\n\t\textractTextureTransform(data.sheenRoughnessTexture, material, ['sheenGloss']);\n\t}\n\tmaterial.sheenGlossInvert = true;\n};\nconst extensionVolume = (data, material, textures) => {\n\tmaterial.blendType = BLEND_NORMAL;\n\tmaterial.useDynamicRefraction = true;\n\tif (data.hasOwnProperty('thicknessFactor')) {\n\t\tmaterial.thickness = data.thicknessFactor;\n\t}\n\tif (data.hasOwnProperty('thicknessTexture')) {\n\t\tmaterial.thicknessMap = textures[data.thicknessTexture.index];\n\t\tmaterial.thicknessMapChannel = 'g';\n\t\textractTextureTransform(data.thicknessTexture, material, ['thickness']);\n\t}\n\tif (data.hasOwnProperty('attenuationDistance')) {\n\t\tmaterial.attenuationDistance = data.attenuationDistance;\n\t}\n\tif (data.hasOwnProperty('attenuationColor')) {\n\t\tconst color = data.attenuationColor;\n\t\tmaterial.attenuation.set(Math.pow(color[0], 1 / 2.2), Math.pow(color[1], 1 / 2.2), Math.pow(color[2], 1 / 2.2));\n\t}\n};\nconst extensionEmissiveStrength = (data, material, textures) => {\n\tif (data.hasOwnProperty('emissiveStrength')) {\n\t\tmaterial.emissiveIntensity = data.emissiveStrength;\n\t}\n};\nconst extensionIridescence = (data, material, textures) => {\n\tmaterial.useIridescence = true;\n\tif (data.hasOwnProperty('iridescenceFactor')) {\n\t\tmaterial.iridescence = data.iridescenceFactor;\n\t}\n\tif (data.hasOwnProperty('iridescenceTexture')) {\n\t\tmaterial.iridescenceMapChannel = 'r';\n\t\tmaterial.iridescenceMap = textures[data.iridescenceTexture.index];\n\t\textractTextureTransform(data.iridescenceTexture, material, ['iridescence']);\n\t}\n\tif (data.hasOwnProperty('iridescenceIor')) {\n\t\tmaterial.iridescenceRefractionIndex = data.iridescenceIor;\n\t}\n\tif (data.hasOwnProperty('iridescenceThicknessMinimum')) {\n\t\tmaterial.iridescenceThicknessMin = data.iridescenceThicknessMinimum;\n\t}\n\tif (data.hasOwnProperty('iridescenceThicknessMaximum')) {\n\t\tmaterial.iridescenceThicknessMax = data.iridescenceThicknessMaximum;\n\t}\n\tif (data.hasOwnProperty('iridescenceThicknessTexture')) {\n\t\tmaterial.iridescenceThicknessMapChannel = 'g';\n\t\tmaterial.iridescenceThicknessMap = textures[data.iridescenceThicknessTexture.index];\n\t\textractTextureTransform(data.iridescenceThicknessTexture, material, ['iridescenceThickness']);\n\t}\n};\nconst createMaterial = (gltfMaterial, textures, flipV) => {\n\tconst material = new StandardMaterial();\n\tmaterial.occludeSpecular = SPECOCC_AO;\n\tmaterial.diffuseTint = true;\n\tmaterial.diffuseVertexColor = true;\n\tmaterial.specularTint = true;\n\tmaterial.specularVertexColor = true;\n\tif (gltfMaterial.hasOwnProperty('name')) {\n\t\tmaterial.name = gltfMaterial.name;\n\t}\n\tlet color, texture;\n\tif (gltfMaterial.hasOwnProperty('pbrMetallicRoughness')) {\n\t\tconst pbrData = gltfMaterial.pbrMetallicRoughness;\n\t\tif (pbrData.hasOwnProperty('baseColorFactor')) {\n\t\t\tcolor = pbrData.baseColorFactor;\n\t\t\tmaterial.diffuse.set(Math.pow(color[0], 1 / 2.2), Math.pow(color[1], 1 / 2.2), Math.pow(color[2], 1 / 2.2));\n\t\t\tmaterial.opacity = color[3];\n\t\t} else {\n\t\t\tmaterial.diffuse.set(1, 1, 1);\n\t\t\tmaterial.opacity = 1;\n\t\t}\n\t\tif (pbrData.hasOwnProperty('baseColorTexture')) {\n\t\t\tconst baseColorTexture = pbrData.baseColorTexture;\n\t\t\ttexture = textures[baseColorTexture.index];\n\t\t\tmaterial.diffuseMap = texture;\n\t\t\tmaterial.diffuseMapChannel = 'rgb';\n\t\t\tmaterial.opacityMap = texture;\n\t\t\tmaterial.opacityMapChannel = 'a';\n\t\t\textractTextureTransform(baseColorTexture, material, ['diffuse', 'opacity']);\n\t\t}\n\t\tmaterial.useMetalness = true;\n\t\tmaterial.specular.set(1, 1, 1);\n\t\tif (pbrData.hasOwnProperty('metallicFactor')) {\n\t\t\tmaterial.metalness = pbrData.metallicFactor;\n\t\t} else {\n\t\t\tmaterial.metalness = 1;\n\t\t}\n\t\tif (pbrData.hasOwnProperty('roughnessFactor')) {\n\t\t\tmaterial.gloss = pbrData.roughnessFactor;\n\t\t} else {\n\t\t\tmaterial.gloss = 1;\n\t\t}\n\t\tmaterial.glossInvert = true;\n\t\tif (pbrData.hasOwnProperty('metallicRoughnessTexture')) {\n\t\t\tconst metallicRoughnessTexture = pbrData.metallicRoughnessTexture;\n\t\t\tmaterial.metalnessMap = material.glossMap = textures[metallicRoughnessTexture.index];\n\t\t\tmaterial.metalnessMapChannel = 'b';\n\t\t\tmaterial.glossMapChannel = 'g';\n\t\t\textractTextureTransform(metallicRoughnessTexture, material, ['gloss', 'metalness']);\n\t\t}\n\t}\n\tif (gltfMaterial.hasOwnProperty('normalTexture')) {\n\t\tconst normalTexture = gltfMaterial.normalTexture;\n\t\tmaterial.normalMap = textures[normalTexture.index];\n\t\textractTextureTransform(normalTexture, material, ['normal']);\n\t\tif (normalTexture.hasOwnProperty('scale')) {\n\t\t\tmaterial.bumpiness = normalTexture.scale;\n\t\t}\n\t}\n\tif (gltfMaterial.hasOwnProperty('occlusionTexture')) {\n\t\tconst occlusionTexture = gltfMaterial.occlusionTexture;\n\t\tmaterial.aoMap = textures[occlusionTexture.index];\n\t\tmaterial.aoMapChannel = 'r';\n\t\textractTextureTransform(occlusionTexture, material, ['ao']);\n\t}\n\tif (gltfMaterial.hasOwnProperty('emissiveFactor')) {\n\t\tcolor = gltfMaterial.emissiveFactor;\n\t\tmaterial.emissive.set(Math.pow(color[0], 1 / 2.2), Math.pow(color[1], 1 / 2.2), Math.pow(color[2], 1 / 2.2));\n\t\tmaterial.emissiveTint = true;\n\t} else {\n\t\tmaterial.emissive.set(0, 0, 0);\n\t\tmaterial.emissiveTint = false;\n\t}\n\tif (gltfMaterial.hasOwnProperty('emissiveTexture')) {\n\t\tconst emissiveTexture = gltfMaterial.emissiveTexture;\n\t\tmaterial.emissiveMap = textures[emissiveTexture.index];\n\t\textractTextureTransform(emissiveTexture, material, ['emissive']);\n\t}\n\tif (gltfMaterial.hasOwnProperty('alphaMode')) {\n\t\tswitch (gltfMaterial.alphaMode) {\n\t\t\tcase 'MASK':\n\t\t\t\tmaterial.blendType = BLEND_NONE;\n\t\t\t\tif (gltfMaterial.hasOwnProperty('alphaCutoff')) {\n\t\t\t\t\tmaterial.alphaTest = gltfMaterial.alphaCutoff;\n\t\t\t\t} else {\n\t\t\t\t\tmaterial.alphaTest = 0.5;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'BLEND':\n\t\t\t\tmaterial.blendType = BLEND_NORMAL;\n\t\t\t\tmaterial.depthWrite = false;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\tcase 'OPAQUE':\n\t\t\t\tmaterial.blendType = BLEND_NONE;\n\t\t\t\tbreak;\n\t\t}\n\t} else {\n\t\tmaterial.blendType = BLEND_NONE;\n\t}\n\tif (gltfMaterial.hasOwnProperty('doubleSided')) {\n\t\tmaterial.twoSidedLighting = gltfMaterial.doubleSided;\n\t\tmaterial.cull = gltfMaterial.doubleSided ? CULLFACE_NONE : CULLFACE_BACK;\n\t} else {\n\t\tmaterial.twoSidedLighting = false;\n\t\tmaterial.cull = CULLFACE_BACK;\n\t}\n\tconst extensions = {\n\t\t'KHR_materials_clearcoat': extensionClearCoat,\n\t\t'KHR_materials_emissive_strength': extensionEmissiveStrength,\n\t\t'KHR_materials_ior': extensionIor,\n\t\t'KHR_materials_dispersion': extensionDispersion,\n\t\t'KHR_materials_iridescence': extensionIridescence,\n\t\t'KHR_materials_pbrSpecularGlossiness': extensionPbrSpecGlossiness,\n\t\t'KHR_materials_sheen': extensionSheen,\n\t\t'KHR_materials_specular': extensionSpecular,\n\t\t'KHR_materials_transmission': extensionTransmission,\n\t\t'KHR_materials_unlit': extensionUnlit,\n\t\t'KHR_materials_volume': extensionVolume\n\t};\n\tif (gltfMaterial.hasOwnProperty('extensions')) {\n\t\tfor (const key in gltfMaterial.extensions) {\n\t\t\tconst extensionFunc = extensions[key];\n\t\t\tif (extensionFunc !== undefined) {\n\t\t\t\textensionFunc(gltfMaterial.extensions[key], material, textures);\n\t\t\t}\n\t\t}\n\t}\n\tmaterial.update();\n\treturn material;\n};\nconst createAnimation = (gltfAnimation, animationIndex, gltfAccessors, bufferViews, nodes, meshes, gltfNodes) => {\n\tconst createAnimData = gltfAccessor => {\n\t\treturn new AnimData(getNumComponents(gltfAccessor.type), getAccessorDataFloat32(gltfAccessor, bufferViews));\n\t};\n\tconst interpMap = {\n\t\t'STEP': INTERPOLATION_STEP,\n\t\t'LINEAR': INTERPOLATION_LINEAR,\n\t\t'CUBICSPLINE': INTERPOLATION_CUBIC\n\t};\n\tconst inputMap = {};\n\tconst outputMap = {};\n\tconst curveMap = {};\n\tlet outputCounter = 1;\n\tlet i;\n\tfor (i = 0; i < gltfAnimation.samplers.length; ++i) {\n\t\tconst sampler = gltfAnimation.samplers[i];\n\t\tif (!inputMap.hasOwnProperty(sampler.input)) {\n\t\t\tinputMap[sampler.input] = createAnimData(gltfAccessors[sampler.input]);\n\t\t}\n\t\tif (!outputMap.hasOwnProperty(sampler.output)) {\n\t\t\toutputMap[sampler.output] = createAnimData(gltfAccessors[sampler.output]);\n\t\t}\n\t\tconst interpolation = sampler.hasOwnProperty('interpolation') && interpMap.hasOwnProperty(sampler.interpolation) ? interpMap[sampler.interpolation] : INTERPOLATION_LINEAR;\n\t\tconst curve = {\n\t\t\tpaths: [],\n\t\t\tinput: sampler.input,\n\t\t\toutput: sampler.output,\n\t\t\tinterpolation: interpolation\n\t\t};\n\t\tcurveMap[i] = curve;\n\t}\n\tconst quatArrays = [];\n\tconst transformSchema = {\n\t\t'translation': 'localPosition',\n\t\t'rotation': 'localRotation',\n\t\t'scale': 'localScale'\n\t};\n\tconst constructNodePath = node => {\n\t\tconst path = [];\n\t\twhile (node) {\n\t\t\tpath.unshift(node.name);\n\t\t\tnode = node.parent;\n\t\t}\n\t\treturn path;\n\t};\n\tconst createMorphTargetCurves = (curve, gltfNode, entityPath) => {\n\t\tconst out = outputMap[curve.output];\n\t\tif (!out) {\n\t\t\treturn;\n\t\t}\n\t\tlet targetNames;\n\t\tif (meshes && meshes[gltfNode.mesh]) {\n\t\t\tconst mesh = meshes[gltfNode.mesh];\n\t\t\tif (mesh.hasOwnProperty('extras') && mesh.extras.hasOwnProperty('targetNames')) {\n\t\t\t\ttargetNames = mesh.extras.targetNames;\n\t\t\t}\n\t\t}\n\t\tconst outData = out.data;\n\t\tconst morphTargetCount = outData.length / inputMap[curve.input].data.length;\n\t\tconst keyframeCount = outData.length / morphTargetCount;\n\t\tconst singleBufferSize = keyframeCount * 4;\n\t\tconst buffer = new ArrayBuffer(singleBufferSize * morphTargetCount);\n\t\tfor (let j = 0; j < morphTargetCount; j++) {\n\t\t\tvar _targetNames;\n\t\t\tconst morphTargetOutput = new Float32Array(buffer, singleBufferSize * j, keyframeCount);\n\t\t\tfor (let k = 0; k < keyframeCount; k++) {\n\t\t\t\tmorphTargetOutput[k] = outData[k * morphTargetCount + j];\n\t\t\t}\n\t\t\tconst output = new AnimData(1, morphTargetOutput);\n\t\t\tconst weightName = (_targetNames = targetNames) != null && _targetNames[j] ? `name.${targetNames[j]}` : j;\n\t\t\toutputMap[-outputCounter] = output;\n\t\t\tconst morphCurve = {\n\t\t\t\tpaths: [{\n\t\t\t\t\tentityPath: entityPath,\n\t\t\t\t\tcomponent: 'graph',\n\t\t\t\t\tpropertyPath: [`weight.${weightName}`]\n\t\t\t\t}],\n\t\t\t\tinput: curve.input,\n\t\t\t\toutput: -outputCounter,\n\t\t\t\tinterpolation: curve.interpolation\n\t\t\t};\n\t\t\toutputCounter++;\n\t\t\tcurveMap[`morphCurve-${i}-${j}`] = morphCurve;\n\t\t}\n\t};\n\tfor (i = 0; i < gltfAnimation.channels.length; ++i) {\n\t\tconst channel = gltfAnimation.channels[i];\n\t\tconst target = channel.target;\n\t\tconst curve = curveMap[channel.sampler];\n\t\tconst node = nodes[target.node];\n\t\tconst gltfNode = gltfNodes[target.node];\n\t\tconst entityPath = constructNodePath(node);\n\t\tif (target.path.startsWith('weights')) {\n\t\t\tcreateMorphTargetCurves(curve, gltfNode, entityPath);\n\t\t\tcurveMap[channel.sampler].morphCurve = true;\n\t\t} else {\n\t\t\tcurve.paths.push({\n\t\t\t\tentityPath: entityPath,\n\t\t\t\tcomponent: 'graph',\n\t\t\t\tpropertyPath: [transformSchema[target.path]]\n\t\t\t});\n\t\t}\n\t}\n\tconst inputs = [];\n\tconst outputs = [];\n\tconst curves = [];\n\tfor (const inputKey in inputMap) {\n\t\tinputs.push(inputMap[inputKey]);\n\t\tinputMap[inputKey] = inputs.length - 1;\n\t}\n\tfor (const outputKey in outputMap) {\n\t\toutputs.push(outputMap[outputKey]);\n\t\toutputMap[outputKey] = outputs.length - 1;\n\t}\n\tfor (const curveKey in curveMap) {\n\t\tconst curveData = curveMap[curveKey];\n\t\tif (curveData.morphCurve) {\n\t\t\tcontinue;\n\t\t}\n\t\tcurves.push(new AnimCurve(curveData.paths, inputMap[curveData.input], outputMap[curveData.output], curveData.interpolation));\n\t\tif (curveData.paths.length > 0 && curveData.paths[0].propertyPath[0] === 'localRotation' && curveData.interpolation !== INTERPOLATION_CUBIC) {\n\t\t\tquatArrays.push(curves[curves.length - 1].output);\n\t\t}\n\t}\n\tquatArrays.sort();\n\tlet prevIndex = null;\n\tlet data;\n\tfor (i = 0; i < quatArrays.length; ++i) {\n\t\tconst index = quatArrays[i];\n\t\tif (i === 0 || index !== prevIndex) {\n\t\t\tdata = outputs[index];\n\t\t\tif (data.components === 4) {\n\t\t\t\tconst d = data.data;\n\t\t\t\tconst len = d.length - 4;\n\t\t\t\tfor (let j = 0; j < len; j += 4) {\n\t\t\t\t\tconst dp = d[j + 0] * d[j + 4] + d[j + 1] * d[j + 5] + d[j + 2] * d[j + 6] + d[j + 3] * d[j + 7];\n\t\t\t\t\tif (dp < 0) {\n\t\t\t\t\t\td[j + 4] *= -1;\n\t\t\t\t\t\td[j + 5] *= -1;\n\t\t\t\t\t\td[j + 6] *= -1;\n\t\t\t\t\t\td[j + 7] *= -1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tprevIndex = index;\n\t\t}\n\t}\n\tlet duration = 0;\n\tfor (i = 0; i < inputs.length; i++) {\n\t\tdata = inputs[i]._data;\n\t\tduration = Math.max(duration, data.length === 0 ? 0 : data[data.length - 1]);\n\t}\n\treturn new AnimTrack(gltfAnimation.hasOwnProperty('name') ? gltfAnimation.name : `animation_${animationIndex}`, duration, inputs, outputs, curves);\n};\nconst tempMat = new Mat4();\nconst tempVec = new Vec3();\nconst createNode = (gltfNode, nodeIndex) => {\n\tconst entity = new GraphNode();\n\tif (gltfNode.hasOwnProperty('name') && gltfNode.name.length > 0) {\n\t\tentity.name = gltfNode.name;\n\t} else {\n\t\tentity.name = `node_${nodeIndex}`;\n\t}\n\tif (gltfNode.hasOwnProperty('matrix')) {\n\t\ttempMat.data.set(gltfNode.matrix);\n\t\ttempMat.getTranslation(tempVec);\n\t\tentity.setLocalPosition(tempVec);\n\t\ttempMat.getEulerAngles(tempVec);\n\t\tentity.setLocalEulerAngles(tempVec);\n\t\ttempMat.getScale(tempVec);\n\t\tentity.setLocalScale(tempVec);\n\t}\n\tif (gltfNode.hasOwnProperty('rotation')) {\n\t\tconst r = gltfNode.rotation;\n\t\tentity.setLocalRotation(r[0], r[1], r[2], r[3]);\n\t}\n\tif (gltfNode.hasOwnProperty('translation')) {\n\t\tconst t = gltfNode.translation;\n\t\tentity.setLocalPosition(t[0], t[1], t[2]);\n\t}\n\tif (gltfNode.hasOwnProperty('scale')) {\n\t\tconst s = gltfNode.scale;\n\t\tentity.setLocalScale(s[0], s[1], s[2]);\n\t}\n\treturn entity;\n};\nconst createCamera = (gltfCamera, node) => {\n\tconst projection = gltfCamera.type === 'orthographic' ? PROJECTION_ORTHOGRAPHIC : PROJECTION_PERSPECTIVE;\n\tconst gltfProperties = projection === PROJECTION_ORTHOGRAPHIC ? gltfCamera.orthographic : gltfCamera.perspective;\n\tconst componentData = {\n\t\tenabled: false,\n\t\tprojection: projection,\n\t\tnearClip: gltfProperties.znear,\n\t\taspectRatioMode: ASPECT_AUTO\n\t};\n\tif (gltfProperties.zfar) {\n\t\tcomponentData.farClip = gltfProperties.zfar;\n\t}\n\tif (projection === PROJECTION_ORTHOGRAPHIC) {\n\t\tcomponentData.orthoHeight = 0.5 * gltfProperties.ymag;\n\t\tif (gltfProperties.ymag) {\n\t\t\tcomponentData.aspectRatioMode = ASPECT_MANUAL;\n\t\t\tcomponentData.aspectRatio = gltfProperties.xmag / gltfProperties.ymag;\n\t\t}\n\t} else {\n\t\tcomponentData.fov = gltfProperties.yfov * math.RAD_TO_DEG;\n\t\tif (gltfProperties.aspectRatio) {\n\t\t\tcomponentData.aspectRatioMode = ASPECT_MANUAL;\n\t\t\tcomponentData.aspectRatio = gltfProperties.aspectRatio;\n\t\t}\n\t}\n\tconst cameraEntity = new Entity(gltfCamera.name);\n\tcameraEntity.addComponent('camera', componentData);\n\treturn cameraEntity;\n};\nconst createLight = (gltfLight, node) => {\n\tconst lightProps = {\n\t\tenabled: false,\n\t\ttype: gltfLight.type === 'point' ? 'omni' : gltfLight.type,\n\t\tcolor: gltfLight.hasOwnProperty('color') ? new Color(gltfLight.color) : Color.WHITE,\n\t\trange: gltfLight.hasOwnProperty('range') ? gltfLight.range : 9999,\n\t\tfalloffMode: LIGHTFALLOFF_INVERSESQUARED,\n\t\tintensity: gltfLight.hasOwnProperty('intensity') ? math.clamp(gltfLight.intensity, 0, 2) : 1\n\t};\n\tif (gltfLight.hasOwnProperty('spot')) {\n\t\tlightProps.innerConeAngle = gltfLight.spot.hasOwnProperty('innerConeAngle') ? gltfLight.spot.innerConeAngle * math.RAD_TO_DEG : 0;\n\t\tlightProps.outerConeAngle = gltfLight.spot.hasOwnProperty('outerConeAngle') ? gltfLight.spot.outerConeAngle * math.RAD_TO_DEG : Math.PI / 4;\n\t}\n\tif (gltfLight.hasOwnProperty('intensity')) {\n\t\tlightProps.luminance = gltfLight.intensity * Light.getLightUnitConversion(lightTypes[lightProps.type], lightProps.outerConeAngle, lightProps.innerConeAngle);\n\t}\n\tconst lightEntity = new Entity(node.name);\n\tlightEntity.rotateLocal(90, 0, 0);\n\tlightEntity.addComponent('light', lightProps);\n\treturn lightEntity;\n};\nconst createSkins = (device, gltf, nodes, bufferViews) => {\n\tif (!gltf.hasOwnProperty('skins') || gltf.skins.length === 0) {\n\t\treturn [];\n\t}\n\tconst glbSkins = new Map();\n\treturn gltf.skins.map(gltfSkin => {\n\t\treturn createSkin(device, gltfSkin, gltf.accessors, bufferViews, nodes, glbSkins);\n\t});\n};\nconst createMeshes = (device, gltf, bufferViews, flipV, options) => {\n\tvar _gltf$meshes, _gltf$accessors, _gltf$bufferViews;\n\tconst vertexBufferDict = {};\n\tconst meshVariants = {};\n\tconst meshDefaultMaterials = {};\n\tconst promises = [];\n\tconst valid = !options.skipMeshes && (gltf == null || (_gltf$meshes = gltf.meshes) == null ? void 0 : _gltf$meshes.length) && (gltf == null || (_gltf$accessors = gltf.accessors) == null ? void 0 : _gltf$accessors.length) && (gltf == null || (_gltf$bufferViews = gltf.bufferViews) == null ? void 0 : _gltf$bufferViews.length);\n\tconst meshes = valid ? gltf.meshes.map(gltfMesh => {\n\t\treturn createMesh$1(device, gltfMesh, gltf.accessors, bufferViews, flipV, vertexBufferDict, meshVariants, meshDefaultMaterials, options, promises);\n\t}) : [];\n\treturn {\n\t\tmeshes,\n\t\tmeshVariants,\n\t\tmeshDefaultMaterials,\n\t\tpromises\n\t};\n};\nconst createMaterials = (gltf, textures, options, flipV) => {\n\tvar _options$material, _options$material$pro, _options$material2, _options$material3;\n\tif (!gltf.hasOwnProperty('materials') || gltf.materials.length === 0) {\n\t\treturn [];\n\t}\n\tconst preprocess = options == null || (_options$material = options.material) == null ? void 0 : _options$material.preprocess;\n\tconst process = (_options$material$pro = options == null || (_options$material2 = options.material) == null ? void 0 : _options$material2.process) != null ? _options$material$pro : createMaterial;\n\tconst postprocess = options == null || (_options$material3 = options.material) == null ? void 0 : _options$material3.postprocess;\n\treturn gltf.materials.map(gltfMaterial => {\n\t\tif (preprocess) {\n\t\t\tpreprocess(gltfMaterial);\n\t\t}\n\t\tconst material = process(gltfMaterial, textures, flipV);\n\t\tif (postprocess) {\n\t\t\tpostprocess(gltfMaterial, material);\n\t\t}\n\t\treturn material;\n\t});\n};\nconst createVariants = gltf => {\n\tif (!gltf.hasOwnProperty('extensions') || !gltf.extensions.hasOwnProperty('KHR_materials_variants')) {\n\t\treturn null;\n\t}\n\tconst data = gltf.extensions.KHR_materials_variants.variants;\n\tconst variants = {};\n\tfor (let i = 0; i < data.length; i++) {\n\t\tvariants[data[i].name] = i;\n\t}\n\treturn variants;\n};\nconst createAnimations = (gltf, nodes, bufferViews, options) => {\n\tvar _options$animation, _options$animation2;\n\tif (!gltf.hasOwnProperty('animations') || gltf.animations.length === 0) {\n\t\treturn [];\n\t}\n\tconst preprocess = options == null || (_options$animation = options.animation) == null ? void 0 : _options$animation.preprocess;\n\tconst postprocess = options == null || (_options$animation2 = options.animation) == null ? void 0 : _options$animation2.postprocess;\n\treturn gltf.animations.map((gltfAnimation, index) => {\n\t\tif (preprocess) {\n\t\t\tpreprocess(gltfAnimation);\n\t\t}\n\t\tconst animation = createAnimation(gltfAnimation, index, gltf.accessors, bufferViews, nodes, gltf.meshes, gltf.nodes);\n\t\tif (postprocess) {\n\t\t\tpostprocess(gltfAnimation, animation);\n\t\t}\n\t\treturn animation;\n\t});\n};\nconst createNodes = (gltf, options) => {\n\tvar _options$node, _options$node$process, _options$node2, _options$node3;\n\tif (!gltf.hasOwnProperty('nodes') || gltf.nodes.length === 0) {\n\t\treturn [];\n\t}\n\tconst preprocess = options == null || (_options$node = options.node) == null ? void 0 : _options$node.preprocess;\n\tconst process = (_options$node$process = options == null || (_options$node2 = options.node) == null ? void 0 : _options$node2.process) != null ? _options$node$process : createNode;\n\tconst postprocess = options == null || (_options$node3 = options.node) == null ? void 0 : _options$node3.postprocess;\n\tconst nodes = gltf.nodes.map((gltfNode, index) => {\n\t\tif (preprocess) {\n\t\t\tpreprocess(gltfNode);\n\t\t}\n\t\tconst node = process(gltfNode, index);\n\t\tif (postprocess) {\n\t\t\tpostprocess(gltfNode, node);\n\t\t}\n\t\treturn node;\n\t});\n\tfor (let i = 0; i < gltf.nodes.length; ++i) {\n\t\tconst gltfNode = gltf.nodes[i];\n\t\tif (gltfNode.hasOwnProperty('children')) {\n\t\t\tconst parent = nodes[i];\n\t\t\tconst uniqueNames = {};\n\t\t\tfor (let j = 0; j < gltfNode.children.length; ++j) {\n\t\t\t\tconst child = nodes[gltfNode.children[j]];\n\t\t\t\tif (!child.parent) {\n\t\t\t\t\tif (uniqueNames.hasOwnProperty(child.name)) {\n\t\t\t\t\t\tchild.name += uniqueNames[child.name]++;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tuniqueNames[child.name] = 1;\n\t\t\t\t\t}\n\t\t\t\t\tparent.addChild(child);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn nodes;\n};\nconst createScenes = (gltf, nodes) => {\n\tvar _gltf$scenes$0$nodes;\n\tconst scenes = [];\n\tconst count = gltf.scenes.length;\n\tif (count === 1 && ((_gltf$scenes$0$nodes = gltf.scenes[0].nodes) == null ? void 0 : _gltf$scenes$0$nodes.length) === 1) {\n\t\tconst nodeIndex = gltf.scenes[0].nodes[0];\n\t\tscenes.push(nodes[nodeIndex]);\n\t} else {\n\t\tfor (let i = 0; i < count; i++) {\n\t\t\tconst scene = gltf.scenes[i];\n\t\t\tif (scene.nodes) {\n\t\t\t\tconst sceneRoot = new GraphNode(scene.name);\n\t\t\t\tfor (let n = 0; n < scene.nodes.length; n++) {\n\t\t\t\t\tconst childNode = nodes[scene.nodes[n]];\n\t\t\t\t\tsceneRoot.addChild(childNode);\n\t\t\t\t}\n\t\t\t\tscenes.push(sceneRoot);\n\t\t\t}\n\t\t}\n\t}\n\treturn scenes;\n};\nconst createCameras = (gltf, nodes, options) => {\n\tlet cameras = null;\n\tif (gltf.hasOwnProperty('nodes') && gltf.hasOwnProperty('cameras') && gltf.cameras.length > 0) {\n\t\tvar _options$camera, _options$camera$proce, _options$camera2, _options$camera3;\n\t\tconst preprocess = options == null || (_options$camera = options.camera) == null ? void 0 : _options$camera.preprocess;\n\t\tconst process = (_options$camera$proce = options == null || (_options$camera2 = options.camera) == null ? void 0 : _options$camera2.process) != null ? _options$camera$proce : createCamera;\n\t\tconst postprocess = options == null || (_options$camera3 = options.camera) == null ? void 0 : _options$camera3.postprocess;\n\t\tgltf.nodes.forEach((gltfNode, nodeIndex) => {\n\t\t\tif (gltfNode.hasOwnProperty('camera')) {\n\t\t\t\tconst gltfCamera = gltf.cameras[gltfNode.camera];\n\t\t\t\tif (gltfCamera) {\n\t\t\t\t\tif (preprocess) {\n\t\t\t\t\t\tpreprocess(gltfCamera);\n\t\t\t\t\t}\n\t\t\t\t\tconst camera = process(gltfCamera, nodes[nodeIndex]);\n\t\t\t\t\tif (postprocess) {\n\t\t\t\t\t\tpostprocess(gltfCamera, camera);\n\t\t\t\t\t}\n\t\t\t\t\tif (camera) {\n\t\t\t\t\t\tif (!cameras) cameras = new Map();\n\t\t\t\t\t\tcameras.set(gltfNode, camera);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn cameras;\n};\nconst createLights = (gltf, nodes, options) => {\n\tlet lights = null;\n\tif (gltf.hasOwnProperty('nodes') && gltf.hasOwnProperty('extensions') && gltf.extensions.hasOwnProperty('KHR_lights_punctual') && gltf.extensions.KHR_lights_punctual.hasOwnProperty('lights')) {\n\t\tconst gltfLights = gltf.extensions.KHR_lights_punctual.lights;\n\t\tif (gltfLights.length) {\n\t\t\tvar _options$light, _options$light$proces, _options$light2, _options$light3;\n\t\t\tconst preprocess = options == null || (_options$light = options.light) == null ? void 0 : _options$light.preprocess;\n\t\t\tconst process = (_options$light$proces = options == null || (_options$light2 = options.light) == null ? void 0 : _options$light2.process) != null ? _options$light$proces : createLight;\n\t\t\tconst postprocess = options == null || (_options$light3 = options.light) == null ? void 0 : _options$light3.postprocess;\n\t\t\tgltf.nodes.forEach((gltfNode, nodeIndex) => {\n\t\t\t\tif (gltfNode.hasOwnProperty('extensions') && gltfNode.extensions.hasOwnProperty('KHR_lights_punctual') && gltfNode.extensions.KHR_lights_punctual.hasOwnProperty('light')) {\n\t\t\t\t\tconst lightIndex = gltfNode.extensions.KHR_lights_punctual.light;\n\t\t\t\t\tconst gltfLight = gltfLights[lightIndex];\n\t\t\t\t\tif (gltfLight) {\n\t\t\t\t\t\tif (preprocess) {\n\t\t\t\t\t\t\tpreprocess(gltfLight);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst light = process(gltfLight, nodes[nodeIndex]);\n\t\t\t\t\t\tif (postprocess) {\n\t\t\t\t\t\t\tpostprocess(gltfLight, light);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (light) {\n\t\t\t\t\t\t\tif (!lights) lights = new Map();\n\t\t\t\t\t\t\tlights.set(gltfNode, light);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn lights;\n};\nconst linkSkins = (gltf, renders, skins) => {\n\tgltf.nodes.forEach(gltfNode => {\n\t\tif (gltfNode.hasOwnProperty('mesh') && gltfNode.hasOwnProperty('skin')) {\n\t\t\tconst meshGroup = renders[gltfNode.mesh].meshes;\n\t\t\tmeshGroup.forEach(mesh => {\n\t\t\t\tmesh.skin = skins[gltfNode.skin];\n\t\t\t});\n\t\t}\n\t});\n};\nconst createResources = async (device, gltf, bufferViews, textures, options) => {\n\tvar _options$global, _options$global2;\n\tconst preprocess = options == null || (_options$global = options.global) == null ? void 0 : _options$global.preprocess;\n\tconst postprocess = options == null || (_options$global2 = options.global) == null ? void 0 : _options$global2.postprocess;\n\tif (preprocess) {\n\t\tpreprocess(gltf);\n\t}\n\tconst flipV = gltf.asset && gltf.asset.generator === 'PlayCanvas';\n\tconst nodes = createNodes(gltf, options);\n\tconst scenes = createScenes(gltf, nodes);\n\tconst lights = createLights(gltf, nodes, options);\n\tconst cameras = createCameras(gltf, nodes, options);\n\tconst variants = createVariants(gltf);\n\tconst bufferViewData = await Promise.all(bufferViews);\n\tconst {\n\t\tmeshes,\n\t\tmeshVariants,\n\t\tmeshDefaultMaterials,\n\t\tpromises\n\t} = createMeshes(device, gltf, bufferViewData, flipV, options);\n\tconst animations = createAnimations(gltf, nodes, bufferViewData, options);\n\tconst textureAssets = await Promise.all(textures);\n\tconst textureInstances = textureAssets.map(t => t.resource);\n\tconst materials = createMaterials(gltf, textureInstances, options, flipV);\n\tconst skins = createSkins(device, gltf, nodes, bufferViewData);\n\tconst renders = [];\n\tfor (let i = 0; i < meshes.length; i++) {\n\t\trenders[i] = new Render();\n\t\trenders[i].meshes = meshes[i];\n\t}\n\tlinkSkins(gltf, renders, skins);\n\tconst result = new GlbResources();\n\tresult.gltf = gltf;\n\tresult.nodes = nodes;\n\tresult.scenes = scenes;\n\tresult.animations = animations;\n\tresult.textures = textureAssets;\n\tresult.materials = materials;\n\tresult.variants = variants;\n\tresult.meshVariants = meshVariants;\n\tresult.meshDefaultMaterials = meshDefaultMaterials;\n\tresult.renders = renders;\n\tresult.skins = skins;\n\tresult.lights = lights;\n\tresult.cameras = cameras;\n\tif (postprocess) {\n\t\tpostprocess(gltf, result);\n\t}\n\tawait Promise.all(promises);\n\treturn result;\n};\nconst applySampler = (texture, gltfSampler) => {\n\tconst getFilter = (filter, defaultValue) => {\n\t\tswitch (filter) {\n\t\t\tcase 9728:\n\t\t\t\treturn FILTER_NEAREST;\n\t\t\tcase 9729:\n\t\t\t\treturn FILTER_LINEAR;\n\t\t\tcase 9984:\n\t\t\t\treturn FILTER_NEAREST_MIPMAP_NEAREST;\n\t\t\tcase 9985:\n\t\t\t\treturn FILTER_LINEAR_MIPMAP_NEAREST;\n\t\t\tcase 9986:\n\t\t\t\treturn FILTER_NEAREST_MIPMAP_LINEAR;\n\t\t\tcase 9987:\n\t\t\t\treturn FILTER_LINEAR_MIPMAP_LINEAR;\n\t\t\tdefault:\n\t\t\t\treturn defaultValue;\n\t\t}\n\t};\n\tconst getWrap = (wrap, defaultValue) => {\n\t\tswitch (wrap) {\n\t\t\tcase 33071:\n\t\t\t\treturn ADDRESS_CLAMP_TO_EDGE;\n\t\t\tcase 33648:\n\t\t\t\treturn ADDRESS_MIRRORED_REPEAT;\n\t\t\tcase 10497:\n\t\t\t\treturn ADDRESS_REPEAT;\n\t\t\tdefault:\n\t\t\t\treturn defaultValue;\n\t\t}\n\t};\n\tif (texture) {\n\t\tvar _gltfSampler;\n\t\tgltfSampler = (_gltfSampler = gltfSampler) != null ? _gltfSampler : {};\n\t\ttexture.minFilter = getFilter(gltfSampler.minFilter, FILTER_LINEAR_MIPMAP_LINEAR);\n\t\ttexture.magFilter = getFilter(gltfSampler.magFilter, FILTER_LINEAR);\n\t\ttexture.addressU = getWrap(gltfSampler.wrapS, ADDRESS_REPEAT);\n\t\ttexture.addressV = getWrap(gltfSampler.wrapT, ADDRESS_REPEAT);\n\t}\n};\nlet gltfTextureUniqueId = 0;\nconst createImages = (gltf, bufferViews, urlBase, registry, options) => {\n\tvar _options$image, _options$image2, _options$image3;\n\tif (!gltf.images || gltf.images.length === 0) {\n\t\treturn [];\n\t}\n\tconst preprocess = options == null || (_options$image = options.image) == null ? void 0 : _options$image.preprocess;\n\tconst processAsync = options == null || (_options$image2 = options.image) == null ? void 0 : _options$image2.processAsync;\n\tconst postprocess = options == null || (_options$image3 = options.image) == null ? void 0 : _options$image3.postprocess;\n\tconst mimeTypeFileExtensions = {\n\t\t'image/png': 'png',\n\t\t'image/jpeg': 'jpg',\n\t\t'image/basis': 'basis',\n\t\t'image/ktx': 'ktx',\n\t\t'image/ktx2': 'ktx2',\n\t\t'image/vnd-ms.dds': 'dds'\n\t};\n\tconst loadTexture = (gltfImage, url, bufferView, mimeType, options) => {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst continuation = bufferViewData => {\n\t\t\t\tconst name = `${gltfImage.name || 'gltf-texture'}-${gltfTextureUniqueId++}`;\n\t\t\t\tconst file = {\n\t\t\t\t\turl: url || name\n\t\t\t\t};\n\t\t\t\tif (bufferViewData) {\n\t\t\t\t\tfile.contents = bufferViewData.slice(0).buffer;\n\t\t\t\t}\n\t\t\t\tif (mimeType) {\n\t\t\t\t\tconst extension = mimeTypeFileExtensions[mimeType];\n\t\t\t\t\tif (extension) {\n\t\t\t\t\t\tfile.filename = `${file.url}.${extension}`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst asset = new Asset(name, 'texture', file, null, options);\n\t\t\t\tasset.on('load', asset => resolve(asset));\n\t\t\t\tasset.on('error', err => reject(err));\n\t\t\t\tregistry.add(asset);\n\t\t\t\tregistry.load(asset);\n\t\t\t};\n\t\t\tif (bufferView) {\n\t\t\t\tbufferView.then(bufferViewData => continuation(bufferViewData));\n\t\t\t} else {\n\t\t\t\tcontinuation(null);\n\t\t\t}\n\t\t});\n\t};\n\treturn gltf.images.map((gltfImage, i) => {\n\t\tif (preprocess) {\n\t\t\tpreprocess(gltfImage);\n\t\t}\n\t\tlet promise;\n\t\tif (processAsync) {\n\t\t\tpromise = new Promise((resolve, reject) => {\n\t\t\t\tprocessAsync(gltfImage, (err, textureAsset) => {\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve(textureAsset);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\tpromise = new Promise(resolve => {\n\t\t\t\tresolve(null);\n\t\t\t});\n\t\t}\n\t\tpromise = promise.then(textureAsset => {\n\t\t\tif (textureAsset) {\n\t\t\t\treturn textureAsset;\n\t\t\t} else if (gltfImage.hasOwnProperty('uri')) {\n\t\t\t\tif (isDataURI(gltfImage.uri)) {\n\t\t\t\t\treturn loadTexture(gltfImage, gltfImage.uri, null, getDataURIMimeType(gltfImage.uri), null);\n\t\t\t\t}\n\t\t\t\treturn loadTexture(gltfImage, ABSOLUTE_URL.test(gltfImage.uri) ? gltfImage.uri : path.join(urlBase, gltfImage.uri), null, null, {\n\t\t\t\t\tcrossOrigin: 'anonymous'\n\t\t\t\t});\n\t\t\t} else if (gltfImage.hasOwnProperty('bufferView') && gltfImage.hasOwnProperty('mimeType')) {\n\t\t\t\treturn loadTexture(gltfImage, null, bufferViews[gltfImage.bufferView], gltfImage.mimeType, null);\n\t\t\t}\n\t\t\treturn Promise.reject(new Error(`Invalid image found in gltf (neither uri or bufferView found). index=${i}`));\n\t\t});\n\t\tif (postprocess) {\n\t\t\tpromise = promise.then(textureAsset => {\n\t\t\t\tpostprocess(gltfImage, textureAsset);\n\t\t\t\treturn textureAsset;\n\t\t\t});\n\t\t}\n\t\treturn promise;\n\t});\n};\nconst createTextures = (gltf, images, options) => {\n\tvar _gltf$images, _gltf$textures, _options$texture, _options$texture2, _options$texture3;\n\tif (!(gltf != null && (_gltf$images = gltf.images) != null && _gltf$images.length) || !(gltf != null && (_gltf$textures = gltf.textures) != null && _gltf$textures.length)) {\n\t\treturn [];\n\t}\n\tconst preprocess = options == null || (_options$texture = options.texture) == null ? void 0 : _options$texture.preprocess;\n\tconst processAsync = options == null || (_options$texture2 = options.texture) == null ? void 0 : _options$texture2.processAsync;\n\tconst postprocess = options == null || (_options$texture3 = options.texture) == null ? void 0 : _options$texture3.postprocess;\n\tconst seenImages = new Set();\n\treturn gltf.textures.map(gltfTexture => {\n\t\tif (preprocess) {\n\t\t\tpreprocess(gltfTexture);\n\t\t}\n\t\tlet promise;\n\t\tif (processAsync) {\n\t\t\tpromise = new Promise((resolve, reject) => {\n\t\t\t\tprocessAsync(gltfTexture, gltf.images, (err, gltfImageIndex) => {\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve(gltfImageIndex);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\tpromise = new Promise(resolve => {\n\t\t\t\tresolve(null);\n\t\t\t});\n\t\t}\n\t\tpromise = promise.then(gltfImageIndex => {\n\t\t\tvar _ref, _ref2, _gltfImageIndex, _gltfTexture$extensio, _gltfTexture$extensio2;\n\t\t\tgltfImageIndex = (_ref = (_ref2 = (_gltfImageIndex = gltfImageIndex) != null ? _gltfImageIndex : gltfTexture == null || (_gltfTexture$extensio = gltfTexture.extensions) == null || (_gltfTexture$extensio = _gltfTexture$extensio.KHR_texture_basisu) == null ? void 0 : _gltfTexture$extensio.source) != null ? _ref2 : gltfTexture == null || (_gltfTexture$extensio2 = gltfTexture.extensions) == null || (_gltfTexture$extensio2 = _gltfTexture$extensio2.EXT_texture_webp) == null ? void 0 : _gltfTexture$extensio2.source) != null ? _ref : gltfTexture.source;\n\t\t\tconst cloneAsset = seenImages.has(gltfImageIndex);\n\t\t\tseenImages.add(gltfImageIndex);\n\t\t\treturn images[gltfImageIndex].then(imageAsset => {\n\t\t\t\tvar _gltf$samplers;\n\t\t\t\tconst asset = cloneAsset ? cloneTextureAsset(imageAsset) : imageAsset;\n\t\t\t\tapplySampler(asset.resource, ((_gltf$samplers = gltf.samplers) != null ? _gltf$samplers : [])[gltfTexture.sampler]);\n\t\t\t\treturn asset;\n\t\t\t});\n\t\t});\n\t\tif (postprocess) {\n\t\t\tpromise = promise.then(textureAsset => {\n\t\t\t\tpostprocess(gltfTexture, textureAsset);\n\t\t\t\treturn textureAsset;\n\t\t\t});\n\t\t}\n\t\treturn promise;\n\t});\n};\nconst loadBuffers = (gltf, binaryChunk, urlBase, options) => {\n\tvar _options$buffer, _options$buffer2, _options$buffer3;\n\tif (!gltf.buffers || gltf.buffers.length === 0) {\n\t\treturn [];\n\t}\n\tconst preprocess = options == null || (_options$buffer = options.buffer) == null ? void 0 : _options$buffer.preprocess;\n\tconst processAsync = options == null || (_options$buffer2 = options.buffer) == null ? void 0 : _options$buffer2.processAsync;\n\tconst postprocess = options == null || (_options$buffer3 = options.buffer) == null ? void 0 : _options$buffer3.postprocess;\n\treturn gltf.buffers.map((gltfBuffer, i) => {\n\t\tif (preprocess) {\n\t\t\tpreprocess(gltfBuffer);\n\t\t}\n\t\tlet promise;\n\t\tif (processAsync) {\n\t\t\tpromise = new Promise((resolve, reject) => {\n\t\t\t\tprocessAsync(gltfBuffer, (err, arrayBuffer) => {\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve(arrayBuffer);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\tpromise = new Promise(resolve => {\n\t\t\t\tresolve(null);\n\t\t\t});\n\t\t}\n\t\tpromise = promise.then(arrayBuffer => {\n\t\t\tif (arrayBuffer) {\n\t\t\t\treturn arrayBuffer;\n\t\t\t} else if (gltfBuffer.hasOwnProperty('uri')) {\n\t\t\t\tif (isDataURI(gltfBuffer.uri)) {\n\t\t\t\t\tconst byteString = atob(gltfBuffer.uri.split(',')[1]);\n\t\t\t\t\tconst binaryArray = new Uint8Array(byteString.length);\n\t\t\t\t\tfor (let j = 0; j < byteString.length; j++) {\n\t\t\t\t\t\tbinaryArray[j] = byteString.charCodeAt(j);\n\t\t\t\t\t}\n\t\t\t\t\treturn binaryArray;\n\t\t\t\t}\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\thttp.get(ABSOLUTE_URL.test(gltfBuffer.uri) ? gltfBuffer.uri : path.join(urlBase, gltfBuffer.uri), {\n\t\t\t\t\t\tcache: true,\n\t\t\t\t\t\tresponseType: 'arraybuffer',\n\t\t\t\t\t\tretry: false\n\t\t\t\t\t}, (err, result) => {\n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresolve(new Uint8Array(result));\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn binaryChunk;\n\t\t});\n\t\tif (postprocess) {\n\t\t\tpromise = promise.then(buffer => {\n\t\t\t\tpostprocess(gltf.buffers[i], buffer);\n\t\t\t\treturn buffer;\n\t\t\t});\n\t\t}\n\t\treturn promise;\n\t});\n};\nconst parseGltf = (gltfChunk, callback) => {\n\tconst decodeBinaryUtf8 = array => {\n\t\tif (typeof TextDecoder !== 'undefined') {\n\t\t\treturn new TextDecoder().decode(array);\n\t\t}\n\t\tlet str = '';\n\t\tfor (let i = 0; i < array.length; i++) {\n\t\t\tstr += String.fromCharCode(array[i]);\n\t\t}\n\t\treturn decodeURIComponent(escape(str));\n\t};\n\tconst gltf = JSON.parse(decodeBinaryUtf8(gltfChunk));\n\tif (gltf.asset && gltf.asset.version && parseFloat(gltf.asset.version) < 2) {\n\t\tcallback(`Invalid gltf version. Expected version 2.0 or above but found version '${gltf.asset.version}'.`);\n\t\treturn;\n\t}\n\tcallback(null, gltf);\n};\nconst parseGlb = (glbData, callback) => {\n\tconst data = glbData instanceof ArrayBuffer ? new DataView(glbData) : new DataView(glbData.buffer, glbData.byteOffset, glbData.byteLength);\n\tconst magic = data.getUint32(0, true);\n\tconst version = data.getUint32(4, true);\n\tconst length = data.getUint32(8, true);\n\tif (magic !== 0x46546C67) {\n\t\tcallback(`Invalid magic number found in glb header. Expected 0x46546C67, found 0x${magic.toString(16)}`);\n\t\treturn;\n\t}\n\tif (version !== 2) {\n\t\tcallback(`Invalid version number found in glb header. Expected 2, found ${version}`);\n\t\treturn;\n\t}\n\tif (length <= 0 || length > data.byteLength) {\n\t\tcallback(`Invalid length found in glb header. Found ${length}`);\n\t\treturn;\n\t}\n\tconst chunks = [];\n\tlet offset = 12;\n\twhile (offset < length) {\n\t\tconst chunkLength = data.getUint32(offset, true);\n\t\tif (offset + chunkLength + 8 > data.byteLength) {\n\t\t\tcallback(`Invalid chunk length found in glb. Found ${chunkLength}`);\n\t\t}\n\t\tconst chunkType = data.getUint32(offset + 4, true);\n\t\tconst chunkData = new Uint8Array(data.buffer, data.byteOffset + offset + 8, chunkLength);\n\t\tchunks.push({\n\t\t\tlength: chunkLength,\n\t\t\ttype: chunkType,\n\t\t\tdata: chunkData\n\t\t});\n\t\toffset += chunkLength + 8;\n\t}\n\tif (chunks.length !== 1 && chunks.length !== 2) {\n\t\tcallback('Invalid number of chunks found in glb file.');\n\t\treturn;\n\t}\n\tif (chunks[0].type !== 0x4E4F534A) {\n\t\tcallback(`Invalid chunk type found in glb file. Expected 0x4E4F534A, found 0x${chunks[0].type.toString(16)}`);\n\t\treturn;\n\t}\n\tif (chunks.length > 1 && chunks[1].type !== 0x004E4942) {\n\t\tcallback(`Invalid chunk type found in glb file. Expected 0x004E4942, found 0x${chunks[1].type.toString(16)}`);\n\t\treturn;\n\t}\n\tcallback(null, {\n\t\tgltfChunk: chunks[0].data,\n\t\tbinaryChunk: chunks.length === 2 ? chunks[1].data : null\n\t});\n};\nconst parseChunk = (filename, data, callback) => {\n\tconst hasGlbHeader = () => {\n\t\tconst u8 = new Uint8Array(data);\n\t\treturn u8[0] === 103 && u8[1] === 108 && u8[2] === 84 && u8[3] === 70;\n\t};\n\tif (filename && filename.toLowerCase().endsWith('.glb') || hasGlbHeader()) {\n\t\tparseGlb(data, callback);\n\t} else {\n\t\tcallback(null, {\n\t\t\tgltfChunk: data,\n\t\t\tbinaryChunk: null\n\t\t});\n\t}\n};\nconst createBufferViews = (gltf, buffers, options) => {\n\tvar _options$bufferView, _options$bufferView2, _options$bufferView3, _gltf$bufferViews2;\n\tconst result = [];\n\tconst preprocess = options == null || (_options$bufferView = options.bufferView) == null ? void 0 : _options$bufferView.preprocess;\n\tconst processAsync = options == null || (_options$bufferView2 = options.bufferView) == null ? void 0 : _options$bufferView2.processAsync;\n\tconst postprocess = options == null || (_options$bufferView3 = options.bufferView) == null ? void 0 : _options$bufferView3.postprocess;\n\tif (!((_gltf$bufferViews2 = gltf.bufferViews) != null && _gltf$bufferViews2.length)) {\n\t\treturn result;\n\t}\n\tfor (let i = 0; i < gltf.bufferViews.length; ++i) {\n\t\tconst gltfBufferView = gltf.bufferViews[i];\n\t\tif (preprocess) {\n\t\t\tpreprocess(gltfBufferView);\n\t\t}\n\t\tlet promise;\n\t\tif (processAsync) {\n\t\t\tpromise = new Promise((resolve, reject) => {\n\t\t\t\tprocessAsync(gltfBufferView, buffers, (err, result) => {\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve(result);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\tpromise = new Promise(resolve => {\n\t\t\t\tresolve(null);\n\t\t\t});\n\t\t}\n\t\tpromise = promise.then(buffer => {\n\t\t\tif (buffer) {\n\t\t\t\treturn buffer;\n\t\t\t}\n\t\t\treturn buffers[gltfBufferView.buffer].then(buffer => {\n\t\t\t\treturn new Uint8Array(buffer.buffer, buffer.byteOffset + (gltfBufferView.byteOffset || 0), gltfBufferView.byteLength);\n\t\t\t});\n\t\t});\n\t\tif (gltfBufferView.hasOwnProperty('byteStride')) {\n\t\t\tpromise = promise.then(typedArray => {\n\t\t\t\ttypedArray.byteStride = gltfBufferView.byteStride;\n\t\t\t\treturn typedArray;\n\t\t\t});\n\t\t}\n\t\tif (postprocess) {\n\t\t\tpromise = promise.then(typedArray => {\n\t\t\t\tpostprocess(gltfBufferView, typedArray);\n\t\t\t\treturn typedArray;\n\t\t\t});\n\t\t}\n\t\tresult.push(promise);\n\t}\n\treturn result;\n};\nclass GlbParser {\n\tstatic parse(filename, urlBase, data, device, registry, options, callback) {\n\t\tparseChunk(filename, data, (err, chunks) => {\n\t\t\tif (err) {\n\t\t\t\tcallback(err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tparseGltf(chunks.gltfChunk, (err, gltf) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tcallback(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst buffers = loadBuffers(gltf, chunks.binaryChunk, urlBase, options);\n\t\t\t\tconst bufferViews = createBufferViews(gltf, buffers, options);\n\t\t\t\tconst images = createImages(gltf, bufferViews, urlBase, registry, options);\n\t\t\t\tconst textures = createTextures(gltf, images, options);\n\t\t\t\tcreateResources(device, gltf, bufferViews, textures, options).then(result => callback(null, result)).catch(err => callback(err));\n\t\t\t});\n\t\t});\n\t}\n\tstatic createDefaultMaterial() {\n\t\treturn createMaterial({\n\t\t\tname: 'defaultGlbMaterial'\n\t\t}, []);\n\t}\n}\n\nclass AnimationHandler extends ResourceHandler {\n\tconstructor(app) {\n\t\tsuper(app, 'animation');\n\t\tthis.device = app.graphicsDevice;\n\t\tthis.assets = app.assets;\n\t}\n\tload(url, callback, asset) {\n\t\tif (typeof url === 'string') {\n\t\t\turl = {\n\t\t\t\tload: url,\n\t\t\t\toriginal: url\n\t\t\t};\n\t\t}\n\t\tconst options = {\n\t\t\tretry: this.maxRetries > 0,\n\t\t\tmaxRetries: this.maxRetries\n\t\t};\n\t\tif (url.load.startsWith('blob:') || url.load.startsWith('data:')) {\n\t\t\tif (path.getExtension(url.original).toLowerCase() === '.glb') {\n\t\t\t\toptions.responseType = Http.ResponseType.ARRAY_BUFFER;\n\t\t\t} else {\n\t\t\t\toptions.responseType = Http.ResponseType.JSON;\n\t\t\t}\n\t\t}\n\t\thttp.get(url.load, options, (err, response) => {\n\t\t\tif (err) {\n\t\t\t\tcallback(`Error loading animation resource: ${url.original} [${err}]`);\n\t\t\t} else {\n\t\t\t\tif (path.getExtension(url.original).toLowerCase() === '.glb') {\n\t\t\t\t\tvar _asset$options;\n\t\t\t\t\tGlbParser.parse('filename.glb', '', response, this.device, this.assets, (_asset$options = asset == null ? void 0 : asset.options) != null ? _asset$options : {}, (err, parseResult) => {\n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\tcallback(err);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar _asset$data;\n\t\t\t\t\t\t\tconst animations = parseResult.animations;\n\t\t\t\t\t\t\tif (asset != null && (_asset$data = asset.data) != null && _asset$data.events) {\n\t\t\t\t\t\t\t\tfor (let i = 0; i < animations.length; i++) {\n\t\t\t\t\t\t\t\t\tanimations[i].events = new AnimEvents(Object.values(asset.data.events));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tparseResult.destroy();\n\t\t\t\t\t\t\tcallback(null, animations);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tcallback(null, this[`_parseAnimationV${response.animation.version}`](response));\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\topen(url, data, asset) {\n\t\treturn data;\n\t}\n\t_parseAnimationV3(data) {\n\t\tconst animData = data.animation;\n\t\tconst anim = new Animation();\n\t\tanim.name = animData.name;\n\t\tanim.duration = animData.duration;\n\t\tfor (let i = 0; i < animData.nodes.length; i++) {\n\t\t\tconst node = new Node();\n\t\t\tconst n = animData.nodes[i];\n\t\t\tnode._name = n.name;\n\t\t\tfor (let j = 0; j < n.keys.length; j++) {\n\t\t\t\tconst k = n.keys[j];\n\t\t\t\tconst t = k.time;\n\t\t\t\tconst p = k.pos;\n\t\t\t\tconst r = k.rot;\n\t\t\t\tconst s = k.scale;\n\t\t\t\tconst pos = new Vec3(p[0], p[1], p[2]);\n\t\t\t\tconst rot = new Quat().setFromEulerAngles(r[0], r[1], r[2]);\n\t\t\t\tconst scl = new Vec3(s[0], s[1], s[2]);\n\t\t\t\tconst key = new Key(t, pos, rot, scl);\n\t\t\t\tnode._keys.push(key);\n\t\t\t}\n\t\t\tanim.addNode(node);\n\t\t}\n\t\treturn anim;\n\t}\n\t_parseAnimationV4(data) {\n\t\tconst animData = data.animation;\n\t\tconst anim = new Animation();\n\t\tanim.name = animData.name;\n\t\tanim.duration = animData.duration;\n\t\tfor (let i = 0; i < animData.nodes.length; i++) {\n\t\t\tconst node = new Node();\n\t\t\tconst n = animData.nodes[i];\n\t\t\tnode._name = n.name;\n\t\t\tconst defPos = n.defaults.p;\n\t\t\tconst defRot = n.defaults.r;\n\t\t\tconst defScl = n.defaults.s;\n\t\t\tfor (let j = 0; j < n.keys.length; j++) {\n\t\t\t\tconst k = n.keys[j];\n\t\t\t\tconst t = k.t;\n\t\t\t\tconst p = defPos ? defPos : k.p;\n\t\t\t\tconst r = defRot ? defRot : k.r;\n\t\t\t\tconst s = defScl ? defScl : k.s;\n\t\t\t\tconst pos = new Vec3(p[0], p[1], p[2]);\n\t\t\t\tconst rot = new Quat().setFromEulerAngles(r[0], r[1], r[2]);\n\t\t\t\tconst scl = new Vec3(s[0], s[1], s[2]);\n\t\t\t\tconst key = new Key(t, pos, rot, scl);\n\t\t\t\tnode._keys.push(key);\n\t\t\t}\n\t\t\tanim.addNode(node);\n\t\t}\n\t\treturn anim;\n\t}\n}\n\nclass AnimClipHandler extends ResourceHandler {\n\tconstructor(app) {\n\t\tsuper(app, 'animclip');\n\t}\n\tload(url, callback) {\n\t\tif (typeof url === 'string') {\n\t\t\turl = {\n\t\t\t\tload: url,\n\t\t\t\toriginal: url\n\t\t\t};\n\t\t}\n\t\tconst options = {\n\t\t\tretry: this.maxRetries > 0,\n\t\t\tmaxRetries: this.maxRetries\n\t\t};\n\t\tif (url.load.startsWith('blob:')) {\n\t\t\toptions.responseType = Http.ResponseType.JSON;\n\t\t}\n\t\thttp.get(url.load, options, (err, response) => {\n\t\t\tif (err) {\n\t\t\t\tcallback(`Error loading animation clip resource: ${url.original} [${err}]`);\n\t\t\t} else {\n\t\t\t\tcallback(null, response);\n\t\t\t}\n\t\t});\n\t}\n\topen(url, data) {\n\t\tconst name = data.name;\n\t\tconst duration = data.duration;\n\t\tconst inputs = data.inputs.map(input => {\n\t\t\treturn new AnimData(1, input);\n\t\t});\n\t\tconst outputs = data.outputs.map(output => {\n\t\t\treturn new AnimData(output.components, output.data);\n\t\t});\n\t\tconst curves = data.curves.map(curve => {\n\t\t\treturn new AnimCurve([curve.path], curve.inputIndex, curve.outputIndex, curve.interpolation);\n\t\t});\n\t\treturn new AnimTrack(name, duration, inputs, outputs, curves);\n\t}\n}\n\nclass AnimStateGraphHandler extends ResourceHandler {\n\tconstructor(app) {\n\t\tsuper(app, 'animstategraph');\n\t}\n\tload(url, callback) {\n\t\tif (typeof url === 'string') {\n\t\t\turl = {\n\t\t\t\tload: url,\n\t\t\t\toriginal: url\n\t\t\t};\n\t\t}\n\t\tconst options = {\n\t\t\tretry: this.maxRetries > 0,\n\t\t\tmaxRetries: this.maxRetries\n\t\t};\n\t\tif (url.load.startsWith('blob:')) {\n\t\t\toptions.responseType = Http.ResponseType.JSON;\n\t\t}\n\t\thttp.get(url.load, options, (err, response) => {\n\t\t\tif (err) {\n\t\t\t\tcallback(`Error loading animation state graph resource: ${url.original} [${err}]`);\n\t\t\t} else {\n\t\t\t\tcallback(null, response);\n\t\t\t}\n\t\t});\n\t}\n\topen(url, data) {\n\t\treturn new AnimStateGraph(data);\n\t}\n}\n\nconst ie = function () {\n\tif (typeof window === 'undefined') {\n\t\treturn false;\n\t}\n\tconst ua = window.navigator.userAgent;\n\tconst msie = ua.indexOf('MSIE ');\n\tif (msie > 0) {\n\t\treturn parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n\t}\n\tconst trident = ua.indexOf('Trident/');\n\tif (trident > 0) {\n\t\tconst rv = ua.indexOf('rv:');\n\t\treturn parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n\t}\n\treturn false;\n}();\nconst supportedExtensions = ['.ogg', '.mp3', '.wav', '.mp4a', '.m4a', '.mp4', '.aac', '.opus'];\nclass AudioHandler extends ResourceHandler {\n\tconstructor(app) {\n\t\tsuper(app, 'audio');\n\t\tthis.manager = app.soundManager;\n\t}\n\t_isSupported(url) {\n\t\tconst ext = path.getExtension(url);\n\t\treturn supportedExtensions.indexOf(ext) > -1;\n\t}\n\tload(url, callback) {\n\t\tif (typeof url === 'string') {\n\t\t\turl = {\n\t\t\t\tload: url,\n\t\t\t\toriginal: url\n\t\t\t};\n\t\t}\n\t\tconst success = function success(resource) {\n\t\t\tcallback(null, new Sound(resource));\n\t\t};\n\t\tconst error = function error(err) {\n\t\t\tlet msg = `Error loading audio url: ${url.original}`;\n\t\t\tif (err) {\n\t\t\t\tmsg += `: ${err.message || err}`;\n\t\t\t}\n\t\t\tconsole.warn(msg);\n\t\t\tcallback(msg);\n\t\t};\n\t\tif (this._createSound) {\n\t\t\tif (!this._isSupported(url.original)) {\n\t\t\t\terror(`Audio format for ${url.original} not supported`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._createSound(url.load, success, error);\n\t\t} else {\n\t\t\terror(null);\n\t\t}\n\t}\n\t_createSound(url, success, error) {\n\t\tif (hasAudioContext()) {\n\t\t\tconst manager = this.manager;\n\t\t\tif (!manager.context) {\n\t\t\t\terror('Audio manager has no audio context');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst options = {\n\t\t\t\tretry: this.maxRetries > 0,\n\t\t\t\tmaxRetries: this.maxRetries\n\t\t\t};\n\t\t\tif (url.startsWith('blob:') || url.startsWith('data:')) {\n\t\t\t\toptions.responseType = Http.ResponseType.ARRAY_BUFFER;\n\t\t\t}\n\t\t\thttp.get(url, options, (err, response) => {\n\t\t\t\tif (err) {\n\t\t\t\t\terror(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tmanager.context.decodeAudioData(response, success, error);\n\t\t\t});\n\t\t} else {\n\t\t\tlet audio = null;\n\t\t\ttry {\n\t\t\t\taudio = new Audio();\n\t\t\t} catch (e) {\n\t\t\t\terror('No support for Audio element');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (ie) {\n\t\t\t\tdocument.body.appendChild(audio);\n\t\t\t}\n\t\t\tconst onReady = function onReady() {\n\t\t\t\taudio.removeEventListener('canplaythrough', onReady);\n\t\t\t\tif (ie) {\n\t\t\t\t\tdocument.body.removeChild(audio);\n\t\t\t\t}\n\t\t\t\tsuccess(audio);\n\t\t\t};\n\t\t\taudio.onerror = function () {\n\t\t\t\taudio.onerror = null;\n\t\t\t\tif (ie) {\n\t\t\t\t\tdocument.body.removeChild(audio);\n\t\t\t\t}\n\t\t\t\terror();\n\t\t\t};\n\t\t\taudio.addEventListener('canplaythrough', onReady);\n\t\t\taudio.src = url;\n\t\t}\n\t}\n}\n\nclass BinaryHandler extends ResourceHandler {\n\tconstructor(app) {\n\t\tsuper(app, 'binary');\n\t}\n\tload(url, callback) {\n\t\tif (typeof url === 'string') {\n\t\t\turl = {\n\t\t\t\tload: url,\n\t\t\t\toriginal: url\n\t\t\t};\n\t\t}\n\t\thttp.get(url.load, {\n\t\t\tresponseType: Http.ResponseType.ARRAY_BUFFER,\n\t\t\tretry: this.maxRetries > 0,\n\t\t\tmaxRetries: this.maxRetries\n\t\t}, (err, response) => {\n\t\t\tif (!err) {\n\t\t\t\tcallback(null, response);\n\t\t\t} else {\n\t\t\t\tcallback(`Error loading binary resource: ${url.original} [${err}]`);\n\t\t\t}\n\t\t});\n\t}\n\topenBinary(data) {\n\t\treturn data.buffer;\n\t}\n}\n\nclass GlbContainerResource {\n\tconstructor(data, asset, assets, defaultMaterial) {\n\t\tconst createAsset = function createAsset(type, resource, index) {\n\t\t\tconst subAsset = GlbContainerResource.createAsset(asset.name, type, resource, index);\n\t\t\tassets.add(subAsset);\n\t\t\treturn subAsset;\n\t\t};\n\t\tconst renders = [];\n\t\tfor (let i = 0; i < data.renders.length; ++i) {\n\t\t\trenders.push(createAsset('render', data.renders[i], i));\n\t\t}\n\t\tconst materials = [];\n\t\tfor (let i = 0; i < data.materials.length; ++i) {\n\t\t\tmaterials.push(createAsset('material', data.materials[i], i));\n\t\t}\n\t\tconst animations = [];\n\t\tfor (let i = 0; i < data.animations.length; ++i) {\n\t\t\tanimations.push(createAsset('animation', data.animations[i], i));\n\t\t}\n\t\tthis.data = data;\n\t\tthis._model = null;\n\t\tthis._assetName = asset.name;\n\t\tthis._assets = assets;\n\t\tthis._defaultMaterial = defaultMaterial;\n\t\tthis.renders = renders;\n\t\tthis.materials = materials;\n\t\tthis.textures = data.textures;\n\t\tthis.animations = animations;\n\t}\n\tget model() {\n\t\tif (!this._model) {\n\t\t\tconst model = GlbContainerResource.createModel(this.data, this._defaultMaterial);\n\t\t\tconst modelAsset = GlbContainerResource.createAsset(this._assetName, 'model', model, 0);\n\t\t\tthis._assets.add(modelAsset);\n\t\t\tthis._model = modelAsset;\n\t\t}\n\t\treturn this._model;\n\t}\n\tstatic createAsset(assetName, type, resource, index) {\n\t\tconst subAsset = new Asset(`${assetName}/${type}/${index}`, type, {\n\t\t\turl: ''\n\t\t});\n\t\tsubAsset.resource = resource;\n\t\tsubAsset.loaded = true;\n\t\treturn subAsset;\n\t}\n\tinstantiateModelEntity(options) {\n\t\tconst entity = new Entity();\n\t\tentity.addComponent('model', Object.assign({\n\t\t\ttype: 'asset',\n\t\t\tasset: this.model\n\t\t}, options));\n\t\treturn entity;\n\t}\n\tinstantiateRenderEntity(options) {\n\t\tconst defaultMaterial = this._defaultMaterial;\n\t\tconst skinnedMeshInstances = [];\n\t\tconst createMeshInstance = function createMeshInstance(root, entity, mesh, materials, meshDefaultMaterials, skins, gltfNode) {\n\t\t\tconst materialIndex = meshDefaultMaterials[mesh.id];\n\t\t\tconst material = materialIndex === undefined ? defaultMaterial : materials[materialIndex];\n\t\t\tconst meshInstance = new MeshInstance(mesh, material);\n\t\t\tif (mesh.morph) {\n\t\t\t\tmeshInstance.morphInstance = new MorphInstance(mesh.morph);\n\t\t\t}\n\t\t\tif (gltfNode.hasOwnProperty('skin')) {\n\t\t\t\tskinnedMeshInstances.push({\n\t\t\t\t\tmeshInstance: meshInstance,\n\t\t\t\t\trootBone: root,\n\t\t\t\t\tentity: entity\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn meshInstance;\n\t\t};\n\t\tconst cloneHierarchy = (root, node, glb) => {\n\t\t\tconst entity = new Entity();\n\t\t\tnode._cloneInternal(entity);\n\t\t\tif (!root) root = entity;\n\t\t\tlet attachedMi = null;\n\t\t\tlet renderAsset = null;\n\t\t\tfor (let i = 0; i < glb.nodes.length; i++) {\n\t\t\t\tconst glbNode = glb.nodes[i];\n\t\t\t\tif (glbNode === node) {\n\t\t\t\t\tconst gltfNode = glb.gltf.nodes[i];\n\t\t\t\t\tif (gltfNode.hasOwnProperty('mesh')) {\n\t\t\t\t\t\tconst meshGroup = glb.renders[gltfNode.mesh].meshes;\n\t\t\t\t\t\trenderAsset = this.renders[gltfNode.mesh];\n\t\t\t\t\t\tfor (let mi = 0; mi < meshGroup.length; mi++) {\n\t\t\t\t\t\t\tconst mesh = meshGroup[mi];\n\t\t\t\t\t\t\tif (mesh) {\n\t\t\t\t\t\t\t\tconst cloneMi = createMeshInstance(root, entity, mesh, glb.materials, glb.meshDefaultMaterials, glb.skins, gltfNode);\n\t\t\t\t\t\t\t\tif (!attachedMi) {\n\t\t\t\t\t\t\t\t\tattachedMi = [];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tattachedMi.push(cloneMi);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (glb.lights) {\n\t\t\t\t\t\tconst lightEntity = glb.lights.get(gltfNode);\n\t\t\t\t\t\tif (lightEntity) {\n\t\t\t\t\t\t\tentity.addChild(lightEntity.clone());\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (glb.cameras) {\n\t\t\t\t\t\tconst cameraEntity = glb.cameras.get(gltfNode);\n\t\t\t\t\t\tif (cameraEntity) {\n\t\t\t\t\t\t\tcameraEntity.camera.system.cloneComponent(cameraEntity, entity);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (attachedMi) {\n\t\t\t\tentity.addComponent('render', Object.assign({\n\t\t\t\t\ttype: 'asset',\n\t\t\t\t\tmeshInstances: attachedMi\n\t\t\t\t}, options));\n\t\t\t\tentity.render.assignAsset(renderAsset);\n\t\t\t}\n\t\t\tconst children = node.children;\n\t\t\tfor (let i = 0; i < children.length; i++) {\n\t\t\t\tconst childClone = cloneHierarchy(root, children[i], glb);\n\t\t\t\tentity.addChild(childClone);\n\t\t\t}\n\t\t\treturn entity;\n\t\t};\n\t\tconst sceneClones = [];\n\t\tfor (const scene of this.data.scenes) {\n\t\t\tsceneClones.push(cloneHierarchy(null, scene, this.data));\n\t\t}\n\t\tskinnedMeshInstances.forEach(data => {\n\t\t\tdata.meshInstance.skinInstance = SkinInstanceCache.createCachedSkinInstance(data.meshInstance.mesh.skin, data.rootBone, data.entity);\n\t\t\tdata.meshInstance.node.render.rootBone = data.rootBone;\n\t\t});\n\t\treturn GlbContainerResource.createSceneHierarchy(sceneClones, Entity);\n\t}\n\tgetMaterialVariants() {\n\t\treturn this.data.variants ? Object.keys(this.data.variants) : [];\n\t}\n\tapplyMaterialVariant(entity, name) {\n\t\tconst variant = name ? this.data.variants[name] : null;\n\t\tif (variant === undefined) {\n\t\t\treturn;\n\t\t}\n\t\tconst renders = entity.findComponents('render');\n\t\tfor (let i = 0; i < renders.length; i++) {\n\t\t\tconst renderComponent = renders[i];\n\t\t\tthis._applyMaterialVariant(variant, renderComponent.meshInstances);\n\t\t}\n\t}\n\tapplyMaterialVariantInstances(instances, name) {\n\t\tconst variant = name ? this.data.variants[name] : null;\n\t\tif (variant === undefined) {\n\t\t\treturn;\n\t\t}\n\t\tthis._applyMaterialVariant(variant, instances);\n\t}\n\t_applyMaterialVariant(variant, instances) {\n\t\tinstances.forEach(instance => {\n\t\t\tif (variant === null) {\n\t\t\t\tinstance.material = this._defaultMaterial;\n\t\t\t} else {\n\t\t\t\tconst meshVariants = this.data.meshVariants[instance.mesh.id];\n\t\t\t\tif (meshVariants) {\n\t\t\t\t\tinstance.material = this.data.materials[meshVariants[variant]];\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\tstatic createSceneHierarchy(sceneNodes, nodeType) {\n\t\tlet root = null;\n\t\tif (sceneNodes.length === 1) {\n\t\t\troot = sceneNodes[0];\n\t\t} else {\n\t\t\troot = new nodeType('SceneGroup');\n\t\t\tfor (const scene of sceneNodes) {\n\t\t\t\troot.addChild(scene);\n\t\t\t}\n\t\t}\n\t\treturn root;\n\t}\n\tstatic createModel(glb, defaultMaterial) {\n\t\tconst createMeshInstance = function createMeshInstance(model, mesh, skins, skinInstances, materials, node, gltfNode) {\n\t\t\tconst materialIndex = glb.meshDefaultMaterials[mesh.id];\n\t\t\tconst material = materialIndex === undefined ? defaultMaterial : materials[materialIndex];\n\t\t\tconst meshInstance = new MeshInstance(mesh, material, node);\n\t\t\tif (mesh.morph) {\n\t\t\t\tconst morphInstance = new MorphInstance(mesh.morph);\n\t\t\t\tmeshInstance.morphInstance = morphInstance;\n\t\t\t\tmodel.morphInstances.push(morphInstance);\n\t\t\t}\n\t\t\tif (gltfNode.hasOwnProperty('skin')) {\n\t\t\t\tconst skinIndex = gltfNode.skin;\n\t\t\t\tconst skin = skins[skinIndex];\n\t\t\t\tmesh.skin = skin;\n\t\t\t\tconst skinInstance = skinInstances[skinIndex];\n\t\t\t\tmeshInstance.skinInstance = skinInstance;\n\t\t\t\tmodel.skinInstances.push(skinInstance);\n\t\t\t}\n\t\t\tmodel.meshInstances.push(meshInstance);\n\t\t};\n\t\tconst model = new Model();\n\t\tconst skinInstances = [];\n\t\tfor (const skin of glb.skins) {\n\t\t\tconst skinInstance = new SkinInstance(skin);\n\t\t\tskinInstance.bones = skin.bones;\n\t\t\tskinInstances.push(skinInstance);\n\t\t}\n\t\tmodel.graph = GlbContainerResource.createSceneHierarchy(glb.scenes, GraphNode);\n\t\tfor (let i = 0; i < glb.nodes.length; i++) {\n\t\t\tconst node = glb.nodes[i];\n\t\t\tif (node.root === model.graph) {\n\t\t\t\tconst gltfNode = glb.gltf.nodes[i];\n\t\t\t\tif (gltfNode.hasOwnProperty('mesh')) {\n\t\t\t\t\tconst meshGroup = glb.renders[gltfNode.mesh].meshes;\n\t\t\t\t\tfor (let mi = 0; mi < meshGroup.length; mi++) {\n\t\t\t\t\t\tconst mesh = meshGroup[mi];\n\t\t\t\t\t\tif (mesh) {\n\t\t\t\t\t\t\tcreateMeshInstance(model, mesh, glb.skins, skinInstances, glb.materials, node, gltfNode);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn model;\n\t}\n\tdestroy() {\n\t\tconst registry = this._assets;\n\t\tconst destroyAsset = function destroyAsset(asset) {\n\t\t\tregistry.remove(asset);\n\t\t\tasset.unload();\n\t\t};\n\t\tconst destroyAssets = function destroyAssets(assets) {\n\t\t\tassets.forEach(asset => {\n\t\t\t\tdestroyAsset(asset);\n\t\t\t});\n\t\t};\n\t\tif (this.animations) {\n\t\t\tdestroyAssets(this.animations);\n\t\t\tthis.animations = null;\n\t\t}\n\t\tif (this.textures) {\n\t\t\tdestroyAssets(this.textures);\n\t\t\tthis.textures = null;\n\t\t}\n\t\tif (this.materials) {\n\t\t\tdestroyAssets(this.materials);\n\t\t\tthis.materials = null;\n\t\t}\n\t\tif (this.renders) {\n\t\t\tdestroyAssets(this.renders);\n\t\t\tthis.renders = null;\n\t\t}\n\t\tif (this._model) {\n\t\t\tdestroyAsset(this._model);\n\t\t\tthis._model = null;\n\t\t}\n\t\tthis.data = null;\n\t\tthis.assets = null;\n\t}\n}\n\nclass GlbContainerParser {\n\tconstructor(device, assets, maxRetries) {\n\t\tthis._device = device;\n\t\tthis._assets = assets;\n\t\tthis._defaultMaterial = GlbParser.createDefaultMaterial();\n\t\tthis.maxRetries = maxRetries;\n\t}\n\t_getUrlWithoutParams(url) {\n\t\treturn url.indexOf('?') >= 0 ? url.split('?')[0] : url;\n\t}\n\tload(url, callback, asset) {\n\t\tAsset.fetchArrayBuffer(url.load, (err, result) => {\n\t\t\tif (err) {\n\t\t\t\tcallback(err);\n\t\t\t} else {\n\t\t\t\tGlbParser.parse(this._getUrlWithoutParams(url.original), path.extractPath(url.load), result, this._device, asset.registry, asset.options, (err, result) => {\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\tcallback(err);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcallback(null, new GlbContainerResource(result, asset, this._assets, this._defaultMaterial));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}, asset, this.maxRetries);\n\t}\n\topen(url, data, asset) {\n\t\treturn data;\n\t}\n\tpatch(asset, assets) {}\n}\n\nclass ContainerResource {\n\tinstantiateModelEntity(options) {\n\t\treturn null;\n\t}\n\tinstantiateRenderEntity(options) {\n\t\treturn null;\n\t}\n\tgetMaterialVariants() {\n\t\treturn null;\n\t}\n\tapplyMaterialVariant(entity, name) {}\n\tapplyMaterialVariantInstances(instances, name) {}\n}\nclass ContainerHandler extends ResourceHandler {\n\tconstructor(app) {\n\t\tsuper(app, 'container');\n\t\tthis.glbContainerParser = new GlbContainerParser(app.graphicsDevice, app.assets, 0);\n\t\tthis.parsers = {};\n\t}\n\tset maxRetries(value) {\n\t\tthis.glbContainerParser.maxRetries = value;\n\t\tfor (const parser in this.parsers) {\n\t\t\tif (this.parsers.hasOwnProperty(parser)) {\n\t\t\t\tthis.parsers[parser].maxRetries = value;\n\t\t\t}\n\t\t}\n\t}\n\tget maxRetries() {\n\t\treturn this.glbContainerParser.maxRetries;\n\t}\n\t_getUrlWithoutParams(url) {\n\t\treturn url.indexOf('?') >= 0 ? url.split('?')[0] : url;\n\t}\n\t_getParser(url) {\n\t\tconst ext = url ? path.getExtension(this._getUrlWithoutParams(url)).toLowerCase().replace('.', '') : null;\n\t\treturn this.parsers[ext] || this.glbContainerParser;\n\t}\n\tload(url, callback, asset) {\n\t\tif (typeof url === 'string') {\n\t\t\turl = {\n\t\t\t\tload: url,\n\t\t\t\toriginal: url\n\t\t\t};\n\t\t}\n\t\tthis._getParser(url.original).load(url, callback, asset);\n\t}\n\topen(url, data, asset) {\n\t\treturn this._getParser(url).open(url, data, asset);\n\t}\n}\n\nclass CssHandler extends ResourceHandler {\n\tconstructor(app) {\n\t\tsuper(app, 'css');\n\t\tthis.decoder = null;\n\t}\n\tload(url, callback) {\n\t\tif (typeof url === 'string') {\n\t\t\turl = {\n\t\t\t\tload: url,\n\t\t\t\toriginal: url\n\t\t\t};\n\t\t}\n\t\thttp.get(url.load, {\n\t\t\tretry: this.maxRetries > 0,\n\t\t\tmaxRetries: this.maxRetries\n\t\t}, (err, response) => {\n\t\t\tif (!err) {\n\t\t\t\tcallback(null, response);\n\t\t\t} else {\n\t\t\t\tcallback(`Error loading css resource: ${url.original} [${err}]`);\n\t\t\t}\n\t\t});\n\t}\n\topenBinary(data) {\n\t\tvar _this$decoder;\n\t\t(_this$decoder = this.decoder) != null ? _this$decoder : this.decoder = new TextDecoder('utf-8');\n\t\treturn this.decoder.decode(data);\n\t}\n}\n\nclass CubemapHandler extends ResourceHandler {\n\tconstructor(app) {\n\t\tsuper(app, 'cubemap');\n\t\tthis._device = app.graphicsDevice;\n\t\tthis._registry = app.assets;\n\t\tthis._loader = app.loader;\n\t}\n\tload(url, callback, asset) {\n\t\tthis.loadAssets(asset, callback);\n\t}\n\topen(url, data, asset) {\n\t\treturn asset ? asset.resource : null;\n\t}\n\tpatch(asset, registry) {\n\t\tthis.loadAssets(asset, (err, result) => {\n\t\t\tif (err) {\n\t\t\t\tregistry.fire('error', asset);\n\t\t\t\tregistry.fire(`error:${asset.id}`, err, asset);\n\t\t\t\tasset.fire('error', asset);\n\t\t\t}\n\t\t});\n\t}\n\tgetAssetIds(cubemapAsset) {\n\t\tconst result = [];\n\t\tresult[0] = cubemapAsset.file;\n\t\tif ((cubemapAsset.loadFaces || !cubemapAsset.file) && cubemapAsset.data && cubemapAsset.data.textures) {\n\t\t\tfor (let i = 0; i < 6; ++i) {\n\t\t\t\tresult[i + 1] = cubemapAsset.data.textures[i];\n\t\t\t}\n\t\t} else {\n\t\t\tresult[1] = result[2] = result[3] = result[4] = result[5] = result[6] = null;\n\t\t}\n\t\treturn result;\n\t}\n\tcompareAssetIds(assetIdA, assetIdB) {\n\t\tif (assetIdA && assetIdB) {\n\t\t\tif (parseInt(assetIdA, 10) === assetIdA || typeof assetIdA === 'string') {\n\t\t\t\treturn assetIdA === assetIdB;\n\t\t\t}\n\t\t\treturn assetIdA.url === assetIdB.url;\n\t\t}\n\t\treturn assetIdA !== null === (assetIdB !== null);\n\t}\n\tupdate(cubemapAsset, assetIds, assets) {\n\t\tconst assetData = cubemapAsset.data || {};\n\t\tconst oldAssets = cubemapAsset._handlerState.assets;\n\t\tconst oldResources = cubemapAsset._resources;\n\t\tlet tex, mip, i;\n\t\tconst resources = [null, null, null, null, null, null, null];\n\t\tconst getType = function getType() {\n\t\t\tif (assetData.hasOwnProperty('type')) {\n\t\t\t\treturn assetData.type;\n\t\t\t}\n\t\t\tif (assetData.hasOwnProperty('rgbm')) {\n\t\t\t\treturn assetData.rgbm ? TEXTURETYPE_RGBM : TEXTURETYPE_DEFAULT;\n\t\t\t}\n\t\t\treturn null;\n\t\t};\n\t\tif (!cubemapAsset.loaded || assets[0] !== oldAssets[0]) {\n\t\t\tif (assets[0]) {\n\t\t\t\ttex = assets[0].resource;\n\t\t\t\tif (tex.cubemap) {\n\t\t\t\t\tfor (i = 0; i < 6; ++i) {\n\t\t\t\t\t\tresources[i + 1] = new Texture(this._device, {\n\t\t\t\t\t\t\tname: `${cubemapAsset.name}_prelitCubemap${tex.width >> i}`,\n\t\t\t\t\t\t\tcubemap: true,\n\t\t\t\t\t\t\ttype: getType() || tex.type,\n\t\t\t\t\t\t\twidth: tex.width >> i,\n\t\t\t\t\t\t\theight: tex.height >> i,\n\t\t\t\t\t\t\tformat: tex.format,\n\t\t\t\t\t\t\tlevels: [tex._levels[i]],\n\t\t\t\t\t\t\tfixCubemapSeams: true,\n\t\t\t\t\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\t\t\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\t\t\t\t\tmipmaps: i === 0\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\ttex.type = TEXTURETYPE_RGBP;\n\t\t\t\t\ttex.addressU = ADDRESS_CLAMP_TO_EDGE;\n\t\t\t\t\ttex.addressV = ADDRESS_CLAMP_TO_EDGE;\n\t\t\t\t\ttex.mipmaps = false;\n\t\t\t\t\tresources[1] = tex;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tresources[1] = oldResources[1] || null;\n\t\t\tresources[2] = oldResources[2] || null;\n\t\t\tresources[3] = oldResources[3] || null;\n\t\t\tresources[4] = oldResources[4] || null;\n\t\t\tresources[5] = oldResources[5] || null;\n\t\t\tresources[6] = oldResources[6] || null;\n\t\t}\n\t\tconst faceAssets = assets.slice(1);\n\t\tif (!cubemapAsset.loaded || !this.cmpArrays(faceAssets, oldAssets.slice(1))) {\n\t\t\tif (faceAssets.indexOf(null) === -1) {\n\t\t\t\tvar _assetData$mipmaps;\n\t\t\t\tconst faceTextures = faceAssets.map(asset => {\n\t\t\t\t\treturn asset.resource;\n\t\t\t\t});\n\t\t\t\tconst faceLevels = [];\n\t\t\t\tfor (mip = 0; mip < faceTextures[0]._levels.length; ++mip) {\n\t\t\t\t\tfaceLevels.push(faceTextures.map(faceTexture => {\n\t\t\t\t\t\treturn faceTexture._levels[mip];\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\tconst format = faceTextures[0].format;\n\t\t\t\tconst faces = new Texture(this._device, {\n\t\t\t\t\tname: `${cubemapAsset.name}_faces`,\n\t\t\t\t\tcubemap: true,\n\t\t\t\t\ttype: getType() || faceTextures[0].type,\n\t\t\t\t\twidth: faceTextures[0].width,\n\t\t\t\t\theight: faceTextures[0].height,\n\t\t\t\t\tformat: format === PIXELFORMAT_RGB8 ? PIXELFORMAT_RGBA8 : format,\n\t\t\t\t\tmipmaps: (_assetData$mipmaps = assetData.mipmaps) != null ? _assetData$mipmaps : true,\n\t\t\t\t\tlevels: faceLevels,\n\t\t\t\t\tminFilter: assetData.hasOwnProperty('minFilter') ? assetData.minFilter : faceTextures[0].minFilter,\n\t\t\t\t\tmagFilter: assetData.hasOwnProperty('magFilter') ? assetData.magFilter : faceTextures[0].magFilter,\n\t\t\t\t\tanisotropy: assetData.hasOwnProperty('anisotropy') ? assetData.anisotropy : 1,\n\t\t\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\t\t\tfixCubemapSeams: !!assets[0]\n\t\t\t\t});\n\t\t\t\tresources[0] = faces;\n\t\t\t}\n\t\t} else {\n\t\t\tresources[0] = oldResources[0] || null;\n\t\t}\n\t\tif (!this.cmpArrays(resources, oldResources)) {\n\t\t\tcubemapAsset.resources = resources;\n\t\t\tcubemapAsset._handlerState.assetIds = assetIds;\n\t\t\tcubemapAsset._handlerState.assets = assets;\n\t\t\tfor (i = 0; i < oldResources.length; ++i) {\n\t\t\t\tif (oldResources[i] !== null && resources.indexOf(oldResources[i]) === -1) {\n\t\t\t\t\toldResources[i].destroy();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (i = 0; i < oldAssets.length; ++i) {\n\t\t\tif (oldAssets[i] !== null && assets.indexOf(oldAssets[i]) === -1) {\n\t\t\t\toldAssets[i].unload();\n\t\t\t}\n\t\t}\n\t}\n\tcmpArrays(arr1, arr2) {\n\t\tif (arr1.length !== arr2.length) {\n\t\t\treturn false;\n\t\t}\n\t\tfor (let i = 0; i < arr1.length; ++i) {\n\t\t\tif (arr1[i] !== arr2[i]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\tresolveId(value) {\n\t\tconst valueInt = parseInt(value, 10);\n\t\treturn valueInt === value || valueInt.toString() === value ? valueInt : value;\n\t}\n\tloadAssets(cubemapAsset, callback) {\n\t\tif (!cubemapAsset.hasOwnProperty('_handlerState')) {\n\t\t\tcubemapAsset._handlerState = {\n\t\t\t\tassetIds: [null, null, null, null, null, null, null],\n\t\t\t\tassets: [null, null, null, null, null, null, null]\n\t\t\t};\n\t\t}\n\t\tconst self = this;\n\t\tconst assetIds = self.getAssetIds(cubemapAsset);\n\t\tconst assets = [null, null, null, null, null, null, null];\n\t\tconst loadedAssetIds = cubemapAsset._handlerState.assetIds;\n\t\tconst loadedAssets = cubemapAsset._handlerState.assets;\n\t\tconst registry = self._registry;\n\t\tlet awaiting = 7;\n\t\tconst onLoad = function onLoad(index, asset) {\n\t\t\tassets[index] = asset;\n\t\t\tawaiting--;\n\t\t\tif (awaiting === 0) {\n\t\t\t\tself.update(cubemapAsset, assetIds, assets);\n\t\t\t\tcallback(null, cubemapAsset.resources);\n\t\t\t}\n\t\t};\n\t\tconst onError = function onError(index, err, asset) {\n\t\t\tcallback(err);\n\t\t};\n\t\tconst processTexAsset = function processTexAsset(index, texAsset) {\n\t\t\tif (texAsset.loaded) {\n\t\t\t\tonLoad(index, texAsset);\n\t\t\t} else {\n\t\t\t\tregistry.once(`load:${texAsset.id}`, onLoad.bind(self, index));\n\t\t\t\tregistry.once(`error:${texAsset.id}`, onError.bind(self, index));\n\t\t\t\tif (!texAsset.loading) {\n\t\t\t\t\tregistry.load(texAsset);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tlet texAsset;\n\t\tfor (let i = 0; i < 7; ++i) {\n\t\t\tconst assetId = this.resolveId(assetIds[i]);\n\t\t\tif (!assetId) {\n\t\t\t\tonLoad(i, null);\n\t\t\t} else if (self.compareAssetIds(assetId, loadedAssetIds[i])) {\n\t\t\t\tprocessTexAsset(i, loadedAssets[i]);\n\t\t\t} else if (parseInt(assetId, 10) === assetId) {\n\t\t\t\ttexAsset = registry.get(assetId);\n\t\t\t\tif (texAsset) {\n\t\t\t\t\tprocessTexAsset(i, texAsset);\n\t\t\t\t} else {\n\t\t\t\t\tsetTimeout(((index, assetId_) => {\n\t\t\t\t\t\tconst texAsset = registry.get(assetId_);\n\t\t\t\t\t\tif (texAsset) {\n\t\t\t\t\t\t\tprocessTexAsset(index, texAsset);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tonError(index, `failed to find dependent cubemap asset=${assetId_}`);\n\t\t\t\t\t\t}\n\t\t\t\t\t}).bind(null, i, assetId));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst file = typeof assetId === 'string' ? {\n\t\t\t\t\turl: assetId,\n\t\t\t\t\tfilename: assetId\n\t\t\t\t} : assetId;\n\t\t\t\ttexAsset = new Asset(`${cubemapAsset.name}_part_${i}`, 'texture', file);\n\t\t\t\tregistry.add(texAsset);\n\t\t\t\tprocessTexAsset(i, texAsset);\n\t\t\t}\n\t\t}\n\t}\n}\n\nclass FolderHandler extends ResourceHandler {\n\tconstructor(app) {\n\t\tsuper(app, 'folder');\n\t}\n\tload(url, callback) {\n\t\tcallback(null, null);\n\t}\n}\n\nclass Font {\n\tconstructor(textures, data) {\n\t\tthis.type = data ? data.type || FONT_MSDF : FONT_MSDF;\n\t\tthis.em = 1;\n\t\tthis.textures = textures;\n\t\tthis.intensity = 0.0;\n\t\tthis._data = null;\n\t\tthis.data = data;\n\t}\n\tset data(value) {\n\t\tthis._data = value;\n\t\tif (!value) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._data.intensity !== undefined) {\n\t\t\tthis.intensity = this._data.intensity;\n\t\t}\n\t\tif (!this._data.info) {\n\t\t\tthis._data.info = {};\n\t\t}\n\t\tif (!this._data.version || this._data.version < 2) {\n\t\t\tthis._data.info.maps = [{\n\t\t\t\twidth: this._data.info.width,\n\t\t\t\theight: this._data.info.height\n\t\t\t}];\n\t\t\tif (this._data.chars) {\n\t\t\t\tfor (const key in this._data.chars) {\n\t\t\t\t\tthis._data.chars[key].map = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget data() {\n\t\treturn this._data;\n\t}\n}\n\nfunction upgradeDataSchema(data) {\n\tif (data.version < 3) {\n\t\tif (data.version < 2) {\n\t\t\tdata.info.maps = data.info.maps || [{\n\t\t\t\twidth: data.info.width,\n\t\t\t\theight: data.info.height\n\t\t\t}];\n\t\t}\n\t\tdata.chars = Object.keys(data.chars || {}).reduce((newChars, key) => {\n\t\t\tconst existing = data.chars[key];\n\t\t\tconst newKey = existing.letter !== undefined ? existing.letter : string.fromCodePoint(key);\n\t\t\tif (data.version < 2) {\n\t\t\t\texisting.map = existing.map || 0;\n\t\t\t}\n\t\t\tnewChars[newKey] = existing;\n\t\t\treturn newChars;\n\t\t}, {});\n\t\tdata.version = 3;\n\t}\n\treturn data;\n}\nclass FontHandler extends ResourceHandler {\n\tconstructor(app) {\n\t\tsuper(app, 'font');\n\t\tthis._loader = app.loader;\n\t\tthis.maxRetries = 0;\n\t}\n\tload(url, callback, asset) {\n\t\tif (typeof url === 'string') {\n\t\t\turl = {\n\t\t\t\tload: url,\n\t\t\t\toriginal: url\n\t\t\t};\n\t\t}\n\t\tconst self = this;\n\t\tif (path.getExtension(url.original) === '.json') {\n\t\t\thttp.get(url.load, {\n\t\t\t\tretry: this.maxRetries > 0,\n\t\t\t\tmaxRetries: this.maxRetries\n\t\t\t}, (err, response) => {\n\t\t\t\tif (!err) {\n\t\t\t\t\tconst data = upgradeDataSchema(response);\n\t\t\t\t\tself._loadTextures(url.load.replace('.json', '.png'), data, (err, textures) => {\n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\tcallback(err);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcallback(null, {\n\t\t\t\t\t\t\t\tdata: data,\n\t\t\t\t\t\t\t\ttextures: textures\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tcallback(`Error loading font resource: ${url.original} [${err}]`);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tif (asset && asset.data) {\n\t\t\t\tasset.data = upgradeDataSchema(asset.data);\n\t\t\t}\n\t\t\tthis._loadTextures(url.load, asset && asset.data, callback);\n\t\t}\n\t}\n\t_loadTextures(url, data, callback) {\n\t\tconst numTextures = data.info.maps.length;\n\t\tlet numLoaded = 0;\n\t\tlet error = null;\n\t\tconst textures = new Array(numTextures);\n\t\tconst loader = this._loader;\n\t\tconst loadTexture = function loadTexture(index) {\n\t\t\tconst onLoaded = function onLoaded(err, texture) {\n\t\t\t\tif (error) return;\n\t\t\t\tif (err) {\n\t\t\t\t\terror = err;\n\t\t\t\t\tcallback(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\ttexture.upload();\n\t\t\t\ttextures[index] = texture;\n\t\t\t\tnumLoaded++;\n\t\t\t\tif (numLoaded === numTextures) {\n\t\t\t\t\tcallback(null, textures);\n\t\t\t\t}\n\t\t\t};\n\t\t\tif (index === 0) {\n\t\t\t\tloader.load(url, 'texture', onLoaded);\n\t\t\t} else {\n\t\t\t\tloader.load(url.replace('.png', `${index}.png`), 'texture', onLoaded);\n\t\t\t}\n\t\t};\n\t\tfor (let i = 0; i < numTextures; i++) {\n\t\t\tloadTexture(i);\n\t\t}\n\t}\n\topen(url, data, asset) {\n\t\tlet font;\n\t\tif (data.textures) {\n\t\t\tfont = new Font(data.textures, data.data);\n\t\t} else {\n\t\t\tfont = new Font(data, null);\n\t\t}\n\t\treturn font;\n\t}\n\tpatch(asset, assets) {\n\t\tconst font = asset.resource;\n\t\tif (!font.data && asset.data) {\n\t\t\tfont.data = asset.data;\n\t\t} else if (!asset.data && font.data) {\n\t\t\tasset.data = font.data;\n\t\t}\n\t\tif (asset.data) {\n\t\t\tasset.data = upgradeDataSchema(asset.data);\n\t\t}\n\t}\n}\n\nconst SH_C0 = 0.28209479177387814;\nclass SplatCompressedIterator {\n\tconstructor(gsplatData, p, r, s, c, sh) {\n\t\tconst unpackUnorm = (value, bits) => {\n\t\t\tconst t = (1 << bits) - 1;\n\t\t\treturn (value & t) / t;\n\t\t};\n\t\tconst unpack111011 = (result, value) => {\n\t\t\tresult.x = unpackUnorm(value >>> 21, 11);\n\t\t\tresult.y = unpackUnorm(value >>> 11, 10);\n\t\t\tresult.z = unpackUnorm(value, 11);\n\t\t};\n\t\tconst unpack8888 = (result, value) => {\n\t\t\tresult.x = unpackUnorm(value >>> 24, 8);\n\t\t\tresult.y = unpackUnorm(value >>> 16, 8);\n\t\t\tresult.z = unpackUnorm(value >>> 8, 8);\n\t\t\tresult.w = unpackUnorm(value, 8);\n\t\t};\n\t\tconst unpackRot = (result, value) => {\n\t\t\tconst norm = 1.0 / (Math.sqrt(2) * 0.5);\n\t\t\tconst a = (unpackUnorm(value >>> 20, 10) - 0.5) * norm;\n\t\t\tconst b = (unpackUnorm(value >>> 10, 10) - 0.5) * norm;\n\t\t\tconst c = (unpackUnorm(value, 10) - 0.5) * norm;\n\t\t\tconst m = Math.sqrt(1.0 - (a * a + b * b + c * c));\n\t\t\tswitch (value >>> 30) {\n\t\t\t\tcase 0:\n\t\t\t\t\tresult.set(a, b, c, m);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\t\tresult.set(m, b, c, a);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 2:\n\t\t\t\t\tresult.set(b, m, c, a);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 3:\n\t\t\t\t\tresult.set(b, c, m, a);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\t\tconst lerp = (a, b, t) => {\n\t\t\treturn a === b ? a : a * (1 - t) + b * t;\n\t\t};\n\t\tconst {\n\t\t\tchunkData,\n\t\t\tchunkSize,\n\t\t\tvertexData,\n\t\t\tshData,\n\t\t\tshBands\n\t\t} = gsplatData;\n\t\tconst shCoeffs = [3, 8, 15][shBands - 1];\n\t\tthis.read = i => {\n\t\t\tconst ci = Math.floor(i / 256) * chunkSize;\n\t\t\tif (p) {\n\t\t\t\tunpack111011(p, vertexData[i * 4 + 0]);\n\t\t\t\tp.x = lerp(chunkData[ci + 0], chunkData[ci + 3], p.x);\n\t\t\t\tp.y = lerp(chunkData[ci + 1], chunkData[ci + 4], p.y);\n\t\t\t\tp.z = lerp(chunkData[ci + 2], chunkData[ci + 5], p.z);\n\t\t\t}\n\t\t\tif (r) {\n\t\t\t\tunpackRot(r, vertexData[i * 4 + 1]);\n\t\t\t}\n\t\t\tif (s) {\n\t\t\t\tunpack111011(s, vertexData[i * 4 + 2]);\n\t\t\t\ts.x = lerp(chunkData[ci + 6], chunkData[ci + 9], s.x);\n\t\t\t\ts.y = lerp(chunkData[ci + 7], chunkData[ci + 10], s.y);\n\t\t\t\ts.z = lerp(chunkData[ci + 8], chunkData[ci + 11], s.z);\n\t\t\t}\n\t\t\tif (c) {\n\t\t\t\tunpack8888(c, vertexData[i * 4 + 3]);\n\t\t\t\tif (chunkSize > 12) {\n\t\t\t\t\tc.x = lerp(chunkData[ci + 12], chunkData[ci + 15], c.x);\n\t\t\t\t\tc.y = lerp(chunkData[ci + 13], chunkData[ci + 16], c.y);\n\t\t\t\t\tc.z = lerp(chunkData[ci + 14], chunkData[ci + 17], c.z);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (sh && shBands > 0) {\n\t\t\t\tfor (let j = 0; j < 3; ++j) {\n\t\t\t\t\tfor (let k = 0; k < 15; ++k) {\n\t\t\t\t\t\tsh[j * 15 + k] = k < shCoeffs ? shData[(i * 3 + j) * shCoeffs + k] * (8 / 255) - 4 : 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n}\nclass GSplatCompressedData {\n\tconstructor() {\n\t\tthis.numSplats = void 0;\n\t\tthis.chunkData = void 0;\n\t\tthis.vertexData = void 0;\n\t\tthis.shData = void 0;\n\t}\n\tcreateIter(p, r, s, c, sh) {\n\t\treturn new SplatCompressedIterator(this, p, r, s, c, sh);\n\t}\n\tcalcAabb(result) {\n\t\tconst {\n\t\t\tchunkData,\n\t\t\tnumChunks,\n\t\t\tchunkSize\n\t\t} = this;\n\t\tlet s = Math.exp(Math.max(chunkData[9], chunkData[10], chunkData[11]));\n\t\tlet mx = chunkData[0] - s;\n\t\tlet my = chunkData[1] - s;\n\t\tlet mz = chunkData[2] - s;\n\t\tlet Mx = chunkData[3] + s;\n\t\tlet My = chunkData[4] + s;\n\t\tlet Mz = chunkData[5] + s;\n\t\tfor (let i = 1; i < numChunks; ++i) {\n\t\t\tconst off = i * chunkSize;\n\t\t\ts = Math.exp(Math.max(chunkData[off + 9], chunkData[off + 10], chunkData[off + 11]));\n\t\t\tmx = Math.min(mx, chunkData[off + 0] - s);\n\t\t\tmy = Math.min(my, chunkData[off + 1] - s);\n\t\t\tmz = Math.min(mz, chunkData[off + 2] - s);\n\t\t\tMx = Math.max(Mx, chunkData[off + 3] + s);\n\t\t\tMy = Math.max(My, chunkData[off + 4] + s);\n\t\t\tMz = Math.max(Mz, chunkData[off + 5] + s);\n\t\t}\n\t\tresult.center.set((mx + Mx) * 0.5, (my + My) * 0.5, (mz + Mz) * 0.5);\n\t\tresult.halfExtents.set((Mx - mx) * 0.5, (My - my) * 0.5, (Mz - mz) * 0.5);\n\t\treturn true;\n\t}\n\tgetCenters(result) {\n\t\tconst {\n\t\t\tvertexData,\n\t\t\tchunkData,\n\t\t\tnumChunks,\n\t\t\tchunkSize\n\t\t} = this;\n\t\tlet mx, my, mz, Mx, My, Mz;\n\t\tfor (let c = 0; c < numChunks; ++c) {\n\t\t\tconst off = c * chunkSize;\n\t\t\tmx = chunkData[off + 0];\n\t\t\tmy = chunkData[off + 1];\n\t\t\tmz = chunkData[off + 2];\n\t\t\tMx = chunkData[off + 3];\n\t\t\tMy = chunkData[off + 4];\n\t\t\tMz = chunkData[off + 5];\n\t\t\tconst end = Math.min(this.numSplats, (c + 1) * 256);\n\t\t\tfor (let i = c * 256; i < end; ++i) {\n\t\t\t\tconst p = vertexData[i * 4];\n\t\t\t\tconst px = (p >>> 21) / 2047;\n\t\t\t\tconst py = (p >>> 11 & 0x3ff) / 1023;\n\t\t\t\tconst pz = (p & 0x7ff) / 2047;\n\t\t\t\tresult[i * 3 + 0] = (1 - px) * mx + px * Mx;\n\t\t\t\tresult[i * 3 + 1] = (1 - py) * my + py * My;\n\t\t\t\tresult[i * 3 + 2] = (1 - pz) * mz + pz * Mz;\n\t\t\t}\n\t\t}\n\t}\n\tcalcFocalPoint(result) {\n\t\tconst {\n\t\t\tchunkData,\n\t\t\tnumChunks,\n\t\t\tchunkSize\n\t\t} = this;\n\t\tresult.x = 0;\n\t\tresult.y = 0;\n\t\tresult.z = 0;\n\t\tfor (let i = 0; i < numChunks; ++i) {\n\t\t\tconst off = i * chunkSize;\n\t\t\tresult.x += chunkData[off + 0] + chunkData[off + 3];\n\t\t\tresult.y += chunkData[off + 1] + chunkData[off + 4];\n\t\t\tresult.z += chunkData[off + 2] + chunkData[off + 5];\n\t\t}\n\t\tresult.mulScalar(0.5 / numChunks);\n\t}\n\tget isCompressed() {\n\t\treturn true;\n\t}\n\tget numChunks() {\n\t\treturn Math.ceil(this.numSplats / 256);\n\t}\n\tget chunkSize() {\n\t\treturn this.chunkData.length / this.numChunks;\n\t}\n\tget shBands() {\n\t\tvar _sizes, _this$shData;\n\t\tconst sizes = {\n\t\t\t3: 1,\n\t\t\t8: 2,\n\t\t\t15: 3\n\t\t};\n\t\treturn (_sizes = sizes[((_this$shData = this.shData) == null ? void 0 : _this$shData.length) / this.numSplats / 3]) != null ? _sizes : 0;\n\t}\n\tdecompress() {\n\t\tconst members = ['x', 'y', 'z', 'f_dc_0', 'f_dc_1', 'f_dc_2', 'opacity', 'rot_0', 'rot_1', 'rot_2', 'rot_3', 'scale_0', 'scale_1', 'scale_2'];\n\t\tconst {\n\t\t\tshBands\n\t\t} = this;\n\t\tif (shBands > 0) {\n\t\t\tconst shMembers = [];\n\t\t\tfor (let i = 0; i < 45; ++i) {\n\t\t\t\tshMembers.push(`f_rest_${i}`);\n\t\t\t}\n\t\t\tmembers.splice(members.indexOf('f_dc_0') + 1, 0, ...shMembers);\n\t\t}\n\t\tconst data = {};\n\t\tmembers.forEach(name => {\n\t\t\tdata[name] = new Float32Array(this.numSplats);\n\t\t});\n\t\tconst p = new Vec3();\n\t\tconst r = new Quat();\n\t\tconst s = new Vec3();\n\t\tconst c = new Vec4();\n\t\tconst sh = shBands > 0 ? new Float32Array(45) : null;\n\t\tconst iter = this.createIter(p, r, s, c, sh);\n\t\tfor (let i = 0; i < this.numSplats; ++i) {\n\t\t\titer.read(i);\n\t\t\tdata.x[i] = p.x;\n\t\t\tdata.y[i] = p.y;\n\t\t\tdata.z[i] = p.z;\n\t\t\tdata.rot_1[i] = r.x;\n\t\t\tdata.rot_2[i] = r.y;\n\t\t\tdata.rot_3[i] = r.z;\n\t\t\tdata.rot_0[i] = r.w;\n\t\t\tdata.scale_0[i] = s.x;\n\t\t\tdata.scale_1[i] = s.y;\n\t\t\tdata.scale_2[i] = s.z;\n\t\t\tdata.f_dc_0[i] = (c.x - 0.5) / SH_C0;\n\t\t\tdata.f_dc_1[i] = (c.y - 0.5) / SH_C0;\n\t\t\tdata.f_dc_2[i] = (c.z - 0.5) / SH_C0;\n\t\t\tdata.opacity[i] = c.w <= 0 ? -40 : c.w >= 1 ? 40 : -Math.log(1 / c.w - 1);\n\t\t\tif (sh) {\n\t\t\t\tfor (let _c = 0; _c < 45; ++_c) {\n\t\t\t\t\tdata[`f_rest_${_c}`][i] = sh[_c];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn new GSplatData([{\n\t\t\tname: 'vertex',\n\t\t\tcount: this.numSplats,\n\t\t\tproperties: members.map(name => {\n\t\t\t\treturn {\n\t\t\t\t\tname: name,\n\t\t\t\t\ttype: 'float',\n\t\t\t\t\tbyteSize: 4,\n\t\t\t\t\tstorage: data[name]\n\t\t\t\t};\n\t\t\t})\n\t\t}]);\n\t}\n}\n\nconst splatCoreVS = `\n\tuniform mat4 matrix_model;\n\tuniform mat4 matrix_view;\n\tuniform mat4 matrix_projection;\n\tuniform vec2 viewport;\n\tuniform vec4 tex_params;\n\tuniform highp usampler2D splatOrder;\n\tuniform highp usampler2D packedTexture;\n\tuniform highp sampler2D chunkTexture;\n\tattribute vec3 vertex_position;\n\tattribute uint vertex_id_attrib;\n\t#ifndef DITHER_NONE\n\t\tvarying float id;\n\t#endif\n\tuint orderId;\n\tuint splatId;\n\tivec2 packedUV;\n\tivec2 chunkUV;\n\tvec4 chunkDataA;\n\tvec4 chunkDataB;\n\tvec4 chunkDataC;\n\tvec4 chunkDataD;\n\tvec4 chunkDataE;\n\tuvec4 packedData;\n\tbool calcSplatUV() {\n\t\tuint numSplats = uint(tex_params.x);\n\t\tuint packedWidth = uint(tex_params.y);\n\t\tuint chunkWidth = uint(tex_params.z);\n\t\torderId = vertex_id_attrib + uint(vertex_position.z);\n\t\tif (orderId >= numSplats) {\n\t\t\treturn false;\n\t\t}\n\t\tivec2 orderUV = ivec2(\n\t\t\tint(orderId % packedWidth),\n\t\t\tint(orderId / packedWidth)\n\t\t);\n\t\tsplatId = texelFetch(splatOrder, orderUV, 0).r;\n\t\tpackedUV = ivec2(\n\t\t\tint(splatId % packedWidth),\n\t\t\tint(splatId / packedWidth)\n\t\t);\n\t\tuint chunkId = splatId / 256u;\n\t\tchunkUV = ivec2(\n\t\t\tint((chunkId % chunkWidth) * 5u),\n\t\t\tint(chunkId / chunkWidth)\n\t\t);\n\t\treturn true;\n\t}\n\tvoid readData() {\n\t\tchunkDataA = texelFetch(chunkTexture, chunkUV, 0);\n\t\tchunkDataB = texelFetch(chunkTexture, ivec2(chunkUV.x + 1, chunkUV.y), 0);\n\t\tchunkDataC = texelFetch(chunkTexture, ivec2(chunkUV.x + 2, chunkUV.y), 0);\n\t\tchunkDataD = texelFetch(chunkTexture, ivec2(chunkUV.x + 3, chunkUV.y), 0);\n\t\tchunkDataE = texelFetch(chunkTexture, ivec2(chunkUV.x + 4, chunkUV.y), 0);\n\t\tpackedData = texelFetch(packedTexture, packedUV, 0);\n\t}\n\tvec3 unpack111011(uint bits) {\n\t\treturn vec3(\n\t\t\tfloat(bits >> 21u) / 2047.0,\n\t\t\tfloat((bits >> 11u) & 0x3ffu) / 1023.0,\n\t\t\tfloat(bits & 0x7ffu) / 2047.0\n\t\t);\n\t}\n\tvec4 unpack8888(uint bits) {\n\t\treturn vec4(\n\t\t\tfloat(bits >> 24u) / 255.0,\n\t\t\tfloat((bits >> 16u) & 0xffu) / 255.0,\n\t\t\tfloat((bits >> 8u) & 0xffu) / 255.0,\n\t\t\tfloat(bits & 0xffu) / 255.0\n\t\t);\n\t}\n\tfloat norm = 1.0 / (sqrt(2.0) * 0.5);\n\tvec4 unpackRotation(uint bits) {\n\t\tfloat a = (float((bits >> 20u) & 0x3ffu) / 1023.0 - 0.5) * norm;\n\t\tfloat b = (float((bits >> 10u) & 0x3ffu) / 1023.0 - 0.5) * norm;\n\t\tfloat c = (float(bits & 0x3ffu) / 1023.0 - 0.5) * norm;\n\t\tfloat m = sqrt(1.0 - (a * a + b * b + c * c));\n\t\tuint mode = bits >> 30u;\n\t\tif (mode == 0u) return vec4(m, a, b, c);\n\t\tif (mode == 1u) return vec4(a, m, b, c);\n\t\tif (mode == 2u) return vec4(a, b, m, c);\n\t\treturn vec4(a, b, c, m);\n\t}\n\tvec3 getCenter() {\n\t\treturn mix(chunkDataA.xyz, vec3(chunkDataA.w, chunkDataB.xy), unpack111011(packedData.x));\n\t}\n\tvec4 getRotation() {\n\t\treturn unpackRotation(packedData.y);\n\t}\n\tvec3 getScale() {\n\t\treturn exp(mix(vec3(chunkDataB.zw, chunkDataC.x), chunkDataC.yzw, unpack111011(packedData.z)));\n\t}\n\tvec4 getColor() {\n\t\tvec4 r = unpack8888(packedData.w);\n\t\treturn vec4(mix(chunkDataD.xyz, vec3(chunkDataD.w, chunkDataE.xy), r.rgb), r.w);\n\t}\n\tmat3 quatToMat3(vec4 R) {\n\t\tfloat x = R.x;\n\t\tfloat y = R.y;\n\t\tfloat z = R.z;\n\t\tfloat w = R.w;\n\t\treturn mat3(\n\t\t\t1.0 - 2.0 * (z * z + w * w),\n\t\t\t\t  2.0 * (y * z + x * w),\n\t\t\t\t  2.0 * (y * w - x * z),\n\t\t\t\t  2.0 * (y * z - x * w),\n\t\t\t1.0 - 2.0 * (y * y + w * w),\n\t\t\t\t  2.0 * (z * w + x * y),\n\t\t\t\t  2.0 * (y * w + x * z),\n\t\t\t\t  2.0 * (z * w - x * y),\n\t\t\t1.0 - 2.0 * (y * y + z * z)\n\t\t);\n\t}\n\tvoid getCovariance(out vec3 covA, out vec3 covB) {\n\t\tmat3 rot = quatToMat3(getRotation());\n\t\tvec3 scale = getScale();\n\t\tmat3 M = transpose(mat3(\n\t\t\tscale.x * rot[0],\n\t\t\tscale.y * rot[1],\n\t\t\tscale.z * rot[2]\n\t\t));\n\t\tcovA = vec3(dot(M[0], M[0]), dot(M[0], M[1]), dot(M[0], M[2]));\n\t\tcovB = vec3(dot(M[1], M[1]), dot(M[1], M[2]), dot(M[2], M[2]));\n\t}\n\tvec4 calcV1V2(in vec3 splat_cam, in vec3 covA, in vec3 covB, mat3 W) {\n\t\tmat3 Vrk = mat3(\n\t\t\tcovA.x, covA.y, covA.z, \n\t\t\tcovA.y, covB.x, covB.y,\n\t\t\tcovA.z, covB.y, covB.z\n\t\t);\n\t\tfloat focal = viewport.x * matrix_projection[0][0];\n\t\tfloat J1 = focal / splat_cam.z;\n\t\tvec2 J2 = -J1 / splat_cam.z * splat_cam.xy;\n\t\tmat3 J = mat3(\n\t\t\tJ1, 0.0, J2.x, \n\t\t\t0.0, J1, J2.y, \n\t\t\t0.0, 0.0, 0.0\n\t\t);\n\t\tmat3 T = W * J;\n\t\tmat3 cov = transpose(T) * Vrk * T;\n\t\tfloat diagonal1 = cov[0][0] + 0.3;\n\t\tfloat offDiagonal = cov[0][1];\n\t\tfloat diagonal2 = cov[1][1] + 0.3;\n\t\tfloat mid = 0.5 * (diagonal1 + diagonal2);\n\t\tfloat radius = length(vec2((diagonal1 - diagonal2) / 2.0, offDiagonal));\n\t\tfloat lambda1 = mid + radius;\n\t\tfloat lambda2 = max(mid - radius, 0.1);\n\t\tvec2 diagonalVector = normalize(vec2(offDiagonal, lambda1 - diagonal1));\n\t\tvec2 v1 = min(sqrt(2.0 * lambda1), 1024.0) * diagonalVector;\n\t\tvec2 v2 = min(sqrt(2.0 * lambda2), 1024.0) * vec2(diagonalVector.y, -diagonalVector.x);\n\t\treturn vec4(v1, v2);\n\t}\n#if defined(USE_SH)\n\t#define SH_C1 0.4886025119029199f\n\t#define SH_C2_0 1.0925484305920792f\n\t#define SH_C2_1 -1.0925484305920792f\n\t#define SH_C2_2 0.31539156525252005f\n\t#define SH_C2_3 -1.0925484305920792f\n\t#define SH_C2_4 0.5462742152960396f\n\t#define SH_C3_0 -0.5900435899266435f\n\t#define SH_C3_1 2.890611442640554f\n\t#define SH_C3_2 -0.4570457994644658f\n\t#define SH_C3_3 0.3731763325901154f\n\t#define SH_C3_4 -0.4570457994644658f\n\t#define SH_C3_5 1.445305721320277f\n\t#define SH_C3_6 -0.5900435899266435f\n\tuniform highp usampler2D shTexture0;\n\tuniform highp usampler2D shTexture1;\n\tuniform highp usampler2D shTexture2;\n\tvec4 sunpack8888(in uint bits) {\n\t\treturn vec4((uvec4(bits) >> uvec4(0u, 8u, 16u, 24u)) & 0xffu) * (8.0 / 255.0) - 4.0;\n\t}\n\tvoid readSHData(out vec3 sh[15]) {\n\t\tuvec4 shData0 = texelFetch(shTexture0, packedUV, 0);\n\t\tuvec4 shData1 = texelFetch(shTexture1, packedUV, 0);\n\t\tuvec4 shData2 = texelFetch(shTexture2, packedUV, 0);\n\t\tvec4 r0 = sunpack8888(shData0.x);\n\t\tvec4 r1 = sunpack8888(shData0.y);\n\t\tvec4 r2 = sunpack8888(shData0.z);\n\t\tvec4 r3 = sunpack8888(shData0.w);\n\t\tvec4 g0 = sunpack8888(shData1.x);\n\t\tvec4 g1 = sunpack8888(shData1.y);\n\t\tvec4 g2 = sunpack8888(shData1.z);\n\t\tvec4 g3 = sunpack8888(shData1.w);\n\t\tvec4 b0 = sunpack8888(shData2.x);\n\t\tvec4 b1 = sunpack8888(shData2.y);\n\t\tvec4 b2 = sunpack8888(shData2.z);\n\t\tvec4 b3 = sunpack8888(shData2.w);\n\t\tsh[0] =  vec3(r0.x, g0.x, b0.x);\n\t\tsh[1] =  vec3(r0.y, g0.y, b0.y);\n\t\tsh[2] =  vec3(r0.z, g0.z, b0.z);\n\t\tsh[3] =  vec3(r0.w, g0.w, b0.w);\n\t\tsh[4] =  vec3(r1.x, g1.x, b1.x);\n\t\tsh[5] =  vec3(r1.y, g1.y, b1.y);\n\t\tsh[6] =  vec3(r1.z, g1.z, b1.z);\n\t\tsh[7] =  vec3(r1.w, g1.w, b1.w);\n\t\tsh[8] =  vec3(r2.x, g2.x, b2.x);\n\t\tsh[9] =  vec3(r2.y, g2.y, b2.y);\n\t\tsh[10] = vec3(r2.z, g2.z, b2.z);\n\t\tsh[11] = vec3(r2.w, g2.w, b2.w);\n\t\tsh[12] = vec3(r3.x, g3.x, b3.x);\n\t\tsh[13] = vec3(r3.y, g3.y, b3.y);\n\t\tsh[14] = vec3(r3.z, g3.z, b3.z);\n\t}\n\tvec3 evalSH(in vec3 dir) {\n\t\tvec3 sh[15];\n\t\treadSHData(sh);\n\t\tvec3 result = vec3(0.0);\n\t\tfloat x = dir.x;\n\t\tfloat y = dir.y;\n\t\tfloat z = dir.z;\n\t\tresult += SH_C1 * (-sh[0] * y + sh[1] * z - sh[2] * x);\n\t\tfloat xx = x * x;\n\t\tfloat yy = y * y;\n\t\tfloat zz = z * z;\n\t\tfloat xy = x * y;\n\t\tfloat yz = y * z;\n\t\tfloat xz = x * z;\n\t\tresult +=\n\t\t\tsh[3] * (SH_C2_0 * xy) *  +\n\t\t\tsh[4] * (SH_C2_1 * yz) +\n\t\t\tsh[5] * (SH_C2_2 * (2.0 * zz - xx - yy)) +\n\t\t\tsh[6] * (SH_C2_3 * xz) +\n\t\t\tsh[7] * (SH_C2_4 * (xx - yy));\n\t\tresult +=\n\t\t\tsh[8]  * (SH_C3_0 * y * (3.0 * xx - yy)) +\n\t\t\tsh[9]  * (SH_C3_1 * xy * z) +\n\t\t\tsh[10] * (SH_C3_2 * y * (4.0 * zz - xx - yy)) +\n\t\t\tsh[11] * (SH_C3_3 * z * (2.0 * zz - 3.0 * xx - 3.0 * yy)) +\n\t\t\tsh[12] * (SH_C3_4 * x * (4.0 * zz - xx - yy)) +\n\t\t\tsh[13] * (SH_C3_5 * z * (xx - yy)) +\n\t\t\tsh[14] * (SH_C3_6 * x * (xx - 3.0 * yy));\n\t\treturn result;\n\t}\n#else\n\tvec3 evalSH(in vec3 dir) {\n\t\treturn vec3(0.0);\n\t}\n#endif\n`;\nconst splatCoreFS = `\n\t#ifndef DITHER_NONE\n\t\tvarying float id;\n\t#endif\n\t#ifdef PICK_PASS\n\t\tuniform vec4 uColor;\n\t#endif\n\tvec4 evalSplat(vec2 texCoord, vec4 color) {\n\t\tmediump float A = dot(texCoord, texCoord);\n\t\tif (A > 1.0) {\n\t\t\tdiscard;\n\t\t}\n\t\tmediump float B = exp(-A * 4.0) * color.a;\n\t\tif (B < 1.0 / 255.0) {\n\t\t\tdiscard;\n\t\t}\n\t\t#ifdef PICK_PASS\n\t\t\tif (B < 0.3) {\n\t\t\t\tdiscard;\n\t\t\t}\n\t\t\treturn uColor;\n\t\t#endif\n\t\t#ifndef DITHER_NONE\n\t\t\topacityDither(B, id * 0.013);\n\t\t#endif\n\t\t#ifdef TONEMAP_ENABLED\n\t\t\treturn vec4(gammaCorrectOutput(toneMap(decodeGamma(color.rgb))), B);\n\t\t#else\n\t\t\treturn vec4(color.rgb, B);\n\t\t#endif\n\t}\n`;\nclass GSplatCompressedShaderGenerator {\n\tgenerateKey(options) {\n\t\tvar _options$defines$sort, _options$defines;\n\t\tconst vsHash = hashCode(options.vertex);\n\t\tconst fsHash = hashCode(options.fragment);\n\t\tconst defines = (_options$defines$sort = (_options$defines = options.defines) == null ? void 0 : _options$defines.sort().join('-')) != null ? _options$defines$sort : '';\n\t\treturn `splat-${options.pass}-${options.gamma}-${options.toneMapping}-${vsHash}-${fsHash}-${options.dither}-${defines}`;\n\t}\n\tcreateShaderDefinition(device, options) {\n\t\tvar _options$defines2;\n\t\tconst shaderPassInfo = ShaderPass.get(device).getByIndex(options.pass);\n\t\tconst shaderPassDefines = shaderPassInfo.shaderDefines;\n\t\tconst optionDefines = ((_options$defines2 = options.defines) != null ? _options$defines2 : []).map(d => `#define ${d}`).join('\\n');\n\t\tconst defines = `${shaderPassDefines}\\n` + `${optionDefines}\\n` + `#define DITHER_${options.dither.toUpperCase()}\\n` + `#define TONEMAP_${options.toneMapping === TONEMAP_LINEAR ? 'DISABLED' : 'ENABLED'}\\n`;\n\t\tconst vs = defines + splatCoreVS + options.vertex;\n\t\tconst fs = defines + shaderChunks.decodePS + (options.dither === DITHER_NONE ? '' : shaderChunks.bayerPS + shaderChunks.opacityDitherPS) + ShaderGenerator.tonemapCode(options.toneMapping) + ShaderGenerator.gammaCode(options.gamma) + splatCoreFS + options.fragment;\n\t\treturn ShaderUtils.createDefinition(device, {\n\t\t\tname: 'SplatShader',\n\t\t\tattributes: {\n\t\t\t\tvertex_position: SEMANTIC_POSITION,\n\t\t\t\tvertex_id_attrib: SEMANTIC_ATTR13\n\t\t\t},\n\t\t\tvertexCode: vs,\n\t\t\tfragmentCode: fs\n\t\t});\n\t}\n}\nconst gsplatCompressed = new GSplatCompressedShaderGenerator();\nconst splatMainVS = `\n\tvarying mediump vec2 texCoord;\n\tvarying mediump vec4 color;\n\tuniform vec3 view_position;\n\tmediump vec4 discardVec = vec4(0.0, 0.0, 2.0, 1.0);\n\tvoid main(void)\n\t{\n\t\tif (!calcSplatUV()) {\n\t\t\tgl_Position = discardVec;\n\t\t\treturn;\n\t\t}\n\t\treadData();\n\t\tvec3 center = getCenter();\n\t\tmat4 model_view = matrix_view * matrix_model;\n\t\tvec4 splat_cam = model_view * vec4(center, 1.0);\n\t\tvec4 splat_proj = matrix_projection * splat_cam;\n\t\tif (splat_proj.z < -splat_proj.w) {\n\t\t\tgl_Position = discardVec;\n\t\t\treturn;\n\t\t}\n\t\tvec3 covA, covB;\n\t\tgetCovariance(covA, covB);\n\t\tvec4 v1v2 = calcV1V2(splat_cam.xyz, covA, covB, transpose(mat3(model_view)));\n\t\tcolor = getColor();\n\t\tfloat scale = min(1.0, sqrt(-log(1.0 / 255.0 / color.a)) / 2.0);\n\t\tv1v2 *= scale;\n\t\tif (dot(v1v2.xy, v1v2.xy) < 4.0 && dot(v1v2.zw, v1v2.zw) < 4.0) {\n\t\t\tgl_Position = discardVec;\n\t\t\treturn;\n\t\t}\n\t\tgl_Position = splat_proj + vec4((vertex_position.x * v1v2.xy + vertex_position.y * v1v2.zw) / viewport * splat_proj.w, 0, 0);\n\t\ttexCoord = vertex_position.xy * scale / 2.0;\n\t\t#ifdef USE_SH\n\t\t\tvec4 worldCenter = matrix_model * vec4(center, 1.0);\n\t\t\tvec3 viewDir = normalize((worldCenter.xyz / worldCenter.w - view_position) * mat3(matrix_model));\n\t\t\tcolor.xyz = max(color.xyz + evalSH(viewDir), 0.0);\n\t\t#endif\n\t\t#ifndef DITHER_NONE\n\t\t\tid = float(splatId);\n\t\t#endif\n\t}\n`;\nconst splatMainFS = `\n\tvarying mediump vec2 texCoord;\n\tvarying mediump vec4 color;\n\tvoid main(void)\n\t{\n\t\tgl_FragColor = evalSplat(texCoord, color);\n\t}\n`;\nconst createGSplatCompressedMaterial = (options = {}) => {\n\tvar _options$dither;\n\tconst ditherEnum = (_options$dither = options.dither) != null ? _options$dither : DITHER_NONE;\n\tconst dither = ditherEnum !== DITHER_NONE;\n\tconst material = new Material();\n\tmaterial.name = 'compressedSplatMaterial';\n\tmaterial.cull = CULLFACE_NONE;\n\tmaterial.blendType = dither ? BLEND_NONE : BLEND_NORMAL;\n\tmaterial.depthWrite = dither;\n\tmaterial.getShaderVariant = function (device, scene, defs, unused, pass, sortedLights, viewUniformFormat, viewBindGroupFormat) {\n\t\tvar _options$vertex, _options$fragment;\n\t\tconst programOptions = {\n\t\t\tpass: pass,\n\t\t\tgamma: pass === SHADER_FORWARDHDR ? scene.gammaCorrection ? GAMMA_SRGBHDR : GAMMA_NONE : scene.gammaCorrection,\n\t\t\ttoneMapping: pass === SHADER_FORWARDHDR ? TONEMAP_LINEAR : scene.toneMapping,\n\t\t\tvertex: (_options$vertex = options.vertex) != null ? _options$vertex : splatMainVS,\n\t\t\tfragment: (_options$fragment = options.fragment) != null ? _options$fragment : splatMainFS,\n\t\t\tdither: ditherEnum,\n\t\t\tdefines: options.defines\n\t\t};\n\t\tconst processingOptions = new ShaderProcessorOptions(viewUniformFormat, viewBindGroupFormat);\n\t\tconst library = getProgramLibrary(device);\n\t\tlibrary.register('splat-compressed', gsplatCompressed);\n\t\treturn library.getProgram('splat-compressed', programOptions, processingOptions);\n\t};\n\tmaterial.update();\n\treturn material;\n};\n\nconst strideCopy = (target, targetStride, src, srcStride, numEntries) => {\n\tfor (let i = 0; i < numEntries; ++i) {\n\t\tfor (let j = 0; j < srcStride; ++j) {\n\t\t\ttarget[i * targetStride + j] = src[i * srcStride + j];\n\t\t}\n\t}\n};\nclass GSplatCompressed {\n\tconstructor(device, gsplatData) {\n\t\tthis.device = void 0;\n\t\tthis.numSplats = void 0;\n\t\tthis.aabb = void 0;\n\t\tthis.centers = void 0;\n\t\tthis.packedTexture = void 0;\n\t\tthis.chunkTexture = void 0;\n\t\tthis.shTexture0 = void 0;\n\t\tthis.shTexture1 = void 0;\n\t\tthis.shTexture2 = void 0;\n\t\tconst {\n\t\t\tchunkData,\n\t\t\tchunkSize,\n\t\t\tnumChunks,\n\t\t\tnumSplats,\n\t\t\tvertexData,\n\t\t\tshBands\n\t\t} = gsplatData;\n\t\tthis.device = device;\n\t\tthis.numSplats = numSplats;\n\t\tthis.aabb = new BoundingBox();\n\t\tgsplatData.calcAabb(this.aabb);\n\t\tthis.centers = new Float32Array(numSplats * 3);\n\t\tgsplatData.getCenters(this.centers);\n\t\tthis.packedTexture = this.createTexture('packedData', PIXELFORMAT_RGBA32U, this.evalTextureSize(numSplats), vertexData);\n\t\tconst chunkTextureSize = this.evalTextureSize(numChunks);\n\t\tchunkTextureSize.x *= 5;\n\t\tthis.chunkTexture = this.createTexture('chunkData', PIXELFORMAT_RGBA32F, chunkTextureSize);\n\t\tconst chunkTextureData = this.chunkTexture.lock();\n\t\tstrideCopy(chunkTextureData, 20, chunkData, chunkSize, numChunks);\n\t\tif (chunkSize === 12) {\n\t\t\tfor (let i = 0; i < numChunks; ++i) {\n\t\t\t\tchunkTextureData[i * 20 + 15] = 1;\n\t\t\t\tchunkTextureData[i * 20 + 16] = 1;\n\t\t\t\tchunkTextureData[i * 20 + 17] = 1;\n\t\t\t}\n\t\t}\n\t\tthis.chunkTexture.unlock();\n\t\tif (shBands > 0) {\n\t\t\tconst {\n\t\t\t\tshData\n\t\t\t} = gsplatData;\n\t\t\tconst size = this.evalTextureSize(numSplats);\n\t\t\tconst texture0 = this.createTexture('shTexture0', PIXELFORMAT_RGBA32U, size);\n\t\t\tconst texture1 = this.createTexture('shTexture1', PIXELFORMAT_RGBA32U, size);\n\t\t\tconst texture2 = this.createTexture('shTexture2', PIXELFORMAT_RGBA32U, size);\n\t\t\tconst data0 = texture0.lock();\n\t\t\tconst data1 = texture1.lock();\n\t\t\tconst data2 = texture2.lock();\n\t\t\tconst target0 = new Uint8Array(data0.buffer);\n\t\t\tconst target1 = new Uint8Array(data1.buffer);\n\t\t\tconst target2 = new Uint8Array(data2.buffer);\n\t\t\tconst srcCoeffs = [3, 8, 15][shBands - 1];\n\t\t\tfor (let i = 0; i < numSplats; ++i) {\n\t\t\t\tfor (let j = 0; j < 15; ++j) {\n\t\t\t\t\ttarget0[i * 16 + j] = j < srcCoeffs ? shData[(i * 3 + 0) * srcCoeffs + j] : 127;\n\t\t\t\t\ttarget1[i * 16 + j] = j < srcCoeffs ? shData[(i * 3 + 1) * srcCoeffs + j] : 127;\n\t\t\t\t\ttarget2[i * 16 + j] = j < srcCoeffs ? shData[(i * 3 + 2) * srcCoeffs + j] : 127;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttexture0.unlock();\n\t\t\ttexture1.unlock();\n\t\t\ttexture2.unlock();\n\t\t\tthis.shTexture0 = texture0;\n\t\t\tthis.shTexture1 = texture1;\n\t\t\tthis.shTexture2 = texture2;\n\t\t} else {\n\t\t\tthis.shTexture0 = null;\n\t\t\tthis.shTexture1 = null;\n\t\t\tthis.shTexture2 = null;\n\t\t}\n\t}\n\tdestroy() {\n\t\tvar _this$packedTexture, _this$chunkTexture, _this$shTexture, _this$shTexture2, _this$shTexture3;\n\t\t(_this$packedTexture = this.packedTexture) == null || _this$packedTexture.destroy();\n\t\t(_this$chunkTexture = this.chunkTexture) == null || _this$chunkTexture.destroy();\n\t\t(_this$shTexture = this.shTexture0) == null || _this$shTexture.destroy();\n\t\t(_this$shTexture2 = this.shTexture1) == null || _this$shTexture2.destroy();\n\t\t(_this$shTexture3 = this.shTexture2) == null || _this$shTexture3.destroy();\n\t}\n\tcreateMaterial(options) {\n\t\tconst hasSH = this.shTexture0 !== null;\n\t\tconst result = createGSplatCompressedMaterial(_extends({}, hasSH ? {\n\t\t\tdefines: ['USE_SH']\n\t\t} : {}, options));\n\t\tresult.setParameter('packedTexture', this.packedTexture);\n\t\tresult.setParameter('chunkTexture', this.chunkTexture);\n\t\tresult.setParameter('tex_params', new Float32Array([this.numSplats, this.packedTexture.width, this.chunkTexture.width / 5, 0]));\n\t\tif (hasSH) {\n\t\t\tresult.setParameter('shTexture0', this.shTexture0);\n\t\t\tresult.setParameter('shTexture1', this.shTexture1);\n\t\t\tresult.setParameter('shTexture2', this.shTexture2);\n\t\t}\n\t\treturn result;\n\t}\n\tevalTextureSize(count) {\n\t\tconst width = Math.ceil(Math.sqrt(count));\n\t\tconst height = Math.ceil(count / width);\n\t\treturn new Vec2(width, height);\n\t}\n\tcreateTexture(name, format, size, data) {\n\t\treturn new Texture(this.device, _extends({\n\t\t\tname: name,\n\t\t\twidth: size.x,\n\t\t\theight: size.y,\n\t\t\tformat: format,\n\t\t\tcubemap: false,\n\t\t\tmipmaps: false,\n\t\t\tminFilter: FILTER_NEAREST,\n\t\t\tmagFilter: FILTER_NEAREST,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE\n\t\t}, data ? {\n\t\t\tlevels: [data]\n\t\t} : {}));\n\t}\n}\n\nclass GSplatResource {\n\tconstructor(device, splatData) {\n\t\tthis.device = void 0;\n\t\tthis.splatData = void 0;\n\t\tthis.splat = null;\n\t\tthis.device = device;\n\t\tthis.splatData = splatData;\n\t}\n\tdestroy() {\n\t\tvar _this$splat;\n\t\tthis.device = null;\n\t\tthis.splatData = null;\n\t\t(_this$splat = this.splat) == null || _this$splat.destroy();\n\t\tthis.splat = null;\n\t}\n\tcreateSplat() {\n\t\tif (!this.splat) {\n\t\t\tthis.splat = this.splatData.isCompressed ? new GSplatCompressed(this.device, this.splatData) : new GSplat(this.device, this.splatData);\n\t\t}\n\t\treturn this.splat;\n\t}\n\tinstantiate(options = {}) {\n\t\tconst splatInstance = this.createInstance(options);\n\t\tconst entity = new Entity();\n\t\tconst component = entity.addComponent('gsplat', {\n\t\t\tinstance: splatInstance\n\t\t});\n\t\tentity.setLocalEulerAngles(0, 0, 180);\n\t\tcomponent.customAabb = splatInstance.splat.aabb.clone();\n\t\treturn entity;\n\t}\n\tcreateInstance(options = {}) {\n\t\tconst splat = this.createSplat();\n\t\treturn new GSplatInstance(splat, options);\n\t}\n}\n\nconst magicBytes = new Uint8Array([112, 108, 121, 10]);\nconst endHeaderBytes = new Uint8Array([10, 101, 110, 100, 95, 104, 101, 97, 100, 101, 114, 10]);\nconst dataTypeMap = new Map([['char', Int8Array], ['uchar', Uint8Array], ['short', Int16Array], ['ushort', Uint16Array], ['int', Int32Array], ['uint', Uint32Array], ['float', Float32Array], ['double', Float64Array]]);\nclass StreamBuf {\n\tconstructor(reader) {\n\t\tthis.reader = void 0;\n\t\tthis.data = void 0;\n\t\tthis.view = void 0;\n\t\tthis.head = 0;\n\t\tthis.tail = 0;\n\t\tthis.reader = reader;\n\t}\n\tasync read() {\n\t\tconst {\n\t\t\tvalue,\n\t\t\tdone\n\t\t} = await this.reader.read();\n\t\tif (done) {\n\t\t\tthrow new Error('Stream finished before end of header');\n\t\t}\n\t\tthis.push(value);\n\t}\n\tpush(data) {\n\t\tif (!this.data) {\n\t\t\tthis.data = data;\n\t\t\tthis.view = new DataView(this.data.buffer);\n\t\t\tthis.tail = data.length;\n\t\t} else {\n\t\t\tconst remaining = this.tail - this.head;\n\t\t\tconst newSize = remaining + data.length;\n\t\t\tif (this.data.length >= newSize) {\n\t\t\t\tif (this.head > 0) {\n\t\t\t\t\tthis.data.copyWithin(0, this.head, this.tail);\n\t\t\t\t\tthis.data.set(data, remaining);\n\t\t\t\t\tthis.head = 0;\n\t\t\t\t\tthis.tail = newSize;\n\t\t\t\t} else {\n\t\t\t\t\tthis.data.set(data, this.tail);\n\t\t\t\t\tthis.tail += data.length;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst tmp = new Uint8Array(newSize);\n\t\t\t\tif (this.head > 0 || this.tail < this.data.length) {\n\t\t\t\t\ttmp.set(this.data.subarray(this.head, this.tail), 0);\n\t\t\t\t} else {\n\t\t\t\t\ttmp.set(this.data, 0);\n\t\t\t\t}\n\t\t\t\ttmp.set(data, remaining);\n\t\t\t\tthis.data = tmp;\n\t\t\t\tthis.view = new DataView(this.data.buffer);\n\t\t\t\tthis.head = 0;\n\t\t\t\tthis.tail = newSize;\n\t\t\t}\n\t\t}\n\t}\n\tcompact() {\n\t\tif (this.head > 0) {\n\t\t\tthis.data.copyWithin(0, this.head, this.tail);\n\t\t\tthis.tail -= this.head;\n\t\t\tthis.head = 0;\n\t\t}\n\t}\n\tget remaining() {\n\t\treturn this.tail - this.head;\n\t}\n\tgetInt8() {\n\t\tconst result = this.view.getInt8(this.head);\n\t\tthis.head++;\n\t\treturn result;\n\t}\n\tgetUint8() {\n\t\tconst result = this.view.getUint8(this.head);\n\t\tthis.head++;\n\t\treturn result;\n\t}\n\tgetInt16() {\n\t\tconst result = this.view.getInt16(this.head, true);\n\t\tthis.head += 2;\n\t\treturn result;\n\t}\n\tgetUint16() {\n\t\tconst result = this.view.getUint16(this.head, true);\n\t\tthis.head += 2;\n\t\treturn result;\n\t}\n\tgetInt32() {\n\t\tconst result = this.view.getInt32(this.head, true);\n\t\tthis.head += 4;\n\t\treturn result;\n\t}\n\tgetUint32() {\n\t\tconst result = this.view.getUint32(this.head, true);\n\t\tthis.head += 4;\n\t\treturn result;\n\t}\n\tgetFloat32() {\n\t\tconst result = this.view.getFloat32(this.head, true);\n\t\tthis.head += 4;\n\t\treturn result;\n\t}\n\tgetFloat64() {\n\t\tconst result = this.view.getFloat64(this.head, true);\n\t\tthis.head += 8;\n\t\treturn result;\n\t}\n}\nconst parseHeader = lines => {\n\tconst elements = [];\n\tlet format;\n\tfor (let i = 1; i < lines.length; ++i) {\n\t\tconst words = lines[i].split(' ');\n\t\tswitch (words[0]) {\n\t\t\tcase 'format':\n\t\t\t\tformat = words[1];\n\t\t\t\tbreak;\n\t\t\tcase 'element':\n\t\t\t\telements.push({\n\t\t\t\t\tname: words[1],\n\t\t\t\t\tcount: parseInt(words[2], 10),\n\t\t\t\t\tproperties: []\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 'property':\n\t\t\t\t{\n\t\t\t\t\tif (!dataTypeMap.has(words[1])) {\n\t\t\t\t\t\tthrow new Error(`Unrecognized property data type '${words[1]}' in ply header`);\n\t\t\t\t\t}\n\t\t\t\t\tconst element = elements[elements.length - 1];\n\t\t\t\t\telement.properties.push({\n\t\t\t\t\t\ttype: words[1],\n\t\t\t\t\t\tname: words[2],\n\t\t\t\t\t\tstorage: null,\n\t\t\t\t\t\tbyteSize: dataTypeMap.get(words[1]).BYTES_PER_ELEMENT\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Unrecognized header value '${words[0]}' in ply header`);\n\t\t}\n\t}\n\treturn {\n\t\telements,\n\t\tformat\n\t};\n};\nconst isCompressedPly = elements => {\n\tconst chunkProperties = ['min_x', 'min_y', 'min_z', 'max_x', 'max_y', 'max_z', 'min_scale_x', 'min_scale_y', 'min_scale_z', 'max_scale_x', 'max_scale_y', 'max_scale_z', 'min_r', 'min_g', 'min_b', 'max_r', 'max_g', 'max_b'];\n\tconst vertexProperties = ['packed_position', 'packed_rotation', 'packed_scale', 'packed_color'];\n\tconst shProperties = new Array(45).fill('').map((_, i) => `f_rest_${i}`);\n\tconst hasBaseElements = () => {\n\t\treturn elements[0].name === 'chunk' && elements[0].properties.every((p, i) => p.name === chunkProperties[i] && p.type === 'float') && elements[1].name === 'vertex' && elements[1].properties.every((p, i) => p.name === vertexProperties[i] && p.type === 'uint');\n\t};\n\tconst hasSHElements = () => {\n\t\treturn elements[2].name === 'sh' && [9, 24, 45].indexOf(elements[2].properties.length) !== -1 && elements[2].properties.every((p, i) => p.name === shProperties[i] && p.type === 'uchar');\n\t};\n\treturn elements.length === 2 && hasBaseElements() || elements.length === 3 && hasBaseElements() && hasSHElements();\n};\nconst isFloatPly = elements => {\n\treturn elements.length === 1 && elements[0].name === 'vertex' && elements[0].properties.every(p => p.type === 'float');\n};\nconst readCompressedPly = async (streamBuf, elements, littleEndian) => {\n\tconst result = new GSplatCompressedData();\n\tconst numChunks = elements[0].count;\n\tconst numChunkProperties = elements[0].properties.length;\n\tconst numVertices = elements[1].count;\n\tconst evalStorageSize = count => {\n\t\tconst width = Math.ceil(Math.sqrt(count));\n\t\tconst height = Math.ceil(count / width);\n\t\treturn width * height;\n\t};\n\tresult.numSplats = numVertices;\n\tresult.chunkData = new Float32Array(numChunks * numChunkProperties);\n\tresult.vertexData = new Uint32Array(evalStorageSize(numVertices) * 4);\n\tconst read = async (buffer, length) => {\n\t\tconst target = new Uint8Array(buffer);\n\t\tlet cursor = 0;\n\t\twhile (cursor < length) {\n\t\t\twhile (streamBuf.remaining === 0) {\n\t\t\t\tawait streamBuf.read();\n\t\t\t}\n\t\t\tconst toCopy = Math.min(length - cursor, streamBuf.remaining);\n\t\t\tconst src = streamBuf.data;\n\t\t\tfor (let i = 0; i < toCopy; ++i) {\n\t\t\t\ttarget[cursor++] = src[streamBuf.head++];\n\t\t\t}\n\t\t}\n\t};\n\tawait read(result.chunkData.buffer, numChunks * numChunkProperties * 4);\n\tawait read(result.vertexData.buffer, numVertices * 4 * 4);\n\tif (elements.length === 3) {\n\t\tresult.shData = new Uint8Array(elements[2].count * elements[2].properties.length);\n\t\tawait read(result.shData.buffer, result.shData.byteLength);\n\t}\n\treturn result;\n};\nconst readFloatPly = async (streamBuf, elements, littleEndian) => {\n\tconst element = elements[0];\n\tconst properties = element.properties;\n\tconst numProperties = properties.length;\n\tconst storage = properties.map(p => p.storage);\n\tconst inputSize = properties.reduce((a, p) => a + p.byteSize, 0);\n\tlet vertexIdx = 0;\n\tlet floatData;\n\tconst checkFloatData = () => {\n\t\tvar _floatData;\n\t\tconst buffer = streamBuf.data.buffer;\n\t\tif (((_floatData = floatData) == null ? void 0 : _floatData.buffer) !== buffer) {\n\t\t\tfloatData = new Float32Array(buffer, 0, buffer.byteLength / 4);\n\t\t}\n\t};\n\tcheckFloatData();\n\twhile (vertexIdx < element.count) {\n\t\twhile (streamBuf.remaining < inputSize) {\n\t\t\tawait streamBuf.read();\n\t\t\tcheckFloatData();\n\t\t}\n\t\tconst toRead = Math.min(element.count - vertexIdx, Math.floor(streamBuf.remaining / inputSize));\n\t\tfor (let j = 0; j < numProperties; ++j) {\n\t\t\tconst s = storage[j];\n\t\t\tfor (let n = 0; n < toRead; ++n) {\n\t\t\t\ts[n + vertexIdx] = floatData[n * numProperties + j];\n\t\t\t}\n\t\t}\n\t\tvertexIdx += toRead;\n\t\tstreamBuf.head += toRead * inputSize;\n\t}\n\treturn new GSplatData(elements);\n};\nconst readGeneralPly = async (streamBuf, elements, littleEndian) => {\n\tfor (let i = 0; i < elements.length; ++i) {\n\t\tconst element = elements[i];\n\t\tconst inputSize = element.properties.reduce((a, p) => a + p.byteSize, 0);\n\t\tconst propertyParsingFunctions = element.properties.map(p => {\n\t\t\tif (p.storage) {\n\t\t\t\tswitch (p.type) {\n\t\t\t\t\tcase 'char':\n\t\t\t\t\t\treturn (streamBuf, c) => {\n\t\t\t\t\t\t\tp.storage[c] = streamBuf.getInt8();\n\t\t\t\t\t\t};\n\t\t\t\t\tcase 'uchar':\n\t\t\t\t\t\treturn (streamBuf, c) => {\n\t\t\t\t\t\t\tp.storage[c] = streamBuf.getUint8();\n\t\t\t\t\t\t};\n\t\t\t\t\tcase 'short':\n\t\t\t\t\t\treturn (streamBuf, c) => {\n\t\t\t\t\t\t\tp.storage[c] = streamBuf.getInt16();\n\t\t\t\t\t\t};\n\t\t\t\t\tcase 'ushort':\n\t\t\t\t\t\treturn (streamBuf, c) => {\n\t\t\t\t\t\t\tp.storage[c] = streamBuf.getUint16();\n\t\t\t\t\t\t};\n\t\t\t\t\tcase 'int':\n\t\t\t\t\t\treturn (streamBuf, c) => {\n\t\t\t\t\t\t\tp.storage[c] = streamBuf.getInt32();\n\t\t\t\t\t\t};\n\t\t\t\t\tcase 'uint':\n\t\t\t\t\t\treturn (streamBuf, c) => {\n\t\t\t\t\t\t\tp.storage[c] = streamBuf.getUint32();\n\t\t\t\t\t\t};\n\t\t\t\t\tcase 'float':\n\t\t\t\t\t\treturn (streamBuf, c) => {\n\t\t\t\t\t\t\tp.storage[c] = streamBuf.getFloat32();\n\t\t\t\t\t\t};\n\t\t\t\t\tcase 'double':\n\t\t\t\t\t\treturn (streamBuf, c) => {\n\t\t\t\t\t\t\tp.storage[c] = streamBuf.getFloat64();\n\t\t\t\t\t\t};\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthrow new Error(`Unsupported property data type '${p.type}' in ply header`);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn streamBuf => {\n\t\t\t\t\tstreamBuf.head += p.byteSize;\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\t\tlet c = 0;\n\t\twhile (c < element.count) {\n\t\t\twhile (streamBuf.remaining < inputSize) {\n\t\t\t\tawait streamBuf.read();\n\t\t\t}\n\t\t\tconst toRead = Math.min(element.count - c, Math.floor(streamBuf.remaining / inputSize));\n\t\t\tfor (let n = 0; n < toRead; ++n) {\n\t\t\t\tfor (let j = 0; j < element.properties.length; ++j) {\n\t\t\t\t\tpropertyParsingFunctions[j](streamBuf, c);\n\t\t\t\t}\n\t\t\t\tc++;\n\t\t\t}\n\t\t}\n\t}\n\treturn new GSplatData(elements);\n};\nconst readPly = async (reader, propertyFilter = null) => {\n\tconst find = (buf, search) => {\n\t\tconst endIndex = buf.length - search.length;\n\t\tlet i, j;\n\t\tfor (i = 0; i <= endIndex; ++i) {\n\t\t\tfor (j = 0; j < search.length; ++j) {\n\t\t\t\tif (buf[i + j] !== search[j]) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (j === search.length) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t};\n\tconst startsWith = (a, b) => {\n\t\tif (a.length < b.length) {\n\t\t\treturn false;\n\t\t}\n\t\tfor (let i = 0; i < b.length; ++i) {\n\t\t\tif (a[i] !== b[i]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t};\n\tconst streamBuf = new StreamBuf(reader);\n\tlet headerLength;\n\twhile (true) {\n\t\tawait streamBuf.read();\n\t\tif (streamBuf.tail >= magicBytes.length && !startsWith(streamBuf.data, magicBytes)) {\n\t\t\tthrow new Error('Invalid ply header');\n\t\t}\n\t\theaderLength = find(streamBuf.data, endHeaderBytes);\n\t\tif (headerLength !== -1) {\n\t\t\tbreak;\n\t\t}\n\t}\n\tconst lines = new TextDecoder('ascii').decode(streamBuf.data.subarray(0, headerLength)).split('\\n').filter(line => !line.startsWith('comment '));\n\tconst {\n\t\telements,\n\t\tformat\n\t} = parseHeader(lines);\n\tif (format !== 'binary_little_endian' && format !== 'binary_big_endian') {\n\t\tthrow new Error('Unsupported ply format');\n\t}\n\tstreamBuf.head = headerLength + endHeaderBytes.length;\n\tstreamBuf.compact();\n\tif (isCompressedPly(elements)) {\n\t\treturn await readCompressedPly(streamBuf, elements);\n\t}\n\telements.forEach(e => {\n\t\te.properties.forEach(p => {\n\t\t\tconst storageType = dataTypeMap.get(p.type);\n\t\t\tif (storageType) {\n\t\t\t\tconst storage = !propertyFilter || propertyFilter(p.name) ? new storageType(e.count) : null;\n\t\t\t\tp.storage = storage;\n\t\t\t}\n\t\t});\n\t});\n\tif (isFloatPly(elements)) {\n\t\treturn await readFloatPly(streamBuf, elements);\n\t}\n\treturn await readGeneralPly(streamBuf, elements);\n};\nconst defaultElementFilter = val => true;\nclass PlyParser {\n\tconstructor(device, assets, maxRetries) {\n\t\tthis.device = void 0;\n\t\tthis.assets = void 0;\n\t\tthis.maxRetries = void 0;\n\t\tthis.device = device;\n\t\tthis.assets = assets;\n\t\tthis.maxRetries = maxRetries;\n\t}\n\tasync load(url, callback, asset) {\n\t\tconst response = await fetch(url.load);\n\t\tif (!response || !response.body) {\n\t\t\tcallback('Error loading resource', null);\n\t\t} else {\n\t\t\tvar _asset$data$elementFi;\n\t\t\treadPly(response.body.getReader(), (_asset$data$elementFi = asset.data.elementFilter) != null ? _asset$data$elementFi : defaultElementFilter).then(gsplatData => {\n\t\t\t\tif (!gsplatData.isCompressed) {\n\t\t\t\t\tvar _asset$data$reorder;\n\t\t\t\t\tif ((_asset$data$reorder = asset.data.reorder) != null ? _asset$data$reorder : true) {\n\t\t\t\t\t\tgsplatData.reorderData();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst resource = new GSplatResource(this.device, gsplatData.isCompressed && asset.data.decompress ? gsplatData.decompress() : gsplatData);\n\t\t\t\tcallback(null, resource);\n\t\t\t}).catch(err => {\n\t\t\t\tcallback(err, null);\n\t\t\t});\n\t\t}\n\t}\n\topen(url, data) {\n\t\treturn data;\n\t}\n}\n\nclass GSplatHandler extends ResourceHandler {\n\tconstructor(app) {\n\t\tsuper(app, 'gsplat');\n\t\tthis.parser = new PlyParser(app.graphicsDevice, app.assets, 3);\n\t}\n\tload(url, callback, asset) {\n\t\tif (typeof url === 'string') {\n\t\t\turl = {\n\t\t\t\tload: url,\n\t\t\t\toriginal: url\n\t\t\t};\n\t\t}\n\t\tthis.parser.load(url, callback, asset);\n\t}\n\topen(url, data, asset) {\n\t\treturn this.parser.open(url, data, asset);\n\t}\n}\n\nclass CompressUtils {\n\tstatic setCompressedPRS(entity, data, compressed) {\n\t\tconst a = compressed.singleVecs;\n\t\tlet b, i;\n\t\tconst v = data.___1;\n\t\tif (!v) {\n\t\t\tb = compressed.tripleVecs;\n\t\t\ti = data.___2;\n\t\t}\n\t\tlet n = v ? v[0] : b[i];\n\t\tentity.setLocalPosition(a[n], a[n + 1], a[n + 2]);\n\t\tn = v ? v[1] : b[i + 1];\n\t\tentity.setLocalEulerAngles(a[n], a[n + 1], a[n + 2]);\n\t\tn = v ? v[2] : b[i + 2];\n\t\tentity.setLocalScale(a[n], a[n + 1], a[n + 2]);\n\t}\n\tstatic oneCharToKey(s, data) {\n\t\tconst i = s.charCodeAt(0) - data.fieldFirstCode;\n\t\treturn data.fieldArray[i];\n\t}\n\tstatic multCharToKey(s, data) {\n\t\tlet ind = 0;\n\t\tfor (let i = 0; i < s.length; i++) {\n\t\t\tind = ind * data.fieldCodeBase + s.charCodeAt(i) - data.fieldFirstCode;\n\t\t}\n\t\treturn data.fieldArray[ind];\n\t}\n}\n\nclass Decompress {\n\tconstructor(node, data) {\n\t\tthis._node = node;\n\t\tthis._data = data;\n\t}\n\trun() {\n\t\tconst type = Object.prototype.toString.call(this._node);\n\t\tif (type === '[object Object]') {\n\t\t\tthis._handleMap();\n\t\t} else if (type === '[object Array]') {\n\t\t\tthis._handleArray();\n\t\t} else {\n\t\t\tthis._result = this._node;\n\t\t}\n\t\treturn this._result;\n\t}\n\t_handleMap() {\n\t\tthis._result = {};\n\t\tconst a = Object.keys(this._node);\n\t\ta.forEach(this._handleKey, this);\n\t}\n\t_handleKey(origKey) {\n\t\tlet newKey = origKey;\n\t\tconst len = origKey.length;\n\t\tif (len === 1) {\n\t\t\tnewKey = CompressUtils.oneCharToKey(origKey, this._data);\n\t\t} else if (len === 2) {\n\t\t\tnewKey = CompressUtils.multCharToKey(origKey, this._data);\n\t\t}\n\t\tthis._result[newKey] = new Decompress(this._node[origKey], this._data).run();\n\t}\n\t_handleArray() {\n\t\tthis._result = [];\n\t\tthis._node.forEach(this._handleArElt, this);\n\t}\n\t_handleArElt(elt) {\n\t\tconst v = new Decompress(elt, this._data).run();\n\t\tthis._result.push(v);\n\t}\n}\n\nclass SceneParser {\n\tconstructor(app, isTemplate) {\n\t\tthis._app = app;\n\t\tthis._isTemplate = isTemplate;\n\t}\n\tparse(data) {\n\t\tconst entities = {};\n\t\tlet parent = null;\n\t\tconst compressed = data.compressedFormat;\n\t\tif (compressed && !data.entDecompressed) {\n\t\t\tdata.entDecompressed = true;\n\t\t\tdata.entities = new Decompress(data.entities, compressed).run();\n\t\t}\n\t\tfor (const id in data.entities) {\n\t\t\tconst curData = data.entities[id];\n\t\t\tconst curEnt = this._createEntity(curData, compressed);\n\t\t\tentities[id] = curEnt;\n\t\t\tif (curData.parent === null) {\n\t\t\t\tparent = curEnt;\n\t\t\t}\n\t\t}\n\t\tfor (const id in data.entities) {\n\t\t\tconst curEnt = entities[id];\n\t\t\tconst children = data.entities[id].children;\n\t\t\tconst len = children.length;\n\t\t\tfor (let i = 0; i < len; i++) {\n\t\t\t\tconst childEnt = entities[children[i]];\n\t\t\t\tif (childEnt) {\n\t\t\t\t\tcurEnt.addChild(childEnt);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._openComponentData(parent, data.entities);\n\t\treturn parent;\n\t}\n\t_createEntity(data, compressed) {\n\t\tvar _data$enabled;\n\t\tconst entity = new Entity(data.name, this._app);\n\t\tentity.setGuid(data.resource_id);\n\t\tthis._setPosRotScale(entity, data, compressed);\n\t\tentity._enabled = (_data$enabled = data.enabled) != null ? _data$enabled : true;\n\t\tif (this._isTemplate) {\n\t\t\tentity._template = true;\n\t\t} else {\n\t\t\tentity._enabledInHierarchy = entity._enabled;\n\t\t}\n\t\tentity.template = data.template;\n\t\tif (data.tags) {\n\t\t\tfor (let i = 0; i < data.tags.length; i++) {\n\t\t\t\tentity.tags.add(data.tags[i]);\n\t\t\t}\n\t\t}\n\t\tif (data.labels) {\n\t\t\tdata.labels.forEach(label => {\n\t\t\t\tentity.addLabel(label);\n\t\t\t});\n\t\t}\n\t\treturn entity;\n\t}\n\t_setPosRotScale(entity, data, compressed) {\n\t\tif (compressed) {\n\t\t\tCompressUtils.setCompressedPRS(entity, data, compressed);\n\t\t} else {\n\t\t\tconst p = data.position;\n\t\t\tconst r = data.rotation;\n\t\t\tconst s = data.scale;\n\t\t\tentity.setLocalPosition(p[0], p[1], p[2]);\n\t\t\tentity.setLocalEulerAngles(r[0], r[1], r[2]);\n\t\t\tentity.setLocalScale(s[0], s[1], s[2]);\n\t\t}\n\t}\n\t_openComponentData(entity, entities) {\n\t\tconst systemsList = this._app.systems.list;\n\t\tlet len = systemsList.length;\n\t\tconst entityData = entities[entity.getGuid()];\n\t\tfor (let i = 0; i < len; i++) {\n\t\t\tconst system = systemsList[i];\n\t\t\tconst componentData = entityData.components[system.id];\n\t\t\tif (componentData) {\n\t\t\t\tsystem.addComponent(entity, componentData);\n\t\t\t}\n\t\t}\n\t\tlen = entityData.children.length;\n\t\tconst children = entity._children;\n\t\tfor (let i = 0; i < len; i++) {\n\t\t\tif (children[i]) {\n\t\t\t\tchildren[i] = this._openComponentData(children[i], entities);\n\t\t\t}\n\t\t}\n\t\treturn entity;\n\t}\n}\n\nclass SceneUtils {\n\tstatic load(url, maxRetries, callback) {\n\t\tif (typeof url === 'string') {\n\t\t\turl = {\n\t\t\t\tload: url,\n\t\t\t\toriginal: url\n\t\t\t};\n\t\t}\n\t\thttp.get(url.load, {\n\t\t\tretry: maxRetries > 0,\n\t\t\tmaxRetries: maxRetries\n\t\t}, (err, response) => {\n\t\t\tif (!err) {\n\t\t\t\tcallback(err, response);\n\t\t\t} else {\n\t\t\t\tlet errMsg = `Error while loading scene JSON ${url.original}`;\n\t\t\t\tif (err.message) {\n\t\t\t\t\terrMsg += `: ${err.message}`;\n\t\t\t\t\tif (err.stack) {\n\t\t\t\t\t\terrMsg += `\\n${err.stack}`;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\terrMsg += `: ${err}`;\n\t\t\t\t}\n\t\t\t\tcallback(errMsg);\n\t\t\t}\n\t\t});\n\t}\n}\n\nclass HierarchyHandler extends ResourceHandler {\n\tconstructor(app) {\n\t\tsuper(app, 'hierarchy');\n\t}\n\tload(url, callback) {\n\t\tSceneUtils.load(url, this.maxRetries, callback);\n\t}\n\topen(url, data) {\n\t\tthis._app.systems.script.preloading = true;\n\t\tconst parser = new SceneParser(this._app, false);\n\t\tconst parent = parser.parse(data);\n\t\tthis._app.systems.script.preloading = false;\n\t\treturn parent;\n\t}\n}\n\nclass HtmlHandler extends ResourceHandler {\n\tconstructor(app) {\n\t\tsuper(app, 'html');\n\t\tthis.decoder = null;\n\t}\n\tload(url, callback) {\n\t\tif (typeof url === 'string') {\n\t\t\turl = {\n\t\t\t\tload: url,\n\t\t\t\toriginal: url\n\t\t\t};\n\t\t}\n\t\thttp.get(url.load, {\n\t\t\tretry: this.maxRetries > 0,\n\t\t\tmaxRetries: this.maxRetries\n\t\t}, (err, response) => {\n\t\t\tif (!err) {\n\t\t\t\tcallback(null, response);\n\t\t\t} else {\n\t\t\t\tcallback(`Error loading html resource: ${url.original} [${err}]`);\n\t\t\t}\n\t\t});\n\t}\n\topenBinary(data) {\n\t\tvar _this$decoder;\n\t\t(_this$decoder = this.decoder) != null ? _this$decoder : this.decoder = new TextDecoder('utf-8');\n\t\treturn this.decoder.decode(data);\n\t}\n}\n\nclass JsonHandler extends ResourceHandler {\n\tconstructor(app) {\n\t\tsuper(app, 'json');\n\t\tthis.decoder = null;\n\t}\n\tload(url, callback) {\n\t\tif (typeof url === 'string') {\n\t\t\turl = {\n\t\t\t\tload: url,\n\t\t\t\toriginal: url\n\t\t\t};\n\t\t}\n\t\tconst options = {\n\t\t\tretry: this.maxRetries > 0,\n\t\t\tmaxRetries: this.maxRetries\n\t\t};\n\t\tif (url.load.startsWith('blob:')) {\n\t\t\toptions.responseType = Http.ResponseType.JSON;\n\t\t}\n\t\thttp.get(url.load, options, (err, response) => {\n\t\t\tif (!err) {\n\t\t\t\tcallback(null, response);\n\t\t\t} else {\n\t\t\t\tcallback(`Error loading JSON resource: ${url.original} [${err}]`);\n\t\t\t}\n\t\t});\n\t}\n\topenBinary(data) {\n\t\tvar _this$decoder;\n\t\t(_this$decoder = this.decoder) != null ? _this$decoder : this.decoder = new TextDecoder('utf-8');\n\t\treturn JSON.parse(this.decoder.decode(data));\n\t}\n}\n\nclass StandardMaterialValidator {\n\tconstructor() {\n\t\tthis.removeInvalid = true;\n\t\tthis.valid = true;\n\t\tthis.enumValidators = {\n\t\t\toccludeSpecular: this._createEnumValidator([SPECOCC_NONE, SPECOCC_AO, SPECOCC_GLOSSDEPENDENT]),\n\t\t\tcull: this._createEnumValidator([CULLFACE_NONE, CULLFACE_BACK, CULLFACE_FRONT, CULLFACE_FRONTANDBACK]),\n\t\t\tblendType: this._createEnumValidator([BLEND_SUBTRACTIVE, BLEND_ADDITIVE, BLEND_NORMAL, BLEND_NONE, BLEND_PREMULTIPLIED, BLEND_MULTIPLICATIVE, BLEND_ADDITIVEALPHA, BLEND_MULTIPLICATIVE2X, BLEND_SCREEN, BLEND_MIN, BLEND_MAX]),\n\t\t\tdepthFunc: this._createEnumValidator([FUNC_NEVER, FUNC_LESS, FUNC_EQUAL, FUNC_LESSEQUAL, FUNC_GREATER, FUNC_NOTEQUAL, FUNC_GREATEREQUAL, FUNC_ALWAYS]),\n\t\t\tshadingModel: this._createEnumValidator([SPECULAR_PHONG, SPECULAR_BLINN])\n\t\t};\n\t}\n\tsetInvalid(key, data) {\n\t\tthis.valid = false;\n\t\tif (this.removeInvalid) {\n\t\t\tdelete data[key];\n\t\t}\n\t}\n\tvalidate(data) {\n\t\tconst TYPES = standardMaterialParameterTypes;\n\t\tconst REMOVED = standardMaterialRemovedParameters;\n\t\tconst pathMapping = data.mappingFormat === 'path';\n\t\tfor (const key in data) {\n\t\t\tconst type = TYPES[key];\n\t\t\tif (!type) {\n\t\t\t\tif (REMOVED[key]) {\n\t\t\t\t\tdelete data[key];\n\t\t\t\t} else {\n\t\t\t\t\tthis.valid = false;\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (type.startsWith('enum')) {\n\t\t\t\tconst enumType = type.split(':')[1];\n\t\t\t\tif (this.enumValidators[enumType]) {\n\t\t\t\t\tif (!this.enumValidators[enumType](data[key])) {\n\t\t\t\t\t\tthis.setInvalid(key, data);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (type === 'number') {\n\t\t\t\tif (typeof data[key] !== 'number') {\n\t\t\t\t\tthis.setInvalid(key, data);\n\t\t\t\t}\n\t\t\t} else if (type === 'boolean') {\n\t\t\t\tif (typeof data[key] !== 'boolean') {\n\t\t\t\t\tthis.setInvalid(key, data);\n\t\t\t\t}\n\t\t\t} else if (type === 'string') {\n\t\t\t\tif (typeof data[key] !== 'string') {\n\t\t\t\t\tthis.setInvalid(key, data);\n\t\t\t\t}\n\t\t\t} else if (type === 'vec2') {\n\t\t\t\tif (!(data[key] instanceof Array && data[key].length === 2)) {\n\t\t\t\t\tthis.setInvalid(key, data);\n\t\t\t\t}\n\t\t\t} else if (type === 'rgb') {\n\t\t\t\tif (!(data[key] instanceof Array && data[key].length === 3)) {\n\t\t\t\t\tthis.setInvalid(key, data);\n\t\t\t\t}\n\t\t\t} else if (type === 'texture') {\n\t\t\t\tif (!pathMapping) {\n\t\t\t\t\tif (!(typeof data[key] === 'number' || data[key] === null)) {\n\t\t\t\t\t\tif (!(data[key] instanceof Texture)) {\n\t\t\t\t\t\t\tthis.setInvalid(key, data);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (!(typeof data[key] === 'string' || data[key] === null)) {\n\t\t\t\t\t\tif (!(data[key] instanceof Texture)) {\n\t\t\t\t\t\t\tthis.setInvalid(key, data);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (type === 'boundingbox') {\n\t\t\t\tif (!(data[key].center && data[key].center instanceof Array && data[key].center.length === 3)) {\n\t\t\t\t\tthis.setInvalid(key, data);\n\t\t\t\t}\n\t\t\t\tif (!(data[key].halfExtents && data[key].halfExtents instanceof Array && data[key].halfExtents.length === 3)) {\n\t\t\t\t\tthis.setInvalid(key, data);\n\t\t\t\t}\n\t\t\t} else if (type === 'cubemap') {\n\t\t\t\tif (!(typeof data[key] === 'number' || data[key] === null || data[key] === undefined)) {\n\t\t\t\t\tif (!(data[key] instanceof Texture && data[key].cubemap)) {\n\t\t\t\t\t\tthis.setInvalid(key, data);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (type === 'chunks') {\n\t\t\t\tconst chunkNames = Object.keys(data[key]);\n\t\t\t\tfor (let i = 0; i < chunkNames.length; i++) {\n\t\t\t\t\tif (typeof data[key][chunkNames[i]] !== 'string') {\n\t\t\t\t\t\tthis.setInvalid(chunkNames[i], data[key]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconsole.error(`Unknown material type: ${type}`);\n\t\t\t}\n\t\t}\n\t\tdata.validated = true;\n\t\treturn this.valid;\n\t}\n\t_createEnumValidator(values) {\n\t\treturn function (value) {\n\t\t\treturn values.indexOf(value) >= 0;\n\t\t};\n\t}\n}\n\nclass JsonStandardMaterialParser {\n\tconstructor() {\n\t\tthis._validator = null;\n\t}\n\tparse(input) {\n\t\tconst migrated = this.migrate(input);\n\t\tconst validated = this._validate(migrated);\n\t\tconst material = new StandardMaterial();\n\t\tthis.initialize(material, validated);\n\t\treturn material;\n\t}\n\tinitialize(material, data) {\n\t\tif (!data.validated) {\n\t\t\tdata = this._validate(data);\n\t\t}\n\t\tif (data.chunks) {\n\t\t\tmaterial.chunks = _extends({}, data.chunks);\n\t\t}\n\t\tfor (const key in data) {\n\t\t\tconst type = standardMaterialParameterTypes[key];\n\t\t\tconst value = data[key];\n\t\t\tif (type === 'vec2') {\n\t\t\t\tmaterial[key] = new Vec2(value[0], value[1]);\n\t\t\t} else if (type === 'rgb') {\n\t\t\t\tmaterial[key] = new Color(value[0], value[1], value[2]);\n\t\t\t} else if (type === 'texture') {\n\t\t\t\tif (value instanceof Texture) {\n\t\t\t\t\tmaterial[key] = value;\n\t\t\t\t} else if (!(material[key] instanceof Texture && typeof value === 'number' && value > 0)) {\n\t\t\t\t\tmaterial[key] = null;\n\t\t\t\t}\n\t\t\t} else if (type === 'cubemap') {\n\t\t\t\tif (value instanceof Texture) {\n\t\t\t\t\tmaterial[key] = value;\n\t\t\t\t} else if (!(material[key] instanceof Texture && typeof value === 'number' && value > 0)) {\n\t\t\t\t\tmaterial[key] = null;\n\t\t\t\t}\n\t\t\t\tif (key === 'cubeMap' && !value) {\n\t\t\t\t\tmaterial.prefilteredCubemaps = null;\n\t\t\t\t}\n\t\t\t} else if (type === 'boundingbox') {\n\t\t\t\tconst center = new Vec3(value.center[0], value.center[1], value.center[2]);\n\t\t\t\tconst halfExtents = new Vec3(value.halfExtents[0], value.halfExtents[1], value.halfExtents[2]);\n\t\t\t\tmaterial[key] = new BoundingBox(center, halfExtents);\n\t\t\t} else {\n\t\t\t\tmaterial[key] = data[key];\n\t\t\t}\n\t\t}\n\t\tmaterial.update();\n\t}\n\tmigrate(data) {\n\t\tif (data.shader) {\n\t\t\tdata.shadingModel = data.shader === 'blinn' ? SPECULAR_BLINN : SPECULAR_PHONG;\n\t\t\tdelete data.shader;\n\t\t} else if (data.shadingModel === undefined) {\n\t\t\tdata.shadingModel = SPECULAR_BLINN;\n\t\t}\n\t\tif (data.mapping_format) {\n\t\t\tdata.mappingFormat = data.mapping_format;\n\t\t\tdelete data.mapping_format;\n\t\t}\n\t\tlet i;\n\t\tconst RENAMED_PROPERTIES = [['bumpMapFactor', 'bumpiness'], ['aoUvSet', 'aoMapUv'], ['aoMapVertexColor', 'aoVertexColor'], ['diffuseMapVertexColor', 'diffuseVertexColor'], ['emissiveMapVertexColor', 'emissiveVertexColor'], ['specularMapVertexColor', 'specularVertexColor'], ['metalnessMapVertexColor', 'metalnessVertexColor'], ['opacityMapVertexColor', 'opacityVertexColor'], ['glossMapVertexColor', 'glossVertexColor'], ['lightMapVertexColor', 'lightVertexColor'], ['diffuseMapTint', 'diffuseTint'], ['specularMapTint', 'specularTint'], ['emissiveMapTint', 'emissiveTint'], ['metalnessMapTint', 'metalnessTint'], ['clearCoatGlossiness', 'clearCoatGloss']];\n\t\tfor (i = 0; i < RENAMED_PROPERTIES.length; i++) {\n\t\t\tconst _old = RENAMED_PROPERTIES[i][0];\n\t\t\tconst _new = RENAMED_PROPERTIES[i][1];\n\t\t\tif (data[_old] !== undefined) {\n\t\t\t\tif (data[_new] === undefined) {\n\t\t\t\t\tdata[_new] = data[_old];\n\t\t\t\t}\n\t\t\t\tdelete data[_old];\n\t\t\t}\n\t\t}\n\t\tconst DEPRECATED_PROPERTIES = ['fresnelFactor', 'shadowSampleType'];\n\t\tfor (i = 0; i < DEPRECATED_PROPERTIES.length; i++) {\n\t\t\tconst name = DEPRECATED_PROPERTIES[i];\n\t\t\tif (data.hasOwnProperty(name)) {\n\t\t\t\tdelete data[name];\n\t\t\t}\n\t\t}\n\t\t__adjustStandardMaterialData(data);\n\t\treturn data;\n\t}\n\t_validate(data) {\n\t\tif (!data.validated) {\n\t\t\tif (!this._validator) {\n\t\t\t\tthis._validator = new StandardMaterialValidator();\n\t\t\t}\n\t\t\tthis._validator.validate(data);\n\t\t}\n\t\treturn data;\n\t}\n}\n\nconst PLACEHOLDER_MAP = {\n\taoMap: 'white',\n\tdiffuseMap: 'gray',\n\tspecularMap: 'gray',\n\tspecularityFactorMap: 'white',\n\tmetalnessMap: 'black',\n\tglossMap: 'gray',\n\tsheenMap: 'black',\n\tsheenGlossinessMap: 'gray',\n\tclearCoatMap: 'black',\n\tclearCoatGlossMap: 'gray',\n\tclearCoatNormalMap: 'normal',\n\trefractionMap: 'white',\n\temissiveMap: 'gray',\n\tnormalMap: 'normal',\n\theightMap: 'gray',\n\topacityMap: 'gray',\n\tsphereMap: 'gray',\n\tlightMap: 'white'\n};\nclass MaterialHandler extends ResourceHandler {\n\tconstructor(app) {\n\t\tsuper(app, 'material');\n\t\tthis._assets = app.assets;\n\t\tthis._device = app.graphicsDevice;\n\t\tthis._placeholderTextures = null;\n\t\tthis._parser = new JsonStandardMaterialParser();\n\t}\n\tload(url, callback) {\n\t\tif (typeof url === 'string') {\n\t\t\turl = {\n\t\t\t\tload: url,\n\t\t\t\toriginal: url\n\t\t\t};\n\t\t}\n\t\thttp.get(url.load, {\n\t\t\tretry: this.maxRetries > 0,\n\t\t\tmaxRetries: this.maxRetries\n\t\t}, (err, response) => {\n\t\t\tif (!err) {\n\t\t\t\tif (callback) {\n\t\t\t\t\tresponse._engine = true;\n\t\t\t\t\tcallback(null, response);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (callback) {\n\t\t\t\t\tcallback(`Error loading material: ${url.original} [${err}]`);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\topen(url, data) {\n\t\tconst material = this._parser.parse(data);\n\t\tif (data._engine) {\n\t\t\tmaterial._data = data;\n\t\t\tdelete data._engine;\n\t\t}\n\t\treturn material;\n\t}\n\t_createPlaceholders() {\n\t\tthis._placeholderTextures = {};\n\t\tconst textures = {\n\t\t\twhite: [255, 255, 255, 255],\n\t\t\tgray: [128, 128, 128, 255],\n\t\t\tblack: [0, 0, 0, 255],\n\t\t\tnormal: [128, 128, 255, 255]\n\t\t};\n\t\tfor (const key in textures) {\n\t\t\tif (!textures.hasOwnProperty(key)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis._placeholderTextures[key] = new Texture(this._device, {\n\t\t\t\twidth: 2,\n\t\t\t\theight: 2,\n\t\t\t\tformat: PIXELFORMAT_RGBA8,\n\t\t\t\tname: 'material_placeholder'\n\t\t\t});\n\t\t\tconst pixels = this._placeholderTextures[key].lock();\n\t\t\tfor (let i = 0; i < 4; i++) {\n\t\t\t\tfor (let c = 0; c < 4; c++) {\n\t\t\t\t\tpixels[i * 4 + c] = textures[key][c];\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._placeholderTextures[key].unlock();\n\t\t}\n\t}\n\tpatch(asset, assets) {\n\t\tif (asset.resource._data) {\n\t\t\tasset._data = asset.resource._data;\n\t\t\tdelete asset.resource._data;\n\t\t}\n\t\tasset.data.name = asset.name;\n\t\tasset.resource.name = asset.name;\n\t\tthis._bindAndAssignAssets(asset, assets);\n\t\tasset.off('unload', this._onAssetUnload, this);\n\t\tasset.on('unload', this._onAssetUnload, this);\n\t}\n\t_onAssetUnload(asset) {\n\t\tdelete asset.data.parameters;\n\t\tdelete asset.data.chunks;\n\t\tdelete asset.data.name;\n\t}\n\t_assignTexture(parameterName, materialAsset, texture) {\n\t\tmaterialAsset.resource[parameterName] = texture;\n\t}\n\t_getPlaceholderTexture(parameterName) {\n\t\tif (!this._placeholderTextures) {\n\t\t\tthis._createPlaceholders();\n\t\t}\n\t\tconst placeholder = PLACEHOLDER_MAP[parameterName];\n\t\tconst texture = this._placeholderTextures[placeholder];\n\t\treturn texture;\n\t}\n\t_assignPlaceholderTexture(parameterName, materialAsset) {\n\t\tmaterialAsset.resource[parameterName] = this._getPlaceholderTexture(parameterName);\n\t}\n\t_onTextureLoad(parameterName, materialAsset, textureAsset) {\n\t\tthis._assignTexture(parameterName, materialAsset, textureAsset.resource);\n\t\tmaterialAsset.resource.update();\n\t}\n\t_onTextureAdd(parameterName, materialAsset, textureAsset) {\n\t\tthis._assets.load(textureAsset);\n\t}\n\t_onTextureRemoveOrUnload(parameterName, materialAsset, textureAsset) {\n\t\tconst material = materialAsset.resource;\n\t\tif (material) {\n\t\t\tif (materialAsset.resource[parameterName] === textureAsset.resource) {\n\t\t\t\tthis._assignPlaceholderTexture(parameterName, materialAsset);\n\t\t\t\tmaterial.update();\n\t\t\t}\n\t\t}\n\t}\n\t_assignCubemap(parameterName, materialAsset, textures) {\n\t\tmaterialAsset.resource[parameterName] = textures[0];\n\t\tif (parameterName === 'cubeMap') {\n\t\t\tconst prefiltered = textures.slice(1);\n\t\t\tif (prefiltered.every(t => t)) {\n\t\t\t\tmaterialAsset.resource.prefilteredCubemaps = prefiltered;\n\t\t\t} else if (prefiltered[0]) {\n\t\t\t\tmaterialAsset.resource.envAtlas = prefiltered[0];\n\t\t\t}\n\t\t}\n\t}\n\t_onCubemapLoad(parameterName, materialAsset, cubemapAsset) {\n\t\tthis._assignCubemap(parameterName, materialAsset, cubemapAsset.resources);\n\t\tthis._parser.initialize(materialAsset.resource, materialAsset.data);\n\t}\n\t_onCubemapAdd(parameterName, materialAsset, cubemapAsset) {\n\t\tif (materialAsset.data.shadingModel === SPECULAR_PHONG) {\n\t\t\tmaterialAsset.loadFaces = true;\n\t\t}\n\t\tthis._assets.load(cubemapAsset);\n\t}\n\t_onCubemapRemoveOrUnload(parameterName, materialAsset, cubemapAsset) {\n\t\tconst material = materialAsset.resource;\n\t\tif (materialAsset.data.prefilteredCubeMap128 === cubemapAsset.resources[1]) {\n\t\t\tthis._assignCubemap(parameterName, materialAsset, [null, null, null, null, null, null, null]);\n\t\t\tmaterial.update();\n\t\t}\n\t}\n\t_bindAndAssignAssets(materialAsset, assets) {\n\t\tconst data = this._parser.migrate(materialAsset.data);\n\t\tconst material = materialAsset.resource;\n\t\tconst pathMapping = data.mappingFormat === 'path';\n\t\tconst TEXTURES = standardMaterialTextureParameters;\n\t\tlet i, name, assetReference;\n\t\tfor (i = 0; i < TEXTURES.length; i++) {\n\t\t\tname = TEXTURES[i];\n\t\t\tassetReference = material._assetReferences[name];\n\t\t\tconst dataAssetId = data[name];\n\t\t\tconst materialTexture = material[name];\n\t\t\tconst isPlaceHolderTexture = materialTexture === this._getPlaceholderTexture(name);\n\t\t\tconst dataValidated = data.validated;\n\t\t\tif (dataAssetId && (!materialTexture || !dataValidated || isPlaceHolderTexture)) {\n\t\t\t\tif (!assetReference) {\n\t\t\t\t\tassetReference = new AssetReference(name, materialAsset, assets, {\n\t\t\t\t\t\tload: this._onTextureLoad,\n\t\t\t\t\t\tadd: this._onTextureAdd,\n\t\t\t\t\t\tremove: this._onTextureRemoveOrUnload,\n\t\t\t\t\t\tunload: this._onTextureRemoveOrUnload\n\t\t\t\t\t}, this);\n\t\t\t\t\tmaterial._assetReferences[name] = assetReference;\n\t\t\t\t}\n\t\t\t\tif (pathMapping) {\n\t\t\t\t\tassetReference.url = materialAsset.getAbsoluteUrl(dataAssetId);\n\t\t\t\t} else {\n\t\t\t\t\tassetReference.id = dataAssetId;\n\t\t\t\t}\n\t\t\t\tif (assetReference.asset) {\n\t\t\t\t\tif (assetReference.asset.resource) {\n\t\t\t\t\t\tthis._assignTexture(name, materialAsset, assetReference.asset.resource);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._assignPlaceholderTexture(name, materialAsset);\n\t\t\t\t\t}\n\t\t\t\t\tassets.load(assetReference.asset);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (assetReference) {\n\t\t\t\t\tif (pathMapping) {\n\t\t\t\t\t\tassetReference.url = null;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tassetReference.id = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst CUBEMAPS = standardMaterialCubemapParameters;\n\t\tfor (i = 0; i < CUBEMAPS.length; i++) {\n\t\t\tname = CUBEMAPS[i];\n\t\t\tassetReference = material._assetReferences[name];\n\t\t\tif (data[name] && !materialAsset.data.prefilteredCubeMap128) {\n\t\t\t\tif (!assetReference) {\n\t\t\t\t\tassetReference = new AssetReference(name, materialAsset, assets, {\n\t\t\t\t\t\tload: this._onCubemapLoad,\n\t\t\t\t\t\tadd: this._onCubemapAdd,\n\t\t\t\t\t\tremove: this._onCubemapRemoveOrUnload,\n\t\t\t\t\t\tunload: this._onCubemapRemoveOrUnload\n\t\t\t\t\t}, this);\n\t\t\t\t\tmaterial._assetReferences[name] = assetReference;\n\t\t\t\t}\n\t\t\t\tif (pathMapping) {\n\t\t\t\t\tassetReference.url = data[name];\n\t\t\t\t} else {\n\t\t\t\t\tassetReference.id = data[name];\n\t\t\t\t}\n\t\t\t\tif (assetReference.asset) {\n\t\t\t\t\tif (assetReference.asset.loaded) {\n\t\t\t\t\t\tthis._assignCubemap(name, materialAsset, assetReference.asset.resources);\n\t\t\t\t\t}\n\t\t\t\t\tassets.load(assetReference.asset);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._parser.initialize(material, data);\n\t}\n}\n\nclass GlbModelParser {\n\tconstructor(modelHandler) {\n\t\tthis._device = modelHandler.device;\n\t\tthis._defaultMaterial = modelHandler.defaultMaterial;\n\t\tthis._assets = modelHandler.assets;\n\t}\n\tparse(data, callback, asset) {\n\t\tvar _asset$options;\n\t\tGlbParser.parse('filename.glb', '', data, this._device, this._assets, (_asset$options = asset == null ? void 0 : asset.options) != null ? _asset$options : {}, (err, result) => {\n\t\t\tif (err) {\n\t\t\t\tcallback(err);\n\t\t\t} else {\n\t\t\t\tconst model = GlbContainerResource.createModel(result, this._defaultMaterial);\n\t\t\t\tresult.destroy();\n\t\t\t\tcallback(null, model);\n\t\t\t}\n\t\t});\n\t}\n}\n\nconst JSON_PRIMITIVE_TYPE = {\n\t'points': PRIMITIVE_POINTS,\n\t'lines': PRIMITIVE_LINES,\n\t'lineloop': PRIMITIVE_LINELOOP,\n\t'linestrip': PRIMITIVE_LINESTRIP,\n\t'triangles': PRIMITIVE_TRIANGLES,\n\t'trianglestrip': PRIMITIVE_TRISTRIP,\n\t'trianglefan': PRIMITIVE_TRIFAN\n};\nconst JSON_VERTEX_ELEMENT_TYPE = {\n\t'int8': TYPE_INT8,\n\t'uint8': TYPE_UINT8,\n\t'int16': TYPE_INT16,\n\t'uint16': TYPE_UINT16,\n\t'int32': TYPE_INT32,\n\t'uint32': TYPE_UINT32,\n\t'float32': TYPE_FLOAT32\n};\nclass JsonModelParser {\n\tconstructor(modelHandler) {\n\t\tthis._device = modelHandler.device;\n\t\tthis._defaultMaterial = modelHandler.defaultMaterial;\n\t}\n\tparse(data, callback) {\n\t\tconst modelData = data.model;\n\t\tif (!modelData) {\n\t\t\tcallback(null, null);\n\t\t\treturn;\n\t\t}\n\t\tif (modelData.version <= 1) {\n\t\t\tcallback('JsonModelParser#parse: Trying to parse unsupported model format.');\n\t\t\treturn;\n\t\t}\n\t\tconst nodes = this._parseNodes(data);\n\t\tconst skins = this._parseSkins(data, nodes);\n\t\tconst vertexBuffers = this._parseVertexBuffers(data);\n\t\tconst indices = this._parseIndexBuffers(data, vertexBuffers);\n\t\tconst morphs = this._parseMorphs(data, nodes, vertexBuffers);\n\t\tconst meshes = this._parseMeshes(data, skins.skins, morphs.morphs, vertexBuffers, indices.buffer, indices.data);\n\t\tconst meshInstances = this._parseMeshInstances(data, nodes, meshes, skins.skins, skins.instances, morphs.morphs, morphs.instances);\n\t\tconst model = new Model();\n\t\tmodel.graph = nodes[0];\n\t\tmodel.meshInstances = meshInstances;\n\t\tmodel.skinInstances = skins.instances;\n\t\tmodel.morphInstances = morphs.instances;\n\t\tmodel.getGraph().syncHierarchy();\n\t\tcallback(null, model);\n\t}\n\t_parseNodes(data) {\n\t\tconst modelData = data.model;\n\t\tconst nodes = [];\n\t\tlet i;\n\t\tfor (i = 0; i < modelData.nodes.length; i++) {\n\t\t\tconst nodeData = modelData.nodes[i];\n\t\t\tconst node = new GraphNode(nodeData.name);\n\t\t\tnode.setLocalPosition(nodeData.position[0], nodeData.position[1], nodeData.position[2]);\n\t\t\tnode.setLocalEulerAngles(nodeData.rotation[0], nodeData.rotation[1], nodeData.rotation[2]);\n\t\t\tnode.setLocalScale(nodeData.scale[0], nodeData.scale[1], nodeData.scale[2]);\n\t\t\tnode.scaleCompensation = !!nodeData.scaleCompensation;\n\t\t\tnodes.push(node);\n\t\t}\n\t\tfor (i = 1; i < modelData.parents.length; i++) {\n\t\t\tnodes[modelData.parents[i]].addChild(nodes[i]);\n\t\t}\n\t\treturn nodes;\n\t}\n\t_parseSkins(data, nodes) {\n\t\tconst modelData = data.model;\n\t\tconst skins = [];\n\t\tconst skinInstances = [];\n\t\tlet i, j;\n\t\tfor (i = 0; i < modelData.skins.length; i++) {\n\t\t\tconst skinData = modelData.skins[i];\n\t\t\tconst inverseBindMatrices = [];\n\t\t\tfor (j = 0; j < skinData.inverseBindMatrices.length; j++) {\n\t\t\t\tconst ibm = skinData.inverseBindMatrices[j];\n\t\t\t\tinverseBindMatrices[j] = new Mat4().set(ibm);\n\t\t\t}\n\t\t\tconst skin = new Skin(this._device, inverseBindMatrices, skinData.boneNames);\n\t\t\tskins.push(skin);\n\t\t\tconst skinInstance = new SkinInstance(skin);\n\t\t\tconst bones = [];\n\t\t\tfor (j = 0; j < skin.boneNames.length; j++) {\n\t\t\t\tconst boneName = skin.boneNames[j];\n\t\t\t\tconst bone = nodes[0].findByName(boneName);\n\t\t\t\tbones.push(bone);\n\t\t\t}\n\t\t\tskinInstance.bones = bones;\n\t\t\tskinInstances.push(skinInstance);\n\t\t}\n\t\treturn {\n\t\t\tskins: skins,\n\t\t\tinstances: skinInstances\n\t\t};\n\t}\n\t_getMorphVertexCount(modelData, morphIndex, vertexBuffers) {\n\t\tfor (let i = 0; i < modelData.meshes.length; i++) {\n\t\t\tconst meshData = modelData.meshes[i];\n\t\t\tif (meshData.morph === morphIndex) {\n\t\t\t\tconst vertexBuffer = vertexBuffers[meshData.vertices];\n\t\t\t\treturn vertexBuffer.numVertices;\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}\n\t_parseMorphs(data, nodes, vertexBuffers) {\n\t\tconst modelData = data.model;\n\t\tconst morphs = [];\n\t\tconst morphInstances = [];\n\t\tlet i, j, vertexCount;\n\t\tlet targets, morphTarget, morphTargetArray;\n\t\tif (modelData.morphs) {\n\t\t\tconst sparseToFull = function sparseToFull(data, indices, totalCount) {\n\t\t\t\tconst full = new Float32Array(totalCount * 3);\n\t\t\t\tfor (let s = 0; s < indices.length; s++) {\n\t\t\t\t\tconst dstIndex = indices[s] * 3;\n\t\t\t\t\tfull[dstIndex] = data[s * 3];\n\t\t\t\t\tfull[dstIndex + 1] = data[s * 3 + 1];\n\t\t\t\t\tfull[dstIndex + 2] = data[s * 3 + 2];\n\t\t\t\t}\n\t\t\t\treturn full;\n\t\t\t};\n\t\t\tfor (i = 0; i < modelData.morphs.length; i++) {\n\t\t\t\ttargets = modelData.morphs[i].targets;\n\t\t\t\tmorphTargetArray = [];\n\t\t\t\tvertexCount = this._getMorphVertexCount(modelData, i, vertexBuffers);\n\t\t\t\tfor (j = 0; j < targets.length; j++) {\n\t\t\t\t\tconst targetAabb = targets[j].aabb;\n\t\t\t\t\tconst min = targetAabb.min;\n\t\t\t\t\tconst max = targetAabb.max;\n\t\t\t\t\tconst aabb = new BoundingBox(new Vec3((max[0] + min[0]) * 0.5, (max[1] + min[1]) * 0.5, (max[2] + min[2]) * 0.5), new Vec3((max[0] - min[0]) * 0.5, (max[1] - min[1]) * 0.5, (max[2] - min[2]) * 0.5));\n\t\t\t\t\tconst indices = targets[j].indices;\n\t\t\t\t\tlet deltaPositions = targets[j].deltaPositions;\n\t\t\t\t\tlet deltaNormals = targets[j].deltaNormals;\n\t\t\t\t\tif (indices) {\n\t\t\t\t\t\tdeltaPositions = sparseToFull(deltaPositions, indices, vertexCount);\n\t\t\t\t\t\tdeltaNormals = sparseToFull(deltaNormals, indices, vertexCount);\n\t\t\t\t\t}\n\t\t\t\t\tmorphTarget = new MorphTarget({\n\t\t\t\t\t\tdeltaPositions: deltaPositions,\n\t\t\t\t\t\tdeltaNormals: deltaNormals,\n\t\t\t\t\t\tname: targets[j].name,\n\t\t\t\t\t\taabb: aabb\n\t\t\t\t\t});\n\t\t\t\t\tmorphTargetArray.push(morphTarget);\n\t\t\t\t}\n\t\t\t\tconst morph = new Morph(morphTargetArray, this._device);\n\t\t\t\tmorphs.push(morph);\n\t\t\t\tconst morphInstance = new MorphInstance(morph);\n\t\t\t\tmorphInstances.push(morphInstance);\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tmorphs: morphs,\n\t\t\tinstances: morphInstances\n\t\t};\n\t}\n\t_parseVertexBuffers(data) {\n\t\tconst modelData = data.model;\n\t\tconst vertexBuffers = [];\n\t\tconst attributeMap = {\n\t\t\tposition: SEMANTIC_POSITION,\n\t\t\tnormal: SEMANTIC_NORMAL,\n\t\t\ttangent: SEMANTIC_TANGENT,\n\t\t\tblendWeight: SEMANTIC_BLENDWEIGHT,\n\t\t\tblendIndices: SEMANTIC_BLENDINDICES,\n\t\t\tcolor: SEMANTIC_COLOR,\n\t\t\ttexCoord0: SEMANTIC_TEXCOORD0,\n\t\t\ttexCoord1: SEMANTIC_TEXCOORD1,\n\t\t\ttexCoord2: SEMANTIC_TEXCOORD2,\n\t\t\ttexCoord3: SEMANTIC_TEXCOORD3,\n\t\t\ttexCoord4: SEMANTIC_TEXCOORD4,\n\t\t\ttexCoord5: SEMANTIC_TEXCOORD5,\n\t\t\ttexCoord6: SEMANTIC_TEXCOORD6,\n\t\t\ttexCoord7: SEMANTIC_TEXCOORD7\n\t\t};\n\t\tfor (let i = 0; i < modelData.vertices.length; i++) {\n\t\t\tconst vertexData = modelData.vertices[i];\n\t\t\tconst formatDesc = [];\n\t\t\tfor (const attributeName in vertexData) {\n\t\t\t\tconst attribute = vertexData[attributeName];\n\t\t\t\tformatDesc.push({\n\t\t\t\t\tsemantic: attributeMap[attributeName],\n\t\t\t\t\tcomponents: attribute.components,\n\t\t\t\t\ttype: JSON_VERTEX_ELEMENT_TYPE[attribute.type],\n\t\t\t\t\tnormalize: attributeMap[attributeName] === SEMANTIC_COLOR\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst vertexFormat = new VertexFormat(this._device, formatDesc);\n\t\t\tconst numVertices = vertexData.position.data.length / vertexData.position.components;\n\t\t\tconst vertexBuffer = new VertexBuffer(this._device, vertexFormat, numVertices);\n\t\t\tconst iterator = new VertexIterator(vertexBuffer);\n\t\t\tfor (let j = 0; j < numVertices; j++) {\n\t\t\t\tfor (const attributeName in vertexData) {\n\t\t\t\t\tconst attribute = vertexData[attributeName];\n\t\t\t\t\tswitch (attribute.components) {\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\titerator.element[attributeMap[attributeName]].set(attribute.data[j]);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 2:\n\t\t\t\t\t\t\titerator.element[attributeMap[attributeName]].set(attribute.data[j * 2], 1.0 - attribute.data[j * 2 + 1]);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 3:\n\t\t\t\t\t\t\titerator.element[attributeMap[attributeName]].set(attribute.data[j * 3], attribute.data[j * 3 + 1], attribute.data[j * 3 + 2]);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 4:\n\t\t\t\t\t\t\titerator.element[attributeMap[attributeName]].set(attribute.data[j * 4], attribute.data[j * 4 + 1], attribute.data[j * 4 + 2], attribute.data[j * 4 + 3]);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\titerator.next();\n\t\t\t}\n\t\t\titerator.end();\n\t\t\tvertexBuffers.push(vertexBuffer);\n\t\t}\n\t\treturn vertexBuffers;\n\t}\n\t_parseIndexBuffers(data, vertexBuffers) {\n\t\tconst modelData = data.model;\n\t\tlet indexBuffer = null;\n\t\tlet indexData = null;\n\t\tlet i;\n\t\tlet numIndices = 0;\n\t\tfor (i = 0; i < modelData.meshes.length; i++) {\n\t\t\tconst meshData = modelData.meshes[i];\n\t\t\tif (meshData.indices !== undefined) {\n\t\t\t\tnumIndices += meshData.indices.length;\n\t\t\t}\n\t\t}\n\t\tlet maxVerts = 0;\n\t\tfor (i = 0; i < vertexBuffers.length; i++) {\n\t\t\tmaxVerts = Math.max(maxVerts, vertexBuffers[i].numVertices);\n\t\t}\n\t\tif (numIndices > 0) {\n\t\t\tif (maxVerts > 0xFFFF && this._device.extUintElement) {\n\t\t\t\tindexBuffer = new IndexBuffer(this._device, INDEXFORMAT_UINT32, numIndices);\n\t\t\t\tindexData = new Uint32Array(indexBuffer.lock());\n\t\t\t} else {\n\t\t\t\tindexBuffer = new IndexBuffer(this._device, INDEXFORMAT_UINT16, numIndices);\n\t\t\t\tindexData = new Uint16Array(indexBuffer.lock());\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tbuffer: indexBuffer,\n\t\t\tdata: indexData\n\t\t};\n\t}\n\t_parseMeshes(data, skins, morphs, vertexBuffers, indexBuffer, indexData) {\n\t\tconst modelData = data.model;\n\t\tconst meshes = [];\n\t\tlet indexBase = 0;\n\t\tfor (let i = 0; i < modelData.meshes.length; i++) {\n\t\t\tconst meshData = modelData.meshes[i];\n\t\t\tconst meshAabb = meshData.aabb;\n\t\t\tconst min = meshAabb.min;\n\t\t\tconst max = meshAabb.max;\n\t\t\tconst aabb = new BoundingBox(new Vec3((max[0] + min[0]) * 0.5, (max[1] + min[1]) * 0.5, (max[2] + min[2]) * 0.5), new Vec3((max[0] - min[0]) * 0.5, (max[1] - min[1]) * 0.5, (max[2] - min[2]) * 0.5));\n\t\t\tconst indexed = meshData.indices !== undefined;\n\t\t\tconst mesh = new Mesh(this._device);\n\t\t\tmesh.vertexBuffer = vertexBuffers[meshData.vertices];\n\t\t\tmesh.indexBuffer[0] = indexed ? indexBuffer : null;\n\t\t\tmesh.primitive[0].type = JSON_PRIMITIVE_TYPE[meshData.type];\n\t\t\tmesh.primitive[0].base = indexed ? meshData.base + indexBase : meshData.base;\n\t\t\tmesh.primitive[0].count = meshData.count;\n\t\t\tmesh.primitive[0].indexed = indexed;\n\t\t\tmesh.skin = meshData.skin !== undefined ? skins[meshData.skin] : null;\n\t\t\tmesh.morph = meshData.morph !== undefined ? morphs[meshData.morph] : null;\n\t\t\tmesh.aabb = aabb;\n\t\t\tif (indexed) {\n\t\t\t\tindexData.set(meshData.indices, indexBase);\n\t\t\t\tindexBase += meshData.indices.length;\n\t\t\t}\n\t\t\tmeshes.push(mesh);\n\t\t}\n\t\tif (indexBuffer !== null) {\n\t\t\tindexBuffer.unlock();\n\t\t}\n\t\treturn meshes;\n\t}\n\t_parseMeshInstances(data, nodes, meshes, skins, skinInstances, morphs, morphInstances) {\n\t\tconst modelData = data.model;\n\t\tconst meshInstances = [];\n\t\tlet i;\n\t\tfor (i = 0; i < modelData.meshInstances.length; i++) {\n\t\t\tconst meshInstanceData = modelData.meshInstances[i];\n\t\t\tconst node = nodes[meshInstanceData.node];\n\t\t\tconst mesh = meshes[meshInstanceData.mesh];\n\t\t\tconst meshInstance = new MeshInstance(mesh, this._defaultMaterial, node);\n\t\t\tif (mesh.skin) {\n\t\t\t\tconst skinIndex = skins.indexOf(mesh.skin);\n\t\t\t\tmeshInstance.skinInstance = skinInstances[skinIndex];\n\t\t\t}\n\t\t\tif (mesh.morph) {\n\t\t\t\tconst morphIndex = morphs.indexOf(mesh.morph);\n\t\t\t\tmeshInstance.morphInstance = morphInstances[morphIndex];\n\t\t\t}\n\t\t\tmeshInstances.push(meshInstance);\n\t\t}\n\t\treturn meshInstances;\n\t}\n}\n\nclass ModelHandler extends ResourceHandler {\n\tconstructor(app) {\n\t\tsuper(app, 'model');\n\t\tthis._parsers = [];\n\t\tthis.device = app.graphicsDevice;\n\t\tthis.assets = app.assets;\n\t\tthis.defaultMaterial = getDefaultMaterial(this.device);\n\t\tthis.addParser(new JsonModelParser(this), (url, data) => {\n\t\t\treturn path.getExtension(url) === '.json';\n\t\t});\n\t\tthis.addParser(new GlbModelParser(this), (url, data) => {\n\t\t\treturn path.getExtension(url) === '.glb';\n\t\t});\n\t}\n\tload(url, callback, asset) {\n\t\tif (typeof url === 'string') {\n\t\t\turl = {\n\t\t\t\tload: url,\n\t\t\t\toriginal: url\n\t\t\t};\n\t\t}\n\t\tconst options = {\n\t\t\tretry: this.maxRetries > 0,\n\t\t\tmaxRetries: this.maxRetries\n\t\t};\n\t\tif (url.load.startsWith('blob:') || url.load.startsWith('data:')) {\n\t\t\tif (path.getExtension(url.original).toLowerCase() === '.glb') {\n\t\t\t\toptions.responseType = Http.ResponseType.ARRAY_BUFFER;\n\t\t\t} else {\n\t\t\t\toptions.responseType = Http.ResponseType.JSON;\n\t\t\t}\n\t\t}\n\t\thttp.get(url.load, options, (err, response) => {\n\t\t\tif (!callback) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!err) {\n\t\t\t\tfor (let i = 0; i < this._parsers.length; i++) {\n\t\t\t\t\tconst p = this._parsers[i];\n\t\t\t\t\tif (p.decider(url.original, response)) {\n\t\t\t\t\t\tp.parser.parse(response, (err, parseResult) => {\n\t\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\t\tcallback(err);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcallback(null, parseResult);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, asset);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcallback('No parsers found');\n\t\t\t} else {\n\t\t\t\tcallback(`Error loading model: ${url.original} [${err}]`);\n\t\t\t}\n\t\t});\n\t}\n\topen(url, data) {\n\t\treturn data;\n\t}\n\tpatch(asset, assets) {\n\t\tif (!asset.resource) {\n\t\t\treturn;\n\t\t}\n\t\tconst data = asset.data;\n\t\tconst self = this;\n\t\tasset.resource.meshInstances.forEach((meshInstance, i) => {\n\t\t\tif (data.mapping) {\n\t\t\t\tconst handleMaterial = function handleMaterial(asset) {\n\t\t\t\t\tif (asset.resource) {\n\t\t\t\t\t\tmeshInstance.material = asset.resource;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tasset.once('load', handleMaterial);\n\t\t\t\t\t\tassets.load(asset);\n\t\t\t\t\t}\n\t\t\t\t\tasset.once('remove', asset => {\n\t\t\t\t\t\tif (meshInstance.material === asset.resource) {\n\t\t\t\t\t\t\tmeshInstance.material = self.defaultMaterial;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t\tif (!data.mapping[i]) {\n\t\t\t\t\tmeshInstance.material = self.defaultMaterial;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst id = data.mapping[i].material;\n\t\t\t\tconst url = data.mapping[i].path;\n\t\t\t\tlet material;\n\t\t\t\tif (id !== undefined) {\n\t\t\t\t\tif (!id) {\n\t\t\t\t\t\tmeshInstance.material = self.defaultMaterial;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmaterial = assets.get(id);\n\t\t\t\t\t\tif (material) {\n\t\t\t\t\t\t\thandleMaterial(material);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tassets.once(`add:${id}`, handleMaterial);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (url) {\n\t\t\t\t\tconst path = asset.getAbsoluteUrl(data.mapping[i].path);\n\t\t\t\t\tmaterial = assets.getByUrl(path);\n\t\t\t\t\tif (material) {\n\t\t\t\t\t\thandleMaterial(material);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tassets.once(`add:url:${path}`, handleMaterial);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\taddParser(parser, decider) {\n\t\tthis._parsers.push({\n\t\t\tparser: parser,\n\t\t\tdecider: decider\n\t\t});\n\t}\n}\n\nclass SceneHandler extends ResourceHandler {\n\tconstructor(app) {\n\t\tsuper(app, 'scene');\n\t}\n\tload(url, callback) {\n\t\tSceneUtils.load(url, this.maxRetries, callback);\n\t}\n\topen(url, data) {\n\t\tthis._app.systems.script.preloading = true;\n\t\tconst parser = new SceneParser(this._app, false);\n\t\tconst parent = parser.parse(data);\n\t\tconst scene = this._app.scene;\n\t\tscene.root = parent;\n\t\tthis._app.applySceneSettings(data.settings);\n\t\tthis._app.systems.script.preloading = false;\n\t\treturn scene;\n\t}\n}\n\nconst reservedScriptNames = new Set(['system', 'entity', 'create', 'destroy', 'swap', 'move', 'data', 'scripts', '_scripts', '_scriptsIndex', '_scriptsData', 'enabled', '_oldState', 'onEnable', 'onDisable', 'onPostStateChange', '_onSetEnabled', '_checkState', '_onBeforeRemove', '_onInitializeAttributes', '_onInitialize', '_onPostInitialize', '_onUpdate', '_onPostUpdate', '_callbacks', '_callbackActive', 'has', 'get', 'on', 'off', 'fire', 'once', 'hasEvent']);\nfunction getReservedScriptNames() {\n\treturn reservedScriptNames;\n}\nfunction createScript(name, app) {\n\tif (reservedScriptNames.has(name)) {\n\t\tthrow new Error(`Script name '${name}' is reserved, please rename the script`);\n\t}\n\tconst scriptType = function scriptType(args) {\n\t\tEventHandler.prototype.initEventHandler.call(this);\n\t\tScriptType.prototype.initScriptType.call(this, args);\n\t};\n\tscriptType.prototype = Object.create(ScriptType.prototype);\n\tscriptType.prototype.constructor = scriptType;\n\tscriptType.extend = ScriptType.extend;\n\tscriptType.attributes = new ScriptAttributes(scriptType);\n\tregisterScript(scriptType, name, app);\n\treturn scriptType;\n}\nconst reservedAttributes = {};\nScriptAttributes.reservedNames.forEach((value, value2, set) => {\n\treservedAttributes[value] = 1;\n});\ncreateScript.reservedAttributes = reservedAttributes;\nfunction registerScript(script, name, app) {\n\tif (typeof script !== 'function') {\n\t\tthrow new Error(`script class: '${script}' must be a constructor function (i.e. class).`);\n\t}\n\tif (!(script.prototype instanceof Script)) {\n\t\tthrow new Error(`script class: '${ScriptType.__getScriptName(script)}' does not extend pc.Script.`);\n\t}\n\tname = name || script.__name || ScriptType.__getScriptName(script);\n\tif (reservedScriptNames.has(name)) {\n\t\tthrow new Error(`script name: '${name}' is reserved, please change script name`);\n\t}\n\tscript.__name = name;\n\tconst registry = app ? app.scripts : AppBase.getApplication().scripts;\n\tregistry.add(script);\n\tScriptTypes.push(script);\n}\n\nconst toLowerCamelCase = str => str[0].toLowerCase() + str.substring(1);\nclass ScriptHandler extends ResourceHandler {\n\tconstructor(app) {\n\t\tsuper(app, 'script');\n\t\tthis._scripts = {};\n\t\tthis._cache = {};\n\t}\n\tclearCache() {\n\t\tfor (const key in this._cache) {\n\t\t\tconst element = this._cache[key];\n\t\t\tconst parent = element.parentNode;\n\t\t\tif (parent) {\n\t\t\t\tparent.removeChild(element);\n\t\t\t}\n\t\t}\n\t\tthis._cache = {};\n\t}\n\tload(url, callback) {\n\t\tif (typeof url === 'string') {\n\t\t\turl = {\n\t\t\t\tload: url,\n\t\t\t\toriginal: url\n\t\t\t};\n\t\t}\n\t\tconst self = this;\n\t\tscript.app = this._app;\n\t\tconst onScriptLoad = (url.load, (err, url, extra) => {\n\t\t\tif (!err) {\n\t\t\t\tif (script.legacy) {\n\t\t\t\t\tlet Type = null;\n\t\t\t\t\tif (ScriptTypes._types.length) {\n\t\t\t\t\t\tType = ScriptTypes._types.pop();\n\t\t\t\t\t}\n\t\t\t\t\tif (Type) {\n\t\t\t\t\t\tthis._scripts[url] = Type;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tType = null;\n\t\t\t\t\t}\n\t\t\t\t\tcallback(null, Type, extra);\n\t\t\t\t} else {\n\t\t\t\t\tconst obj = {};\n\t\t\t\t\tfor (let i = 0; i < ScriptTypes._types.length; i++) {\n\t\t\t\t\t\tobj[ScriptTypes._types[i].name] = ScriptTypes._types[i];\n\t\t\t\t\t}\n\t\t\t\t\tScriptTypes._types.length = 0;\n\t\t\t\t\tcallback(null, obj, extra);\n\t\t\t\t\tdelete self._loader._cache[ResourceLoader.makeKey(url, 'script')];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcallback(err);\n\t\t\t}\n\t\t});\n\t\tconst [basePath] = url.load.split('?');\n\t\tconst isEsmScript = basePath.endsWith('.mjs');\n\t\tif (isEsmScript) {\n\t\t\tthis._loadModule(basePath, onScriptLoad);\n\t\t} else {\n\t\t\tthis._loadScript(url.load, onScriptLoad);\n\t\t}\n\t}\n\topen(url, data) {\n\t\treturn data;\n\t}\n\tpatch(asset, assets) {}\n\t_loadScript(url, callback) {\n\t\tconst head = document.head;\n\t\tconst element = document.createElement('script');\n\t\tthis._cache[url] = element;\n\t\telement.async = false;\n\t\telement.addEventListener('error', e => {\n\t\t\tcallback(`Script: ${e.target.src} failed to load`);\n\t\t}, false);\n\t\tlet done = false;\n\t\telement.onload = element.onreadystatechange = function () {\n\t\t\tif (!done && (!this.readyState || this.readyState === 'loaded' || this.readyState === 'complete')) {\n\t\t\t\tdone = true;\n\t\t\t\tcallback(null, url, element);\n\t\t\t}\n\t\t};\n\t\telement.src = url;\n\t\thead.appendChild(element);\n\t}\n\t_loadModule(url, callback) {\n\t\tconst baseUrl = platform.browser ? window.location.origin + window.location.pathname : import.meta.url;\n\t\tconst importUrl = new URL(url, baseUrl);\n\t\timport(/* @vite-ignore */ /* webpackIgnore: true */ importUrl.toString()).then(module => {\n\t\t\tconst filename = importUrl.pathname.split('/').pop();\n\t\t\tconst scriptSchema = this._app.assets.find(filename, 'script').data.scripts;\n\t\t\tfor (const key in module) {\n\t\t\t\tconst scriptClass = module[key];\n\t\t\t\tconst extendsScriptType = scriptClass.prototype instanceof Script;\n\t\t\t\tif (extendsScriptType) {\n\t\t\t\t\tconst scriptName = toLowerCamelCase(scriptClass.name);\n\t\t\t\t\tregisterScript(scriptClass, scriptName);\n\t\t\t\t\tthis._app.scripts.addSchema(scriptName, scriptSchema[scriptName]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcallback(null, url, null);\n\t\t}).catch(err => {\n\t\t\tcallback(err);\n\t\t});\n\t}\n}\n\nclass ShaderHandler extends ResourceHandler {\n\tconstructor(app) {\n\t\tsuper(app, 'shader');\n\t\tthis.decoder = null;\n\t}\n\tload(url, callback) {\n\t\tif (typeof url === 'string') {\n\t\t\turl = {\n\t\t\t\tload: url,\n\t\t\t\toriginal: url\n\t\t\t};\n\t\t}\n\t\thttp.get(url.load, {\n\t\t\tretry: this.maxRetries > 0,\n\t\t\tmaxRetries: this.maxRetries\n\t\t}, (err, response) => {\n\t\t\tif (!err) {\n\t\t\t\tcallback(null, response);\n\t\t\t} else {\n\t\t\t\tcallback(`Error loading shader resource: ${url.original} [${err}]`);\n\t\t\t}\n\t\t});\n\t}\n\topenBinary(data) {\n\t\tvar _this$decoder;\n\t\t(_this$decoder = this.decoder) != null ? _this$decoder : this.decoder = new TextDecoder('utf-8');\n\t\treturn this.decoder.decode(data);\n\t}\n}\n\nfunction onTextureAtlasLoaded(atlasAsset) {\n\tconst spriteAsset = this;\n\tif (spriteAsset.resource) {\n\t\tspriteAsset.resource.atlas = atlasAsset.resource;\n\t}\n}\nfunction onTextureAtlasAdded(atlasAsset) {\n\tconst spriteAsset = this;\n\tspriteAsset.registry.load(atlasAsset);\n}\nclass SpriteHandler extends ResourceHandler {\n\tconstructor(app) {\n\t\tsuper(app, 'sprite');\n\t\tthis._assets = app.assets;\n\t\tthis._device = app.graphicsDevice;\n\t}\n\tload(url, callback) {\n\t\tif (typeof url === 'string') {\n\t\t\turl = {\n\t\t\t\tload: url,\n\t\t\t\toriginal: url\n\t\t\t};\n\t\t}\n\t\tif (path.getExtension(url.original) === '.json') {\n\t\t\thttp.get(url.load, {\n\t\t\t\tretry: this.maxRetries > 0,\n\t\t\t\tmaxRetries: this.maxRetries\n\t\t\t}, (err, response) => {\n\t\t\t\tif (!err) {\n\t\t\t\t\tcallback(null, response);\n\t\t\t\t} else {\n\t\t\t\t\tcallback(err);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\topen(url, data) {\n\t\tconst sprite = new Sprite(this._device);\n\t\tif (url) {\n\t\t\tsprite.__data = data;\n\t\t}\n\t\treturn sprite;\n\t}\n\tpatch(asset, assets) {\n\t\tconst sprite = asset.resource;\n\t\tif (sprite.__data) {\n\t\t\tasset.data.pixelsPerUnit = sprite.__data.pixelsPerUnit;\n\t\t\tasset.data.renderMode = sprite.__data.renderMode;\n\t\t\tasset.data.frameKeys = sprite.__data.frameKeys;\n\t\t\tif (sprite.__data.textureAtlasAsset) {\n\t\t\t\tconst atlas = assets.getByUrl(sprite.__data.textureAtlasAsset);\n\t\t\t\tif (atlas) {\n\t\t\t\t\tasset.data.textureAtlasAsset = atlas.id;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.warn(`Could not find textureatlas with url: ${sprite.__data.textureAtlasAsset}`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tsprite.startUpdate();\n\t\tsprite.renderMode = asset.data.renderMode;\n\t\tsprite.pixelsPerUnit = asset.data.pixelsPerUnit;\n\t\tsprite.frameKeys = asset.data.frameKeys;\n\t\tthis._updateAtlas(asset);\n\t\tsprite.endUpdate();\n\t\tasset.off('change', this._onAssetChange, this);\n\t\tasset.on('change', this._onAssetChange, this);\n\t}\n\t_updateAtlas(asset) {\n\t\tconst sprite = asset.resource;\n\t\tif (!asset.data.textureAtlasAsset) {\n\t\t\tsprite.atlas = null;\n\t\t\treturn;\n\t\t}\n\t\tthis._assets.off(`load:${asset.data.textureAtlasAsset}`, onTextureAtlasLoaded, asset);\n\t\tthis._assets.on(`load:${asset.data.textureAtlasAsset}`, onTextureAtlasLoaded, asset);\n\t\tconst atlasAsset = this._assets.get(asset.data.textureAtlasAsset);\n\t\tif (atlasAsset && atlasAsset.resource) {\n\t\t\tsprite.atlas = atlasAsset.resource;\n\t\t} else {\n\t\t\tif (!atlasAsset) {\n\t\t\t\tthis._assets.off(`add:${asset.data.textureAtlasAsset}`, onTextureAtlasAdded, asset);\n\t\t\t\tthis._assets.on(`add:${asset.data.textureAtlasAsset}`, onTextureAtlasAdded, asset);\n\t\t\t} else {\n\t\t\t\tthis._assets.load(atlasAsset);\n\t\t\t}\n\t\t}\n\t}\n\t_onAssetChange(asset, attribute, value, oldValue) {\n\t\tif (attribute === 'data') {\n\t\t\tif (value && value.textureAtlasAsset && oldValue && value.textureAtlasAsset !== oldValue.textureAtlasAsset) {\n\t\t\t\tthis._assets.off(`load:${oldValue.textureAtlasAsset}`, onTextureAtlasLoaded, asset);\n\t\t\t\tthis._assets.off(`add:${oldValue.textureAtlasAsset}`, onTextureAtlasAdded, asset);\n\t\t\t}\n\t\t}\n\t}\n}\n\nclass Template {\n\tconstructor(app, data) {\n\t\tthis._app = void 0;\n\t\tthis._data = void 0;\n\t\tthis._templateRoot = null;\n\t\tthis._app = app;\n\t\tthis._data = data;\n\t}\n\tinstantiate() {\n\t\tif (!this._templateRoot) {\n\t\t\tthis._parseTemplate();\n\t\t}\n\t\treturn this._templateRoot.clone();\n\t}\n\t_parseTemplate() {\n\t\tconst parser = new SceneParser(this._app, true);\n\t\tthis._templateRoot = parser.parse(this._data);\n\t}\n}\n\nclass TemplateHandler extends ResourceHandler {\n\tconstructor(app) {\n\t\tsuper(app, 'template');\n\t\tthis.decoder = null;\n\t}\n\tload(url, callback) {\n\t\tif (typeof url === 'string') {\n\t\t\turl = {\n\t\t\t\tload: url,\n\t\t\t\toriginal: url\n\t\t\t};\n\t\t}\n\t\tconst options = {\n\t\t\tretry: this.maxRetries > 0,\n\t\t\tmaxRetries: this.maxRetries\n\t\t};\n\t\thttp.get(url.load, options, (err, response) => {\n\t\t\tif (err) {\n\t\t\t\tcallback(`Error requesting template: ${url.original}`);\n\t\t\t} else {\n\t\t\t\tcallback(err, response);\n\t\t\t}\n\t\t});\n\t}\n\topen(url, data) {\n\t\treturn new Template(this._app, data);\n\t}\n\topenBinary(data) {\n\t\tvar _this$decoder;\n\t\t(_this$decoder = this.decoder) != null ? _this$decoder : this.decoder = new TextDecoder('utf-8');\n\t\treturn new Template(this._app, JSON.parse(this.decoder.decode(data)));\n\t}\n}\n\nclass TextHandler extends ResourceHandler {\n\tconstructor(app) {\n\t\tsuper(app, 'text');\n\t\tthis.decoder = null;\n\t}\n\tload(url, callback) {\n\t\tif (typeof url === 'string') {\n\t\t\turl = {\n\t\t\t\tload: url,\n\t\t\t\toriginal: url\n\t\t\t};\n\t\t}\n\t\thttp.get(url.load, {\n\t\t\tretry: this.maxRetries > 0,\n\t\t\tmaxRetries: this.maxRetries\n\t\t}, (err, response) => {\n\t\t\tif (!err) {\n\t\t\t\tcallback(null, response);\n\t\t\t} else {\n\t\t\t\tcallback(`Error loading text resource: ${url.original} [${err}]`);\n\t\t\t}\n\t\t});\n\t}\n\topenBinary(data) {\n\t\tvar _this$decoder;\n\t\t(_this$decoder = this.decoder) != null ? _this$decoder : this.decoder = new TextDecoder('utf-8');\n\t\treturn this.decoder.decode(data);\n\t}\n}\n\nconst JSON_ADDRESS_MODE$1 = {\n\t'repeat': ADDRESS_REPEAT,\n\t'clamp': ADDRESS_CLAMP_TO_EDGE,\n\t'mirror': ADDRESS_MIRRORED_REPEAT\n};\nconst JSON_FILTER_MODE$1 = {\n\t'nearest': FILTER_NEAREST,\n\t'linear': FILTER_LINEAR,\n\t'nearest_mip_nearest': FILTER_NEAREST_MIPMAP_NEAREST,\n\t'linear_mip_nearest': FILTER_LINEAR_MIPMAP_NEAREST,\n\t'nearest_mip_linear': FILTER_NEAREST_MIPMAP_LINEAR,\n\t'linear_mip_linear': FILTER_LINEAR_MIPMAP_LINEAR\n};\nconst regexFrame = /^data\\.frames\\.(\\d+)$/;\nclass TextureAtlasHandler extends ResourceHandler {\n\tconstructor(app) {\n\t\tsuper(app, 'textureatlas');\n\t\tthis._loader = app.loader;\n\t}\n\tload(url, callback) {\n\t\tif (typeof url === 'string') {\n\t\t\turl = {\n\t\t\t\tload: url,\n\t\t\t\toriginal: url\n\t\t\t};\n\t\t}\n\t\tconst self = this;\n\t\tconst handler = this._loader.getHandler('texture');\n\t\tif (path.getExtension(url.original) === '.json') {\n\t\t\thttp.get(url.load, {\n\t\t\t\tretry: this.maxRetries > 0,\n\t\t\t\tmaxRetries: this.maxRetries\n\t\t\t}, (err, response) => {\n\t\t\t\tif (!err) {\n\t\t\t\t\tconst textureUrl = url.original.replace('.json', '.png');\n\t\t\t\t\tself._loader.load(textureUrl, 'texture', (err, texture) => {\n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\tcallback(err);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcallback(null, {\n\t\t\t\t\t\t\t\tdata: response,\n\t\t\t\t\t\t\t\ttexture: texture\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tcallback(err);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\thandler.load(url, callback);\n\t\t}\n\t}\n\topen(url, data) {\n\t\tconst resource = new TextureAtlas();\n\t\tif (data.texture && data.data) {\n\t\t\tresource.texture = data.texture;\n\t\t\tresource.__data = data.data;\n\t\t} else {\n\t\t\tconst handler = this._loader.getHandler('texture');\n\t\t\tconst texture = handler.open(url, data);\n\t\t\tif (!texture) return null;\n\t\t\tresource.texture = texture;\n\t\t}\n\t\treturn resource;\n\t}\n\tpatch(asset, assets) {\n\t\tif (!asset.resource) {\n\t\t\treturn;\n\t\t}\n\t\tif (asset.resource.__data) {\n\t\t\tif (asset.resource.__data.minfilter !== undefined) asset.data.minfilter = asset.resource.__data.minfilter;\n\t\t\tif (asset.resource.__data.magfilter !== undefined) asset.data.magfilter = asset.resource.__data.magfilter;\n\t\t\tif (asset.resource.__data.addressu !== undefined) asset.data.addressu = asset.resource.__data.addressu;\n\t\t\tif (asset.resource.__data.addressv !== undefined) asset.data.addressv = asset.resource.__data.addressv;\n\t\t\tif (asset.resource.__data.mipmaps !== undefined) asset.data.mipmaps = asset.resource.__data.mipmaps;\n\t\t\tif (asset.resource.__data.anisotropy !== undefined) asset.data.anisotropy = asset.resource.__data.anisotropy;\n\t\t\tif (asset.resource.__data.rgbm !== undefined) asset.data.rgbm = !!asset.resource.__data.rgbm;\n\t\t\tasset.data.frames = asset.resource.__data.frames;\n\t\t\tdelete asset.resource.__data;\n\t\t}\n\t\tconst texture = asset.resource.texture;\n\t\tif (texture) {\n\t\t\ttexture.name = asset.name;\n\t\t\tif (asset.data.hasOwnProperty('minfilter') && texture.minFilter !== JSON_FILTER_MODE$1[asset.data.minfilter]) {\n\t\t\t\ttexture.minFilter = JSON_FILTER_MODE$1[asset.data.minfilter];\n\t\t\t}\n\t\t\tif (asset.data.hasOwnProperty('magfilter') && texture.magFilter !== JSON_FILTER_MODE$1[asset.data.magfilter]) {\n\t\t\t\ttexture.magFilter = JSON_FILTER_MODE$1[asset.data.magfilter];\n\t\t\t}\n\t\t\tif (asset.data.hasOwnProperty('addressu') && texture.addressU !== JSON_ADDRESS_MODE$1[asset.data.addressu]) {\n\t\t\t\ttexture.addressU = JSON_ADDRESS_MODE$1[asset.data.addressu];\n\t\t\t}\n\t\t\tif (asset.data.hasOwnProperty('addressv') && texture.addressV !== JSON_ADDRESS_MODE$1[asset.data.addressv]) {\n\t\t\t\ttexture.addressV = JSON_ADDRESS_MODE$1[asset.data.addressv];\n\t\t\t}\n\t\t\tif (asset.data.hasOwnProperty('mipmaps') && texture.mipmaps !== asset.data.mipmaps) {\n\t\t\t\ttexture.mipmaps = asset.data.mipmaps;\n\t\t\t}\n\t\t\tif (asset.data.hasOwnProperty('anisotropy') && texture.anisotropy !== asset.data.anisotropy) {\n\t\t\t\ttexture.anisotropy = asset.data.anisotropy;\n\t\t\t}\n\t\t\tif (asset.data.hasOwnProperty('rgbm')) {\n\t\t\t\tconst type = asset.data.rgbm ? TEXTURETYPE_RGBM : TEXTURETYPE_DEFAULT;\n\t\t\t\tif (texture.type !== type) {\n\t\t\t\t\ttexture.type = type;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tasset.resource.texture = texture;\n\t\tconst frames = {};\n\t\tfor (const key in asset.data.frames) {\n\t\t\tconst frame = asset.data.frames[key];\n\t\t\tframes[key] = {\n\t\t\t\trect: new Vec4(frame.rect),\n\t\t\t\tpivot: new Vec2(frame.pivot),\n\t\t\t\tborder: new Vec4(frame.border)\n\t\t\t};\n\t\t}\n\t\tasset.resource.frames = frames;\n\t\tasset.off('change', this._onAssetChange, this);\n\t\tasset.on('change', this._onAssetChange, this);\n\t}\n\t_onAssetChange(asset, attribute, value) {\n\t\tlet frame;\n\t\tif (attribute === 'data' || attribute === 'data.frames') {\n\t\t\tconst frames = {};\n\t\t\tfor (const key in value.frames) {\n\t\t\t\tframe = value.frames[key];\n\t\t\t\tframes[key] = {\n\t\t\t\t\trect: new Vec4(frame.rect),\n\t\t\t\t\tpivot: new Vec2(frame.pivot),\n\t\t\t\t\tborder: new Vec4(frame.border)\n\t\t\t\t};\n\t\t\t}\n\t\t\tasset.resource.frames = frames;\n\t\t} else {\n\t\t\tconst match = attribute.match(regexFrame);\n\t\t\tif (match) {\n\t\t\t\tconst frameKey = match[1];\n\t\t\t\tif (value) {\n\t\t\t\t\tif (!asset.resource.frames[frameKey]) {\n\t\t\t\t\t\tasset.resource.frames[frameKey] = {\n\t\t\t\t\t\t\trect: new Vec4(value.rect),\n\t\t\t\t\t\t\tpivot: new Vec2(value.pivot),\n\t\t\t\t\t\t\tborder: new Vec4(value.border)\n\t\t\t\t\t\t};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tframe = asset.resource.frames[frameKey];\n\t\t\t\t\t\tframe.rect.set(value.rect[0], value.rect[1], value.rect[2], value.rect[3]);\n\t\t\t\t\t\tframe.pivot.set(value.pivot[0], value.pivot[1]);\n\t\t\t\t\t\tframe.border.set(value.border[0], value.border[1], value.border[2], value.border[3]);\n\t\t\t\t\t}\n\t\t\t\t\tasset.resource.fire('set:frame', frameKey, asset.resource.frames[frameKey]);\n\t\t\t\t} else {\n\t\t\t\t\tif (asset.resource.frames[frameKey]) {\n\t\t\t\t\t\tdelete asset.resource.frames[frameKey];\n\t\t\t\t\t\tasset.resource.fire('remove:frame', frameKey);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction BasisWorker() {\n\tconst BASIS_FORMAT = {\n\t\tcTFETC1: 0,\n\t\tcTFETC2: 1,\n\t\tcTFBC1: 2,\n\t\tcTFBC3: 3,\n\t\tcTFPVRTC1_4_RGB: 8,\n\t\tcTFPVRTC1_4_RGBA: 9,\n\t\tcTFASTC_4x4: 10,\n\t\tcTFATC_RGB: 11,\n\t\tcTFATC_RGBA_INTERPOLATED_ALPHA: 12,\n\t\tcTFRGBA32: 13,\n\t\tcTFRGB565: 14,\n\t\tcTFRGBA4444: 16\n\t};\n\tconst opaqueMapping = {\n\t\tastc: BASIS_FORMAT.cTFASTC_4x4,\n\t\tdxt: BASIS_FORMAT.cTFBC1,\n\t\tetc1: BASIS_FORMAT.cTFETC1,\n\t\tetc2: BASIS_FORMAT.cTFETC1,\n\t\tpvr: BASIS_FORMAT.cTFPVRTC1_4_RGB,\n\t\tatc: BASIS_FORMAT.cTFATC_RGB,\n\t\tnone: BASIS_FORMAT.cTFRGB565\n\t};\n\tconst alphaMapping = {\n\t\tastc: BASIS_FORMAT.cTFASTC_4x4,\n\t\tdxt: BASIS_FORMAT.cTFBC3,\n\t\tetc1: BASIS_FORMAT.cTFRGBA4444,\n\t\tetc2: BASIS_FORMAT.cTFETC2,\n\t\tpvr: BASIS_FORMAT.cTFPVRTC1_4_RGBA,\n\t\tatc: BASIS_FORMAT.cTFATC_RGBA_INTERPOLATED_ALPHA,\n\t\tnone: BASIS_FORMAT.cTFRGBA4444\n\t};\n\tconst PIXEL_FORMAT = {\n\t\tETC1: 21,\n\t\tETC2_RGB: 22,\n\t\tETC2_RGBA: 23,\n\t\tDXT1: 8,\n\t\tDXT5: 10,\n\t\tPVRTC_4BPP_RGB_1: 26,\n\t\tPVRTC_4BPP_RGBA_1: 27,\n\t\tASTC_4x4: 28,\n\t\tATC_RGB: 29,\n\t\tATC_RGBA: 30,\n\t\tR8_G8_B8_A8: 7,\n\t\tR5_G6_B5: 3,\n\t\tR4_G4_B4_A4: 5\n\t};\n\tconst basisToEngineMapping = (basisFormat, deviceDetails) => {\n\t\tswitch (basisFormat) {\n\t\t\tcase BASIS_FORMAT.cTFETC1:\n\t\t\t\treturn deviceDetails.formats.etc1 ? PIXEL_FORMAT.ETC1 : PIXEL_FORMAT.ETC2_RGB;\n\t\t\tcase BASIS_FORMAT.cTFETC2:\n\t\t\t\treturn PIXEL_FORMAT.ETC2_RGBA;\n\t\t\tcase BASIS_FORMAT.cTFBC1:\n\t\t\t\treturn PIXEL_FORMAT.DXT1;\n\t\t\tcase BASIS_FORMAT.cTFBC3:\n\t\t\t\treturn PIXEL_FORMAT.DXT5;\n\t\t\tcase BASIS_FORMAT.cTFPVRTC1_4_RGB:\n\t\t\t\treturn PIXEL_FORMAT.PVRTC_4BPP_RGB_1;\n\t\t\tcase BASIS_FORMAT.cTFPVRTC1_4_RGBA:\n\t\t\t\treturn PIXEL_FORMAT.PVRTC_4BPP_RGBA_1;\n\t\t\tcase BASIS_FORMAT.cTFASTC_4x4:\n\t\t\t\treturn PIXEL_FORMAT.ASTC_4x4;\n\t\t\tcase BASIS_FORMAT.cTFATC_RGB:\n\t\t\t\treturn PIXEL_FORMAT.ATC_RGB;\n\t\t\tcase BASIS_FORMAT.cTFATC_RGBA_INTERPOLATED_ALPHA:\n\t\t\t\treturn PIXEL_FORMAT.ATC_RGBA;\n\t\t\tcase BASIS_FORMAT.cTFRGBA32:\n\t\t\t\treturn PIXEL_FORMAT.R8_G8_B8_A8;\n\t\t\tcase BASIS_FORMAT.cTFRGB565:\n\t\t\t\treturn PIXEL_FORMAT.R5_G6_B5;\n\t\t\tcase BASIS_FORMAT.cTFRGBA4444:\n\t\t\t\treturn PIXEL_FORMAT.R4_G4_B4_A4;\n\t\t}\n\t};\n\tconst unswizzleGGGR = data => {\n\t\tconst genB = function genB(R, G) {\n\t\t\tconst r = R * (2.0 / 255.0) - 1.0;\n\t\t\tconst g = G * (2.0 / 255.0) - 1.0;\n\t\t\tconst b = Math.sqrt(1.0 - Math.min(1.0, r * r + g * g));\n\t\t\treturn Math.max(0, Math.min(255, Math.floor((b + 1.0) * 0.5 * 255.0)));\n\t\t};\n\t\tfor (let offset = 0; offset < data.length; offset += 4) {\n\t\t\tconst R = data[offset + 3];\n\t\t\tconst G = data[offset + 1];\n\t\t\tdata[offset + 0] = R;\n\t\t\tdata[offset + 2] = genB(R, G);\n\t\t\tdata[offset + 3] = 255;\n\t\t}\n\t\treturn data;\n\t};\n\tconst pack565 = data => {\n\t\tconst result = new Uint16Array(data.length / 4);\n\t\tfor (let offset = 0; offset < data.length; offset += 4) {\n\t\t\tconst R = data[offset + 0];\n\t\t\tconst G = data[offset + 1];\n\t\t\tconst B = data[offset + 2];\n\t\t\tresult[offset / 4] = (R & 0xf8) << 8 | (G & 0xfc) << 3 | B >> 3;\n\t\t}\n\t\treturn result;\n\t};\n\tconst isPOT = (width, height) => {\n\t\treturn (width & width - 1) === 0 && (height & height - 1) === 0;\n\t};\n\tconst performanceNow = () => {\n\t\treturn typeof performance !== 'undefined' ? performance.now() : 0;\n\t};\n\tlet basis;\n\tlet rgbPriority;\n\tlet rgbaPriority;\n\tconst chooseTargetFormat = (deviceDetails, hasAlpha, isUASTC) => {\n\t\tif (isUASTC) {\n\t\t\tif (deviceDetails.formats.astc) {\n\t\t\t\treturn 'astc';\n\t\t\t}\n\t\t} else {\n\t\t\tif (hasAlpha) {\n\t\t\t\tif (deviceDetails.formats.etc2) {\n\t\t\t\t\treturn 'etc2';\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (deviceDetails.formats.etc1 || deviceDetails.formats.etc2) {\n\t\t\t\t\treturn 'etc1';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst testInOrder = priority => {\n\t\t\tfor (let i = 0; i < priority.length; ++i) {\n\t\t\t\tconst format = priority[i];\n\t\t\t\tif (deviceDetails.formats[format]) {\n\t\t\t\t\treturn format;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn 'none';\n\t\t};\n\t\treturn testInOrder(hasAlpha ? rgbaPriority : rgbPriority);\n\t};\n\tconst dimensionsValid = (width, height, format, webgl2) => {\n\t\tswitch (format) {\n\t\t\tcase BASIS_FORMAT.cTFETC1:\n\t\t\tcase BASIS_FORMAT.cTFETC2:\n\t\t\t\treturn true;\n\t\t\tcase BASIS_FORMAT.cTFBC1:\n\t\t\tcase BASIS_FORMAT.cTFBC3:\n\t\t\t\treturn (width & 0x3) === 0 && (height & 0x3) === 0;\n\t\t\tcase BASIS_FORMAT.cTFPVRTC1_4_RGB:\n\t\t\tcase BASIS_FORMAT.cTFPVRTC1_4_RGBA:\n\t\t\t\treturn isPOT(width, height) && (width === height || webgl2);\n\t\t\tcase BASIS_FORMAT.cTFASTC_4x4:\n\t\t\t\treturn true;\n\t\t\tcase BASIS_FORMAT.cTFATC_RGB:\n\t\t\tcase BASIS_FORMAT.cTFATC_RGBA_INTERPOLATED_ALPHA:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t};\n\tconst transcodeKTX2 = (url, data, options) => {\n\t\tif (!basis.KTX2File) {\n\t\t\tthrow new Error('Basis transcoder module does not include support for KTX2.');\n\t\t}\n\t\tconst funcStart = performanceNow();\n\t\tconst basisFile = new basis.KTX2File(new Uint8Array(data));\n\t\tconst width = basisFile.getWidth();\n\t\tconst height = basisFile.getHeight();\n\t\tconst levels = basisFile.getLevels();\n\t\tconst hasAlpha = !!basisFile.getHasAlpha();\n\t\tconst isUASTC = basisFile.isUASTC && basisFile.isUASTC();\n\t\tif (!width || !height || !levels) {\n\t\t\tbasisFile.close();\n\t\t\tbasisFile.delete();\n\t\t\tthrow new Error(`Invalid image dimensions url=${url} width=${width} height=${height} levels=${levels}`);\n\t\t}\n\t\tconst format = chooseTargetFormat(options.deviceDetails, hasAlpha, isUASTC);\n\t\tconst unswizzle = !!options.isGGGR && format === 'pvr';\n\t\tlet basisFormat;\n\t\tif (unswizzle) {\n\t\t\tbasisFormat = BASIS_FORMAT.cTFRGBA32;\n\t\t} else {\n\t\t\tbasisFormat = hasAlpha ? alphaMapping[format] : opaqueMapping[format];\n\t\t\tif (!dimensionsValid(width, height, basisFormat, options.deviceDetails.webgl2)) {\n\t\t\t\tbasisFormat = hasAlpha ? BASIS_FORMAT.cTFRGBA32 : BASIS_FORMAT.cTFRGB565;\n\t\t\t}\n\t\t}\n\t\tif (!basisFile.startTranscoding()) {\n\t\t\tbasisFile.close();\n\t\t\tbasisFile.delete();\n\t\t\tthrow new Error(`Failed to start transcoding url=${url}`);\n\t\t}\n\t\tlet i;\n\t\tconst levelData = [];\n\t\tfor (let mip = 0; mip < levels; ++mip) {\n\t\t\tconst dstSize = basisFile.getImageTranscodedSizeInBytes(mip, 0, 0, basisFormat);\n\t\t\tconst dst = new Uint8Array(dstSize);\n\t\t\tif (!basisFile.transcodeImage(dst, mip, 0, 0, basisFormat, 0, -1, -1)) {\n\t\t\t\tbasisFile.close();\n\t\t\t\tbasisFile.delete();\n\t\t\t\tthrow new Error(`Failed to transcode image url=${url}`);\n\t\t\t}\n\t\t\tconst is16BitFormat = basisFormat === BASIS_FORMAT.cTFRGB565 || basisFormat === BASIS_FORMAT.cTFRGBA4444;\n\t\t\tlevelData.push(is16BitFormat ? new Uint16Array(dst.buffer) : dst);\n\t\t}\n\t\tbasisFile.close();\n\t\tbasisFile.delete();\n\t\tif (unswizzle) {\n\t\t\tbasisFormat = BASIS_FORMAT.cTFRGB565;\n\t\t\tfor (i = 0; i < levelData.length; ++i) {\n\t\t\t\tlevelData[i] = pack565(unswizzleGGGR(levelData[i]));\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tformat: basisToEngineMapping(basisFormat, options.deviceDetails),\n\t\t\twidth: width,\n\t\t\theight: height,\n\t\t\tlevels: levelData,\n\t\t\tcubemap: false,\n\t\t\ttranscodeTime: performanceNow() - funcStart,\n\t\t\turl: url,\n\t\t\tunswizzledGGGR: unswizzle\n\t\t};\n\t};\n\tconst transcodeBasis = (url, data, options) => {\n\t\tconst funcStart = performanceNow();\n\t\tconst basisFile = new basis.BasisFile(new Uint8Array(data));\n\t\tconst width = basisFile.getImageWidth(0, 0);\n\t\tconst height = basisFile.getImageHeight(0, 0);\n\t\tconst images = basisFile.getNumImages();\n\t\tconst levels = basisFile.getNumLevels(0);\n\t\tconst hasAlpha = !!basisFile.getHasAlpha();\n\t\tconst isUASTC = basisFile.isUASTC && basisFile.isUASTC();\n\t\tif (!width || !height || !images || !levels) {\n\t\t\tbasisFile.close();\n\t\t\tbasisFile.delete();\n\t\t\tthrow new Error(`Invalid image dimensions url=${url} width=${width} height=${height} images=${images} levels=${levels}`);\n\t\t}\n\t\tconst format = chooseTargetFormat(options.deviceDetails, hasAlpha, isUASTC);\n\t\tconst unswizzle = !!options.isGGGR && format === 'pvr';\n\t\tlet basisFormat;\n\t\tif (unswizzle) {\n\t\t\tbasisFormat = BASIS_FORMAT.cTFRGBA32;\n\t\t} else {\n\t\t\tbasisFormat = hasAlpha ? alphaMapping[format] : opaqueMapping[format];\n\t\t\tif (!dimensionsValid(width, height, basisFormat, options.deviceDetails.webgl2)) {\n\t\t\t\tbasisFormat = hasAlpha ? BASIS_FORMAT.cTFRGBA32 : BASIS_FORMAT.cTFRGB565;\n\t\t\t}\n\t\t}\n\t\tif (!basisFile.startTranscoding()) {\n\t\t\tbasisFile.close();\n\t\t\tbasisFile.delete();\n\t\t\tthrow new Error(`Failed to start transcoding url=${url}`);\n\t\t}\n\t\tlet i;\n\t\tconst levelData = [];\n\t\tfor (let mip = 0; mip < levels; ++mip) {\n\t\t\tconst dstSize = basisFile.getImageTranscodedSizeInBytes(0, mip, basisFormat);\n\t\t\tconst dst = new Uint8Array(dstSize);\n\t\t\tif (!basisFile.transcodeImage(dst, 0, mip, basisFormat, 0, 0)) {\n\t\t\t\tif (mip === levels - 1 && dstSize === levelData[mip - 1].buffer.byteLength) {\n\t\t\t\t\tdst.set(new Uint8Array(levelData[mip - 1].buffer));\n\t\t\t\t\tconsole.warn(`Failed to transcode last mipmap level, using previous level instead url=${url}`);\n\t\t\t\t} else {\n\t\t\t\t\tbasisFile.close();\n\t\t\t\t\tbasisFile.delete();\n\t\t\t\t\tthrow new Error(`Failed to transcode image url=${url}`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst is16BitFormat = basisFormat === BASIS_FORMAT.cTFRGB565 || basisFormat === BASIS_FORMAT.cTFRGBA4444;\n\t\t\tlevelData.push(is16BitFormat ? new Uint16Array(dst.buffer) : dst);\n\t\t}\n\t\tbasisFile.close();\n\t\tbasisFile.delete();\n\t\tif (unswizzle) {\n\t\t\tbasisFormat = BASIS_FORMAT.cTFRGB565;\n\t\t\tfor (i = 0; i < levelData.length; ++i) {\n\t\t\t\tlevelData[i] = pack565(unswizzleGGGR(levelData[i]));\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tformat: basisToEngineMapping(basisFormat, options.deviceDetails),\n\t\t\twidth: width,\n\t\t\theight: height,\n\t\t\tlevels: levelData,\n\t\t\tcubemap: false,\n\t\t\ttranscodeTime: performanceNow() - funcStart,\n\t\t\turl: url,\n\t\t\tunswizzledGGGR: unswizzle\n\t\t};\n\t};\n\tconst transcode = (url, data, options) => {\n\t\treturn options.isKTX2 ? transcodeKTX2(url, data, options) : transcodeBasis(url, data, options);\n\t};\n\tconst workerTranscode = (url, data, options) => {\n\t\ttry {\n\t\t\tconst result = transcode(url, data, options);\n\t\t\tresult.levels = result.levels.map(v => v.buffer);\n\t\t\tself.postMessage({\n\t\t\t\turl: url,\n\t\t\t\tdata: result\n\t\t\t}, result.levels);\n\t\t} catch (err) {\n\t\t\tself.postMessage({\n\t\t\t\turl: url,\n\t\t\t\terr: err\n\t\t\t}, null);\n\t\t}\n\t};\n\tconst workerInit = (config, callback) => {\n\t\tconst instantiateWasmFunc = (imports, successCallback) => {\n\t\t\tWebAssembly.instantiate(config.module, imports).then(result => {\n\t\t\t\tsuccessCallback(result);\n\t\t\t}).catch(reason => {\n\t\t\t\tconsole.error(`instantiate failed + ${reason}`);\n\t\t\t});\n\t\t\treturn {};\n\t\t};\n\t\tself.BASIS(config.module ? {\n\t\t\tinstantiateWasm: instantiateWasmFunc\n\t\t} : null).then(instance => {\n\t\t\tinstance.initializeBasis();\n\t\t\tbasis = instance;\n\t\t\trgbPriority = config.rgbPriority;\n\t\t\trgbaPriority = config.rgbaPriority;\n\t\t\tcallback(null);\n\t\t});\n\t};\n\tconst queue = [];\n\tself.onmessage = message => {\n\t\tconst data = message.data;\n\t\tswitch (data.type) {\n\t\t\tcase 'init':\n\t\t\t\tworkerInit(data.config, () => {\n\t\t\t\t\tfor (let i = 0; i < queue.length; ++i) {\n\t\t\t\t\t\tworkerTranscode(queue[i].url, queue[i].data, queue[i].options);\n\t\t\t\t\t}\n\t\t\t\t\tqueue.length = 0;\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 'transcode':\n\t\t\t\tif (basis) {\n\t\t\t\t\tworkerTranscode(data.url, data.data, data.options);\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push(data);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t};\n}\n\nconst getCompressionFormats = device => {\n\treturn {\n\t\tastc: !!device.extCompressedTextureASTC,\n\t\tatc: !!device.extCompressedTextureATC,\n\t\tdxt: !!device.extCompressedTextureS3TC,\n\t\tetc1: !!device.extCompressedTextureETC1,\n\t\tetc2: !!device.extCompressedTextureETC,\n\t\tpvr: !!device.extCompressedTexturePVRTC\n\t};\n};\nconst prepareWorkerModules = (config, callback) => {\n\tconst getWorkerBlob = basisCode => {\n\t\tconst code = ['/* basis */', basisCode, '', `(${BasisWorker.toString()})()\\n\\n`].join('\\n');\n\t\treturn new Blob([code], {\n\t\t\ttype: 'application/javascript'\n\t\t});\n\t};\n\tconst wasmSupported = () => {\n\t\ttry {\n\t\t\tif (typeof WebAssembly === 'object' && typeof WebAssembly.instantiate === 'function') {\n\t\t\t\tconst module = new WebAssembly.Module(Uint8Array.of(0x0, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00));\n\t\t\t\tif (module instanceof WebAssembly.Module) {\n\t\t\t\t\treturn new WebAssembly.Instance(module) instanceof WebAssembly.Instance;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {}\n\t\treturn false;\n\t};\n\tconst sendResponse = (basisCode, module) => {\n\t\tcallback(null, {\n\t\t\tworkerUrl: URL.createObjectURL(getWorkerBlob(basisCode)),\n\t\t\tmodule: module,\n\t\t\trgbPriority: config.rgbPriority,\n\t\t\trgbaPriority: config.rgbaPriority\n\t\t});\n\t};\n\tconst options = {\n\t\tcache: true,\n\t\tresponseType: 'text',\n\t\tretry: config.maxRetries > 0,\n\t\tmaxRetries: config.maxRetries\n\t};\n\tif (config.glueUrl && config.wasmUrl && wasmSupported()) {\n\t\tlet basisCode = null;\n\t\tlet module = null;\n\t\thttp.get(config.glueUrl, options, (err, response) => {\n\t\t\tif (err) {\n\t\t\t\tcallback(err);\n\t\t\t} else {\n\t\t\t\tif (module) {\n\t\t\t\t\tsendResponse(response, module);\n\t\t\t\t} else {\n\t\t\t\t\tbasisCode = response;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tconst fetchPromise = fetch(config.wasmUrl);\n\t\tconst compileManual = () => {\n\t\t\tfetchPromise.then(result => result.arrayBuffer()).then(buffer => WebAssembly.compile(buffer)).then(module_ => {\n\t\t\t\tif (basisCode) {\n\t\t\t\t\tsendResponse(basisCode, module_);\n\t\t\t\t} else {\n\t\t\t\t\tmodule = module_;\n\t\t\t\t}\n\t\t\t}).catch(err => {\n\t\t\t\tcallback(err, null);\n\t\t\t});\n\t\t};\n\t\tif (WebAssembly.compileStreaming) {\n\t\t\tWebAssembly.compileStreaming(fetchPromise).then(module_ => {\n\t\t\t\tif (basisCode) {\n\t\t\t\t\tsendResponse(basisCode, module_);\n\t\t\t\t} else {\n\t\t\t\t\tmodule = module_;\n\t\t\t\t}\n\t\t\t}).catch(err => {\n\t\t\t\tcompileManual();\n\t\t\t});\n\t\t} else {\n\t\t\tcompileManual();\n\t\t}\n\t} else {\n\t\thttp.get(config.fallbackUrl, options, (err, response) => {\n\t\t\tif (err) {\n\t\t\t\tcallback(err, null);\n\t\t\t} else {\n\t\t\t\tsendResponse(response, null);\n\t\t\t}\n\t\t});\n\t}\n};\nclass BasisQueue {\n\tconstructor() {\n\t\tthis.callbacks = {};\n\t\tthis.queue = [];\n\t\tthis.clients = [];\n\t}\n\tenqueueJob(url, data, callback, options) {\n\t\tif (this.callbacks.hasOwnProperty(url)) {\n\t\t\tthis.callbacks[url].push(callback);\n\t\t} else {\n\t\t\tthis.callbacks[url] = [callback];\n\t\t\tconst job = {\n\t\t\t\turl: url,\n\t\t\t\tdata: data,\n\t\t\t\toptions: options\n\t\t\t};\n\t\t\tif (this.clients.length > 0) {\n\t\t\t\tthis.clients.shift().run(job);\n\t\t\t} else {\n\t\t\t\tthis.queue.push(job);\n\t\t\t}\n\t\t}\n\t}\n\tenqueueClient(client) {\n\t\tif (this.queue.length > 0) {\n\t\t\tclient.run(this.queue.shift());\n\t\t} else {\n\t\t\tthis.clients.push(client);\n\t\t}\n\t}\n\thandleResponse(url, err, data) {\n\t\tconst callback = this.callbacks[url];\n\t\tif (err) {\n\t\t\tfor (let i = 0; i < callback.length; ++i) {\n\t\t\t\tcallback[i](err);\n\t\t\t}\n\t\t} else {\n\t\t\tif (data.format === PIXELFORMAT_RGB565 || data.format === PIXELFORMAT_RGBA4) {\n\t\t\t\tdata.levels = data.levels.map(v => {\n\t\t\t\t\treturn new Uint16Array(v);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tdata.levels = data.levels.map(v => {\n\t\t\t\t\treturn new Uint8Array(v);\n\t\t\t\t});\n\t\t\t}\n\t\t\tfor (let i = 0; i < callback.length; ++i) {\n\t\t\t\tcallback[i](null, data);\n\t\t\t}\n\t\t}\n\t\tdelete this.callbacks[url];\n\t}\n}\nclass BasisClient {\n\tconstructor(queue, config, eager) {\n\t\tthis.queue = queue;\n\t\tthis.worker = new Worker(config.workerUrl);\n\t\tthis.worker.addEventListener('message', message => {\n\t\t\tconst data = message.data;\n\t\t\tthis.queue.handleResponse(data.url, data.err, data.data);\n\t\t\tif (!this.eager) {\n\t\t\t\tthis.queue.enqueueClient(this);\n\t\t\t}\n\t\t});\n\t\tthis.worker.postMessage({\n\t\t\ttype: 'init',\n\t\t\tconfig: config\n\t\t});\n\t\tthis.eager = eager;\n\t}\n\trun(job) {\n\t\tconst transfer = [];\n\t\tif (job.data instanceof ArrayBuffer) {\n\t\t\ttransfer.push(job.data);\n\t\t}\n\t\tthis.worker.postMessage({\n\t\t\ttype: 'transcode',\n\t\t\turl: job.url,\n\t\t\tformat: job.format,\n\t\t\tdata: job.data,\n\t\t\toptions: job.options\n\t\t}, transfer);\n\t\tif (this.eager) {\n\t\t\tthis.queue.enqueueClient(this);\n\t\t}\n\t}\n}\nconst defaultNumWorkers = 1;\nconst defaultRgbPriority = ['etc1', 'etc2', 'astc', 'dxt', 'pvr', 'atc'];\nconst defaultRgbaPriority = ['astc', 'dxt', 'etc2', 'pvr', 'atc'];\nconst defaultMaxRetries = 5;\nconst queue = new BasisQueue();\nlet lazyConfig = null;\nlet initializing = false;\nfunction basisInitialize(config) {\n\tif (initializing) {\n\t\treturn;\n\t}\n\tif (!config) {\n\t\tconfig = lazyConfig || {};\n\t} else if (config.lazyInit) {\n\t\tlazyConfig = config;\n\t\treturn;\n\t}\n\tif (!config.glueUrl || !config.wasmUrl || !config.fallbackUrl) {\n\t\tconst moduleConfig = WasmModule.getConfig('BASIS');\n\t\tif (moduleConfig) {\n\t\t\tconfig = {\n\t\t\t\tglueUrl: moduleConfig.glueUrl,\n\t\t\t\twasmUrl: moduleConfig.wasmUrl,\n\t\t\t\tfallbackUrl: moduleConfig.fallbackUrl,\n\t\t\t\tnumWorkers: moduleConfig.numWorkers\n\t\t\t};\n\t\t}\n\t}\n\tif (config.glueUrl || config.wasmUrl || config.fallbackUrl) {\n\t\tinitializing = true;\n\t\tconst numWorkers = Math.max(1, Math.min(16, config.numWorkers || defaultNumWorkers));\n\t\tconst eagerWorkers = config.numWorkers === 1 || (config.hasOwnProperty('eagerWorkers') ? config.eagerWorkers : true);\n\t\tconfig.rgbPriority = config.rgbPriority || defaultRgbPriority;\n\t\tconfig.rgbaPriority = config.rgbaPriority || defaultRgbaPriority;\n\t\tconfig.maxRetries = config.hasOwnProperty('maxRetries') ? config.maxRetries : defaultMaxRetries;\n\t\tprepareWorkerModules(config, (err, clientConfig) => {\n\t\t\tif (err) {\n\t\t\t\tconsole.error(`failed to initialize basis worker: ${err}`);\n\t\t\t} else {\n\t\t\t\tfor (let i = 0; i < numWorkers; ++i) {\n\t\t\t\t\tqueue.enqueueClient(new BasisClient(queue, clientConfig, eagerWorkers));\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\nlet deviceDetails = null;\nfunction basisTranscode(device, url, data, callback, options) {\n\tbasisInitialize();\n\tif (!deviceDetails) {\n\t\tdeviceDetails = {\n\t\t\twebgl2: device.isWebGL2,\n\t\t\tformats: getCompressionFormats(device)\n\t\t};\n\t}\n\tqueue.enqueueJob(url, data, callback, {\n\t\tdeviceDetails: deviceDetails,\n\t\tisGGGR: !!(options != null && options.isGGGR),\n\t\tisKTX2: !!(options != null && options.isKTX2)\n\t});\n\treturn initializing;\n}\n\nclass TextureParser {\n\tload(url, callback, asset) {\n\t\tthrow new Error('not implemented');\n\t}\n\topen(url, data, device) {\n\t\tthrow new Error('not implemented');\n\t}\n}\n\nclass BasisParser extends TextureParser {\n\tconstructor(registry, device) {\n\t\tsuper();\n\t\tthis.device = device;\n\t\tthis.maxRetries = 0;\n\t}\n\tload(url, callback, asset) {\n\t\tconst device = this.device;\n\t\tconst transcode = data => {\n\t\t\tvar _asset$file;\n\t\t\tconst basisModuleFound = basisTranscode(device, url.load, data, callback, {\n\t\t\t\tisGGGR: ((asset == null || (_asset$file = asset.file) == null || (_asset$file = _asset$file.variants) == null || (_asset$file = _asset$file.basis) == null ? void 0 : _asset$file.opt) & 8) !== 0\n\t\t\t});\n\t\t\tif (!basisModuleFound) {\n\t\t\t\tcallback(`Basis module not found. Asset '${asset.name}' basis texture variant will not be loaded.`);\n\t\t\t}\n\t\t};\n\t\tAsset.fetchArrayBuffer(url.load, (err, result) => {\n\t\t\tif (err) {\n\t\t\t\tcallback(err);\n\t\t\t} else {\n\t\t\t\ttranscode(result);\n\t\t\t}\n\t\t}, asset, this.maxRetries);\n\t}\n\topen(url, data, device, textureOptions = {}) {\n\t\tconst texture = new Texture(device, _extends({\n\t\t\tname: url,\n\t\t\taddressU: data.cubemap ? ADDRESS_CLAMP_TO_EDGE : ADDRESS_REPEAT,\n\t\t\taddressV: data.cubemap ? ADDRESS_CLAMP_TO_EDGE : ADDRESS_REPEAT,\n\t\t\twidth: data.width,\n\t\t\theight: data.height,\n\t\t\tformat: data.format,\n\t\t\tcubemap: data.cubemap,\n\t\t\tlevels: data.levels\n\t\t}, textureOptions));\n\t\ttexture.upload();\n\t\treturn texture;\n\t}\n}\n\nclass ImgParser extends TextureParser {\n\tconstructor(registry, device) {\n\t\tsuper();\n\t\tthis.crossOrigin = registry.prefix ? 'anonymous' : null;\n\t\tthis.maxRetries = 0;\n\t\tthis.device = device;\n\t}\n\tload(url, callback, asset) {\n\t\tvar _asset$file;\n\t\tconst hasContents = !!(asset != null && (_asset$file = asset.file) != null && _asset$file.contents);\n\t\tif (hasContents) {\n\t\t\tif (this.device.supportsImageBitmap) {\n\t\t\t\tthis._loadImageBitmapFromBlob(new Blob([asset.file.contents]), callback);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\turl = {\n\t\t\t\tload: URL.createObjectURL(new Blob([asset.file.contents])),\n\t\t\t\toriginal: url.original\n\t\t\t};\n\t\t}\n\t\tconst handler = (err, result) => {\n\t\t\tif (hasContents) {\n\t\t\t\tURL.revokeObjectURL(url.load);\n\t\t\t}\n\t\t\tcallback(err, result);\n\t\t};\n\t\tlet crossOrigin;\n\t\tif (asset && asset.options && asset.options.hasOwnProperty('crossOrigin')) {\n\t\t\tcrossOrigin = asset.options.crossOrigin;\n\t\t} else if (ABSOLUTE_URL.test(url.load)) {\n\t\t\tcrossOrigin = this.crossOrigin;\n\t\t}\n\t\tif (this.device.supportsImageBitmap) {\n\t\t\tthis._loadImageBitmap(url.load, url.original, crossOrigin, handler);\n\t\t} else {\n\t\t\tthis._loadImage(url.load, url.original, crossOrigin, handler);\n\t\t}\n\t}\n\topen(url, data, device, textureOptions = {}) {\n\t\tconst texture = new Texture(device, _extends({\n\t\t\tname: url,\n\t\t\twidth: data.width,\n\t\t\theight: data.height,\n\t\t\tformat: PIXELFORMAT_RGBA8\n\t\t}, textureOptions));\n\t\ttexture.setSource(data);\n\t\treturn texture;\n\t}\n\t_loadImage(url, originalUrl, crossOrigin, callback) {\n\t\tconst image = new Image();\n\t\tif (crossOrigin) {\n\t\t\timage.crossOrigin = crossOrigin;\n\t\t}\n\t\tlet retries = 0;\n\t\tconst maxRetries = this.maxRetries;\n\t\tlet retryTimeout;\n\t\timage.onload = function () {\n\t\t\tcallback(null, image);\n\t\t};\n\t\timage.onerror = function () {\n\t\t\tif (retryTimeout) return;\n\t\t\tif (maxRetries > 0 && ++retries <= maxRetries) {\n\t\t\t\tconst retryDelay = Math.pow(2, retries) * 100;\n\t\t\t\tconsole.log(`Error loading Texture from: '${originalUrl}' - Retrying in ${retryDelay}ms...`);\n\t\t\t\tconst idx = url.indexOf('?');\n\t\t\t\tconst separator = idx >= 0 ? '&' : '?';\n\t\t\t\tretryTimeout = setTimeout(() => {\n\t\t\t\t\timage.src = `${url + separator}retry=${Date.now()}`;\n\t\t\t\t\tretryTimeout = null;\n\t\t\t\t}, retryDelay);\n\t\t\t} else {\n\t\t\t\tcallback(`Error loading Texture from: '${originalUrl}'`);\n\t\t\t}\n\t\t};\n\t\timage.src = url;\n\t}\n\t_loadImageBitmap(url, originalUrl, crossOrigin, callback) {\n\t\tconst options = {\n\t\t\tcache: true,\n\t\t\tresponseType: 'blob',\n\t\t\tretry: this.maxRetries > 0,\n\t\t\tmaxRetries: this.maxRetries\n\t\t};\n\t\thttp.get(url, options, (err, blob) => {\n\t\t\tif (err) {\n\t\t\t\tcallback(err);\n\t\t\t} else {\n\t\t\t\tthis._loadImageBitmapFromBlob(blob, callback);\n\t\t\t}\n\t\t});\n\t}\n\t_loadImageBitmapFromBlob(blob, callback) {\n\t\tcreateImageBitmap(blob, {\n\t\t\tpremultiplyAlpha: 'none',\n\t\t\tcolorSpaceConversion: 'none'\n\t\t}).then(imageBitmap => callback(null, imageBitmap)).catch(e => callback(e));\n\t}\n}\n\nconst IDENTIFIER = [0x58544BAB, 0xBB313120, 0x0A1A0A0D];\nconst KNOWN_FORMATS = {\n\t0x83F0: PIXELFORMAT_DXT1,\n\t0x83F2: PIXELFORMAT_DXT3,\n\t0x83F3: PIXELFORMAT_DXT5,\n\t0x8D64: PIXELFORMAT_ETC1,\n\t0x9274: PIXELFORMAT_ETC2_RGB,\n\t0x9278: PIXELFORMAT_ETC2_RGBA,\n\t0x8C00: PIXELFORMAT_PVRTC_4BPP_RGB_1,\n\t0x8C01: PIXELFORMAT_PVRTC_2BPP_RGB_1,\n\t0x8C02: PIXELFORMAT_PVRTC_4BPP_RGBA_1,\n\t0x8C03: PIXELFORMAT_PVRTC_2BPP_RGBA_1,\n\t0x8051: PIXELFORMAT_RGB8,\n\t0x8058: PIXELFORMAT_RGBA8,\n\t0x8C41: PIXELFORMAT_SRGB,\n\t0x8C43: PIXELFORMAT_SRGBA,\n\t0x8C3A: PIXELFORMAT_111110F,\n\t0x881B: PIXELFORMAT_RGB16F,\n\t0x881A: PIXELFORMAT_RGBA16F\n};\nfunction createContainer(pixelFormat, buffer, byteOffset, byteSize) {\n\treturn pixelFormat === PIXELFORMAT_111110F ? new Uint32Array(buffer, byteOffset, byteSize / 4) : new Uint8Array(buffer, byteOffset, byteSize);\n}\nclass KtxParser extends TextureParser {\n\tconstructor(registry) {\n\t\tsuper();\n\t\tthis.maxRetries = 0;\n\t}\n\tload(url, callback, asset) {\n\t\tAsset.fetchArrayBuffer(url.load, callback, asset, this.maxRetries);\n\t}\n\topen(url, data, device, textureOptions = {}) {\n\t\tconst textureData = this.parse(data);\n\t\tif (!textureData) {\n\t\t\treturn null;\n\t\t}\n\t\tconst texture = new Texture(device, _extends({\n\t\t\tname: url,\n\t\t\taddressU: textureData.cubemap ? ADDRESS_CLAMP_TO_EDGE : ADDRESS_REPEAT,\n\t\t\taddressV: textureData.cubemap ? ADDRESS_CLAMP_TO_EDGE : ADDRESS_REPEAT,\n\t\t\twidth: textureData.width,\n\t\t\theight: textureData.height,\n\t\t\tformat: textureData.format,\n\t\t\tcubemap: textureData.cubemap,\n\t\t\tlevels: textureData.levels\n\t\t}, textureOptions));\n\t\ttexture.upload();\n\t\treturn texture;\n\t}\n\tparse(data) {\n\t\tconst dataU32 = new Uint32Array(data);\n\t\tif (IDENTIFIER[0] !== dataU32[0] || IDENTIFIER[1] !== dataU32[1] || IDENTIFIER[2] !== dataU32[2]) {\n\t\t\treturn null;\n\t\t}\n\t\tconst header = {\n\t\t\tendianness: dataU32[3],\n\t\t\tglType: dataU32[4],\n\t\t\tglTypeSize: dataU32[5],\n\t\t\tglFormat: dataU32[6],\n\t\t\tglInternalFormat: dataU32[7],\n\t\t\tglBaseInternalFormat: dataU32[8],\n\t\t\tpixelWidth: dataU32[9],\n\t\t\tpixelHeight: dataU32[10],\n\t\t\tpixelDepth: dataU32[11],\n\t\t\tnumberOfArrayElements: dataU32[12],\n\t\t\tnumberOfFaces: dataU32[13],\n\t\t\tnumberOfMipmapLevels: dataU32[14],\n\t\t\tbytesOfKeyValueData: dataU32[15]\n\t\t};\n\t\tif (header.pixelDepth > 1) {\n\t\t\treturn null;\n\t\t}\n\t\tif (header.numberOfArrayElements !== 0) {\n\t\t\treturn null;\n\t\t}\n\t\tconst format = KNOWN_FORMATS[header.glInternalFormat];\n\t\tif (format === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\tlet offset = 16 + header.bytesOfKeyValueData / 4;\n\t\tconst isCubemap = header.numberOfFaces > 1;\n\t\tconst levels = [];\n\t\tfor (let mipmapLevel = 0; mipmapLevel < (header.numberOfMipmapLevels || 1); mipmapLevel++) {\n\t\t\tconst imageSizeInBytes = dataU32[offset++];\n\t\t\tif (isCubemap) {\n\t\t\t\tlevels.push([]);\n\t\t\t}\n\t\t\tconst target = isCubemap ? levels[mipmapLevel] : levels;\n\t\t\tfor (let face = 0; face < (isCubemap ? 6 : 1); ++face) {\n\t\t\t\ttarget.push(createContainer(format, data, offset * 4, imageSizeInBytes));\n\t\t\t\toffset += imageSizeInBytes + 3 >> 2;\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tformat: format,\n\t\t\twidth: header.pixelWidth,\n\t\t\theight: header.pixelHeight,\n\t\t\tlevels: levels,\n\t\t\tcubemap: isCubemap\n\t\t};\n\t}\n}\n\nconst KHRConstants = {\n\tKHR_DF_MODEL_ETC1S: 163,\n\tKHR_DF_MODEL_UASTC: 166\n};\nclass Ktx2Parser extends TextureParser {\n\tconstructor(registry, device) {\n\t\tsuper();\n\t\tthis.maxRetries = 0;\n\t\tthis.device = device;\n\t}\n\tload(url, callback, asset) {\n\t\tAsset.fetchArrayBuffer(url.load, (err, result) => {\n\t\t\tif (err) {\n\t\t\t\tcallback(err, result);\n\t\t\t} else {\n\t\t\t\tthis.parse(result, url, callback, asset);\n\t\t\t}\n\t\t}, asset, this.maxRetries);\n\t}\n\topen(url, data, device, textureOptions = {}) {\n\t\tconst texture = new Texture(device, _extends({\n\t\t\tname: url,\n\t\t\taddressU: data.cubemap ? ADDRESS_CLAMP_TO_EDGE : ADDRESS_REPEAT,\n\t\t\taddressV: data.cubemap ? ADDRESS_CLAMP_TO_EDGE : ADDRESS_REPEAT,\n\t\t\twidth: data.width,\n\t\t\theight: data.height,\n\t\t\tformat: data.format,\n\t\t\tcubemap: data.cubemap,\n\t\t\tlevels: data.levels\n\t\t}, textureOptions));\n\t\ttexture.upload();\n\t\treturn texture;\n\t}\n\tparse(arraybuffer, url, callback, asset) {\n\t\tconst rs = new ReadStream(arraybuffer);\n\t\tconst magic = [rs.readU32be(), rs.readU32be(), rs.readU32be()];\n\t\tif (magic[0] !== 0xAB4B5458 || magic[1] !== 0x203230BB || magic[2] !== 0x0D0A1A0A) {\n\t\t\treturn null;\n\t\t}\n\t\tconst header = {\n\t\t\tvkFormat: rs.readU32(),\n\t\t\ttypeSize: rs.readU32(),\n\t\t\tpixelWidth: rs.readU32(),\n\t\t\tpixelHeight: rs.readU32(),\n\t\t\tpixelDepth: rs.readU32(),\n\t\t\tlayerCount: rs.readU32(),\n\t\t\tfaceCount: rs.readU32(),\n\t\t\tlevelCount: rs.readU32(),\n\t\t\tsupercompressionScheme: rs.readU32()\n\t\t};\n\t\tconst index = {\n\t\t\tdfdByteOffset: rs.readU32(),\n\t\t\tdfdByteLength: rs.readU32(),\n\t\t\tkvdByteOffset: rs.readU32(),\n\t\t\tkvdByteLength: rs.readU32(),\n\t\t\tsgdByteOffset: rs.readU64(),\n\t\t\tsgdByteLength: rs.readU64()\n\t\t};\n\t\tconst levels = [];\n\t\tfor (let i = 0; i < Math.max(1, header.levelCount); ++i) {\n\t\t\tlevels.push({\n\t\t\t\tbyteOffset: rs.readU64(),\n\t\t\t\tbyteLength: rs.readU64(),\n\t\t\t\tuncompressedByteLength: rs.readU64()\n\t\t\t});\n\t\t}\n\t\tconst dfdTotalSize = rs.readU32();\n\t\tif (dfdTotalSize !== index.kvdByteOffset - index.dfdByteOffset) {\n\t\t\treturn null;\n\t\t}\n\t\trs.skip(8);\n\t\tconst colorModel = rs.readU8();\n\t\trs.skip(index.dfdByteLength - 9);\n\t\trs.skip(index.kvdByteLength);\n\t\tif (header.supercompressionScheme === 1 || colorModel === KHRConstants.KHR_DF_MODEL_UASTC) {\n\t\t\tvar _asset$file;\n\t\t\tconst basisModuleFound = basisTranscode(this.device, url.load, arraybuffer, callback, {\n\t\t\t\tisGGGR: ((asset == null || (_asset$file = asset.file) == null || (_asset$file = _asset$file.variants) == null || (_asset$file = _asset$file.basis) == null ? void 0 : _asset$file.opt) & 8) !== 0,\n\t\t\t\tisKTX2: true\n\t\t\t});\n\t\t\tif (!basisModuleFound) {\n\t\t\t\tcallback(`Basis module not found. Asset \"${asset.name}\" basis texture variant will not be loaded.`);\n\t\t\t}\n\t\t} else {\n\t\t\tcallback('unsupported KTX2 pixel format');\n\t\t}\n\t}\n}\n\nclass DdsParser extends TextureParser {\n\tconstructor(registry) {\n\t\tsuper();\n\t\tthis.maxRetries = 0;\n\t}\n\tload(url, callback, asset) {\n\t\tAsset.fetchArrayBuffer(url.load, callback, asset, this.maxRetries);\n\t}\n\topen(url, data, device, textureOptions = {}) {\n\t\tconst header = new Uint32Array(data, 0, 128 / 4);\n\t\tconst width = header[4];\n\t\tconst height = header[3];\n\t\tconst mips = Math.max(header[7], 1);\n\t\tconst isFourCc = header[20] === 4;\n\t\tconst fcc = header[21];\n\t\tconst bpp = header[22];\n\t\tconst isCubemap = header[28] === 65024;\n\t\tconst FCC_DXT1 = 827611204;\n\t\tconst FCC_DXT5 = 894720068;\n\t\tconst FCC_FP16 = 113;\n\t\tconst FCC_FP32 = 116;\n\t\tconst FCC_ETC1 = 826496069;\n\t\tconst FCC_PVRTC_2BPP_RGB_1 = 825438800;\n\t\tconst FCC_PVRTC_2BPP_RGBA_1 = 825504336;\n\t\tconst FCC_PVRTC_4BPP_RGB_1 = 825439312;\n\t\tconst FCC_PVRTC_4BPP_RGBA_1 = 825504848;\n\t\tlet compressed = false;\n\t\tlet etc1 = false;\n\t\tlet pvrtc2 = false;\n\t\tlet pvrtc4 = false;\n\t\tlet format = null;\n\t\tlet componentSize = 1;\n\t\tlet texture;\n\t\tif (isFourCc) {\n\t\t\tif (fcc === FCC_DXT1) {\n\t\t\t\tformat = PIXELFORMAT_DXT1;\n\t\t\t\tcompressed = true;\n\t\t\t} else if (fcc === FCC_DXT5) {\n\t\t\t\tformat = PIXELFORMAT_DXT5;\n\t\t\t\tcompressed = true;\n\t\t\t} else if (fcc === FCC_FP16) {\n\t\t\t\tformat = PIXELFORMAT_RGBA16F;\n\t\t\t\tcomponentSize = 2;\n\t\t\t} else if (fcc === FCC_FP32) {\n\t\t\t\tformat = PIXELFORMAT_RGBA32F;\n\t\t\t\tcomponentSize = 4;\n\t\t\t} else if (fcc === FCC_ETC1) {\n\t\t\t\tformat = PIXELFORMAT_ETC1;\n\t\t\t\tcompressed = true;\n\t\t\t\tetc1 = true;\n\t\t\t} else if (fcc === FCC_PVRTC_2BPP_RGB_1 || fcc === FCC_PVRTC_2BPP_RGBA_1) {\n\t\t\t\tformat = fcc === FCC_PVRTC_2BPP_RGB_1 ? PIXELFORMAT_PVRTC_2BPP_RGB_1 : PIXELFORMAT_PVRTC_2BPP_RGBA_1;\n\t\t\t\tcompressed = true;\n\t\t\t\tpvrtc2 = true;\n\t\t\t} else if (fcc === FCC_PVRTC_4BPP_RGB_1 || fcc === FCC_PVRTC_4BPP_RGBA_1) {\n\t\t\t\tformat = fcc === FCC_PVRTC_4BPP_RGB_1 ? PIXELFORMAT_PVRTC_4BPP_RGB_1 : PIXELFORMAT_PVRTC_4BPP_RGBA_1;\n\t\t\t\tcompressed = true;\n\t\t\t\tpvrtc4 = true;\n\t\t\t}\n\t\t} else {\n\t\t\tif (bpp === 32) {\n\t\t\t\tformat = PIXELFORMAT_RGBA8;\n\t\t\t}\n\t\t}\n\t\tif (!format) {\n\t\t\ttexture = new Texture(device, {\n\t\t\t\twidth: 4,\n\t\t\t\theight: 4,\n\t\t\t\tformat: PIXELFORMAT_RGB8,\n\t\t\t\tname: 'dds-legacy-empty'\n\t\t\t});\n\t\t\treturn texture;\n\t\t}\n\t\ttexture = new Texture(device, _extends({\n\t\t\tname: url,\n\t\t\taddressU: isCubemap ? ADDRESS_CLAMP_TO_EDGE : ADDRESS_REPEAT,\n\t\t\taddressV: isCubemap ? ADDRESS_CLAMP_TO_EDGE : ADDRESS_REPEAT,\n\t\t\twidth: width,\n\t\t\theight: height,\n\t\t\tformat: format,\n\t\t\tcubemap: isCubemap,\n\t\t\tmipmaps: mips > 1\n\t\t}, textureOptions));\n\t\tlet offset = 128;\n\t\tconst faces = isCubemap ? 6 : 1;\n\t\tlet mipSize;\n\t\tconst DXT_BLOCK_WIDTH = 4;\n\t\tconst DXT_BLOCK_HEIGHT = 4;\n\t\tconst blockSize = fcc === FCC_DXT1 ? 8 : 16;\n\t\tlet numBlocksAcross, numBlocksDown, numBlocks;\n\t\tfor (let face = 0; face < faces; face++) {\n\t\t\tlet mipWidth = width;\n\t\t\tlet mipHeight = height;\n\t\t\tfor (let i = 0; i < mips; i++) {\n\t\t\t\tif (compressed) {\n\t\t\t\t\tif (etc1) {\n\t\t\t\t\t\tmipSize = Math.floor((mipWidth + 3) / 4) * Math.floor((mipHeight + 3) / 4) * 8;\n\t\t\t\t\t} else if (pvrtc2) {\n\t\t\t\t\t\tmipSize = Math.max(mipWidth, 16) * Math.max(mipHeight, 8) / 4;\n\t\t\t\t\t} else if (pvrtc4) {\n\t\t\t\t\t\tmipSize = Math.max(mipWidth, 8) * Math.max(mipHeight, 8) / 2;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnumBlocksAcross = Math.floor((mipWidth + DXT_BLOCK_WIDTH - 1) / DXT_BLOCK_WIDTH);\n\t\t\t\t\t\tnumBlocksDown = Math.floor((mipHeight + DXT_BLOCK_HEIGHT - 1) / DXT_BLOCK_HEIGHT);\n\t\t\t\t\t\tnumBlocks = numBlocksAcross * numBlocksDown;\n\t\t\t\t\t\tmipSize = numBlocks * blockSize;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tmipSize = mipWidth * mipHeight * 4;\n\t\t\t\t}\n\t\t\t\tconst mipBuff = format === PIXELFORMAT_RGBA32F ? new Float32Array(data, offset, mipSize) : format === PIXELFORMAT_RGBA16F ? new Uint16Array(data, offset, mipSize) : new Uint8Array(data, offset, mipSize);\n\t\t\t\tif (!isCubemap) {\n\t\t\t\t\ttexture._levels[i] = mipBuff;\n\t\t\t\t} else {\n\t\t\t\t\tif (!texture._levels[i]) texture._levels[i] = [];\n\t\t\t\t\ttexture._levels[i][face] = mipBuff;\n\t\t\t\t}\n\t\t\t\toffset += mipSize * componentSize;\n\t\t\t\tmipWidth = Math.max(mipWidth * 0.5, 1);\n\t\t\t\tmipHeight = Math.max(mipHeight * 0.5, 1);\n\t\t\t}\n\t\t}\n\t\ttexture.upload();\n\t\treturn texture;\n\t}\n}\n\nclass HdrParser extends TextureParser {\n\tconstructor(registry) {\n\t\tsuper();\n\t\tthis.maxRetries = 0;\n\t}\n\tload(url, callback, asset) {\n\t\tAsset.fetchArrayBuffer(url.load, callback, asset, this.maxRetries);\n\t}\n\topen(url, data, device, textureOptions = {}) {\n\t\tconst textureData = this.parse(data);\n\t\tif (!textureData) {\n\t\t\treturn null;\n\t\t}\n\t\tconst texture = new Texture(device, _extends({\n\t\t\tname: url,\n\t\t\taddressU: ADDRESS_REPEAT,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\tminFilter: FILTER_NEAREST,\n\t\t\tmagFilter: FILTER_NEAREST,\n\t\t\twidth: textureData.width,\n\t\t\theight: textureData.height,\n\t\t\tlevels: textureData.levels,\n\t\t\tformat: PIXELFORMAT_RGBA8,\n\t\t\ttype: TEXTURETYPE_RGBE,\n\t\t\tmipmaps: false\n\t\t}, textureOptions));\n\t\ttexture.upload();\n\t\treturn texture;\n\t}\n\tparse(data) {\n\t\tconst readStream = new ReadStream(data);\n\t\tconst magic = readStream.readLine();\n\t\tif (!magic.startsWith('#?RADIANCE')) {\n\t\t\treturn null;\n\t\t}\n\t\tconst variables = {};\n\t\twhile (true) {\n\t\t\tconst line = readStream.readLine();\n\t\t\tif (line.length === 0) {\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\tconst parts = line.split('=');\n\t\t\t\tif (parts.length === 2) {\n\t\t\t\t\tvariables[parts[0]] = parts[1];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (!variables.hasOwnProperty('FORMAT')) {\n\t\t\treturn null;\n\t\t}\n\t\tconst resolution = readStream.readLine().split(' ');\n\t\tif (resolution.length !== 4) {\n\t\t\treturn null;\n\t\t}\n\t\tconst height = parseInt(resolution[1], 10);\n\t\tconst width = parseInt(resolution[3], 10);\n\t\tconst pixels = this._readPixels(readStream, width, height, resolution[0] === '-Y');\n\t\tif (!pixels) {\n\t\t\treturn null;\n\t\t}\n\t\treturn {\n\t\t\twidth: width,\n\t\t\theight: height,\n\t\t\tlevels: [pixels]\n\t\t};\n\t}\n\t_readPixels(readStream, width, height, flipY) {\n\t\tif (width < 8 || width > 0x7fff) {\n\t\t\treturn this._readPixelsFlat(readStream, width, height);\n\t\t}\n\t\tconst rgbe = [0, 0, 0, 0];\n\t\treadStream.readArray(rgbe);\n\t\tif (rgbe[0] !== 2 || rgbe[1] !== 2 || (rgbe[2] & 0x80) !== 0) {\n\t\t\treadStream.skip(-4);\n\t\t\treturn this._readPixelsFlat(readStream, width, height);\n\t\t}\n\t\tconst buffer = new ArrayBuffer(width * height * 4);\n\t\tconst view = new Uint8Array(buffer);\n\t\tlet scanstart = flipY ? 0 : width * 4 * (height - 1);\n\t\tlet x, y, i, channel, count, value;\n\t\tfor (y = 0; y < height; ++y) {\n\t\t\tif (y) {\n\t\t\t\treadStream.readArray(rgbe);\n\t\t\t}\n\t\t\tif ((rgbe[2] << 8) + rgbe[3] !== width) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tfor (channel = 0; channel < 4; ++channel) {\n\t\t\t\tx = 0;\n\t\t\t\twhile (x < width) {\n\t\t\t\t\tcount = readStream.readU8();\n\t\t\t\t\tif (count > 128) {\n\t\t\t\t\t\tcount -= 128;\n\t\t\t\t\t\tif (x + count > width) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue = readStream.readU8();\n\t\t\t\t\t\tfor (i = 0; i < count; ++i) {\n\t\t\t\t\t\t\tview[scanstart + channel + 4 * x++] = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (count === 0 || x + count > width) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (i = 0; i < count; ++i) {\n\t\t\t\t\t\t\tview[scanstart + channel + 4 * x++] = readStream.readU8();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tscanstart += width * 4 * (flipY ? 1 : -1);\n\t\t}\n\t\treturn view;\n\t}\n\t_readPixelsFlat(readStream, width, height) {\n\t\treturn readStream.remainingBytes === width * height * 4 ? new Uint8Array(readStream.arraybuffer, readStream.offset) : null;\n\t}\n}\n\nconst JSON_ADDRESS_MODE = {\n\t'repeat': ADDRESS_REPEAT,\n\t'clamp': ADDRESS_CLAMP_TO_EDGE,\n\t'mirror': ADDRESS_MIRRORED_REPEAT\n};\nconst JSON_FILTER_MODE = {\n\t'nearest': FILTER_NEAREST,\n\t'linear': FILTER_LINEAR,\n\t'nearest_mip_nearest': FILTER_NEAREST_MIPMAP_NEAREST,\n\t'linear_mip_nearest': FILTER_LINEAR_MIPMAP_NEAREST,\n\t'nearest_mip_linear': FILTER_NEAREST_MIPMAP_LINEAR,\n\t'linear_mip_linear': FILTER_LINEAR_MIPMAP_LINEAR\n};\nconst JSON_TEXTURE_TYPE = {\n\t'default': TEXTURETYPE_DEFAULT,\n\t'rgbm': TEXTURETYPE_RGBM,\n\t'rgbe': TEXTURETYPE_RGBE,\n\t'rgbp': TEXTURETYPE_RGBP,\n\t'swizzleGGGR': TEXTURETYPE_SWIZZLEGGGR\n};\nconst _completePartialMipmapChain = function _completePartialMipmapChain(texture) {\n\tconst requiredMipLevels = TextureUtils.calcMipLevelsCount(texture._width, texture._height);\n\tconst isHtmlElement = function isHtmlElement(object) {\n\t\treturn object instanceof HTMLCanvasElement || object instanceof HTMLImageElement || object instanceof HTMLVideoElement;\n\t};\n\tif (!(texture._format === PIXELFORMAT_RGBA8 || texture._format === PIXELFORMAT_RGBA32F) || texture._volume || texture._compressed || texture._levels.length === 1 || texture._levels.length === requiredMipLevels || isHtmlElement(texture._cubemap ? texture._levels[0][0] : texture._levels[0])) {\n\t\treturn;\n\t}\n\tconst downsample = function downsample(width, height, data) {\n\t\tconst sampledWidth = Math.max(1, width >> 1);\n\t\tconst sampledHeight = Math.max(1, height >> 1);\n\t\tconst sampledData = new data.constructor(sampledWidth * sampledHeight * 4);\n\t\tconst xs = Math.floor(width / sampledWidth);\n\t\tconst ys = Math.floor(height / sampledHeight);\n\t\tconst xsys = xs * ys;\n\t\tfor (let y = 0; y < sampledHeight; ++y) {\n\t\t\tfor (let x = 0; x < sampledWidth; ++x) {\n\t\t\t\tfor (let e = 0; e < 4; ++e) {\n\t\t\t\t\tlet sum = 0;\n\t\t\t\t\tfor (let sy = 0; sy < ys; ++sy) {\n\t\t\t\t\t\tfor (let sx = 0; sx < xs; ++sx) {\n\t\t\t\t\t\t\tsum += data[(x * xs + sx + (y * ys + sy) * width) * 4 + e];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tsampledData[(x + y * sampledWidth) * 4 + e] = sum / xsys;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn sampledData;\n\t};\n\tfor (let level = texture._levels.length; level < requiredMipLevels; ++level) {\n\t\tconst width = Math.max(1, texture._width >> level - 1);\n\t\tconst height = Math.max(1, texture._height >> level - 1);\n\t\tif (texture._cubemap) {\n\t\t\tconst mips = [];\n\t\t\tfor (let face = 0; face < 6; ++face) {\n\t\t\t\tmips.push(downsample(width, height, texture._levels[level - 1][face]));\n\t\t\t}\n\t\t\ttexture._levels.push(mips);\n\t\t} else {\n\t\t\ttexture._levels.push(downsample(width, height, texture._levels[level - 1]));\n\t\t}\n\t}\n\ttexture._levelsUpdated = texture._cubemap ? [[true, true, true, true, true, true]] : [true];\n};\nclass TextureHandler extends ResourceHandler {\n\tconstructor(app) {\n\t\tsuper(app, 'texture');\n\t\tconst assets = app.assets;\n\t\tconst device = app.graphicsDevice;\n\t\tthis._device = device;\n\t\tthis._assets = assets;\n\t\tthis.imgParser = new ImgParser(assets, device);\n\t\tthis.parsers = {\n\t\t\tdds: new DdsParser(assets),\n\t\t\tktx: new KtxParser(assets),\n\t\t\tktx2: new Ktx2Parser(assets, device),\n\t\t\tbasis: new BasisParser(assets, device),\n\t\t\thdr: new HdrParser(assets)\n\t\t};\n\t}\n\tset crossOrigin(value) {\n\t\tthis.imgParser.crossOrigin = value;\n\t}\n\tget crossOrigin() {\n\t\treturn this.imgParser.crossOrigin;\n\t}\n\tset maxRetries(value) {\n\t\tthis.imgParser.maxRetries = value;\n\t\tfor (const parser in this.parsers) {\n\t\t\tif (this.parsers.hasOwnProperty(parser)) {\n\t\t\t\tthis.parsers[parser].maxRetries = value;\n\t\t\t}\n\t\t}\n\t}\n\tget maxRetries() {\n\t\treturn this.imgParser.maxRetries;\n\t}\n\t_getUrlWithoutParams(url) {\n\t\treturn url.indexOf('?') >= 0 ? url.split('?')[0] : url;\n\t}\n\t_getParser(url) {\n\t\tconst ext = path.getExtension(this._getUrlWithoutParams(url)).toLowerCase().replace('.', '');\n\t\treturn this.parsers[ext] || this.imgParser;\n\t}\n\t_getTextureOptions(asset) {\n\t\tconst options = {};\n\t\tif (asset) {\n\t\t\tvar _asset$name;\n\t\t\tif (((_asset$name = asset.name) == null ? void 0 : _asset$name.length) > 0) {\n\t\t\t\toptions.name = asset.name;\n\t\t\t}\n\t\t\tconst assetData = asset.data;\n\t\t\tif (assetData.hasOwnProperty('minfilter')) {\n\t\t\t\toptions.minFilter = JSON_FILTER_MODE[assetData.minfilter];\n\t\t\t}\n\t\t\tif (assetData.hasOwnProperty('magfilter')) {\n\t\t\t\toptions.magFilter = JSON_FILTER_MODE[assetData.magfilter];\n\t\t\t}\n\t\t\tif (assetData.hasOwnProperty('addressu')) {\n\t\t\t\toptions.addressU = JSON_ADDRESS_MODE[assetData.addressu];\n\t\t\t}\n\t\t\tif (assetData.hasOwnProperty('addressv')) {\n\t\t\t\toptions.addressV = JSON_ADDRESS_MODE[assetData.addressv];\n\t\t\t}\n\t\t\tif (assetData.hasOwnProperty('mipmaps')) {\n\t\t\t\toptions.mipmaps = assetData.mipmaps;\n\t\t\t}\n\t\t\tif (assetData.hasOwnProperty('anisotropy')) {\n\t\t\t\toptions.anisotropy = assetData.anisotropy;\n\t\t\t}\n\t\t\tif (assetData.hasOwnProperty('flipY')) {\n\t\t\t\toptions.flipY = !!assetData.flipY;\n\t\t\t}\n\t\t\tif (assetData.hasOwnProperty('type')) {\n\t\t\t\toptions.type = JSON_TEXTURE_TYPE[assetData.type];\n\t\t\t} else if (assetData.hasOwnProperty('rgbm') && assetData.rgbm) {\n\t\t\t\toptions.type = TEXTURETYPE_RGBM;\n\t\t\t} else if (asset.file && (asset.file.opt & 8) !== 0) {\n\t\t\t\toptions.type = TEXTURETYPE_SWIZZLEGGGR;\n\t\t\t}\n\t\t}\n\t\treturn options;\n\t}\n\tload(url, callback, asset) {\n\t\tif (typeof url === 'string') {\n\t\t\turl = {\n\t\t\t\tload: url,\n\t\t\t\toriginal: url\n\t\t\t};\n\t\t}\n\t\tthis._getParser(url.original).load(url, callback, asset);\n\t}\n\topen(url, data, asset) {\n\t\tif (!url) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst textureOptions = this._getTextureOptions(asset);\n\t\tlet texture = this._getParser(url).open(url, data, this._device, textureOptions);\n\t\tif (texture === null) {\n\t\t\ttexture = new Texture(this._device, {\n\t\t\t\twidth: 4,\n\t\t\t\theight: 4,\n\t\t\t\tformat: PIXELFORMAT_RGB8\n\t\t\t});\n\t\t} else {\n\t\t\t_completePartialMipmapChain(texture);\n\t\t\tif (data.unswizzledGGGR) {\n\t\t\t\tasset.file.variants.basis.opt &= ~8;\n\t\t\t}\n\t\t}\n\t\treturn texture;\n\t}\n\tpatch(asset, assets) {\n\t\tconst texture = asset.resource;\n\t\tif (!texture) {\n\t\t\treturn;\n\t\t}\n\t\tconst options = this._getTextureOptions(asset);\n\t\tfor (const key of Object.keys(options)) {\n\t\t\ttexture[key] = options[key];\n\t\t}\n\t}\n}\n\nconst XRTYPE_INLINE = 'inline';\nconst XRTYPE_VR = 'immersive-vr';\nconst XRTYPE_AR = 'immersive-ar';\nconst XRSPACE_VIEWER = 'viewer';\nconst XRSPACE_LOCAL = 'local';\nconst XRSPACE_LOCALFLOOR = 'local-floor';\nconst XRSPACE_BOUNDEDFLOOR = 'bounded-floor';\nconst XRSPACE_UNBOUNDED = 'unbounded';\nconst XRTARGETRAY_GAZE = 'gaze';\nconst XRTARGETRAY_SCREEN = 'screen';\nconst XRTARGETRAY_POINTER = 'tracked-pointer';\nconst XREYE_NONE = 'none';\nconst XREYE_LEFT = 'left';\nconst XREYE_RIGHT = 'right';\nconst XRHAND_NONE = 'none';\nconst XRHAND_LEFT = 'left';\nconst XRHAND_RIGHT = 'right';\nconst XRTRACKABLE_POINT = 'point';\nconst XRTRACKABLE_PLANE = 'plane';\nconst XRTRACKABLE_MESH = 'mesh';\nconst XRDEPTHSENSINGUSAGE_CPU = 'cpu-optimized';\nconst XRDEPTHSENSINGUSAGE_GPU = 'gpu-optimized';\nconst XRDEPTHSENSINGFORMAT_L8A8 = 'luminance-alpha';\nconst XRDEPTHSENSINGFORMAT_F32 = 'float32';\n\nclass XrDepthSensing extends EventHandler {\n\tconstructor(manager) {\n\t\tsuper();\n\t\tthis._manager = void 0;\n\t\tthis._views = void 0;\n\t\tthis._available = false;\n\t\tthis._evtDepthResize = null;\n\t\tthis._uvMatrix = Mat4.IDENTITY.clone();\n\t\tthis._manager = manager;\n\t\tthis._views = manager.views;\n\t\tif (this._views.supportedDepth) {\n\t\t\tthis._manager.on('start', this._onSessionStart, this);\n\t\t\tthis._manager.on('end', this._onSessionEnd, this);\n\t\t}\n\t}\n\t_onSessionStart() {\n\t\tif (this._views.availableDepth) {\n\t\t\tvar _this$_views$list$;\n\t\t\tthis._evtDepthResize = (_this$_views$list$ = this._views.list[0]) == null ? void 0 : _this$_views$list$.on('depth:resize', this._onDepthResize, this);\n\t\t}\n\t}\n\t_onSessionEnd() {\n\t\tif (this._evtDepthResize) {\n\t\t\tthis._evtDepthResize.off();\n\t\t\tthis._evtDepthResize = null;\n\t\t}\n\t\tif (this._available) {\n\t\t\tthis._available = false;\n\t\t\tthis.fire('unavailable');\n\t\t}\n\t}\n\t_onDepthResize(width, height) {\n\t\tthis.fire('resize', width, height);\n\t}\n\tgetDepth(u, v) {\n\t\tvar _this$_views$list$0$g, _this$_views$list$2;\n\t\treturn (_this$_views$list$0$g = (_this$_views$list$2 = this._views.list[0]) == null ? void 0 : _this$_views$list$2.getDepth(u, v)) != null ? _this$_views$list$0$g : null;\n\t}\n\tupdate() {\n\t\tif (this._manager.session && this.supported && this._views.availableDepth && this._views.list.length && !this._available) {\n\t\t\tthis._available = true;\n\t\t\tthis.fire('available');\n\t\t}\n\t}\n\tget supported() {\n\t\treturn this._views.supportedDepth;\n\t}\n\tget available() {\n\t\treturn this._views.availableDepth;\n\t}\n\tget usage() {\n\t\treturn this._views.depthUsage;\n\t}\n\tget dataFormat() {\n\t\treturn this._views.depthFormat;\n\t}\n\tget width() {\n\t\tvar _this$_views$list$0$t, _this$_views$list$3;\n\t\treturn (_this$_views$list$0$t = (_this$_views$list$3 = this._views.list[0]) == null || (_this$_views$list$3 = _this$_views$list$3.textureDepth) == null ? void 0 : _this$_views$list$3.width) != null ? _this$_views$list$0$t : 0;\n\t}\n\tget height() {\n\t\tvar _this$_views$list$0$t2, _this$_views$list$4;\n\t\treturn (_this$_views$list$0$t2 = (_this$_views$list$4 = this._views.list[0]) == null || (_this$_views$list$4 = _this$_views$list$4.textureDepth) == null ? void 0 : _this$_views$list$4.height) != null ? _this$_views$list$0$t2 : 0;\n\t}\n\tget texture() {\n\t\tvar _this$_views$list$5;\n\t\treturn (_this$_views$list$5 = this._views.list[0]) == null ? void 0 : _this$_views$list$5.textureDepth;\n\t}\n\tget uvMatrix() {\n\t\tvar _this$_views$list$0$d, _this$_views$list$6;\n\t\treturn (_this$_views$list$0$d = (_this$_views$list$6 = this._views.list[0]) == null ? void 0 : _this$_views$list$6.depthUvMatrix) != null ? _this$_views$list$0$d : this._uvMatrix;\n\t}\n\tget rawValueToMeters() {\n\t\tvar _this$_views$list$0$d2, _this$_views$list$7;\n\t\treturn (_this$_views$list$0$d2 = (_this$_views$list$7 = this._views.list[0]) == null ? void 0 : _this$_views$list$7.depthValueToMeters) != null ? _this$_views$list$0$d2 : 0;\n\t}\n}\nXrDepthSensing.EVENT_AVAILABLE = 'available';\nXrDepthSensing.EVENT_UNAVAILABLE = 'unavailable';\nXrDepthSensing.EVENT_RESIZE = 'resize';\n\nclass XrDomOverlay {\n\tconstructor(manager) {\n\t\tthis._manager = void 0;\n\t\tthis._supported = platform.browser && !!window.XRDOMOverlayState;\n\t\tthis._root = null;\n\t\tthis._manager = manager;\n\t}\n\tget supported() {\n\t\treturn this._supported;\n\t}\n\tget available() {\n\t\treturn this._supported && this._manager.active && this._manager._session.domOverlayState !== null;\n\t}\n\tget state() {\n\t\tif (!this._supported || !this._manager.active || !this._manager._session.domOverlayState) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._manager._session.domOverlayState.type;\n\t}\n\tset root(value) {\n\t\tif (!this._supported || this._manager.active) {\n\t\t\treturn;\n\t\t}\n\t\tthis._root = value;\n\t}\n\tget root() {\n\t\treturn this._root;\n\t}\n}\n\nconst poolVec3 = [];\nconst poolQuat = [];\nclass XrHitTestSource extends EventHandler {\n\tconstructor(manager, xrHitTestSource, transient, inputSource = null) {\n\t\tsuper();\n\t\tthis.manager = void 0;\n\t\tthis._xrHitTestSource = void 0;\n\t\tthis._transient = void 0;\n\t\tthis._inputSource = void 0;\n\t\tthis.manager = manager;\n\t\tthis._xrHitTestSource = xrHitTestSource;\n\t\tthis._transient = transient;\n\t\tthis._inputSource = inputSource;\n\t}\n\tremove() {\n\t\tif (!this._xrHitTestSource) {\n\t\t\treturn;\n\t\t}\n\t\tconst sources = this.manager.hitTest.sources;\n\t\tconst ind = sources.indexOf(this);\n\t\tif (ind !== -1) sources.splice(ind, 1);\n\t\tthis.onStop();\n\t}\n\tonStop() {\n\t\tthis._xrHitTestSource.cancel();\n\t\tthis._xrHitTestSource = null;\n\t\tthis.fire('remove');\n\t\tthis.manager.hitTest.fire('remove', this);\n\t}\n\tupdate(frame) {\n\t\tif (this._transient) {\n\t\t\tconst transientResults = frame.getHitTestResultsForTransientInput(this._xrHitTestSource);\n\t\t\tfor (let i = 0; i < transientResults.length; i++) {\n\t\t\t\tconst transientResult = transientResults[i];\n\t\t\t\tif (!transientResult.results.length) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tlet inputSource;\n\t\t\t\tif (transientResult.inputSource) {\n\t\t\t\t\tinputSource = this.manager.input._getByInputSource(transientResult.inputSource);\n\t\t\t\t}\n\t\t\t\tthis.updateHitResults(transientResult.results, inputSource);\n\t\t\t}\n\t\t} else {\n\t\t\tconst results = frame.getHitTestResults(this._xrHitTestSource);\n\t\t\tif (!results.length) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.updateHitResults(results);\n\t\t}\n\t}\n\tupdateHitResults(results, inputSource) {\n\t\tvar _poolVec3$pop, _poolVec3$pop2, _poolQuat$pop;\n\t\tif (this._inputSource && this._inputSource !== inputSource) {\n\t\t\treturn;\n\t\t}\n\t\tconst origin = (_poolVec3$pop = poolVec3.pop()) != null ? _poolVec3$pop : new Vec3();\n\t\tif (inputSource) {\n\t\t\torigin.copy(inputSource.getOrigin());\n\t\t} else {\n\t\t\torigin.copy(this.manager.camera.getPosition());\n\t\t}\n\t\tlet candidateDistance = Infinity;\n\t\tlet candidateHitTestResult = null;\n\t\tconst position = (_poolVec3$pop2 = poolVec3.pop()) != null ? _poolVec3$pop2 : new Vec3();\n\t\tconst rotation = (_poolQuat$pop = poolQuat.pop()) != null ? _poolQuat$pop : new Quat();\n\t\tfor (let i = 0; i < results.length; i++) {\n\t\t\tconst pose = results[i].getPose(this.manager._referenceSpace);\n\t\t\tconst distance = origin.distance(pose.transform.position);\n\t\t\tif (distance >= candidateDistance) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tcandidateDistance = distance;\n\t\t\tcandidateHitTestResult = results[i];\n\t\t\tposition.copy(pose.transform.position);\n\t\t\trotation.copy(pose.transform.orientation);\n\t\t}\n\t\tthis.fire('result', position, rotation, inputSource || this._inputSource, candidateHitTestResult);\n\t\tthis.manager.hitTest.fire('result', this, position, rotation, inputSource || this._inputSource, candidateHitTestResult);\n\t\tpoolVec3.push(origin);\n\t\tpoolVec3.push(position);\n\t\tpoolQuat.push(rotation);\n\t}\n}\nXrHitTestSource.EVENT_REMOVE = 'remove';\nXrHitTestSource.EVENT_RESULT = 'result';\n\nclass XrHitTest extends EventHandler {\n\tconstructor(manager) {\n\t\tsuper();\n\t\tthis.manager = void 0;\n\t\tthis._supported = platform.browser && !!(window.XRSession && window.XRSession.prototype.requestHitTestSource);\n\t\tthis._available = false;\n\t\tthis._checkingAvailability = false;\n\t\tthis.sources = [];\n\t\tthis.manager = manager;\n\t\tif (this._supported) {\n\t\t\tthis.manager.on('start', this._onSessionStart, this);\n\t\t\tthis.manager.on('end', this._onSessionEnd, this);\n\t\t}\n\t}\n\t_onSessionStart() {\n\t\tif (this.manager.session.enabledFeatures) {\n\t\t\tconst available = this.manager.session.enabledFeatures.indexOf('hit-test') !== -1;\n\t\t\tif (!available) return;\n\t\t\tthis._available = available;\n\t\t\tthis.fire('available');\n\t\t} else if (!this._checkingAvailability) {\n\t\t\tthis._checkingAvailability = true;\n\t\t\tthis.manager.session.requestReferenceSpace(XRSPACE_VIEWER).then(referenceSpace => {\n\t\t\t\tthis.manager.session.requestHitTestSource({\n\t\t\t\t\tspace: referenceSpace\n\t\t\t\t}).then(hitTestSource => {\n\t\t\t\t\thitTestSource.cancel();\n\t\t\t\t\tif (this.manager.active) {\n\t\t\t\t\t\tthis._available = true;\n\t\t\t\t\t\tthis.fire('available');\n\t\t\t\t\t}\n\t\t\t\t}).catch(() => {});\n\t\t\t}).catch(() => {});\n\t\t}\n\t}\n\t_onSessionEnd() {\n\t\tif (!this._available) return;\n\t\tthis._available = false;\n\t\tfor (let i = 0; i < this.sources.length; i++) {\n\t\t\tthis.sources[i].onStop();\n\t\t}\n\t\tthis.sources = [];\n\t\tthis.fire('unavailable');\n\t}\n\tstart(options = {}) {\n\t\tif (!this._supported) {\n\t\t\toptions.callback == null || options.callback(new Error('XR HitTest is not supported'), null);\n\t\t\treturn;\n\t\t}\n\t\tif (!this._available) {\n\t\t\toptions.callback == null || options.callback(new Error('XR HitTest is not available'), null);\n\t\t\treturn;\n\t\t}\n\t\tif (!options.profile && !options.spaceType) {\n\t\t\toptions.spaceType = XRSPACE_VIEWER;\n\t\t}\n\t\tlet xrRay;\n\t\tconst offsetRay = options.offsetRay;\n\t\tif (offsetRay) {\n\t\t\tconst origin = new DOMPoint(offsetRay.origin.x, offsetRay.origin.y, offsetRay.origin.z, 1.0);\n\t\t\tconst direction = new DOMPoint(offsetRay.direction.x, offsetRay.direction.y, offsetRay.direction.z, 0.0);\n\t\t\txrRay = new XRRay(origin, direction);\n\t\t}\n\t\tconst callback = options.callback;\n\t\tif (options.spaceType) {\n\t\t\tthis.manager.session.requestReferenceSpace(options.spaceType).then(referenceSpace => {\n\t\t\t\tif (!this.manager.session) {\n\t\t\t\t\tconst err = new Error('XR Session is not started (2)');\n\t\t\t\t\tif (callback) callback(err);\n\t\t\t\t\tthis.fire('error', err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.manager.session.requestHitTestSource({\n\t\t\t\t\tspace: referenceSpace,\n\t\t\t\t\tentityTypes: options.entityTypes || undefined,\n\t\t\t\t\toffsetRay: xrRay\n\t\t\t\t}).then(xrHitTestSource => {\n\t\t\t\t\tthis._onHitTestSource(xrHitTestSource, false, options.inputSource, callback);\n\t\t\t\t}).catch(ex => {\n\t\t\t\t\tif (callback) callback(ex);\n\t\t\t\t\tthis.fire('error', ex);\n\t\t\t\t});\n\t\t\t}).catch(ex => {\n\t\t\t\tif (callback) callback(ex);\n\t\t\t\tthis.fire('error', ex);\n\t\t\t});\n\t\t} else {\n\t\t\tthis.manager.session.requestHitTestSourceForTransientInput({\n\t\t\t\tprofile: options.profile,\n\t\t\t\tentityTypes: options.entityTypes || undefined,\n\t\t\t\toffsetRay: xrRay\n\t\t\t}).then(xrHitTestSource => {\n\t\t\t\tthis._onHitTestSource(xrHitTestSource, true, options.inputSource, callback);\n\t\t\t}).catch(ex => {\n\t\t\t\tif (callback) callback(ex);\n\t\t\t\tthis.fire('error', ex);\n\t\t\t});\n\t\t}\n\t}\n\t_onHitTestSource(xrHitTestSource, transient, inputSource, callback) {\n\t\tif (!this.manager.session) {\n\t\t\txrHitTestSource.cancel();\n\t\t\tconst err = new Error('XR Session is not started (3)');\n\t\t\tif (callback) callback(err);\n\t\t\tthis.fire('error', err);\n\t\t\treturn;\n\t\t}\n\t\tconst hitTestSource = new XrHitTestSource(this.manager, xrHitTestSource, transient, inputSource != null ? inputSource : null);\n\t\tthis.sources.push(hitTestSource);\n\t\tif (callback) callback(null, hitTestSource);\n\t\tthis.fire('add', hitTestSource);\n\t}\n\tupdate(frame) {\n\t\tif (!this._available) {\n\t\t\treturn;\n\t\t}\n\t\tfor (let i = 0; i < this.sources.length; i++) {\n\t\t\tthis.sources[i].update(frame);\n\t\t}\n\t}\n\tget supported() {\n\t\treturn this._supported;\n\t}\n\tget available() {\n\t\treturn this._available;\n\t}\n}\nXrHitTest.EVENT_AVAILABLE = 'available';\nXrHitTest.EVENT_UNAVAILABLE = 'unavailable';\nXrHitTest.EVENT_ADD = 'add';\nXrHitTest.EVENT_REMOVE = 'remove';\nXrHitTest.EVENT_RESULT = 'result';\nXrHitTest.EVENT_ERROR = 'error';\n\nclass XrTrackedImage extends EventHandler {\n\tconstructor(image, width) {\n\t\tsuper();\n\t\tthis._image = void 0;\n\t\tthis._width = void 0;\n\t\tthis._bitmap = null;\n\t\tthis._measuredWidth = 0;\n\t\tthis._trackable = false;\n\t\tthis._tracking = false;\n\t\tthis._emulated = false;\n\t\tthis._pose = null;\n\t\tthis._position = new Vec3();\n\t\tthis._rotation = new Quat();\n\t\tthis._image = image;\n\t\tthis._width = width;\n\t}\n\tget image() {\n\t\treturn this._image;\n\t}\n\tset width(value) {\n\t\tthis._width = value;\n\t}\n\tget width() {\n\t\treturn this._width;\n\t}\n\tget trackable() {\n\t\treturn this._trackable;\n\t}\n\tget tracking() {\n\t\treturn this._tracking;\n\t}\n\tget emulated() {\n\t\treturn this._emulated;\n\t}\n\tprepare() {\n\t\tif (this._bitmap) {\n\t\t\treturn {\n\t\t\t\timage: this._bitmap,\n\t\t\t\twidthInMeters: this._width\n\t\t\t};\n\t\t}\n\t\treturn createImageBitmap(this._image).then(bitmap => {\n\t\t\tthis._bitmap = bitmap;\n\t\t\treturn {\n\t\t\t\timage: this._bitmap,\n\t\t\t\twidthInMeters: this._width\n\t\t\t};\n\t\t});\n\t}\n\tdestroy() {\n\t\tthis._image = null;\n\t\tthis._pose = null;\n\t\tif (this._bitmap) {\n\t\t\tthis._bitmap.close();\n\t\t\tthis._bitmap = null;\n\t\t}\n\t}\n\tgetPosition() {\n\t\tif (this._pose) this._position.copy(this._pose.transform.position);\n\t\treturn this._position;\n\t}\n\tgetRotation() {\n\t\tif (this._pose) this._rotation.copy(this._pose.transform.orientation);\n\t\treturn this._rotation;\n\t}\n}\nXrTrackedImage.EVENT_TRACKED = 'tracked';\nXrTrackedImage.EVENT_UNTRACKED = 'untracked';\n\nclass XrImageTracking extends EventHandler {\n\tconstructor(manager) {\n\t\tsuper();\n\t\tthis._manager = void 0;\n\t\tthis._supported = platform.browser && !!window.XRImageTrackingResult;\n\t\tthis._available = false;\n\t\tthis._images = [];\n\t\tthis._manager = manager;\n\t\tif (this._supported) {\n\t\t\tthis._manager.on('start', this._onSessionStart, this);\n\t\t\tthis._manager.on('end', this._onSessionEnd, this);\n\t\t}\n\t}\n\tadd(image, width) {\n\t\tif (!this._supported || this._manager.active) return null;\n\t\tconst trackedImage = new XrTrackedImage(image, width);\n\t\tthis._images.push(trackedImage);\n\t\treturn trackedImage;\n\t}\n\tremove(trackedImage) {\n\t\tif (this._manager.active) return;\n\t\tconst ind = this._images.indexOf(trackedImage);\n\t\tif (ind !== -1) {\n\t\t\ttrackedImage.destroy();\n\t\t\tthis._images.splice(ind, 1);\n\t\t}\n\t}\n\t_onSessionStart() {\n\t\tthis._manager.session.getTrackedImageScores().then(images => {\n\t\t\tthis._available = true;\n\t\t\tfor (let i = 0; i < images.length; i++) {\n\t\t\t\tthis._images[i]._trackable = images[i] === 'trackable';\n\t\t\t}\n\t\t}).catch(err => {\n\t\t\tthis._available = false;\n\t\t\tthis.fire('error', err);\n\t\t});\n\t}\n\t_onSessionEnd() {\n\t\tthis._available = false;\n\t\tfor (let i = 0; i < this._images.length; i++) {\n\t\t\tconst image = this._images[i];\n\t\t\timage._pose = null;\n\t\t\timage._measuredWidth = 0;\n\t\t\tif (image._tracking) {\n\t\t\t\timage._tracking = false;\n\t\t\t\timage.fire('untracked');\n\t\t\t}\n\t\t}\n\t}\n\tprepareImages(callback) {\n\t\tif (this._images.length) {\n\t\t\tPromise.all(this._images.map(trackedImage => {\n\t\t\t\treturn trackedImage.prepare();\n\t\t\t})).then(bitmaps => {\n\t\t\t\tcallback(null, bitmaps);\n\t\t\t}).catch(err => {\n\t\t\t\tcallback(err, null);\n\t\t\t});\n\t\t} else {\n\t\t\tcallback(null, null);\n\t\t}\n\t}\n\tupdate(frame) {\n\t\tif (!this._available) return;\n\t\tconst results = frame.getImageTrackingResults();\n\t\tconst index = {};\n\t\tfor (let i = 0; i < results.length; i++) {\n\t\t\tindex[results[i].index] = results[i];\n\t\t\tconst trackedImage = this._images[results[i].index];\n\t\t\ttrackedImage._emulated = results[i].trackingState === 'emulated';\n\t\t\ttrackedImage._measuredWidth = results[i].measuredWidthInMeters;\n\t\t\ttrackedImage._pose = frame.getPose(results[i].imageSpace, this._manager._referenceSpace);\n\t\t}\n\t\tfor (let i = 0; i < this._images.length; i++) {\n\t\t\tif (this._images[i]._tracking && !index[i]) {\n\t\t\t\tthis._images[i]._tracking = false;\n\t\t\t\tthis._images[i].fire('untracked');\n\t\t\t} else if (!this._images[i]._tracking && index[i]) {\n\t\t\t\tthis._images[i]._tracking = true;\n\t\t\t\tthis._images[i].fire('tracked');\n\t\t\t}\n\t\t}\n\t}\n\tget supported() {\n\t\treturn this._supported;\n\t}\n\tget available() {\n\t\treturn this._available;\n\t}\n\tget images() {\n\t\treturn this._images;\n\t}\n}\nXrImageTracking.EVENT_ERROR = 'error';\n\nclass XrFinger {\n\tconstructor(index, hand) {\n\t\tthis._index = void 0;\n\t\tthis._hand = void 0;\n\t\tthis._joints = [];\n\t\tthis._tip = null;\n\t\tthis._index = index;\n\t\tthis._hand = hand;\n\t\tthis._hand._fingers.push(this);\n\t}\n\tget index() {\n\t\treturn this._index;\n\t}\n\tget hand() {\n\t\treturn this._hand;\n\t}\n\tget joints() {\n\t\treturn this._joints;\n\t}\n\tget tip() {\n\t\treturn this._tip;\n\t}\n}\n\nconst tipJointIds = platform.browser && window.XRHand ? ['thumb-tip', 'index-finger-tip', 'middle-finger-tip', 'ring-finger-tip', 'pinky-finger-tip'] : [];\nconst tipJointIdsIndex = {};\nfor (let i = 0; i < tipJointIds.length; i++) {\n\ttipJointIdsIndex[tipJointIds[i]] = true;\n}\nclass XrJoint {\n\tconstructor(index, id, hand, finger = null) {\n\t\tthis._index = void 0;\n\t\tthis._id = void 0;\n\t\tthis._hand = void 0;\n\t\tthis._finger = void 0;\n\t\tthis._wrist = void 0;\n\t\tthis._tip = void 0;\n\t\tthis._radius = null;\n\t\tthis._localTransform = new Mat4();\n\t\tthis._worldTransform = new Mat4();\n\t\tthis._localPosition = new Vec3();\n\t\tthis._localRotation = new Quat();\n\t\tthis._position = new Vec3();\n\t\tthis._rotation = new Quat();\n\t\tthis._dirtyLocal = true;\n\t\tthis._index = index;\n\t\tthis._id = id;\n\t\tthis._hand = hand;\n\t\tthis._finger = finger;\n\t\tthis._wrist = id === 'wrist';\n\t\tthis._tip = this._finger && !!tipJointIdsIndex[id];\n\t}\n\tupdate(pose) {\n\t\tthis._dirtyLocal = true;\n\t\tthis._radius = pose.radius;\n\t\tthis._localPosition.copy(pose.transform.position);\n\t\tthis._localRotation.copy(pose.transform.orientation);\n\t}\n\t_updateTransforms() {\n\t\tif (this._dirtyLocal) {\n\t\t\tthis._dirtyLocal = false;\n\t\t\tthis._localTransform.setTRS(this._localPosition, this._localRotation, Vec3.ONE);\n\t\t}\n\t\tconst manager = this._hand._manager;\n\t\tconst parent = manager.camera.parent;\n\t\tif (parent) {\n\t\t\tthis._worldTransform.mul2(parent.getWorldTransform(), this._localTransform);\n\t\t} else {\n\t\t\tthis._worldTransform.copy(this._localTransform);\n\t\t}\n\t}\n\tgetPosition() {\n\t\tthis._updateTransforms();\n\t\tthis._worldTransform.getTranslation(this._position);\n\t\treturn this._position;\n\t}\n\tgetRotation() {\n\t\tthis._updateTransforms();\n\t\tthis._rotation.setFromMat4(this._worldTransform);\n\t\treturn this._rotation;\n\t}\n\tget index() {\n\t\treturn this._index;\n\t}\n\tget hand() {\n\t\treturn this._hand;\n\t}\n\tget finger() {\n\t\treturn this._finger;\n\t}\n\tget wrist() {\n\t\treturn this._wrist;\n\t}\n\tget tip() {\n\t\treturn this._tip;\n\t}\n\tget radius() {\n\t\treturn this._radius || 0.005;\n\t}\n}\n\nlet fingerJointIds = [];\nconst vecA$1 = new Vec3();\nconst vecB$1 = new Vec3();\nconst vecC = new Vec3();\nif (platform.browser && window.XRHand) {\n\tfingerJointIds = [['thumb-metacarpal', 'thumb-phalanx-proximal', 'thumb-phalanx-distal', 'thumb-tip'], ['index-finger-metacarpal', 'index-finger-phalanx-proximal', 'index-finger-phalanx-intermediate', 'index-finger-phalanx-distal', 'index-finger-tip'], ['middle-finger-metacarpal', 'middle-finger-phalanx-proximal', 'middle-finger-phalanx-intermediate', 'middle-finger-phalanx-distal', 'middle-finger-tip'], ['ring-finger-metacarpal', 'ring-finger-phalanx-proximal', 'ring-finger-phalanx-intermediate', 'ring-finger-phalanx-distal', 'ring-finger-tip'], ['pinky-finger-metacarpal', 'pinky-finger-phalanx-proximal', 'pinky-finger-phalanx-intermediate', 'pinky-finger-phalanx-distal', 'pinky-finger-tip']];\n}\nclass XrHand extends EventHandler {\n\tconstructor(inputSource) {\n\t\tsuper();\n\t\tthis._manager = void 0;\n\t\tthis._inputSource = void 0;\n\t\tthis._tracking = false;\n\t\tthis._fingers = [];\n\t\tthis._joints = [];\n\t\tthis._jointsById = {};\n\t\tthis._tips = [];\n\t\tthis._wrist = null;\n\t\tconst xrHand = inputSource._xrInputSource.hand;\n\t\tthis._manager = inputSource._manager;\n\t\tthis._inputSource = inputSource;\n\t\tif (xrHand.get('wrist')) {\n\t\t\tconst joint = new XrJoint(0, 'wrist', this, null);\n\t\t\tthis._wrist = joint;\n\t\t\tthis._joints.push(joint);\n\t\t\tthis._jointsById.wrist = joint;\n\t\t}\n\t\tfor (let f = 0; f < fingerJointIds.length; f++) {\n\t\t\tconst finger = new XrFinger(f, this);\n\t\t\tfor (let j = 0; j < fingerJointIds[f].length; j++) {\n\t\t\t\tconst jointId = fingerJointIds[f][j];\n\t\t\t\tif (!xrHand.get(jointId)) continue;\n\t\t\t\tconst joint = new XrJoint(j, jointId, this, finger);\n\t\t\t\tthis._joints.push(joint);\n\t\t\t\tthis._jointsById[jointId] = joint;\n\t\t\t\tif (joint.tip) {\n\t\t\t\t\tthis._tips.push(joint);\n\t\t\t\t\tfinger._tip = joint;\n\t\t\t\t}\n\t\t\t\tfinger._joints.push(joint);\n\t\t\t}\n\t\t}\n\t}\n\tupdate(frame) {\n\t\tconst xrInputSource = this._inputSource._xrInputSource;\n\t\tfor (let j = 0; j < this._joints.length; j++) {\n\t\t\tconst joint = this._joints[j];\n\t\t\tconst jointSpace = xrInputSource.hand.get(joint._id);\n\t\t\tif (jointSpace) {\n\t\t\t\tlet pose;\n\t\t\t\tif (frame.session.visibilityState !== 'hidden') {\n\t\t\t\t\tpose = frame.getJointPose(jointSpace, this._manager._referenceSpace);\n\t\t\t\t}\n\t\t\t\tif (pose) {\n\t\t\t\t\tjoint.update(pose);\n\t\t\t\t\tif (joint.wrist && !this._tracking) {\n\t\t\t\t\t\tthis._tracking = true;\n\t\t\t\t\t\tthis.fire('tracking');\n\t\t\t\t\t}\n\t\t\t\t} else if (joint.wrist) {\n\t\t\t\t\tif (this._tracking) {\n\t\t\t\t\t\tthis._tracking = false;\n\t\t\t\t\t\tthis.fire('trackinglost');\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst j1 = this._jointsById['thumb-metacarpal'];\n\t\tconst j4 = this._jointsById['thumb-tip'];\n\t\tconst j6 = this._jointsById['index-finger-phalanx-proximal'];\n\t\tconst j9 = this._jointsById['index-finger-tip'];\n\t\tconst j16 = this._jointsById['ring-finger-phalanx-proximal'];\n\t\tconst j21 = this._jointsById['pinky-finger-phalanx-proximal'];\n\t\tif (j1 && j4 && j6 && j9 && j16 && j21) {\n\t\t\tthis._inputSource._dirtyRay = true;\n\t\t\tthis._inputSource._rayLocal.origin.lerp(j4._localPosition, j9._localPosition, 0.5);\n\t\t\tlet jointL = j1;\n\t\t\tlet jointR = j21;\n\t\t\tif (this._inputSource.handedness === XRHAND_LEFT) {\n\t\t\t\tconst t = jointL;\n\t\t\t\tjointL = jointR;\n\t\t\t\tjointR = t;\n\t\t\t}\n\t\t\tvecA$1.sub2(jointL._localPosition, this._wrist._localPosition);\n\t\t\tvecB$1.sub2(jointR._localPosition, this._wrist._localPosition);\n\t\t\tvecC.cross(vecA$1, vecB$1).normalize();\n\t\t\tvecA$1.lerp(j6._localPosition, j16._localPosition, 0.5);\n\t\t\tvecA$1.sub(this._wrist._localPosition).normalize();\n\t\t\tthis._inputSource._rayLocal.direction.lerp(vecC, vecA$1, 0.5).normalize();\n\t\t}\n\t\tconst squeezing = this._fingerIsClosed(1) && this._fingerIsClosed(2) && this._fingerIsClosed(3) && this._fingerIsClosed(4);\n\t\tif (squeezing) {\n\t\t\tif (!this._inputSource._squeezing) {\n\t\t\t\tthis._inputSource._squeezing = true;\n\t\t\t\tthis._inputSource.fire('squeezestart');\n\t\t\t\tthis._manager.input.fire('squeezestart', this._inputSource);\n\t\t\t}\n\t\t} else {\n\t\t\tif (this._inputSource._squeezing) {\n\t\t\t\tthis._inputSource._squeezing = false;\n\t\t\t\tthis._inputSource.fire('squeeze');\n\t\t\t\tthis._manager.input.fire('squeeze', this._inputSource);\n\t\t\t\tthis._inputSource.fire('squeezeend');\n\t\t\t\tthis._manager.input.fire('squeezeend', this._inputSource);\n\t\t\t}\n\t\t}\n\t}\n\t_fingerIsClosed(index) {\n\t\tconst finger = this._fingers[index];\n\t\tvecA$1.sub2(finger.joints[0]._localPosition, finger.joints[1]._localPosition).normalize();\n\t\tvecB$1.sub2(finger.joints[2]._localPosition, finger.joints[3]._localPosition).normalize();\n\t\treturn vecA$1.dot(vecB$1) < -0.8;\n\t}\n\tgetJointById(id) {\n\t\treturn this._jointsById[id] || null;\n\t}\n\tget fingers() {\n\t\treturn this._fingers;\n\t}\n\tget joints() {\n\t\treturn this._joints;\n\t}\n\tget tips() {\n\t\treturn this._tips;\n\t}\n\tget wrist() {\n\t\treturn this._wrist;\n\t}\n\tget tracking() {\n\t\treturn this._tracking;\n\t}\n}\nXrHand.EVENT_TRACKING = 'tracking';\nXrHand.EVENT_TRACKINGLOST = 'trackinglost';\n\nconst vec3A$1 = new Vec3();\nconst quat = new Quat();\nlet ids$1 = 0;\nclass XrInputSource extends EventHandler {\n\tconstructor(manager, xrInputSource) {\n\t\tsuper();\n\t\tthis._id = void 0;\n\t\tthis._manager = void 0;\n\t\tthis._xrInputSource = void 0;\n\t\tthis._ray = new Ray();\n\t\tthis._rayLocal = new Ray();\n\t\tthis._grip = false;\n\t\tthis._hand = null;\n\t\tthis._velocitiesAvailable = false;\n\t\tthis._velocitiesTimestamp = now();\n\t\tthis._localTransform = null;\n\t\tthis._worldTransform = null;\n\t\tthis._position = new Vec3();\n\t\tthis._rotation = new Quat();\n\t\tthis._localPosition = null;\n\t\tthis._localPositionLast = null;\n\t\tthis._localRotation = null;\n\t\tthis._linearVelocity = null;\n\t\tthis._dirtyLocal = true;\n\t\tthis._dirtyRay = false;\n\t\tthis._selecting = false;\n\t\tthis._squeezing = false;\n\t\tthis._elementInput = true;\n\t\tthis._elementEntity = null;\n\t\tthis._hitTestSources = [];\n\t\tthis._id = ++ids$1;\n\t\tthis._manager = manager;\n\t\tthis._xrInputSource = xrInputSource;\n\t\tif (xrInputSource.hand) {\n\t\t\tthis._hand = new XrHand(this);\n\t\t}\n\t}\n\tget id() {\n\t\treturn this._id;\n\t}\n\tget inputSource() {\n\t\treturn this._xrInputSource;\n\t}\n\tget targetRayMode() {\n\t\treturn this._xrInputSource.targetRayMode;\n\t}\n\tget handedness() {\n\t\treturn this._xrInputSource.handedness;\n\t}\n\tget profiles() {\n\t\treturn this._xrInputSource.profiles;\n\t}\n\tget grip() {\n\t\treturn this._grip;\n\t}\n\tget hand() {\n\t\treturn this._hand;\n\t}\n\tget gamepad() {\n\t\treturn this._xrInputSource.gamepad || null;\n\t}\n\tget selecting() {\n\t\treturn this._selecting;\n\t}\n\tget squeezing() {\n\t\treturn this._squeezing;\n\t}\n\tset elementInput(value) {\n\t\tif (this._elementInput === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis._elementInput = value;\n\t\tif (!this._elementInput) {\n\t\t\tthis._elementEntity = null;\n\t\t}\n\t}\n\tget elementInput() {\n\t\treturn this._elementInput;\n\t}\n\tget elementEntity() {\n\t\treturn this._elementEntity;\n\t}\n\tget hitTestSources() {\n\t\treturn this._hitTestSources;\n\t}\n\tupdate(frame) {\n\t\tif (this._hand) {\n\t\t\tthis._hand.update(frame);\n\t\t} else {\n\t\t\tconst gripSpace = this._xrInputSource.gripSpace;\n\t\t\tif (gripSpace) {\n\t\t\t\tconst gripPose = frame.getPose(gripSpace, this._manager._referenceSpace);\n\t\t\t\tif (gripPose) {\n\t\t\t\t\tif (!this._grip) {\n\t\t\t\t\t\tthis._grip = true;\n\t\t\t\t\t\tthis._localTransform = new Mat4();\n\t\t\t\t\t\tthis._worldTransform = new Mat4();\n\t\t\t\t\t\tthis._localPositionLast = new Vec3();\n\t\t\t\t\t\tthis._localPosition = new Vec3();\n\t\t\t\t\t\tthis._localRotation = new Quat();\n\t\t\t\t\t\tthis._linearVelocity = new Vec3();\n\t\t\t\t\t}\n\t\t\t\t\tconst timestamp = now();\n\t\t\t\t\tconst dt = (timestamp - this._velocitiesTimestamp) / 1000;\n\t\t\t\t\tthis._velocitiesTimestamp = timestamp;\n\t\t\t\t\tthis._dirtyLocal = true;\n\t\t\t\t\tthis._localPositionLast.copy(this._localPosition);\n\t\t\t\t\tthis._localPosition.copy(gripPose.transform.position);\n\t\t\t\t\tthis._localRotation.copy(gripPose.transform.orientation);\n\t\t\t\t\tthis._velocitiesAvailable = true;\n\t\t\t\t\tif (this._manager.input.velocitiesSupported && gripPose.linearVelocity) {\n\t\t\t\t\t\tthis._linearVelocity.copy(gripPose.linearVelocity);\n\t\t\t\t\t} else if (dt > 0) {\n\t\t\t\t\t\tvec3A$1.sub2(this._localPosition, this._localPositionLast).divScalar(dt);\n\t\t\t\t\t\tthis._linearVelocity.lerp(this._linearVelocity, vec3A$1, 0.15);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis._velocitiesAvailable = false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst targetRayPose = frame.getPose(this._xrInputSource.targetRaySpace, this._manager._referenceSpace);\n\t\t\tif (targetRayPose) {\n\t\t\t\tthis._dirtyRay = true;\n\t\t\t\tthis._rayLocal.origin.copy(targetRayPose.transform.position);\n\t\t\t\tthis._rayLocal.direction.set(0, 0, -1);\n\t\t\t\tquat.copy(targetRayPose.transform.orientation);\n\t\t\t\tquat.transformVector(this._rayLocal.direction, this._rayLocal.direction);\n\t\t\t}\n\t\t}\n\t}\n\t_updateTransforms() {\n\t\tif (this._dirtyLocal) {\n\t\t\tthis._dirtyLocal = false;\n\t\t\tthis._localTransform.setTRS(this._localPosition, this._localRotation, Vec3.ONE);\n\t\t}\n\t\tconst parent = this._manager.camera.parent;\n\t\tif (parent) {\n\t\t\tthis._worldTransform.mul2(parent.getWorldTransform(), this._localTransform);\n\t\t} else {\n\t\t\tthis._worldTransform.copy(this._localTransform);\n\t\t}\n\t}\n\t_updateRayTransforms() {\n\t\tconst dirty = this._dirtyRay;\n\t\tthis._dirtyRay = false;\n\t\tconst parent = this._manager.camera.parent;\n\t\tif (parent) {\n\t\t\tconst parentTransform = this._manager.camera.parent.getWorldTransform();\n\t\t\tparentTransform.getTranslation(this._position);\n\t\t\tthis._rotation.setFromMat4(parentTransform);\n\t\t\tthis._rotation.transformVector(this._rayLocal.origin, this._ray.origin);\n\t\t\tthis._ray.origin.add(this._position);\n\t\t\tthis._rotation.transformVector(this._rayLocal.direction, this._ray.direction);\n\t\t} else if (dirty) {\n\t\t\tthis._ray.origin.copy(this._rayLocal.origin);\n\t\t\tthis._ray.direction.copy(this._rayLocal.direction);\n\t\t}\n\t}\n\tgetPosition() {\n\t\tif (!this._position) return null;\n\t\tthis._updateTransforms();\n\t\tthis._worldTransform.getTranslation(this._position);\n\t\treturn this._position;\n\t}\n\tgetLocalPosition() {\n\t\treturn this._localPosition;\n\t}\n\tgetRotation() {\n\t\tif (!this._rotation) return null;\n\t\tthis._updateTransforms();\n\t\tthis._rotation.setFromMat4(this._worldTransform);\n\t\treturn this._rotation;\n\t}\n\tgetLocalRotation() {\n\t\treturn this._localRotation;\n\t}\n\tgetLinearVelocity() {\n\t\tif (!this._velocitiesAvailable) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._linearVelocity;\n\t}\n\tgetOrigin() {\n\t\tthis._updateRayTransforms();\n\t\treturn this._ray.origin;\n\t}\n\tgetDirection() {\n\t\tthis._updateRayTransforms();\n\t\treturn this._ray.direction;\n\t}\n\thitTestStart(options = {}) {\n\t\toptions.inputSource = this;\n\t\toptions.profile = this._xrInputSource.profiles[0];\n\t\tconst callback = options.callback;\n\t\toptions.callback = (err, hitTestSource) => {\n\t\t\tif (hitTestSource) this.onHitTestSourceAdd(hitTestSource);\n\t\t\tif (callback) callback(err, hitTestSource);\n\t\t};\n\t\tthis._manager.hitTest.start(options);\n\t}\n\tonHitTestSourceAdd(hitTestSource) {\n\t\tthis._hitTestSources.push(hitTestSource);\n\t\tthis.fire('hittest:add', hitTestSource);\n\t\thitTestSource.on('result', (position, rotation, inputSource, hitTestResult) => {\n\t\t\tif (inputSource !== this) return;\n\t\t\tthis.fire('hittest:result', hitTestSource, position, rotation, hitTestResult);\n\t\t});\n\t\thitTestSource.once('remove', () => {\n\t\t\tthis.onHitTestSourceRemove(hitTestSource);\n\t\t\tthis.fire('hittest:remove', hitTestSource);\n\t\t});\n\t}\n\tonHitTestSourceRemove(hitTestSource) {\n\t\tconst ind = this._hitTestSources.indexOf(hitTestSource);\n\t\tif (ind !== -1) this._hitTestSources.splice(ind, 1);\n\t}\n}\nXrInputSource.EVENT_REMOVE = 'remove';\nXrInputSource.EVENT_SELECT = 'select';\nXrInputSource.EVENT_SELECTSTART = 'selectstart';\nXrInputSource.EVENT_SELECTEND = 'selectend';\nXrInputSource.EVENT_SQUEEZE = 'squeeze';\nXrInputSource.EVENT_SQUEEZESTART = 'squeezestart';\nXrInputSource.EVENT_SQUEEZEEND = 'squeezeend';\nXrInputSource.EVENT_HITTESTADD = 'hittest:add';\nXrInputSource.EVENT_HITTESTREMOVE = 'hittest:remove';\nXrInputSource.EVENT_HITTESTRESULT = 'hittest:result';\n\nclass XrInput extends EventHandler {\n\tconstructor(manager) {\n\t\tvar _window$XRPose;\n\t\tsuper();\n\t\tthis.manager = void 0;\n\t\tthis._inputSources = [];\n\t\tthis._onInputSourcesChangeEvt = void 0;\n\t\tthis.velocitiesSupported = false;\n\t\tthis.manager = manager;\n\t\tthis.velocitiesSupported = !!(platform.browser && (_window$XRPose = window.XRPose) != null && (_window$XRPose = _window$XRPose.prototype) != null && _window$XRPose.hasOwnProperty('linearVelocity'));\n\t\tthis._onInputSourcesChangeEvt = evt => {\n\t\t\tthis._onInputSourcesChange(evt);\n\t\t};\n\t\tthis.manager.on('start', this._onSessionStart, this);\n\t\tthis.manager.on('end', this._onSessionEnd, this);\n\t}\n\t_onSessionStart() {\n\t\tconst session = this.manager.session;\n\t\tsession.addEventListener('inputsourceschange', this._onInputSourcesChangeEvt);\n\t\tsession.addEventListener('select', evt => {\n\t\t\tconst inputSource = this._getByInputSource(evt.inputSource);\n\t\t\tinputSource.update(evt.frame);\n\t\t\tinputSource.fire('select', evt);\n\t\t\tthis.fire('select', inputSource, evt);\n\t\t});\n\t\tsession.addEventListener('selectstart', evt => {\n\t\t\tconst inputSource = this._getByInputSource(evt.inputSource);\n\t\t\tinputSource.update(evt.frame);\n\t\t\tinputSource._selecting = true;\n\t\t\tinputSource.fire('selectstart', evt);\n\t\t\tthis.fire('selectstart', inputSource, evt);\n\t\t});\n\t\tsession.addEventListener('selectend', evt => {\n\t\t\tconst inputSource = this._getByInputSource(evt.inputSource);\n\t\t\tinputSource.update(evt.frame);\n\t\t\tinputSource._selecting = false;\n\t\t\tinputSource.fire('selectend', evt);\n\t\t\tthis.fire('selectend', inputSource, evt);\n\t\t});\n\t\tsession.addEventListener('squeeze', evt => {\n\t\t\tconst inputSource = this._getByInputSource(evt.inputSource);\n\t\t\tinputSource.update(evt.frame);\n\t\t\tinputSource.fire('squeeze', evt);\n\t\t\tthis.fire('squeeze', inputSource, evt);\n\t\t});\n\t\tsession.addEventListener('squeezestart', evt => {\n\t\t\tconst inputSource = this._getByInputSource(evt.inputSource);\n\t\t\tinputSource.update(evt.frame);\n\t\t\tinputSource._squeezing = true;\n\t\t\tinputSource.fire('squeezestart', evt);\n\t\t\tthis.fire('squeezestart', inputSource, evt);\n\t\t});\n\t\tsession.addEventListener('squeezeend', evt => {\n\t\t\tconst inputSource = this._getByInputSource(evt.inputSource);\n\t\t\tinputSource.update(evt.frame);\n\t\t\tinputSource._squeezing = false;\n\t\t\tinputSource.fire('squeezeend', evt);\n\t\t\tthis.fire('squeezeend', inputSource, evt);\n\t\t});\n\t\tconst inputSources = session.inputSources;\n\t\tfor (let i = 0; i < inputSources.length; i++) {\n\t\t\tthis._addInputSource(inputSources[i]);\n\t\t}\n\t}\n\t_onSessionEnd() {\n\t\tlet i = this._inputSources.length;\n\t\twhile (i--) {\n\t\t\tconst inputSource = this._inputSources[i];\n\t\t\tthis._inputSources.splice(i, 1);\n\t\t\tinputSource.fire('remove');\n\t\t\tthis.fire('remove', inputSource);\n\t\t}\n\t\tconst session = this.manager.session;\n\t\tsession.removeEventListener('inputsourceschange', this._onInputSourcesChangeEvt);\n\t}\n\t_onInputSourcesChange(evt) {\n\t\tfor (let i = 0; i < evt.removed.length; i++) {\n\t\t\tthis._removeInputSource(evt.removed[i]);\n\t\t}\n\t\tfor (let i = 0; i < evt.added.length; i++) {\n\t\t\tthis._addInputSource(evt.added[i]);\n\t\t}\n\t}\n\t_getByInputSource(xrInputSource) {\n\t\tfor (let i = 0; i < this._inputSources.length; i++) {\n\t\t\tif (this._inputSources[i].inputSource === xrInputSource) {\n\t\t\t\treturn this._inputSources[i];\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\t_addInputSource(xrInputSource) {\n\t\tif (this._getByInputSource(xrInputSource)) {\n\t\t\treturn;\n\t\t}\n\t\tconst inputSource = new XrInputSource(this.manager, xrInputSource);\n\t\tthis._inputSources.push(inputSource);\n\t\tthis.fire('add', inputSource);\n\t}\n\t_removeInputSource(xrInputSource) {\n\t\tfor (let i = 0; i < this._inputSources.length; i++) {\n\t\t\tif (this._inputSources[i].inputSource !== xrInputSource) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst inputSource = this._inputSources[i];\n\t\t\tthis._inputSources.splice(i, 1);\n\t\t\tlet h = inputSource.hitTestSources.length;\n\t\t\twhile (h--) {\n\t\t\t\tinputSource.hitTestSources[h].remove();\n\t\t\t}\n\t\t\tinputSource.fire('remove');\n\t\t\tthis.fire('remove', inputSource);\n\t\t\treturn;\n\t\t}\n\t}\n\tupdate(frame) {\n\t\tfor (let i = 0; i < this._inputSources.length; i++) {\n\t\t\tthis._inputSources[i].update(frame);\n\t\t}\n\t}\n\tget inputSources() {\n\t\treturn this._inputSources;\n\t}\n}\nXrInput.EVENT_ADD = 'add';\nXrInput.EVENT_REMOVE = 'remove';\nXrInput.EVENT_SELECT = 'select';\nXrInput.EVENT_SELECTSTART = 'selectstart';\nXrInput.EVENT_SELECTEND = 'selectend';\nXrInput.EVENT_SQUEEZE = 'squeeze';\nXrInput.EVENT_SQUEEZESTART = 'squeezestart';\nXrInput.EVENT_SQUEEZEEND = 'squeezeend';\n\nconst vec3A = new Vec3();\nconst vec3B = new Vec3();\nconst mat4A = new Mat4();\nconst mat4B = new Mat4();\nclass XrLightEstimation extends EventHandler {\n\tconstructor(manager) {\n\t\tsuper();\n\t\tthis._manager = void 0;\n\t\tthis._supported = false;\n\t\tthis._available = false;\n\t\tthis._lightProbeRequested = false;\n\t\tthis._lightProbe = null;\n\t\tthis._intensity = 0;\n\t\tthis._rotation = new Quat();\n\t\tthis._color = new Color();\n\t\tthis._sphericalHarmonics = new Float32Array(27);\n\t\tthis._manager = manager;\n\t\tthis._manager.on('start', this._onSessionStart, this);\n\t\tthis._manager.on('end', this._onSessionEnd, this);\n\t}\n\t_onSessionStart() {\n\t\tconst supported = !!this._manager.session.requestLightProbe;\n\t\tif (!supported) return;\n\t\tthis._supported = true;\n\t}\n\t_onSessionEnd() {\n\t\tthis._supported = false;\n\t\tthis._available = false;\n\t\tthis._lightProbeRequested = false;\n\t\tthis._lightProbe = null;\n\t}\n\tstart() {\n\t\tlet err;\n\t\tif (!this._manager.session) {\n\t\t\terr = new Error('XR session is not running');\n\t\t}\n\t\tif (!err && this._manager.type !== XRTYPE_AR) {\n\t\t\terr = new Error('XR session type is not AR');\n\t\t}\n\t\tif (!err && !this._supported) {\n\t\t\terr = new Error('light-estimation is not supported');\n\t\t}\n\t\tif (!err && this._lightProbe || this._lightProbeRequested) {\n\t\t\terr = new Error('light estimation is already requested');\n\t\t}\n\t\tif (err) {\n\t\t\tthis.fire('error', err);\n\t\t\treturn;\n\t\t}\n\t\tthis._lightProbeRequested = true;\n\t\tthis._manager.session.requestLightProbe().then(lightProbe => {\n\t\t\tconst wasRequested = this._lightProbeRequested;\n\t\t\tthis._lightProbeRequested = false;\n\t\t\tif (this._manager.active) {\n\t\t\t\tif (wasRequested) {\n\t\t\t\t\tthis._lightProbe = lightProbe;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.fire('error', new Error('XR session is not active'));\n\t\t\t}\n\t\t}).catch(ex => {\n\t\t\tthis._lightProbeRequested = false;\n\t\t\tthis.fire('error', ex);\n\t\t});\n\t}\n\tend() {\n\t\tthis._lightProbeRequested = false;\n\t\tthis._lightProbe = null;\n\t\tthis._available = false;\n\t}\n\tupdate(frame) {\n\t\tif (!this._lightProbe) return;\n\t\tconst lightEstimate = frame.getLightEstimate(this._lightProbe);\n\t\tif (!lightEstimate) return;\n\t\tif (!this._available) {\n\t\t\tthis._available = true;\n\t\t\tthis.fire('available');\n\t\t}\n\t\tconst pli = lightEstimate.primaryLightIntensity;\n\t\tthis._intensity = Math.max(1.0, Math.max(pli.x, Math.max(pli.y, pli.z)));\n\t\tvec3A.copy(pli).mulScalar(1 / this._intensity);\n\t\tthis._color.set(vec3A.x, vec3A.y, vec3A.z);\n\t\tvec3A.set(0, 0, 0);\n\t\tvec3B.copy(lightEstimate.primaryLightDirection);\n\t\tmat4A.setLookAt(vec3B, vec3A, Vec3.UP);\n\t\tmat4B.setFromAxisAngle(Vec3.RIGHT, 90);\n\t\tmat4A.mul(mat4B);\n\t\tthis._rotation.setFromMat4(mat4A);\n\t\tthis._sphericalHarmonics.set(lightEstimate.sphericalHarmonicsCoefficients);\n\t}\n\tget supported() {\n\t\treturn this._supported;\n\t}\n\tget available() {\n\t\treturn this._available;\n\t}\n\tget intensity() {\n\t\treturn this._available ? this._intensity : null;\n\t}\n\tget color() {\n\t\treturn this._available ? this._color : null;\n\t}\n\tget rotation() {\n\t\treturn this._available ? this._rotation : null;\n\t}\n\tget sphericalHarmonics() {\n\t\treturn this._available ? this._sphericalHarmonics : null;\n\t}\n}\nXrLightEstimation.EVENT_AVAILABLE = 'available';\nXrLightEstimation.EVENT_ERROR = 'error';\n\nlet ids = 0;\nclass XrPlane extends EventHandler {\n\tconstructor(planeDetection, xrPlane) {\n\t\tsuper();\n\t\tthis._id = void 0;\n\t\tthis._planeDetection = void 0;\n\t\tthis._xrPlane = void 0;\n\t\tthis._lastChangedTime = void 0;\n\t\tthis._orientation = void 0;\n\t\tthis._position = new Vec3();\n\t\tthis._rotation = new Quat();\n\t\tthis._id = ++ids;\n\t\tthis._planeDetection = planeDetection;\n\t\tthis._xrPlane = xrPlane;\n\t\tthis._lastChangedTime = xrPlane.lastChangedTime;\n\t\tthis._orientation = xrPlane.orientation;\n\t}\n\tdestroy() {\n\t\tif (!this._xrPlane) return;\n\t\tthis._xrPlane = null;\n\t\tthis.fire('remove');\n\t}\n\tupdate(frame) {\n\t\tconst manager = this._planeDetection._manager;\n\t\tconst pose = frame.getPose(this._xrPlane.planeSpace, manager._referenceSpace);\n\t\tif (pose) {\n\t\t\tthis._position.copy(pose.transform.position);\n\t\t\tthis._rotation.copy(pose.transform.orientation);\n\t\t}\n\t\tif (this._lastChangedTime !== this._xrPlane.lastChangedTime) {\n\t\t\tthis._lastChangedTime = this._xrPlane.lastChangedTime;\n\t\t\tthis.fire('change');\n\t\t}\n\t}\n\tgetPosition() {\n\t\treturn this._position;\n\t}\n\tgetRotation() {\n\t\treturn this._rotation;\n\t}\n\tget id() {\n\t\treturn this._id;\n\t}\n\tget orientation() {\n\t\treturn this._orientation;\n\t}\n\tget points() {\n\t\treturn this._xrPlane.polygon;\n\t}\n\tget label() {\n\t\treturn this._xrPlane.semanticLabel || '';\n\t}\n}\nXrPlane.EVENT_REMOVE = 'remove';\nXrPlane.EVENT_CHANGE = 'change';\n\nclass XrPlaneDetection extends EventHandler {\n\tconstructor(manager) {\n\t\tsuper();\n\t\tthis._manager = void 0;\n\t\tthis._supported = platform.browser && !!window.XRPlane;\n\t\tthis._available = false;\n\t\tthis._planesIndex = new Map();\n\t\tthis._planes = [];\n\t\tthis._manager = manager;\n\t\tif (this._supported) {\n\t\t\tthis._manager.on('start', this._onSessionStart, this);\n\t\t\tthis._manager.on('end', this._onSessionEnd, this);\n\t\t}\n\t}\n\t_onSessionStart() {\n\t\tif (this._manager.session.enabledFeatures) {\n\t\t\tconst available = this._manager.session.enabledFeatures.indexOf('plane-detection') !== -1;\n\t\t\tif (available) {\n\t\t\t\tthis._available = true;\n\t\t\t\tthis.fire('available');\n\t\t\t}\n\t\t}\n\t}\n\t_onSessionEnd() {\n\t\tfor (let i = 0; i < this._planes.length; i++) {\n\t\t\tthis._planes[i].destroy();\n\t\t\tthis.fire('remove', this._planes[i]);\n\t\t}\n\t\tthis._planesIndex.clear();\n\t\tthis._planes.length = 0;\n\t\tif (this._available) {\n\t\t\tthis._available = false;\n\t\t\tthis.fire('unavailable');\n\t\t}\n\t}\n\tupdate(frame) {\n\t\tif (!this._available) {\n\t\t\tif (!this._manager.session.enabledFeatures && frame.detectedPlanes.size) {\n\t\t\t\tthis._available = true;\n\t\t\t\tthis.fire('available');\n\t\t\t} else {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tconst detectedPlanes = frame.detectedPlanes;\n\t\tfor (const [xrPlane, plane] of this._planesIndex) {\n\t\t\tif (detectedPlanes.has(xrPlane)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis._planesIndex.delete(xrPlane);\n\t\t\tthis._planes.splice(this._planes.indexOf(plane), 1);\n\t\t\tplane.destroy();\n\t\t\tthis.fire('remove', plane);\n\t\t}\n\t\tfor (const xrPlane of detectedPlanes) {\n\t\t\tlet plane = this._planesIndex.get(xrPlane);\n\t\t\tif (!plane) {\n\t\t\t\tplane = new XrPlane(this, xrPlane);\n\t\t\t\tthis._planesIndex.set(xrPlane, plane);\n\t\t\t\tthis._planes.push(plane);\n\t\t\t\tplane.update(frame);\n\t\t\t\tthis.fire('add', plane);\n\t\t\t} else {\n\t\t\t\tplane.update(frame);\n\t\t\t}\n\t\t}\n\t}\n\tget supported() {\n\t\treturn this._supported;\n\t}\n\tget available() {\n\t\treturn this._available;\n\t}\n\tget planes() {\n\t\treturn this._planes;\n\t}\n}\nXrPlaneDetection.EVENT_AVAILABLE = 'available';\nXrPlaneDetection.EVENT_UNAVAILABLE = 'unavailable';\nXrPlaneDetection.EVENT_ADD = 'add';\nXrPlaneDetection.EVENT_REMOVE = 'remove';\n\nclass XrAnchor extends EventHandler {\n\tconstructor(anchors, xrAnchor, uuid = null) {\n\t\tsuper();\n\t\tthis._position = new Vec3();\n\t\tthis._rotation = new Quat();\n\t\tthis._uuid = null;\n\t\tthis._uuidRequests = null;\n\t\tthis._anchors = anchors;\n\t\tthis._xrAnchor = xrAnchor;\n\t\tthis._uuid = uuid;\n\t}\n\tdestroy() {\n\t\tif (!this._xrAnchor) return;\n\t\tconst xrAnchor = this._xrAnchor;\n\t\tthis._xrAnchor.delete();\n\t\tthis._xrAnchor = null;\n\t\tthis.fire('destroy', xrAnchor, this);\n\t}\n\tupdate(frame) {\n\t\tif (!this._xrAnchor) {\n\t\t\treturn;\n\t\t}\n\t\tconst pose = frame.getPose(this._xrAnchor.anchorSpace, this._anchors.manager._referenceSpace);\n\t\tif (pose) {\n\t\t\tif (this._position.equals(pose.transform.position) && this._rotation.equals(pose.transform.orientation)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._position.copy(pose.transform.position);\n\t\t\tthis._rotation.copy(pose.transform.orientation);\n\t\t\tthis.fire('change');\n\t\t}\n\t}\n\tgetPosition() {\n\t\treturn this._position;\n\t}\n\tgetRotation() {\n\t\treturn this._rotation;\n\t}\n\tpersist(callback) {\n\t\tif (!this._anchors.persistence) {\n\t\t\tcallback == null || callback(new Error('Persistent Anchors are not supported'), null);\n\t\t\treturn;\n\t\t}\n\t\tif (this._uuid) {\n\t\t\tcallback == null || callback(null, this._uuid);\n\t\t\treturn;\n\t\t}\n\t\tif (this._uuidRequests) {\n\t\t\tif (callback) this._uuidRequests.push(callback);\n\t\t\treturn;\n\t\t}\n\t\tthis._uuidRequests = [];\n\t\tthis._xrAnchor.requestPersistentHandle().then(uuid => {\n\t\t\tthis._uuid = uuid;\n\t\t\tthis._anchors._indexByUuid.set(this._uuid, this);\n\t\t\tcallback == null || callback(null, uuid);\n\t\t\tfor (const uuidRequest of this._uuidRequests) {\n\t\t\t\tuuidRequest(null, uuid);\n\t\t\t}\n\t\t\tthis._uuidRequests = null;\n\t\t\tthis.fire('persist', uuid);\n\t\t}).catch(ex => {\n\t\t\tcallback == null || callback(ex, null);\n\t\t\tfor (const uuidRequest of this._uuidRequests) {\n\t\t\t\tuuidRequest(ex, null);\n\t\t\t}\n\t\t\tthis._uuidRequests = null;\n\t\t});\n\t}\n\tforget(callback) {\n\t\tif (!this._uuid) {\n\t\t\tcallback == null || callback(new Error('Anchor is not persistent'));\n\t\t\treturn;\n\t\t}\n\t\tthis._anchors.forget(this._uuid, ex => {\n\t\t\tthis._uuid = null;\n\t\t\tcallback == null || callback(ex);\n\t\t\tthis.fire('forget');\n\t\t});\n\t}\n\tget uuid() {\n\t\treturn this._uuid;\n\t}\n\tget persistent() {\n\t\treturn !!this._uuid;\n\t}\n}\nXrAnchor.EVENT_DESTROY = 'destroy';\nXrAnchor.EVENT_CHANGE = 'change';\nXrAnchor.EVENT_PERSIST = 'persist';\nXrAnchor.EVENT_FORGET = 'forget';\n\nclass XrAnchors extends EventHandler {\n\tconstructor(manager) {\n\t\tvar _window;\n\t\tsuper();\n\t\tthis.manager = void 0;\n\t\tthis._supported = platform.browser && !!window.XRAnchor;\n\t\tthis._available = false;\n\t\tthis._checkingAvailability = false;\n\t\tthis._persistence = platform.browser && !!((_window = window) != null && (_window = _window.XRSession) != null && _window.prototype.restorePersistentAnchor);\n\t\tthis._creationQueue = [];\n\t\tthis._index = new Map();\n\t\tthis._indexByUuid = new Map();\n\t\tthis._list = [];\n\t\tthis._callbacksAnchors = new Map();\n\t\tthis.manager = manager;\n\t\tif (this._supported) {\n\t\t\tthis.manager.on('start', this._onSessionStart, this);\n\t\t\tthis.manager.on('end', this._onSessionEnd, this);\n\t\t}\n\t}\n\t_onSessionStart() {\n\t\tconst available = this.manager.session.enabledFeatures.indexOf('anchors') !== -1;\n\t\tif (!available) return;\n\t\tthis._available = available;\n\t\tthis.fire('available');\n\t}\n\t_onSessionEnd() {\n\t\tif (!this._available) return;\n\t\tthis._available = false;\n\t\tfor (let _i = 0; _i < this._creationQueue.length; _i++) {\n\t\t\tif (!this._creationQueue[_i].callback) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis._creationQueue[_i].callback(new Error('session ended'), null);\n\t\t}\n\t\tthis._creationQueue.length = 0;\n\t\tthis._index.clear();\n\t\tthis._indexByUuid.clear();\n\t\tlet i = this._list.length;\n\t\twhile (i--) {\n\t\t\tthis._list[i].destroy();\n\t\t}\n\t\tthis._list.length = 0;\n\t\tthis.fire('unavailable');\n\t}\n\t_createAnchor(xrAnchor, uuid = null) {\n\t\tconst anchor = new XrAnchor(this, xrAnchor, uuid);\n\t\tthis._index.set(xrAnchor, anchor);\n\t\tif (uuid) this._indexByUuid.set(uuid, anchor);\n\t\tthis._list.push(anchor);\n\t\tanchor.once('destroy', this._onAnchorDestroy, this);\n\t\treturn anchor;\n\t}\n\t_onAnchorDestroy(xrAnchor, anchor) {\n\t\tthis._index.delete(xrAnchor);\n\t\tif (anchor.uuid) this._indexByUuid.delete(anchor.uuid);\n\t\tconst ind = this._list.indexOf(anchor);\n\t\tif (ind !== -1) this._list.splice(ind, 1);\n\t\tthis.fire('destroy', anchor);\n\t}\n\tcreate(position, rotation, callback) {\n\t\tif (!this._available) {\n\t\t\tcallback == null || callback(new Error('Anchors API is not available'), null);\n\t\t\treturn;\n\t\t}\n\t\tif (window.XRHitTestResult && position instanceof XRHitTestResult) {\n\t\t\tconst hitResult = position;\n\t\t\tcallback = rotation;\n\t\t\tif (!this._supported) {\n\t\t\t\tcallback == null || callback(new Error('Anchors API is not supported'), null);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!hitResult.createAnchor) {\n\t\t\t\tcallback == null || callback(new Error('Creating Anchor from Hit Test is not supported'), null);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\thitResult.createAnchor().then(xrAnchor => {\n\t\t\t\tconst anchor = this._createAnchor(xrAnchor);\n\t\t\t\tcallback == null || callback(null, anchor);\n\t\t\t\tthis.fire('add', anchor);\n\t\t\t}).catch(ex => {\n\t\t\t\tcallback == null || callback(ex, null);\n\t\t\t\tthis.fire('error', ex);\n\t\t\t});\n\t\t} else {\n\t\t\tthis._creationQueue.push({\n\t\t\t\ttransform: new XRRigidTransform(position, rotation),\n\t\t\t\tcallback: callback\n\t\t\t});\n\t\t}\n\t}\n\trestore(uuid, callback) {\n\t\tif (!this._available) {\n\t\t\tcallback == null || callback(new Error('Anchors API is not available'), null);\n\t\t\treturn;\n\t\t}\n\t\tif (!this._persistence) {\n\t\t\tcallback == null || callback(new Error('Anchor Persistence is not supported'), null);\n\t\t\treturn;\n\t\t}\n\t\tif (!this.manager.active) {\n\t\t\tcallback == null || callback(new Error('WebXR session is not active'), null);\n\t\t\treturn;\n\t\t}\n\t\tthis.manager.session.restorePersistentAnchor(uuid).then(xrAnchor => {\n\t\t\tconst anchor = this._createAnchor(xrAnchor, uuid);\n\t\t\tcallback == null || callback(null, anchor);\n\t\t\tthis.fire('add', anchor);\n\t\t}).catch(ex => {\n\t\t\tcallback == null || callback(ex, null);\n\t\t\tthis.fire('error', ex);\n\t\t});\n\t}\n\tforget(uuid, callback) {\n\t\tif (!this._available) {\n\t\t\tcallback == null || callback(new Error('Anchors API is not available'));\n\t\t\treturn;\n\t\t}\n\t\tif (!this._persistence) {\n\t\t\tcallback == null || callback(new Error('Anchor Persistence is not supported'));\n\t\t\treturn;\n\t\t}\n\t\tif (!this.manager.active) {\n\t\t\tcallback == null || callback(new Error('WebXR session is not active'));\n\t\t\treturn;\n\t\t}\n\t\tthis.manager.session.deletePersistentAnchor(uuid).then(() => {\n\t\t\tcallback == null || callback(null);\n\t\t}).catch(ex => {\n\t\t\tcallback == null || callback(ex);\n\t\t\tthis.fire('error', ex);\n\t\t});\n\t}\n\tupdate(frame) {\n\t\tif (!this._available) {\n\t\t\tif (!this.manager.session.enabledFeatures && !this._checkingAvailability) {\n\t\t\t\tthis._checkingAvailability = true;\n\t\t\t\tframe.createAnchor(new XRRigidTransform(), this.manager._referenceSpace).then(xrAnchor => {\n\t\t\t\t\txrAnchor.delete();\n\t\t\t\t\tif (this.manager.active) {\n\t\t\t\t\t\tthis._available = true;\n\t\t\t\t\t\tthis.fire('available');\n\t\t\t\t\t}\n\t\t\t\t}).catch(() => {});\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (this._creationQueue.length) {\n\t\t\tfor (let i = 0; i < this._creationQueue.length; i++) {\n\t\t\t\tconst request = this._creationQueue[i];\n\t\t\t\tframe.createAnchor(request.transform, this.manager._referenceSpace).then(xrAnchor => {\n\t\t\t\t\tif (request.callback) {\n\t\t\t\t\t\tthis._callbacksAnchors.set(xrAnchor, request.callback);\n\t\t\t\t\t}\n\t\t\t\t}).catch(ex => {\n\t\t\t\t\tif (request.callback) {\n\t\t\t\t\t\trequest.callback(ex, null);\n\t\t\t\t\t}\n\t\t\t\t\tthis.fire('error', ex);\n\t\t\t\t});\n\t\t\t}\n\t\t\tthis._creationQueue.length = 0;\n\t\t}\n\t\tfor (const [xrAnchor, anchor] of this._index) {\n\t\t\tif (frame.trackedAnchors.has(xrAnchor)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis._index.delete(xrAnchor);\n\t\t\tanchor.destroy();\n\t\t}\n\t\tfor (let i = 0; i < this._list.length; i++) {\n\t\t\tthis._list[i].update(frame);\n\t\t}\n\t\tfor (const xrAnchor of frame.trackedAnchors) {\n\t\t\tif (this._index.has(xrAnchor)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tconst tmp = xrAnchor.anchorSpace;\n\t\t\t} catch (ex) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst anchor = this._createAnchor(xrAnchor);\n\t\t\tanchor.update(frame);\n\t\t\tconst callback = this._callbacksAnchors.get(xrAnchor);\n\t\t\tif (callback) {\n\t\t\t\tthis._callbacksAnchors.delete(xrAnchor);\n\t\t\t\tcallback(null, anchor);\n\t\t\t}\n\t\t\tthis.fire('add', anchor);\n\t\t}\n\t}\n\tget supported() {\n\t\treturn this._supported;\n\t}\n\tget available() {\n\t\treturn this._available;\n\t}\n\tget persistence() {\n\t\treturn this._persistence;\n\t}\n\tget uuids() {\n\t\tif (!this._available) {\n\t\t\treturn null;\n\t\t}\n\t\tif (!this._persistence) {\n\t\t\treturn null;\n\t\t}\n\t\tif (!this.manager.active) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.manager.session.persistentAnchors;\n\t}\n\tget list() {\n\t\treturn this._list;\n\t}\n}\nXrAnchors.EVENT_AVAILABLE = 'available';\nXrAnchors.EVENT_UNAVAILABLE = 'unavailable';\nXrAnchors.EVENT_ERROR = 'error';\nXrAnchors.EVENT_ADD = 'add';\nXrAnchors.EVENT_DESTROY = 'destroy';\n\nclass XrMesh extends EventHandler {\n\tconstructor(meshDetection, xrMesh) {\n\t\tsuper();\n\t\tthis._meshDetection = void 0;\n\t\tthis._xrMesh = void 0;\n\t\tthis._lastChanged = 0;\n\t\tthis._position = new Vec3();\n\t\tthis._rotation = new Quat();\n\t\tthis._meshDetection = meshDetection;\n\t\tthis._xrMesh = xrMesh;\n\t\tthis._lastChanged = this._xrMesh.lastChangedTime;\n\t}\n\tget xrMesh() {\n\t\treturn this._xrMesh;\n\t}\n\tget label() {\n\t\treturn this._xrMesh.semanticLabel || '';\n\t}\n\tget vertices() {\n\t\treturn this._xrMesh.vertices;\n\t}\n\tget indices() {\n\t\treturn this._xrMesh.indices;\n\t}\n\tdestroy() {\n\t\tif (!this._xrMesh) return;\n\t\tthis._xrMesh = null;\n\t\tthis.fire('remove');\n\t}\n\tupdate(frame) {\n\t\tconst manager = this._meshDetection._manager;\n\t\tconst pose = frame.getPose(this._xrMesh.meshSpace, manager._referenceSpace);\n\t\tif (pose) {\n\t\t\tthis._position.copy(pose.transform.position);\n\t\t\tthis._rotation.copy(pose.transform.orientation);\n\t\t}\n\t\tif (this._lastChanged !== this._xrMesh.lastChangedTime) {\n\t\t\tthis._lastChanged = this._xrMesh.lastChangedTime;\n\t\t\tthis.fire('change');\n\t\t}\n\t}\n\tgetPosition() {\n\t\treturn this._position;\n\t}\n\tgetRotation() {\n\t\treturn this._rotation;\n\t}\n}\nXrMesh.EVENT_REMOVE = 'remove';\nXrMesh.EVENT_CHANGE = 'change';\n\nclass XrMeshDetection extends EventHandler {\n\tconstructor(manager) {\n\t\tsuper();\n\t\tthis._manager = void 0;\n\t\tthis._supported = platform.browser && !!window.XRMesh;\n\t\tthis._available = false;\n\t\tthis._index = new Map();\n\t\tthis._list = [];\n\t\tthis._manager = manager;\n\t\tif (this._supported) {\n\t\t\tthis._manager.on('start', this._onSessionStart, this);\n\t\t\tthis._manager.on('end', this._onSessionEnd, this);\n\t\t}\n\t}\n\tupdate(frame) {\n\t\tif (!this._available) {\n\t\t\tif (!this._manager.session.enabledFeatures && frame.detectedMeshes.size) {\n\t\t\t\tthis._available = true;\n\t\t\t\tthis.fire('available');\n\t\t\t} else {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tfor (const xrMesh of frame.detectedMeshes) {\n\t\t\tlet mesh = this._index.get(xrMesh);\n\t\t\tif (!mesh) {\n\t\t\t\tmesh = new XrMesh(this, xrMesh);\n\t\t\t\tthis._index.set(xrMesh, mesh);\n\t\t\t\tthis._list.push(mesh);\n\t\t\t\tmesh.update(frame);\n\t\t\t\tthis.fire('add', mesh);\n\t\t\t} else {\n\t\t\t\tmesh.update(frame);\n\t\t\t}\n\t\t}\n\t\tfor (const mesh of this._index.values()) {\n\t\t\tif (frame.detectedMeshes.has(mesh.xrMesh)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis._removeMesh(mesh);\n\t\t}\n\t}\n\t_removeMesh(mesh) {\n\t\tthis._index.delete(mesh.xrMesh);\n\t\tthis._list.splice(this._list.indexOf(mesh), 1);\n\t\tmesh.destroy();\n\t\tthis.fire('remove', mesh);\n\t}\n\t_onSessionStart() {\n\t\tif (this._manager.session.enabledFeatures) {\n\t\t\tconst available = this._manager.session.enabledFeatures.indexOf('mesh-detection') !== -1;\n\t\t\tif (!available) return;\n\t\t\tthis._available = available;\n\t\t\tthis.fire('available');\n\t\t}\n\t}\n\t_onSessionEnd() {\n\t\tif (!this._available) return;\n\t\tthis._available = false;\n\t\tfor (const mesh of this._index.values()) {\n\t\t\tthis._removeMesh(mesh);\n\t\t}\n\t\tthis.fire('unavailable');\n\t}\n\tget supported() {\n\t\treturn this._supported;\n\t}\n\tget available() {\n\t\treturn this._available;\n\t}\n\tget meshes() {\n\t\treturn this._list;\n\t}\n}\nXrMeshDetection.EVENT_AVAILABLE = 'available';\nXrMeshDetection.EVENT_UNAVAILABLE = 'unavailable';\nXrMeshDetection.EVENT_ADD = 'add';\nXrMeshDetection.EVENT_REMOVE = 'remove';\n\nclass XrView extends EventHandler {\n\tconstructor(manager, xrView, viewsCount) {\n\t\tsuper();\n\t\tthis._manager = void 0;\n\t\tthis._xrView = void 0;\n\t\tthis._positionData = new Float32Array(3);\n\t\tthis._viewport = new Vec4();\n\t\tthis._projMat = new Mat4();\n\t\tthis._projViewOffMat = new Mat4();\n\t\tthis._viewMat = new Mat4();\n\t\tthis._viewOffMat = new Mat4();\n\t\tthis._viewMat3 = new Mat3();\n\t\tthis._viewInvMat = new Mat4();\n\t\tthis._viewInvOffMat = new Mat4();\n\t\tthis._xrCamera = null;\n\t\tthis._textureColor = null;\n\t\tthis._textureDepth = null;\n\t\tthis._depthInfo = null;\n\t\tthis._emptyDepthBuffer = new Uint8Array(32);\n\t\tthis._depthMatrix = new Mat4();\n\t\tthis._manager = manager;\n\t\tthis._xrView = xrView;\n\t\tconst device = this._manager.app.graphicsDevice;\n\t\tif (this._manager.views.supportedColor) {\n\t\t\tthis._xrCamera = this._xrView.camera;\n\t\t\tif (this._manager.views.availableColor && this._xrCamera) {\n\t\t\t\tthis._textureColor = new Texture(device, {\n\t\t\t\t\tformat: PIXELFORMAT_RGB8,\n\t\t\t\t\tmipmaps: false,\n\t\t\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\t\t\tminFilter: FILTER_LINEAR,\n\t\t\t\t\tmagFilter: FILTER_LINEAR,\n\t\t\t\t\twidth: this._xrCamera.width,\n\t\t\t\t\theight: this._xrCamera.height,\n\t\t\t\t\tname: `XrView-${this._xrView.eye}-Color`\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tif (this._manager.views.supportedDepth && this._manager.views.availableDepth) {\n\t\t\tthis._textureDepth = new Texture(device, {\n\t\t\t\tformat: this._manager.views.depthPixelFormat,\n\t\t\t\tarrayLength: viewsCount === 1 ? 0 : viewsCount,\n\t\t\t\tmipmaps: false,\n\t\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\t\tminFilter: FILTER_LINEAR,\n\t\t\t\tmagFilter: FILTER_LINEAR,\n\t\t\t\twidth: 4,\n\t\t\t\theight: 4,\n\t\t\t\tname: `XrView-${this._xrView.eye}-Depth`\n\t\t\t});\n\t\t\tfor (let i = 0; i < this._textureDepth._levels.length; i++) {\n\t\t\t\tthis._textureDepth._levels[i] = this._emptyDepthBuffer;\n\t\t\t}\n\t\t}\n\t\tif (this._textureColor || this._textureDepth) {\n\t\t\tdevice.on('devicelost', this._onDeviceLost, this);\n\t\t}\n\t}\n\tget textureColor() {\n\t\treturn this._textureColor;\n\t}\n\tget textureDepth() {\n\t\treturn this._textureDepth;\n\t}\n\tget depthUvMatrix() {\n\t\treturn this._depthMatrix;\n\t}\n\tget depthValueToMeters() {\n\t\tvar _this$_depthInfo;\n\t\treturn ((_this$_depthInfo = this._depthInfo) == null ? void 0 : _this$_depthInfo.rawValueToMeters) || 0;\n\t}\n\tget eye() {\n\t\treturn this._xrView.eye;\n\t}\n\tget viewport() {\n\t\treturn this._viewport;\n\t}\n\tget projMat() {\n\t\treturn this._projMat;\n\t}\n\tget projViewOffMat() {\n\t\treturn this._projViewOffMat;\n\t}\n\tget viewOffMat() {\n\t\treturn this._viewOffMat;\n\t}\n\tget viewInvOffMat() {\n\t\treturn this._viewInvOffMat;\n\t}\n\tget viewMat3() {\n\t\treturn this._viewMat3;\n\t}\n\tget positionData() {\n\t\treturn this._positionData;\n\t}\n\tupdate(frame, xrView) {\n\t\tthis._xrView = xrView;\n\t\tif (this._manager.views.availableColor) {\n\t\t\tthis._xrCamera = this._xrView.camera;\n\t\t}\n\t\tconst layer = frame.session.renderState.baseLayer;\n\t\tconst viewport = layer.getViewport(this._xrView);\n\t\tthis._viewport.x = viewport.x;\n\t\tthis._viewport.y = viewport.y;\n\t\tthis._viewport.z = viewport.width;\n\t\tthis._viewport.w = viewport.height;\n\t\tthis._projMat.set(this._xrView.projectionMatrix);\n\t\tthis._viewMat.set(this._xrView.transform.inverse.matrix);\n\t\tthis._viewInvMat.set(this._xrView.transform.matrix);\n\t\tthis._updateTextureColor();\n\t\tthis._updateDepth(frame);\n\t}\n\t_updateTextureColor() {\n\t\tif (!this._manager.views.availableColor || !this._xrCamera || !this._textureColor) {\n\t\t\treturn;\n\t\t}\n\t\tconst binding = this._manager.webglBinding;\n\t\tif (!binding) {\n\t\t\treturn;\n\t\t}\n\t\tconst texture = binding.getCameraImage(this._xrCamera);\n\t\tif (!texture) {\n\t\t\treturn;\n\t\t}\n\t\tconst device = this._manager.app.graphicsDevice;\n\t\tconst gl = device.gl;\n\t\tif (!this._frameBufferSource) {\n\t\t\tthis._frameBufferSource = gl.createFramebuffer();\n\t\t\tthis._frameBuffer = gl.createFramebuffer();\n\t\t} else {\n\t\t\tvar _device$extDrawBuffer, _device$extDrawBuffer2;\n\t\t\tconst attachmentBaseConstant = device.isWebGL2 ? gl.COLOR_ATTACHMENT0 : (_device$extDrawBuffer = (_device$extDrawBuffer2 = device.extDrawBuffers) == null ? void 0 : _device$extDrawBuffer2.COLOR_ATTACHMENT0_WEBGL) != null ? _device$extDrawBuffer : gl.COLOR_ATTACHMENT0;\n\t\t\tconst width = this._xrCamera.width;\n\t\t\tconst height = this._xrCamera.height;\n\t\t\tdevice.setFramebuffer(this._frameBufferSource);\n\t\t\tgl.framebufferTexture2D(gl.FRAMEBUFFER, attachmentBaseConstant, gl.TEXTURE_2D, texture, 0);\n\t\t\tdevice.setFramebuffer(this._frameBuffer);\n\t\t\tgl.framebufferTexture2D(gl.FRAMEBUFFER, attachmentBaseConstant, gl.TEXTURE_2D, this._textureColor.impl._glTexture, 0);\n\t\t\tgl.bindFramebuffer(gl.READ_FRAMEBUFFER, this._frameBufferSource);\n\t\t\tgl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, this._frameBuffer);\n\t\t\tgl.blitFramebuffer(0, height, width, 0, 0, 0, width, height, gl.COLOR_BUFFER_BIT, gl.NEAREST);\n\t\t}\n\t}\n\t_updateDepth(frame) {\n\t\tvar _this$_depthInfo2, _this$_depthInfo3;\n\t\tif (!this._manager.views.availableDepth || !this._textureDepth) {\n\t\t\treturn;\n\t\t}\n\t\tconst gpu = this._manager.views.depthGpuOptimized;\n\t\tconst infoSource = gpu ? this._manager.webglBinding : frame;\n\t\tif (!infoSource) {\n\t\t\tthis._depthInfo = null;\n\t\t\treturn;\n\t\t}\n\t\tconst depthInfo = infoSource.getDepthInformation(this._xrView);\n\t\tif (!depthInfo) {\n\t\t\tthis._depthInfo = null;\n\t\t\treturn;\n\t\t}\n\t\tlet matrixDirty = !this._depthInfo !== !depthInfo;\n\t\tthis._depthInfo = depthInfo;\n\t\tconst width = ((_this$_depthInfo2 = this._depthInfo) == null ? void 0 : _this$_depthInfo2.width) || 4;\n\t\tconst height = ((_this$_depthInfo3 = this._depthInfo) == null ? void 0 : _this$_depthInfo3.height) || 4;\n\t\tlet resized = false;\n\t\tif (this._textureDepth.width !== width || this._textureDepth.height !== height) {\n\t\t\tthis._textureDepth._width = width;\n\t\t\tthis._textureDepth._height = height;\n\t\t\tmatrixDirty = true;\n\t\t\tresized = true;\n\t\t}\n\t\tif (matrixDirty) {\n\t\t\tif (this._depthInfo) {\n\t\t\t\tthis._depthMatrix.data.set(this._depthInfo.normDepthBufferFromNormView.matrix);\n\t\t\t} else {\n\t\t\t\tthis._depthMatrix.setIdentity();\n\t\t\t}\n\t\t}\n\t\tif (this._depthInfo) {\n\t\t\tif (gpu) {\n\t\t\t\tif (this._depthInfo.texture) {\n\t\t\t\t\tthis._textureDepth.impl._glTexture = this._depthInfo.texture;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._textureDepth._levels[0] = new Uint8Array(this._depthInfo.data);\n\t\t\t\tthis._textureDepth.upload();\n\t\t\t}\n\t\t} else {\n\t\t\tthis._textureDepth._levels[0] = this._emptyDepthBuffer;\n\t\t\tthis._textureDepth.upload();\n\t\t}\n\t\tif (resized) this.fire('depth:resize', width, height);\n\t}\n\tupdateTransforms(transform) {\n\t\tif (transform) {\n\t\t\tthis._viewInvOffMat.mul2(transform, this._viewInvMat);\n\t\t\tthis.viewOffMat.copy(this._viewInvOffMat).invert();\n\t\t} else {\n\t\t\tthis._viewInvOffMat.copy(this._viewInvMat);\n\t\t\tthis.viewOffMat.copy(this._viewMat);\n\t\t}\n\t\tthis._viewMat3.setFromMat4(this._viewOffMat);\n\t\tthis._projViewOffMat.mul2(this._projMat, this._viewOffMat);\n\t\tthis._positionData[0] = this._viewInvOffMat.data[12];\n\t\tthis._positionData[1] = this._viewInvOffMat.data[13];\n\t\tthis._positionData[2] = this._viewInvOffMat.data[14];\n\t}\n\t_onDeviceLost() {\n\t\tthis._frameBufferSource = null;\n\t\tthis._frameBuffer = null;\n\t\tthis._depthInfo = null;\n\t}\n\tgetDepth(u, v) {\n\t\tvar _this$_depthInfo$getD, _this$_depthInfo4;\n\t\tif (this._manager.views.depthGpuOptimized) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (_this$_depthInfo$getD = (_this$_depthInfo4 = this._depthInfo) == null ? void 0 : _this$_depthInfo4.getDepthInMeters(u, v)) != null ? _this$_depthInfo$getD : null;\n\t}\n\tdestroy() {\n\t\tthis._depthInfo = null;\n\t\tif (this._textureColor) {\n\t\t\tthis._textureColor.destroy();\n\t\t\tthis._textureColor = null;\n\t\t}\n\t\tif (this._textureDepth) {\n\t\t\tthis._textureDepth.destroy();\n\t\t\tthis._textureDepth = null;\n\t\t}\n\t\tif (this._frameBufferSource) {\n\t\t\tconst gl = this._manager.app.graphicsDevice.gl;\n\t\t\tgl.deleteFramebuffer(this._frameBufferSource);\n\t\t\tthis._frameBufferSource = null;\n\t\t\tgl.deleteFramebuffer(this._frameBuffer);\n\t\t\tthis._frameBuffer = null;\n\t\t}\n\t}\n}\nXrView.EVENT_DEPTHRESIZE = 'depth:resize';\n\nclass XrViews extends EventHandler {\n\tconstructor(manager) {\n\t\tsuper();\n\t\tthis._manager = void 0;\n\t\tthis._index = new Map();\n\t\tthis._indexTmp = new Map();\n\t\tthis._list = [];\n\t\tthis._supportedColor = platform.browser && !!window.XRCamera && !!window.XRWebGLBinding;\n\t\tthis._supportedDepth = platform.browser && !!window.XRDepthInformation;\n\t\tthis._availableColor = false;\n\t\tthis._availableDepth = false;\n\t\tthis._depthUsage = '';\n\t\tthis._depthFormat = '';\n\t\tthis._depthFormats = {\n\t\t\t[XRDEPTHSENSINGFORMAT_L8A8]: PIXELFORMAT_LA8,\n\t\t\t[XRDEPTHSENSINGFORMAT_F32]: PIXELFORMAT_R32F\n\t\t};\n\t\tthis._manager = manager;\n\t\tthis._manager.on('start', this._onSessionStart, this);\n\t\tthis._manager.on('end', this._onSessionEnd, this);\n\t}\n\tget list() {\n\t\treturn this._list;\n\t}\n\tget supportedColor() {\n\t\treturn this._supportedColor;\n\t}\n\tget supportedDepth() {\n\t\treturn this._supportedDepth;\n\t}\n\tget availableColor() {\n\t\treturn this._availableColor;\n\t}\n\tget availableDepth() {\n\t\treturn this._availableDepth;\n\t}\n\tget depthUsage() {\n\t\treturn this._depthUsage;\n\t}\n\tget depthGpuOptimized() {\n\t\treturn this._depthUsage === XRDEPTHSENSINGUSAGE_GPU;\n\t}\n\tget depthFormat() {\n\t\treturn this._depthFormat;\n\t}\n\tget depthPixelFormat() {\n\t\tvar _this$_depthFormats$t;\n\t\treturn (_this$_depthFormats$t = this._depthFormats[this._depthFormat]) != null ? _this$_depthFormats$t : null;\n\t}\n\tupdate(frame, xrViews) {\n\t\tfor (let i = 0; i < xrViews.length; i++) {\n\t\t\tthis._indexTmp.set(xrViews[i].eye, xrViews[i]);\n\t\t}\n\t\tfor (const [eye, xrView] of this._indexTmp) {\n\t\t\tlet view = this._index.get(eye);\n\t\t\tif (!view) {\n\t\t\t\tview = new XrView(this._manager, xrView, xrViews.length);\n\t\t\t\tthis._index.set(eye, view);\n\t\t\t\tthis._list.push(view);\n\t\t\t\tview.update(frame, xrView);\n\t\t\t\tthis.fire('add', view);\n\t\t\t} else {\n\t\t\t\tview.update(frame, xrView);\n\t\t\t}\n\t\t}\n\t\tfor (const [eye, view] of this._index) {\n\t\t\tif (this._indexTmp.has(eye)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tview.destroy();\n\t\t\tthis._index.delete(eye);\n\t\t\tconst ind = this._list.indexOf(view);\n\t\t\tif (ind !== -1) this._list.splice(ind, 1);\n\t\t\tthis.fire('remove', view);\n\t\t}\n\t\tthis._indexTmp.clear();\n\t}\n\tget(eye) {\n\t\treturn this._index.get(eye) || null;\n\t}\n\t_onSessionStart() {\n\t\tif (this._manager.type !== XRTYPE_AR) {\n\t\t\treturn;\n\t\t}\n\t\tif (!this._manager.session.enabledFeatures) {\n\t\t\treturn;\n\t\t}\n\t\tthis._availableColor = this._manager.session.enabledFeatures.indexOf('camera-access') !== -1;\n\t\tthis._availableDepth = this._manager.session.enabledFeatures.indexOf('depth-sensing') !== -1;\n\t\tif (this._availableDepth) {\n\t\t\tconst session = this._manager.session;\n\t\t\tthis._depthUsage = session.depthUsage;\n\t\t\tthis._depthFormat = session.depthDataFormat;\n\t\t}\n\t}\n\t_onSessionEnd() {\n\t\tfor (const view of this._index.values()) {\n\t\t\tview.destroy();\n\t\t}\n\t\tthis._index.clear();\n\t\tthis._availableColor = false;\n\t\tthis._availableDepth = false;\n\t\tthis._depthUsage = '';\n\t\tthis._depthFormat = '';\n\t\tthis._list.length = 0;\n\t}\n}\nXrViews.EVENT_ADD = 'add';\nXrViews.EVENT_REMOVE = 'remove';\n\nclass XrManager extends EventHandler {\n\tconstructor(app) {\n\t\tsuper();\n\t\tthis.app = void 0;\n\t\tthis._supported = platform.browser && !!navigator.xr;\n\t\tthis._available = {};\n\t\tthis._type = null;\n\t\tthis._spaceType = null;\n\t\tthis._session = null;\n\t\tthis._baseLayer = null;\n\t\tthis.webglBinding = null;\n\t\tthis._referenceSpace = null;\n\t\tthis.depthSensing = void 0;\n\t\tthis.domOverlay = void 0;\n\t\tthis.hitTest = void 0;\n\t\tthis.imageTracking = void 0;\n\t\tthis.planeDetection = void 0;\n\t\tthis.meshDetection = void 0;\n\t\tthis.input = void 0;\n\t\tthis.lightEstimation = void 0;\n\t\tthis.views = void 0;\n\t\tthis.anchors = void 0;\n\t\tthis._camera = null;\n\t\tthis._localPosition = new Vec3();\n\t\tthis._localRotation = new Quat();\n\t\tthis._depthNear = 0.1;\n\t\tthis._depthFar = 1000;\n\t\tthis._supportedFrameRates = null;\n\t\tthis._width = 0;\n\t\tthis._height = 0;\n\t\tthis._framebufferScaleFactor = 1.0;\n\t\tthis.app = app;\n\t\tthis._available[XRTYPE_INLINE] = false;\n\t\tthis._available[XRTYPE_VR] = false;\n\t\tthis._available[XRTYPE_AR] = false;\n\t\tthis.views = new XrViews(this);\n\t\tthis.depthSensing = new XrDepthSensing(this);\n\t\tthis.domOverlay = new XrDomOverlay(this);\n\t\tthis.hitTest = new XrHitTest(this);\n\t\tthis.imageTracking = new XrImageTracking(this);\n\t\tthis.planeDetection = new XrPlaneDetection(this);\n\t\tthis.meshDetection = new XrMeshDetection(this);\n\t\tthis.input = new XrInput(this);\n\t\tthis.lightEstimation = new XrLightEstimation(this);\n\t\tthis.anchors = new XrAnchors(this);\n\t\tthis.views = new XrViews(this);\n\t\tif (this._supported) {\n\t\t\tnavigator.xr.addEventListener('devicechange', () => {\n\t\t\t\tthis._deviceAvailabilityCheck();\n\t\t\t});\n\t\t\tthis._deviceAvailabilityCheck();\n\t\t\tthis.app.graphicsDevice.on('devicelost', this._onDeviceLost, this);\n\t\t\tthis.app.graphicsDevice.on('devicerestored', this._onDeviceRestored, this);\n\t\t}\n\t}\n\tdestroy() {}\n\tstart(camera, type, spaceType, options) {\n\t\tvar _options$framebufferS, _this$app$graphicsDev, _this$app$graphicsDev2;\n\t\tlet callback = options;\n\t\tif (typeof options === 'object') {\n\t\t\tcallback = options.callback;\n\t\t}\n\t\tif (!this._available[type]) {\n\t\t\tif (callback) callback(new Error('XR is not available'));\n\t\t\treturn;\n\t\t}\n\t\tif (this._session) {\n\t\t\tif (callback) callback(new Error('XR session is already started'));\n\t\t\treturn;\n\t\t}\n\t\tthis._camera = camera;\n\t\tthis._camera.camera.xr = this;\n\t\tthis._type = type;\n\t\tthis._spaceType = spaceType;\n\t\tthis._framebufferScaleFactor = (_options$framebufferS = options == null ? void 0 : options.framebufferScaleFactor) != null ? _options$framebufferS : 1.0;\n\t\tthis._setClipPlanes(camera.nearClip, camera.farClip);\n\t\tconst opts = {\n\t\t\trequiredFeatures: [spaceType],\n\t\t\toptionalFeatures: []\n\t\t};\n\t\tconst webgl = ((_this$app$graphicsDev = this.app.graphicsDevice) == null ? void 0 : _this$app$graphicsDev.isWebGL1) || ((_this$app$graphicsDev2 = this.app.graphicsDevice) == null ? void 0 : _this$app$graphicsDev2.isWebGL2);\n\t\tif (type === XRTYPE_AR) {\n\t\t\topts.optionalFeatures.push('light-estimation');\n\t\t\topts.optionalFeatures.push('hit-test');\n\t\t\tif (options) {\n\t\t\t\tif (options.imageTracking && this.imageTracking.supported) {\n\t\t\t\t\topts.optionalFeatures.push('image-tracking');\n\t\t\t\t}\n\t\t\t\tif (options.planeDetection) {\n\t\t\t\t\topts.optionalFeatures.push('plane-detection');\n\t\t\t\t}\n\t\t\t\tif (options.meshDetection) {\n\t\t\t\t\topts.optionalFeatures.push('mesh-detection');\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.domOverlay.supported && this.domOverlay.root) {\n\t\t\t\topts.optionalFeatures.push('dom-overlay');\n\t\t\t\topts.domOverlay = {\n\t\t\t\t\troot: this.domOverlay.root\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (options && options.anchors && this.anchors.supported) {\n\t\t\t\topts.optionalFeatures.push('anchors');\n\t\t\t}\n\t\t\tif (options && options.depthSensing && this.depthSensing.supported) {\n\t\t\t\topts.optionalFeatures.push('depth-sensing');\n\t\t\t\tconst usagePreference = [];\n\t\t\t\tconst dataFormatPreference = [];\n\t\t\t\tif (!navigator.userAgent.includes('OculusBrowser')) {\n\t\t\t\t\tusagePreference.push(XRDEPTHSENSINGUSAGE_CPU);\n\t\t\t\t\tdataFormatPreference.push(XRDEPTHSENSINGFORMAT_L8A8);\n\t\t\t\t\tif (options.depthSensing.usagePreference) {\n\t\t\t\t\t\tconst ind = usagePreference.indexOf(options.depthSensing.usagePreference);\n\t\t\t\t\t\tif (ind !== -1) usagePreference.splice(ind, 1);\n\t\t\t\t\t\tusagePreference.unshift(options.depthSensing.usagePreference);\n\t\t\t\t\t}\n\t\t\t\t\tif (options.depthSensing.dataFormatPreference) {\n\t\t\t\t\t\tconst ind = dataFormatPreference.indexOf(options.depthSensing.dataFormatPreference);\n\t\t\t\t\t\tif (ind !== -1) dataFormatPreference.splice(ind, 1);\n\t\t\t\t\t\tdataFormatPreference.unshift(options.depthSensing.dataFormatPreference);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\topts.depthSensing = {\n\t\t\t\t\tusagePreference: usagePreference,\n\t\t\t\t\tdataFormatPreference: dataFormatPreference\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (webgl && options && options.cameraColor && this.views.supportedColor) {\n\t\t\t\topts.optionalFeatures.push('camera-access');\n\t\t\t}\n\t\t}\n\t\topts.optionalFeatures.push('hand-tracking');\n\t\tif (options && options.optionalFeatures) {\n\t\t\topts.optionalFeatures = opts.optionalFeatures.concat(options.optionalFeatures);\n\t\t}\n\t\tif (this.imageTracking.supported && this.imageTracking.images.length) {\n\t\t\tthis.imageTracking.prepareImages((err, trackedImages) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tif (callback) callback(err);\n\t\t\t\t\tthis.fire('error', err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (trackedImages !== null) {\n\t\t\t\t\topts.trackedImages = trackedImages;\n\t\t\t\t}\n\t\t\t\tthis._onStartOptionsReady(type, spaceType, opts, callback);\n\t\t\t});\n\t\t} else {\n\t\t\tthis._onStartOptionsReady(type, spaceType, opts, callback);\n\t\t}\n\t}\n\t_onStartOptionsReady(type, spaceType, options, callback) {\n\t\tnavigator.xr.requestSession(type, options).then(session => {\n\t\t\tthis._onSessionStart(session, spaceType, callback);\n\t\t}).catch(ex => {\n\t\t\tthis._camera.camera.xr = null;\n\t\t\tthis._camera = null;\n\t\t\tthis._type = null;\n\t\t\tthis._spaceType = null;\n\t\t\tif (callback) callback(ex);\n\t\t\tthis.fire('error', ex);\n\t\t});\n\t}\n\tend(callback) {\n\t\tif (!this._session) {\n\t\t\tif (callback) callback(new Error('XR Session is not initialized'));\n\t\t\treturn;\n\t\t}\n\t\tthis.webglBinding = null;\n\t\tif (callback) this.once('end', callback);\n\t\tthis._session.end();\n\t}\n\tisAvailable(type) {\n\t\treturn this._available[type];\n\t}\n\t_deviceAvailabilityCheck() {\n\t\tfor (const key in this._available) {\n\t\t\tthis._sessionSupportCheck(key);\n\t\t}\n\t}\n\tinitiateRoomCapture(callback) {\n\t\tif (!this._session) {\n\t\t\tcallback(new Error('Session is not active'));\n\t\t\treturn;\n\t\t}\n\t\tif (!this._session.initiateRoomCapture) {\n\t\t\tcallback(new Error('Session does not support manual room capture'));\n\t\t\treturn;\n\t\t}\n\t\tthis._session.initiateRoomCapture().then(() => {\n\t\t\tif (callback) callback(null);\n\t\t}).catch(err => {\n\t\t\tif (callback) callback(err);\n\t\t});\n\t}\n\tupdateTargetFrameRate(frameRate, callback) {\n\t\tvar _this$_session;\n\t\tif (!((_this$_session = this._session) != null && _this$_session.updateTargetFrameRate)) {\n\t\t\tcallback == null || callback(new Error('unable to update frameRate'));\n\t\t\treturn;\n\t\t}\n\t\tthis._session.updateTargetFrameRate(frameRate).then(() => {\n\t\t\tcallback == null || callback();\n\t\t}).catch(err => {\n\t\t\tcallback == null || callback(err);\n\t\t});\n\t}\n\t_sessionSupportCheck(type) {\n\t\tnavigator.xr.isSessionSupported(type).then(available => {\n\t\t\tif (this._available[type] === available) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._available[type] = available;\n\t\t\tthis.fire('available', type, available);\n\t\t\tthis.fire(`available:${type}`, available);\n\t\t}).catch(ex => {\n\t\t\tthis.fire('error', ex);\n\t\t});\n\t}\n\t_onSessionStart(session, spaceType, callback) {\n\t\tlet failed = false;\n\t\tthis._session = session;\n\t\tconst onVisibilityChange = () => {\n\t\t\tthis.fire('visibility:change', session.visibilityState);\n\t\t};\n\t\tconst onClipPlanesChange = () => {\n\t\t\tthis._setClipPlanes(this._camera.nearClip, this._camera.farClip);\n\t\t};\n\t\tconst onEnd = () => {\n\t\t\tif (this._camera) {\n\t\t\t\tthis._camera.off('set_nearClip', onClipPlanesChange);\n\t\t\t\tthis._camera.off('set_farClip', onClipPlanesChange);\n\t\t\t\tthis._camera.camera.xr = null;\n\t\t\t\tthis._camera = null;\n\t\t\t}\n\t\t\tsession.removeEventListener('end', onEnd);\n\t\t\tsession.removeEventListener('visibilitychange', onVisibilityChange);\n\t\t\tif (!failed) this.fire('end');\n\t\t\tthis._session = null;\n\t\t\tthis._referenceSpace = null;\n\t\t\tthis._width = 0;\n\t\t\tthis._height = 0;\n\t\t\tthis._type = null;\n\t\t\tthis._spaceType = null;\n\t\t\tif (this.app.systems) {\n\t\t\t\tthis.app.tick();\n\t\t\t}\n\t\t};\n\t\tsession.addEventListener('end', onEnd);\n\t\tsession.addEventListener('visibilitychange', onVisibilityChange);\n\t\tthis._camera.on('set_nearClip', onClipPlanesChange);\n\t\tthis._camera.on('set_farClip', onClipPlanesChange);\n\t\tthis._createBaseLayer();\n\t\tif (this.session.supportedFrameRates) {\n\t\t\tthis._supportedFrameRates = Array.from(this.session.supportedFrameRates);\n\t\t} else {\n\t\t\tthis._supportedFrameRates = null;\n\t\t}\n\t\tthis._session.addEventListener('frameratechange', () => {\n\t\t\tvar _this$_session2;\n\t\t\tthis.fire('frameratechange', (_this$_session2 = this._session) == null ? void 0 : _this$_session2.frameRate);\n\t\t});\n\t\tsession.requestReferenceSpace(spaceType).then(referenceSpace => {\n\t\t\tthis._referenceSpace = referenceSpace;\n\t\t\tthis.app.tick();\n\t\t\tif (callback) callback(null);\n\t\t\tthis.fire('start');\n\t\t}).catch(ex => {\n\t\t\tfailed = true;\n\t\t\tsession.end();\n\t\t\tif (callback) callback(ex);\n\t\t\tthis.fire('error', ex);\n\t\t});\n\t}\n\t_setClipPlanes(near, far) {\n\t\tif (this._depthNear === near && this._depthFar === far) {\n\t\t\treturn;\n\t\t}\n\t\tthis._depthNear = near;\n\t\tthis._depthFar = far;\n\t\tif (!this._session) {\n\t\t\treturn;\n\t\t}\n\t\tthis._session.updateRenderState({\n\t\t\tdepthNear: this._depthNear,\n\t\t\tdepthFar: this._depthFar\n\t\t});\n\t}\n\t_createBaseLayer() {\n\t\tconst device = this.app.graphicsDevice;\n\t\tconst framebufferScaleFactor = device.maxPixelRatio / window.devicePixelRatio * this._framebufferScaleFactor;\n\t\tthis._baseLayer = new XRWebGLLayer(this._session, device.gl, {\n\t\t\talpha: true,\n\t\t\tdepth: true,\n\t\t\tstencil: true,\n\t\t\tframebufferScaleFactor: framebufferScaleFactor,\n\t\t\tantialias: false\n\t\t});\n\t\tconst deviceType = device.deviceType;\n\t\tif ((deviceType === DEVICETYPE_WEBGL1 || deviceType === DEVICETYPE_WEBGL2) && window.XRWebGLBinding) {\n\t\t\ttry {\n\t\t\t\tthis.webglBinding = new XRWebGLBinding(this._session, device.gl);\n\t\t\t} catch (ex) {\n\t\t\t\tthis.fire('error', ex);\n\t\t\t}\n\t\t}\n\t\tthis._session.updateRenderState({\n\t\t\tbaseLayer: this._baseLayer,\n\t\t\tdepthNear: this._depthNear,\n\t\t\tdepthFar: this._depthFar\n\t\t});\n\t}\n\t_onDeviceLost() {\n\t\tif (!this._session) {\n\t\t\treturn;\n\t\t}\n\t\tif (this.webglBinding) {\n\t\t\tthis.webglBinding = null;\n\t\t}\n\t\tthis._baseLayer = null;\n\t\tthis._session.updateRenderState({\n\t\t\tbaseLayer: this._baseLayer,\n\t\t\tdepthNear: this._depthNear,\n\t\t\tdepthFar: this._depthFar\n\t\t});\n\t}\n\t_onDeviceRestored() {\n\t\tif (!this._session) {\n\t\t\treturn;\n\t\t}\n\t\tsetTimeout(() => {\n\t\t\tthis.app.graphicsDevice.gl.makeXRCompatible().then(() => {\n\t\t\t\tthis._createBaseLayer();\n\t\t\t}).catch(ex => {\n\t\t\t\tthis.fire('error', ex);\n\t\t\t});\n\t\t}, 0);\n\t}\n\tupdate(frame) {\n\t\tif (!this._session) return false;\n\t\tconst width = frame.session.renderState.baseLayer.framebufferWidth;\n\t\tconst height = frame.session.renderState.baseLayer.framebufferHeight;\n\t\tif (this._width !== width || this._height !== height) {\n\t\t\tthis._width = width;\n\t\t\tthis._height = height;\n\t\t\tthis.app.graphicsDevice.setResolution(width, height);\n\t\t}\n\t\tconst pose = frame.getViewerPose(this._referenceSpace);\n\t\tif (!pose) return false;\n\t\tconst lengthOld = this.views.list.length;\n\t\tthis.views.update(frame, pose.views);\n\t\tconst posePosition = pose.transform.position;\n\t\tconst poseOrientation = pose.transform.orientation;\n\t\tthis._localPosition.set(posePosition.x, posePosition.y, posePosition.z);\n\t\tthis._localRotation.set(poseOrientation.x, poseOrientation.y, poseOrientation.z, poseOrientation.w);\n\t\tif (lengthOld === 0 && this.views.list.length > 0) {\n\t\t\tconst viewProjMat = new Mat4();\n\t\t\tconst view = this.views.list[0];\n\t\t\tviewProjMat.copy(view.projMat);\n\t\t\tconst data = viewProjMat.data;\n\t\t\tconst fov = 2.0 * Math.atan(1.0 / data[5]) * 180.0 / Math.PI;\n\t\t\tconst aspectRatio = data[5] / data[0];\n\t\t\tconst farClip = data[14] / (data[10] + 1);\n\t\t\tconst nearClip = data[14] / (data[10] - 1);\n\t\t\tconst horizontalFov = false;\n\t\t\tconst camera = this._camera.camera;\n\t\t\tcamera.setXrProperties({\n\t\t\t\taspectRatio,\n\t\t\t\tfarClip,\n\t\t\t\tfov,\n\t\t\t\thorizontalFov,\n\t\t\t\tnearClip\n\t\t\t});\n\t\t}\n\t\tthis._camera.camera._node.setLocalPosition(this._localPosition);\n\t\tthis._camera.camera._node.setLocalRotation(this._localRotation);\n\t\tthis.input.update(frame);\n\t\tif (this._type === XRTYPE_AR) {\n\t\t\tif (this.hitTest.supported) {\n\t\t\t\tthis.hitTest.update(frame);\n\t\t\t}\n\t\t\tif (this.lightEstimation.supported) {\n\t\t\t\tthis.lightEstimation.update(frame);\n\t\t\t}\n\t\t\tif (this.imageTracking.supported) {\n\t\t\t\tthis.imageTracking.update(frame);\n\t\t\t}\n\t\t\tif (this.anchors.supported) {\n\t\t\t\tthis.anchors.update(frame);\n\t\t\t}\n\t\t\tif (this.planeDetection.supported) {\n\t\t\t\tthis.planeDetection.update(frame);\n\t\t\t}\n\t\t\tif (this.depthSensing.supported) {\n\t\t\t\tthis.depthSensing.update();\n\t\t\t}\n\t\t\tif (this.meshDetection.supported) {\n\t\t\t\tthis.meshDetection.update(frame);\n\t\t\t}\n\t\t}\n\t\tthis.fire('update', frame);\n\t\treturn true;\n\t}\n\tget supported() {\n\t\treturn this._supported;\n\t}\n\tget active() {\n\t\treturn !!this._session;\n\t}\n\tget type() {\n\t\treturn this._type;\n\t}\n\tget spaceType() {\n\t\treturn this._spaceType;\n\t}\n\tget session() {\n\t\treturn this._session;\n\t}\n\tget frameRate() {\n\t\tvar _this$_session$frameR, _this$_session3;\n\t\treturn (_this$_session$frameR = (_this$_session3 = this._session) == null ? void 0 : _this$_session3.frameRate) != null ? _this$_session$frameR : null;\n\t}\n\tget supportedFrameRates() {\n\t\treturn this._supportedFrameRates;\n\t}\n\tget framebufferScaleFactor() {\n\t\treturn this._framebufferScaleFactor;\n\t}\n\tset fixedFoveation(value) {\n\t\tvar _this$_baseLayer$fixe, _this$_baseLayer;\n\t\tif (((_this$_baseLayer$fixe = (_this$_baseLayer = this._baseLayer) == null ? void 0 : _this$_baseLayer.fixedFoveation) != null ? _this$_baseLayer$fixe : null) !== null) {\n\t\t\tif (this.app.graphicsDevice.samples > 1) ;\n\t\t\tthis._baseLayer.fixedFoveation = value;\n\t\t}\n\t}\n\tget fixedFoveation() {\n\t\tvar _this$_baseLayer$fixe2, _this$_baseLayer2;\n\t\treturn (_this$_baseLayer$fixe2 = (_this$_baseLayer2 = this._baseLayer) == null ? void 0 : _this$_baseLayer2.fixedFoveation) != null ? _this$_baseLayer$fixe2 : null;\n\t}\n\tget camera() {\n\t\treturn this._camera ? this._camera.entity : null;\n\t}\n\tget visibilityState() {\n\t\tif (!this._session) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._session.visibilityState;\n\t}\n}\nXrManager.EVENT_AVAILABLE = 'available';\nXrManager.EVENT_START = 'start';\nXrManager.EVENT_END = 'end';\nXrManager.EVENT_UPDATE = 'update';\nXrManager.EVENT_ERROR = 'error';\n\nclass Application extends AppBase {\n\tconstructor(canvas, options = {}) {\n\t\tvar _options$graphicsDevi;\n\t\tsuper(canvas);\n\t\tconst appOptions = new AppOptions();\n\t\tappOptions.graphicsDevice = (_options$graphicsDevi = options.graphicsDevice) != null ? _options$graphicsDevi : this.createDevice(canvas, options);\n\t\tthis.addComponentSystems(appOptions);\n\t\tthis.addResourceHandles(appOptions);\n\t\tappOptions.elementInput = options.elementInput;\n\t\tappOptions.keyboard = options.keyboard;\n\t\tappOptions.mouse = options.mouse;\n\t\tappOptions.touch = options.touch;\n\t\tappOptions.gamepads = options.gamepads;\n\t\tappOptions.scriptPrefix = options.scriptPrefix;\n\t\tappOptions.assetPrefix = options.assetPrefix;\n\t\tappOptions.scriptsOrder = options.scriptsOrder;\n\t\tappOptions.soundManager = new SoundManager();\n\t\tappOptions.lightmapper = Lightmapper;\n\t\tappOptions.batchManager = BatchManager;\n\t\tappOptions.xr = XrManager;\n\t\tthis.init(appOptions);\n\t}\n\tcreateDevice(canvas, options) {\n\t\tif (!options.graphicsDeviceOptions) {\n\t\t\toptions.graphicsDeviceOptions = {};\n\t\t}\n\t\tif (platform.browser && !!navigator.xr) {\n\t\t\toptions.graphicsDeviceOptions.xrCompatible = true;\n\t\t}\n\t\toptions.graphicsDeviceOptions.alpha = options.graphicsDeviceOptions.alpha || false;\n\t\treturn new WebglGraphicsDevice(canvas, options.graphicsDeviceOptions);\n\t}\n\taddComponentSystems(appOptions) {\n\t\tappOptions.componentSystems = [RigidBodyComponentSystem, CollisionComponentSystem, JointComponentSystem, AnimationComponentSystem, AnimComponentSystem, ModelComponentSystem, RenderComponentSystem, CameraComponentSystem, LightComponentSystem, script.legacy ? ScriptLegacyComponentSystem : ScriptComponentSystem, AudioSourceComponentSystem, SoundComponentSystem, AudioListenerComponentSystem, ParticleSystemComponentSystem, ScreenComponentSystem, ElementComponentSystem, ButtonComponentSystem, ScrollViewComponentSystem, ScrollbarComponentSystem, SpriteComponentSystem, LayoutGroupComponentSystem, LayoutChildComponentSystem, ZoneComponentSystem, GSplatComponentSystem];\n\t}\n\taddResourceHandles(appOptions) {\n\t\tappOptions.resourceHandlers = [RenderHandler, AnimationHandler, AnimClipHandler, AnimStateGraphHandler, ModelHandler, MaterialHandler, TextureHandler, TextHandler, JsonHandler, AudioHandler, ScriptHandler, SceneHandler, CubemapHandler, HtmlHandler, CssHandler, ShaderHandler, HierarchyHandler, FolderHandler, FontHandler, BinaryHandler, TextureAtlasHandler, SpriteHandler, TemplateHandler, ContainerHandler, GSplatHandler];\n\t}\n}\n\nclass AssetListLoader extends EventHandler {\n\tconstructor(assetList, assetRegistry) {\n\t\tsuper();\n\t\tthis._assets = new Set();\n\t\tthis._loadingAssets = new Set();\n\t\tthis._waitingAssets = new Set();\n\t\tthis._registry = assetRegistry;\n\t\tthis._loading = false;\n\t\tthis._loaded = false;\n\t\tthis._failed = [];\n\t\tassetList.forEach(a => {\n\t\t\tif (a instanceof Asset) {\n\t\t\t\tif (!a.registry) {\n\t\t\t\t\ta.registry = assetRegistry;\n\t\t\t\t}\n\t\t\t\tthis._assets.add(a);\n\t\t\t} else {\n\t\t\t\tconst asset = assetRegistry.get(a);\n\t\t\t\tif (asset) {\n\t\t\t\t\tthis._assets.add(asset);\n\t\t\t\t} else {\n\t\t\t\t\tthis._waitForAsset(a);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\tdestroy() {\n\t\tconst self = this;\n\t\tthis._registry.off('load', this._onLoad);\n\t\tthis._registry.off('error', this._onError);\n\t\tthis._waitingAssets.forEach(function (id) {\n\t\t\tself._registry.off(`add:${id}`, this._onAddAsset);\n\t\t});\n\t\tthis.off('progress');\n\t\tthis.off('load');\n\t}\n\t_assetHasDependencies(asset) {\n\t\tvar _asset$file;\n\t\treturn asset.type === 'model' && ((_asset$file = asset.file) == null ? void 0 : _asset$file.url) && asset.file.url && asset.file.url.match(/.json$/g);\n\t}\n\tload(done, scope) {\n\t\tif (this._loading) {\n\t\t\treturn;\n\t\t}\n\t\tthis._loading = true;\n\t\tthis._callback = done;\n\t\tthis._scope = scope;\n\t\tthis._registry.on('load', this._onLoad, this);\n\t\tthis._registry.on('error', this._onError, this);\n\t\tlet loadingAssets = false;\n\t\tthis._assets.forEach(asset => {\n\t\t\tif (!asset.loaded) {\n\t\t\t\tloadingAssets = true;\n\t\t\t\tif (this._assetHasDependencies(asset)) {\n\t\t\t\t\tthis._registry.loadFromUrl(asset.file.url, asset.type, (err, loadedAsset) => {\n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\tthis._onError(err, asset);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis._onLoad(asset);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tthis._loadingAssets.add(asset);\n\t\t\t\tthis._registry.add(asset);\n\t\t\t}\n\t\t});\n\t\tthis._loadingAssets.forEach(asset => {\n\t\t\tif (!this._assetHasDependencies(asset)) {\n\t\t\t\tthis._registry.load(asset);\n\t\t\t}\n\t\t});\n\t\tif (!loadingAssets && this._waitingAssets.size === 0) {\n\t\t\tthis._loadingComplete();\n\t\t}\n\t}\n\tready(done, scope = this) {\n\t\tif (this._loaded) {\n\t\t\tdone.call(scope, Array.from(this._assets));\n\t\t} else {\n\t\t\tthis.once('load', assets => {\n\t\t\t\tdone.call(scope, assets);\n\t\t\t});\n\t\t}\n\t}\n\t_loadingComplete() {\n\t\tif (this._loaded) return;\n\t\tthis._loaded = true;\n\t\tthis._registry.off('load', this._onLoad, this);\n\t\tthis._registry.off('error', this._onError, this);\n\t\tif (this._failed.length) {\n\t\t\tif (this._callback) {\n\t\t\t\tthis._callback.call(this._scope, 'Failed to load some assets', this._failed);\n\t\t\t}\n\t\t\tthis.fire('error', this._failed);\n\t\t} else {\n\t\t\tif (this._callback) {\n\t\t\t\tthis._callback.call(this._scope);\n\t\t\t}\n\t\t\tthis.fire('load', Array.from(this._assets));\n\t\t}\n\t}\n\t_onLoad(asset) {\n\t\tif (this._loadingAssets.has(asset)) {\n\t\t\tthis.fire('progress', asset);\n\t\t\tthis._loadingAssets.delete(asset);\n\t\t}\n\t\tif (this._loadingAssets.size === 0) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis._loadingComplete(this._failed);\n\t\t\t}, 0);\n\t\t}\n\t}\n\t_onError(err, asset) {\n\t\tif (this._loadingAssets.has(asset)) {\n\t\t\tthis._failed.push(asset);\n\t\t\tthis._loadingAssets.delete(asset);\n\t\t}\n\t\tif (this._loadingAssets.size === 0) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis._loadingComplete(this._failed);\n\t\t\t}, 0);\n\t\t}\n\t}\n\t_onAddAsset(asset) {\n\t\tthis._waitingAssets.delete(asset);\n\t\tthis._assets.add(asset);\n\t\tif (!asset.loaded) {\n\t\t\tthis._loadingAssets.add(asset);\n\t\t\tthis._registry.load(asset);\n\t\t}\n\t}\n\t_waitForAsset(assetId) {\n\t\tthis._waitingAssets.add(assetId);\n\t\tthis._registry.once(`add:${assetId}`, this._onAddAsset, this);\n\t}\n}\n\nconst MAX_TEXTURE_SIZE = 4096;\nconst DEFAULT_TEXTURE_SIZE = 512;\nclass Atlas {\n\tconstructor(device, width, height, name) {\n\t\tthis.canvas = document.createElement('canvas');\n\t\tthis.canvas.width = width;\n\t\tthis.canvas.height = height;\n\t\tthis.texture = new Texture(device, {\n\t\t\tname: name,\n\t\t\tformat: PIXELFORMAT_RGBA8,\n\t\t\twidth: width,\n\t\t\theight: height,\n\t\t\tmipmaps: true,\n\t\t\tminFilter: FILTER_LINEAR_MIPMAP_LINEAR,\n\t\t\tmagFilter: FILTER_LINEAR,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\tlevels: [this.canvas]\n\t\t});\n\t\tthis.ctx = this.canvas.getContext('2d', {\n\t\t\talpha: true\n\t\t});\n\t}\n\tdestroy() {\n\t\tthis.texture.destroy();\n\t}\n\tclear(clearColor) {\n\t\tconst {\n\t\t\twidth,\n\t\t\theight\n\t\t} = this.canvas;\n\t\tthis.ctx.clearRect(0, 0, width, height);\n\t\tthis.ctx.fillStyle = clearColor;\n\t\tthis.ctx.fillRect(0, 0, width, height);\n\t}\n}\nclass CanvasFont extends EventHandler {\n\tconstructor(app, options = {}) {\n\t\tsuper();\n\t\tthis.type = 'bitmap';\n\t\tthis.app = app;\n\t\tthis.intensity = 0;\n\t\tthis.fontWeight = options.fontWeight || 'normal';\n\t\tthis.fontSize = parseInt(options.fontSize, 10);\n\t\tthis.glyphSize = this.fontSize;\n\t\tthis.fontName = options.fontName || 'Arial';\n\t\tthis.color = options.color || new Color(1, 1, 1);\n\t\tthis.padding = options.padding || 0;\n\t\tthis.width = Math.min(MAX_TEXTURE_SIZE, options.width || DEFAULT_TEXTURE_SIZE);\n\t\tthis.height = Math.min(MAX_TEXTURE_SIZE, options.height || DEFAULT_TEXTURE_SIZE);\n\t\tthis.atlases = [];\n\t\tthis.chars = '';\n\t\tthis.data = {};\n\t}\n\tcreateTextures(text) {\n\t\tconst _chars = this._normalizeCharsSet(text);\n\t\tif (_chars.length !== this.chars.length) {\n\t\t\tthis._renderAtlas(_chars);\n\t\t\treturn;\n\t\t}\n\t\tfor (let i = 0; i < _chars.length; i++) {\n\t\t\tif (_chars[i] !== this.chars[i]) {\n\t\t\t\tthis._renderAtlas(_chars);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\tupdateTextures(text) {\n\t\tconst _chars = this._normalizeCharsSet(text);\n\t\tconst newCharsSet = [];\n\t\tfor (let i = 0; i < _chars.length; i++) {\n\t\t\tconst char = _chars[i];\n\t\t\tif (!this.data.chars[char]) {\n\t\t\t\tnewCharsSet.push(char);\n\t\t\t}\n\t\t}\n\t\tif (newCharsSet.length > 0) {\n\t\t\tthis._renderAtlas(this.chars.concat(newCharsSet));\n\t\t}\n\t}\n\tdestroy() {\n\t\tthis.atlases.forEach(atlas => atlas.destroy());\n\t\tthis.chars = null;\n\t\tthis.color = null;\n\t\tthis.data = null;\n\t\tthis.fontName = null;\n\t\tthis.fontSize = null;\n\t\tthis.glyphSize = null;\n\t\tthis.intensity = null;\n\t\tthis.atlases = null;\n\t\tthis.type = null;\n\t\tthis.fontWeight = null;\n\t}\n\t_colorToRgbString(color, alpha) {\n\t\tlet str;\n\t\tconst r = Math.round(255 * color.r);\n\t\tconst g = Math.round(255 * color.g);\n\t\tconst b = Math.round(255 * color.b);\n\t\tif (alpha) {\n\t\t\tstr = `rgba(${r}, ${g}, ${b}, ${color.a})`;\n\t\t} else {\n\t\t\tstr = `rgb(${r}, ${g}, ${b})`;\n\t\t}\n\t\treturn str;\n\t}\n\trenderCharacter(context, char, x, y, color) {\n\t\tcontext.fillStyle = color;\n\t\tcontext.fillText(char, x, y);\n\t}\n\t_getAtlas(index) {\n\t\tif (index >= this.atlases.length) {\n\t\t\tthis.atlases[index] = new Atlas(this.app.graphicsDevice, this.width, this.height, `font-atlas-${this.fontName}-${index}`);\n\t\t}\n\t\treturn this.atlases[index];\n\t}\n\t_renderAtlas(charsArray) {\n\t\tthis.chars = charsArray;\n\t\tconst w = this.width;\n\t\tconst h = this.height;\n\t\tconst color = this._colorToRgbString(this.color, false);\n\t\tconst a = this.color.a;\n\t\tthis.color.a = 1 / 255;\n\t\tconst transparent = this._colorToRgbString(this.color, true);\n\t\tthis.color.a = a;\n\t\tconst TEXT_ALIGN = 'center';\n\t\tconst TEXT_BASELINE = 'alphabetic';\n\t\tlet atlasIndex = 0;\n\t\tlet atlas = this._getAtlas(atlasIndex++);\n\t\tatlas.clear(transparent);\n\t\tthis.data = this._createJson(this.chars, this.fontName, w, h);\n\t\tconst symbols = string.getSymbols(this.chars.join(''));\n\t\tlet maxHeight = 0;\n\t\tlet maxDescent = 0;\n\t\tconst metrics = {};\n\t\tfor (let i = 0; i < symbols.length; i++) {\n\t\t\tconst ch = symbols[i];\n\t\t\tmetrics[ch] = this._getTextMetrics(ch);\n\t\t\tmaxHeight = Math.max(maxHeight, metrics[ch].height);\n\t\t\tmaxDescent = Math.max(maxDescent, metrics[ch].descent);\n\t\t}\n\t\tthis.glyphSize = Math.max(this.glyphSize, maxHeight);\n\t\tconst sx = this.glyphSize + this.padding * 2;\n\t\tconst sy = this.glyphSize + this.padding * 2;\n\t\tconst _xOffset = this.glyphSize / 2 + this.padding;\n\t\tconst _yOffset = sy - maxDescent - this.padding;\n\t\tlet _x = 0;\n\t\tlet _y = 0;\n\t\tfor (let i = 0; i < symbols.length; i++) {\n\t\t\tconst ch = symbols[i];\n\t\t\tconst code = string.getCodePoint(symbols[i]);\n\t\t\tlet fs = this.fontSize;\n\t\t\tatlas.ctx.font = `${this.fontWeight} ${fs.toString()}px ${this.fontName}`;\n\t\t\tatlas.ctx.textAlign = TEXT_ALIGN;\n\t\t\tatlas.ctx.textBaseline = TEXT_BASELINE;\n\t\t\tlet width = atlas.ctx.measureText(ch).width;\n\t\t\tif (width > fs) {\n\t\t\t\tfs = this.fontSize * this.fontSize / width;\n\t\t\t\tatlas.ctx.font = `${this.fontWeight} ${fs.toString()}px ${this.fontName}`;\n\t\t\t\twidth = this.fontSize;\n\t\t\t}\n\t\t\tthis.renderCharacter(atlas.ctx, ch, _x + _xOffset, _y + _yOffset, color);\n\t\t\tconst xoffset = this.padding + (this.glyphSize - width) / 2;\n\t\t\tconst yoffset = -this.padding + metrics[ch].descent - maxDescent;\n\t\t\tconst xadvance = width;\n\t\t\tthis._addChar(this.data, ch, code, _x, _y, sx, sy, xoffset, yoffset, xadvance, atlasIndex - 1, w, h);\n\t\t\t_x += sx;\n\t\t\tif (_x + sx > w) {\n\t\t\t\t_x = 0;\n\t\t\t\t_y += sy;\n\t\t\t\tif (_y + sy > h) {\n\t\t\t\t\tatlas = this._getAtlas(atlasIndex++);\n\t\t\t\t\tatlas.clear(transparent);\n\t\t\t\t\t_y = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.atlases.splice(atlasIndex).forEach(atlas => atlas.destroy());\n\t\tthis.atlases.forEach(atlas => atlas.texture.upload());\n\t\tthis.fire('render');\n\t}\n\t_createJson(chars, fontName, width, height) {\n\t\tconst base = {\n\t\t\t'version': 3,\n\t\t\t'intensity': this.intensity,\n\t\t\t'info': {\n\t\t\t\t'face': fontName,\n\t\t\t\t'width': width,\n\t\t\t\t'height': height,\n\t\t\t\t'maps': [{\n\t\t\t\t\t'width': width,\n\t\t\t\t\t'height': height\n\t\t\t\t}]\n\t\t\t},\n\t\t\t'chars': {}\n\t\t};\n\t\treturn base;\n\t}\n\t_addChar(json, char, charCode, x, y, w, h, xoffset, yoffset, xadvance, mapNum, mapW, mapH) {\n\t\tif (json.info.maps.length < mapNum + 1) {\n\t\t\tjson.info.maps.push({\n\t\t\t\t'width': mapW,\n\t\t\t\t'height': mapH\n\t\t\t});\n\t\t}\n\t\tconst scale = this.fontSize / 32;\n\t\tjson.chars[char] = {\n\t\t\t'id': charCode,\n\t\t\t'letter': char,\n\t\t\t'x': x,\n\t\t\t'y': y,\n\t\t\t'width': w,\n\t\t\t'height': h,\n\t\t\t'xadvance': xadvance / scale,\n\t\t\t'xoffset': xoffset / scale,\n\t\t\t'yoffset': (yoffset + this.padding) / scale,\n\t\t\t'scale': scale,\n\t\t\t'range': 1,\n\t\t\t'map': mapNum,\n\t\t\t'bounds': [0, 0, w / scale, h / scale]\n\t\t};\n\t}\n\t_normalizeCharsSet(text) {\n\t\tconst unicodeConverterFunc = this.app.systems.element.getUnicodeConverter();\n\t\tif (unicodeConverterFunc) {\n\t\t\ttext = unicodeConverterFunc(text);\n\t\t}\n\t\tconst set = {};\n\t\tconst symbols = string.getSymbols(text);\n\t\tfor (let i = 0; i < symbols.length; i++) {\n\t\t\tconst ch = symbols[i];\n\t\t\tif (set[ch]) continue;\n\t\t\tset[ch] = ch;\n\t\t}\n\t\tconst chars = Object.keys(set);\n\t\treturn chars.sort();\n\t}\n\t_getTextMetrics(text) {\n\t\tconst textSpan = document.createElement('span');\n\t\ttextSpan.id = 'content-span';\n\t\ttextSpan.innerHTML = text;\n\t\tconst block = document.createElement('div');\n\t\tblock.id = 'content-block';\n\t\tblock.style.display = 'inline-block';\n\t\tblock.style.width = '1px';\n\t\tblock.style.height = '0px';\n\t\tconst div = document.createElement('div');\n\t\tdiv.appendChild(textSpan);\n\t\tdiv.appendChild(block);\n\t\tdiv.style.font = `${this.fontSize}px ${this.fontName}`;\n\t\tconst body = document.body;\n\t\tbody.appendChild(div);\n\t\tlet ascent = -1;\n\t\tlet descent = -1;\n\t\tlet height = -1;\n\t\ttry {\n\t\t\tblock.style['vertical-align'] = 'baseline';\n\t\t\tascent = block.offsetTop - textSpan.offsetTop;\n\t\t\tblock.style['vertical-align'] = 'bottom';\n\t\t\theight = block.offsetTop - textSpan.offsetTop;\n\t\t\tdescent = height - ascent;\n\t\t} finally {\n\t\t\tdocument.body.removeChild(div);\n\t\t}\n\t\treturn {\n\t\t\tascent: ascent,\n\t\t\tdescent: descent,\n\t\t\theight: height\n\t\t};\n\t}\n\tget textures() {\n\t\treturn this.atlases.map(atlas => atlas.texture);\n\t}\n}\n\nconst tempMeshInstances$1 = [];\nconst lights = [[], [], []];\nclass RenderPassPicker extends RenderPass {\n\tconstructor(device, renderer) {\n\t\tsuper(device);\n\t\tthis.pickColor = new Float32Array(4);\n\t\tthis.renderer = renderer;\n\t}\n\tupdate(camera, scene, layers, mapping) {\n\t\tthis.camera = camera;\n\t\tthis.scene = scene;\n\t\tthis.layers = layers;\n\t\tthis.mapping = mapping;\n\t}\n\texecute() {\n\t\tconst device = this.device;\n\t\tconst {\n\t\t\trenderer,\n\t\t\tcamera,\n\t\t\tscene,\n\t\t\tlayers,\n\t\t\tmapping,\n\t\t\trenderTarget\n\t\t} = this;\n\t\tconst srcLayers = scene.layers.layerList;\n\t\tconst subLayerEnabled = scene.layers.subLayerEnabled;\n\t\tconst isTransparent = scene.layers.subLayerList;\n\t\tconst pickColorId = device.scope.resolve('uColor');\n\t\tconst pickColor = this.pickColor;\n\t\tfor (let i = 0; i < srcLayers.length; i++) {\n\t\t\tconst srcLayer = srcLayers[i];\n\t\t\tif (layers && layers.indexOf(srcLayer) < 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (srcLayer.enabled && subLayerEnabled[i]) {\n\t\t\t\tif (srcLayer.camerasSet.has(camera.camera)) {\n\t\t\t\t\tconst transparent = isTransparent[i];\n\t\t\t\t\tif (srcLayer._clearDepthBuffer) {\n\t\t\t\t\t\trenderer.clear(camera.camera, false, true, false);\n\t\t\t\t\t}\n\t\t\t\t\tconst meshInstances = srcLayer.meshInstances;\n\t\t\t\t\tfor (let j = 0; j < meshInstances.length; j++) {\n\t\t\t\t\t\tconst meshInstance = meshInstances[j];\n\t\t\t\t\t\tif (meshInstance.pick && meshInstance.transparent === transparent) {\n\t\t\t\t\t\t\ttempMeshInstances$1.push(meshInstance);\n\t\t\t\t\t\t\tmapping.set(meshInstance.id, meshInstance);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (tempMeshInstances$1.length > 0) {\n\t\t\t\t\t\trenderer.setCameraUniforms(camera.camera, renderTarget);\n\t\t\t\t\t\trenderer.renderForward(camera.camera, tempMeshInstances$1, lights, SHADER_PICK, meshInstance => {\n\t\t\t\t\t\t\tconst miId = meshInstance.id;\n\t\t\t\t\t\t\tpickColor[0] = (miId >> 16 & 0xff) / 255;\n\t\t\t\t\t\t\tpickColor[1] = (miId >> 8 & 0xff) / 255;\n\t\t\t\t\t\t\tpickColor[2] = (miId & 0xff) / 255;\n\t\t\t\t\t\t\tpickColor[3] = (miId >> 24 & 0xff) / 255;\n\t\t\t\t\t\t\tpickColorId.setValue(pickColor);\n\t\t\t\t\t\t\tdevice.setBlendState(BlendState.NOBLEND);\n\t\t\t\t\t\t});\n\t\t\t\t\t\ttempMeshInstances$1.length = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst tempSet = new Set();\nclass Picker {\n\tconstructor(app, width, height) {\n\t\tthis.renderTarget = null;\n\t\tthis.mapping = new Map();\n\t\tif (app instanceof GraphicsDevice) {\n\t\t\tapp = getApplication();\n\t\t}\n\t\tthis.renderer = app.renderer;\n\t\tthis.device = app.graphicsDevice;\n\t\tthis.renderPass = new RenderPassPicker(this.device, app.renderer);\n\t\tthis.width = 0;\n\t\tthis.height = 0;\n\t\tthis.resize(width, height);\n\t}\n\tgetSelection(x, y, width = 1, height = 1) {\n\t\tconst device = this.device;\n\t\ty = this.renderTarget.height - (y + height);\n\t\tx = Math.floor(x);\n\t\ty = Math.floor(y);\n\t\twidth = Math.floor(Math.max(width, 1));\n\t\theight = Math.floor(Math.max(height, 1));\n\t\tdevice.setRenderTarget(this.renderTarget);\n\t\tdevice.updateBegin();\n\t\tconst pixels = new Uint8Array(4 * width * height);\n\t\tdevice.readPixels(x, y, width, height, pixels);\n\t\tdevice.updateEnd();\n\t\tconst mapping = this.mapping;\n\t\tfor (let i = 0; i < width * height; i++) {\n\t\t\tconst r = pixels[4 * i + 0];\n\t\t\tconst g = pixels[4 * i + 1];\n\t\t\tconst b = pixels[4 * i + 2];\n\t\t\tconst a = pixels[4 * i + 3];\n\t\t\tconst index = a << 24 | r << 16 | g << 8 | b;\n\t\t\tif (index !== -1) {\n\t\t\t\ttempSet.add(mapping.get(index));\n\t\t\t}\n\t\t}\n\t\tconst selection = [];\n\t\ttempSet.forEach(meshInstance => selection.push(meshInstance));\n\t\ttempSet.clear();\n\t\treturn selection;\n\t}\n\tallocateRenderTarget() {\n\t\tconst colorBuffer = new Texture(this.device, {\n\t\t\tformat: PIXELFORMAT_RGBA8,\n\t\t\twidth: this.width,\n\t\t\theight: this.height,\n\t\t\tmipmaps: false,\n\t\t\tminFilter: FILTER_NEAREST,\n\t\t\tmagFilter: FILTER_NEAREST,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\tname: 'pick'\n\t\t});\n\t\tthis.renderTarget = new RenderTarget({\n\t\t\tcolorBuffer: colorBuffer,\n\t\t\tdepth: true\n\t\t});\n\t}\n\treleaseRenderTarget() {\n\t\tif (this.renderTarget) {\n\t\t\tthis.renderTarget.destroyTextureBuffers();\n\t\t\tthis.renderTarget.destroy();\n\t\t\tthis.renderTarget = null;\n\t\t}\n\t}\n\tprepare(camera, scene, layers) {\n\t\tif (camera instanceof Camera) {\n\t\t\tcamera = camera.node.camera;\n\t\t}\n\t\tif (layers instanceof Layer) {\n\t\t\tlayers = [layers];\n\t\t}\n\t\tif (!this.renderTarget || this.width !== this.renderTarget.width || this.height !== this.renderTarget.height) {\n\t\t\tthis.releaseRenderTarget();\n\t\t\tthis.allocateRenderTarget();\n\t\t}\n\t\tthis.mapping.clear();\n\t\tconst renderPass = this.renderPass;\n\t\trenderPass.init(this.renderTarget);\n\t\trenderPass.colorOps.clearValue = Color.WHITE;\n\t\trenderPass.colorOps.clear = true;\n\t\trenderPass.depthStencilOps.clearDepth = true;\n\t\trenderPass.update(camera, scene, layers, this.mapping);\n\t\trenderPass.render();\n\t}\n\tresize(width, height) {\n\t\tthis.width = Math.floor(width);\n\t\tthis.height = Math.floor(height);\n\t}\n}\n\nclass SceneSettingsHandler extends ResourceHandler {\n\tconstructor(app) {\n\t\tsuper(app, 'scenesettings');\n\t}\n\tload(url, callback) {\n\t\tSceneUtils.load(url, this.maxRetries, callback);\n\t}\n\topen(url, data) {\n\t\treturn data.settings;\n\t}\n}\n\nlet targetX, targetY;\nconst vecA = new Vec3();\nconst vecB = new Vec3();\nconst rayA = new Ray();\nconst rayB = new Ray();\nconst rayC = new Ray();\nrayA.end = new Vec3();\nrayB.end = new Vec3();\nrayC.end = new Vec3();\nconst _pq = new Vec3();\nconst _pa = new Vec3();\nconst _pb = new Vec3();\nconst _pc = new Vec3();\nconst _pd = new Vec3();\nconst _m = new Vec3();\nconst _au = new Vec3();\nconst _bv = new Vec3();\nconst _cw = new Vec3();\nconst _ir = new Vec3();\nconst _sct = new Vec3();\nconst _accumulatedScale = new Vec3();\nconst _paddingTop = new Vec3();\nconst _paddingBottom = new Vec3();\nconst _paddingLeft = new Vec3();\nconst _paddingRight = new Vec3();\nconst _cornerBottomLeft = new Vec3();\nconst _cornerBottomRight = new Vec3();\nconst _cornerTopRight = new Vec3();\nconst _cornerTopLeft = new Vec3();\nconst ZERO_VEC4 = new Vec4();\nfunction scalarTriple(p1, p2, p3) {\n\treturn _sct.cross(p1, p2).dot(p3);\n}\nfunction intersectLineQuad(p, q, corners) {\n\t_pq.sub2(q, p);\n\t_pa.sub2(corners[0], p);\n\t_pb.sub2(corners[1], p);\n\t_pc.sub2(corners[2], p);\n\t_m.cross(_pc, _pq);\n\tlet v = _pa.dot(_m);\n\tlet u;\n\tlet w;\n\tif (v >= 0) {\n\t\tu = -_pb.dot(_m);\n\t\tif (u < 0) {\n\t\t\treturn -1;\n\t\t}\n\t\tw = scalarTriple(_pq, _pb, _pa);\n\t\tif (w < 0) {\n\t\t\treturn -1;\n\t\t}\n\t\tconst denom = 1.0 / (u + v + w);\n\t\t_au.copy(corners[0]).mulScalar(u * denom);\n\t\t_bv.copy(corners[1]).mulScalar(v * denom);\n\t\t_cw.copy(corners[2]).mulScalar(w * denom);\n\t\t_ir.copy(_au).add(_bv).add(_cw);\n\t} else {\n\t\t_pd.sub2(corners[3], p);\n\t\tu = _pd.dot(_m);\n\t\tif (u < 0) {\n\t\t\treturn -1;\n\t\t}\n\t\tw = scalarTriple(_pq, _pa, _pd);\n\t\tif (w < 0) {\n\t\t\treturn -1;\n\t\t}\n\t\tv = -v;\n\t\tconst denom = 1.0 / (u + v + w);\n\t\t_au.copy(corners[0]).mulScalar(u * denom);\n\t\t_bv.copy(corners[3]).mulScalar(v * denom);\n\t\t_cw.copy(corners[2]).mulScalar(w * denom);\n\t\t_ir.copy(_au).add(_bv).add(_cw);\n\t}\n\tif (_pq.sub2(corners[0], corners[2]).lengthSq() < 0.0001 * 0.0001) return -1;\n\tif (_pq.sub2(corners[1], corners[3]).lengthSq() < 0.0001 * 0.0001) return -1;\n\treturn _ir.sub(p).lengthSq();\n}\nclass ElementInputEvent {\n\tconstructor(event, element, camera) {\n\t\tthis.event = event;\n\t\tthis.element = element;\n\t\tthis.camera = camera;\n\t\tthis._stopPropagation = false;\n\t}\n\tstopPropagation() {\n\t\tthis._stopPropagation = true;\n\t\tif (this.event) {\n\t\t\tthis.event.stopImmediatePropagation();\n\t\t\tthis.event.stopPropagation();\n\t\t}\n\t}\n}\nclass ElementMouseEvent extends ElementInputEvent {\n\tconstructor(event, element, camera, x, y, lastX, lastY) {\n\t\tsuper(event, element, camera);\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.ctrlKey = event.ctrlKey || false;\n\t\tthis.altKey = event.altKey || false;\n\t\tthis.shiftKey = event.shiftKey || false;\n\t\tthis.metaKey = event.metaKey || false;\n\t\tthis.button = event.button;\n\t\tif (Mouse.isPointerLocked()) {\n\t\t\tthis.dx = event.movementX || event.webkitMovementX || event.mozMovementX || 0;\n\t\t\tthis.dy = event.movementY || event.webkitMovementY || event.mozMovementY || 0;\n\t\t} else {\n\t\t\tthis.dx = x - lastX;\n\t\t\tthis.dy = y - lastY;\n\t\t}\n\t\tthis.wheelDelta = 0;\n\t\tif (event.type === 'wheel') {\n\t\t\tif (event.deltaY > 0) {\n\t\t\t\tthis.wheelDelta = 1;\n\t\t\t} else if (event.deltaY < 0) {\n\t\t\t\tthis.wheelDelta = -1;\n\t\t\t}\n\t\t}\n\t}\n}\nclass ElementTouchEvent extends ElementInputEvent {\n\tconstructor(event, element, camera, x, y, touch) {\n\t\tsuper(event, element, camera);\n\t\tthis.touches = event.touches;\n\t\tthis.changedTouches = event.changedTouches;\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.touch = touch;\n\t}\n}\nclass ElementSelectEvent extends ElementInputEvent {\n\tconstructor(event, element, camera, inputSource) {\n\t\tsuper(event, element, camera);\n\t\tthis.inputSource = inputSource;\n\t}\n}\nclass ElementInput {\n\tconstructor(domElement, options) {\n\t\tthis._app = null;\n\t\tthis._attached = false;\n\t\tthis._target = null;\n\t\tthis._enabled = true;\n\t\tthis._lastX = 0;\n\t\tthis._lastY = 0;\n\t\tthis._upHandler = this._handleUp.bind(this);\n\t\tthis._downHandler = this._handleDown.bind(this);\n\t\tthis._moveHandler = this._handleMove.bind(this);\n\t\tthis._wheelHandler = this._handleWheel.bind(this);\n\t\tthis._touchstartHandler = this._handleTouchStart.bind(this);\n\t\tthis._touchendHandler = this._handleTouchEnd.bind(this);\n\t\tthis._touchcancelHandler = this._touchendHandler;\n\t\tthis._touchmoveHandler = this._handleTouchMove.bind(this);\n\t\tthis._sortHandler = this._sortElements.bind(this);\n\t\tthis._elements = [];\n\t\tthis._hoveredElement = null;\n\t\tthis._pressedElement = null;\n\t\tthis._touchedElements = {};\n\t\tthis._touchesForWhichTouchLeaveHasFired = {};\n\t\tthis._selectedElements = {};\n\t\tthis._selectedPressedElements = {};\n\t\tthis._useMouse = !options || options.useMouse !== false;\n\t\tthis._useTouch = !options || options.useTouch !== false;\n\t\tthis._useXr = !options || options.useXr !== false;\n\t\tthis._selectEventsAttached = false;\n\t\tif (platform.touch) {\n\t\t\tthis._clickedEntities = {};\n\t\t}\n\t\tthis.attach(domElement);\n\t}\n\tset enabled(value) {\n\t\tthis._enabled = value;\n\t}\n\tget enabled() {\n\t\treturn this._enabled;\n\t}\n\tset app(value) {\n\t\tthis._app = value;\n\t}\n\tget app() {\n\t\treturn this._app || getApplication();\n\t}\n\tattach(domElement) {\n\t\tif (this._attached) {\n\t\t\tthis._attached = false;\n\t\t\tthis.detach();\n\t\t}\n\t\tthis._target = domElement;\n\t\tthis._attached = true;\n\t\tconst opts = platform.passiveEvents ? {\n\t\t\tpassive: true\n\t\t} : false;\n\t\tif (this._useMouse) {\n\t\t\twindow.addEventListener('mouseup', this._upHandler, opts);\n\t\t\twindow.addEventListener('mousedown', this._downHandler, opts);\n\t\t\twindow.addEventListener('mousemove', this._moveHandler, opts);\n\t\t\twindow.addEventListener('wheel', this._wheelHandler, opts);\n\t\t}\n\t\tif (this._useTouch && platform.touch) {\n\t\t\tthis._target.addEventListener('touchstart', this._touchstartHandler, opts);\n\t\t\tthis._target.addEventListener('touchend', this._touchendHandler, false);\n\t\t\tthis._target.addEventListener('touchmove', this._touchmoveHandler, false);\n\t\t\tthis._target.addEventListener('touchcancel', this._touchcancelHandler, false);\n\t\t}\n\t\tthis.attachSelectEvents();\n\t}\n\tattachSelectEvents() {\n\t\tif (!this._selectEventsAttached && this._useXr && this.app && this.app.xr && this.app.xr.supported) {\n\t\t\tif (!this._clickedEntities) {\n\t\t\t\tthis._clickedEntities = {};\n\t\t\t}\n\t\t\tthis._selectEventsAttached = true;\n\t\t\tthis.app.xr.on('start', this._onXrStart, this);\n\t\t}\n\t}\n\tdetach() {\n\t\tif (!this._attached) return;\n\t\tthis._attached = false;\n\t\tconst opts = platform.passiveEvents ? {\n\t\t\tpassive: true\n\t\t} : false;\n\t\tif (this._useMouse) {\n\t\t\twindow.removeEventListener('mouseup', this._upHandler, opts);\n\t\t\twindow.removeEventListener('mousedown', this._downHandler, opts);\n\t\t\twindow.removeEventListener('mousemove', this._moveHandler, opts);\n\t\t\twindow.removeEventListener('wheel', this._wheelHandler, opts);\n\t\t}\n\t\tif (this._useTouch) {\n\t\t\tthis._target.removeEventListener('touchstart', this._touchstartHandler, opts);\n\t\t\tthis._target.removeEventListener('touchend', this._touchendHandler, false);\n\t\t\tthis._target.removeEventListener('touchmove', this._touchmoveHandler, false);\n\t\t\tthis._target.removeEventListener('touchcancel', this._touchcancelHandler, false);\n\t\t}\n\t\tif (this._selectEventsAttached) {\n\t\t\tthis._selectEventsAttached = false;\n\t\t\tthis.app.xr.off('start', this._onXrStart, this);\n\t\t\tthis.app.xr.off('end', this._onXrEnd, this);\n\t\t\tthis.app.xr.off('update', this._onXrUpdate, this);\n\t\t\tthis.app.xr.input.off('selectstart', this._onSelectStart, this);\n\t\t\tthis.app.xr.input.off('selectend', this._onSelectEnd, this);\n\t\t\tthis.app.xr.input.off('remove', this._onXrInputRemove, this);\n\t\t}\n\t\tthis._target = null;\n\t}\n\taddElement(element) {\n\t\tif (this._elements.indexOf(element) === -1) {\n\t\t\tthis._elements.push(element);\n\t\t}\n\t}\n\tremoveElement(element) {\n\t\tconst idx = this._elements.indexOf(element);\n\t\tif (idx !== -1) {\n\t\t\tthis._elements.splice(idx, 1);\n\t\t}\n\t}\n\t_handleUp(event) {\n\t\tif (!this._enabled) return;\n\t\tif (Mouse.isPointerLocked()) {\n\t\t\treturn;\n\t\t}\n\t\tthis._calcMouseCoords(event);\n\t\tthis._onElementMouseEvent('mouseup', event);\n\t}\n\t_handleDown(event) {\n\t\tif (!this._enabled) return;\n\t\tif (Mouse.isPointerLocked()) {\n\t\t\treturn;\n\t\t}\n\t\tthis._calcMouseCoords(event);\n\t\tthis._onElementMouseEvent('mousedown', event);\n\t}\n\t_handleMove(event) {\n\t\tif (!this._enabled) return;\n\t\tthis._calcMouseCoords(event);\n\t\tthis._onElementMouseEvent('mousemove', event);\n\t\tthis._lastX = targetX;\n\t\tthis._lastY = targetY;\n\t}\n\t_handleWheel(event) {\n\t\tif (!this._enabled) return;\n\t\tthis._calcMouseCoords(event);\n\t\tthis._onElementMouseEvent('mousewheel', event);\n\t}\n\t_determineTouchedElements(event) {\n\t\tconst touchedElements = {};\n\t\tconst cameras = this.app.systems.camera.cameras;\n\t\tfor (let i = cameras.length - 1; i >= 0; i--) {\n\t\t\tconst camera = cameras[i];\n\t\t\tlet done = 0;\n\t\t\tconst len = event.changedTouches.length;\n\t\t\tfor (let j = 0; j < len; j++) {\n\t\t\t\tif (touchedElements[event.changedTouches[j].identifier]) {\n\t\t\t\t\tdone++;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst coords = getTouchTargetCoords(event.changedTouches[j]);\n\t\t\t\tconst element = this._getTargetElementByCoords(camera, coords.x, coords.y);\n\t\t\t\tif (element) {\n\t\t\t\t\tdone++;\n\t\t\t\t\ttouchedElements[event.changedTouches[j].identifier] = {\n\t\t\t\t\t\telement: element,\n\t\t\t\t\t\tcamera: camera,\n\t\t\t\t\t\tx: coords.x,\n\t\t\t\t\t\ty: coords.y\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (done === len) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn touchedElements;\n\t}\n\t_handleTouchStart(event) {\n\t\tif (!this._enabled) return;\n\t\tconst newTouchedElements = this._determineTouchedElements(event);\n\t\tfor (let i = 0, len = event.changedTouches.length; i < len; i++) {\n\t\t\tconst touch = event.changedTouches[i];\n\t\t\tconst newTouchInfo = newTouchedElements[touch.identifier];\n\t\t\tconst oldTouchInfo = this._touchedElements[touch.identifier];\n\t\t\tif (newTouchInfo && (!oldTouchInfo || newTouchInfo.element !== oldTouchInfo.element)) {\n\t\t\t\tthis._fireEvent(event.type, new ElementTouchEvent(event, newTouchInfo.element, newTouchInfo.camera, newTouchInfo.x, newTouchInfo.y, touch));\n\t\t\t\tthis._touchesForWhichTouchLeaveHasFired[touch.identifier] = false;\n\t\t\t}\n\t\t}\n\t\tfor (const touchId in newTouchedElements) {\n\t\t\tthis._touchedElements[touchId] = newTouchedElements[touchId];\n\t\t}\n\t}\n\t_handleTouchEnd(event) {\n\t\tif (!this._enabled) return;\n\t\tconst cameras = this.app.systems.camera.cameras;\n\t\tfor (const key in this._clickedEntities) {\n\t\t\tdelete this._clickedEntities[key];\n\t\t}\n\t\tfor (let i = 0, len = event.changedTouches.length; i < len; i++) {\n\t\t\tconst touch = event.changedTouches[i];\n\t\t\tconst touchInfo = this._touchedElements[touch.identifier];\n\t\t\tif (!touchInfo) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst element = touchInfo.element;\n\t\t\tconst camera = touchInfo.camera;\n\t\t\tconst x = touchInfo.x;\n\t\t\tconst y = touchInfo.y;\n\t\t\tdelete this._touchedElements[touch.identifier];\n\t\t\tdelete this._touchesForWhichTouchLeaveHasFired[touch.identifier];\n\t\t\tconst coords = getTouchTargetCoords(touch);\n\t\t\tfor (let c = cameras.length - 1; c >= 0; c--) {\n\t\t\t\tconst hovered = this._getTargetElementByCoords(cameras[c], coords.x, coords.y);\n\t\t\t\tif (hovered === element) {\n\t\t\t\t\tif (!this._clickedEntities[element.entity.getGuid()]) {\n\t\t\t\t\t\tthis._fireEvent('click', new ElementTouchEvent(event, element, camera, x, y, touch));\n\t\t\t\t\t\tthis._clickedEntities[element.entity.getGuid()] = Date.now();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._fireEvent(event.type, new ElementTouchEvent(event, element, camera, x, y, touch));\n\t\t}\n\t}\n\t_handleTouchMove(event) {\n\t\tevent.preventDefault();\n\t\tif (!this._enabled) return;\n\t\tconst newTouchedElements = this._determineTouchedElements(event);\n\t\tfor (let i = 0, len = event.changedTouches.length; i < len; i++) {\n\t\t\tconst touch = event.changedTouches[i];\n\t\t\tconst newTouchInfo = newTouchedElements[touch.identifier];\n\t\t\tconst oldTouchInfo = this._touchedElements[touch.identifier];\n\t\t\tif (oldTouchInfo) {\n\t\t\t\tconst coords = getTouchTargetCoords(touch);\n\t\t\t\tif ((!newTouchInfo || newTouchInfo.element !== oldTouchInfo.element) && !this._touchesForWhichTouchLeaveHasFired[touch.identifier]) {\n\t\t\t\t\tthis._fireEvent('touchleave', new ElementTouchEvent(event, oldTouchInfo.element, oldTouchInfo.camera, coords.x, coords.y, touch));\n\t\t\t\t\tthis._touchesForWhichTouchLeaveHasFired[touch.identifier] = true;\n\t\t\t\t}\n\t\t\t\tthis._fireEvent('touchmove', new ElementTouchEvent(event, oldTouchInfo.element, oldTouchInfo.camera, coords.x, coords.y, touch));\n\t\t\t}\n\t\t}\n\t}\n\t_onElementMouseEvent(eventType, event) {\n\t\tlet element = null;\n\t\tconst lastHovered = this._hoveredElement;\n\t\tthis._hoveredElement = null;\n\t\tconst cameras = this.app.systems.camera.cameras;\n\t\tlet camera;\n\t\tfor (let i = cameras.length - 1; i >= 0; i--) {\n\t\t\tcamera = cameras[i];\n\t\t\telement = this._getTargetElementByCoords(camera, targetX, targetY);\n\t\t\tif (element) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tthis._hoveredElement = element;\n\t\tif ((eventType === 'mousemove' || eventType === 'mouseup') && this._pressedElement) {\n\t\t\tthis._fireEvent(eventType, new ElementMouseEvent(event, this._pressedElement, camera, targetX, targetY, this._lastX, this._lastY));\n\t\t} else if (element) {\n\t\t\tthis._fireEvent(eventType, new ElementMouseEvent(event, element, camera, targetX, targetY, this._lastX, this._lastY));\n\t\t\tif (eventType === 'mousedown') {\n\t\t\t\tthis._pressedElement = element;\n\t\t\t}\n\t\t}\n\t\tif (lastHovered !== this._hoveredElement) {\n\t\t\tif (lastHovered) {\n\t\t\t\tthis._fireEvent('mouseleave', new ElementMouseEvent(event, lastHovered, camera, targetX, targetY, this._lastX, this._lastY));\n\t\t\t}\n\t\t\tif (this._hoveredElement) {\n\t\t\t\tthis._fireEvent('mouseenter', new ElementMouseEvent(event, this._hoveredElement, camera, targetX, targetY, this._lastX, this._lastY));\n\t\t\t}\n\t\t}\n\t\tif (eventType === 'mouseup' && this._pressedElement) {\n\t\t\tif (this._pressedElement === this._hoveredElement) {\n\t\t\t\tconst guid = this._hoveredElement.entity.getGuid();\n\t\t\t\tlet fireClick = !this._clickedEntities;\n\t\t\t\tif (this._clickedEntities) {\n\t\t\t\t\tconst lastTouchUp = this._clickedEntities[guid] || 0;\n\t\t\t\t\tconst dt = Date.now() - lastTouchUp;\n\t\t\t\t\tfireClick = dt > 300;\n\t\t\t\t\tdelete this._clickedEntities[guid];\n\t\t\t\t}\n\t\t\t\tif (fireClick) {\n\t\t\t\t\tthis._fireEvent('click', new ElementMouseEvent(event, this._hoveredElement, camera, targetX, targetY, this._lastX, this._lastY));\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._pressedElement = null;\n\t\t}\n\t}\n\t_onXrStart() {\n\t\tthis.app.xr.on('end', this._onXrEnd, this);\n\t\tthis.app.xr.on('update', this._onXrUpdate, this);\n\t\tthis.app.xr.input.on('selectstart', this._onSelectStart, this);\n\t\tthis.app.xr.input.on('selectend', this._onSelectEnd, this);\n\t\tthis.app.xr.input.on('remove', this._onXrInputRemove, this);\n\t}\n\t_onXrEnd() {\n\t\tthis.app.xr.off('update', this._onXrUpdate, this);\n\t\tthis.app.xr.input.off('selectstart', this._onSelectStart, this);\n\t\tthis.app.xr.input.off('selectend', this._onSelectEnd, this);\n\t\tthis.app.xr.input.off('remove', this._onXrInputRemove, this);\n\t}\n\t_onXrUpdate() {\n\t\tif (!this._enabled) return;\n\t\tconst inputSources = this.app.xr.input.inputSources;\n\t\tfor (let i = 0; i < inputSources.length; i++) {\n\t\t\tthis._onElementSelectEvent('selectmove', inputSources[i], null);\n\t\t}\n\t}\n\t_onXrInputRemove(inputSource) {\n\t\tconst hovered = this._selectedElements[inputSource.id];\n\t\tif (hovered) {\n\t\t\tinputSource._elementEntity = null;\n\t\t\tthis._fireEvent('selectleave', new ElementSelectEvent(null, hovered, null, inputSource));\n\t\t}\n\t\tdelete this._selectedElements[inputSource.id];\n\t\tdelete this._selectedPressedElements[inputSource.id];\n\t}\n\t_onSelectStart(inputSource, event) {\n\t\tif (!this._enabled) return;\n\t\tthis._onElementSelectEvent('selectstart', inputSource, event);\n\t}\n\t_onSelectEnd(inputSource, event) {\n\t\tif (!this._enabled) return;\n\t\tthis._onElementSelectEvent('selectend', inputSource, event);\n\t}\n\t_onElementSelectEvent(eventType, inputSource, event) {\n\t\tlet element;\n\t\tconst hoveredBefore = this._selectedElements[inputSource.id];\n\t\tlet hoveredNow;\n\t\tconst cameras = this.app.systems.camera.cameras;\n\t\tlet camera;\n\t\tif (inputSource.elementInput) {\n\t\t\trayC.set(inputSource.getOrigin(), inputSource.getDirection());\n\t\t\tfor (let i = cameras.length - 1; i >= 0; i--) {\n\t\t\t\tcamera = cameras[i];\n\t\t\t\telement = this._getTargetElementByRay(rayC, camera);\n\t\t\t\tif (element) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tinputSource._elementEntity = element || null;\n\t\tif (element) {\n\t\t\tthis._selectedElements[inputSource.id] = element;\n\t\t\thoveredNow = element;\n\t\t} else {\n\t\t\tdelete this._selectedElements[inputSource.id];\n\t\t}\n\t\tif (hoveredBefore !== hoveredNow) {\n\t\t\tif (hoveredBefore) this._fireEvent('selectleave', new ElementSelectEvent(event, hoveredBefore, camera, inputSource));\n\t\t\tif (hoveredNow) this._fireEvent('selectenter', new ElementSelectEvent(event, hoveredNow, camera, inputSource));\n\t\t}\n\t\tconst pressed = this._selectedPressedElements[inputSource.id];\n\t\tif (eventType === 'selectmove' && pressed) {\n\t\t\tthis._fireEvent('selectmove', new ElementSelectEvent(event, pressed, camera, inputSource));\n\t\t}\n\t\tif (eventType === 'selectstart') {\n\t\t\tthis._selectedPressedElements[inputSource.id] = hoveredNow;\n\t\t\tif (hoveredNow) this._fireEvent('selectstart', new ElementSelectEvent(event, hoveredNow, camera, inputSource));\n\t\t}\n\t\tif (!inputSource.elementInput && pressed) {\n\t\t\tdelete this._selectedPressedElements[inputSource.id];\n\t\t\tif (hoveredBefore) {\n\t\t\t\tthis._fireEvent('selectend', new ElementSelectEvent(event, pressed, camera, inputSource));\n\t\t\t}\n\t\t}\n\t\tif (eventType === 'selectend' && inputSource.elementInput) {\n\t\t\tdelete this._selectedPressedElements[inputSource.id];\n\t\t\tif (pressed) {\n\t\t\t\tthis._fireEvent('selectend', new ElementSelectEvent(event, pressed, camera, inputSource));\n\t\t\t}\n\t\t\tif (pressed && pressed === hoveredBefore) {\n\t\t\t\tthis._fireEvent('click', new ElementSelectEvent(event, pressed, camera, inputSource));\n\t\t\t}\n\t\t}\n\t}\n\t_fireEvent(name, evt) {\n\t\tlet element = evt.element;\n\t\twhile (true) {\n\t\t\telement.fire(name, evt);\n\t\t\tif (evt._stopPropagation) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (!element.entity.parent) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\telement = element.entity.parent.element;\n\t\t\tif (!element) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t_calcMouseCoords(event) {\n\t\tconst rect = this._target.getBoundingClientRect();\n\t\tconst left = Math.floor(rect.left);\n\t\tconst top = Math.floor(rect.top);\n\t\ttargetX = event.clientX - left;\n\t\ttargetY = event.clientY - top;\n\t}\n\t_sortElements(a, b) {\n\t\tconst layerOrder = this.app.scene.layers.sortTransparentLayers(a.layers, b.layers);\n\t\tif (layerOrder !== 0) return layerOrder;\n\t\tif (a.screen && !b.screen) {\n\t\t\treturn -1;\n\t\t}\n\t\tif (!a.screen && b.screen) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!a.screen && !b.screen) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (a.screen.screen.screenSpace && !b.screen.screen.screenSpace) {\n\t\t\treturn -1;\n\t\t}\n\t\tif (b.screen.screen.screenSpace && !a.screen.screen.screenSpace) {\n\t\t\treturn 1;\n\t\t}\n\t\treturn b.drawOrder - a.drawOrder;\n\t}\n\t_getTargetElementByCoords(camera, x, y) {\n\t\tconst rayScreen = this._calculateRayScreen(x, y, camera, rayA) ? rayA : null;\n\t\tconst ray3d = this._calculateRay3d(x, y, camera, rayB) ? rayB : null;\n\t\treturn this._getTargetElement(camera, rayScreen, ray3d);\n\t}\n\t_getTargetElementByRay(ray, camera) {\n\t\trayA.origin.copy(ray.origin);\n\t\trayA.direction.copy(ray.direction);\n\t\trayA.end.copy(rayA.direction).mulScalar(camera.farClip * 2).add(rayA.origin);\n\t\tconst ray3d = rayA;\n\t\tconst screenPos = camera.worldToScreen(ray3d.origin, vecA);\n\t\tconst rayScreen = this._calculateRayScreen(screenPos.x, screenPos.y, camera, rayB) ? rayB : null;\n\t\treturn this._getTargetElement(camera, rayScreen, ray3d);\n\t}\n\t_getTargetElement(camera, rayScreen, ray3d) {\n\t\tlet result = null;\n\t\tlet closestDistance3d = Infinity;\n\t\tthis._elements.sort(this._sortHandler);\n\t\tfor (let i = 0, len = this._elements.length; i < len; i++) {\n\t\t\tconst element = this._elements[i];\n\t\t\tif (!element.layers.some(v => camera.layersSet.has(v))) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (element.screen && element.screen.screen.screenSpace) {\n\t\t\t\tif (!rayScreen) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst currentDistance = this._checkElement(rayScreen, element, true);\n\t\t\t\tif (currentDistance >= 0) {\n\t\t\t\t\tresult = element;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (!ray3d) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst currentDistance = this._checkElement(ray3d, element, false);\n\t\t\t\tif (currentDistance >= 0) {\n\t\t\t\t\tif (currentDistance < closestDistance3d) {\n\t\t\t\t\t\tresult = element;\n\t\t\t\t\t\tclosestDistance3d = currentDistance;\n\t\t\t\t\t}\n\t\t\t\t\tif (element.screen) {\n\t\t\t\t\t\tresult = element;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\t_calculateRayScreen(x, y, camera, ray) {\n\t\tconst sw = this.app.graphicsDevice.width;\n\t\tconst sh = this.app.graphicsDevice.height;\n\t\tconst cameraWidth = camera.rect.z * sw;\n\t\tconst cameraHeight = camera.rect.w * sh;\n\t\tconst cameraLeft = camera.rect.x * sw;\n\t\tconst cameraRight = cameraLeft + cameraWidth;\n\t\tconst cameraBottom = (1 - camera.rect.y) * sh;\n\t\tconst cameraTop = cameraBottom - cameraHeight;\n\t\tlet _x = x * sw / this._target.clientWidth;\n\t\tlet _y = y * sh / this._target.clientHeight;\n\t\tif (_x >= cameraLeft && _x <= cameraRight && _y <= cameraBottom && _y >= cameraTop) {\n\t\t\t_x = sw * (_x - cameraLeft) / cameraWidth;\n\t\t\t_y = sh * (_y - cameraTop) / cameraHeight;\n\t\t\t_y = sh - _y;\n\t\t\tray.origin.set(_x, _y, 1);\n\t\t\tray.direction.set(0, 0, -1);\n\t\t\tray.end.copy(ray.direction).mulScalar(2).add(ray.origin);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\t_calculateRay3d(x, y, camera, ray) {\n\t\tconst sw = this._target.clientWidth;\n\t\tconst sh = this._target.clientHeight;\n\t\tconst cameraWidth = camera.rect.z * sw;\n\t\tconst cameraHeight = camera.rect.w * sh;\n\t\tconst cameraLeft = camera.rect.x * sw;\n\t\tconst cameraRight = cameraLeft + cameraWidth;\n\t\tconst cameraBottom = (1 - camera.rect.y) * sh;\n\t\tconst cameraTop = cameraBottom - cameraHeight;\n\t\tlet _x = x;\n\t\tlet _y = y;\n\t\tif (x >= cameraLeft && x <= cameraRight && y <= cameraBottom && _y >= cameraTop) {\n\t\t\t_x = sw * (_x - cameraLeft) / cameraWidth;\n\t\t\t_y = sh * (_y - cameraTop) / cameraHeight;\n\t\t\tcamera.screenToWorld(_x, _y, camera.nearClip, vecA);\n\t\t\tcamera.screenToWorld(_x, _y, camera.farClip, vecB);\n\t\t\tray.origin.copy(vecA);\n\t\t\tray.direction.set(0, 0, -1);\n\t\t\tray.end.copy(vecB);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\t_checkElement(ray, element, screen) {\n\t\tif (element.maskedBy) {\n\t\t\tif (this._checkElement(ray, element.maskedBy.element, screen) < 0) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t\tlet scale;\n\t\tif (screen) {\n\t\t\tscale = ElementInput.calculateScaleToScreen(element);\n\t\t} else {\n\t\t\tscale = ElementInput.calculateScaleToWorld(element);\n\t\t}\n\t\tconst corners = ElementInput.buildHitCorners(element, screen ? element.screenCorners : element.worldCorners, scale);\n\t\treturn intersectLineQuad(ray.origin, ray.end, corners);\n\t}\n\tstatic buildHitCorners(element, screenOrWorldCorners, scale) {\n\t\tlet hitCorners = screenOrWorldCorners;\n\t\tconst button = element.entity && element.entity.button;\n\t\tif (button) {\n\t\t\tconst hitPadding = element.entity.button.hitPadding || ZERO_VEC4;\n\t\t\t_paddingTop.copy(element.entity.up);\n\t\t\t_paddingBottom.copy(_paddingTop).mulScalar(-1);\n\t\t\t_paddingRight.copy(element.entity.right);\n\t\t\t_paddingLeft.copy(_paddingRight).mulScalar(-1);\n\t\t\t_paddingTop.mulScalar(hitPadding.w * scale.y);\n\t\t\t_paddingBottom.mulScalar(hitPadding.y * scale.y);\n\t\t\t_paddingRight.mulScalar(hitPadding.z * scale.x);\n\t\t\t_paddingLeft.mulScalar(hitPadding.x * scale.x);\n\t\t\t_cornerBottomLeft.copy(hitCorners[0]).add(_paddingBottom).add(_paddingLeft);\n\t\t\t_cornerBottomRight.copy(hitCorners[1]).add(_paddingBottom).add(_paddingRight);\n\t\t\t_cornerTopRight.copy(hitCorners[2]).add(_paddingTop).add(_paddingRight);\n\t\t\t_cornerTopLeft.copy(hitCorners[3]).add(_paddingTop).add(_paddingLeft);\n\t\t\thitCorners = [_cornerBottomLeft, _cornerBottomRight, _cornerTopRight, _cornerTopLeft];\n\t\t}\n\t\tif (scale.x < 0) {\n\t\t\tconst left = hitCorners[2].x;\n\t\t\tconst right = hitCorners[0].x;\n\t\t\thitCorners[0].x = left;\n\t\t\thitCorners[1].x = right;\n\t\t\thitCorners[2].x = right;\n\t\t\thitCorners[3].x = left;\n\t\t}\n\t\tif (scale.y < 0) {\n\t\t\tconst bottom = hitCorners[2].y;\n\t\t\tconst top = hitCorners[0].y;\n\t\t\thitCorners[0].y = bottom;\n\t\t\thitCorners[1].y = bottom;\n\t\t\thitCorners[2].y = top;\n\t\t\thitCorners[3].y = top;\n\t\t}\n\t\tif (scale.z < 0) {\n\t\t\tconst x = hitCorners[2].x;\n\t\t\tconst y = hitCorners[2].y;\n\t\t\tconst z = hitCorners[2].z;\n\t\t\thitCorners[2].x = hitCorners[0].x;\n\t\t\thitCorners[2].y = hitCorners[0].y;\n\t\t\thitCorners[2].z = hitCorners[0].z;\n\t\t\thitCorners[0].x = x;\n\t\t\thitCorners[0].y = y;\n\t\t\thitCorners[0].z = z;\n\t\t}\n\t\treturn hitCorners;\n\t}\n\tstatic calculateScaleToScreen(element) {\n\t\tlet current = element.entity;\n\t\tconst screenScale = element.screen.screen.scale;\n\t\t_accumulatedScale.set(screenScale, screenScale, screenScale);\n\t\twhile (current && !current.screen) {\n\t\t\t_accumulatedScale.mul(current.getLocalScale());\n\t\t\tcurrent = current.parent;\n\t\t}\n\t\treturn _accumulatedScale;\n\t}\n\tstatic calculateScaleToWorld(element) {\n\t\tlet current = element.entity;\n\t\t_accumulatedScale.set(1, 1, 1);\n\t\twhile (current) {\n\t\t\t_accumulatedScale.mul(current.getLocalScale());\n\t\t\tcurrent = current.parent;\n\t\t}\n\t\treturn _accumulatedScale;\n\t}\n}\n\nconst LINEBATCH_WORLD = 0;\nconst LINEBATCH_OVERLAY = 1;\nconst LINEBATCH_GIZMO = 2;\nconst log = {\n\twrite: function (text) {\n\t\tconsole.log(text);\n\t},\n\topen: function () {\n\t\tlog.write(`Powered by PlayCanvas ${version} ${revision}`);\n\t},\n\tinfo: function (text) {\n\t\tconsole.info(`INFO:    ${text}`);\n\t},\n\tdebug: function (text) {\n\t\tconsole.debug(`DEBUG:   ${text}`);\n\t},\n\terror: function (text) {\n\t\tconsole.error(`ERROR:   ${text}`);\n\t},\n\twarning: function (text) {\n\t\tconsole.warn(`WARNING: ${text}`);\n\t},\n\talert: function (text) {\n\t\tlog.write(`ALERT:   ${text}`);\n\t\talert(text);\n\t},\n\tassert: function (condition, text) {\n\t\tif (condition === false) {\n\t\t\tlog.write(`ASSERT:  ${text}`);\n\t\t}\n\t}\n};\nstring.endsWith = function (s, subs) {\n\treturn s.endsWith(subs);\n};\nstring.startsWith = function (s, subs) {\n\treturn s.startsWith(subs);\n};\nclass Timer {\n\tconstructor() {\n\t\tthis._isRunning = false;\n\t\tthis._a = 0;\n\t\tthis._b = 0;\n\t}\n\tstart() {\n\t\tthis._isRunning = true;\n\t\tthis._a = now();\n\t}\n\tstop() {\n\t\tthis._isRunning = false;\n\t\tthis._b = now();\n\t}\n\tgetMilliseconds() {\n\t\treturn this._b - this._a;\n\t}\n}\nconst time = {\n\tnow: now,\n\tTimer: Timer\n};\nObject.defineProperty(Color.prototype, 'data', {\n\tget: function () {\n\t\tif (!this._data) {\n\t\t\tthis._data = new Float32Array(4);\n\t\t}\n\t\tthis._data[0] = this.r;\n\t\tthis._data[1] = this.g;\n\t\tthis._data[2] = this.b;\n\t\tthis._data[3] = this.a;\n\t\treturn this._data;\n\t}\n});\nObject.defineProperty(Color.prototype, 'data3', {\n\tget: function () {\n\t\tif (!this._data3) {\n\t\t\tthis._data3 = new Float32Array(3);\n\t\t}\n\t\tthis._data3[0] = this.r;\n\t\tthis._data3[1] = this.g;\n\t\tthis._data3[2] = this.b;\n\t\treturn this._data3;\n\t}\n});\nfunction inherits(Self, Super) {\n\tconst Temp = function Temp() {};\n\tconst Func = function Func(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) {\n\t\tSuper.call(this, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);\n\t\tSelf.call(this, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);\n\t};\n\tFunc._super = Super.prototype;\n\tTemp.prototype = Super.prototype;\n\tFunc.prototype = new Temp();\n\treturn Func;\n}\nfunction makeArray(arr) {\n\treturn Array.prototype.slice.call(arr);\n}\nfunction createStyle(cssString) {\n\tconst result = document.createElement('style');\n\tresult.type = 'text/css';\n\tif (result.styleSheet) {\n\t\tresult.styleSheet.cssText = cssString;\n\t} else {\n\t\tresult.appendChild(document.createTextNode(cssString));\n\t}\n\treturn result;\n}\nmath.INV_LOG2 = Math.LOG2E;\nmath.intToBytes = math.intToBytes32;\nmath.bytesToInt = math.bytesToInt32;\nObject.defineProperty(Vec2.prototype, 'data', {\n\tget: function () {\n\t\tif (!this._data) {\n\t\t\tthis._data = new Float32Array(2);\n\t\t}\n\t\tthis._data[0] = this.x;\n\t\tthis._data[1] = this.y;\n\t\treturn this._data;\n\t}\n});\nVec2.prototype.scale = Vec2.prototype.mulScalar;\nObject.defineProperty(Vec3.prototype, 'data', {\n\tget: function () {\n\t\tif (!this._data) {\n\t\t\tthis._data = new Float32Array(3);\n\t\t}\n\t\tthis._data[0] = this.x;\n\t\tthis._data[1] = this.y;\n\t\tthis._data[2] = this.z;\n\t\treturn this._data;\n\t}\n});\nVec3.prototype.scale = Vec3.prototype.mulScalar;\nObject.defineProperty(Vec4.prototype, 'data', {\n\tget: function () {\n\t\tif (!this._data) {\n\t\t\tthis._data = new Float32Array(4);\n\t\t}\n\t\tthis._data[0] = this.x;\n\t\tthis._data[1] = this.y;\n\t\tthis._data[2] = this.z;\n\t\tthis._data[3] = this.w;\n\t\treturn this._data;\n\t}\n});\nVec4.prototype.scale = Vec4.prototype.mulScalar;\nconst shape = {\n\tAabb: BoundingBox,\n\tSphere: BoundingSphere,\n\tPlane: Plane\n};\nBoundingSphere.prototype.intersectRay = BoundingSphere.prototype.intersectsRay;\nFrustum.prototype.update = function (projectionMatrix, viewMatrix) {\n\tconst viewProj = new Mat4();\n\tviewProj.mul2(projectionMatrix, viewMatrix);\n\tthis.setFromMat4(viewProj);\n};\nconst ELEMENTTYPE_INT8 = TYPE_INT8;\nconst ELEMENTTYPE_UINT8 = TYPE_UINT8;\nconst ELEMENTTYPE_INT16 = TYPE_INT16;\nconst ELEMENTTYPE_UINT16 = TYPE_UINT16;\nconst ELEMENTTYPE_INT32 = TYPE_INT32;\nconst ELEMENTTYPE_UINT32 = TYPE_UINT32;\nconst ELEMENTTYPE_FLOAT32 = TYPE_FLOAT32;\nconst PIXELFORMAT_L8_A8 = PIXELFORMAT_LA8;\nconst PIXELFORMAT_R5_G6_B5 = PIXELFORMAT_RGB565;\nconst PIXELFORMAT_R5_G5_B5_A1 = PIXELFORMAT_RGBA5551;\nconst PIXELFORMAT_R4_G4_B4_A4 = PIXELFORMAT_RGBA4;\nconst PIXELFORMAT_R8_G8_B8 = PIXELFORMAT_RGB8;\nconst PIXELFORMAT_R8_G8_B8_A8 = PIXELFORMAT_RGBA8;\nconst BLENDMODE_CONSTANT_COLOR = BLENDMODE_CONSTANT;\nconst BLENDMODE_ONE_MINUS_CONSTANT_COLOR = BLENDMODE_ONE_MINUS_CONSTANT;\nconst BLENDMODE_CONSTANT_ALPHA = BLENDMODE_CONSTANT;\nconst BLENDMODE_ONE_MINUS_CONSTANT_ALPHA = BLENDMODE_ONE_MINUS_CONSTANT;\nfunction UnsupportedBrowserError(message) {\n\tthis.name = 'UnsupportedBrowserError';\n\tthis.message = message || '';\n}\nUnsupportedBrowserError.prototype = Error.prototype;\nfunction ContextCreationError(message) {\n\tthis.name = 'ContextCreationError';\n\tthis.message = message || '';\n}\nContextCreationError.prototype = Error.prototype;\nconst programlib = {\n\tbegin: ShaderGenerator.begin,\n\tdummyFragmentCode: ShaderUtils.dummyFragmentCode,\n\tend: ShaderGenerator.end,\n\tfogCode: ShaderGenerator.fogCode,\n\tgammaCode: ShaderGenerator.gammaCode,\n\tprecisionCode: ShaderUtils.precisionCode,\n\tskinCode: ShaderGenerator.skinCode,\n\ttonemapCode: ShaderGenerator.tonemapCode,\n\tversionCode: ShaderUtils.versionCode\n};\nconst gfx = {\n\tADDRESS_CLAMP_TO_EDGE: ADDRESS_CLAMP_TO_EDGE,\n\tADDRESS_MIRRORED_REPEAT: ADDRESS_MIRRORED_REPEAT,\n\tADDRESS_REPEAT: ADDRESS_REPEAT,\n\tBLENDMODE_ZERO: BLENDMODE_ZERO,\n\tBLENDMODE_ONE: BLENDMODE_ONE,\n\tBLENDMODE_SRC_COLOR: BLENDMODE_SRC_COLOR,\n\tBLENDMODE_ONE_MINUS_SRC_COLOR: BLENDMODE_ONE_MINUS_SRC_COLOR,\n\tBLENDMODE_DST_COLOR: BLENDMODE_DST_COLOR,\n\tBLENDMODE_ONE_MINUS_DST_COLOR: BLENDMODE_ONE_MINUS_DST_COLOR,\n\tBLENDMODE_SRC_ALPHA: BLENDMODE_SRC_ALPHA,\n\tBLENDMODE_SRC_ALPHA_SATURATE: BLENDMODE_SRC_ALPHA_SATURATE,\n\tBLENDMODE_ONE_MINUS_SRC_ALPHA: BLENDMODE_ONE_MINUS_SRC_ALPHA,\n\tBLENDMODE_DST_ALPHA: BLENDMODE_DST_ALPHA,\n\tBLENDMODE_ONE_MINUS_DST_ALPHA: BLENDMODE_ONE_MINUS_DST_ALPHA,\n\tBUFFER_STATIC: BUFFER_STATIC,\n\tBUFFER_DYNAMIC: BUFFER_DYNAMIC,\n\tBUFFER_STREAM: BUFFER_STREAM,\n\tCULLFACE_NONE: CULLFACE_NONE,\n\tCULLFACE_BACK: CULLFACE_BACK,\n\tCULLFACE_FRONT: CULLFACE_FRONT,\n\tCULLFACE_FRONTANDBACK: CULLFACE_FRONTANDBACK,\n\tELEMENTTYPE_INT8: TYPE_INT8,\n\tELEMENTTYPE_UINT8: TYPE_UINT8,\n\tELEMENTTYPE_INT16: TYPE_INT16,\n\tELEMENTTYPE_UINT16: TYPE_UINT16,\n\tELEMENTTYPE_INT32: TYPE_INT32,\n\tELEMENTTYPE_UINT32: TYPE_UINT32,\n\tELEMENTTYPE_FLOAT32: TYPE_FLOAT32,\n\tFILTER_NEAREST: FILTER_NEAREST,\n\tFILTER_LINEAR: FILTER_LINEAR,\n\tFILTER_NEAREST_MIPMAP_NEAREST: FILTER_NEAREST_MIPMAP_NEAREST,\n\tFILTER_NEAREST_MIPMAP_LINEAR: FILTER_NEAREST_MIPMAP_LINEAR,\n\tFILTER_LINEAR_MIPMAP_NEAREST: FILTER_LINEAR_MIPMAP_NEAREST,\n\tFILTER_LINEAR_MIPMAP_LINEAR: FILTER_LINEAR_MIPMAP_LINEAR,\n\tINDEXFORMAT_UINT8: INDEXFORMAT_UINT8,\n\tINDEXFORMAT_UINT16: INDEXFORMAT_UINT16,\n\tINDEXFORMAT_UINT32: INDEXFORMAT_UINT32,\n\tPIXELFORMAT_RGB565: PIXELFORMAT_RGB565,\n\tPIXELFORMAT_RGB8: PIXELFORMAT_RGB8,\n\tPIXELFORMAT_RGBA8: PIXELFORMAT_RGBA8,\n\tPRIMITIVE_POINTS: PRIMITIVE_POINTS,\n\tPRIMITIVE_LINES: PRIMITIVE_LINES,\n\tPRIMITIVE_LINELOOP: PRIMITIVE_LINELOOP,\n\tPRIMITIVE_LINESTRIP: PRIMITIVE_LINESTRIP,\n\tPRIMITIVE_TRIANGLES: PRIMITIVE_TRIANGLES,\n\tPRIMITIVE_TRISTRIP: PRIMITIVE_TRISTRIP,\n\tPRIMITIVE_TRIFAN: PRIMITIVE_TRIFAN,\n\tSEMANTIC_POSITION: SEMANTIC_POSITION,\n\tSEMANTIC_NORMAL: SEMANTIC_NORMAL,\n\tSEMANTIC_COLOR: SEMANTIC_COLOR,\n\tSEMANTIC_TEXCOORD: SEMANTIC_TEXCOORD,\n\tSEMANTIC_TEXCOORD0: SEMANTIC_TEXCOORD0,\n\tSEMANTIC_TEXCOORD1: SEMANTIC_TEXCOORD1,\n\tSEMANTIC_ATTR0: SEMANTIC_ATTR0,\n\tSEMANTIC_ATTR1: SEMANTIC_ATTR1,\n\tSEMANTIC_ATTR2: SEMANTIC_ATTR2,\n\tSEMANTIC_ATTR3: SEMANTIC_ATTR3,\n\tTEXTURELOCK_READ: TEXTURELOCK_READ,\n\tTEXTURELOCK_WRITE: TEXTURELOCK_WRITE,\n\tdrawQuadWithShader: drawQuadWithShader,\n\tprogramlib: programlib,\n\tshaderChunks: shaderChunks,\n\tContextCreationError: ContextCreationError,\n\tDevice: GraphicsDevice,\n\tIndexBuffer: IndexBuffer,\n\tProgramLibrary: ProgramLibrary,\n\tRenderTarget: RenderTarget,\n\tScopeId: ScopeId,\n\tShader: Shader,\n\tShaderInput: WebglShaderInput,\n\tTexture: Texture,\n\tUnsupportedBrowserError: UnsupportedBrowserError,\n\tVertexBuffer: VertexBuffer,\n\tVertexFormat: VertexFormat,\n\tVertexIterator: VertexIterator\n};\nconst _viewport = new Vec4();\nfunction createSphere(device, opts) {\n\treturn Mesh.fromGeometry(device, new SphereGeometry(opts));\n}\nfunction createPlane(device, opts) {\n\treturn Mesh.fromGeometry(device, new PlaneGeometry(opts));\n}\nfunction createBox(device, opts) {\n\treturn Mesh.fromGeometry(device, new BoxGeometry(opts));\n}\nfunction createTorus(device, opts) {\n\treturn Mesh.fromGeometry(device, new TorusGeometry(opts));\n}\nfunction createCapsule(device, opts) {\n\treturn Mesh.fromGeometry(device, new CapsuleGeometry(opts));\n}\nfunction createCone(device, opts) {\n\treturn Mesh.fromGeometry(device, new ConeGeometry(opts));\n}\nfunction createCylinder(device, opts) {\n\treturn Mesh.fromGeometry(device, new CylinderGeometry(opts));\n}\nfunction createMesh(device, positions, opts = {}) {\n\tconst geom = new Geometry();\n\tgeom.positions = positions;\n\tgeom.normals = opts.normals;\n\tgeom.tangents = opts.tangents;\n\tgeom.colors = opts.colors;\n\tgeom.uvs = opts.uvs;\n\tgeom.uvs1 = opts.uvs1;\n\tgeom.blendIndices = opts.blendIndices;\n\tgeom.blendWeights = opts.blendWeights;\n\tgeom.indices = opts.indices;\n\treturn Mesh.fromGeometry(device, geom, opts);\n}\nfunction drawFullscreenQuad(device, target, vertexBuffer, shader, rect) {\n\tlet viewport;\n\tif (rect) {\n\t\tconst w = target ? target.width : device.width;\n\t\tconst h = target ? target.height : device.height;\n\t\tviewport = _viewport.set(rect.x * w, rect.y * h, rect.z * w, rect.w * h);\n\t}\n\tdrawQuadWithShader(device, target, shader, viewport);\n}\nconst posteffect = {\n\tcreateFullscreenQuad: device => {\n\t\treturn device.quadVertexBuffer;\n\t},\n\tdrawFullscreenQuad: drawFullscreenQuad,\n\tPostEffect: PostEffect,\n\tPostEffectQueue: PostEffectQueue\n};\nObject.defineProperty(shaderChunks, 'transformSkinnedVS', {\n\tget: function () {\n\t\treturn `#define SKIN\\n${shaderChunks.transformVS}`;\n\t}\n});\nconst deprecatedChunks = {\n\t'ambientPrefilteredCube.frag': 'ambientEnv.frag',\n\t'ambientPrefilteredCubeLod.frag': 'ambientEnv.frag',\n\t'dpAtlasQuad.frag': null,\n\t'genParaboloid.frag': null,\n\t'prefilterCubemap.frag': null,\n\t'reflectionDpAtlas.frag': 'reflectionEnv.frag',\n\t'reflectionPrefilteredCube.frag': 'reflectionEnv.frag',\n\t'reflectionPrefilteredCubeLod.frag': 'reflectionEnv.frag'\n};\nObject.keys(deprecatedChunks).forEach(chunkName => {\n\tObject.defineProperty(shaderChunks, chunkName, {\n\t\tget: function () {\n\t\t\treturn null;\n\t\t},\n\t\tset: function () {}\n\t});\n});\nObject.defineProperties(RenderTarget.prototype, {\n\t_glFrameBuffer: {\n\t\tget: function () {\n\t\t\treturn this.impl._glFrameBuffer;\n\t\t},\n\t\tset: function (rgbm) {}\n\t}\n});\nObject.defineProperty(VertexFormat, 'defaultInstancingFormat', {\n\tget: function () {\n\t\treturn null;\n\t}\n});\nObject.defineProperties(Texture.prototype, {\n\trgbm: {\n\t\tget: function () {\n\t\t\treturn this.type === TEXTURETYPE_RGBM;\n\t\t},\n\t\tset: function (rgbm) {\n\t\t\tthis.type = rgbm ? TEXTURETYPE_RGBM : TEXTURETYPE_DEFAULT;\n\t\t}\n\t},\n\tswizzleGGGR: {\n\t\tget: function () {\n\t\t\treturn this.type === TEXTURETYPE_SWIZZLEGGGR;\n\t\t},\n\t\tset: function (swizzleGGGR) {\n\t\t\tthis.type = swizzleGGGR ? TEXTURETYPE_SWIZZLEGGGR : TEXTURETYPE_DEFAULT;\n\t\t}\n\t},\n\t_glTexture: {\n\t\tget: function () {\n\t\t\treturn this.impl._glTexture;\n\t\t}\n\t},\n\tautoMipmap: {\n\t\tget: function () {\n\t\t\treturn this._mipmaps;\n\t\t},\n\t\tset: function (value) {\n\t\t\tthis._mipmaps = value;\n\t\t}\n\t}\n});\nObject.defineProperty(GraphicsDevice.prototype, 'webgl2', {\n\tget: function () {\n\t\treturn this.isWebGL2;\n\t}\n});\nGraphicsDevice.prototype.getProgramLibrary = function () {\n\treturn getProgramLibrary(this);\n};\nGraphicsDevice.prototype.setProgramLibrary = function (lib) {\n\tsetProgramLibrary(this, lib);\n};\nGraphicsDevice.prototype.removeShaderFromCache = function (shader) {\n\tgetProgramLibrary(this).removeFromCache(shader);\n};\nBlendState.DEFAULT = Object.freeze(new BlendState());\nconst _tempBlendState = new BlendState();\nconst _tempDepthState = new DepthState();\nGraphicsDevice.prototype.setBlendFunction = function (blendSrc, blendDst) {\n\tconst currentBlendState = this.blendState;\n\t_tempBlendState.copy(currentBlendState);\n\t_tempBlendState.setColorBlend(currentBlendState.colorOp, blendSrc, blendDst);\n\t_tempBlendState.setAlphaBlend(currentBlendState.alphaOp, blendSrc, blendDst);\n\tthis.setBlendState(_tempBlendState);\n};\nGraphicsDevice.prototype.setBlendFunctionSeparate = function (blendSrc, blendDst, blendSrcAlpha, blendDstAlpha) {\n\tconst currentBlendState = this.blendState;\n\t_tempBlendState.copy(currentBlendState);\n\t_tempBlendState.setColorBlend(currentBlendState.colorOp, blendSrc, blendDst);\n\t_tempBlendState.setAlphaBlend(currentBlendState.alphaOp, blendSrcAlpha, blendDstAlpha);\n\tthis.setBlendState(_tempBlendState);\n};\nGraphicsDevice.prototype.setBlendEquation = function (blendEquation) {\n\tconst currentBlendState = this.blendState;\n\t_tempBlendState.copy(currentBlendState);\n\t_tempBlendState.setColorBlend(blendEquation, currentBlendState.colorSrcFactor, currentBlendState.colorDstFactor);\n\t_tempBlendState.setAlphaBlend(blendEquation, currentBlendState.alphaSrcFactor, currentBlendState.alphaDstFactor);\n\tthis.setBlendState(_tempBlendState);\n};\nGraphicsDevice.prototype.setBlendEquationSeparate = function (blendEquation, blendAlphaEquation) {\n\tconst currentBlendState = this.blendState;\n\t_tempBlendState.copy(currentBlendState);\n\t_tempBlendState.setColorBlend(blendEquation, currentBlendState.colorSrcFactor, currentBlendState.colorDstFactor);\n\t_tempBlendState.setAlphaBlend(blendAlphaEquation, currentBlendState.alphaSrcFactor, currentBlendState.alphaDstFactor);\n\tthis.setBlendState(_tempBlendState);\n};\nGraphicsDevice.prototype.setColorWrite = function (redWrite, greenWrite, blueWrite, alphaWrite) {\n\tconst currentBlendState = this.blendState;\n\t_tempBlendState.copy(currentBlendState);\n\t_tempBlendState.setColorWrite(redWrite, greenWrite, blueWrite, alphaWrite);\n\tthis.setBlendState(_tempBlendState);\n};\nGraphicsDevice.prototype.getBlending = function () {\n\treturn this.blendState.blend;\n};\nGraphicsDevice.prototype.setBlending = function (blending) {\n\t_tempBlendState.copy(this.blendState);\n\t_tempBlendState.blend = blending;\n\tthis.setBlendState(_tempBlendState);\n};\nGraphicsDevice.prototype.setDepthWrite = function (write) {\n\t_tempDepthState.copy(this.depthState);\n\t_tempDepthState.write = write;\n\tthis.setDepthState(_tempDepthState);\n};\nGraphicsDevice.prototype.setDepthFunc = function (func) {\n\t_tempDepthState.copy(this.depthState);\n\t_tempDepthState.func = func;\n\tthis.setDepthState(_tempDepthState);\n};\nGraphicsDevice.prototype.setDepthTest = function (test) {\n\t_tempDepthState.copy(this.depthState);\n\t_tempDepthState.test = test;\n\tthis.setDepthState(_tempDepthState);\n};\nGraphicsDevice.prototype.getCullMode = function () {\n\treturn this.cullMode;\n};\nconst PhongMaterial = StandardMaterial;\nconst LitOptions = LitShaderOptions;\nconst scene = {\n\tprocedural: {\n\t\tcalculateTangents: calculateTangents,\n\t\tcreateMesh: createMesh,\n\t\tcreateTorus: createTorus,\n\t\tcreateCylinder: createCylinder,\n\t\tcreateCapsule: createCapsule,\n\t\tcreateCone: createCone,\n\t\tcreateSphere: createSphere,\n\t\tcreatePlane: createPlane,\n\t\tcreateBox: createBox\n\t},\n\tBasicMaterial: BasicMaterial,\n\tForwardRenderer: ForwardRenderer,\n\tGraphNode: GraphNode,\n\tMaterial: Material,\n\tMesh: Mesh,\n\tMeshInstance: MeshInstance,\n\tModel: Model,\n\tParticleEmitter: ParticleEmitter,\n\tPhongMaterial: StandardMaterial,\n\tPicker: Picker,\n\tProjection: {\n\t\tORTHOGRAPHIC: PROJECTION_ORTHOGRAPHIC,\n\t\tPERSPECTIVE: PROJECTION_PERSPECTIVE\n\t},\n\tScene: Scene,\n\tSkin: Skin,\n\tSkinInstance: SkinInstance\n};\nObject.defineProperty(Scene.prototype, 'defaultMaterial', {\n\tget: function () {\n\t\treturn getDefaultMaterial(getApplication().graphicsDevice);\n\t}\n});\nObject.defineProperty(LayerComposition.prototype, '_meshInstances', {\n\tget: function () {\n\t\treturn null;\n\t}\n});\nObject.defineProperty(Scene.prototype, 'drawCalls', {\n\tget: function () {\n\t\treturn null;\n\t}\n});\n['128', '64', '32', '16', '8', '4'].forEach((size, index) => {\n\tObject.defineProperty(Scene.prototype, `skyboxPrefiltered${size}`, {\n\t\tget: function () {\n\t\t\treturn this._prefilteredCubemaps[index];\n\t\t},\n\t\tset: function (value) {\n\t\t\tthis._prefilteredCubemaps[index] = value;\n\t\t\tthis.updateShaders = true;\n\t\t}\n\t});\n});\nObject.defineProperty(Scene.prototype, 'models', {\n\tget: function () {\n\t\tif (!this._models) {\n\t\t\tthis._models = [];\n\t\t}\n\t\treturn this._models;\n\t}\n});\nObject.defineProperty(Layer.prototype, 'renderTarget', {\n\tset: function (rt) {\n\t\tthis._renderTarget = rt;\n\t\tthis._dirtyComposition = true;\n\t},\n\tget: function () {\n\t\treturn this._renderTarget;\n\t}\n});\nScene.prototype.addModel = function (model) {\n\tif (this.containsModel(model)) return;\n\tconst layer = this.layers.getLayerById(LAYERID_WORLD);\n\tif (!layer) return;\n\tlayer.addMeshInstances(model.meshInstances);\n\tthis.models.push(model);\n};\nScene.prototype.addShadowCaster = function (model) {\n\tconst layer = this.layers.getLayerById(LAYERID_WORLD);\n\tif (!layer) return;\n\tlayer.addShadowCasters(model.meshInstances);\n};\nScene.prototype.removeModel = function (model) {\n\tconst index = this.models.indexOf(model);\n\tif (index !== -1) {\n\t\tconst layer = this.layers.getLayerById(LAYERID_WORLD);\n\t\tif (!layer) return;\n\t\tlayer.removeMeshInstances(model.meshInstances);\n\t\tthis.models.splice(index, 1);\n\t}\n};\nScene.prototype.removeShadowCasters = function (model) {\n\tconst layer = this.layers.getLayerById(LAYERID_WORLD);\n\tif (!layer) return;\n\tlayer.removeShadowCasters(model.meshInstances);\n};\nScene.prototype.containsModel = function (model) {\n\treturn this.models.indexOf(model) >= 0;\n};\nScene.prototype.getModels = function (model) {\n\treturn this.models;\n};\nObject.defineProperty(Batch.prototype, 'model', {\n\tget: function () {\n\t\treturn null;\n\t}\n});\nForwardRenderer.prototype.renderComposition = function (comp) {\n\tgetApplication().renderComposition(comp);\n};\nMeshInstance.prototype.syncAabb = function () {};\nMorph.prototype.getTarget = function (index) {\n\treturn this.targets[index];\n};\nGraphNode.prototype._dirtify = function (local) {\n\tif (local) {\n\t\tthis._dirtifyLocal();\n\t} else {\n\t\tthis._dirtifyWorld();\n\t}\n};\nGraphNode.prototype.addLabel = function (label) {\n\tthis._labels[label] = true;\n};\nGraphNode.prototype.getLabels = function () {\n\treturn Object.keys(this._labels);\n};\nGraphNode.prototype.hasLabel = function (label) {\n\treturn !!this._labels[label];\n};\nGraphNode.prototype.removeLabel = function (label) {\n\tdelete this._labels[label];\n};\nGraphNode.prototype.findByLabel = function (label, results = []) {\n\tif (this.hasLabel(label)) {\n\t\tresults.push(this);\n\t}\n\tfor (let i = 0; i < this._children.length; ++i) {\n\t\tresults = this._children[i].findByLabel(label, results);\n\t}\n\treturn results;\n};\nGraphNode.prototype.getChildren = function () {\n\treturn this.children;\n};\nGraphNode.prototype.getName = function () {\n\treturn this.name;\n};\nGraphNode.prototype.getPath = function () {\n\treturn this.path;\n};\nGraphNode.prototype.getRoot = function () {\n\treturn this.root;\n};\nGraphNode.prototype.getParent = function () {\n\treturn this.parent;\n};\nGraphNode.prototype.setName = function (name) {\n\tthis.name = name;\n};\nMaterial.prototype.getName = function () {\n\treturn this.name;\n};\nMaterial.prototype.setName = function (name) {\n\tthis.name = name;\n};\nMaterial.prototype.getShader = function () {\n\treturn this.shader;\n};\nMaterial.prototype.setShader = function (shader) {\n\tthis.shader = shader;\n};\nObject.defineProperty(Material.prototype, 'blend', {\n\tset: function (value) {\n\t\tthis.blendState.blend = value;\n\t},\n\tget: function () {\n\t\treturn this.blendState.blend;\n\t}\n});\nObject.defineProperty(Material.prototype, 'blendSrc', {\n\tset: function (value) {\n\t\tconst currentBlendState = this.blendState;\n\t\t_tempBlendState.copy(currentBlendState);\n\t\t_tempBlendState.setColorBlend(currentBlendState.colorOp, value, currentBlendState.colorDstFactor);\n\t\t_tempBlendState.setAlphaBlend(currentBlendState.alphaOp, value, currentBlendState.alphaDstFactor);\n\t\tthis.blendState = _tempBlendState;\n\t},\n\tget: function () {\n\t\treturn this.blendState.colorSrcFactor;\n\t}\n});\nObject.defineProperty(Material.prototype, 'blendDst', {\n\tset: function (value) {\n\t\tconst currentBlendState = this.blendState;\n\t\t_tempBlendState.copy(currentBlendState);\n\t\t_tempBlendState.setColorBlend(currentBlendState.colorOp, currentBlendState.colorSrcFactor, value);\n\t\t_tempBlendState.setAlphaBlend(currentBlendState.alphaOp, currentBlendState.alphaSrcFactor, value);\n\t\tthis.blendState = _tempBlendState;\n\t},\n\tget: function () {\n\t\treturn this.blendState.colorDstFactor;\n\t}\n});\nObject.defineProperty(StandardMaterial.prototype, 'shininess', {\n\tget: function () {\n\t\treturn this.gloss * 100;\n\t},\n\tset: function (value) {\n\t\tthis.gloss = value * 0.01;\n\t}\n});\nfunction _defineAlias(newName, oldName) {\n\tObject.defineProperty(StandardMaterial.prototype, oldName, {\n\t\tget: function () {\n\t\t\treturn this[newName];\n\t\t},\n\t\tset: function (value) {\n\t\t\tthis[newName] = value;\n\t\t}\n\t});\n}\n_defineAlias('diffuseTint', 'diffuseMapTint');\n_defineAlias('specularTint', 'specularMapTint');\n_defineAlias('emissiveTint', 'emissiveMapTint');\n_defineAlias('aoVertexColor', 'aoMapVertexColor');\n_defineAlias('diffuseVertexColor', 'diffuseMapVertexColor');\n_defineAlias('specularVertexColor', 'specularMapVertexColor');\n_defineAlias('emissiveVertexColor', 'emissiveMapVertexColor');\n_defineAlias('metalnessVertexColor', 'metalnessMapVertexColor');\n_defineAlias('glossVertexColor', 'glossMapVertexColor');\n_defineAlias('opacityVertexColor', 'opacityMapVertexColor');\n_defineAlias('lightVertexColor', 'lightMapVertexColor');\n_defineAlias('sheenGloss', 'sheenGlossiess');\n_defineAlias('clearCoatGloss', 'clearCostGlossiness');\nfunction _defineOption(name, newName) {\n\tif (name !== 'pass') {\n\t\tObject.defineProperty(StandardMaterialOptions.prototype, name, {\n\t\t\tget: function () {\n\t\t\t\treturn this.litOptions[newName || name];\n\t\t\t},\n\t\t\tset: function (value) {\n\t\t\t\tthis.litOptions[newName || name] = value;\n\t\t\t}\n\t\t});\n\t}\n}\n_defineOption('refraction', 'useRefraction');\nconst tempOptions = new LitShaderOptions();\nconst litOptionProperties = Object.getOwnPropertyNames(tempOptions);\nfor (const litOption in litOptionProperties) {\n\t_defineOption(litOptionProperties[litOption]);\n}\nconst anim = {\n\tAnimation: Animation,\n\tKey: Key,\n\tNode: Node,\n\tSkeleton: Skeleton\n};\nAnimation.prototype.getDuration = function () {\n\treturn this.duration;\n};\nAnimation.prototype.getName = function () {\n\treturn this.name;\n};\nAnimation.prototype.getNodes = function () {\n\treturn this.nodes;\n};\nAnimation.prototype.setDuration = function (duration) {\n\tthis.duration = duration;\n};\nAnimation.prototype.setName = function (name) {\n\tthis.name = name;\n};\nSkeleton.prototype.getAnimation = function () {\n\treturn this.animation;\n};\nSkeleton.prototype.getCurrentTime = function () {\n\treturn this.currentTime;\n};\nSkeleton.prototype.getLooping = function () {\n\treturn this.looping;\n};\nSkeleton.prototype.getNumNodes = function () {\n\treturn this.numNodes;\n};\nSkeleton.prototype.setAnimation = function (animation) {\n\tthis.animation = animation;\n};\nSkeleton.prototype.setCurrentTime = function (time) {\n\tthis.currentTime = time;\n};\nSkeleton.prototype.setLooping = function (looping) {\n\tthis.looping = looping;\n};\nconst audio = {\n\tAudioManager: SoundManager,\n\tChannel: Channel,\n\tChannel3d: Channel3d,\n\tListener: Listener,\n\tSound: Sound\n};\nSoundManager.prototype.getListener = function () {\n\treturn this.listener;\n};\nSoundManager.prototype.getVolume = function () {\n\treturn this.volume;\n};\nSoundManager.prototype.setVolume = function (volume) {\n\tthis.volume = volume;\n};\nconst asset = {\n\tASSET_ANIMATION: 'animation',\n\tASSET_AUDIO: 'audio',\n\tASSET_IMAGE: 'image',\n\tASSET_JSON: 'json',\n\tASSET_MODEL: 'model',\n\tASSET_MATERIAL: 'material',\n\tASSET_TEXT: 'text',\n\tASSET_TEXTURE: 'texture',\n\tASSET_CUBEMAP: 'cubemap',\n\tASSET_SCRIPT: 'script'\n};\nAssetRegistry.prototype.getAssetById = function (id) {\n\treturn this.get(id);\n};\nObject.defineProperty(XrInputSource.prototype, 'ray', {\n\tget: function () {\n\t\treturn this._rayLocal;\n\t}\n});\nObject.defineProperty(XrInputSource.prototype, 'position', {\n\tget: function () {\n\t\treturn this._localPosition;\n\t}\n});\nObject.defineProperty(XrInputSource.prototype, 'rotation', {\n\tget: function () {\n\t\treturn this._localRotation;\n\t}\n});\nconst input = {\n\tgetTouchTargetCoords: getTouchTargetCoords,\n\tController: Controller,\n\tGamePads: GamePads,\n\tKeyboard: Keyboard,\n\tKeyboardEvent: KeyboardEvent,\n\tMouse: Mouse,\n\tMouseEvent: MouseEvent,\n\tTouch: Touch,\n\tTouchDevice: TouchDevice,\n\tTouchEvent: TouchEvent\n};\nObject.defineProperty(ElementInput.prototype, 'wheel', {\n\tget: function () {\n\t\treturn this.wheelDelta * -2;\n\t}\n});\nObject.defineProperty(MouseEvent.prototype, 'wheel', {\n\tget: function () {\n\t\treturn this.wheelDelta * -2;\n\t}\n});\nconst RIGIDBODY_TYPE_STATIC = BODYTYPE_STATIC;\nconst RIGIDBODY_TYPE_DYNAMIC = BODYTYPE_DYNAMIC;\nconst RIGIDBODY_TYPE_KINEMATIC = BODYTYPE_KINEMATIC;\nconst RIGIDBODY_CF_STATIC_OBJECT = BODYFLAG_STATIC_OBJECT;\nconst RIGIDBODY_CF_KINEMATIC_OBJECT = BODYFLAG_KINEMATIC_OBJECT;\nconst RIGIDBODY_CF_NORESPONSE_OBJECT = BODYFLAG_NORESPONSE_OBJECT;\nconst RIGIDBODY_ACTIVE_TAG = BODYSTATE_ACTIVE_TAG;\nconst RIGIDBODY_ISLAND_SLEEPING = BODYSTATE_ISLAND_SLEEPING;\nconst RIGIDBODY_WANTS_DEACTIVATION = BODYSTATE_WANTS_DEACTIVATION;\nconst RIGIDBODY_DISABLE_DEACTIVATION = BODYSTATE_DISABLE_DEACTIVATION;\nconst RIGIDBODY_DISABLE_SIMULATION = BODYSTATE_DISABLE_SIMULATION;\nAppBase.prototype.isFullscreen = function () {\n\treturn !!document.fullscreenElement;\n};\nAppBase.prototype.enableFullscreen = function (element, success, error) {\n\telement = element || this.graphicsDevice.canvas;\n\tconst s = function s() {\n\t\tsuccess();\n\t\tdocument.removeEventListener('fullscreenchange', s);\n\t};\n\tconst e = function e() {\n\t\terror();\n\t\tdocument.removeEventListener('fullscreenerror', e);\n\t};\n\tif (success) {\n\t\tdocument.addEventListener('fullscreenchange', s, false);\n\t}\n\tif (error) {\n\t\tdocument.addEventListener('fullscreenerror', e, false);\n\t}\n\tif (element.requestFullscreen) {\n\t\telement.requestFullscreen(Element.ALLOW_KEYBOARD_INPUT);\n\t} else {\n\t\terror();\n\t}\n};\nAppBase.prototype.disableFullscreen = function (success) {\n\tconst s = function s() {\n\t\tsuccess();\n\t\tdocument.removeEventListener('fullscreenchange', s);\n\t};\n\tif (success) {\n\t\tdocument.addEventListener('fullscreenchange', s, false);\n\t}\n\tdocument.exitFullscreen();\n};\nAppBase.prototype.getSceneUrl = function (name) {\n\tconst entry = this.scenes.find(name);\n\tif (entry) {\n\t\treturn entry.url;\n\t}\n\treturn null;\n};\nAppBase.prototype.loadScene = function (url, callback) {\n\tthis.scenes.loadScene(url, callback);\n};\nAppBase.prototype.loadSceneHierarchy = function (url, callback) {\n\tthis.scenes.loadSceneHierarchy(url, callback);\n};\nAppBase.prototype.loadSceneSettings = function (url, callback) {\n\tthis.scenes.loadSceneSettings(url, callback);\n};\nAppBase.prototype.renderMeshInstance = function (meshInstance, options) {\n\tconst layer = options != null && options.layer ? options.layer : this.scene.defaultDrawLayer;\n\tthis.scene.immediate.drawMesh(null, null, null, meshInstance, layer);\n};\nAppBase.prototype.renderMesh = function (mesh, material, matrix, options) {\n\tconst layer = options != null && options.layer ? options.layer : this.scene.defaultDrawLayer;\n\tthis.scene.immediate.drawMesh(material, matrix, mesh, null, layer);\n};\nAppBase.prototype._addLines = function (positions, colors, options) {\n\tconst layer = options && options.layer ? options.layer : this.scene.layers.getLayerById(LAYERID_IMMEDIATE);\n\tconst depthTest = options && options.depthTest !== undefined ? options.depthTest : true;\n\tconst batch = this.scene.immediate.getBatch(layer, depthTest);\n\tbatch.addLines(positions, colors);\n};\nAppBase.prototype.renderLine = function (start, end, color) {\n\tlet endColor = color;\n\tlet options;\n\tconst arg3 = arguments[3];\n\tconst arg4 = arguments[4];\n\tif (arg3 instanceof Color) {\n\t\tendColor = arg3;\n\t\tif (typeof arg4 === 'number') {\n\t\t\tif (arg4 === LINEBATCH_OVERLAY) {\n\t\t\t\toptions = {\n\t\t\t\t\tlayer: this.scene.layers.getLayerById(LAYERID_IMMEDIATE),\n\t\t\t\t\tdepthTest: false\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\toptions = {\n\t\t\t\t\tlayer: this.scene.layers.getLayerById(LAYERID_IMMEDIATE),\n\t\t\t\t\tdepthTest: true\n\t\t\t\t};\n\t\t\t}\n\t\t} else {\n\t\t\toptions = arg4;\n\t\t}\n\t} else if (typeof arg3 === 'number') {\n\t\tendColor = color;\n\t\tif (arg3 === LINEBATCH_OVERLAY) {\n\t\t\toptions = {\n\t\t\t\tlayer: this.scene.layers.getLayerById(LAYERID_IMMEDIATE),\n\t\t\t\tdepthTest: false\n\t\t\t};\n\t\t} else {\n\t\t\toptions = {\n\t\t\t\tlayer: this.scene.layers.getLayerById(LAYERID_IMMEDIATE),\n\t\t\t\tdepthTest: true\n\t\t\t};\n\t\t}\n\t} else if (arg3) {\n\t\toptions = arg3;\n\t}\n\tthis._addLines([start, end], [color, endColor], options);\n};\nAppBase.prototype.renderLines = function (position, color, options) {\n\tif (!options) {\n\t\toptions = {\n\t\t\tlayer: this.scene.layers.getLayerById(LAYERID_IMMEDIATE),\n\t\t\tdepthTest: true\n\t\t};\n\t} else if (typeof options === 'number') {\n\t\tif (options === LINEBATCH_OVERLAY) {\n\t\t\toptions = {\n\t\t\t\tlayer: this.scene.layers.getLayerById(LAYERID_IMMEDIATE),\n\t\t\t\tdepthTest: false\n\t\t\t};\n\t\t} else {\n\t\t\toptions = {\n\t\t\t\tlayer: this.scene.layers.getLayerById(LAYERID_IMMEDIATE),\n\t\t\t\tdepthTest: true\n\t\t\t};\n\t\t}\n\t}\n\tconst multiColor = !!color.length;\n\tif (multiColor) {\n\t\tif (position.length !== color.length) {\n\t\t\tconsole.error('renderLines: position/color arrays have different lengths');\n\t\t\treturn;\n\t\t}\n\t}\n\tif (position.length % 2 !== 0) {\n\t\tconsole.error('renderLines: array length is not divisible by 2');\n\t\treturn;\n\t}\n\tthis._addLines(position, color, options);\n};\nAppBase.prototype.enableVr = function () {};\nObject.defineProperty(CameraComponent.prototype, 'node', {\n\tget: function () {\n\t\treturn this.entity;\n\t}\n});\nObject.defineProperty(LightComponent.prototype, 'enable', {\n\tget: function () {\n\t\treturn this.enabled;\n\t},\n\tset: function (value) {\n\t\tthis.enabled = value;\n\t}\n});\nModelComponent.prototype.setVisible = function (visible) {\n\tthis.enabled = visible;\n};\nObject.defineProperty(ModelComponent.prototype, 'aabb', {\n\tget: function () {\n\t\treturn null;\n\t},\n\tset: function (type) {}\n});\nObject.defineProperty(RenderComponent.prototype, 'aabb', {\n\tget: function () {\n\t\treturn null;\n\t},\n\tset: function (type) {}\n});\nObject.defineProperty(RigidBodyComponent.prototype, 'bodyType', {\n\tget: function () {\n\t\treturn this.type;\n\t},\n\tset: function (type) {\n\t\tthis.type = type;\n\t}\n});\nRigidBodyComponent.prototype.syncBodyToEntity = function () {\n\tthis._updateDynamic();\n};\nRigidBodyComponentSystem.prototype.setGravity = function () {\n\tif (arguments.length === 1) {\n\t\tthis.gravity.copy(arguments[0]);\n\t} else {\n\t\tthis.gravity.set(arguments[0], arguments[1], arguments[2]);\n\t}\n};\nfunction basisSetDownloadConfig(glueUrl, wasmUrl, fallbackUrl) {\n\tbasisInitialize({\n\t\tglueUrl: glueUrl,\n\t\twasmUrl: wasmUrl,\n\t\tfallbackUrl: fallbackUrl,\n\t\tlazyInit: true\n\t});\n}\nfunction prefilterCubemap(options) {}\n\nObject.defineProperty(StandardMaterial.prototype, 'useGamma', {\n\tget: function () {\n\t\treturn this.useGammaTonemap;\n\t},\n\tset: function (value) {\n\t\tthis.useGammaTonemap = value;\n\t}\n});\nObject.defineProperty(StandardMaterial.prototype, 'aoIntensity', {\n\tget: function () {\n\t\treturn 1;\n\t},\n\tset: function (value) {}\n});\nfunction __dummyFunction() {}\n\nclass CpuTimer {\n\tconstructor(app) {\n\t\tthis._frameIndex = 0;\n\t\tthis._frameTimings = [];\n\t\tthis._timings = [];\n\t\tthis._prevTimings = [];\n\t\tthis.unitsName = 'ms';\n\t\tthis.decimalPlaces = 1;\n\t\tthis.enabled = true;\n\t\tapp.on('frameupdate', this.begin.bind(this, 'update'));\n\t\tapp.on('framerender', this.mark.bind(this, 'render'));\n\t\tapp.on('frameend', this.mark.bind(this, 'other'));\n\t}\n\tbegin(name) {\n\t\tif (!this.enabled) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._frameIndex < this._frameTimings.length) {\n\t\t\tthis._frameTimings.splice(this._frameIndex);\n\t\t}\n\t\tconst tmp = this._prevTimings;\n\t\tthis._prevTimings = this._timings;\n\t\tthis._timings = this._frameTimings;\n\t\tthis._frameTimings = tmp;\n\t\tthis._frameIndex = 0;\n\t\tthis.mark(name);\n\t}\n\tmark(name) {\n\t\tif (!this.enabled) {\n\t\t\treturn;\n\t\t}\n\t\tconst timestamp = now();\n\t\tif (this._frameIndex > 0) {\n\t\t\tconst prev = this._frameTimings[this._frameIndex - 1];\n\t\t\tprev[1] = timestamp - prev[1];\n\t\t} else if (this._timings.length > 0) {\n\t\t\tconst prev = this._timings[this._timings.length - 1];\n\t\t\tprev[1] = timestamp - prev[1];\n\t\t}\n\t\tif (this._frameIndex >= this._frameTimings.length) {\n\t\t\tthis._frameTimings.push([name, timestamp]);\n\t\t} else {\n\t\t\tconst timing = this._frameTimings[this._frameIndex];\n\t\t\ttiming[0] = name;\n\t\t\ttiming[1] = timestamp;\n\t\t}\n\t\tthis._frameIndex++;\n\t}\n\tget timings() {\n\t\treturn this._timings.slice(0, -1).map(v => v[1]);\n\t}\n}\n\nclass GpuTimer {\n\tconstructor(device) {\n\t\tthis.device = device;\n\t\tdevice.gpuProfiler.enabled = true;\n\t\tthis.enabled = true;\n\t\tthis.unitsName = 'ms';\n\t\tthis.decimalPlaces = 1;\n\t\tthis._timings = [];\n\t}\n\tget timings() {\n\t\tthis._timings[0] = this.device.gpuProfiler._frameTime;\n\t\treturn this._timings;\n\t}\n}\n\nclass StatsTimer {\n\tconstructor(app, statNames, decimalPlaces, unitsName, multiplier) {\n\t\tthis.app = app;\n\t\tthis.values = [];\n\t\tthis.statNames = statNames;\n\t\tif (this.statNames.length > 3) {\n\t\t\tthis.statNames.length = 3;\n\t\t}\n\t\tthis.unitsName = unitsName;\n\t\tthis.decimalPlaces = decimalPlaces;\n\t\tthis.multiplier = multiplier || 1;\n\t\tconst resolve = (path, obj) => {\n\t\t\treturn path.split('.').reduce((prev, curr) => {\n\t\t\t\treturn prev ? prev[curr] : null;\n\t\t\t}, obj || this);\n\t\t};\n\t\tapp.on('frameupdate', ms => {\n\t\t\tfor (let i = 0; i < this.statNames.length; i++) {\n\t\t\t\tthis.values[i] = resolve(this.statNames[i], this.app.stats) * this.multiplier;\n\t\t\t}\n\t\t});\n\t}\n\tget timings() {\n\t\treturn this.values;\n\t}\n}\n\nclass Graph {\n\tconstructor(name, app, watermark, textRefreshRate, timer) {\n\t\tthis.app = app;\n\t\tthis.name = name;\n\t\tthis.device = app.graphicsDevice;\n\t\tthis.timer = timer;\n\t\tthis.watermark = watermark;\n\t\tthis.enabled = false;\n\t\tthis.textRefreshRate = textRefreshRate;\n\t\tthis.avgTotal = 0;\n\t\tthis.avgTimer = 0;\n\t\tthis.avgCount = 0;\n\t\tthis.timingText = '';\n\t\tthis.texture = null;\n\t\tthis.yOffset = 0;\n\t\tthis.cursor = 0;\n\t\tthis.sample = new Uint8ClampedArray(4);\n\t\tthis.sample.set([0, 0, 0, 255]);\n\t\tthis.counter = 0;\n\t\tthis.app.on('frameupdate', this.update, this);\n\t}\n\tdestroy() {\n\t\tthis.app.off('frameupdate', this.update, this);\n\t}\n\tloseContext() {\n\t\tif (this.timer && typeof this.timer.loseContext === 'function') {\n\t\t\tthis.timer.loseContext();\n\t\t}\n\t}\n\tupdate(ms) {\n\t\tconst timings = this.timer.timings;\n\t\tconst total = timings.reduce((a, v) => a + v, 0);\n\t\tthis.avgTotal += total;\n\t\tthis.avgTimer += ms;\n\t\tthis.avgCount++;\n\t\tif (this.avgTimer > this.textRefreshRate) {\n\t\t\tthis.timingText = (this.avgTotal / this.avgCount).toFixed(this.timer.decimalPlaces);\n\t\t\tthis.avgTimer = 0;\n\t\t\tthis.avgTotal = 0;\n\t\t\tthis.avgCount = 0;\n\t\t}\n\t\tif (this.enabled) {\n\t\t\tlet value = 0;\n\t\t\tconst range = 1.5 * this.watermark;\n\t\t\tfor (let i = 0; i < timings.length; ++i) {\n\t\t\t\tvalue += Math.floor(timings[i] / range * 255);\n\t\t\t\tthis.sample[i] = value;\n\t\t\t}\n\t\t\tthis.sample[3] = this.watermark / range * 255;\n\t\t\tconst data = this.texture.lock();\n\t\t\tdata.set(this.sample, (this.cursor + this.yOffset * this.texture.width) * 4);\n\t\t\tthis.texture.unlock();\n\t\t\tthis.cursor++;\n\t\t\tif (this.cursor === this.texture.width) {\n\t\t\t\tthis.cursor = 0;\n\t\t\t}\n\t\t}\n\t}\n\trender(render2d, x, y, w, h) {\n\t\trender2d.quad(x + w, y, -w, h, this.enabled ? this.cursor : 0, this.enabled ? 0.5 + this.yOffset : this.texture.height - 1, -w, 0, this.texture, 0);\n\t}\n}\n\nclass WordAtlas {\n\tconstructor(device, words) {\n\t\tconst initContext = context => {\n\t\t\tcontext.font = '10px \"Lucida Console\", Monaco, monospace';\n\t\t\tcontext.textAlign = 'left';\n\t\t\tcontext.textBaseline = 'alphabetic';\n\t\t};\n\t\tconst isNumber = word => {\n\t\t\treturn word === '.' || word.length === 1 && word.charCodeAt(0) >= 48 && word.charCodeAt(0) <= 57;\n\t\t};\n\t\tconst canvas = document.createElement('canvas');\n\t\tconst context = canvas.getContext('2d', {\n\t\t\talpha: true\n\t\t});\n\t\tinitContext(context);\n\t\tconst placements = new Map();\n\t\tconst padding = 5;\n\t\tconst width = 512;\n\t\tlet x = padding;\n\t\tlet y = padding;\n\t\twords.forEach(word => {\n\t\t\tconst measurement = context.measureText(word);\n\t\t\tconst l = Math.ceil(-measurement.actualBoundingBoxLeft);\n\t\t\tconst r = Math.ceil(measurement.actualBoundingBoxRight);\n\t\t\tconst a = Math.ceil(measurement.actualBoundingBoxAscent);\n\t\t\tconst d = Math.ceil(measurement.actualBoundingBoxDescent);\n\t\t\tconst w = l + r;\n\t\t\tconst h = a + d;\n\t\t\tif (x + w + padding >= width) {\n\t\t\t\tx = padding;\n\t\t\t\ty += 16;\n\t\t\t}\n\t\t\tplacements.set(word, {\n\t\t\t\tl,\n\t\t\t\tr,\n\t\t\t\ta,\n\t\t\t\td,\n\t\t\t\tw,\n\t\t\t\th,\n\t\t\t\tx: x,\n\t\t\t\ty: y\n\t\t\t});\n\t\t\tx += w + padding;\n\t\t});\n\t\tcanvas.width = 512;\n\t\tcanvas.height = math.nextPowerOfTwo(y + 16 + padding);\n\t\tinitContext(context);\n\t\tcontext.fillStyle = 'rgb(0, 0, 0)';\n\t\tcontext.fillRect(0, 0, canvas.width, canvas.height);\n\t\tplacements.forEach((m, word) => {\n\t\t\tcontext.fillStyle = isNumber(word) ? 'rgb(255, 255, 255)' : 'rgb(170, 170, 170)';\n\t\t\tcontext.fillText(word, m.x - m.l, m.y + m.a);\n\t\t});\n\t\tthis.placements = placements;\n\t\tconst data = context.getImageData(0, 0, canvas.width, canvas.height).data;\n\t\tfor (let i = 0; i < data.length; i += 4) {\n\t\t\tdata[i + 3] = data[i + 0];\n\t\t\tdata[i + 0] = 255;\n\t\t\tdata[i + 1] = 255;\n\t\t\tdata[i + 2] = 255;\n\t\t}\n\t\tthis.texture = new Texture(device, {\n\t\t\tname: 'mini-stats-word-atlas',\n\t\t\twidth: canvas.width,\n\t\t\theight: canvas.height,\n\t\t\tmipmaps: false,\n\t\t\tminFilter: FILTER_NEAREST,\n\t\t\tmagFilter: FILTER_NEAREST,\n\t\t\tlevels: [data]\n\t\t});\n\t}\n\tdestroy() {\n\t\tthis.texture.destroy();\n\t\tthis.texture = null;\n\t}\n\trender(render2d, word, x, y) {\n\t\tconst p = this.placements.get(word);\n\t\tif (p) {\n\t\t\tconst padding = 1;\n\t\t\trender2d.quad(x + p.l - padding, y - p.d + padding, p.w + padding * 2, p.h + padding * 2, p.x - padding, this.texture.height - p.y - p.h - padding, undefined, undefined, this.texture, 1);\n\t\t\treturn p.w;\n\t\t}\n\t\treturn 0;\n\t}\n}\n\nconst vertexShader = `\nattribute vec3 vertex_position;\nattribute vec4 vertex_texCoord0;\nvarying vec4 uv0;\nvarying float wordFlag;\nvoid main(void) {\n\tgl_Position = vec4(vertex_position.xy * 2.0 - 1.0, 0.5, 1.0);\n\tuv0 = vertex_texCoord0;\n\twordFlag = vertex_position.z;\n}`;\nconst fragmentShader$1 = `\nvarying vec4 uv0;\nvarying float wordFlag;\nuniform vec4 clr;\nuniform sampler2D graphTex;\nuniform sampler2D wordsTex;\nvoid main (void) {\n\tvec4 graphSample = texture2D(graphTex, uv0.xy);\n\tvec4 graph;\n\tif (uv0.w < graphSample.r)\n\t\tgraph = vec4(0.7, 0.2, 0.2, 1.0);\n\telse if (uv0.w < graphSample.g)\n\t\tgraph = vec4(0.2, 0.7, 0.2, 1.0);\n\telse if (uv0.w < graphSample.b)\n\t\tgraph = vec4(0.2, 0.2, 0.7, 1.0);\n\telse\n\t\tgraph = vec4(0.0, 0.0, 0.0, 1.0 - 0.25 * sin(uv0.w * 3.14159));\n\tvec4 words = texture2D(wordsTex, vec2(uv0.x, 1.0 - uv0.y));\n\tgl_FragColor = mix(graph, words, wordFlag) * clr;\n}`;\nclass Render2d {\n\tconstructor(device, maxQuads = 512) {\n\t\tconst format = new VertexFormat(device, [{\n\t\t\tsemantic: SEMANTIC_POSITION,\n\t\t\tcomponents: 3,\n\t\t\ttype: TYPE_FLOAT32\n\t\t}, {\n\t\t\tsemantic: SEMANTIC_TEXCOORD0,\n\t\t\tcomponents: 4,\n\t\t\ttype: TYPE_FLOAT32\n\t\t}]);\n\t\tconst indices = new Uint16Array(maxQuads * 6);\n\t\tfor (let i = 0; i < maxQuads; ++i) {\n\t\t\tindices[i * 6 + 0] = i * 4;\n\t\t\tindices[i * 6 + 1] = i * 4 + 1;\n\t\t\tindices[i * 6 + 2] = i * 4 + 2;\n\t\t\tindices[i * 6 + 3] = i * 4;\n\t\t\tindices[i * 6 + 4] = i * 4 + 2;\n\t\t\tindices[i * 6 + 5] = i * 4 + 3;\n\t\t}\n\t\tconst shader = shaderChunks.createShaderFromCode(device, vertexShader, fragmentShader$1, 'mini-stats');\n\t\tthis.device = device;\n\t\tthis.buffer = new VertexBuffer(device, format, maxQuads * 4, {\n\t\t\tusage: BUFFER_STREAM\n\t\t});\n\t\tthis.data = new Float32Array(this.buffer.numBytes / 4);\n\t\tthis.indexBuffer = new IndexBuffer(device, INDEXFORMAT_UINT16, maxQuads * 6, BUFFER_STATIC, indices);\n\t\tthis.prim = {\n\t\t\ttype: PRIMITIVE_TRIANGLES,\n\t\t\tindexed: true,\n\t\t\tbase: 0,\n\t\t\tcount: 0\n\t\t};\n\t\tthis.quads = 0;\n\t\tthis.mesh = new Mesh(device);\n\t\tthis.mesh.vertexBuffer = this.buffer;\n\t\tthis.mesh.indexBuffer[0] = this.indexBuffer;\n\t\tthis.mesh.primitive = [this.prim];\n\t\tconst material = new Material();\n\t\tthis.material = material;\n\t\tmaterial.cull = CULLFACE_NONE;\n\t\tmaterial.shader = shader;\n\t\tmaterial.depthState = DepthState.NODEPTH;\n\t\tmaterial.blendState = new BlendState(true, BLENDEQUATION_ADD, BLENDMODE_SRC_ALPHA, BLENDMODE_ONE_MINUS_SRC_ALPHA, BLENDEQUATION_ADD, BLENDMODE_ONE, BLENDMODE_ONE);\n\t\tmaterial.update();\n\t\tthis.meshInstance = new MeshInstance(this.mesh, material, new GraphNode('MiniStatsMesh'));\n\t\tthis.uniforms = {\n\t\t\tclr: new Float32Array(4)\n\t\t};\n\t\tthis.targetSize = {\n\t\t\twidth: device.width,\n\t\t\theight: device.height\n\t\t};\n\t}\n\tquad(x, y, w, h, u, v, uw, uh, texture, wordFlag = 0) {\n\t\tconst rw = this.targetSize.width;\n\t\tconst rh = this.targetSize.height;\n\t\tconst x0 = x / rw;\n\t\tconst y0 = y / rh;\n\t\tconst x1 = (x + w) / rw;\n\t\tconst y1 = (y + h) / rh;\n\t\tconst tw = texture.width;\n\t\tconst th = texture.height;\n\t\tconst u0 = u / tw;\n\t\tconst v0 = v / th;\n\t\tconst u1 = (u + (uw != null ? uw : w)) / tw;\n\t\tconst v1 = (v + (uh != null ? uh : h)) / th;\n\t\tthis.data.set([x0, y0, wordFlag, u0, v0, 0, 0, x1, y0, wordFlag, u1, v0, 1, 0, x1, y1, wordFlag, u1, v1, 1, 1, x0, y1, wordFlag, u0, v1, 0, 1], 4 * 7 * this.quads);\n\t\tthis.quads++;\n\t\tthis.prim.count += 6;\n\t}\n\tstartFrame() {\n\t\tthis.quads = 0;\n\t\tthis.prim.count = 0;\n\t\tthis.targetSize.width = this.device.canvas.scrollWidth;\n\t\tthis.targetSize.height = this.device.canvas.scrollHeight;\n\t}\n\trender(app, layer, graphTexture, wordsTexture, clr, height) {\n\t\tthis.buffer.setData(this.data.buffer);\n\t\tthis.uniforms.clr.set(clr, 0);\n\t\tthis.material.setParameter('clr', this.uniforms.clr);\n\t\tthis.material.setParameter('graphTex', graphTexture);\n\t\tthis.material.setParameter('wordsTex', wordsTexture);\n\t\tapp.drawMeshInstance(this.meshInstance, layer);\n\t}\n}\n\nclass MiniStats {\n\tconstructor(app, options) {\n\t\tconst device = app.graphicsDevice;\n\t\toptions = options || MiniStats.getDefaultOptions();\n\t\tthis.initGraphs(app, device, options);\n\t\tconst words = new Set(['', 'ms', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.'].concat(this.graphs.map(graph => graph.name)).concat(options.stats ? options.stats.map(stat => stat.unitsName) : []).filter(item => !!item));\n\t\tthis.wordAtlas = new WordAtlas(device, words);\n\t\tthis.sizes = options.sizes;\n\t\tthis._activeSizeIndex = options.startSizeIndex;\n\t\tconst div = document.createElement('div');\n\t\tdiv.setAttribute('id', 'mini-stats');\n\t\tdiv.style.cssText = 'position:fixed;bottom:0;left:0;background:transparent;';\n\t\tdocument.body.appendChild(div);\n\t\tdiv.addEventListener('mouseenter', event => {\n\t\t\tthis.opacity = 1.0;\n\t\t});\n\t\tdiv.addEventListener('mouseleave', event => {\n\t\t\tthis.opacity = 0.7;\n\t\t});\n\t\tdiv.addEventListener('click', event => {\n\t\t\tevent.preventDefault();\n\t\t\tif (this._enabled) {\n\t\t\t\tthis.activeSizeIndex = (this.activeSizeIndex + 1) % this.sizes.length;\n\t\t\t\tthis.resize(this.sizes[this.activeSizeIndex].width, this.sizes[this.activeSizeIndex].height, this.sizes[this.activeSizeIndex].graphs);\n\t\t\t}\n\t\t});\n\t\tdevice.on('resizecanvas', this.updateDiv, this);\n\t\tdevice.on('losecontext', this.loseContext, this);\n\t\tapp.on('postrender', this.postRender, this);\n\t\tthis.app = app;\n\t\tthis.drawLayer = app.scene.layers.getLayerById(LAYERID_UI);\n\t\tthis.device = device;\n\t\tthis.render2d = new Render2d(device);\n\t\tthis.div = div;\n\t\tthis.width = 0;\n\t\tthis.height = 0;\n\t\tthis.gspacing = 2;\n\t\tthis.clr = [1, 1, 1, 0.5];\n\t\tthis._enabled = true;\n\t\tthis.activeSizeIndex = this._activeSizeIndex;\n\t}\n\tdestroy() {\n\t\tthis.device.off('resizecanvas', this.updateDiv, this);\n\t\tthis.device.off('losecontext', this.loseContext, this);\n\t\tthis.app.off('postrender', this.postRender, this);\n\t\tthis.graphs.forEach(graph => graph.destroy());\n\t\tthis.wordAtlas.destroy();\n\t\tthis.texture.destroy();\n\t}\n\tstatic getDefaultOptions() {\n\t\treturn {\n\t\t\tsizes: [{\n\t\t\t\twidth: 100,\n\t\t\t\theight: 16,\n\t\t\t\tspacing: 0,\n\t\t\t\tgraphs: false\n\t\t\t}, {\n\t\t\t\twidth: 128,\n\t\t\t\theight: 32,\n\t\t\t\tspacing: 2,\n\t\t\t\tgraphs: true\n\t\t\t}, {\n\t\t\t\twidth: 256,\n\t\t\t\theight: 64,\n\t\t\t\tspacing: 2,\n\t\t\t\tgraphs: true\n\t\t\t}],\n\t\t\tstartSizeIndex: 0,\n\t\t\ttextRefreshRate: 500,\n\t\t\tcpu: {\n\t\t\t\tenabled: true,\n\t\t\t\twatermark: 33\n\t\t\t},\n\t\t\tgpu: {\n\t\t\t\tenabled: true,\n\t\t\t\twatermark: 33\n\t\t\t},\n\t\t\tstats: [{\n\t\t\t\tname: 'Frame',\n\t\t\t\tstats: ['frame.ms'],\n\t\t\t\tdecimalPlaces: 1,\n\t\t\t\tunitsName: 'ms',\n\t\t\t\twatermark: 33\n\t\t\t}, {\n\t\t\t\tname: 'DrawCalls',\n\t\t\t\tstats: ['drawCalls.total'],\n\t\t\t\twatermark: 1000\n\t\t\t}]\n\t\t};\n\t}\n\tset activeSizeIndex(value) {\n\t\tthis._activeSizeIndex = value;\n\t\tthis.gspacing = this.sizes[value].spacing;\n\t\tthis.resize(this.sizes[value].width, this.sizes[value].height, this.sizes[value].graphs);\n\t}\n\tget activeSizeIndex() {\n\t\treturn this._activeSizeIndex;\n\t}\n\tset opacity(value) {\n\t\tthis.clr[3] = value;\n\t}\n\tget opacity() {\n\t\treturn this.clr[3];\n\t}\n\tget overallHeight() {\n\t\tconst graphs = this.graphs;\n\t\tconst spacing = this.gspacing;\n\t\treturn this.height * graphs.length + spacing * (graphs.length - 1);\n\t}\n\tset enabled(value) {\n\t\tif (value !== this._enabled) {\n\t\t\tthis._enabled = value;\n\t\t\tfor (let i = 0; i < this.graphs.length; ++i) {\n\t\t\t\tthis.graphs[i].enabled = value;\n\t\t\t\tthis.graphs[i].timer.enabled = value;\n\t\t\t}\n\t\t}\n\t}\n\tget enabled() {\n\t\treturn this._enabled;\n\t}\n\tinitGraphs(app, device, options) {\n\t\tthis.graphs = [];\n\t\tif (options.cpu.enabled) {\n\t\t\tconst timer = new CpuTimer(app);\n\t\t\tconst graph = new Graph('CPU', app, options.cpu.watermark, options.textRefreshRate, timer);\n\t\t\tthis.graphs.push(graph);\n\t\t}\n\t\tif (options.gpu.enabled) {\n\t\t\tconst timer = new GpuTimer(device);\n\t\t\tconst graph = new Graph('GPU', app, options.gpu.watermark, options.textRefreshRate, timer);\n\t\t\tthis.graphs.push(graph);\n\t\t}\n\t\tif (options.stats) {\n\t\t\toptions.stats.forEach(entry => {\n\t\t\t\tconst timer = new StatsTimer(app, entry.stats, entry.decimalPlaces, entry.unitsName, entry.multiplier);\n\t\t\t\tconst graph = new Graph(entry.name, app, entry.watermark, options.textRefreshRate, timer);\n\t\t\t\tthis.graphs.push(graph);\n\t\t\t});\n\t\t}\n\t\tconst maxWidth = options.sizes.reduce((max, v) => {\n\t\t\treturn v.width > max ? v.width : max;\n\t\t}, 0);\n\t\tthis.texture = new Texture(device, {\n\t\t\tname: 'mini-stats-graph-texture',\n\t\t\twidth: math.nextPowerOfTwo(maxWidth),\n\t\t\theight: math.nextPowerOfTwo(this.graphs.length),\n\t\t\tmipmaps: false,\n\t\t\tminFilter: FILTER_NEAREST,\n\t\t\tmagFilter: FILTER_NEAREST,\n\t\t\taddressU: ADDRESS_REPEAT,\n\t\t\taddressV: ADDRESS_REPEAT\n\t\t});\n\t\tthis.graphs.forEach((graph, i) => {\n\t\t\tgraph.texture = this.texture;\n\t\t\tgraph.yOffset = i;\n\t\t});\n\t}\n\trender() {\n\t\tconst graphs = this.graphs;\n\t\tconst wordAtlas = this.wordAtlas;\n\t\tconst render2d = this.render2d;\n\t\tconst width = this.width;\n\t\tconst height = this.height;\n\t\tconst gspacing = this.gspacing;\n\t\trender2d.startFrame();\n\t\tfor (let i = 0; i < graphs.length; ++i) {\n\t\t\tconst graph = graphs[i];\n\t\t\tlet y = i * (height + gspacing);\n\t\t\tgraph.render(render2d, 0, y, width, height);\n\t\t\tlet x = 1;\n\t\t\ty += height - 13;\n\t\t\tx += wordAtlas.render(render2d, graph.name, x, y) + 10;\n\t\t\tconst timingText = graph.timingText;\n\t\t\tfor (let j = 0; j < timingText.length; ++j) {\n\t\t\t\tx += wordAtlas.render(render2d, timingText[j], x, y);\n\t\t\t}\n\t\t\tif (graph.timer.unitsName) {\n\t\t\t\tx += 3;\n\t\t\t\twordAtlas.render(render2d, graph.timer.unitsName, x, y);\n\t\t\t}\n\t\t}\n\t\trender2d.render(this.app, this.drawLayer, this.texture, this.wordAtlas.texture, this.clr, height);\n\t}\n\tresize(width, height, showGraphs) {\n\t\tconst graphs = this.graphs;\n\t\tfor (let i = 0; i < graphs.length; ++i) {\n\t\t\tgraphs[i].enabled = showGraphs;\n\t\t}\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t\tthis.updateDiv();\n\t}\n\tupdateDiv() {\n\t\tconst rect = this.device.canvas.getBoundingClientRect();\n\t\tthis.div.style.left = `${rect.left}px`;\n\t\tthis.div.style.bottom = `${window.innerHeight - rect.bottom}px`;\n\t\tthis.div.style.width = `${this.width}px`;\n\t\tthis.div.style.height = `${this.overallHeight}px`;\n\t}\n\tloseContext() {\n\t\tthis.graphs.forEach(graph => graph.loseContext());\n\t}\n\tpostRender() {\n\t\tif (this._enabled) {\n\t\t\tthis.render();\n\t\t}\n\t}\n}\n\nconst textureBlitVertexShader = `\n\tattribute vec2 vertex_position;\n\tvarying vec2 uv0;\n\tvoid main(void) {\n\t\tgl_Position = vec4(vertex_position, 0.5, 1.0);\n\t\tuv0 = vertex_position.xy * 0.5 + 0.5;\n\t}`;\nconst textureBlitFragmentShader = `\n\tvarying vec2 uv0;\n\tuniform sampler2D blitTexture;\n\tvoid main(void) {\n\t\tgl_FragColor = texture2D(blitTexture, uv0);\n\t}`;\nclass CoreExporter {\n\tconstructor() {}\n\ttextureToCanvas(texture, options = {}) {\n\t\tconst image = texture.getSource();\n\t\tif (typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement || typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement || typeof OffscreenCanvas !== 'undefined' && image instanceof OffscreenCanvas || typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap) {\n\t\t\tconst {\n\t\t\t\twidth: _width,\n\t\t\t\theight: _height\n\t\t\t} = this.calcTextureSize(image.width, image.height, options.maxTextureSize);\n\t\t\tconst _canvas = document.createElement('canvas');\n\t\t\t_canvas.width = _width;\n\t\t\t_canvas.height = _height;\n\t\t\tconst context = _canvas.getContext('2d');\n\t\t\tif (context === null) {\n\t\t\t\treturn Promise.resolve(undefined);\n\t\t\t}\n\t\t\tcontext.drawImage(image, 0, 0, _canvas.width, _canvas.height);\n\t\t\tif (options.color) {\n\t\t\t\tconst {\n\t\t\t\t\tr,\n\t\t\t\t\tg,\n\t\t\t\t\tb\n\t\t\t\t} = options.color;\n\t\t\t\tconst imagedata = context.getImageData(0, 0, _width, _height);\n\t\t\t\tconst data = imagedata.data;\n\t\t\t\tfor (let i = 0; i < data.length; i += 4) {\n\t\t\t\t\tdata[i + 0] = data[i + 0] * r;\n\t\t\t\t\tdata[i + 1] = data[i + 1] * g;\n\t\t\t\t\tdata[i + 2] = data[i + 2] * b;\n\t\t\t\t}\n\t\t\t\tcontext.putImageData(imagedata, 0, 0);\n\t\t\t}\n\t\t\treturn Promise.resolve(_canvas);\n\t\t}\n\t\tconst device = texture.device;\n\t\tconst {\n\t\t\twidth,\n\t\t\theight\n\t\t} = this.calcTextureSize(texture.width, texture.height, options.maxTextureSize);\n\t\tconst dstTexture = new Texture(device, {\n\t\t\tname: 'ExtractedTexture',\n\t\t\twidth,\n\t\t\theight,\n\t\t\tformat: texture.format,\n\t\t\tcubemap: false,\n\t\t\tmipmaps: false,\n\t\t\tminFilter: FILTER_LINEAR,\n\t\t\tmagFilter: FILTER_LINEAR,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE\n\t\t});\n\t\tconst renderTarget = new RenderTarget({\n\t\t\tcolorBuffer: dstTexture,\n\t\t\tdepth: false\n\t\t});\n\t\tconst shader = createShaderFromCode(device, textureBlitVertexShader, textureBlitFragmentShader, 'ShaderCoreExporterBlit');\n\t\tdevice.scope.resolve('blitTexture').setValue(texture);\n\t\tdevice.setBlendState(BlendState.NOBLEND);\n\t\tdrawQuadWithShader(device, renderTarget, shader);\n\t\tconst pixels = new Uint8ClampedArray(width * height * 4);\n\t\tdevice.readPixels(0, 0, width, height, pixels);\n\t\tdstTexture.destroy();\n\t\trenderTarget.destroy();\n\t\tconst newImage = new ImageData(pixels, width, height);\n\t\tconst canvas = document.createElement('canvas');\n\t\tcanvas.width = width;\n\t\tcanvas.height = height;\n\t\tconst newContext = canvas.getContext('2d');\n\t\tif (!newContext) {\n\t\t\treturn Promise.resolve(undefined);\n\t\t}\n\t\tnewContext.putImageData(newImage, 0, 0);\n\t\treturn Promise.resolve(canvas);\n\t}\n\tcalcTextureSize(width, height, maxTextureSize) {\n\t\tif (maxTextureSize) {\n\t\t\tconst scale = Math.min(maxTextureSize / Math.max(width, height), 1);\n\t\t\twidth = Math.round(width * scale);\n\t\t\theight = Math.round(height * scale);\n\t\t}\n\t\treturn {\n\t\t\twidth,\n\t\t\theight\n\t\t};\n\t}\n}\n\nvar u8 = Uint8Array,\n\tu16 = Uint16Array,\n\ti32 = Int32Array;\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 0, 0]);\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 0, 0]);\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\nvar freb = function freb(eb, start) {\n\tvar b = new u16(31);\n\tfor (var i = 0; i < 31; ++i) {\n\t\tb[i] = start += 1 << eb[i - 1];\n\t}\n\tvar r = new i32(b[30]);\n\tfor (var i = 1; i < 30; ++i) {\n\t\tfor (var j = b[i]; j < b[i + 1]; ++j) {\n\t\t\tr[j] = j - b[i] << 5 | i;\n\t\t}\n\t}\n\treturn {\n\t\tb: b,\n\t\tr: r\n\t};\n};\nvar _a = freb(fleb, 2),\n\tfl = _a.b,\n\trevfl = _a.r;\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0),\n\trevfd = _b.r;\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n\tvar x = (i & 0xAAAA) >> 1 | (i & 0x5555) << 1;\n\tx = (x & 0xCCCC) >> 2 | (x & 0x3333) << 2;\n\tx = (x & 0xF0F0) >> 4 | (x & 0x0F0F) << 4;\n\trev[i] = ((x & 0xFF00) >> 8 | (x & 0x00FF) << 8) >> 1;\n}\nvar hMap = function hMap(cd, mb, r) {\n\tvar s = cd.length;\n\tvar i = 0;\n\tvar l = new u16(mb);\n\tfor (; i < s; ++i) {\n\t\tif (cd[i]) ++l[cd[i] - 1];\n\t}\n\tvar le = new u16(mb);\n\tfor (i = 1; i < mb; ++i) {\n\t\tle[i] = le[i - 1] + l[i - 1] << 1;\n\t}\n\tvar co;\n\tif (r) {\n\t\tco = new u16(1 << mb);\n\t\tvar rvb = 15 - mb;\n\t\tfor (i = 0; i < s; ++i) {\n\t\t\tif (cd[i]) {\n\t\t\t\tvar sv = i << 4 | cd[i];\n\t\t\t\tvar r_1 = mb - cd[i];\n\t\t\t\tvar v = le[cd[i] - 1]++ << r_1;\n\t\t\t\tfor (var m = v | (1 << r_1) - 1; v <= m; ++v) {\n\t\t\t\t\tco[rev[v] >> rvb] = sv;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tco = new u16(s);\n\t\tfor (i = 0; i < s; ++i) {\n\t\t\tif (cd[i]) {\n\t\t\t\tco[i] = rev[le[cd[i] - 1]++] >> 15 - cd[i];\n\t\t\t}\n\t\t}\n\t}\n\treturn co;\n};\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i) flt[i] = 8;\nfor (var i = 144; i < 256; ++i) flt[i] = 9;\nfor (var i = 256; i < 280; ++i) flt[i] = 7;\nfor (var i = 280; i < 288; ++i) flt[i] = 8;\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i) fdt[i] = 5;\nvar flm = hMap(flt, 9, 0);\n\thMap(flt, 9, 1);\nvar fdm = hMap(fdt, 5, 0);\n\thMap(fdt, 5, 1);\nvar shft = function shft(p) {\n\treturn (p + 7) / 8 | 0;\n};\nvar slc = function slc(v, s, e) {\n\tif (e == null || e > v.length) e = v.length;\n\treturn new u8(v.subarray(s, e));\n};\nvar ec = ['unexpected EOF', 'invalid block type', 'invalid length/literal', 'invalid distance', 'stream finished', 'no stream handler',, 'no callback', 'invalid UTF-8 data', 'extra field too long', 'date not in range 1980-2099', 'filename too long', 'stream finishing', 'invalid zip data'];\nvar err = function err(ind, msg, nt) {\n\tvar e = new Error(msg || ec[ind]);\n\te.code = ind;\n\tif (Error.captureStackTrace) Error.captureStackTrace(e, err);\n\tif (!nt) throw e;\n\treturn e;\n};\nvar wbits = function wbits(d, p, v) {\n\tv <<= p & 7;\n\tvar o = p / 8 | 0;\n\td[o] |= v;\n\td[o + 1] |= v >> 8;\n};\nvar wbits16 = function wbits16(d, p, v) {\n\tv <<= p & 7;\n\tvar o = p / 8 | 0;\n\td[o] |= v;\n\td[o + 1] |= v >> 8;\n\td[o + 2] |= v >> 16;\n};\nvar hTree = function hTree(d, mb) {\n\tvar t = [];\n\tfor (var i = 0; i < d.length; ++i) {\n\t\tif (d[i]) t.push({\n\t\t\ts: i,\n\t\t\tf: d[i]\n\t\t});\n\t}\n\tvar s = t.length;\n\tvar t2 = t.slice();\n\tif (!s) return {\n\t\tt: et,\n\t\tl: 0\n\t};\n\tif (s == 1) {\n\t\tvar v = new u8(t[0].s + 1);\n\t\tv[t[0].s] = 1;\n\t\treturn {\n\t\t\tt: v,\n\t\t\tl: 1\n\t\t};\n\t}\n\tt.sort(function (a, b) {\n\t\treturn a.f - b.f;\n\t});\n\tt.push({\n\t\ts: -1,\n\t\tf: 25001\n\t});\n\tvar l = t[0],\n\t\tr = t[1],\n\t\ti0 = 0,\n\t\ti1 = 1,\n\t\ti2 = 2;\n\tt[0] = {\n\t\ts: -1,\n\t\tf: l.f + r.f,\n\t\tl: l,\n\t\tr: r\n\t};\n\twhile (i1 != s - 1) {\n\t\tl = t[t[i0].f < t[i2].f ? i0++ : i2++];\n\t\tr = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n\t\tt[i1++] = {\n\t\t\ts: -1,\n\t\t\tf: l.f + r.f,\n\t\t\tl: l,\n\t\t\tr: r\n\t\t};\n\t}\n\tvar maxSym = t2[0].s;\n\tfor (var i = 1; i < s; ++i) {\n\t\tif (t2[i].s > maxSym) maxSym = t2[i].s;\n\t}\n\tvar tr = new u16(maxSym + 1);\n\tvar mbt = ln(t[i1 - 1], tr, 0);\n\tif (mbt > mb) {\n\t\tvar i = 0,\n\t\t\tdt = 0;\n\t\tvar lft = mbt - mb,\n\t\t\tcst = 1 << lft;\n\t\tt2.sort(function (a, b) {\n\t\t\treturn tr[b.s] - tr[a.s] || a.f - b.f;\n\t\t});\n\t\tfor (; i < s; ++i) {\n\t\t\tvar i2_1 = t2[i].s;\n\t\t\tif (tr[i2_1] > mb) {\n\t\t\t\tdt += cst - (1 << mbt - tr[i2_1]);\n\t\t\t\ttr[i2_1] = mb;\n\t\t\t} else break;\n\t\t}\n\t\tdt >>= lft;\n\t\twhile (dt > 0) {\n\t\t\tvar i2_2 = t2[i].s;\n\t\t\tif (tr[i2_2] < mb) dt -= 1 << mb - tr[i2_2]++ - 1;else ++i;\n\t\t}\n\t\tfor (; i >= 0 && dt; --i) {\n\t\t\tvar i2_3 = t2[i].s;\n\t\t\tif (tr[i2_3] == mb) {\n\t\t\t\t--tr[i2_3];\n\t\t\t\t++dt;\n\t\t\t}\n\t\t}\n\t\tmbt = mb;\n\t}\n\treturn {\n\t\tt: new u8(tr),\n\t\tl: mbt\n\t};\n};\nvar ln = function ln(n, l, d) {\n\treturn n.s == -1 ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1)) : l[n.s] = d;\n};\nvar lc = function lc(c) {\n\tvar s = c.length;\n\twhile (s && !c[--s]);\n\tvar cl = new u16(++s);\n\tvar cli = 0,\n\t\tcln = c[0],\n\t\tcls = 1;\n\tvar w = function w(v) {\n\t\tcl[cli++] = v;\n\t};\n\tfor (var i = 1; i <= s; ++i) {\n\t\tif (c[i] == cln && i != s) ++cls;else {\n\t\t\tif (!cln && cls > 2) {\n\t\t\t\tfor (; cls > 138; cls -= 138) w(32754);\n\t\t\t\tif (cls > 2) {\n\t\t\t\t\tw(cls > 10 ? cls - 11 << 5 | 28690 : cls - 3 << 5 | 12305);\n\t\t\t\t\tcls = 0;\n\t\t\t\t}\n\t\t\t} else if (cls > 3) {\n\t\t\t\tw(cln), --cls;\n\t\t\t\tfor (; cls > 6; cls -= 6) w(8304);\n\t\t\t\tif (cls > 2) w(cls - 3 << 5 | 8208), cls = 0;\n\t\t\t}\n\t\t\twhile (cls--) w(cln);\n\t\t\tcls = 1;\n\t\t\tcln = c[i];\n\t\t}\n\t}\n\treturn {\n\t\tc: cl.subarray(0, cli),\n\t\tn: s\n\t};\n};\nvar clen = function clen(cf, cl) {\n\tvar l = 0;\n\tfor (var i = 0; i < cl.length; ++i) l += cf[i] * cl[i];\n\treturn l;\n};\nvar wfblk = function wfblk(out, pos, dat) {\n\tvar s = dat.length;\n\tvar o = shft(pos + 2);\n\tout[o] = s & 255;\n\tout[o + 1] = s >> 8;\n\tout[o + 2] = out[o] ^ 255;\n\tout[o + 3] = out[o + 1] ^ 255;\n\tfor (var i = 0; i < s; ++i) out[o + i + 4] = dat[i];\n\treturn (o + 4 + s) * 8;\n};\nvar wblk = function wblk(dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n\twbits(out, p++, final);\n\t++lf[256];\n\tvar _a = hTree(lf, 15),\n\t\tdlt = _a.t,\n\t\tmlb = _a.l;\n\tvar _b = hTree(df, 15),\n\t\tddt = _b.t,\n\t\tmdb = _b.l;\n\tvar _c = lc(dlt),\n\t\tlclt = _c.c,\n\t\tnlc = _c.n;\n\tvar _d = lc(ddt),\n\t\tlcdt = _d.c,\n\t\tndc = _d.n;\n\tvar lcfreq = new u16(19);\n\tfor (var i = 0; i < lclt.length; ++i) ++lcfreq[lclt[i] & 31];\n\tfor (var i = 0; i < lcdt.length; ++i) ++lcfreq[lcdt[i] & 31];\n\tvar _e = hTree(lcfreq, 7),\n\t\tlct = _e.t,\n\t\tmlcb = _e.l;\n\tvar nlcc = 19;\n\tfor (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc);\n\tvar flen = bl + 5 << 3;\n\tvar ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n\tvar dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + 2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18];\n\tif (bs >= 0 && flen <= ftlen && flen <= dtlen) return wfblk(out, p, dat.subarray(bs, bs + bl));\n\tvar lm, ll, dm, dl;\n\twbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n\tif (dtlen < ftlen) {\n\t\tlm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n\t\tvar llm = hMap(lct, mlcb, 0);\n\t\twbits(out, p, nlc - 257);\n\t\twbits(out, p + 5, ndc - 1);\n\t\twbits(out, p + 10, nlcc - 4);\n\t\tp += 14;\n\t\tfor (var i = 0; i < nlcc; ++i) wbits(out, p + 3 * i, lct[clim[i]]);\n\t\tp += 3 * nlcc;\n\t\tvar lcts = [lclt, lcdt];\n\t\tfor (var it = 0; it < 2; ++it) {\n\t\t\tvar clct = lcts[it];\n\t\t\tfor (var i = 0; i < clct.length; ++i) {\n\t\t\t\tvar len = clct[i] & 31;\n\t\t\t\twbits(out, p, llm[len]), p += lct[len];\n\t\t\t\tif (len > 15) wbits(out, p, clct[i] >> 5 & 127), p += clct[i] >> 12;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tlm = flm, ll = flt, dm = fdm, dl = fdt;\n\t}\n\tfor (var i = 0; i < li; ++i) {\n\t\tvar sym = syms[i];\n\t\tif (sym > 255) {\n\t\t\tvar len = sym >> 18 & 31;\n\t\t\twbits16(out, p, lm[len + 257]), p += ll[len + 257];\n\t\t\tif (len > 7) wbits(out, p, sym >> 23 & 31), p += fleb[len];\n\t\t\tvar dst = sym & 31;\n\t\t\twbits16(out, p, dm[dst]), p += dl[dst];\n\t\t\tif (dst > 3) wbits16(out, p, sym >> 5 & 8191), p += fdeb[dst];\n\t\t} else {\n\t\t\twbits16(out, p, lm[sym]), p += ll[sym];\n\t\t}\n\t}\n\twbits16(out, p, lm[256]);\n\treturn p + ll[256];\n};\nvar deo = new i32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\nvar et = new u8(0);\nvar dflt = function dflt(dat, lvl, plvl, pre, post, st) {\n\tvar s = st.z || dat.length;\n\tvar o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);\n\tvar w = o.subarray(pre, o.length - post);\n\tvar lst = st.l;\n\tvar pos = (st.r || 0) & 7;\n\tif (lvl) {\n\t\tif (pos) w[0] = st.r >> 3;\n\t\tvar opt = deo[lvl - 1];\n\t\tvar n = opt >> 13,\n\t\t\tc = opt & 8191;\n\t\tvar msk_1 = (1 << plvl) - 1;\n\t\tvar prev = st.p || new u16(32768),\n\t\t\thead = st.h || new u16(msk_1 + 1);\n\t\tvar bs1_1 = Math.ceil(plvl / 3),\n\t\t\tbs2_1 = 2 * bs1_1;\n\t\tvar hsh = function hsh(i) {\n\t\t\treturn (dat[i] ^ dat[i + 1] << bs1_1 ^ dat[i + 2] << bs2_1) & msk_1;\n\t\t};\n\t\tvar syms = new i32(25000);\n\t\tvar lf = new u16(288),\n\t\t\tdf = new u16(32);\n\t\tvar lc_1 = 0,\n\t\t\teb = 0,\n\t\t\ti = st.i || 0,\n\t\t\tli = 0,\n\t\t\twi = st.w || 0,\n\t\t\tbs = 0;\n\t\tfor (; i + 2 < s; ++i) {\n\t\t\tvar hv = hsh(i);\n\t\t\tvar imod = i & 32767,\n\t\t\t\tpimod = head[hv];\n\t\t\tprev[imod] = pimod;\n\t\t\thead[hv] = imod;\n\t\t\tif (wi <= i) {\n\t\t\t\tvar rem = s - i;\n\t\t\t\tif ((lc_1 > 7000 || li > 24576) && (rem > 423 || !lst)) {\n\t\t\t\t\tpos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n\t\t\t\t\tli = lc_1 = eb = 0, bs = i;\n\t\t\t\t\tfor (var j = 0; j < 286; ++j) lf[j] = 0;\n\t\t\t\t\tfor (var j = 0; j < 30; ++j) df[j] = 0;\n\t\t\t\t}\n\t\t\t\tvar l = 2,\n\t\t\t\t\td = 0,\n\t\t\t\t\tch_1 = c,\n\t\t\t\t\tdif = imod - pimod & 32767;\n\t\t\t\tif (rem > 2 && hv == hsh(i - dif)) {\n\t\t\t\t\tvar maxn = Math.min(n, rem) - 1;\n\t\t\t\t\tvar maxd = Math.min(32767, i);\n\t\t\t\t\tvar ml = Math.min(258, rem);\n\t\t\t\t\twhile (dif <= maxd && --ch_1 && imod != pimod) {\n\t\t\t\t\t\tif (dat[i + l] == dat[i + l - dif]) {\n\t\t\t\t\t\t\tvar nl = 0;\n\t\t\t\t\t\t\tfor (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl);\n\t\t\t\t\t\t\tif (nl > l) {\n\t\t\t\t\t\t\t\tl = nl, d = dif;\n\t\t\t\t\t\t\t\tif (nl > maxn) break;\n\t\t\t\t\t\t\t\tvar mmd = Math.min(dif, nl - 2);\n\t\t\t\t\t\t\t\tvar md = 0;\n\t\t\t\t\t\t\t\tfor (var j = 0; j < mmd; ++j) {\n\t\t\t\t\t\t\t\t\tvar ti = i - dif + j & 32767;\n\t\t\t\t\t\t\t\t\tvar pti = prev[ti];\n\t\t\t\t\t\t\t\t\tvar cd = ti - pti & 32767;\n\t\t\t\t\t\t\t\t\tif (cd > md) md = cd, pimod = ti;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\timod = pimod, pimod = prev[imod];\n\t\t\t\t\t\tdif += imod - pimod & 32767;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (d) {\n\t\t\t\t\tsyms[li++] = 268435456 | revfl[l] << 18 | revfd[d];\n\t\t\t\t\tvar lin = revfl[l] & 31,\n\t\t\t\t\t\tdin = revfd[d] & 31;\n\t\t\t\t\teb += fleb[lin] + fdeb[din];\n\t\t\t\t\t++lf[257 + lin];\n\t\t\t\t\t++df[din];\n\t\t\t\t\twi = i + l;\n\t\t\t\t\t++lc_1;\n\t\t\t\t} else {\n\t\t\t\t\tsyms[li++] = dat[i];\n\t\t\t\t\t++lf[dat[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (i = Math.max(i, wi); i < s; ++i) {\n\t\t\tsyms[li++] = dat[i];\n\t\t\t++lf[dat[i]];\n\t\t}\n\t\tpos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n\t\tif (!lst) {\n\t\t\tst.r = pos & 7 | w[pos / 8 | 0] << 3;\n\t\t\tpos -= 7;\n\t\t\tst.h = head, st.p = prev, st.i = i, st.w = wi;\n\t\t}\n\t} else {\n\t\tfor (var i = st.w || 0; i < s + lst; i += 65535) {\n\t\t\tvar e = i + 65535;\n\t\t\tif (e >= s) {\n\t\t\t\tw[pos / 8 | 0] = lst;\n\t\t\t\te = s;\n\t\t\t}\n\t\t\tpos = wfblk(w, pos + 1, dat.subarray(i, e));\n\t\t}\n\t\tst.i = s;\n\t}\n\treturn slc(o, 0, pre + shft(pos) + post);\n};\nvar crct = function () {\n\tvar t = new Int32Array(256);\n\tfor (var i = 0; i < 256; ++i) {\n\t\tvar c = i,\n\t\t\tk = 9;\n\t\twhile (--k) c = (c & 1 && -306674912) ^ c >>> 1;\n\t\tt[i] = c;\n\t}\n\treturn t;\n}();\nvar crc = function crc() {\n\tvar c = -1;\n\treturn {\n\t\tp: function (d) {\n\t\t\tvar cr = c;\n\t\t\tfor (var i = 0; i < d.length; ++i) cr = crct[cr & 255 ^ d[i]] ^ cr >>> 8;\n\t\t\tc = cr;\n\t\t},\n\t\td: function () {\n\t\t\treturn ~c;\n\t\t}\n\t};\n};\nvar dopt = function dopt(dat, opt, pre, post, st) {\n\tif (!st) {\n\t\tst = {\n\t\t\tl: 1\n\t\t};\n\t\tif (opt.dictionary) {\n\t\t\tvar dict = opt.dictionary.subarray(-32768);\n\t\t\tvar newDat = new u8(dict.length + dat.length);\n\t\t\tnewDat.set(dict);\n\t\t\tnewDat.set(dat, dict.length);\n\t\t\tdat = newDat;\n\t\t\tst.w = dict.length;\n\t\t}\n\t}\n\treturn dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? st.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 20 : 12 + opt.mem, pre, post, st);\n};\nvar mrg = function mrg(a, b) {\n\tvar o = {};\n\tfor (var k in a) o[k] = a[k];\n\tfor (var k in b) o[k] = b[k];\n\treturn o;\n};\nvar wbytes = function wbytes(d, b, v) {\n\tfor (; v; ++b) d[b] = v, v >>>= 8;\n};\nfunction deflateSync(data, opts) {\n\treturn dopt(data, opts || {}, 0, 0);\n}\nvar fltn = function fltn(d, p, t, o) {\n\tfor (var k in d) {\n\t\tvar val = d[k],\n\t\t\tn = p + k,\n\t\t\top = o;\n\t\tif (Array.isArray(val)) op = mrg(o, val[1]), val = val[0];\n\t\tif (val instanceof u8) t[n] = [val, op];else {\n\t\t\tt[n += '/'] = [new u8(0), op];\n\t\t\tfltn(val, n, t, o);\n\t\t}\n\t}\n};\nvar te = typeof TextEncoder != 'undefined' && new TextEncoder();\nvar td = typeof TextDecoder != 'undefined' && new TextDecoder();\nvar tds = 0;\ntry {\n\ttd.decode(et, {\n\t\tstream: true\n\t});\n\ttds = 1;\n} catch (e) {}\nfunction strToU8(str, latin1) {\n\tvar i; \n\tif (te) return te.encode(str);\n\tvar l = str.length;\n\tvar ar = new u8(str.length + (str.length >> 1));\n\tvar ai = 0;\n\tvar w = function w(v) {\n\t\tar[ai++] = v;\n\t};\n\tfor (var i = 0; i < l; ++i) {\n\t\tif (ai + 5 > ar.length) {\n\t\t\tvar n = new u8(ai + 8 + (l - i << 1));\n\t\t\tn.set(ar);\n\t\t\tar = n;\n\t\t}\n\t\tvar c = str.charCodeAt(i);\n\t\tif (c < 128 || latin1) w(c);else if (c < 2048) w(192 | c >> 6), w(128 | c & 63);else if (c > 55295 && c < 57344) c = 65536 + (c & 1023 << 10) | str.charCodeAt(++i) & 1023, w(240 | c >> 18), w(128 | c >> 12 & 63), w(128 | c >> 6 & 63), w(128 | c & 63);else w(224 | c >> 12), w(128 | c >> 6 & 63), w(128 | c & 63);\n\t}\n\treturn slc(ar, 0, ai);\n}\nvar exfl = function exfl(ex) {\n\tvar le = 0;\n\tif (ex) {\n\t\tfor (var k in ex) {\n\t\t\tvar l = ex[k].length;\n\t\t\tif (l > 65535) err(9);\n\t\t\tle += l + 4;\n\t\t}\n\t}\n\treturn le;\n};\nvar wzh = function wzh(d, b, f, fn, u, c, ce, co) {\n\tvar fl = fn.length,\n\t\tex = f.extra,\n\t\tcol = co && co.length;\n\tvar exl = exfl(ex);\n\twbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n\tif (ce != null) d[b++] = 20, d[b++] = f.os;\n\td[b] = 20, b += 2;\n\td[b++] = f.flag << 1 | (c < 0 && 8), d[b++] = u && 8;\n\td[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n\tvar dt = new Date(f.mtime == null ? Date.now() : f.mtime),\n\t\ty = dt.getFullYear() - 1980;\n\tif (y < 0 || y > 119) err(10);\n\twbytes(d, b, y << 25 | dt.getMonth() + 1 << 21 | dt.getDate() << 16 | dt.getHours() << 11 | dt.getMinutes() << 5 | dt.getSeconds() >> 1), b += 4;\n\tif (c != -1) {\n\t\twbytes(d, b, f.crc);\n\t\twbytes(d, b + 4, c < 0 ? -c - 2 : c);\n\t\twbytes(d, b + 8, f.size);\n\t}\n\twbytes(d, b + 12, fl);\n\twbytes(d, b + 14, exl), b += 16;\n\tif (ce != null) {\n\t\twbytes(d, b, col);\n\t\twbytes(d, b + 6, f.attrs);\n\t\twbytes(d, b + 10, ce), b += 14;\n\t}\n\td.set(fn, b);\n\tb += fl;\n\tif (exl) {\n\t\tfor (var k in ex) {\n\t\t\tvar exf = ex[k],\n\t\t\t\tl = exf.length;\n\t\t\twbytes(d, b, +k);\n\t\t\twbytes(d, b + 2, l);\n\t\t\td.set(exf, b + 4), b += 4 + l;\n\t\t}\n\t}\n\tif (col) d.set(co, b), b += col;\n\treturn b;\n};\nvar wzf = function wzf(o, b, c, d, e) {\n\twbytes(o, b, 0x6054B50);\n\twbytes(o, b + 8, c);\n\twbytes(o, b + 10, c);\n\twbytes(o, b + 12, d);\n\twbytes(o, b + 16, e);\n};\nfunction zipSync(data, opts) {\n\tif (!opts) opts = {};\n\tvar r = {};\n\tvar files = [];\n\tfltn(data, '', r, opts);\n\tvar o = 0;\n\tvar tot = 0;\n\tfor (var fn in r) {\n\t\tvar _a = r[fn],\n\t\t\tfile = _a[0],\n\t\t\tp = _a[1];\n\t\tvar compression = p.level == 0 ? 0 : 8;\n\t\tvar f = strToU8(fn),\n\t\t\ts = f.length;\n\t\tvar com = p.comment,\n\t\t\tm = com && strToU8(com),\n\t\t\tms = m && m.length;\n\t\tvar exl = exfl(p.extra);\n\t\tif (s > 65535) err(11);\n\t\tvar d = compression ? deflateSync(file, p) : file,\n\t\t\tl = d.length;\n\t\tvar c = crc();\n\t\tc.p(file);\n\t\tfiles.push(mrg(p, {\n\t\t\tsize: file.length,\n\t\t\tcrc: c.d(),\n\t\t\tc: d,\n\t\t\tf: f,\n\t\t\tm: m,\n\t\t\tu: s != fn.length || m && com.length != ms,\n\t\t\to: o,\n\t\t\tcompression: compression\n\t\t}));\n\t\to += 30 + s + exl + l;\n\t\ttot += 76 + 2 * (s + exl) + (ms || 0) + l;\n\t}\n\tvar out = new u8(tot + 22),\n\t\toe = o,\n\t\tcdl = tot - o;\n\tfor (var i = 0; i < files.length; ++i) {\n\t\tvar f = files[i];\n\t\twzh(out, f.o, f, f.f, f.u, f.c.length);\n\t\tvar badd = 30 + f.f.length + exfl(f.extra);\n\t\tout.set(f.c, f.o + badd);\n\t\twzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n\t}\n\twzf(out, o, files.length, cdl, oe);\n\treturn out;\n}\n\nconst ROOT_FILE_NAME = 'root';\nconst header = `#usda 1.0\n(\n\t\tcustomLayerData = {\n\t\t\t\tstring creator = \"PlayCanvas UsdzExporter\"\n\t\t}\n\t\tmetersPerUnit = 1\n\t\tupAxis = \"Y\"\n)\n`;\nconst materialListTemplate = materials => `\ndef \"Materials\"\n{\n\t\t${materials.join('\\n')}\n}\n`;\nconst meshTemplate = (faceVertexCounts, indices, normals, positions, uv0, uv1) => `\ndef \"Mesh\"\n{\n\t\tdef Mesh \"Mesh\"\n\t\t{\n\t\t\t\tint[] faceVertexCounts = [${faceVertexCounts}]\n\t\t\t\tint[] faceVertexIndices = [${indices}]\n\t\t\t\tnormal3f[] normals = [${normals}] (\n\t\t\t\t\t\tinterpolation = \"vertex\"\n\t\t\t\t)\n\t\t\t\tpoint3f[] points = [${positions}]\n\t\t\t\ttexCoord2f[] primvars:st = [${uv0}] (\n\t\t\t\t\t\tinterpolation = \"vertex\"\n\t\t\t\t)\n\t\t\t\ttexCoord2f[] primvars:st1 = [${uv1}] (\n\t\t\t\t\t\tinterpolation = \"vertex\"\n\t\t\t\t)\n\t\t\t\tuniform token subdivisionScheme = \"none\"\n\t\t}\n}\n`;\nconst meshInstanceTemplate = (nodeName, meshRefPath, worldMatrix, materialRefPath) => `\ndef Xform \"${nodeName}\" (\n\t\tprepend references = ${meshRefPath}\n)\n{\n\t\tmatrix4d xformOp:transform = ${worldMatrix}\n\t\tuniform token[] xformOpOrder = [\"xformOp:transform\"]\n\n\t\trel material:binding = ${materialRefPath}\n}\n`;\nconst materialValueTemplate = (type, name, value) => `                    ${type} inputs:${name} = ${value}`;\nclass UsdzExporter extends CoreExporter {\n\tconstructor(...args) {\n\t\tsuper(...args);\n\t\tthis.meshMap = void 0;\n\t\tthis.materialMap = void 0;\n\t\tthis.materials = void 0;\n\t\tthis.textureMap = void 0;\n\t\tthis.nodeNames = void 0;\n\t\tthis.files = void 0;\n\t}\n\tinit() {\n\t\tthis.meshMap = new Map();\n\t\tthis.textureMap = new Map();\n\t\tthis.materialMap = new Map();\n\t\tthis.materials = [];\n\t\tthis.files = {};\n\t\tthis.nodeNames = new Set();\n\t}\n\tdone() {\n\t\tthis.meshMap = null;\n\t\tthis.textureMap = null;\n\t\tthis.materialMap = null;\n\t\tthis.materials = null;\n\t\tthis.files = null;\n\t\tthis.nodeNames = null;\n\t}\n\tbuild(entity, options = {}) {\n\t\tthis.init();\n\t\tthis.addFile(null, ROOT_FILE_NAME);\n\t\tconst allMeshInstances = [];\n\t\tif (entity) {\n\t\t\tconst renders = entity.findComponents('render');\n\t\t\trenders.forEach(render => {\n\t\t\t\tallMeshInstances.push(...render.meshInstances);\n\t\t\t});\n\t\t}\n\t\tlet rootContent = '';\n\t\tallMeshInstances.forEach(meshInstance => {\n\t\t\trootContent += this.buildMeshInstance(meshInstance);\n\t\t});\n\t\trootContent += materialListTemplate(this.materials);\n\t\tthis.addFile(null, ROOT_FILE_NAME, '', rootContent);\n\t\tconst textureOptions = {\n\t\t\tmaxTextureSize: options.maxTextureSize\n\t\t};\n\t\tconst textureArray = Array.from(this.textureMap.keys());\n\t\tconst promises = [];\n\t\tfor (let i = 0; i < textureArray.length; i++) {\n\t\t\tconst mimeType = 'image/png' ;\n\t\t\tconst texture = textureArray[i];\n\t\t\tconst texturePromise = this.textureToCanvas(texture, textureOptions).then(canvas => {\n\t\t\t\tif (canvas) {\n\t\t\t\t\treturn new Promise(resolve => canvas.toBlob(resolve, mimeType, 1)).then(blob => blob.arrayBuffer());\n\t\t\t\t}\n\t\t\t\tconsole.warn(`Export of texture ${texture.name} is not currently supported.`);\n\t\t\t\treturn new Promise(resolve => resolve(null));\n\t\t\t});\n\t\t\tpromises.push(texturePromise);\n\t\t}\n\t\tconst finalData = Promise.all(promises).then(values => {\n\t\t\tvalues.forEach((textureArrayBuffer, index) => {\n\t\t\t\tconst texture = textureArray[index];\n\t\t\t\tconst ids = this.getTextureFileIds(texture);\n\t\t\t\tthis.files[ids.fileName] = new Uint8Array(textureArrayBuffer);\n\t\t\t});\n\t\t\tthis.alignFiles();\n\t\t\tconst arraybuffer = zipSync(this.files, {\n\t\t\t\tlevel: 0\n\t\t\t});\n\t\t\tthis.done();\n\t\t\treturn arraybuffer;\n\t\t});\n\t\treturn finalData;\n\t}\n\talignFiles() {\n\t\tlet offset = 0;\n\t\tfor (const filename in this.files) {\n\t\t\tconst file = this.files[filename];\n\t\t\tconst headerSize = 34 + filename.length;\n\t\t\toffset += headerSize;\n\t\t\tconst offsetMod64 = offset & 63;\n\t\t\tif (offsetMod64 !== 4) {\n\t\t\t\tconst padLength = 64 - offsetMod64;\n\t\t\t\tconst padding = new Uint8Array(padLength);\n\t\t\t\tthis.files[filename] = [file, {\n\t\t\t\t\textra: {\n\t\t\t\t\t\t12345: padding\n\t\t\t\t\t}\n\t\t\t\t}];\n\t\t\t}\n\t\t\toffset = file.length;\n\t\t}\n\t}\n\tgetFileIds(category, name, ref, extension = 'usda') {\n\t\tconst fileName = `${category ? `${category}/` : ''}${name}.${extension}`;\n\t\tconst refName = `@./${fileName}@</${ref}>`;\n\t\treturn {\n\t\t\tname,\n\t\t\tfileName,\n\t\t\trefName\n\t\t};\n\t}\n\tgetTextureFileIds(texture) {\n\t\treturn this.getFileIds('texture', `Texture_${texture.id}`, 'Texture', 'png');\n\t}\n\taddFile(category, uniqueId, refName = '', content = '') {\n\t\tlet contentU8 = null;\n\t\tif (content) {\n\t\t\tcontent = `${header}\\n${content}`;\n\t\t\tcontentU8 = strToU8(content);\n\t\t}\n\t\tconst ids = this.getFileIds(category, uniqueId, refName);\n\t\tthis.files[ids.fileName] = contentU8;\n\t\treturn ids.refName;\n\t}\n\tgetMaterialRef(material) {\n\t\tlet materialRef = this.materialMap.get(material);\n\t\tif (!materialRef) {\n\t\t\tmaterialRef = this.buildMaterial(material);\n\t\t\tthis.materialMap.set(material, materialRef);\n\t\t}\n\t\treturn materialRef;\n\t}\n\tgetMeshRef(mesh) {\n\t\tlet meshRef = this.meshMap.get(mesh);\n\t\tif (!meshRef) {\n\t\t\tmeshRef = this.buildMesh(mesh);\n\t\t\tthis.meshMap.set(mesh, meshRef);\n\t\t}\n\t\treturn meshRef;\n\t}\n\tbuildArray2(array) {\n\t\tconst components = [];\n\t\tconst count = array.length;\n\t\tfor (let i = 0; i < count; i += 2) {\n\t\t\tcomponents.push(`(${array[i]}, ${1 - array[i + 1]})`);\n\t\t}\n\t\treturn components.join(', ');\n\t}\n\tbuildArray3(array) {\n\t\tconst components = [];\n\t\tconst count = array.length;\n\t\tfor (let i = 0; i < count; i += 3) {\n\t\t\tcomponents.push(`(${array[i]}, ${array[i + 1]}, ${array[i + 2]})`);\n\t\t}\n\t\treturn components.join(', ');\n\t}\n\tbuildMat4(mat) {\n\t\tconst data = mat.data;\n\t\tconst vectors = [];\n\t\tfor (let i = 0; i < 16; i += 4) {\n\t\t\tvectors.push(`(${data[i]}, ${data[i + 1]}, ${data[i + 2]}, ${data[i + 3]})`);\n\t\t}\n\t\treturn `( ${vectors.join(', ')} )`;\n\t}\n\tbuildMaterial(material) {\n\t\tconst materialName = `Material_${material.id}`;\n\t\tconst materialPath = `/Materials/${materialName}`;\n\t\tconst materialPropertyPath = property => `<${materialPath}${property}>`;\n\t\tconst buildTexture = (texture, textureIds, mapType, uvChannel, tiling, offset, rotation, tintColor) => {\n\t\t\treturn `\n\t\t\t\t\t\t\t\tdef Shader \"Transform2d_${mapType}\" (\n\t\t\t\t\t\t\t\t\t\tsdrMetadata = {\n\t\t\t\t\t\t\t\t\t\t\t\tstring role = \"math\"\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tuniform token info:id = \"UsdTransform2d\"\n\t\t\t\t\t\t\t\t\t\tfloat2 inputs:in.connect = ${materialPropertyPath(`/uvReader_${uvChannel}.outputs:result`)}\n\t\t\t\t\t\t\t\t\t\tfloat inputs:rotation = ${rotation}\n\t\t\t\t\t\t\t\t\t\tfloat2 inputs:scale = (${tiling.x}, ${tiling.y})\n\t\t\t\t\t\t\t\t\t\tfloat2 inputs:translation = (${offset.x}, ${offset.y})\n\t\t\t\t\t\t\t\t\t\tfloat2 outputs:result\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tdef Shader \"Texture_${texture.id}_${mapType}\"\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tuniform token info:id = \"UsdUVTexture\"\n\t\t\t\t\t\t\t\t\t\tasset inputs:file = @${textureIds.fileName}@\n\t\t\t\t\t\t\t\t\t\tfloat2 inputs:st.connect = ${materialPropertyPath(`/Transform2d_${mapType}.outputs:result`)}\n\t\t\t\t\t\t\t\t\t\ttoken inputs:wrapS = \"repeat\"\n\t\t\t\t\t\t\t\t\t\ttoken inputs:wrapT = \"repeat\"\n\t\t\t\t\t\t\t\t\t\tfloat4 inputs:scale = (${tintColor.r}, ${tintColor.g}, ${tintColor.b}, ${tintColor.a})\n\t\t\t\t\t\t\t\t\t\tfloat outputs:r\n\t\t\t\t\t\t\t\t\t\tfloat outputs:g\n\t\t\t\t\t\t\t\t\t\tfloat outputs:b\n\t\t\t\t\t\t\t\t\t\tfloat3 outputs:rgb\n\t\t\t\t\t\t\t\t\t\tfloat outputs:a\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t`;\n\t\t};\n\t\tconst inputs = [];\n\t\tconst samplers = [];\n\t\tconst addTexture = (textureSlot, uniform, propType, propName, valueName, handleOpacity = false, tintTexture = false) => {\n\t\t\tconst texture = material[textureSlot];\n\t\t\tif (texture) {\n\t\t\t\tconst textureIds = this.getTextureFileIds(texture);\n\t\t\t\tthis.textureMap.set(texture, textureIds.refName);\n\t\t\t\tconst channel = material[`${textureSlot}Channel`] || 'rgb';\n\t\t\t\tconst textureValue = materialPropertyPath(`/${textureIds.name}_${valueName}.outputs:${channel}`);\n\t\t\t\tinputs.push(materialValueTemplate(propType, `${propName}.connect`, textureValue));\n\t\t\t\tif (handleOpacity) {\n\t\t\t\t\tif (material.alphaTest > 0.0) ;\n\t\t\t\t}\n\t\t\t\tconst tiling = material[`${textureSlot}Tiling`];\n\t\t\t\tconst offset = material[`${textureSlot}Offset`];\n\t\t\t\tconst rotation = material[`${textureSlot}Rotation`];\n\t\t\t\tconst uvChannel = material[`${textureSlot}Uv`] === 1 ? 'st1' : 'st';\n\t\t\t\tconst tintColor = tintTexture && uniform ? uniform : Color.WHITE;\n\t\t\t\tsamplers.push(buildTexture(texture, textureIds, valueName, uvChannel, tiling, offset, rotation, tintColor));\n\t\t\t} else if (uniform) {\n\t\t\t\tconst value = propType === 'float' ? `${uniform}` : `(${uniform.r}, ${uniform.g}, ${uniform.b})`;\n\t\t\t\tinputs.push(materialValueTemplate(propType, propName, value));\n\t\t\t}\n\t\t};\n\t\taddTexture('diffuseMap', material.diffuse, 'color3f', 'diffuseColor', 'diffuse', false, true);\n\t\tif (material.transparent || material.alphaTest > 0.0) {\n\t\t\taddTexture('opacityMap', material.opacity, 'float', 'opacity', 'opacity', true);\n\t\t}\n\t\taddTexture('normalMap', null, 'normal3f', 'normal', 'normal');\n\t\taddTexture('emissiveMap', material.emissive, 'color3f', 'emissiveColor', 'emissive', false, true);\n\t\taddTexture('aoMap', null, 'float', 'occlusion', 'occlusion');\n\t\taddTexture('metalnessMap', material.metalness, 'float', 'metallic', 'metallic');\n\t\taddTexture('glossMap', material.gloss, 'float', 'roughness', 'roughness');\n\t\tconst materialObject = `\n\t\t\t\t\t\tdef Material \"${materialName}\"\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdef Shader \"PreviewSurface\"\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tuniform token info:id = \"UsdPreviewSurface\"\n${inputs.join('\\n')}\n\t\t\t\t\t\t\t\t\t\tint inputs:useSpecularWorkflow = 0\n\t\t\t\t\t\t\t\t\t\ttoken outputs:surface\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\ttoken outputs:surface.connect = ${materialPropertyPath('/PreviewSurface.outputs:surface')}\n\n\t\t\t\t\t\t\t\tdef Shader \"uvReader_st\"\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tuniform token info:id = \"UsdPrimvarReader_float2\"\n\t\t\t\t\t\t\t\t\t\ttoken inputs:varname = \"st\"\n\t\t\t\t\t\t\t\t\t\tfloat2 inputs:fallback = (0.0, 0.0)\n\t\t\t\t\t\t\t\t\t\tfloat2 outputs:result\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tdef Shader \"uvReader_st1\"\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tuniform token info:id = \"UsdPrimvarReader_float2\"\n\t\t\t\t\t\t\t\t\t\ttoken inputs:varname = \"st1\"\n\t\t\t\t\t\t\t\t\t\tfloat2 inputs:fallback = (0.0, 0.0)\n\t\t\t\t\t\t\t\t\t\tfloat2 outputs:result\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t${samplers.join('\\n')}\n\t\t\t\t\t\t}\n\t\t\t\t`;\n\t\tthis.materials.push(materialObject);\n\t\treturn materialPropertyPath('');\n\t}\n\tbuildMesh(mesh) {\n\t\tlet positions = [];\n\t\tconst indices = [];\n\t\tlet normals = [];\n\t\tlet uv0 = [];\n\t\tlet uv1 = [];\n\t\tmesh.getVertexStream(SEMANTIC_POSITION, positions);\n\t\tmesh.getVertexStream(SEMANTIC_NORMAL, normals);\n\t\tmesh.getVertexStream(SEMANTIC_TEXCOORD0, uv0);\n\t\tmesh.getVertexStream(SEMANTIC_TEXCOORD1, uv1);\n\t\tmesh.getIndices(indices);\n\t\tconst indicesCount = indices.length || positions.length;\n\t\tconst faceVertexCounts = Array(indicesCount / 3).fill(3).join(', ');\n\t\tif (!indices.length) {\n\t\t\tfor (let i = 0; i < indicesCount; i++) {\n\t\t\t\tindices[i] = i;\n\t\t\t}\n\t\t}\n\t\tconst numVerts = positions.length / 3;\n\t\tnormals = normals.length ? normals : Array(numVerts * 3).fill(0);\n\t\tuv0 = uv0.length ? uv0 : Array(numVerts * 2).fill(0);\n\t\tuv1 = uv1.length ? uv1 : Array(numVerts * 2).fill(0);\n\t\tpositions = this.buildArray3(positions);\n\t\tnormals = this.buildArray3(normals);\n\t\tuv0 = this.buildArray2(uv0);\n\t\tuv1 = this.buildArray2(uv1);\n\t\tconst meshObject = meshTemplate(faceVertexCounts, indices, normals, positions, uv0, uv1);\n\t\tconst refPath = this.addFile('mesh', `Mesh_${mesh.id}`, 'Mesh', meshObject);\n\t\treturn refPath;\n\t}\n\tbuildMeshInstance(meshInstance) {\n\t\tconst meshRefPath = this.getMeshRef(meshInstance.mesh);\n\t\tconst materialRefPath = this.getMaterialRef(meshInstance.material);\n\t\tconst worldMatrix = this.buildMat4(meshInstance.node.getWorldTransform());\n\t\tconst name = meshInstance.node.name.replace(/[^a-z0-9]/gi, '_');\n\t\tlet nodeName = name;\n\t\twhile (this.nodeNames.has(nodeName)) {\n\t\t\tnodeName = `${name}_${Math.random().toString(36).slice(2, 7)}`;\n\t\t}\n\t\tthis.nodeNames.add(nodeName);\n\t\treturn meshInstanceTemplate(nodeName, meshRefPath, worldMatrix, materialRefPath);\n\t}\n}\n\nconst ARRAY_BUFFER = 34962;\nconst ELEMENT_ARRAY_BUFFER = 34963;\nconst getIndexComponentType = indexFormat => {\n\tswitch (indexFormat) {\n\t\tcase INDEXFORMAT_UINT8:\n\t\t\treturn 5121;\n\t\tcase INDEXFORMAT_UINT16:\n\t\t\treturn 5123;\n\t\tcase INDEXFORMAT_UINT32:\n\t\t\treturn 5125;\n\t}\n\treturn 0;\n};\nconst getComponentType = dataType => {\n\tswitch (dataType) {\n\t\tcase TYPE_INT8:\n\t\t\treturn 5120;\n\t\tcase TYPE_UINT8:\n\t\t\treturn 5121;\n\t\tcase TYPE_INT16:\n\t\t\treturn 5122;\n\t\tcase TYPE_UINT16:\n\t\t\treturn 5123;\n\t\tcase TYPE_INT32:\n\t\t\treturn 5124;\n\t\tcase TYPE_UINT32:\n\t\t\treturn 5125;\n\t\tcase TYPE_FLOAT32:\n\t\t\treturn 5126;\n\t}\n\treturn 0;\n};\nconst getAccessorType = componentCount => {\n\tswitch (componentCount) {\n\t\tcase 1:\n\t\t\treturn 'SCALAR';\n\t\tcase 2:\n\t\t\treturn 'VEC2';\n\t\tcase 3:\n\t\t\treturn 'VEC3';\n\t\tcase 4:\n\t\t\treturn 'VEC4';\n\t}\n\treturn 0;\n};\nconst getSemantic = engineSemantic => {\n\tswitch (engineSemantic) {\n\t\tcase SEMANTIC_POSITION:\n\t\t\treturn 'POSITION';\n\t\tcase SEMANTIC_NORMAL:\n\t\t\treturn 'NORMAL';\n\t\tcase SEMANTIC_TANGENT:\n\t\t\treturn 'TANGENT';\n\t\tcase SEMANTIC_COLOR:\n\t\t\treturn 'COLOR_0';\n\t\tcase SEMANTIC_BLENDINDICES:\n\t\t\treturn 'JOINTS_0';\n\t\tcase SEMANTIC_BLENDWEIGHT:\n\t\t\treturn 'WEIGHTS_0';\n\t\tcase SEMANTIC_TEXCOORD0:\n\t\t\treturn 'TEXCOORD_0';\n\t\tcase SEMANTIC_TEXCOORD1:\n\t\t\treturn 'TEXCOORD_1';\n\t\tcase SEMANTIC_TEXCOORD2:\n\t\t\treturn 'TEXCOORD_2';\n\t\tcase SEMANTIC_TEXCOORD3:\n\t\t\treturn 'TEXCOORD_3';\n\t\tcase SEMANTIC_TEXCOORD4:\n\t\t\treturn 'TEXCOORD_4';\n\t\tcase SEMANTIC_TEXCOORD5:\n\t\t\treturn 'TEXCOORD_5';\n\t\tcase SEMANTIC_TEXCOORD6:\n\t\t\treturn 'TEXCOORD_6';\n\t\tcase SEMANTIC_TEXCOORD7:\n\t\t\treturn 'TEXCOORD_7';\n\t}\n\treturn '';\n};\nconst getFilter = function getFilter(filter) {\n\tswitch (filter) {\n\t\tcase FILTER_NEAREST:\n\t\t\treturn 9728;\n\t\tcase FILTER_LINEAR:\n\t\t\treturn 9729;\n\t\tcase FILTER_NEAREST_MIPMAP_NEAREST:\n\t\t\treturn 9984;\n\t\tcase FILTER_LINEAR_MIPMAP_NEAREST:\n\t\t\treturn 9985;\n\t\tcase FILTER_NEAREST_MIPMAP_LINEAR:\n\t\t\treturn 9986;\n\t\tcase FILTER_LINEAR_MIPMAP_LINEAR:\n\t\t\treturn 9987;\n\t}\n\treturn 0;\n};\nconst getWrap = function getWrap(wrap) {\n\tswitch (wrap) {\n\t\tcase ADDRESS_CLAMP_TO_EDGE:\n\t\t\treturn 33071;\n\t\tcase ADDRESS_MIRRORED_REPEAT:\n\t\t\treturn 33648;\n\t\tcase ADDRESS_REPEAT:\n\t\t\treturn 10497;\n\t}\n\treturn 0;\n};\nfunction isCanvasTransparent(canvas) {\n\tconst context = canvas.getContext('2d');\n\tconst pixelData = context.getImageData(0, 0, canvas.width, canvas.height).data;\n\tfor (let i = 3; i < pixelData.length; i += 4) {\n\t\tif (pixelData[i] < 255) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\nconst textureSemantics = ['diffuseMap', 'colorMap', 'normalMap', 'metalnessMap', 'emissiveMap'];\nclass GltfExporter extends CoreExporter {\n\tcollectResources(root) {\n\t\tconst resources = {\n\t\t\tbuffers: [],\n\t\t\tcameras: [],\n\t\t\tentities: [],\n\t\t\tmaterials: [],\n\t\t\ttextures: [],\n\t\t\tentityMeshInstances: [],\n\t\t\tbufferViewMap: new Map(),\n\t\t\tcompressableTexture: new Set()\n\t\t};\n\t\tconst {\n\t\t\tmaterials,\n\t\t\tbuffers,\n\t\t\tentityMeshInstances,\n\t\t\ttextures\n\t\t} = resources;\n\t\troot.forEach(entity => {\n\t\t\tresources.entities.push(entity);\n\t\t});\n\t\tconst collectMeshInstances = meshInstances => {\n\t\t\tmeshInstances.forEach(meshInstance => {\n\t\t\t\tconst material = meshInstance.material;\n\t\t\t\tif (materials.indexOf(material) < 0) {\n\t\t\t\t\tresources.materials.push(material);\n\t\t\t\t\ttextureSemantics.forEach(semantic => {\n\t\t\t\t\t\tconst texture = material[semantic];\n\t\t\t\t\t\tif (texture && textures.indexOf(texture) < 0) {\n\t\t\t\t\t\t\tif (semantic !== 'normalMap') {\n\t\t\t\t\t\t\t\tresources.compressableTexture.add(texture);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttextures.push(texture);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tconst node = meshInstance.node;\n\t\t\t\tlet nodeMeshInstances = entityMeshInstances.find(e => e.node === node);\n\t\t\t\tif (!nodeMeshInstances) {\n\t\t\t\t\tnodeMeshInstances = {\n\t\t\t\t\t\tnode: node,\n\t\t\t\t\t\tmeshInstances: []\n\t\t\t\t\t};\n\t\t\t\t\tentityMeshInstances.push(nodeMeshInstances);\n\t\t\t\t}\n\t\t\t\tnodeMeshInstances.meshInstances.push(meshInstance);\n\t\t\t\tconst mesh = meshInstance.mesh;\n\t\t\t\tconst vertexBuffer = mesh.vertexBuffer;\n\t\t\t\tif (buffers.indexOf(vertexBuffer) < 0) {\n\t\t\t\t\tbuffers.unshift(vertexBuffer);\n\t\t\t\t}\n\t\t\t\tconst indexBuffer = mesh.indexBuffer[0];\n\t\t\t\tif (buffers.indexOf(indexBuffer) < 0) {\n\t\t\t\t\tbuffers.push(indexBuffer);\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\t\tresources.entities.forEach(entity => {\n\t\t\tif (entity.camera) {\n\t\t\t\tresources.cameras.push(entity.camera);\n\t\t\t}\n\t\t\tif (entity.render && entity.render.enabled) {\n\t\t\t\tcollectMeshInstances(entity.render.meshInstances);\n\t\t\t}\n\t\t\tif (entity.model && entity.model.enabled && entity.model.meshInstances) {\n\t\t\t\tcollectMeshInstances(entity.model.meshInstances);\n\t\t\t}\n\t\t});\n\t\treturn resources;\n\t}\n\twriteBufferViews(resources, json) {\n\t\tjson.bufferViews = [];\n\t\tfor (const buffer of resources.buffers) {\n\t\t\tGltfExporter.writeBufferView(resources, json, buffer);\n\t\t}\n\t}\n\tstatic writeBufferView(resources, json, buffer) {\n\t\tvar _json$buffers, _json$buffers$;\n\t\tjson.buffers = (_json$buffers = json.buffers) != null ? _json$buffers : [];\n\t\tjson.buffers[0] = (_json$buffers$ = json.buffers[0]) != null ? _json$buffers$ : {\n\t\t\tbyteLength: 0\n\t\t};\n\t\tconst bufferInfo = json.buffers[0];\n\t\tbufferInfo.byteLength = math.roundUp(bufferInfo.byteLength, 4);\n\t\tconst offset = bufferInfo.byteLength;\n\t\tconst addBufferView = (target, byteLength, byteOffset, byteStride) => {\n\t\t\tconst bufferView = {\n\t\t\t\ttarget: target,\n\t\t\t\tbuffer: 0,\n\t\t\t\tbyteLength: byteLength,\n\t\t\t\tbyteOffset: byteOffset,\n\t\t\t\tbyteStride: byteStride\n\t\t\t};\n\t\t\treturn json.bufferViews.push(bufferView) - 1;\n\t\t};\n\t\tlet arrayBuffer;\n\t\tif (buffer instanceof VertexBuffer) {\n\t\t\tarrayBuffer = buffer.lock();\n\t\t\tconst format = buffer.getFormat();\n\t\t\tif (format.interleaved) {\n\t\t\t\tconst bufferViewIndex = addBufferView(ARRAY_BUFFER, arrayBuffer.byteLength, offset, format.size);\n\t\t\t\tresources.bufferViewMap.set(buffer, [bufferViewIndex]);\n\t\t\t} else {\n\t\t\t\tconst bufferViewIndices = [];\n\t\t\t\tfor (const element of format.elements) {\n\t\t\t\t\tconst bufferViewIndex = addBufferView(ARRAY_BUFFER, element.size * format.vertexCount, offset + element.offset, element.size);\n\t\t\t\t\tbufferViewIndices.push(bufferViewIndex);\n\t\t\t\t}\n\t\t\t\tresources.bufferViewMap.set(buffer, bufferViewIndices);\n\t\t\t}\n\t\t} else if (buffer instanceof IndexBuffer) {\n\t\t\tarrayBuffer = buffer.lock();\n\t\t\tconst bufferViewIndex = addBufferView(ARRAY_BUFFER, arrayBuffer.byteLength, offset);\n\t\t\tresources.bufferViewMap.set(buffer, [bufferViewIndex]);\n\t\t} else {\n\t\t\tarrayBuffer = buffer;\n\t\t\tconst bufferViewIndex = addBufferView(ELEMENT_ARRAY_BUFFER, arrayBuffer.byteLength, offset);\n\t\t\tresources.bufferViewMap.set(buffer, [bufferViewIndex]);\n\t\t}\n\t\tbufferInfo.byteLength += arrayBuffer.byteLength;\n\t}\n\twriteCameras(resources, json) {\n\t\tif (resources.cameras.length > 0) {\n\t\t\tjson.cameras = resources.cameras.map(cam => {\n\t\t\t\tconst projection = cam.projection;\n\t\t\t\tconst nearClip = cam.nearClip;\n\t\t\t\tconst farClip = cam.farClip;\n\t\t\t\tconst camera = {};\n\t\t\t\tif (projection === PROJECTION_ORTHOGRAPHIC) {\n\t\t\t\t\tcamera.type = 'orthographic';\n\t\t\t\t\tcamera.orthographic = {\n\t\t\t\t\t\txmag: 1,\n\t\t\t\t\t\tymag: 1,\n\t\t\t\t\t\tznear: nearClip,\n\t\t\t\t\t\tzfar: farClip\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tconst fov = cam.fov;\n\t\t\t\t\tcamera.type = 'perspective';\n\t\t\t\t\tcamera.perspective = {\n\t\t\t\t\t\tyfov: fov * Math.PI / 180,\n\t\t\t\t\t\tznear: nearClip,\n\t\t\t\t\t\tzfar: farClip\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\treturn camera;\n\t\t\t});\n\t\t}\n\t}\n\tattachTexture(resources, material, destination, name, textureSemantic, json) {\n\t\tconst texture = material[textureSemantic];\n\t\tif (texture) {\n\t\t\tconst textureIndex = resources.textures.indexOf(texture);\n\t\t\tif (textureIndex < 0) console.warn(`Texture ${texture.name} wasn't collected.`);\n\t\t\tdestination[name] = {\n\t\t\t\tindex: textureIndex\n\t\t\t};\n\t\t\tconst scale = material[`${textureSemantic}Tiling`];\n\t\t\tconst offset = material[`${textureSemantic}Offset`];\n\t\t\tconst rotation = material[`${textureSemantic}Rotation`];\n\t\t\tif (scale && !scale.equals(Vec2.ONE) || offset && !offset.equals(Vec2.ZERO) || rotation !== 0) {\n\t\t\t\tvar _json$extensionsUsed, _json$extensionsRequi;\n\t\t\t\tdestination[name].extensions = {\n\t\t\t\t\tKHR_texture_transform: {}\n\t\t\t\t};\n\t\t\t\tjson.extensionsUsed = (_json$extensionsUsed = json.extensionsUsed) != null ? _json$extensionsUsed : [];\n\t\t\t\tif (json.extensionsUsed.indexOf('KHR_texture_transform') < 0) {\n\t\t\t\t\tjson.extensionsUsed.push('KHR_texture_transform');\n\t\t\t\t}\n\t\t\t\tjson.extensionsRequired = (_json$extensionsRequi = json.extensionsRequired) != null ? _json$extensionsRequi : [];\n\t\t\t\tif (json.extensionsRequired.indexOf('KHR_texture_transform') < 0) {\n\t\t\t\t\tjson.extensionsRequired.push('KHR_texture_transform');\n\t\t\t\t}\n\t\t\t\tif (scale && !scale.equals(Vec2.ONE)) {\n\t\t\t\t\tdestination[name].extensions.KHR_texture_transform.scale = [scale.x, scale.y];\n\t\t\t\t}\n\t\t\t\tif (offset && !offset.equals(Vec2.ZERO)) {\n\t\t\t\t\tdestination[name].extensions.KHR_texture_transform.offset = [offset.x, offset.y - 1 + scale.y];\n\t\t\t\t}\n\t\t\t\tif (rotation !== 0) {\n\t\t\t\t\tdestination[name].extensions.KHR_texture_transform.rotation = rotation * math.DEG_TO_RAD;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\twriteStandardMaterial(resources, mat, output, json) {\n\t\tconst {\n\t\t\tdiffuse,\n\t\t\temissive,\n\t\t\topacity,\n\t\t\tmetalness,\n\t\t\tgloss,\n\t\t\tglossInvert\n\t\t} = mat;\n\t\tconst pbr = output.pbrMetallicRoughness;\n\t\tif (!diffuse.equals(Color.WHITE) || opacity !== 1) {\n\t\t\tpbr.baseColorFactor = [diffuse.r, diffuse.g, diffuse.b, opacity];\n\t\t}\n\t\tif (metalness !== 1) {\n\t\t\tpbr.metallicFactor = metalness;\n\t\t}\n\t\tconst roughness = glossInvert ? gloss : 1 - gloss;\n\t\tif (roughness !== 1) {\n\t\t\tpbr.roughnessFactor = roughness;\n\t\t}\n\t\tthis.attachTexture(resources, mat, pbr, 'baseColorTexture', 'diffuseMap', json);\n\t\tthis.attachTexture(resources, mat, pbr, 'metallicRoughnessTexture', 'metalnessMap', json);\n\t\tif (!emissive.equals(Color.BLACK)) {\n\t\t\toutput.emissiveFactor = [emissive.r, emissive.g, emissive.b];\n\t\t}\n\t}\n\twriteBasicMaterial(resources, mat, output, json) {\n\t\tconst {\n\t\t\tcolor\n\t\t} = mat;\n\t\tconst pbr = output.pbrMetallicRoughness;\n\t\tif (!color.equals(Color.WHITE)) {\n\t\t\tpbr.baseColorFactor = [color.r, color.g, color.b, color];\n\t\t}\n\t\tthis.attachTexture(resources, mat, pbr, 'baseColorTexture', 'colorMap', json);\n\t}\n\twriteMaterials(resources, json) {\n\t\tif (resources.materials.length > 0) {\n\t\t\tjson.materials = resources.materials.map(mat => {\n\t\t\t\tconst {\n\t\t\t\t\tname,\n\t\t\t\t\tblendType,\n\t\t\t\t\tcull,\n\t\t\t\t\talphaTest\n\t\t\t\t} = mat;\n\t\t\t\tconst material = {\n\t\t\t\t\tpbrMetallicRoughness: {}\n\t\t\t\t};\n\t\t\t\tif (name && name.length > 0) {\n\t\t\t\t\tmaterial.name = name;\n\t\t\t\t}\n\t\t\t\tif (mat instanceof StandardMaterial) {\n\t\t\t\t\tthis.writeStandardMaterial(resources, mat, material, json);\n\t\t\t\t}\n\t\t\t\tif (mat instanceof BasicMaterial) {\n\t\t\t\t\tthis.writeBasicMaterial(resources, mat, material, json);\n\t\t\t\t}\n\t\t\t\tif (blendType === BLEND_NORMAL) {\n\t\t\t\t\tmaterial.alphaMode = 'BLEND';\n\t\t\t\t} else if (blendType === BLEND_NONE) {\n\t\t\t\t\tif (alphaTest !== 0) {\n\t\t\t\t\t\tmaterial.alphaMode = 'MASK';\n\t\t\t\t\t\tmaterial.alphaCutoff = alphaTest;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (cull === CULLFACE_NONE) {\n\t\t\t\t\tmaterial.doubleSided = true;\n\t\t\t\t}\n\t\t\t\tthis.attachTexture(resources, mat, material, 'normalTexture', 'normalMap', json);\n\t\t\t\tthis.attachTexture(resources, mat, material, 'occlusionTexture', 'aoMap', json);\n\t\t\t\tthis.attachTexture(resources, mat, material, 'emissiveTexture', 'emissiveMap', json);\n\t\t\t\treturn material;\n\t\t\t});\n\t\t}\n\t}\n\twriteNodes(resources, json) {\n\t\tif (resources.entities.length > 0) {\n\t\t\tjson.nodes = resources.entities.map(entity => {\n\t\t\t\tconst name = entity.name;\n\t\t\t\tconst t = entity.getLocalPosition();\n\t\t\t\tconst r = entity.getLocalRotation();\n\t\t\t\tconst s = entity.getLocalScale();\n\t\t\t\tconst node = {};\n\t\t\t\tif (name && name.length > 0) {\n\t\t\t\t\tnode.name = name;\n\t\t\t\t}\n\t\t\t\tif (!t.equals(Vec3.ZERO)) {\n\t\t\t\t\tnode.translation = [t.x, t.y, t.z];\n\t\t\t\t}\n\t\t\t\tif (!r.equals(Quat.IDENTITY)) {\n\t\t\t\t\tnode.rotation = [r.x, r.y, r.z, r.w];\n\t\t\t\t}\n\t\t\t\tif (!s.equals(Vec3.ONE)) {\n\t\t\t\t\tnode.scale = [s.x, s.y, s.z];\n\t\t\t\t}\n\t\t\t\tif (entity.camera && entity.camera.enabled) {\n\t\t\t\t\tnode.camera = resources.cameras.indexOf(entity.camera);\n\t\t\t\t}\n\t\t\t\tconst entityMeshInstance = resources.entityMeshInstances.find(e => e.node === entity);\n\t\t\t\tif (entityMeshInstance) {\n\t\t\t\t\tnode.mesh = resources.entityMeshInstances.indexOf(entityMeshInstance);\n\t\t\t\t}\n\t\t\t\tif (entity.children.length > 0) {\n\t\t\t\t\tnode.children = [];\n\t\t\t\t\tentity.children.forEach(child => {\n\t\t\t\t\t\tnode.children.push(resources.entities.indexOf(child));\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn node;\n\t\t\t});\n\t\t}\n\t}\n\twriteMeshes(resources, json) {\n\t\tif (resources.entityMeshInstances.length > 0) {\n\t\t\tjson.accessors = [];\n\t\t\tjson.meshes = [];\n\t\t\tresources.entityMeshInstances.forEach(entityMeshInstances => {\n\t\t\t\tconst mesh = {\n\t\t\t\t\tprimitives: []\n\t\t\t\t};\n\t\t\t\tconst meshInstances = entityMeshInstances.meshInstances;\n\t\t\t\tmeshInstances.forEach(meshInstance => {\n\t\t\t\t\tconst primitive = GltfExporter.createPrimitive(resources, json, meshInstance.mesh);\n\t\t\t\t\tprimitive.material = resources.materials.indexOf(meshInstance.material);\n\t\t\t\t\tmesh.primitives.push(primitive);\n\t\t\t\t});\n\t\t\t\tjson.meshes.push(mesh);\n\t\t\t});\n\t\t}\n\t}\n\tstatic createPrimitive(resources, json, mesh) {\n\t\tconst primitive = {\n\t\t\tattributes: {}\n\t\t};\n\t\tconst {\n\t\t\tvertexBuffer\n\t\t} = mesh;\n\t\tconst {\n\t\t\tformat\n\t\t} = vertexBuffer;\n\t\tconst {\n\t\t\tinterleaved,\n\t\t\telements\n\t\t} = format;\n\t\tconst numVertices = vertexBuffer.getNumVertices();\n\t\telements.forEach((element, elementIndex) => {\n\t\t\tlet bufferView = resources.bufferViewMap.get(vertexBuffer);\n\t\t\tif (!bufferView) {\n\t\t\t\tGltfExporter.writeBufferView(resources, json, vertexBuffer);\n\t\t\t\tresources.buffers.push(vertexBuffer);\n\t\t\t\tbufferView = resources.bufferViewMap.get(vertexBuffer);\n\t\t\t}\n\t\t\tconst viewIndex = bufferView[interleaved ? 0 : elementIndex];\n\t\t\tconst accessor = {\n\t\t\t\tbufferView: viewIndex,\n\t\t\t\tbyteOffset: interleaved ? element.offset : 0,\n\t\t\t\tcomponentType: getComponentType(element.dataType),\n\t\t\t\ttype: getAccessorType(element.numComponents),\n\t\t\t\tcount: numVertices\n\t\t\t};\n\t\t\tconst idx = json.accessors.push(accessor) - 1;\n\t\t\tprimitive.attributes[getSemantic(element.name)] = idx;\n\t\t\tif (element.name === SEMANTIC_POSITION) {\n\t\t\t\tconst positions = [];\n\t\t\t\tmesh.getPositions(positions);\n\t\t\t\tconst min = new Vec3();\n\t\t\t\tconst max = new Vec3();\n\t\t\t\tBoundingBox.computeMinMax(positions, min, max);\n\t\t\t\taccessor.min = [min.x, min.y, min.z];\n\t\t\t\taccessor.max = [max.x, max.y, max.z];\n\t\t\t}\n\t\t});\n\t\tconst indexBuffer = mesh.indexBuffer[0];\n\t\tif (indexBuffer) {\n\t\t\tlet bufferView = resources.bufferViewMap.get(indexBuffer);\n\t\t\tif (!bufferView) {\n\t\t\t\tGltfExporter.writeBufferView(resources, json, indexBuffer);\n\t\t\t\tresources.buffers.push(indexBuffer);\n\t\t\t\tbufferView = resources.bufferViewMap.get(indexBuffer);\n\t\t\t}\n\t\t\tconst viewIndex = bufferView[0];\n\t\t\tconst accessor = {\n\t\t\t\tbufferView: viewIndex,\n\t\t\t\tcomponentType: getIndexComponentType(indexBuffer.getFormat()),\n\t\t\t\tcount: indexBuffer.getNumIndices(),\n\t\t\t\ttype: 'SCALAR'\n\t\t\t};\n\t\t\tconst idx = json.accessors.push(accessor) - 1;\n\t\t\tprimitive.indices = idx;\n\t\t}\n\t\treturn primitive;\n\t}\n\tconvertTextures(srcTextures, options) {\n\t\tconst textureOptions = {\n\t\t\tmaxTextureSize: options.maxTextureSize\n\t\t};\n\t\tconst promises = [];\n\t\tsrcTextures.forEach(srcTexture => {\n\t\t\tconst promise = this.textureToCanvas(srcTexture, textureOptions);\n\t\t\tpromise.then(canvas => {\n\t\t\t\treturn new Promise(resolve => resolve(canvas));\n\t\t\t});\n\t\t\tpromises.push(promise);\n\t\t});\n\t\treturn promises;\n\t}\n\twriteTextures(resources, textureCanvases, json, options) {\n\t\tconst textures = resources.textures;\n\t\tconst promises = [];\n\t\tfor (let i = 0; i < textureCanvases.length; i++) {\n\t\t\tconst texture = textures[i];\n\t\t\tconst canvas = textureCanvases[i];\n\t\t\tconst isRGBA = isCanvasTransparent(canvas) || !resources.compressableTexture.has(texture);\n\t\t\tconst mimeType = isRGBA ? 'image/png' : 'image/jpeg';\n\t\t\tpromises.push(this.getBlob(canvas, mimeType).then(blob => {\n\t\t\t\tconst reader = new FileReader();\n\t\t\t\treader.readAsArrayBuffer(blob);\n\t\t\t\treturn new Promise(resolve => {\n\t\t\t\t\treader.onloadend = () => {\n\t\t\t\t\t\tresolve(reader);\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t}).then(reader => {\n\t\t\t\tconst buffer = this.getPaddedArrayBuffer(reader.result);\n\t\t\t\tGltfExporter.writeBufferView(resources, json, buffer);\n\t\t\t\tresources.buffers.push(buffer);\n\t\t\t\tconst bufferView = resources.bufferViewMap.get(buffer);\n\t\t\t\tjson.images[i] = {\n\t\t\t\t\tmimeType: mimeType,\n\t\t\t\t\tbufferView: bufferView[0]\n\t\t\t\t};\n\t\t\t\tjson.samplers[i] = {\n\t\t\t\t\tminFilter: getFilter(texture.minFilter),\n\t\t\t\t\tmagFilter: getFilter(texture.magFilter),\n\t\t\t\t\twrapS: getWrap(texture.addressU),\n\t\t\t\t\twrapT: getWrap(texture.addressV)\n\t\t\t\t};\n\t\t\t\tjson.textures[i] = {\n\t\t\t\t\tsampler: i,\n\t\t\t\t\tsource: i\n\t\t\t\t};\n\t\t\t}));\n\t\t}\n\t\treturn Promise.all(promises);\n\t}\n\tgetBlob(canvas, mimeType) {\n\t\tif (canvas.toBlob !== undefined) {\n\t\t\treturn new Promise(resolve => {\n\t\t\t\tcanvas.toBlob(resolve, mimeType);\n\t\t\t});\n\t\t}\n\t\tlet quality = 1.0;\n\t\tif (mimeType === 'image/jpeg') {\n\t\t\tquality = 0.92;\n\t\t}\n\t\treturn canvas.convertToBlob({\n\t\t\ttype: mimeType,\n\t\t\tquality: quality\n\t\t});\n\t}\n\tgetPaddedArrayBuffer(arrayBuffer, paddingByte = 0) {\n\t\tconst paddedLength = math.roundUp(arrayBuffer.byteLength, 4);\n\t\tif (paddedLength !== arrayBuffer.byteLength) {\n\t\t\tconst array = new Uint8Array(paddedLength);\n\t\t\tarray.set(new Uint8Array(arrayBuffer));\n\t\t\tif (paddingByte !== 0) {\n\t\t\t\tfor (let i = arrayBuffer.byteLength; i < paddedLength; i++) {\n\t\t\t\t\tarray[i] = paddingByte;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn array.buffer;\n\t\t}\n\t\treturn arrayBuffer;\n\t}\n\tbuildJson(resources, options) {\n\t\tvar _this = this;\n\t\tconst promises = this.convertTextures(resources.textures, options);\n\t\treturn Promise.all(promises).then(async function (textureCanvases) {\n\t\t\tconst json = {\n\t\t\t\tasset: {\n\t\t\t\t\tversion: '2.0',\n\t\t\t\t\tgenerator: 'PlayCanvas GltfExporter'\n\t\t\t\t},\n\t\t\t\tscenes: [{\n\t\t\t\t\tnodes: [0]\n\t\t\t\t}],\n\t\t\t\timages: [],\n\t\t\t\tsamplers: [],\n\t\t\t\ttextures: [],\n\t\t\t\tscene: 0\n\t\t\t};\n\t\t\t_this.writeBufferViews(resources, json);\n\t\t\t_this.writeCameras(resources, json);\n\t\t\t_this.writeMeshes(resources, json);\n\t\t\t_this.writeMaterials(resources, json);\n\t\t\t_this.writeNodes(resources, json, options);\n\t\t\tawait _this.writeTextures(resources, textureCanvases, json, options);\n\t\t\tif (!json.images.length) delete json.images;\n\t\t\tif (!json.samplers.length) delete json.samplers;\n\t\t\tif (!json.textures.length) delete json.textures;\n\t\t\treturn json;\n\t\t});\n\t}\n\tbuild(entity, options = {}) {\n\t\tconst resources = this.collectResources(entity);\n\t\treturn this.buildJson(resources, options).then(json => {\n\t\t\tconst encoder = new TextEncoder();\n\t\t\tconst jsonData = encoder.encode(JSON.stringify(json));\n\t\t\tconst headerLength = 12;\n\t\t\tconst jsonHeaderLength = 8;\n\t\t\tconst jsonDataLength = jsonData.length;\n\t\t\tconst jsonPaddingLength = 4 - (jsonDataLength & 3) & 3;\n\t\t\tconst binaryHeaderLength = 8;\n\t\t\tconst binaryDataLength = json.buffers.reduce((total, buffer) => math.roundUp(total + buffer.byteLength, 4), 0);\n\t\t\tlet totalLength = headerLength + jsonHeaderLength + jsonDataLength + jsonPaddingLength;\n\t\t\tif (binaryDataLength > 0) {\n\t\t\t\ttotalLength += binaryHeaderLength + binaryDataLength;\n\t\t\t}\n\t\t\tconst glbBuffer = new ArrayBuffer(totalLength);\n\t\t\tconst glbView = new DataView(glbBuffer);\n\t\t\tglbView.setUint32(0, 0x46546C67, true);\n\t\t\tglbView.setUint32(4, 2, true);\n\t\t\tglbView.setUint32(8, totalLength, true);\n\t\t\tglbView.setUint32(12, jsonDataLength + jsonPaddingLength, true);\n\t\t\tglbView.setUint32(16, 0x4E4F534A, true);\n\t\t\tlet offset = headerLength + jsonHeaderLength;\n\t\t\tnew Uint8Array(glbBuffer, offset, jsonDataLength).set(jsonData);\n\t\t\toffset += jsonDataLength;\n\t\t\tfor (let i = 0; i < jsonPaddingLength; i++) {\n\t\t\t\tglbView.setUint8(offset + i, 0x20);\n\t\t\t}\n\t\t\toffset += jsonPaddingLength;\n\t\t\tif (binaryDataLength > 0) {\n\t\t\t\tglbView.setUint32(offset, binaryDataLength, true);\n\t\t\t\tglbView.setUint32(offset + 4, 0x004E4942, true);\n\t\t\t\toffset += binaryHeaderLength;\n\t\t\t\tresources.buffers.forEach(buffer => {\n\t\t\t\t\tlet src;\n\t\t\t\t\tconst bufferViewId = resources.bufferViewMap.get(buffer)[0];\n\t\t\t\t\tconst bufferOffset = json.bufferViews[bufferViewId].byteOffset;\n\t\t\t\t\tif (buffer instanceof ArrayBuffer) {\n\t\t\t\t\t\tsrc = new Uint8Array(buffer);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst srcBuffer = buffer.lock();\n\t\t\t\t\t\tif (srcBuffer instanceof ArrayBuffer) {\n\t\t\t\t\t\t\tsrc = new Uint8Array(srcBuffer);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsrc = new Uint8Array(srcBuffer.buffer, srcBuffer.byteOffset, srcBuffer.byteLength);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tconst dst = new Uint8Array(glbBuffer, offset + bufferOffset, src.byteLength);\n\t\t\t\t\tdst.set(src);\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn Promise.resolve(glbBuffer);\n\t\t});\n\t}\n}\n\nclass RenderPassDownsample extends RenderPassShaderQuad {\n\tconstructor(device, sourceTexture) {\n\t\tsuper(device);\n\t\tthis.sourceTexture = sourceTexture;\n\t\tthis.shader = this.createQuadShader('DownSampleShader', `\n\t\t\tuniform sampler2D sourceTexture;\n\t\t\tuniform vec2 sourceInvResolution;\n\t\t\tvarying vec2 uv0;\n\t\t\tvoid main()\n\t\t\t{\n\t\t\t\tfloat x = sourceInvResolution.x;\n\t\t\t\tfloat y = sourceInvResolution.y;\n\t\t\t\tvec3 a = texture2D (sourceTexture, vec2 (uv0.x - 2.0 * x, uv0.y + 2.0 * y)).rgb;\n\t\t\t\tvec3 b = texture2D (sourceTexture, vec2 (uv0.x,\t\t   uv0.y + 2.0 * y)).rgb;\n\t\t\t\tvec3 c = texture2D (sourceTexture, vec2 (uv0.x + 2.0 * x, uv0.y + 2.0 * y)).rgb;\n\t\t\t\tvec3 d = texture2D (sourceTexture, vec2 (uv0.x - 2.0 * x, uv0.y)).rgb;\n\t\t\t\tvec3 e = texture2D (sourceTexture, vec2 (uv0.x,\t\t   uv0.y)).rgb;\n\t\t\t\tvec3 f = texture2D (sourceTexture, vec2 (uv0.x + 2.0 * x, uv0.y)).rgb;\n\t\t\t\tvec3 g = texture2D (sourceTexture, vec2 (uv0.x - 2.0 * x, uv0.y - 2.0 * y)).rgb;\n\t\t\t\tvec3 h = texture2D (sourceTexture, vec2 (uv0.x,\t\t   uv0.y - 2.0 * y)).rgb;\n\t\t\t\tvec3 i = texture2D (sourceTexture, vec2 (uv0.x + 2.0 * x, uv0.y - 2.0 * y)).rgb;\n\t\t\t\tvec3 j = texture2D (sourceTexture, vec2 (uv0.x - x, uv0.y + y)).rgb;\n\t\t\t\tvec3 k = texture2D (sourceTexture, vec2 (uv0.x + x, uv0.y + y)).rgb;\n\t\t\t\tvec3 l = texture2D (sourceTexture, vec2 (uv0.x - x, uv0.y - y)).rgb;\n\t\t\t\tvec3 m = texture2D (sourceTexture, vec2 (uv0.x + x, uv0.y - y)).rgb;\n\t\t\t\tvec3 value = e * 0.125;\n\t\t\t\tvalue += (a + c + g + i) * 0.03125;\n\t\t\t\tvalue += (b + d + f + h) * 0.0625;\n\t\t\t\tvalue += (j + k + l + m) * 0.125;\n\t\t\t\tgl_FragColor = vec4(value, 1.0);\n\t\t\t}`);\n\t\tthis.sourceTextureId = device.scope.resolve('sourceTexture');\n\t\tthis.sourceInvResolutionId = device.scope.resolve('sourceInvResolution');\n\t\tthis.sourceInvResolutionValue = new Float32Array(2);\n\t}\n\texecute() {\n\t\tthis.sourceTextureId.setValue(this.sourceTexture);\n\t\tthis.sourceInvResolutionValue[0] = 1.0 / this.sourceTexture.width;\n\t\tthis.sourceInvResolutionValue[1] = 1.0 / this.sourceTexture.height;\n\t\tthis.sourceInvResolutionId.setValue(this.sourceInvResolutionValue);\n\t\tsuper.execute();\n\t}\n}\n\nclass RenderPassUpsample extends RenderPassShaderQuad {\n\tconstructor(device, sourceTexture) {\n\t\tsuper(device);\n\t\tthis.sourceTexture = sourceTexture;\n\t\tthis.shader = this.createQuadShader('UpSampleShader', `\n\t\t\tuniform sampler2D sourceTexture;\n\t\t\tuniform vec2 sourceInvResolution;\n\t\t\tvarying vec2 uv0;\n\t\t\tvoid main()\n\t\t\t{\n\t\t\t\tfloat x = sourceInvResolution.x;\n\t\t\t\tfloat y = sourceInvResolution.y;\n\t\t\t\tvec3 a = texture2D (sourceTexture, vec2 (uv0.x - x, uv0.y + y)).rgb;\n\t\t\t\tvec3 b = texture2D (sourceTexture, vec2 (uv0.x,\t uv0.y + y)).rgb;\n\t\t\t\tvec3 c = texture2D (sourceTexture, vec2 (uv0.x + x, uv0.y + y)).rgb;\n\t\t\t\tvec3 d = texture2D (sourceTexture, vec2 (uv0.x - x, uv0.y)).rgb;\n\t\t\t\tvec3 e = texture2D (sourceTexture, vec2 (uv0.x,\t uv0.y)).rgb;\n\t\t\t\tvec3 f = texture2D (sourceTexture, vec2 (uv0.x + x, uv0.y)).rgb;\n\t\t\t\tvec3 g = texture2D (sourceTexture, vec2 (uv0.x - x, uv0.y - y)).rgb;\n\t\t\t\tvec3 h = texture2D (sourceTexture, vec2 (uv0.x,\t uv0.y - y)).rgb;\n\t\t\t\tvec3 i = texture2D (sourceTexture, vec2 (uv0.x + x, uv0.y - y)).rgb;\n\t\t\t\tvec3 value = e * 4.0;\n\t\t\t\tvalue += (b + d + f + h) * 2.0;\n\t\t\t\tvalue += (a + c + g + i);\n\t\t\t\tvalue *= 1.0 / 16.0;\n\t\t\t\tgl_FragColor = vec4(value, 1.0);\n\t\t\t}`);\n\t\tthis.sourceTextureId = device.scope.resolve('sourceTexture');\n\t\tthis.sourceInvResolutionId = device.scope.resolve('sourceInvResolution');\n\t\tthis.sourceInvResolutionValue = new Float32Array(2);\n\t}\n\texecute() {\n\t\tthis.sourceTextureId.setValue(this.sourceTexture);\n\t\tthis.sourceInvResolutionValue[0] = 1.0 / this.sourceTexture.width;\n\t\tthis.sourceInvResolutionValue[1] = 1.0 / this.sourceTexture.height;\n\t\tthis.sourceInvResolutionId.setValue(this.sourceInvResolutionValue);\n\t\tsuper.execute();\n\t}\n}\n\nclass RenderPassBloom extends RenderPass {\n\tconstructor(device, sourceTexture, format) {\n\t\tsuper(device);\n\t\tthis.bloomTexture = void 0;\n\t\tthis.lastMipLevel = 1;\n\t\tthis.bloomRenderTarget = void 0;\n\t\tthis.textureFormat = void 0;\n\t\tthis.renderTargets = [];\n\t\tthis._sourceTexture = sourceTexture;\n\t\tthis.textureFormat = format;\n\t\tthis.bloomRenderTarget = this.createRenderTarget(0);\n\t\tthis.bloomTexture = this.bloomRenderTarget.colorBuffer;\n\t}\n\tdestroy() {\n\t\tthis.destroyRenderPasses();\n\t\tthis.destroyRenderTargets();\n\t}\n\tdestroyRenderTargets(startIndex = 0) {\n\t\tfor (let i = startIndex; i < this.renderTargets.length; i++) {\n\t\t\tconst rt = this.renderTargets[i];\n\t\t\trt.destroyTextureBuffers();\n\t\t\trt.destroy();\n\t\t}\n\t\tthis.renderTargets.length = 0;\n\t}\n\tdestroyRenderPasses() {\n\t\tfor (let i = 0; i < this.beforePasses.length; i++) {\n\t\t\tthis.beforePasses[i].destroy();\n\t\t}\n\t\tthis.beforePasses.length = 0;\n\t}\n\tcreateRenderTarget(index) {\n\t\treturn new RenderTarget({\n\t\t\tdepth: false,\n\t\t\tcolorBuffer: new Texture(this.device, {\n\t\t\t\tname: `BloomTexture${index}`,\n\t\t\t\twidth: 1,\n\t\t\t\theight: 1,\n\t\t\t\tformat: this.textureFormat,\n\t\t\t\tmipmaps: false,\n\t\t\t\tminFilter: FILTER_LINEAR,\n\t\t\t\tmagFilter: FILTER_LINEAR,\n\t\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE\n\t\t\t})\n\t\t});\n\t}\n\tcreateRenderTargets(count) {\n\t\tfor (let i = 0; i < count; i++) {\n\t\t\tconst rt = i === 0 ? this.bloomRenderTarget : this.createRenderTarget(i);\n\t\t\tthis.renderTargets.push(rt);\n\t\t}\n\t}\n\tcalcMipLevels(width, height, minSize) {\n\t\tconst min = Math.min(width, height);\n\t\treturn Math.floor(Math.log2(min) - Math.log2(minSize));\n\t}\n\tcreateRenderPasses(numPasses) {\n\t\tconst device = this.device;\n\t\tlet passSourceTexture = this._sourceTexture;\n\t\tfor (let i = 0; i < numPasses; i++) {\n\t\t\tconst pass = new RenderPassDownsample(device, passSourceTexture);\n\t\t\tconst rt = this.renderTargets[i];\n\t\t\tpass.init(rt, {\n\t\t\t\tresizeSource: passSourceTexture,\n\t\t\t\tscaleX: 0.5,\n\t\t\t\tscaleY: 0.5\n\t\t\t});\n\t\t\tpass.setClearColor(Color.BLACK);\n\t\t\tthis.beforePasses.push(pass);\n\t\t\tpassSourceTexture = rt.colorBuffer;\n\t\t}\n\t\tpassSourceTexture = this.renderTargets[numPasses - 1].colorBuffer;\n\t\tfor (let i = numPasses - 2; i >= 0; i--) {\n\t\t\tconst pass = new RenderPassUpsample(device, passSourceTexture);\n\t\t\tconst rt = this.renderTargets[i];\n\t\t\tpass.init(rt);\n\t\t\tpass.blendState = BlendState.ADDBLEND;\n\t\t\tthis.beforePasses.push(pass);\n\t\t\tpassSourceTexture = rt.colorBuffer;\n\t\t}\n\t}\n\tonDisable() {\n\t\tvar _this$renderTargets$;\n\t\t(_this$renderTargets$ = this.renderTargets[0]) == null || _this$renderTargets$.resize(1, 1);\n\t\tthis.destroyRenderPasses();\n\t\tthis.destroyRenderTargets(1);\n\t}\n\tset sourceTexture(value) {\n\t\tthis._sourceTexture = value;\n\t\tif (this.beforePasses.length > 0) {\n\t\t\tconst firstPass = this.beforePasses[0];\n\t\t\tfirstPass.options.resizeSource = value;\n\t\t\tfirstPass.sourceTexture = value;\n\t\t}\n\t}\n\tget sourceTexture() {\n\t\treturn this._sourceTexture;\n\t}\n\tframeUpdate() {\n\t\tsuper.frameUpdate();\n\t\tlet numPasses = this.calcMipLevels(this._sourceTexture.width, this._sourceTexture.height, 2 ** this.lastMipLevel);\n\t\tnumPasses = Math.max(1, numPasses);\n\t\tif (this.renderTargets.length !== numPasses) {\n\t\t\tthis.destroyRenderPasses();\n\t\t\tthis.destroyRenderTargets(1);\n\t\t\tthis.createRenderTargets(numPasses);\n\t\t\tthis.createRenderPasses(numPasses);\n\t\t}\n\t}\n}\n\nconst fragmentShader = `\n\tvarying vec2 uv0;\n\tuniform sampler2D sceneTexture;\n\tuniform vec2 sceneTextureInvRes;\n\t#ifdef BLOOM\n\t\tuniform sampler2D bloomTexture;\n\t\tuniform float bloomIntensity;\n\t#endif\n\t#ifdef GRADING\n\t\tuniform vec3 brightnessContrastSaturation;\n\t\tvec3 contrastSaturationBrightness(vec3 color, float brt, float sat, float con)\n\t\t{\n\t\t\tcolor = color * brt;\n\t\t\tfloat grey = dot(color, vec3(0.3, 0.59, 0.11));\n\t\t\tcolor  = mix(vec3(grey), color, sat);\n\t\t\treturn max(mix(vec3(0.5), color, con), 0.0);\n\t\t}\n\t\n\t#endif\n\t#ifdef VIGNETTE\n\t\tuniform vec4 vignetterParams;\n\t\tfloat vignette(vec2 uv) {\n\t\t\tfloat inner = vignetterParams.x;\n\t\t\tfloat outer = vignetterParams.y;\n\t\t\tfloat curvature = vignetterParams.z;\n\t\t\tfloat intensity = vignetterParams.w;\n\t\t\tvec2 curve = pow(abs(uv * 2.0 -1.0), vec2(1.0 / curvature));\n\t\t\tfloat edge = pow(length(curve), curvature);\n\t\t\treturn 1.0 - intensity * smoothstep(inner, outer, edge);\n\t\t}\t\t\n\t#endif\n\t#ifdef FRINGING\n\t\tuniform float fringingIntensity;\n\t\tvec3 fringing(vec2 uv, vec3 color) {\n\t\t\tvec2 centerDistance = uv0 - 0.5;\n\t\t\tvec2 offset = fringingIntensity * pow(centerDistance, vec2(2.0, 2.0));\n\t\t\tcolor.r = texture2D(sceneTexture, uv0 - offset).r;\n\t\t\tcolor.b = texture2D(sceneTexture, uv0 + offset).b;\n\t\t\treturn color;\n\t\t}\n\t#endif\n\t#ifdef CAS\n\t\tuniform float sharpness;\n\t\tfloat maxComponent(float x, float y, float z) { return max(x, max(y, z)); }\n\t\tvec3 toSDR(vec3 c) { return c / (1.0 + maxComponent(c.r, c.g, c.b)); }\n\t\tvec3 toHDR(vec3 c) { return c / (1.0 - maxComponent(c.r, c.g, c.b)); }\n\t\tvec3 cas(vec3 color, vec2 uv, float sharpness) {\n\t\t\tfloat x = sceneTextureInvRes.x;\n\t\t\tfloat y = sceneTextureInvRes.y;\n\t\t\tvec3 a = toSDR(texture2DLodEXT(sceneTexture, uv + vec2(0.0, -y), 0.0).rgb);\n\t\t\tvec3 b = toSDR(texture2DLodEXT(sceneTexture, uv + vec2(-x, 0.0), 0.0).rgb);\n\t\t\tvec3 c = toSDR(color.rgb);\n\t\t\tvec3 d = toSDR(texture2DLodEXT(sceneTexture, uv + vec2(x, 0.0), 0.0).rgb);\n\t\t\tvec3 e = toSDR(texture2DLodEXT(sceneTexture, uv + vec2(0.0, y), 0.0).rgb);\n\t\t\tfloat min_g = min(a.g, min(b.g, min(c.g, min(d.g, e.g))));\n\t\t\tfloat max_g = max(a.g, max(b.g, max(c.g, max(d.g, e.g))));\n\t\t\tfloat sharpening_amount = sqrt(min(1.0 - max_g, min_g) / max_g);\n\t\t\tfloat w = sharpening_amount * sharpness;\n\t\t\tvec3 res = (w * (a + b + d + e) + c) / (4.0 * w + 1.0);\n\t\t\treturn toHDR(res);\n\t\t}\n\t#endif\n\tvoid main() {\n\t\tvec2 uv = uv0;\n\t\t#ifdef TAA\n\t\t#ifdef WEBGPU\n\t\t\tuv.y = 1.0 - uv.y;\n\t\t#endif\n\t\t#endif\n\t\tvec4 scene = texture2DLodEXT(sceneTexture, uv, 0.0);\n\t\tvec3 result = scene.rgb;\n\t\t#ifdef CAS\n\t\t\tresult = cas(result, uv, sharpness);\n\t\t#endif\n\t\t#ifdef FRINGING\n\t\t\tresult = fringing(uv, result);\n\t\t#endif\n\t\t#ifdef BLOOM\n\t\t\tvec3 bloom = texture2DLodEXT(bloomTexture, uv, 0.0).rgb;\n\t\t\tresult += bloom * bloomIntensity;\n\t\t#endif\n\t\t#ifdef GRADING\n\t\t\tresult = contrastSaturationBrightness(result, brightnessContrastSaturation.x, brightnessContrastSaturation.z, brightnessContrastSaturation.y);\n\t\t#endif\n\t\tresult = toneMap(result);\n\t\t#ifdef VIGNETTE\n\t\t\tresult *= vignette(uv);\n\t\t#endif\n\t\tresult = gammaCorrectOutput(result);\n\t\tgl_FragColor = vec4(result, scene.a);\n\t}\n`;\nclass RenderPassCompose extends RenderPassShaderQuad {\n\tconstructor(graphicsDevice) {\n\t\tsuper(graphicsDevice);\n\t\tthis.sceneTexture = null;\n\t\tthis.bloomIntensity = 0.01;\n\t\tthis._bloomTexture = null;\n\t\tthis._toneMapping = TONEMAP_ACES2;\n\t\tthis._gradingEnabled = false;\n\t\tthis.gradingSaturation = 1;\n\t\tthis.gradingContrast = 1;\n\t\tthis.gradingBrightness = 1;\n\t\tthis._shaderDirty = true;\n\t\tthis._vignetteEnabled = false;\n\t\tthis.vignetteInner = 0.5;\n\t\tthis.vignetteOuter = 1.0;\n\t\tthis.vignetteCurvature = 0.5;\n\t\tthis.vignetteIntensity = 0.3;\n\t\tthis._fringingEnabled = false;\n\t\tthis.fringingIntensity = 10;\n\t\tthis._taaEnabled = false;\n\t\tthis._sharpness = 0.5;\n\t\tthis._key = '';\n\t\tconst {\n\t\t\tscope\n\t\t} = graphicsDevice;\n\t\tthis.sceneTextureId = scope.resolve('sceneTexture');\n\t\tthis.bloomTextureId = scope.resolve('bloomTexture');\n\t\tthis.bloomIntensityId = scope.resolve('bloomIntensity');\n\t\tthis.bcsId = scope.resolve('brightnessContrastSaturation');\n\t\tthis.vignetterParamsId = scope.resolve('vignetterParams');\n\t\tthis.fringingIntensityId = scope.resolve('fringingIntensity');\n\t\tthis.sceneTextureInvResId = scope.resolve('sceneTextureInvRes');\n\t\tthis.sceneTextureInvResValue = new Float32Array(2);\n\t\tthis.sharpnessId = scope.resolve('sharpness');\n\t}\n\tset bloomTexture(value) {\n\t\tif (this._bloomTexture !== value) {\n\t\t\tthis._bloomTexture = value;\n\t\t\tthis._shaderDirty = true;\n\t\t}\n\t}\n\tget bloomTexture() {\n\t\treturn this._bloomTexture;\n\t}\n\tset taaEnabled(value) {\n\t\tif (this._taaEnabled !== value) {\n\t\t\tthis._taaEnabled = value;\n\t\t\tthis._shaderDirty = true;\n\t\t}\n\t}\n\tget taaEnabled() {\n\t\treturn this._taaEnabled;\n\t}\n\tset gradingEnabled(value) {\n\t\tif (this._gradingEnabled !== value) {\n\t\t\tthis._gradingEnabled = value;\n\t\t\tthis._shaderDirty = true;\n\t\t}\n\t}\n\tget gradingEnabled() {\n\t\treturn this._gradingEnabled;\n\t}\n\tset vignetteEnabled(value) {\n\t\tif (this._vignetteEnabled !== value) {\n\t\t\tthis._vignetteEnabled = value;\n\t\t\tthis._shaderDirty = true;\n\t\t}\n\t}\n\tget vignetteEnabled() {\n\t\treturn this._vignetteEnabled;\n\t}\n\tset fringingEnabled(value) {\n\t\tif (this._fringingEnabled !== value) {\n\t\t\tthis._fringingEnabled = value;\n\t\t\tthis._shaderDirty = true;\n\t\t}\n\t}\n\tget fringingEnabled() {\n\t\treturn this._fringingEnabled;\n\t}\n\tset toneMapping(value) {\n\t\tif (this._toneMapping !== value) {\n\t\t\tthis._toneMapping = value;\n\t\t\tthis._shaderDirty = true;\n\t\t}\n\t}\n\tget toneMapping() {\n\t\treturn this._toneMapping;\n\t}\n\tget toneMapChunk() {\n\t\tswitch (this.toneMapping) {\n\t\t\tcase TONEMAP_LINEAR:\n\t\t\t\treturn shaderChunks.tonemappingLinearPS;\n\t\t\tcase TONEMAP_FILMIC:\n\t\t\t\treturn shaderChunks.tonemappingFilmicPS;\n\t\t\tcase TONEMAP_HEJL:\n\t\t\t\treturn shaderChunks.tonemappingHejlPS;\n\t\t\tcase TONEMAP_ACES:\n\t\t\t\treturn shaderChunks.tonemappingAcesPS;\n\t\t\tcase TONEMAP_ACES2:\n\t\t\t\treturn shaderChunks.tonemappingAces2PS;\n\t\t\tcase TONEMAP_NEUTRAL:\n\t\t\t\treturn shaderChunks.tonemappingNeutralPS;\n\t\t}\n\t\treturn shaderChunks.tonemappingNonePS;\n\t}\n\tset sharpness(value) {\n\t\tif (this._sharpness !== value) {\n\t\t\tthis._sharpness = value;\n\t\t\tthis._shaderDirty = true;\n\t\t}\n\t}\n\tget sharpness() {\n\t\treturn this._sharpness;\n\t}\n\tget isSharpnessEnabled() {\n\t\treturn this._sharpness > 0;\n\t}\n\tpostInit() {\n\t\tthis.setClearColor(Color.BLACK);\n\t\tthis.setClearDepth(1.0);\n\t\tthis.setClearStencil(0);\n\t}\n\tframeUpdate() {\n\t\tif (this._shaderDirty) {\n\t\t\tthis._shaderDirty = false;\n\t\t\tconst key = `${this.toneMapping}` + `-${this.bloomTexture ? 'bloom' : 'nobloom'}` + `-${this.gradingEnabled ? 'grading' : 'nograding'}` + `-${this.vignetteEnabled ? 'vignette' : 'novignette'}` + `-${this.fringingEnabled ? 'fringing' : 'nofringing'}` + `-${this.taaEnabled ? 'taa' : 'notaa'}` + `-${this.isSharpnessEnabled ? 'cas' : 'nocas'}`;\n\t\t\tif (this._key !== key) {\n\t\t\t\tthis._key = key;\n\t\t\t\tconst defines = (this.bloomTexture ? '#define BLOOM\\n' : '') + (this.gradingEnabled ? '#define GRADING\\n' : '') + (this.vignetteEnabled ? '#define VIGNETTE\\n' : '') + (this.fringingEnabled ? '#define FRINGING\\n' : '') + (this.taaEnabled ? '#define TAA\\n' : '') + (this.isSharpnessEnabled ? '#define CAS\\n' : '');\n\t\t\t\tconst fsChunks = shaderChunks.decodePS + shaderChunks.gamma2_2PS + this.toneMapChunk;\n\t\t\t\tthis.shader = this.createQuadShader(`ComposeShader-${key}`, defines + fsChunks + fragmentShader);\n\t\t\t}\n\t\t}\n\t}\n\texecute() {\n\t\tthis.sceneTextureId.setValue(this.sceneTexture);\n\t\tthis.sceneTextureInvResValue[0] = 1.0 / this.sceneTexture.width;\n\t\tthis.sceneTextureInvResValue[1] = 1.0 / this.sceneTexture.height;\n\t\tthis.sceneTextureInvResId.setValue(this.sceneTextureInvResValue);\n\t\tif (this._bloomTexture) {\n\t\t\tthis.bloomTextureId.setValue(this._bloomTexture);\n\t\t\tthis.bloomIntensityId.setValue(this.bloomIntensity);\n\t\t}\n\t\tif (this._gradingEnabled) {\n\t\t\tthis.bcsId.setValue([this.gradingBrightness, this.gradingContrast, this.gradingSaturation]);\n\t\t}\n\t\tif (this._vignetteEnabled) {\n\t\t\tthis.vignetterParamsId.setValue([this.vignetteInner, this.vignetteOuter, this.vignetteCurvature, this.vignetteIntensity]);\n\t\t}\n\t\tif (this._fringingEnabled) {\n\t\t\tthis.fringingIntensityId.setValue(this.fringingIntensity / 1024);\n\t\t}\n\t\tif (this.isSharpnessEnabled) {\n\t\t\tthis.sharpnessId.setValue(math.lerp(-0.125, -0.2, this.sharpness));\n\t\t}\n\t\tsuper.execute();\n\t}\n}\n\nconst fs = `\n\tuniform highp sampler2D uSceneDepthMap;\n\tuniform sampler2D sourceTexture;\n\tuniform sampler2D historyTexture;\n\tuniform mat4 matrix_viewProjectionPrevious;\n\tuniform mat4 matrix_viewProjectionInverse;\n\tuniform vec4 jitters;\n\tuniform vec2 textureSize;\n\tvarying vec2 uv0;\n\tvec2 reproject(vec2 uv, float depth) {\n\t\t#ifndef WEBGPU\n\t\t\tdepth = depth * 2.0 - 1.0;\n\t\t#endif\n\t\tvec4 ndc = vec4(uv * 2.0 - 1.0, depth, 1.0);\n\t\tndc.xy -= jitters.xy;\n\t\tvec4 worldPosition = matrix_viewProjectionInverse * ndc;\n\t\tworldPosition /= worldPosition.w;\n\t\n\t\tvec4 screenPrevious = matrix_viewProjectionPrevious * worldPosition;\n\t\treturn (screenPrevious.xy / screenPrevious.w) * 0.5 + 0.5;\n\t}\n\tvec4 colorClamp(vec2 uv, vec4 historyColor) {\n\t\tvec3 minColor = vec3(9999.0);\n\t\tvec3 maxColor = vec3(-9999.0);\n \n\t\tfor(float x = -1.0; x <= 1.0; ++x)\n\t\t{\n\t\t\tfor(float y = -1.0; y <= 1.0; ++y)\n\t\t\t{\n\t\t\t\tvec3 color = texture2D(sourceTexture, uv + vec2(x, y) / textureSize).rgb;\n\t\t\t\tminColor = min(minColor, color);\n\t\t\t\tmaxColor = max(maxColor, color);\n\t\t\t}\n\t\t}\n \n\t\tvec3 clamped = clamp(historyColor.rgb, minColor, maxColor);\n\t\treturn vec4(clamped, historyColor.a);\n\t}\n\tvoid main()\n\t{\n\t\tvec2 uv = uv0;\n\t\t#ifdef WEBGPU\n\t\t\tuv.y = 1.0 - uv.y;\n\t\t#endif\n\t\tvec4 srcColor = texture2D(sourceTexture, uv);\n\t\tfloat depth = texture2DLodEXT(uSceneDepthMap, uv, 0.0).r;\n\t\tvec2 historyUv = reproject(uv0, depth);\n\t\t#ifdef QUALITY_HIGH\n\t\t\tvec4 historyColor = SampleTextureCatmullRom(TEXTURE_PASS(historyTexture), historyUv, textureSize);\n\t\t#else\n\t\t\tvec4 historyColor = texture2D(historyTexture, historyUv);\n\t\t#endif\n\t\tvec4 historyColorClamped = colorClamp(uv, historyColor);\n\t\tfloat mixFactor = (historyUv.x < 0.0 || historyUv.x > 1.0 || historyUv.y < 0.0 || historyUv.y > 1.0) ?\n\t\t\t1.0 : 0.05;\n\t\tgl_FragColor = mix(historyColorClamped, srcColor, mixFactor);\n\t}\n`;\nclass RenderPassTAA extends RenderPassShaderQuad {\n\tconstructor(device, sourceTexture, cameraComponent) {\n\t\tsuper(device);\n\t\tthis.historyIndex = 0;\n\t\tthis.historyTexture = null;\n\t\tthis.historyTextures = [];\n\t\tthis.historyRenderTargets = [];\n\t\tthis.sourceTexture = sourceTexture;\n\t\tthis.cameraComponent = cameraComponent;\n\t\tconst defines = `\n\t\t\t#define QUALITY_HIGH\n\t\t`;\n\t\tconst fsChunks = shaderChunks.sampleCatmullRomPS;\n\t\tthis.shader = this.createQuadShader('TaaResolveShader', defines + fsChunks + fs);\n\t\tconst {\n\t\t\tscope\n\t\t} = device;\n\t\tthis.sourceTextureId = scope.resolve('sourceTexture');\n\t\tthis.textureSizeId = scope.resolve('textureSize');\n\t\tthis.textureSize = new Float32Array(2);\n\t\tthis.historyTextureId = scope.resolve('historyTexture');\n\t\tthis.viewProjPrevId = scope.resolve('matrix_viewProjectionPrevious');\n\t\tthis.viewProjInvId = scope.resolve('matrix_viewProjectionInverse');\n\t\tthis.jittersId = scope.resolve('jitters');\n\t\tthis.setup();\n\t}\n\tdestroy() {\n\t\tif (this.renderTarget) {\n\t\t\tthis.renderTarget.destroyTextureBuffers();\n\t\t\tthis.renderTarget.destroy();\n\t\t\tthis.renderTarget = null;\n\t\t}\n\t}\n\tsetup() {\n\t\tfor (let i = 0; i < 2; ++i) {\n\t\t\tthis.historyTextures[i] = new Texture(this.device, {\n\t\t\t\tname: `TAA-History-${i}`,\n\t\t\t\twidth: 4,\n\t\t\t\theight: 4,\n\t\t\t\tformat: this.sourceTexture.format,\n\t\t\t\tmipmaps: false,\n\t\t\t\tminFilter: FILTER_LINEAR,\n\t\t\t\tmagFilter: FILTER_LINEAR,\n\t\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE\n\t\t\t});\n\t\t\tthis.historyRenderTargets[i] = new RenderTarget({\n\t\t\t\tcolorBuffer: this.historyTextures[i],\n\t\t\t\tdepth: false\n\t\t\t});\n\t\t}\n\t\tthis.historyTexture = this.historyTextures[0];\n\t\tthis.init(this.historyRenderTargets[0], {\n\t\t\tresizeSource: this.sourceTexture\n\t\t});\n\t}\n\tbefore() {\n\t\tthis.sourceTextureId.setValue(this.sourceTexture);\n\t\tthis.historyTextureId.setValue(this.historyTextures[1 - this.historyIndex]);\n\t\tthis.textureSize[0] = this.sourceTexture.width;\n\t\tthis.textureSize[1] = this.sourceTexture.height;\n\t\tthis.textureSizeId.setValue(this.textureSize);\n\t\tconst camera = this.cameraComponent.camera;\n\t\tthis.viewProjPrevId.setValue(camera._viewProjPrevious.data);\n\t\tthis.viewProjInvId.setValue(camera._viewProjInverse.data);\n\t\tthis.jittersId.setValue(camera._jitters);\n\t}\n\tupdate() {\n\t\tthis.historyIndex = 1 - this.historyIndex;\n\t\tthis.historyTexture = this.historyTextures[this.historyIndex];\n\t\tthis.renderTarget = this.historyRenderTargets[this.historyIndex];\n\t\treturn this.historyTexture;\n\t}\n}\n\nconst tempMeshInstances = [];\nconst DEPTH_UNIFORM_NAME = 'uSceneDepthMap';\nconst VELOCITY_UNIFORM_NAME = 'uSceneVelocityMap';\nclass RenderPassPrepass extends RenderPass {\n\tconstructor(device, scene, renderer, camera, depthBuffer, options) {\n\t\tsuper(device);\n\t\tthis.viewBindGroups = [];\n\t\tthis.velocityTexture = void 0;\n\t\tthis.scene = scene;\n\t\tthis.renderer = renderer;\n\t\tthis.camera = camera;\n\t\tthis.setupRenderTarget(depthBuffer, options);\n\t}\n\tdestroy() {\n\t\tvar _this$renderTarget, _this$velocityTexture;\n\t\tsuper.destroy();\n\t\t(_this$renderTarget = this.renderTarget) == null || _this$renderTarget.destroy();\n\t\tthis.renderTarget = null;\n\t\t(_this$velocityTexture = this.velocityTexture) == null || _this$velocityTexture.destroy();\n\t\tthis.velocityTexture = null;\n\t\tthis.viewBindGroups.forEach(bg => {\n\t\t\tbg.defaultUniformBuffer.destroy();\n\t\t\tbg.destroy();\n\t\t});\n\t\tthis.viewBindGroups.length = 0;\n\t}\n\tsetupRenderTarget(depthBuffer, options) {\n\t\tconst {\n\t\t\tdevice\n\t\t} = this;\n\t\tconst velocityFormat = device.getRenderableHdrFormat([PIXELFORMAT_RGBA32F, PIXELFORMAT_RGBA16F]);\n\t\tthis.velocityTexture = new Texture(device, {\n\t\t\tname: 'VelocityTexture',\n\t\t\twidth: 4,\n\t\t\theight: 4,\n\t\t\tformat: velocityFormat,\n\t\t\tmipmaps: false,\n\t\t\tminFilter: FILTER_NEAREST,\n\t\t\tmagFilter: FILTER_NEAREST,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE\n\t\t});\n\t\tconst renderTarget = new RenderTarget({\n\t\t\tname: 'PrepassRT',\n\t\t\tdepthBuffer: depthBuffer\n\t\t});\n\t\tthis.init(renderTarget, options);\n\t\tthis.depthStencilOps.storeDepth = true;\n\t}\n\tafter() {\n\t\tthis.device.scope.resolve(DEPTH_UNIFORM_NAME).setValue(this.renderTarget.depthBuffer);\n\t\tthis.device.scope.resolve(VELOCITY_UNIFORM_NAME).setValue(this.velocityTexture);\n\t}\n\texecute() {\n\t\tconst {\n\t\t\trenderer,\n\t\t\tscene,\n\t\t\trenderTarget\n\t\t} = this;\n\t\tconst camera = this.camera.camera;\n\t\tconst layers = scene.layers.layerList;\n\t\tconst subLayerEnabled = scene.layers.subLayerEnabled;\n\t\tconst isTransparent = scene.layers.subLayerList;\n\t\tfor (let i = 0; i < layers.length; i++) {\n\t\t\tconst layer = layers[i];\n\t\t\tif (layer.enabled && subLayerEnabled[i]) {\n\t\t\t\tif (layer.camerasSet.has(camera)) {\n\t\t\t\t\tif (layer.id === LAYERID_DEPTH) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst culledInstances = layer.getCulledInstances(camera);\n\t\t\t\t\tconst meshInstances = isTransparent[i] ? culledInstances.transparent : culledInstances.opaque;\n\t\t\t\t\tfor (let j = 0; j < meshInstances.length; j++) {\n\t\t\t\t\t\tvar _meshInstance$materia;\n\t\t\t\t\t\tconst meshInstance = meshInstances[j];\n\t\t\t\t\t\tif ((_meshInstance$materia = meshInstance.material) != null && _meshInstance$materia.depthWrite) {\n\t\t\t\t\t\t\ttempMeshInstances.push(meshInstance);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\trenderer.renderForwardLayer(camera, renderTarget, null, undefined, SHADER_PREPASS_VELOCITY, this.viewBindGroups, {\n\t\t\t\t\t\tmeshInstances: tempMeshInstances\n\t\t\t\t\t});\n\t\t\t\t\ttempMeshInstances.length = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tframeUpdate() {\n\t\tsuper.frameUpdate();\n\t\tconst {\n\t\t\tcamera\n\t\t} = this;\n\t\tthis.setClearDepth(camera.clearDepthBuffer ? 1 : undefined);\n\t}\n}\n\nclass RenderPassCameraFrame extends RenderPass {\n\tconstructor(app, options = {}) {\n\t\tsuper(app.graphicsDevice);\n\t\tthis.app = void 0;\n\t\tthis.prePass = void 0;\n\t\tthis.scenePass = void 0;\n\t\tthis.composePass = void 0;\n\t\tthis.bloomPass = void 0;\n\t\tthis.taaPass = void 0;\n\t\tthis._bloomEnabled = true;\n\t\tthis._renderTargetScale = 1;\n\t\tthis._rt = null;\n\t\tthis.app = app;\n\t\tthis.options = this.sanitizeOptions(options);\n\t\tthis.setupRenderPasses(this.options);\n\t}\n\tdestroy() {\n\t\tif (this._rt) {\n\t\t\tthis._rt.destroyTextureBuffers();\n\t\t\tthis._rt.destroy();\n\t\t\tthis._rt = null;\n\t\t}\n\t\tthis.beforePasses.forEach(pass => pass.destroy());\n\t\tthis.beforePasses = null;\n\t}\n\tsanitizeOptions(options) {\n\t\tconst defaults = {\n\t\t\tcamera: null,\n\t\t\tsamples: 2,\n\t\t\tsceneColorMap: true,\n\t\t\tlastGrabLayerId: LAYERID_SKYBOX,\n\t\t\tlastGrabLayerIsTransparent: false,\n\t\t\tlastSceneLayerId: LAYERID_IMMEDIATE,\n\t\t\tlastSceneLayerIsTransparent: true,\n\t\t\ttaaEnabled: false\n\t\t};\n\t\treturn Object.assign({}, defaults, options);\n\t}\n\tset renderTargetScale(value) {\n\t\tthis._renderTargetScale = value;\n\t\tif (this.scenePass) {\n\t\t\tthis.scenePass.options.scaleX = value;\n\t\t\tthis.scenePass.options.scaleY = value;\n\t\t}\n\t}\n\tget renderTargetScale() {\n\t\treturn this._renderTargetScale;\n\t}\n\tset bloomEnabled(value) {\n\t\tif (this._bloomEnabled !== value) {\n\t\t\tthis._bloomEnabled = value;\n\t\t\tthis.composePass.bloomTexture = value ? this.bloomPass.bloomTexture : null;\n\t\t\tthis.bloomPass.enabled = value;\n\t\t}\n\t}\n\tget bloomEnabled() {\n\t\treturn this._bloomEnabled;\n\t}\n\tset lastMipLevel(value) {\n\t\tthis.bloomPass.lastMipLevel = value;\n\t}\n\tget lastMipLevel() {\n\t\treturn this.bloomPass.lastMipLevel;\n\t}\n\tsetupRenderPasses(options) {\n\t\tconst {\n\t\t\tapp,\n\t\t\tdevice\n\t\t} = this;\n\t\tconst {\n\t\t\tscene,\n\t\t\trenderer\n\t\t} = app;\n\t\tconst composition = scene.layers;\n\t\tconst cameraComponent = options.camera;\n\t\tconst targetRenderTarget = cameraComponent.renderTarget;\n\t\tconst format = device.getRenderableHdrFormat() || PIXELFORMAT_RGBA8;\n\t\tconst sceneTexture = new Texture(device, {\n\t\t\tname: 'SceneColor',\n\t\t\twidth: 4,\n\t\t\theight: 4,\n\t\t\tformat: format,\n\t\t\tmipmaps: false,\n\t\t\tminFilter: FILTER_LINEAR,\n\t\t\tmagFilter: FILTER_LINEAR,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE\n\t\t});\n\t\tconst sceneDepth = new Texture(device, {\n\t\t\tname: 'SceneDepth',\n\t\t\twidth: 4,\n\t\t\theight: 4,\n\t\t\tformat: PIXELFORMAT_DEPTH,\n\t\t\tmipmaps: false,\n\t\t\tminFilter: FILTER_NEAREST,\n\t\t\tmagFilter: FILTER_NEAREST,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE\n\t\t});\n\t\tconst rt = new RenderTarget({\n\t\t\tcolorBuffer: sceneTexture,\n\t\t\tdepthBuffer: sceneDepth,\n\t\t\tsamples: options.samples\n\t\t});\n\t\tthis._rt = rt;\n\t\tconst sceneOptions = {\n\t\t\tresizeSource: targetRenderTarget,\n\t\t\tscaleX: this.renderTargetScale,\n\t\t\tscaleY: this.renderTargetScale\n\t\t};\n\t\tif (options.prepassEnabled) {\n\t\t\tthis.prePass = new RenderPassPrepass(device, scene, renderer, cameraComponent, sceneDepth, sceneOptions);\n\t\t}\n\t\tthis.scenePass = new RenderPassForward(device, composition, scene, renderer);\n\t\tthis.scenePass.init(rt, sceneOptions);\n\t\tif (options.prepassEnabled) {\n\t\t\tthis.scenePass.noDepthClear = true;\n\t\t\tthis.scenePass.depthStencilOps.storeDepth = true;\n\t\t}\n\t\tconst lastLayerId = options.sceneColorMap ? options.lastGrabLayerId : options.lastSceneLayerId;\n\t\tconst lastLayerIsTransparent = options.sceneColorMap ? options.lastGrabLayerIsTransparent : options.lastSceneLayerIsTransparent;\n\t\tlet clearRenderTarget = true;\n\t\tlet lastAddedIndex = 0;\n\t\tlastAddedIndex = this.scenePass.addLayers(composition, cameraComponent, lastAddedIndex, clearRenderTarget, lastLayerId, lastLayerIsTransparent);\n\t\tclearRenderTarget = false;\n\t\tlet colorGrabPass;\n\t\tlet scenePassTransparent;\n\t\tif (options.sceneColorMap) {\n\t\t\tcolorGrabPass = new RenderPassColorGrab(device);\n\t\t\tcolorGrabPass.source = rt;\n\t\t\tscenePassTransparent = new RenderPassForward(device, composition, scene, renderer);\n\t\t\tscenePassTransparent.init(rt);\n\t\t\tlastAddedIndex = scenePassTransparent.addLayers(composition, cameraComponent, lastAddedIndex, clearRenderTarget, options.lastSceneLayerId, options.lastSceneLayerIsTransparent);\n\t\t\tif (options.prepassEnabled) {\n\t\t\t\tscenePassTransparent.depthStencilOps.storeDepth = true;\n\t\t\t}\n\t\t}\n\t\tlet sceneTextureWithTaa = sceneTexture;\n\t\tif (options.taaEnabled) {\n\t\t\tthis.taaPass = new RenderPassTAA(device, sceneTexture, cameraComponent);\n\t\t\tsceneTextureWithTaa = this.taaPass.historyTexture;\n\t\t}\n\t\tthis.bloomPass = new RenderPassBloom(app.graphicsDevice, sceneTextureWithTaa, format);\n\t\tthis.composePass = new RenderPassCompose(app.graphicsDevice);\n\t\tthis.composePass.bloomTexture = this.bloomPass.bloomTexture;\n\t\tthis.composePass.taaEnabled = options.taaEnabled;\n\t\tthis.composePass.init(targetRenderTarget);\n\t\tconst afterPass = new RenderPassForward(device, composition, scene, renderer);\n\t\tafterPass.init(targetRenderTarget);\n\t\tafterPass.addLayers(composition, cameraComponent, lastAddedIndex, clearRenderTarget);\n\t\tconst allPasses = [this.prePass, this.scenePass, colorGrabPass, scenePassTransparent, this.taaPass, this.bloomPass, this.composePass, afterPass];\n\t\tthis.beforePasses = allPasses.filter(element => element !== undefined);\n\t}\n\tframeUpdate() {\n\t\tvar _this$taaPass$update, _this$taaPass;\n\t\tsuper.frameUpdate();\n\t\tconst sceneTexture = (_this$taaPass$update = (_this$taaPass = this.taaPass) == null ? void 0 : _this$taaPass.update()) != null ? _this$taaPass$update : this._rt.colorBuffer;\n\t\tthis.composePass.sceneTexture = sceneTexture;\n\t\tif (this.bloomEnabled) {\n\t\t\tthis.bloomPass.sourceTexture = sceneTexture;\n\t\t}\n\t}\n}\n\nconst GIZMOSPACE_LOCAL = 'local';\nconst GIZMOSPACE_WORLD = 'world';\nconst GIZMOAXIS_X = 'x';\nconst GIZMOAXIS_Y = 'y';\nconst GIZMOAXIS_Z = 'z';\nconst GIZMOAXIS_YZ = 'yz';\nconst GIZMOAXIS_XZ = 'xz';\nconst GIZMOAXIS_XY = 'xy';\nconst GIZMOAXIS_XYZ = 'xyz';\nconst GIZMOAXIS_FACE = 'face';\n\nconst tmpV1$8 = new Vec3();\nconst tmpV2$8 = new Vec3();\nconst tmpM1$2 = new Mat4();\nconst tmpM2 = new Mat4();\nconst tmpR1$1 = new Ray();\nconst LAYER_NAME = 'Gizmo';\nconst MIN_SCALE = 1e-4;\nconst PERS_SCALE_RATIO = 0.3;\nconst ORTHO_SCALE_RATIO = 0.32;\nconst UPDATE_EPSILON$1 = 1e-6;\nclass Gizmo extends EventHandler {\n\tstatic createLayer(app, layerName = LAYER_NAME, layerIndex) {\n\t\tconst layer = new Layer({\n\t\t\tname: layerName,\n\t\t\tclearDepthBuffer: true,\n\t\t\topaqueSortMode: SORTMODE_NONE,\n\t\t\ttransparentSortMode: SORTMODE_NONE\n\t\t});\n\t\tapp.scene.layers.insert(layer, layerIndex != null ? layerIndex : app.scene.layers.layerList.length);\n\t\treturn layer;\n\t}\n\tconstructor(camera, layer) {\n\t\tsuper();\n\t\tthis._size = 1;\n\t\tthis._scale = 1;\n\t\tthis._coordSpace = GIZMOSPACE_WORLD;\n\t\tthis._app = void 0;\n\t\tthis._device = void 0;\n\t\tthis._camera = void 0;\n\t\tthis._layer = void 0;\n\t\tthis.nodes = [];\n\t\tthis.root = void 0;\n\t\tthis.intersectShapes = [];\n\t\tthis._camera = camera;\n\t\tthis._app = camera.system.app;\n\t\tthis._device = this._app.graphicsDevice;\n\t\tthis._layer = layer;\n\t\tcamera.layers = camera.layers.concat(layer.id);\n\t\tthis.root = new Entity('gizmo');\n\t\tthis._app.root.addChild(this.root);\n\t\tthis.root.enabled = false;\n\t\tthis._updateScale();\n\t\tthis._onPointerDown = this._onPointerDown.bind(this);\n\t\tthis._onPointerMove = this._onPointerMove.bind(this);\n\t\tthis._onPointerUp = this._onPointerUp.bind(this);\n\t\tthis._device.canvas.addEventListener('pointerdown', this._onPointerDown);\n\t\tthis._device.canvas.addEventListener('pointermove', this._onPointerMove);\n\t\tthis._device.canvas.addEventListener('pointerup', this._onPointerUp);\n\t\tthis._app.on('update', () => {\n\t\t\tthis._updatePosition();\n\t\t\tthis._updateRotation();\n\t\t\tthis._updateScale();\n\t\t});\n\t\tthis._app.on('destroy', () => this.destroy());\n\t}\n\tget layer() {\n\t\treturn this._layer;\n\t}\n\tset coordSpace(value) {\n\t\tthis._coordSpace = value != null ? value : GIZMOSPACE_WORLD;\n\t\tthis._updateRotation();\n\t}\n\tget coordSpace() {\n\t\treturn this._coordSpace;\n\t}\n\tset size(value) {\n\t\tthis._size = value;\n\t\tthis._updateScale();\n\t}\n\tget size() {\n\t\treturn this._size;\n\t}\n\tget facing() {\n\t\tif (this._camera.projection === PROJECTION_PERSPECTIVE) {\n\t\t\tconst gizmoPos = this.root.getPosition();\n\t\t\tconst cameraPos = this._camera.entity.getPosition();\n\t\t\treturn tmpV2$8.sub2(cameraPos, gizmoPos).normalize();\n\t\t}\n\t\treturn tmpV2$8.copy(this._camera.entity.forward).mulScalar(-1);\n\t}\n\t_onPointerDown(e) {\n\t\tif (!this.root.enabled || document.pointerLockElement) {\n\t\t\treturn;\n\t\t}\n\t\tconst selection = this._getSelection(e.offsetX, e.offsetY);\n\t\tif (selection[0]) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\t\tconst {\n\t\t\tcanvas\n\t\t} = this._device;\n\t\tcanvas.setPointerCapture(e.pointerId);\n\t\tthis.fire(Gizmo.EVENT_POINTERDOWN, e.offsetX, e.offsetY, selection[0]);\n\t}\n\t_onPointerMove(e) {\n\t\tif (!this.root.enabled || document.pointerLockElement) {\n\t\t\treturn;\n\t\t}\n\t\tconst selection = this._getSelection(e.offsetX, e.offsetY);\n\t\tif (selection[0]) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\t\tthis.fire(Gizmo.EVENT_POINTERMOVE, e.offsetX, e.offsetY, selection[0]);\n\t}\n\t_onPointerUp(e) {\n\t\tif (!this.root.enabled || document.pointerLockElement) {\n\t\t\treturn;\n\t\t}\n\t\tconst selection = this._getSelection(e.offsetX, e.offsetY);\n\t\tif (selection[0]) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\t\tconst {\n\t\t\tcanvas\n\t\t} = this._device;\n\t\tcanvas.releasePointerCapture(e.pointerId);\n\t\tthis.fire(Gizmo.EVENT_POINTERUP, e.offsetX, e.offsetY, selection[0]);\n\t}\n\t_updatePosition() {\n\t\ttmpV1$8.set(0, 0, 0);\n\t\tfor (let i = 0; i < this.nodes.length; i++) {\n\t\t\tconst node = this.nodes[i];\n\t\t\ttmpV1$8.add(node.getPosition());\n\t\t}\n\t\ttmpV1$8.mulScalar(1.0 / (this.nodes.length || 1));\n\t\tif (tmpV1$8.distance(this.root.getPosition()) < UPDATE_EPSILON$1) {\n\t\t\treturn;\n\t\t}\n\t\tthis.root.setPosition(tmpV1$8);\n\t\tthis.fire(Gizmo.EVENT_POSITIONUPDATE, tmpV1$8);\n\t}\n\t_updateRotation() {\n\t\ttmpV1$8.set(0, 0, 0);\n\t\tif (this._coordSpace === GIZMOSPACE_LOCAL && this.nodes.length !== 0) {\n\t\t\ttmpV1$8.copy(this.nodes[this.nodes.length - 1].getEulerAngles());\n\t\t}\n\t\tif (tmpV1$8.distance(this.root.getEulerAngles()) < UPDATE_EPSILON$1) {\n\t\t\treturn;\n\t\t}\n\t\tthis.root.setEulerAngles(tmpV1$8);\n\t\tthis.fire(Gizmo.EVENT_ROTATIONUPDATE, tmpV1$8);\n\t}\n\t_updateScale() {\n\t\tif (this._camera.projection === PROJECTION_PERSPECTIVE) {\n\t\t\tconst gizmoPos = this.root.getPosition();\n\t\t\tconst cameraPos = this._camera.entity.getPosition();\n\t\t\tconst dist = gizmoPos.distance(cameraPos);\n\t\t\tthis._scale = Math.tan(0.5 * this._camera.fov * math.DEG_TO_RAD) * dist * PERS_SCALE_RATIO;\n\t\t} else {\n\t\t\tthis._scale = this._camera.orthoHeight * ORTHO_SCALE_RATIO;\n\t\t}\n\t\tthis._scale = Math.max(this._scale * this._size, MIN_SCALE);\n\t\tif (Math.abs(this._scale - this.root.getLocalScale().x) < UPDATE_EPSILON$1) {\n\t\t\treturn;\n\t\t}\n\t\tthis.root.setLocalScale(this._scale, this._scale, this._scale);\n\t\tthis.fire(Gizmo.EVENT_SCALEUPDATE, this._scale);\n\t}\n\t_getSelection(x, y) {\n\t\tconst start = this._camera.screenToWorld(x, y, 0);\n\t\tconst end = this._camera.screenToWorld(x, y, this._camera.farClip - this._camera.nearClip);\n\t\tconst dir = tmpV1$8.copy(end).sub(start).normalize();\n\t\tconst selection = [];\n\t\tfor (let i = 0; i < this.intersectShapes.length; i++) {\n\t\t\tconst shape = this.intersectShapes[i];\n\t\t\tif (shape.disabled || !shape.entity.enabled) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst parentTM = shape.entity.getWorldTransform();\n\t\t\tfor (let j = 0; j < shape.triData.length; j++) {\n\t\t\t\tconst {\n\t\t\t\t\ttris,\n\t\t\t\t\ttransform,\n\t\t\t\t\tpriority\n\t\t\t\t} = shape.triData[j];\n\t\t\t\tconst triWTM = tmpM1$2.copy(parentTM).mul(transform);\n\t\t\t\tconst invTriWTM = tmpM2.copy(triWTM).invert();\n\t\t\t\tconst ray = tmpR1$1;\n\t\t\t\tinvTriWTM.transformPoint(start, ray.origin);\n\t\t\t\tinvTriWTM.transformVector(dir, ray.direction);\n\t\t\t\tray.direction.normalize();\n\t\t\t\tfor (let k = 0; k < tris.length; k++) {\n\t\t\t\t\tif (tris[k].intersectsRay(ray, tmpV1$8)) {\n\t\t\t\t\t\tselection.push({\n\t\t\t\t\t\t\tdist: triWTM.transformPoint(tmpV1$8).sub(start).length(),\n\t\t\t\t\t\t\tmeshInstances: shape.meshInstances,\n\t\t\t\t\t\t\tpriority: priority\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (selection.length) {\n\t\t\tselection.sort((s0, s1) => {\n\t\t\t\tif (s0.priority !== 0 && s1.priority !== 0) {\n\t\t\t\t\treturn s1.priority - s0.priority;\n\t\t\t\t}\n\t\t\t\treturn s0.dist - s1.dist;\n\t\t\t});\n\t\t\treturn selection[0].meshInstances;\n\t\t}\n\t\treturn [];\n\t}\n\tattach(nodes = []) {\n\t\tif (Array.isArray(nodes)) {\n\t\t\tif (nodes.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.nodes = nodes;\n\t\t} else {\n\t\t\tthis.nodes = [nodes];\n\t\t}\n\t\tthis._updatePosition();\n\t\tthis._updateRotation();\n\t\tthis._updateScale();\n\t\tthis.fire(Gizmo.EVENT_NODESATTACH);\n\t\tthis.root.enabled = true;\n\t\tthis.fire(Gizmo.EVENT_RENDERUPDATE);\n\t}\n\tdetach() {\n\t\tthis.root.enabled = false;\n\t\tthis.fire(Gizmo.EVENT_RENDERUPDATE);\n\t\tthis.fire(Gizmo.EVENT_NODESDETACH);\n\t\tthis.nodes = [];\n\t}\n\tdestroy() {\n\t\tthis.detach();\n\t\tthis._device.canvas.removeEventListener('pointerdown', this._onPointerDown);\n\t\tthis._device.canvas.removeEventListener('pointermove', this._onPointerMove);\n\t\tthis._device.canvas.removeEventListener('pointerup', this._onPointerUp);\n\t\tthis.root.destroy();\n\t}\n}\nGizmo.EVENT_POINTERDOWN = 'pointer:down';\nGizmo.EVENT_POINTERMOVE = 'pointer:move';\nGizmo.EVENT_POINTERUP = 'pointer:up';\nGizmo.EVENT_POSITIONUPDATE = 'position:update';\nGizmo.EVENT_ROTATIONUPDATE = 'rotation:update';\nGizmo.EVENT_SCALEUPDATE = 'scale:update';\nGizmo.EVENT_NODESATTACH = 'nodes:attach';\nGizmo.EVENT_NODESDETACH = 'nodes:detach';\nGizmo.EVENT_RENDERUPDATE = 'render:update';\n\nconst COLOR_RED = Object.freeze(new Color(1, 0.3, 0.3));\nconst COLOR_GREEN = Object.freeze(new Color(0.3, 1, 0.3));\nconst COLOR_BLUE = Object.freeze(new Color(0.3, 0.3, 1));\nconst COLOR_YELLOW = Object.freeze(new Color(1, 1, 0.5));\nconst COLOR_GRAY = Object.freeze(new Color(0.5, 0.5, 0.5, 0.5));\nconst color3from4 = color => {\n\treturn new Color(color.r, color.g, color.b);\n};\nconst color4from3 = (color, a) => {\n\treturn new Color(color.r, color.g, color.b, a);\n};\n\nconst tmpV1$7 = new Vec3();\nconst tmpV2$7 = new Vec3();\nconst tmpQ1$5 = new Quat();\nconst tmpR1 = new Ray();\nconst tmpP1 = new Plane();\nconst VEC3_AXES = Object.keys(tmpV1$7);\nclass TransformGizmo extends Gizmo {\n\tconstructor(camera, layer) {\n\t\tsuper(camera, layer);\n\t\tthis._colorAlpha = 0.6;\n\t\tthis._meshColors = {\n\t\t\taxis: {\n\t\t\t\tx: this._colorSemi(COLOR_RED),\n\t\t\t\ty: this._colorSemi(COLOR_GREEN),\n\t\t\t\tz: this._colorSemi(COLOR_BLUE),\n\t\t\t\txyz: this._colorSemi(Color.WHITE),\n\t\t\t\tf: this._colorSemi(Color.WHITE)\n\t\t\t},\n\t\t\thover: {\n\t\t\t\tx: COLOR_RED.clone(),\n\t\t\t\ty: COLOR_GREEN.clone(),\n\t\t\t\tz: COLOR_BLUE.clone(),\n\t\t\t\txyz: Color.WHITE.clone(),\n\t\t\t\tf: COLOR_YELLOW.clone()\n\t\t\t},\n\t\t\tdisabled: COLOR_GRAY.clone()\n\t\t};\n\t\tthis._guideColors = {\n\t\t\tx: COLOR_RED.clone(),\n\t\t\ty: COLOR_GREEN.clone(),\n\t\t\tz: COLOR_BLUE.clone(),\n\t\t\tf: COLOR_YELLOW.clone()\n\t\t};\n\t\tthis._rootStartPos = new Vec3();\n\t\tthis._rootStartRot = new Quat();\n\t\tthis._shading = false;\n\t\tthis._shapes = {};\n\t\tthis._shapeMap = new Map();\n\t\tthis._hoverShape = null;\n\t\tthis._hoverAxis = '';\n\t\tthis._hoverIsPlane = false;\n\t\tthis._noSelection = false;\n\t\tthis._selectedAxis = '';\n\t\tthis._selectedIsPlane = false;\n\t\tthis._selectionStartPoint = new Vec3();\n\t\tthis._dragging = false;\n\t\tthis._snap = false;\n\t\tthis.snapIncrement = 1;\n\t\tthis._app.on('prerender', () => {\n\t\t\tif (!this.root.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._drawGuideLines();\n\t\t});\n\t\tthis.on(Gizmo.EVENT_POINTERDOWN, (x, y, meshInstance) => {\n\t\t\tconst shape = this._shapeMap.get(meshInstance);\n\t\t\tif (shape != null && shape.disabled) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this._dragging) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!meshInstance) {\n\t\t\t\tthis._noSelection = true;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._selectedAxis = this._getAxis(meshInstance);\n\t\t\tthis._selectedIsPlane = this._getIsPlane(meshInstance);\n\t\t\tthis._rootStartPos.copy(this.root.getPosition());\n\t\t\tthis._rootStartRot.copy(this.root.getRotation());\n\t\t\tconst point = this._screenToPoint(x, y);\n\t\t\tthis._selectionStartPoint.copy(point);\n\t\t\tthis._dragging = true;\n\t\t\tthis.fire(TransformGizmo.EVENT_TRANSFORMSTART, point, x, y);\n\t\t});\n\t\tthis.on(Gizmo.EVENT_POINTERMOVE, (x, y, meshInstance) => {\n\t\t\tconst shape = this._shapeMap.get(meshInstance);\n\t\t\tif (shape != null && shape.disabled) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!this._noSelection) {\n\t\t\t\tthis._hover(meshInstance);\n\t\t\t}\n\t\t\tif (!this._dragging) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst point = this._screenToPoint(x, y);\n\t\t\tthis.fire(TransformGizmo.EVENT_TRANSFORMMOVE, point, x, y);\n\t\t\tthis._hoverAxis = '';\n\t\t\tthis._hoverIsPlane = false;\n\t\t});\n\t\tthis.on(Gizmo.EVENT_POINTERUP, (x, y, meshInstance) => {\n\t\t\tthis._noSelection = false;\n\t\t\tthis._hover(meshInstance);\n\t\t\tif (!this._dragging) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._dragging = false;\n\t\t\tthis.fire(TransformGizmo.EVENT_TRANSFORMEND);\n\t\t\tthis._selectedAxis = '';\n\t\t\tthis._selectedIsPlane = false;\n\t\t});\n\t\tthis.on(Gizmo.EVENT_NODESDETACH, () => {\n\t\t\tthis.snap = false;\n\t\t\tthis._hoverAxis = '';\n\t\t\tthis._hoverIsPlane = false;\n\t\t\tthis._hover();\n\t\t\tthis.fire(Gizmo.EVENT_POINTERUP);\n\t\t});\n\t}\n\tset shading(value) {\n\t\tthis._shading = this.root.enabled && value;\n\t\tfor (const name in this._shapes) {\n\t\t\tthis._shapes[name].shading = this._shading;\n\t\t}\n\t}\n\tget shading() {\n\t\treturn this._shading;\n\t}\n\tset snap(value) {\n\t\tthis._snap = this.root.enabled && value;\n\t}\n\tget snap() {\n\t\treturn this._snap;\n\t}\n\tset xAxisColor(value) {\n\t\tthis._updateAxisColor(GIZMOAXIS_X, value);\n\t}\n\tget xAxisColor() {\n\t\treturn this._meshColors.axis.x;\n\t}\n\tset yAxisColor(value) {\n\t\tthis._updateAxisColor(GIZMOAXIS_Y, value);\n\t}\n\tget yAxisColor() {\n\t\treturn this._meshColors.axis.y;\n\t}\n\tset zAxisColor(value) {\n\t\tthis._updateAxisColor(GIZMOAXIS_Z, value);\n\t}\n\tget zAxisColor() {\n\t\treturn this._meshColors.axis.z;\n\t}\n\tset colorAlpha(value) {\n\t\tthis._colorAlpha = math.clamp(value, 0, 1);\n\t\tthis._meshColors.axis.x.copy(this._colorSemi(this._meshColors.axis.x));\n\t\tthis._meshColors.axis.y.copy(this._colorSemi(this._meshColors.axis.y));\n\t\tthis._meshColors.axis.z.copy(this._colorSemi(this._meshColors.axis.z));\n\t\tthis._meshColors.axis.xyz.copy(this._colorSemi(this._meshColors.axis.xyz));\n\t\tthis._meshColors.axis.f.copy(this._colorSemi(this._meshColors.axis.f));\n\t\tfor (const name in this._shapes) {\n\t\t\tthis._shapes[name].hover(!!this._hoverAxis);\n\t\t}\n\t}\n\tget colorAlpha() {\n\t\treturn this._colorAlpha;\n\t}\n\t_colorSemi(color) {\n\t\treturn color4from3(color, this._colorAlpha);\n\t}\n\t_updateAxisColor(axis, value) {\n\t\tconst color3 = color3from4(value);\n\t\tconst color4 = this._colorSemi(value);\n\t\tthis._guideColors[axis].copy(color3);\n\t\tthis._meshColors.axis[axis].copy(color4);\n\t\tthis._meshColors.hover[axis].copy(color3);\n\t\tfor (const name in this._shapes) {\n\t\t\tthis._shapes[name].hover(!!this._hoverAxis);\n\t\t}\n\t}\n\t_getAxis(meshInstance) {\n\t\tif (!meshInstance) {\n\t\t\treturn '';\n\t\t}\n\t\treturn meshInstance.node.name.split(':')[1];\n\t}\n\t_getIsPlane(meshInstance) {\n\t\tif (!meshInstance) {\n\t\t\treturn false;\n\t\t}\n\t\treturn meshInstance.node.name.indexOf('plane') !== -1;\n\t}\n\t_hover(meshInstance) {\n\t\tvar _this$_shapeMap$get;\n\t\tif (this._dragging) {\n\t\t\treturn;\n\t\t}\n\t\tthis._hoverAxis = this._getAxis(meshInstance);\n\t\tthis._hoverIsPlane = this._getIsPlane(meshInstance);\n\t\tconst shape = meshInstance ? (_this$_shapeMap$get = this._shapeMap.get(meshInstance)) != null ? _this$_shapeMap$get : null : null;\n\t\tif (shape === this._hoverShape) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._hoverShape) {\n\t\t\tthis._hoverShape.hover(false);\n\t\t\tthis._hoverShape = null;\n\t\t}\n\t\tif (shape) {\n\t\t\tshape.hover(true);\n\t\t\tthis._hoverShape = shape;\n\t\t}\n\t\tthis.fire(Gizmo.EVENT_RENDERUPDATE);\n\t}\n\t_createRay(mouseWPos) {\n\t\tif (this._camera.projection === PROJECTION_PERSPECTIVE) {\n\t\t\ttmpR1.origin.copy(this._camera.entity.getPosition());\n\t\t\ttmpR1.direction.sub2(mouseWPos, tmpR1.origin).normalize();\n\t\t\treturn tmpR1;\n\t\t}\n\t\tconst orthoDepth = this._camera.farClip - this._camera.nearClip;\n\t\ttmpR1.origin.sub2(mouseWPos, tmpV1$7.copy(this._camera.entity.forward).mulScalar(orthoDepth));\n\t\ttmpR1.direction.copy(this._camera.entity.forward);\n\t\treturn tmpR1;\n\t}\n\t_createPlane(axis, isFacing, isLine) {\n\t\tconst facingDir = tmpV1$7.copy(this.facing);\n\t\tconst normal = tmpP1.normal.set(0, 0, 0);\n\t\tif (isFacing) {\n\t\t\tnormal.copy(facingDir);\n\t\t} else {\n\t\t\tnormal[axis] = 1;\n\t\t\tthis._rootStartRot.transformVector(normal, normal);\n\t\t\tif (isLine) {\n\t\t\t\ttmpV2$7.cross(normal, facingDir).normalize();\n\t\t\t\tnormal.cross(tmpV2$7, normal).normalize();\n\t\t\t}\n\t\t}\n\t\treturn tmpP1.setFromPointNormal(this._rootStartPos, normal);\n\t}\n\t_dirFromAxis(axis, dir) {\n\t\tif (axis === GIZMOAXIS_FACE) {\n\t\t\tdir.copy(this._camera.entity.forward).mulScalar(-1);\n\t\t} else {\n\t\t\tdir.set(0, 0, 0);\n\t\t\tdir[axis] = 1;\n\t\t}\n\t\treturn dir;\n\t}\n\t_projectToAxis(point, axis) {\n\t\ttmpV1$7.set(0, 0, 0);\n\t\ttmpV1$7[axis] = 1;\n\t\tpoint.copy(tmpV1$7.mulScalar(tmpV1$7.dot(point)));\n\t\tconst v = point[axis];\n\t\tpoint.set(0, 0, 0);\n\t\tpoint[axis] = v;\n\t}\n\t_screenToPoint(x, y, isFacing = false, isLine = false) {\n\t\tconst mouseWPos = this._camera.screenToWorld(x, y, 1);\n\t\tconst axis = this._selectedAxis;\n\t\tconst ray = this._createRay(mouseWPos);\n\t\tconst plane = this._createPlane(axis, isFacing, isLine);\n\t\tconst point = new Vec3();\n\t\tplane.intersectsRay(ray, point);\n\t\treturn point;\n\t}\n\t_drawGuideLines() {\n\t\tconst gizmoPos = this.root.getPosition();\n\t\tconst gizmoRot = tmpQ1$5.copy(this.root.getRotation());\n\t\tconst checkAxis = this._hoverAxis || this._selectedAxis;\n\t\tconst checkIsPlane = this._hoverIsPlane || this._selectedIsPlane;\n\t\tfor (let i = 0; i < VEC3_AXES.length; i++) {\n\t\t\tconst axis = VEC3_AXES[i];\n\t\t\tif (checkAxis === GIZMOAXIS_XYZ) {\n\t\t\t\tthis._drawSpanLine(gizmoPos, gizmoRot, axis);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (checkIsPlane) {\n\t\t\t\tif (axis !== checkAxis) {\n\t\t\t\t\tthis._drawSpanLine(gizmoPos, gizmoRot, axis);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (axis === checkAxis) {\n\t\t\t\t\tthis._drawSpanLine(gizmoPos, gizmoRot, axis);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t_drawSpanLine(pos, rot, axis) {\n\t\ttmpV1$7.set(0, 0, 0);\n\t\ttmpV1$7[axis] = 1;\n\t\ttmpV1$7.mulScalar(this._camera.farClip - this._camera.nearClip);\n\t\ttmpV2$7.copy(tmpV1$7).mulScalar(-1);\n\t\trot.transformVector(tmpV1$7, tmpV1$7);\n\t\trot.transformVector(tmpV2$7, tmpV2$7);\n\t\tthis._app.drawLine(tmpV1$7.add(pos), tmpV2$7.add(pos), this._guideColors[axis], true);\n\t}\n\t_createTransform() {\n\t\tfor (const key in this._shapes) {\n\t\t\tconst shape = this._shapes[key];\n\t\t\tthis.root.addChild(shape.entity);\n\t\t\tthis.intersectShapes.push(shape);\n\t\t\tfor (let i = 0; i < shape.meshInstances.length; i++) {\n\t\t\t\tthis._shapeMap.set(shape.meshInstances[i], shape);\n\t\t\t}\n\t\t}\n\t}\n\tenableShape(shapeAxis, enabled) {\n\t\tif (!this._shapes.hasOwnProperty(shapeAxis)) {\n\t\t\treturn;\n\t\t}\n\t\tthis._shapes[shapeAxis].disabled = !enabled;\n\t}\n\tisShapeEnabled(shapeAxis) {\n\t\tif (!this._shapes.hasOwnProperty(shapeAxis)) {\n\t\t\treturn false;\n\t\t}\n\t\treturn !this._shapes[shapeAxis].disabled;\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tfor (const key in this._shapes) {\n\t\t\tthis._shapes[key].destroy();\n\t\t}\n\t}\n}\nTransformGizmo.EVENT_TRANSFORMSTART = 'transform:start';\nTransformGizmo.EVENT_TRANSFORMMOVE = 'transform:move';\nTransformGizmo.EVENT_TRANSFORMEND = 'transform:end';\n\nconst tmpV1$6 = new Vec3();\nconst tmpV2$6 = new Vec3();\nconst tmpV3$3 = new Vec3();\nclass TriData {\n\tconstructor(geometry, priority = 0) {\n\t\tthis._priority = 0;\n\t\tthis._transform = new Mat4();\n\t\tthis.tris = [];\n\t\tthis.fromGeometry(geometry);\n\t\tthis._priority = priority;\n\t}\n\tget transform() {\n\t\treturn this._transform;\n\t}\n\tget priority() {\n\t\treturn this._priority;\n\t}\n\tsetTransform(pos = new Vec3(), rot = new Quat(), scale = new Vec3()) {\n\t\tthis.transform.setTRS(pos, rot, scale);\n\t}\n\tfromGeometry(geometry) {\n\t\tvar _geometry$positions, _geometry$indices;\n\t\tif (!geometry || !(geometry instanceof Geometry)) {\n\t\t\tthrow new Error('No geometry provided.');\n\t\t}\n\t\tconst positions = (_geometry$positions = geometry.positions) != null ? _geometry$positions : [];\n\t\tconst indices = (_geometry$indices = geometry.indices) != null ? _geometry$indices : [];\n\t\tthis.tris = [];\n\t\tfor (let k = 0; k < indices.length; k += 3) {\n\t\t\tconst i1 = indices[k];\n\t\t\tconst i2 = indices[k + 1];\n\t\t\tconst i3 = indices[k + 2];\n\t\t\ttmpV1$6.set(positions[i1 * 3], positions[i1 * 3 + 1], positions[i1 * 3 + 2]);\n\t\t\ttmpV2$6.set(positions[i2 * 3], positions[i2 * 3 + 1], positions[i2 * 3 + 2]);\n\t\t\ttmpV3$3.set(positions[i3 * 3], positions[i3 * 3 + 1], positions[i3 * 3 + 2]);\n\t\t\tconst tri = new Tri(tmpV1$6, tmpV2$6, tmpV3$3);\n\t\t\tthis.tris.push(tri);\n\t\t}\n\t}\n}\n\nconst SHADING_DAMP_SCALE = 0.25;\nconst SHADING_DAMP_OFFSET = 0.75;\nconst LIGHT_DIR = new Vec3(1, 2, 3);\nconst GEOMETRIES = {\n\tbox: BoxGeometry,\n\tcone: ConeGeometry,\n\tcylinder: CylinderGeometry,\n\tplane: PlaneGeometry,\n\tsphere: SphereGeometry,\n\ttorus: TorusGeometry\n};\nconst shaderDesc = {\n\tuniqueName: 'axis-shape',\n\tattributes: {\n\t\tvertex_position: SEMANTIC_POSITION,\n\t\tvertex_color: SEMANTIC_COLOR\n\t},\n\tvertexCode: `\n\t\tattribute vec3 vertex_position;\n\t\tattribute vec4 vertex_color;\n\t\tvarying vec4 vColor;\n\t\tuniform mat4 matrix_model;\n\t\tuniform mat4 matrix_viewProjection;\n\t\tvoid main(void) {\n\t\t\tgl_Position = matrix_viewProjection * matrix_model * vec4(vertex_position, 1.0);\n\t\t\tgl_Position.z = clamp(gl_Position.z, -abs(gl_Position.w), abs(gl_Position.w));\n\t\t\tvColor = vertex_color;\n\t\t}\n\t`,\n\tfragmentCode: `\n\t\tprecision highp float;\n\t\tvarying vec4 vColor;\n\t\tvoid main(void) {\n\t\t\tgl_FragColor = vColor;\n\t\t}\n\t`\n};\nconst shadingMeshMap = new Map();\nconst tmpV1$5 = new Vec3();\nconst tmpV2$5 = new Vec3();\nconst tmpM1$1 = new Mat4();\nconst tmpG = new Geometry();\ntmpG.positions = [];\ntmpG.normals = [];\nconst applyShadowColor = (geom, color, transform) => {\n\tif (!geom.normals || !geom.positions) {\n\t\treturn [];\n\t}\n\tlet localLightDir;\n\tif (transform) {\n\t\tlocalLightDir = tmpM1$1.copy(transform).invert().transformVector(tmpV1$5.copy(LIGHT_DIR), tmpV1$5).normalize();\n\t}\n\tgeom.colors = [];\n\tconst shading = [];\n\tconst numVertices = geom.positions.length / 3;\n\tfor (let i = 0; i < numVertices; i++) {\n\t\tlet strength = 1;\n\t\tif (localLightDir) {\n\t\t\tconst x = geom.normals[i * 3];\n\t\t\tconst y = geom.normals[i * 3 + 1];\n\t\t\tconst z = geom.normals[i * 3 + 2];\n\t\t\tconst normal = tmpV2$5.set(x, y, z);\n\t\t\tconst dot = localLightDir.dot(normal);\n\t\t\tstrength = dot * SHADING_DAMP_SCALE + SHADING_DAMP_OFFSET;\n\t\t}\n\t\tshading.push(strength);\n\t\tgeom.colors.push(strength * color.r * 0xFF, strength * color.g * 0xFF, strength * color.b * 0xFF, color.a * 0xFF);\n\t}\n\treturn shading;\n};\nconst setMeshColor = (mesh, color) => {\n\tconst shading = shadingMeshMap.get(mesh);\n\tconst colors = [];\n\tfor (let i = 0; i < shading.length; i++) {\n\t\tcolors.push(shading[i] * color.r * 0xFF, shading[i] * color.g * 0xFF, shading[i] * color.b * 0xFF, color.a * 0xFF);\n\t}\n\tmesh.setColors32(colors);\n\tmesh.update();\n};\nclass Shape {\n\tconstructor(device, options) {\n\t\tvar _options$axis, _options$position, _options$rotation, _options$scale, _options$disabled, _options$layers, _options$shading;\n\t\tthis._position = void 0;\n\t\tthis._rotation = void 0;\n\t\tthis._scale = void 0;\n\t\tthis._layers = [];\n\t\tthis._shading = true;\n\t\tthis._disabled = void 0;\n\t\tthis._defaultColor = Color.WHITE;\n\t\tthis._hoverColor = Color.BLACK;\n\t\tthis._disabledColor = COLOR_GRAY;\n\t\tthis._cull = CULLFACE_BACK;\n\t\tthis.device = void 0;\n\t\tthis.axis = void 0;\n\t\tthis.entity = void 0;\n\t\tthis.triData = [];\n\t\tthis.meshInstances = [];\n\t\tthis.device = device;\n\t\tthis.axis = (_options$axis = options.axis) != null ? _options$axis : 'x';\n\t\tthis._position = (_options$position = options.position) != null ? _options$position : new Vec3();\n\t\tthis._rotation = (_options$rotation = options.rotation) != null ? _options$rotation : new Vec3();\n\t\tthis._scale = (_options$scale = options.scale) != null ? _options$scale : new Vec3(1, 1, 1);\n\t\tthis._disabled = (_options$disabled = options.disabled) != null ? _options$disabled : false;\n\t\tthis._layers = (_options$layers = options.layers) != null ? _options$layers : this._layers;\n\t\tthis._shading = (_options$shading = options.shading) != null ? _options$shading : this._shading;\n\t\tif (options.defaultColor instanceof Color) {\n\t\t\tthis._defaultColor = options.defaultColor;\n\t\t}\n\t\tif (options.hoverColor instanceof Color) {\n\t\t\tthis._hoverColor = options.hoverColor;\n\t\t}\n\t\tif (options.disabledColor instanceof Color) {\n\t\t\tthis._disabledColor = options.disabledColor;\n\t\t}\n\t}\n\tset disabled(value) {\n\t\tfor (let i = 0; i < this.meshInstances.length; i++) {\n\t\t\tsetMeshColor(this.meshInstances[i].mesh, value ? this._disabledColor : this._defaultColor);\n\t\t}\n\t\tthis._disabled = value != null ? value : false;\n\t}\n\tget disabled() {\n\t\treturn this._disabled;\n\t}\n\tset shading(value) {\n\t\tthis._shading = value != null ? value : true;\n\t\tconst color = this._disabled ? this._disabledColor : this._defaultColor;\n\t\tfor (let i = 0; i < this.meshInstances.length; i++) {\n\t\t\tconst mesh = this.meshInstances[i].mesh;\n\t\t\tmesh.getPositions(tmpG.positions);\n\t\t\tmesh.getNormals(tmpG.normals);\n\t\t\tconst shadow = applyShadowColor(tmpG, color, this._shading ? this.entity.getWorldTransform() : undefined);\n\t\t\tshadingMeshMap.set(mesh, shadow);\n\t\t\tsetMeshColor(mesh, color);\n\t\t}\n\t}\n\tget shading() {\n\t\treturn this._shading;\n\t}\n\t_createRoot(name) {\n\t\tthis.entity = new Entity(`${name}:${this.axis}`);\n\t\tthis.entity.setLocalPosition(this._position);\n\t\tthis.entity.setLocalEulerAngles(this._rotation);\n\t\tthis.entity.setLocalScale(this._scale);\n\t}\n\t_createMesh(geom, shading = true) {\n\t\tconst color = this._disabled ? this._disabledColor : this._defaultColor;\n\t\tconst shadow = applyShadowColor(geom, color, shading ? this.entity.getWorldTransform() : undefined);\n\t\tconst mesh = Mesh.fromGeometry(this.device, geom);\n\t\tshadingMeshMap.set(mesh, shadow);\n\t\treturn mesh;\n\t}\n\t_createRenderComponent(entity, meshes) {\n\t\tconst shader = createShaderFromCode(this.device, shaderDesc.vertexCode, shaderDesc.fragmentCode, shaderDesc.uniqueName, {\n\t\t\tvertex_position: SEMANTIC_POSITION,\n\t\t\tvertex_color: SEMANTIC_COLOR\n\t\t});\n\t\tconst material = new Material();\n\t\tmaterial.shader = shader;\n\t\tmaterial.cull = this._cull;\n\t\tmaterial.blendType = BLEND_NORMAL;\n\t\tif (material.chunks) {\n\t\t\tmaterial.chunks.debugOutputPS = '';\n\t\t}\n\t\tmaterial.update();\n\t\tconst meshInstances = [];\n\t\tfor (let i = 0; i < meshes.length; i++) {\n\t\t\tconst mi = new MeshInstance(meshes[i], material);\n\t\t\tmi.cull = false;\n\t\t\tmeshInstances.push(mi);\n\t\t\tthis.meshInstances.push(mi);\n\t\t}\n\t\tentity.addComponent('render', {\n\t\t\tmeshInstances: meshInstances,\n\t\t\tlayers: this._layers,\n\t\t\tcastShadows: false\n\t\t});\n\t}\n\t_addRenderMesh(entity, type, shading) {\n\t\tconst Geometry = GEOMETRIES[type];\n\t\tif (!Geometry) {\n\t\t\tthrow new Error('Invalid primitive type.');\n\t\t}\n\t\tthis._createRenderComponent(entity, [this._createMesh(new Geometry(), shading)]);\n\t}\n\thover(state) {\n\t\tif (this._disabled) {\n\t\t\treturn;\n\t\t}\n\t\tfor (let i = 0; i < this.meshInstances.length; i++) {\n\t\t\tconst color = state ? this._hoverColor : this._defaultColor;\n\t\t\tconst mesh = this.meshInstances[i].mesh;\n\t\t\tsetMeshColor(mesh, color);\n\t\t}\n\t}\n\tdestroy() {\n\t\tthis.entity.destroy();\n\t}\n}\n\nconst UPDATE_EPSILON = 1e-6;\nclass PlaneShape extends Shape {\n\tconstructor(device, options = {}) {\n\t\tsuper(device, options);\n\t\tthis._cull = CULLFACE_NONE;\n\t\tthis._size = 0.2;\n\t\tthis._gap = 0.1;\n\t\tthis._flipped = new Vec3();\n\t\tthis.triData = [new TriData(new PlaneGeometry())];\n\t\tthis._createPlane();\n\t}\n\tset size(value) {\n\t\tthis._size = value != null ? value : 1;\n\t\tthis._updateTransform();\n\t}\n\tget size() {\n\t\treturn this._size;\n\t}\n\tset gap(value) {\n\t\tthis._gap = value != null ? value : 0;\n\t\tthis._updateTransform();\n\t}\n\tget gap() {\n\t\treturn this._gap;\n\t}\n\tset flipped(value) {\n\t\tif (this._flipped.distance(value) < UPDATE_EPSILON) {\n\t\t\treturn;\n\t\t}\n\t\tthis._flipped.copy(value);\n\t\tthis.entity.setLocalPosition(this._getPosition());\n\t}\n\tget flipped() {\n\t\treturn this._flipped;\n\t}\n\t_getPosition() {\n\t\tconst offset = this._size / 2 + this._gap;\n\t\tconst position = new Vec3(this._flipped.x ? -offset : offset, this._flipped.y ? -offset : offset, this._flipped.z ? -offset : offset);\n\t\tposition[this.axis] = 0;\n\t\treturn position;\n\t}\n\t_createPlane() {\n\t\tthis._createRoot('plane');\n\t\tthis._updateTransform();\n\t\tthis._addRenderMesh(this.entity, 'plane', this._shading);\n\t}\n\t_updateTransform() {\n\t\tthis.entity.setLocalPosition(this._getPosition());\n\t\tthis.entity.setLocalEulerAngles(this._rotation);\n\t\tthis.entity.setLocalScale(this._size, this._size, this._size);\n\t}\n}\n\nconst tmpV1$4 = new Vec3();\nconst tmpV2$4 = new Vec3();\nconst tmpQ1$4 = new Quat();\nclass ArrowShape extends Shape {\n\tconstructor(device, options = {}) {\n\t\tsuper(device, options);\n\t\tthis._gap = 0;\n\t\tthis._lineThickness = 0.02;\n\t\tthis._lineLength = 0.5;\n\t\tthis._arrowThickness = 0.12;\n\t\tthis._arrowLength = 0.18;\n\t\tthis._tolerance = 0.1;\n\t\tthis._head = void 0;\n\t\tthis._line = void 0;\n\t\tthis._flipped = false;\n\t\tthis.triData = [new TriData(new ConeGeometry()), new TriData(new CylinderGeometry(), 1)];\n\t\tthis._createArrow();\n\t}\n\tset gap(value) {\n\t\tthis._gap = value != null ? value : 0;\n\t\tthis._updateHead();\n\t\tthis._updateLine();\n\t}\n\tget gap() {\n\t\treturn this._gap;\n\t}\n\tset lineThickness(value) {\n\t\tthis._lineThickness = value != null ? value : 1;\n\t\tthis._updateHead();\n\t\tthis._updateLine();\n\t}\n\tget lineThickness() {\n\t\treturn this._lineThickness;\n\t}\n\tset lineLength(value) {\n\t\tthis._lineLength = value != null ? value : 1;\n\t\tthis._updateHead();\n\t\tthis._updateLine();\n\t}\n\tget lineLength() {\n\t\treturn this._lineLength;\n\t}\n\tset arrowThickness(value) {\n\t\tthis._arrowThickness = value != null ? value : 1;\n\t\tthis._updateHead();\n\t}\n\tget arrowThickness() {\n\t\treturn this._arrowThickness;\n\t}\n\tset arrowLength(value) {\n\t\tthis._arrowLength = value != null ? value : 1;\n\t\tthis._updateHead();\n\t}\n\tget arrowLength() {\n\t\treturn this._arrowLength;\n\t}\n\tset tolerance(value) {\n\t\tthis._tolerance = value;\n\t\tthis._updateLine();\n\t}\n\tget tolerance() {\n\t\treturn this._tolerance;\n\t}\n\tset flipped(value) {\n\t\tif (this._flipped === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis._flipped = value;\n\t\tif (this._rotation.equals(Vec3.ZERO)) {\n\t\t\ttmpV1$4.set(0, 0, this._flipped ? 180 : 0);\n\t\t} else {\n\t\t\ttmpV1$4.copy(this._rotation).mulScalar(this._flipped ? -1 : 1);\n\t\t}\n\t\tthis._line.enabled = !this._flipped;\n\t\tthis.entity.setLocalEulerAngles(tmpV1$4);\n\t}\n\tget flipped() {\n\t\treturn this._flipped;\n\t}\n\t_createArrow() {\n\t\tthis._createRoot('arrow');\n\t\tthis._head = new Entity(`head:${this.axis}`);\n\t\tthis.entity.addChild(this._head);\n\t\tthis._updateHead();\n\t\tthis._addRenderMesh(this._head, 'cone', this._shading);\n\t\tthis._line = new Entity(`line:${this.axis}`);\n\t\tthis.entity.addChild(this._line);\n\t\tthis._updateLine();\n\t\tthis._addRenderMesh(this._line, 'cylinder', this._shading);\n\t}\n\t_updateHead() {\n\t\ttmpV1$4.set(0, this._gap + this._arrowLength * 0.5 + this._lineLength, 0);\n\t\ttmpQ1$4.set(0, 0, 0, 1);\n\t\ttmpV2$4.set(this._arrowThickness, this._arrowLength, this._arrowThickness);\n\t\tthis.triData[0].setTransform(tmpV1$4, tmpQ1$4, tmpV2$4);\n\t\tthis._head.setLocalPosition(0, this._gap + this._arrowLength * 0.5 + this._lineLength, 0);\n\t\tthis._head.setLocalScale(this._arrowThickness, this._arrowLength, this._arrowThickness);\n\t}\n\t_updateLine() {\n\t\ttmpV1$4.set(0, this._gap + this._lineLength * 0.5, 0);\n\t\ttmpQ1$4.set(0, 0, 0, 1);\n\t\ttmpV2$4.set(this._lineThickness + this._tolerance, this._lineLength, this._lineThickness + this._tolerance);\n\t\tthis.triData[1].setTransform(tmpV1$4, tmpQ1$4, tmpV2$4);\n\t\tthis._line.setLocalPosition(0, this._gap + this._lineLength * 0.5, 0);\n\t\tthis._line.setLocalScale(this._lineThickness, this._lineLength, this._lineThickness);\n\t}\n}\n\nclass SphereShape extends Shape {\n\tconstructor(device, options = {}) {\n\t\tsuper(device, options);\n\t\tthis._size = 0.12;\n\t\tthis._tolerance = 0.05;\n\t\tthis.triData = [new TriData(new SphereGeometry(), 2)];\n\t\tthis._createCenter();\n\t}\n\t_createCenter() {\n\t\tthis._createRoot('sphereCenter');\n\t\tthis._updateTransform();\n\t\tthis._addRenderMesh(this.entity, 'sphere', this._shading);\n\t}\n\tset size(value) {\n\t\tthis._size = value != null ? value : 1;\n\t\tthis._updateTransform();\n\t}\n\tget size() {\n\t\treturn this._size;\n\t}\n\tset tolerance(value) {\n\t\tthis._tolerance = value;\n\t\tthis._updateTransform();\n\t}\n\tget tolerance() {\n\t\treturn this._tolerance;\n\t}\n\t_updateTransform() {\n\t\tthis.entity.setLocalScale(this._size, this._size, this._size);\n\t}\n}\n\nconst tmpV1$3 = new Vec3();\nconst tmpV2$3 = new Vec3();\nconst tmpV3$2 = new Vec3();\nconst tmpQ1$3 = new Quat();\nconst GLANCE_EPSILON$1 = 0.98;\nclass TranslateGizmo extends TransformGizmo {\n\tconstructor(camera, layer) {\n\t\tsuper(camera, layer);\n\t\tthis._shapes = {\n\t\t\tface: new SphereShape(this._device, {\n\t\t\t\taxis: GIZMOAXIS_FACE,\n\t\t\t\tlayers: [this._layer.id],\n\t\t\t\tshading: this._shading,\n\t\t\t\tdefaultColor: this._meshColors.axis.xyz,\n\t\t\t\thoverColor: this._meshColors.hover.xyz\n\t\t\t}),\n\t\t\tyz: new PlaneShape(this._device, {\n\t\t\t\taxis: GIZMOAXIS_X,\n\t\t\t\tlayers: [this._layer.id],\n\t\t\t\tshading: this._shading,\n\t\t\t\trotation: new Vec3(0, 0, -90),\n\t\t\t\tdefaultColor: this._meshColors.axis.x,\n\t\t\t\thoverColor: this._meshColors.hover.x\n\t\t\t}),\n\t\t\txz: new PlaneShape(this._device, {\n\t\t\t\taxis: GIZMOAXIS_Y,\n\t\t\t\tlayers: [this._layer.id],\n\t\t\t\tshading: this._shading,\n\t\t\t\trotation: new Vec3(0, 0, 0),\n\t\t\t\tdefaultColor: this._meshColors.axis.y,\n\t\t\t\thoverColor: this._meshColors.hover.y\n\t\t\t}),\n\t\t\txy: new PlaneShape(this._device, {\n\t\t\t\taxis: GIZMOAXIS_Z,\n\t\t\t\tlayers: [this._layer.id],\n\t\t\t\tshading: this._shading,\n\t\t\t\trotation: new Vec3(90, 0, 0),\n\t\t\t\tdefaultColor: this._meshColors.axis.z,\n\t\t\t\thoverColor: this._meshColors.hover.z\n\t\t\t}),\n\t\t\tx: new ArrowShape(this._device, {\n\t\t\t\taxis: GIZMOAXIS_X,\n\t\t\t\tlayers: [this._layer.id],\n\t\t\t\tshading: this._shading,\n\t\t\t\trotation: new Vec3(0, 0, -90),\n\t\t\t\tdefaultColor: this._meshColors.axis.x,\n\t\t\t\thoverColor: this._meshColors.hover.x\n\t\t\t}),\n\t\t\ty: new ArrowShape(this._device, {\n\t\t\t\taxis: GIZMOAXIS_Y,\n\t\t\t\tlayers: [this._layer.id],\n\t\t\t\tshading: this._shading,\n\t\t\t\trotation: new Vec3(0, 0, 0),\n\t\t\t\tdefaultColor: this._meshColors.axis.y,\n\t\t\t\thoverColor: this._meshColors.hover.y\n\t\t\t}),\n\t\t\tz: new ArrowShape(this._device, {\n\t\t\t\taxis: GIZMOAXIS_Z,\n\t\t\t\tlayers: [this._layer.id],\n\t\t\t\tshading: this._shading,\n\t\t\t\trotation: new Vec3(90, 0, 0),\n\t\t\t\tdefaultColor: this._meshColors.axis.z,\n\t\t\t\thoverColor: this._meshColors.hover.z\n\t\t\t})\n\t\t};\n\t\tthis._nodeLocalPositions = new Map();\n\t\tthis._nodePositions = new Map();\n\t\tthis._forward = new Vec3();\n\t\tthis.snapIncrement = 1;\n\t\tthis.flipShapes = true;\n\t\tthis._createTransform();\n\t\tthis.on(TransformGizmo.EVENT_TRANSFORMSTART, () => {\n\t\t\tthis._storeNodePositions();\n\t\t});\n\t\tthis.on(TransformGizmo.EVENT_TRANSFORMMOVE, point => {\n\t\t\tconst pointDelta = tmpV3$2.copy(point).sub(this._selectionStartPoint);\n\t\t\tif (this.snap) {\n\t\t\t\tpointDelta.mulScalar(1 / this.snapIncrement);\n\t\t\t\tpointDelta.round();\n\t\t\t\tpointDelta.mulScalar(this.snapIncrement);\n\t\t\t}\n\t\t\tthis._setNodePositions(pointDelta);\n\t\t});\n\t\tthis.on(TransformGizmo.EVENT_NODESDETACH, () => {\n\t\t\tthis._nodeLocalPositions.clear();\n\t\t\tthis._nodePositions.clear();\n\t\t});\n\t\tthis._app.on('prerender', () => {\n\t\t\tthis._shapesLookAtCamera();\n\t\t});\n\t}\n\tset axisGap(value) {\n\t\tthis._setArrowProp('gap', value);\n\t}\n\tget axisGap() {\n\t\treturn this._shapes.x.gap;\n\t}\n\tset axisLineThickness(value) {\n\t\tthis._setArrowProp('lineThickness', value);\n\t}\n\tget axisLineThickness() {\n\t\treturn this._shapes.x.lineThickness;\n\t}\n\tset axisLineLength(value) {\n\t\tthis._setArrowProp('lineLength', value);\n\t}\n\tget axisLineLength() {\n\t\treturn this._shapes.x.lineLength;\n\t}\n\tset axisLineTolerance(value) {\n\t\tthis._setArrowProp('tolerance', value);\n\t}\n\tget axisLineTolerance() {\n\t\treturn this._shapes.x.tolerance;\n\t}\n\tset axisArrowThickness(value) {\n\t\tthis._setArrowProp('arrowThickness', value);\n\t}\n\tget axisArrowThickness() {\n\t\treturn this._shapes.x.arrowThickness;\n\t}\n\tset axisArrowLength(value) {\n\t\tthis._setArrowProp('arrowLength', value);\n\t}\n\tget axisArrowLength() {\n\t\treturn this._shapes.x.arrowLength;\n\t}\n\tset axisPlaneSize(value) {\n\t\tthis._setPlaneProp('size', value);\n\t}\n\tget axisPlaneSize() {\n\t\treturn this._shapes.yz.size;\n\t}\n\tset axisPlaneGap(value) {\n\t\tthis._setPlaneProp('gap', value);\n\t}\n\tget axisPlaneGap() {\n\t\treturn this._shapes.yz.gap;\n\t}\n\tset axisCenterSize(value) {\n\t\tthis._shapes.face.size = value;\n\t}\n\tget axisCenterSize() {\n\t\treturn this._shapes.face.size;\n\t}\n\tset axisCenterTolerance(value) {\n\t\tthis._shapes.face.tolerance = value;\n\t}\n\tget axisCenterTolerance() {\n\t\treturn this._shapes.face.tolerance;\n\t}\n\t_setArrowProp(prop, value) {\n\t\tthis._shapes.x[prop] = value;\n\t\tthis._shapes.y[prop] = value;\n\t\tthis._shapes.z[prop] = value;\n\t}\n\t_setPlaneProp(prop, value) {\n\t\tthis._shapes.yz[prop] = value;\n\t\tthis._shapes.xz[prop] = value;\n\t\tthis._shapes.xy[prop] = value;\n\t}\n\t_shapesLookAtCamera() {\n\t\tconst facingDir = this.facing;\n\t\tlet dot = facingDir.dot(this.root.right);\n\t\tthis._shapes.x.entity.enabled = Math.abs(dot) < GLANCE_EPSILON$1;\n\t\tif (this.flipShapes) {\n\t\t\tthis._shapes.x.flipped = dot < 0;\n\t\t}\n\t\tdot = facingDir.dot(this.root.up);\n\t\tthis._shapes.y.entity.enabled = Math.abs(dot) < GLANCE_EPSILON$1;\n\t\tif (this.flipShapes) {\n\t\t\tthis._shapes.y.flipped = dot < 0;\n\t\t}\n\t\tdot = facingDir.dot(this.root.forward);\n\t\tthis._shapes.z.entity.enabled = Math.abs(dot) < GLANCE_EPSILON$1;\n\t\tif (this.flipShapes) {\n\t\t\tthis._shapes.z.flipped = dot > 0;\n\t\t}\n\t\ttmpV1$3.cross(facingDir, this.root.right);\n\t\tthis._shapes.yz.entity.enabled = tmpV1$3.length() < GLANCE_EPSILON$1;\n\t\tif (this.flipShapes) {\n\t\t\tthis._shapes.yz.flipped = tmpV2$3.set(0, +(tmpV1$3.dot(this.root.forward) < 0), +(tmpV1$3.dot(this.root.up) < 0));\n\t\t}\n\t\ttmpV1$3.cross(facingDir, this.root.forward);\n\t\tthis._shapes.xy.entity.enabled = tmpV1$3.length() < GLANCE_EPSILON$1;\n\t\tif (this.flipShapes) {\n\t\t\tthis._shapes.xy.flipped = tmpV2$3.set(+(tmpV1$3.dot(this.root.up) < 0), +(tmpV1$3.dot(this.root.right) > 0), 0);\n\t\t}\n\t\ttmpV1$3.cross(facingDir, this.root.up);\n\t\tthis._shapes.xz.entity.enabled = tmpV1$3.length() < GLANCE_EPSILON$1;\n\t\tif (this.flipShapes) {\n\t\t\tthis._shapes.xz.flipped = tmpV2$3.set(+(tmpV1$3.dot(this.root.forward) > 0), 0, +(tmpV1$3.dot(this.root.right) > 0));\n\t\t}\n\t}\n\t_storeNodePositions() {\n\t\tfor (let i = 0; i < this.nodes.length; i++) {\n\t\t\tconst node = this.nodes[i];\n\t\t\tthis._nodeLocalPositions.set(node, node.getLocalPosition().clone());\n\t\t\tthis._nodePositions.set(node, node.getPosition().clone());\n\t\t}\n\t}\n\t_setNodePositions(pointDelta) {\n\t\tfor (let i = 0; i < this.nodes.length; i++) {\n\t\t\tconst node = this.nodes[i];\n\t\t\tif (this._coordSpace === GIZMOSPACE_LOCAL) {\n\t\t\t\tvar _node$parent;\n\t\t\t\tconst pos = this._nodeLocalPositions.get(node);\n\t\t\t\tif (!pos) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\ttmpV1$3.copy(pointDelta);\n\t\t\t\t(_node$parent = node.parent) == null || _node$parent.getWorldTransform().getScale(tmpV2$3);\n\t\t\t\ttmpV2$3.x = 1 / tmpV2$3.x;\n\t\t\t\ttmpV2$3.y = 1 / tmpV2$3.y;\n\t\t\t\ttmpV2$3.z = 1 / tmpV2$3.z;\n\t\t\t\ttmpQ1$3.copy(node.getLocalRotation()).transformVector(tmpV1$3, tmpV1$3);\n\t\t\t\ttmpV1$3.mul(tmpV2$3);\n\t\t\t\tnode.setLocalPosition(tmpV1$3.add(pos));\n\t\t\t} else {\n\t\t\t\tconst pos = this._nodePositions.get(node);\n\t\t\t\tif (!pos) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tnode.setPosition(tmpV1$3.copy(pointDelta).add(pos));\n\t\t\t}\n\t\t}\n\t\tthis._updatePosition();\n\t}\n\t_screenToPoint(x, y) {\n\t\tconst mouseWPos = this._camera.screenToWorld(x, y, 1);\n\t\tconst axis = this._selectedAxis;\n\t\tconst isPlane = this._selectedIsPlane;\n\t\tconst ray = this._createRay(mouseWPos);\n\t\tconst plane = this._createPlane(axis, axis === GIZMOAXIS_FACE, !isPlane);\n\t\tconst point = new Vec3();\n\t\tplane.intersectsRay(ray, point);\n\t\ttmpQ1$3.copy(this._rootStartRot).invert().transformVector(point, point);\n\t\tif (!isPlane && axis !== GIZMOAXIS_FACE) {\n\t\t\tthis._projectToAxis(point, axis);\n\t\t}\n\t\treturn point;\n\t}\n}\n\nconst TORUS_RENDER_SEGMENTS = 80;\nconst TORUS_INTERSECT_SEGMENTS = 20;\nclass ArcShape extends Shape {\n\tconstructor(device, options = {}) {\n\t\tvar _options$tubeRadius, _options$ringRadius, _options$sectorAngle;\n\t\tsuper(device, options);\n\t\tthis._tubeRadius = 0.01;\n\t\tthis._ringRadius = 0.5;\n\t\tthis._sectorAngle = void 0;\n\t\tthis._lightDir = void 0;\n\t\tthis._tolerance = 0.05;\n\t\tthis._tubeRadius = (_options$tubeRadius = options.tubeRadius) != null ? _options$tubeRadius : this._tubeRadius;\n\t\tthis._ringRadius = (_options$ringRadius = options.ringRadius) != null ? _options$ringRadius : this._ringRadius;\n\t\tthis._sectorAngle = (_options$sectorAngle = options.sectorAngle) != null ? _options$sectorAngle : this._sectorAngle;\n\t\tthis.triData = [new TriData(this._createTorusGeometry())];\n\t\tthis._createDisk();\n\t}\n\t_createTorusGeometry() {\n\t\treturn new TorusGeometry({\n\t\t\ttubeRadius: this._tubeRadius + this._tolerance,\n\t\t\tringRadius: this._ringRadius,\n\t\t\tsectorAngle: this._sectorAngle,\n\t\t\tsegments: TORUS_INTERSECT_SEGMENTS\n\t\t});\n\t}\n\t_createTorusMesh(sectorAngle) {\n\t\tconst geom = new TorusGeometry({\n\t\t\ttubeRadius: this._tubeRadius,\n\t\t\tringRadius: this._ringRadius,\n\t\t\tsectorAngle: sectorAngle,\n\t\t\tsegments: TORUS_RENDER_SEGMENTS\n\t\t});\n\t\treturn this._createMesh(geom, this._shading);\n\t}\n\t_createDisk() {\n\t\tthis._createRoot('disk');\n\t\tthis._createRenderComponent(this.entity, [this._createTorusMesh(this._sectorAngle), this._createTorusMesh(360)]);\n\t\tthis.drag(false);\n\t}\n\tset tubeRadius(value) {\n\t\tthis._tubeRadius = value != null ? value : 0.1;\n\t\tthis._updateTransform();\n\t}\n\tget tubeRadius() {\n\t\treturn this._tubeRadius;\n\t}\n\tset ringRadius(value) {\n\t\tthis._ringRadius = value != null ? value : 0.1;\n\t\tthis._updateTransform();\n\t}\n\tget ringRadius() {\n\t\treturn this._ringRadius;\n\t}\n\tset tolerance(value) {\n\t\tthis._tolerance = value;\n\t\tthis._updateTransform();\n\t}\n\tget tolerance() {\n\t\treturn this._tolerance;\n\t}\n\t_updateTransform() {\n\t\tthis.triData[0].fromGeometry(this._createTorusGeometry());\n\t\tthis.meshInstances[0].mesh = this._createTorusMesh(this._sectorAngle);\n\t\tthis.meshInstances[1].mesh = this._createTorusMesh(360);\n\t}\n\tdrag(state) {\n\t\tthis.meshInstances[0].visible = !state;\n\t\tthis.meshInstances[1].visible = state;\n\t}\n\thide(state) {\n\t\tif (state) {\n\t\t\tthis.meshInstances[0].visible = false;\n\t\t\tthis.meshInstances[1].visible = false;\n\t\t\treturn;\n\t\t}\n\t\tthis.drag(false);\n\t}\n}\n\nconst tmpV1$2 = new Vec3();\nconst tmpV2$2 = new Vec3();\nconst tmpV3$1 = new Vec3();\nconst tmpV4 = new Vec3();\nconst tmpM1 = new Mat4();\nconst tmpQ1$2 = new Quat();\nconst tmpQ2 = new Quat();\nconst FACING_THRESHOLD = 0.9;\nconst GUIDE_ANGLE_COLOR = new Color(0, 0, 0, 0.3);\nclass RotateGizmo extends TransformGizmo {\n\tconstructor(camera, layer) {\n\t\tsuper(camera, layer);\n\t\tthis._shapes = {\n\t\t\tz: new ArcShape(this._device, {\n\t\t\t\taxis: GIZMOAXIS_Z,\n\t\t\t\tlayers: [this._layer.id],\n\t\t\t\tshading: this._shading,\n\t\t\t\trotation: new Vec3(90, 0, 90),\n\t\t\t\tdefaultColor: this._meshColors.axis.z,\n\t\t\t\thoverColor: this._meshColors.hover.z,\n\t\t\t\tsectorAngle: 180\n\t\t\t}),\n\t\t\tx: new ArcShape(this._device, {\n\t\t\t\taxis: GIZMOAXIS_X,\n\t\t\t\tlayers: [this._layer.id],\n\t\t\t\tshading: this._shading,\n\t\t\t\trotation: new Vec3(0, 0, -90),\n\t\t\t\tdefaultColor: this._meshColors.axis.x,\n\t\t\t\thoverColor: this._meshColors.hover.x,\n\t\t\t\tsectorAngle: 180\n\t\t\t}),\n\t\t\ty: new ArcShape(this._device, {\n\t\t\t\taxis: GIZMOAXIS_Y,\n\t\t\t\tlayers: [this._layer.id],\n\t\t\t\tshading: this._shading,\n\t\t\t\trotation: new Vec3(0, 0, 0),\n\t\t\t\tdefaultColor: this._meshColors.axis.y,\n\t\t\t\thoverColor: this._meshColors.hover.y,\n\t\t\t\tsectorAngle: 180\n\t\t\t}),\n\t\t\tface: new ArcShape(this._device, {\n\t\t\t\taxis: GIZMOAXIS_FACE,\n\t\t\t\tlayers: [this._layer.id],\n\t\t\t\tshading: this._shading,\n\t\t\t\trotation: this._getLookAtEulerAngles(this._camera.entity.getPosition()),\n\t\t\t\tdefaultColor: this._meshColors.axis.f,\n\t\t\t\thoverColor: this._meshColors.hover.f,\n\t\t\t\tringRadius: 0.55\n\t\t\t})\n\t\t};\n\t\tthis._selectionStartAngle = 0;\n\t\tthis._nodeLocalRotations = new Map();\n\t\tthis._nodeRotations = new Map();\n\t\tthis._nodeOffsets = new Map();\n\t\tthis._guideAngleStartColor = GUIDE_ANGLE_COLOR.clone();\n\t\tthis._guideAngleStart = new Vec3();\n\t\tthis._guideAngleEnd = new Vec3();\n\t\tthis.snapIncrement = 5;\n\t\tthis.orbitRotation = false;\n\t\tthis._createTransform();\n\t\tthis.on(TransformGizmo.EVENT_TRANSFORMSTART, (point, x, y) => {\n\t\t\tthis._selectionStartAngle = this._calculateAngle(point, x, y);\n\t\t\tthis._storeNodeRotations();\n\t\t\tthis._storeGuidePoints();\n\t\t\tthis._drag(true);\n\t\t});\n\t\tthis.on(TransformGizmo.EVENT_TRANSFORMMOVE, (point, x, y) => {\n\t\t\tconst axis = this._selectedAxis;\n\t\t\tlet angleDelta = this._calculateAngle(point, x, y) - this._selectionStartAngle;\n\t\t\tif (this.snap) {\n\t\t\t\tangleDelta = Math.round(angleDelta / this.snapIncrement) * this.snapIncrement;\n\t\t\t}\n\t\t\tthis._setNodeRotations(axis, angleDelta);\n\t\t\tthis._updateGuidePoints(angleDelta);\n\t\t});\n\t\tthis.on(TransformGizmo.EVENT_TRANSFORMEND, () => {\n\t\t\tthis._drag(false);\n\t\t});\n\t\tthis.on(TransformGizmo.EVENT_NODESDETACH, () => {\n\t\t\tthis._nodeLocalRotations.clear();\n\t\t\tthis._nodeRotations.clear();\n\t\t\tthis._nodeOffsets.clear();\n\t\t});\n\t\tthis._app.on('prerender', () => {\n\t\t\tthis._shapesLookAtCamera();\n\t\t\tif (this._dragging) {\n\t\t\t\tconst gizmoPos = this.root.getPosition();\n\t\t\t\tthis._drawGuideAngleLine(gizmoPos, this._selectedAxis, this._guideAngleStart, this._guideAngleStartColor);\n\t\t\t\tthis._drawGuideAngleLine(gizmoPos, this._selectedAxis, this._guideAngleEnd);\n\t\t\t}\n\t\t});\n\t}\n\tset xyzTubeRadius(value) {\n\t\tthis._setDiskProp('tubeRadius', value);\n\t}\n\tget xyzTubeRadius() {\n\t\treturn this._shapes.x.tubeRadius;\n\t}\n\tset xyzRingRadius(value) {\n\t\tthis._setDiskProp('ringRadius', value);\n\t}\n\tget xyzRingRadius() {\n\t\treturn this._shapes.x.ringRadius;\n\t}\n\tset faceTubeRadius(value) {\n\t\tthis._shapes.face.tubeRadius = value;\n\t}\n\tget faceTubeRadius() {\n\t\treturn this._shapes.face.tubeRadius;\n\t}\n\tset faceRingRadius(value) {\n\t\tthis._shapes.face.ringRadius = value;\n\t}\n\tget faceRingRadius() {\n\t\treturn this._shapes.face.ringRadius;\n\t}\n\tset ringTolerance(value) {\n\t\tthis._setDiskProp('tolerance', value);\n\t\tthis._shapes.face.tolerance = value;\n\t}\n\tget ringTolerance() {\n\t\treturn this._shapes.x.tolerance;\n\t}\n\t_setDiskProp(prop, value) {\n\t\tthis._shapes.x[prop] = value;\n\t\tthis._shapes.y[prop] = value;\n\t\tthis._shapes.z[prop] = value;\n\t}\n\t_storeGuidePoints() {\n\t\tconst gizmoPos = this.root.getPosition();\n\t\tconst axis = this._selectedAxis;\n\t\tconst isFacing = axis === GIZMOAXIS_FACE;\n\t\tconst scale = isFacing ? this.faceRingRadius : this.xyzRingRadius;\n\t\tthis._guideAngleStart.copy(this._selectionStartPoint).sub(gizmoPos).normalize();\n\t\tthis._guideAngleStart.mulScalar(scale);\n\t\tthis._guideAngleEnd.copy(this._guideAngleStart);\n\t}\n\t_updateGuidePoints(angleDelta) {\n\t\tconst axis = this._selectedAxis;\n\t\tconst isFacing = axis === GIZMOAXIS_FACE;\n\t\tif (isFacing) {\n\t\t\ttmpV1$2.copy(this.facing);\n\t\t} else {\n\t\t\ttmpV1$2.set(0, 0, 0);\n\t\t\ttmpV1$2[axis] = 1;\n\t\t\tthis._rootStartRot.transformVector(tmpV1$2, tmpV1$2);\n\t\t}\n\t\ttmpQ1$2.setFromAxisAngle(tmpV1$2, angleDelta);\n\t\ttmpQ1$2.transformVector(this._guideAngleStart, this._guideAngleEnd);\n\t}\n\t_drawGuideAngleLine(pos, axis, point, color = this._guideColors[axis]) {\n\t\ttmpV1$2.set(0, 0, 0);\n\t\ttmpV2$2.copy(point).mulScalar(this._scale);\n\t\tthis._app.drawLine(tmpV1$2.add(pos), tmpV2$2.add(pos), color, false, this._layer);\n\t}\n\t_getLookAtEulerAngles(position) {\n\t\ttmpV1$2.set(0, 0, 0);\n\t\ttmpM1.setLookAt(tmpV1$2, position, Vec3.UP);\n\t\ttmpQ1$2.setFromMat4(tmpM1);\n\t\ttmpQ1$2.getEulerAngles(tmpV1$2);\n\t\ttmpV1$2.x += 90;\n\t\treturn tmpV1$2;\n\t}\n\t_shapesLookAtCamera() {\n\t\tif (this._camera.projection === PROJECTION_PERSPECTIVE) {\n\t\t\tthis._shapes.face.entity.lookAt(this._camera.entity.getPosition());\n\t\t\tthis._shapes.face.entity.rotateLocal(90, 0, 0);\n\t\t} else {\n\t\t\ttmpQ1$2.copy(this._camera.entity.getRotation()).getEulerAngles(tmpV1$2);\n\t\t\tthis._shapes.face.entity.setEulerAngles(tmpV1$2);\n\t\t\tthis._shapes.face.entity.rotateLocal(-90, 0, 0);\n\t\t}\n\t\tconst facingDir = tmpV1$2.copy(this.facing);\n\t\ttmpQ1$2.copy(this.root.getRotation()).invert().transformVector(facingDir, facingDir);\n\t\tlet angle = Math.atan2(facingDir.z, facingDir.y) * math.RAD_TO_DEG;\n\t\tthis._shapes.x.entity.setLocalEulerAngles(0, angle - 90, -90);\n\t\tangle = Math.atan2(facingDir.x, facingDir.z) * math.RAD_TO_DEG;\n\t\tthis._shapes.y.entity.setLocalEulerAngles(0, angle, 0);\n\t\tangle = Math.atan2(facingDir.y, facingDir.x) * math.RAD_TO_DEG;\n\t\tthis._shapes.z.entity.setLocalEulerAngles(90, 0, angle + 90);\n\t}\n\t_drag(state) {\n\t\tfor (const axis in this._shapes) {\n\t\t\tconst shape = this._shapes[axis];\n\t\t\tif (axis === this._selectedAxis) {\n\t\t\t\tshape.drag(state);\n\t\t\t} else {\n\t\t\t\tshape.hide(state);\n\t\t\t}\n\t\t}\n\t\tthis.fire(TransformGizmo.EVENT_RENDERUPDATE);\n\t}\n\t_storeNodeRotations() {\n\t\tconst gizmoPos = this.root.getPosition();\n\t\tfor (let i = 0; i < this.nodes.length; i++) {\n\t\t\tconst node = this.nodes[i];\n\t\t\tthis._nodeLocalRotations.set(node, node.getLocalRotation().clone());\n\t\t\tthis._nodeRotations.set(node, node.getRotation().clone());\n\t\t\tthis._nodeOffsets.set(node, node.getPosition().clone().sub(gizmoPos));\n\t\t}\n\t}\n\t_setNodeRotations(axis, angleDelta) {\n\t\tconst gizmoPos = this.root.getPosition();\n\t\tconst isFacing = axis === GIZMOAXIS_FACE;\n\t\ttmpQ1$2.setFromAxisAngle(this._dirFromAxis(axis, tmpV1$2), angleDelta);\n\t\tfor (let i = 0; i < this.nodes.length; i++) {\n\t\t\tconst node = this.nodes[i];\n\t\t\tif (!isFacing && this._coordSpace === GIZMOSPACE_LOCAL) {\n\t\t\t\tconst rot = this._nodeLocalRotations.get(node);\n\t\t\t\tif (!rot) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\ttmpQ2.copy(rot).mul(tmpQ1$2);\n\t\t\t\tnode.setLocalRotation(tmpQ2);\n\t\t\t} else {\n\t\t\t\tconst rot = this._nodeRotations.get(node);\n\t\t\t\tif (!rot) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst offset = this._nodeOffsets.get(node);\n\t\t\t\tif (!offset) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\ttmpV1$2.copy(offset);\n\t\t\t\ttmpQ1$2.transformVector(tmpV1$2, tmpV1$2);\n\t\t\t\ttmpQ2.copy(tmpQ1$2).mul(rot);\n\t\t\t\tnode.setEulerAngles(tmpQ2.getEulerAngles());\n\t\t\t\tnode.setPosition(tmpV1$2.add(gizmoPos));\n\t\t\t}\n\t\t}\n\t\tif (this._coordSpace === GIZMOSPACE_LOCAL) {\n\t\t\tthis._updateRotation();\n\t\t}\n\t}\n\t_screenToPoint(x, y) {\n\t\tconst mouseWPos = this._camera.screenToWorld(x, y, 1);\n\t\tconst axis = this._selectedAxis;\n\t\tconst ray = this._createRay(mouseWPos);\n\t\tconst plane = this._createPlane(axis, axis === GIZMOAXIS_FACE, false);\n\t\tconst point = new Vec3();\n\t\tplane.intersectsRay(ray, point);\n\t\treturn point;\n\t}\n\t_calculateAngle(point, x, y) {\n\t\tconst gizmoPos = this.root.getPosition();\n\t\tconst axis = this._selectedAxis;\n\t\tconst plane = this._createPlane(axis, axis === GIZMOAXIS_FACE, false);\n\t\tlet angle = 0;\n\t\tconst facingDir = tmpV2$2.copy(this.facing);\n\t\tconst facingDot = plane.normal.dot(facingDir);\n\t\tif (this.orbitRotation || Math.abs(facingDot) > FACING_THRESHOLD) {\n\t\t\ttmpV1$2.sub2(point, gizmoPos);\n\t\t\ttmpQ1$2.copy(this._camera.entity.getRotation()).invert().transformVector(tmpV1$2, tmpV1$2);\n\t\t\tangle = Math.sign(facingDot) * Math.atan2(tmpV1$2.y, tmpV1$2.x) * math.RAD_TO_DEG;\n\t\t} else {\n\t\t\ttmpV1$2.copy(gizmoPos);\n\t\t\ttmpV2$2.cross(plane.normal, facingDir).normalize().add(gizmoPos);\n\t\t\tthis._camera.worldToScreen(tmpV1$2, tmpV3$1);\n\t\t\tthis._camera.worldToScreen(tmpV2$2, tmpV4);\n\t\t\ttmpV1$2.sub2(tmpV4, tmpV3$1).normalize();\n\t\t\ttmpV2$2.set(x, y, 0);\n\t\t\tangle = tmpV1$2.dot(tmpV2$2);\n\t\t}\n\t\treturn angle;\n\t}\n}\n\nclass BoxShape extends Shape {\n\tconstructor(device, options = {}) {\n\t\tsuper(device, options);\n\t\tthis._size = 0.12;\n\t\tthis._tolerance = 0.05;\n\t\tthis.triData = [new TriData(new BoxGeometry(), 2)];\n\t\tthis._createCenter();\n\t}\n\t_createCenter() {\n\t\tthis._createRoot('boxCenter');\n\t\tthis._updateTransform();\n\t\tthis._addRenderMesh(this.entity, 'box', this._shading);\n\t}\n\tset size(value) {\n\t\tthis._size = value != null ? value : 1;\n\t\tthis._updateTransform();\n\t}\n\tget size() {\n\t\treturn this._size;\n\t}\n\tset tolerance(value) {\n\t\tthis._tolerance = value;\n\t\tthis._updateTransform();\n\t}\n\tget tolerance() {\n\t\treturn this._tolerance;\n\t}\n\t_updateTransform() {\n\t\tthis.entity.setLocalScale(this._size, this._size, this._size);\n\t}\n}\n\nconst tmpV1$1 = new Vec3();\nconst tmpV2$1 = new Vec3();\nconst tmpQ1$1 = new Quat();\nclass BoxLineShape extends Shape {\n\tconstructor(device, options = {}) {\n\t\tsuper(device, options);\n\t\tthis._gap = 0;\n\t\tthis._lineThickness = 0.02;\n\t\tthis._lineLength = 0.5;\n\t\tthis._boxSize = 0.12;\n\t\tthis._tolerance = 0.1;\n\t\tthis._box = void 0;\n\t\tthis._line = void 0;\n\t\tthis._flipped = false;\n\t\tthis.triData = [new TriData(new BoxGeometry()), new TriData(new CylinderGeometry(), 1)];\n\t\tthis._createBoxLine();\n\t}\n\tset gap(value) {\n\t\tthis._gap = value != null ? value : 0;\n\t\tthis._updateLine();\n\t\tthis._updateBox();\n\t}\n\tget gap() {\n\t\treturn this._gap;\n\t}\n\tset lineThickness(value) {\n\t\tthis._lineThickness = value != null ? value : 1;\n\t\tthis._updateLine();\n\t\tthis._updateBox();\n\t}\n\tget lineThickness() {\n\t\treturn this._lineThickness;\n\t}\n\tset lineLength(value) {\n\t\tthis._lineLength = value != null ? value : 1;\n\t\tthis._updateLine();\n\t\tthis._updateBox();\n\t}\n\tget lineLength() {\n\t\treturn this._lineLength;\n\t}\n\tset boxSize(value) {\n\t\tthis._boxSize = value != null ? value : 1;\n\t\tthis._updateBox();\n\t}\n\tget boxSize() {\n\t\treturn this._boxSize;\n\t}\n\tset tolerance(value) {\n\t\tthis._tolerance = value;\n\t\tthis._updateLine();\n\t}\n\tget tolerance() {\n\t\treturn this._tolerance;\n\t}\n\tset flipped(value) {\n\t\tif (this._flipped === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis._flipped = value;\n\t\tif (this._rotation.equals(Vec3.ZERO)) {\n\t\t\ttmpV1$1.set(0, 0, this._flipped ? 180 : 0);\n\t\t} else {\n\t\t\ttmpV1$1.copy(this._rotation).mulScalar(this._flipped ? -1 : 1);\n\t\t}\n\t\tthis._line.enabled = !this._flipped;\n\t\tthis.entity.setLocalEulerAngles(tmpV1$1);\n\t}\n\tget flipped() {\n\t\treturn this._flipped;\n\t}\n\t_createBoxLine() {\n\t\tthis._createRoot('boxLine');\n\t\tthis._box = new Entity(`box:${this.axis}`);\n\t\tthis.entity.addChild(this._box);\n\t\tthis._updateBox();\n\t\tthis._addRenderMesh(this._box, 'box', this._shading);\n\t\tthis._line = new Entity(`line:${this.axis}`);\n\t\tthis.entity.addChild(this._line);\n\t\tthis._updateLine();\n\t\tthis._addRenderMesh(this._line, 'cylinder', this._shading);\n\t}\n\t_updateBox() {\n\t\ttmpV1$1.set(0, this._gap + this._boxSize * 0.5 + this._lineLength, 0);\n\t\ttmpQ1$1.set(0, 0, 0, 1);\n\t\ttmpV2$1.set(this._boxSize, this._boxSize, this._boxSize);\n\t\tthis.triData[0].setTransform(tmpV1$1, tmpQ1$1, tmpV2$1);\n\t\tthis._box.setLocalPosition(0, this._gap + this._boxSize * 0.5 + this._lineLength, 0);\n\t\tthis._box.setLocalScale(this._boxSize, this._boxSize, this._boxSize);\n\t}\n\t_updateLine() {\n\t\ttmpV1$1.set(0, this._gap + this._lineLength * 0.5, 0);\n\t\ttmpQ1$1.set(0, 0, 0, 1);\n\t\ttmpV2$1.set(this._lineThickness + this._tolerance, this._lineLength, this._lineThickness + this._tolerance);\n\t\tthis.triData[1].setTransform(tmpV1$1, tmpQ1$1, tmpV2$1);\n\t\tthis._line.setLocalPosition(0, this._gap + this._lineLength * 0.5, 0);\n\t\tthis._line.setLocalScale(this._lineThickness, this._lineLength, this._lineThickness);\n\t}\n}\n\nconst tmpV1 = new Vec3();\nconst tmpV2 = new Vec3();\nconst tmpV3 = new Vec3();\nconst tmpQ1 = new Quat();\nconst GLANCE_EPSILON = 0.98;\nclass ScaleGizmo extends TransformGizmo {\n\tconstructor(camera, layer) {\n\t\tsuper(camera, layer);\n\t\tthis._shapes = {\n\t\t\txyz: new BoxShape(this._device, {\n\t\t\t\taxis: GIZMOAXIS_XYZ,\n\t\t\t\tlayers: [this._layer.id],\n\t\t\t\tshading: this._shading,\n\t\t\t\tdefaultColor: this._meshColors.axis.xyz,\n\t\t\t\thoverColor: this._meshColors.hover.xyz\n\t\t\t}),\n\t\t\tyz: new PlaneShape(this._device, {\n\t\t\t\taxis: GIZMOAXIS_X,\n\t\t\t\tlayers: [this._layer.id],\n\t\t\t\tshading: this._shading,\n\t\t\t\trotation: new Vec3(0, 0, -90),\n\t\t\t\tdefaultColor: this._meshColors.axis.x,\n\t\t\t\thoverColor: this._meshColors.hover.x\n\t\t\t}),\n\t\t\txz: new PlaneShape(this._device, {\n\t\t\t\taxis: GIZMOAXIS_Y,\n\t\t\t\tlayers: [this._layer.id],\n\t\t\t\tshading: this._shading,\n\t\t\t\trotation: new Vec3(0, 0, 0),\n\t\t\t\tdefaultColor: this._meshColors.axis.y,\n\t\t\t\thoverColor: this._meshColors.hover.y\n\t\t\t}),\n\t\t\txy: new PlaneShape(this._device, {\n\t\t\t\taxis: GIZMOAXIS_Z,\n\t\t\t\tlayers: [this._layer.id],\n\t\t\t\tshading: this._shading,\n\t\t\t\trotation: new Vec3(90, 0, 0),\n\t\t\t\tdefaultColor: this._meshColors.axis.z,\n\t\t\t\thoverColor: this._meshColors.hover.z\n\t\t\t}),\n\t\t\tx: new BoxLineShape(this._device, {\n\t\t\t\taxis: GIZMOAXIS_X,\n\t\t\t\tlayers: [this._layer.id],\n\t\t\t\tshading: this._shading,\n\t\t\t\trotation: new Vec3(0, 0, -90),\n\t\t\t\tdefaultColor: this._meshColors.axis.x,\n\t\t\t\thoverColor: this._meshColors.hover.x\n\t\t\t}),\n\t\t\ty: new BoxLineShape(this._device, {\n\t\t\t\taxis: GIZMOAXIS_Y,\n\t\t\t\tlayers: [this._layer.id],\n\t\t\t\tshading: this._shading,\n\t\t\t\trotation: new Vec3(0, 0, 0),\n\t\t\t\tdefaultColor: this._meshColors.axis.y,\n\t\t\t\thoverColor: this._meshColors.hover.y\n\t\t\t}),\n\t\t\tz: new BoxLineShape(this._device, {\n\t\t\t\taxis: GIZMOAXIS_Z,\n\t\t\t\tlayers: [this._layer.id],\n\t\t\t\tshading: this._shading,\n\t\t\t\trotation: new Vec3(90, 0, 0),\n\t\t\t\tdefaultColor: this._meshColors.axis.z,\n\t\t\t\thoverColor: this._meshColors.hover.z\n\t\t\t})\n\t\t};\n\t\tthis._coordSpace = GIZMOSPACE_LOCAL;\n\t\tthis._nodeScales = new Map();\n\t\tthis._forward = new Vec3();\n\t\tthis._useUniformScaling = false;\n\t\tthis.snapIncrement = 1;\n\t\tthis.flipShapes = true;\n\t\tthis.lowerBoundScale = new Vec3(-Infinity, -Infinity, -Infinity);\n\t\tthis._createTransform();\n\t\tthis.on(TransformGizmo.EVENT_TRANSFORMSTART, () => {\n\t\t\tthis._storeNodeScales();\n\t\t});\n\t\tthis.on(TransformGizmo.EVENT_TRANSFORMMOVE, point => {\n\t\t\tconst pointDelta = tmpV3.copy(point).sub(this._selectionStartPoint);\n\t\t\tif (this.snap) {\n\t\t\t\tpointDelta.mulScalar(1 / this.snapIncrement);\n\t\t\t\tpointDelta.round();\n\t\t\t\tpointDelta.mulScalar(this.snapIncrement);\n\t\t\t}\n\t\t\tpointDelta.mulScalar(1 / this._scale);\n\t\t\tthis._setNodeScales(pointDelta.add(Vec3.ONE));\n\t\t});\n\t\tthis.on(TransformGizmo.EVENT_NODESDETACH, () => {\n\t\t\tthis._nodeScales.clear();\n\t\t});\n\t\tthis._app.on('prerender', () => {\n\t\t\tthis._shapesLookAtCamera();\n\t\t});\n\t}\n\tset coordSpace(value) {}\n\tget coordSpace() {\n\t\treturn this._coordSpace;\n\t}\n\tset uniform(value) {\n\t\tthis._useUniformScaling = value != null ? value : true;\n\t}\n\tget uniform() {\n\t\treturn this._useUniformScaling;\n\t}\n\tset axisGap(value) {\n\t\tthis._setArrowProp('gap', value);\n\t}\n\tget axisGap() {\n\t\treturn this._shapes.x.gap;\n\t}\n\tset axisLineThickness(value) {\n\t\tthis._setArrowProp('lineThickness', value);\n\t}\n\tget axisLineThickness() {\n\t\treturn this._shapes.x.lineThickness;\n\t}\n\tset axisLineLength(value) {\n\t\tthis._setArrowProp('lineLength', value);\n\t}\n\tget axisLineLength() {\n\t\treturn this._shapes.x.lineLength;\n\t}\n\tset axisLineTolerance(value) {\n\t\tthis._setArrowProp('tolerance', value);\n\t}\n\tget axisLineTolerance() {\n\t\treturn this._shapes.x.tolerance;\n\t}\n\tset axisBoxSize(value) {\n\t\tthis._setArrowProp('boxSize', value);\n\t}\n\tget axisBoxSize() {\n\t\treturn this._shapes.x.boxSize;\n\t}\n\tset axisPlaneSize(value) {\n\t\tthis._setPlaneProp('size', value);\n\t}\n\tget axisPlaneSize() {\n\t\treturn this._shapes.yz.size;\n\t}\n\tset axisPlaneGap(value) {\n\t\tthis._setPlaneProp('gap', value);\n\t}\n\tget axisPlaneGap() {\n\t\treturn this._shapes.yz.gap;\n\t}\n\tset axisCenterSize(value) {\n\t\tthis._shapes.xyz.size = value;\n\t}\n\tget axisCenterSize() {\n\t\treturn this._shapes.xyz.size;\n\t}\n\tset axisCenterTolerance(value) {\n\t\tthis._shapes.xyz.tolerance = value;\n\t}\n\tget axisCenterTolerance() {\n\t\treturn this._shapes.xyz.tolerance;\n\t}\n\t_setArrowProp(prop, value) {\n\t\tthis._shapes.x[prop] = value;\n\t\tthis._shapes.y[prop] = value;\n\t\tthis._shapes.z[prop] = value;\n\t}\n\t_setPlaneProp(prop, value) {\n\t\tthis._shapes.yz[prop] = value;\n\t\tthis._shapes.xz[prop] = value;\n\t\tthis._shapes.xy[prop] = value;\n\t}\n\t_shapesLookAtCamera() {\n\t\tconst facingDir = this.facing;\n\t\tlet dot = facingDir.dot(this.root.right);\n\t\tthis._shapes.x.entity.enabled = Math.abs(dot) < GLANCE_EPSILON;\n\t\tif (this.flipShapes) {\n\t\t\tthis._shapes.x.flipped = dot < 0;\n\t\t}\n\t\tdot = facingDir.dot(this.root.up);\n\t\tthis._shapes.y.entity.enabled = Math.abs(dot) < GLANCE_EPSILON;\n\t\tif (this.flipShapes) {\n\t\t\tthis._shapes.y.flipped = dot < 0;\n\t\t}\n\t\tdot = facingDir.dot(this.root.forward);\n\t\tthis._shapes.z.entity.enabled = Math.abs(dot) < GLANCE_EPSILON;\n\t\tif (this.flipShapes) {\n\t\t\tthis._shapes.z.flipped = dot > 0;\n\t\t}\n\t\ttmpV1.cross(facingDir, this.root.right);\n\t\tthis._shapes.yz.entity.enabled = tmpV1.length() < GLANCE_EPSILON;\n\t\tif (this.flipShapes) {\n\t\t\tthis._shapes.yz.flipped = tmpV2.set(0, +(tmpV1.dot(this.root.forward) < 0), +(tmpV1.dot(this.root.up) < 0));\n\t\t}\n\t\ttmpV1.cross(facingDir, this.root.forward);\n\t\tthis._shapes.xy.entity.enabled = tmpV1.length() < GLANCE_EPSILON;\n\t\tif (this.flipShapes) {\n\t\t\tthis._shapes.xy.flipped = tmpV2.set(+(tmpV1.dot(this.root.up) < 0), +(tmpV1.dot(this.root.right) > 0), 0);\n\t\t}\n\t\ttmpV1.cross(facingDir, this.root.up);\n\t\tthis._shapes.xz.entity.enabled = tmpV1.length() < GLANCE_EPSILON;\n\t\tif (this.flipShapes) {\n\t\t\tthis._shapes.xz.flipped = tmpV2.set(+(tmpV1.dot(this.root.forward) > 0), 0, +(tmpV1.dot(this.root.right) > 0));\n\t\t}\n\t}\n\t_storeNodeScales() {\n\t\tfor (let i = 0; i < this.nodes.length; i++) {\n\t\t\tconst node = this.nodes[i];\n\t\t\tthis._nodeScales.set(node, node.getLocalScale().clone());\n\t\t}\n\t}\n\t_setNodeScales(pointDelta) {\n\t\tfor (let i = 0; i < this.nodes.length; i++) {\n\t\t\tconst node = this.nodes[i];\n\t\t\tconst scale = this._nodeScales.get(node);\n\t\t\tif (!scale) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tnode.setLocalScale(tmpV1.copy(scale).mul(pointDelta).max(this.lowerBoundScale));\n\t\t}\n\t}\n\t_screenToPoint(x, y) {\n\t\tconst gizmoPos = this.root.getPosition();\n\t\tconst mouseWPos = this._camera.screenToWorld(x, y, 1);\n\t\tconst axis = this._selectedAxis;\n\t\tconst isPlane = this._selectedIsPlane;\n\t\tconst isScaleUniform = this._useUniformScaling && isPlane || axis === GIZMOAXIS_XYZ;\n\t\tconst ray = this._createRay(mouseWPos);\n\t\tconst plane = this._createPlane(axis, isScaleUniform, !isPlane);\n\t\tconst point = new Vec3();\n\t\tplane.intersectsRay(ray, point);\n\t\tif (isScaleUniform) {\n\t\t\tswitch (axis) {\n\t\t\t\tcase GIZMOAXIS_X:\n\t\t\t\t\ttmpV1.copy(this.root.up);\n\t\t\t\t\ttmpV2.copy(this.root.forward).mulScalar(-1);\n\t\t\t\t\tbreak;\n\t\t\t\tcase GIZMOAXIS_Y:\n\t\t\t\t\ttmpV1.copy(this.root.right);\n\t\t\t\t\ttmpV2.copy(this.root.forward).mulScalar(-1);\n\t\t\t\t\tbreak;\n\t\t\t\tcase GIZMOAXIS_Z:\n\t\t\t\t\ttmpV1.copy(this.root.up);\n\t\t\t\t\ttmpV2.copy(this.root.right);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\ttmpV1.copy(this._camera.entity.up);\n\t\t\t\t\ttmpV2.copy(this._camera.entity.right);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\ttmpV2.add(tmpV1).normalize();\n\t\t\ttmpV1.sub2(point, gizmoPos);\n\t\t\tconst length = tmpV1.length();\n\t\t\tconst v = length * tmpV1.normalize().dot(tmpV2);\n\t\t\tpoint.set(v, v, v);\n\t\t\tif (axis !== GIZMOAXIS_XYZ) {\n\t\t\t\tpoint[axis] = 1;\n\t\t\t}\n\t\t\treturn point;\n\t\t}\n\t\ttmpQ1.copy(this._rootStartRot).invert().transformVector(point, point);\n\t\tif (!isPlane) {\n\t\t\tthis._projectToAxis(point, axis);\n\t\t}\n\t\treturn point;\n\t}\n}\n\nexport { ABSOLUTE_URL, ACTION_GAMEPAD, ACTION_KEYBOARD, ACTION_MOUSE, ADDRESS_CLAMP_TO_EDGE, ADDRESS_MIRRORED_REPEAT, ADDRESS_REPEAT, ANIM_BLEND_1D, ANIM_BLEND_2D_CARTESIAN, ANIM_BLEND_2D_DIRECTIONAL, ANIM_BLEND_DIRECT, ANIM_CONTROL_STATES, ANIM_EQUAL_TO, ANIM_GREATER_THAN, ANIM_GREATER_THAN_EQUAL_TO, ANIM_INTERRUPTION_NEXT, ANIM_INTERRUPTION_NEXT_PREV, ANIM_INTERRUPTION_NONE, ANIM_INTERRUPTION_PREV, ANIM_INTERRUPTION_PREV_NEXT, ANIM_LAYER_ADDITIVE, ANIM_LAYER_OVERWRITE, ANIM_LESS_THAN, ANIM_LESS_THAN_EQUAL_TO, ANIM_NOT_EQUAL_TO, ANIM_PARAMETER_BOOLEAN, ANIM_PARAMETER_FLOAT, ANIM_PARAMETER_INTEGER, ANIM_PARAMETER_TRIGGER, ANIM_STATE_ANY, ANIM_STATE_END, ANIM_STATE_START, ASPECT_AUTO, ASPECT_MANUAL, ASSET_ANIMATION, ASSET_AUDIO, ASSET_CONTAINER, ASSET_CSS, ASSET_CUBEMAP, ASSET_HTML, ASSET_IMAGE, ASSET_JSON, ASSET_MATERIAL, ASSET_MODEL, ASSET_SCRIPT, ASSET_SHADER, ASSET_TEXT, ASSET_TEXTURE, ASSET_TEXTUREATLAS, AXIS_KEY, AXIS_MOUSE_X, AXIS_MOUSE_Y, AXIS_PAD_L_X, AXIS_PAD_L_Y, AXIS_PAD_R_X, AXIS_PAD_R_Y, AnimBinder, AnimClip, AnimClipHandler, AnimComponent, AnimComponentLayer, AnimComponentSystem, AnimController, AnimCurve, AnimData, AnimEvaluator, AnimEvents, AnimSnapshot, AnimStateGraph, AnimStateGraphHandler, AnimTarget, AnimTrack, Animation, AnimationComponent, AnimationComponentSystem, AnimationHandler, AppBase, AppOptions, Application, Asset, AssetListLoader, AssetReference, AssetRegistry, AudioHandler, AudioListenerComponent, AudioListenerComponentSystem, AudioSourceComponent, AudioSourceComponentSystem, BAKE_COLOR, BAKE_COLORDIR, BINDGROUP_MESH, BINDGROUP_VIEW, BLENDEQUATION_ADD, BLENDEQUATION_MAX, BLENDEQUATION_MIN, BLENDEQUATION_REVERSE_SUBTRACT, BLENDEQUATION_SUBTRACT, BLENDMODE_CONSTANT, BLENDMODE_CONSTANT_ALPHA, BLENDMODE_CONSTANT_COLOR, BLENDMODE_DST_ALPHA, BLENDMODE_DST_COLOR, BLENDMODE_ONE, BLENDMODE_ONE_MINUS_CONSTANT, BLENDMODE_ONE_MINUS_CONSTANT_ALPHA, BLENDMODE_ONE_MINUS_CONSTANT_COLOR, BLENDMODE_ONE_MINUS_DST_ALPHA, BLENDMODE_ONE_MINUS_DST_COLOR, BLENDMODE_ONE_MINUS_SRC_ALPHA, BLENDMODE_ONE_MINUS_SRC_COLOR, BLENDMODE_SRC_ALPHA, BLENDMODE_SRC_ALPHA_SATURATE, BLENDMODE_SRC_COLOR, BLENDMODE_ZERO, BLEND_ADDITIVE, BLEND_ADDITIVEALPHA, BLEND_MAX, BLEND_MIN, BLEND_MULTIPLICATIVE, BLEND_MULTIPLICATIVE2X, BLEND_NONE, BLEND_NORMAL, BLEND_PREMULTIPLIED, BLEND_SCREEN, BLEND_SUBTRACTIVE, BLUR_BOX, BLUR_GAUSSIAN, BODYFLAG_KINEMATIC_OBJECT, BODYFLAG_NORESPONSE_OBJECT, BODYFLAG_STATIC_OBJECT, BODYGROUP_DEFAULT, BODYGROUP_DYNAMIC, BODYGROUP_ENGINE_1, BODYGROUP_ENGINE_2, BODYGROUP_ENGINE_3, BODYGROUP_KINEMATIC, BODYGROUP_NONE, BODYGROUP_STATIC, BODYGROUP_TRIGGER, BODYGROUP_USER_1, BODYGROUP_USER_2, BODYGROUP_USER_3, BODYGROUP_USER_4, BODYGROUP_USER_5, BODYGROUP_USER_6, BODYGROUP_USER_7, BODYGROUP_USER_8, BODYMASK_ALL, BODYMASK_NONE, BODYMASK_NOT_STATIC, BODYMASK_NOT_STATIC_KINEMATIC, BODYMASK_STATIC, BODYSTATE_ACTIVE_TAG, BODYSTATE_DISABLE_DEACTIVATION, BODYSTATE_DISABLE_SIMULATION, BODYSTATE_ISLAND_SLEEPING, BODYSTATE_WANTS_DEACTIVATION, BODYTYPE_DYNAMIC, BODYTYPE_KINEMATIC, BODYTYPE_STATIC, BUFFERUSAGE_COPY_DST, BUFFERUSAGE_COPY_SRC, BUFFERUSAGE_INDEX, BUFFERUSAGE_INDIRECT, BUFFERUSAGE_READ, BUFFERUSAGE_STORAGE, BUFFERUSAGE_UNIFORM, BUFFERUSAGE_VERTEX, BUFFERUSAGE_WRITE, BUFFER_DYNAMIC, BUFFER_GPUDYNAMIC, BUFFER_STATIC, BUFFER_STREAM, BUTTON_TRANSITION_MODE_SPRITE_CHANGE, BUTTON_TRANSITION_MODE_TINT, BasicMaterial, Batch, BatchGroup, BatchManager, BinaryHandler, BindGroupFormat, BindStorageBufferFormat, BindStorageTextureFormat, BindTextureFormat, BindUniformBufferFormat, BlendState, BoundingBox, BoundingSphere, BoxGeometry, Bundle, BundleHandler, BundleRegistry, ButtonComponent, ButtonComponentSystem, CHUNKAPI_1_51, CHUNKAPI_1_55, CHUNKAPI_1_56, CHUNKAPI_1_57, CHUNKAPI_1_58, CHUNKAPI_1_60, CHUNKAPI_1_62, CHUNKAPI_1_65, CHUNKAPI_1_70, CLEARFLAG_COLOR, CLEARFLAG_DEPTH, CLEARFLAG_STENCIL, CUBEFACE_NEGX, CUBEFACE_NEGY, CUBEFACE_NEGZ, CUBEFACE_POSX, CUBEFACE_POSY, CUBEFACE_POSZ, CUBEPROJ_BOX, CUBEPROJ_NONE, CULLFACE_BACK, CULLFACE_FRONT, CULLFACE_FRONTANDBACK, CULLFACE_NONE, CURVE_CARDINAL, CURVE_CATMULL, CURVE_LINEAR, CURVE_SMOOTHSTEP, CURVE_SPLINE, CURVE_STEP, Camera, CameraComponent, CameraComponentSystem, CanvasFont, CapsuleGeometry, ChunkBuilder, CollisionComponent, CollisionComponentSystem, Color, Component, ComponentSystem, ComponentSystemRegistry, Compute, ConeGeometry, ContactPoint, ContactResult, ContainerHandler, ContainerResource, ContextCreationError, Controller, CssHandler, CubemapHandler, Curve, CurveSet, CylinderGeometry, DETAILMODE_ADD, DETAILMODE_MAX, DETAILMODE_MIN, DETAILMODE_MUL, DETAILMODE_OVERLAY, DETAILMODE_SCREEN, DEVICETYPE_NULL, DEVICETYPE_WEBGL1, DEVICETYPE_WEBGL2, DEVICETYPE_WEBGPU, DISTANCE_EXPONENTIAL, DISTANCE_INVERSE, DISTANCE_LINEAR, DITHER_BAYER8, DITHER_BLUENOISE, DITHER_IGNNOISE, DITHER_NONE, DefaultAnimBinder, DepthState, DomeGeometry, ELEMENTTYPE_FLOAT32, ELEMENTTYPE_GROUP, ELEMENTTYPE_IMAGE, ELEMENTTYPE_INT16, ELEMENTTYPE_INT32, ELEMENTTYPE_INT8, ELEMENTTYPE_TEXT, ELEMENTTYPE_UINT16, ELEMENTTYPE_UINT32, ELEMENTTYPE_UINT8, EMITTERSHAPE_BOX, EMITTERSHAPE_SPHERE, EVENT_GAMEPADCONNECTED, EVENT_GAMEPADDISCONNECTED, EVENT_KEYDOWN, EVENT_KEYUP, EVENT_MOUSEDOWN, EVENT_MOUSEMOVE, EVENT_MOUSEUP, EVENT_MOUSEWHEEL, EVENT_SELECT, EVENT_SELECTEND, EVENT_SELECTSTART, EVENT_TOUCHCANCEL, EVENT_TOUCHEND, EVENT_TOUCHMOVE, EVENT_TOUCHSTART, ElementComponent, ElementComponentSystem, ElementDragHelper, ElementInput, ElementInputEvent, ElementMouseEvent, ElementSelectEvent, ElementTouchEvent, Entity, EnvLighting, EventHandle, EventHandler, FILLMODE_FILL_WINDOW, FILLMODE_KEEP_ASPECT, FILLMODE_NONE, FILTER_LINEAR, FILTER_LINEAR_MIPMAP_LINEAR, FILTER_LINEAR_MIPMAP_NEAREST, FILTER_NEAREST, FILTER_NEAREST_MIPMAP_LINEAR, FILTER_NEAREST_MIPMAP_NEAREST, FITMODE_CONTAIN, FITMODE_COVER, FITMODE_STRETCH, FITTING_BOTH, FITTING_NONE, FITTING_SHRINK, FITTING_STRETCH, FOG_EXP, FOG_EXP2, FOG_LINEAR, FOG_NONE, FONT_BITMAP, FONT_MSDF, FRESNEL_NONE, FRESNEL_SCHLICK, FUNC_ALWAYS, FUNC_EQUAL, FUNC_GREATER, FUNC_GREATEREQUAL, FUNC_LESS, FUNC_LESSEQUAL, FUNC_NEVER, FUNC_NOTEQUAL, FloatPacking, FolderHandler, Font, FontHandler, ForwardRenderer, Frustum, GAMMA_NONE, GAMMA_SRGB, GAMMA_SRGBFAST, GAMMA_SRGBHDR, GIZMOAXIS_FACE, GIZMOAXIS_X, GIZMOAXIS_XY, GIZMOAXIS_XYZ, GIZMOAXIS_XZ, GIZMOAXIS_Y, GIZMOAXIS_YZ, GIZMOAXIS_Z, GIZMOSPACE_LOCAL, GIZMOSPACE_WORLD, GSplat, GSplatComponent, GSplatComponentSystem, GSplatData, GSplatHandler, GSplatInstance, GSplatResource, GamePads, Geometry, Gizmo, GltfExporter, GraphNode, GraphicsDevice, HierarchyHandler, HtmlHandler, Http, I18n, INDEXFORMAT_UINT16, INDEXFORMAT_UINT32, INDEXFORMAT_UINT8, INTERPOLATION_CUBIC, INTERPOLATION_LINEAR, INTERPOLATION_STEP, ImageElement, IndexBuffer, IndexedList, JointComponent, JointComponentSystem, JsonHandler, JsonStandardMaterialParser, KEY_0, KEY_1, KEY_2, KEY_3, KEY_4, KEY_5, KEY_6, KEY_7, KEY_8, KEY_9, KEY_A, KEY_ADD, KEY_ALT, KEY_B, KEY_BACKSPACE, KEY_BACK_SLASH, KEY_C, KEY_CAPS_LOCK, KEY_CLOSE_BRACKET, KEY_COMMA, KEY_CONTEXT_MENU, KEY_CONTROL, KEY_D, KEY_DECIMAL, KEY_DELETE, KEY_DIVIDE, KEY_DOWN, KEY_E, KEY_END, KEY_ENTER, KEY_EQUAL, KEY_ESCAPE, KEY_F, KEY_F1, KEY_F10, KEY_F11, KEY_F12, KEY_F2, KEY_F3, KEY_F4, KEY_F5, KEY_F6, KEY_F7, KEY_F8, KEY_F9, KEY_G, KEY_H, KEY_HOME, KEY_I, KEY_INSERT, KEY_J, KEY_K, KEY_L, KEY_LEFT, KEY_M, KEY_META, KEY_MULTIPLY, KEY_N, KEY_NUMPAD_0, KEY_NUMPAD_1, KEY_NUMPAD_2, KEY_NUMPAD_3, KEY_NUMPAD_4, KEY_NUMPAD_5, KEY_NUMPAD_6, KEY_NUMPAD_7, KEY_NUMPAD_8, KEY_NUMPAD_9, KEY_O, KEY_OPEN_BRACKET, KEY_P, KEY_PAGE_DOWN, KEY_PAGE_UP, KEY_PAUSE, KEY_PERIOD, KEY_PRINT_SCREEN, KEY_Q, KEY_R, KEY_RETURN, KEY_RIGHT, KEY_S, KEY_SEMICOLON, KEY_SEPARATOR, KEY_SHIFT, KEY_SLASH, KEY_SPACE, KEY_SUBTRACT, KEY_T, KEY_TAB, KEY_U, KEY_UP, KEY_V, KEY_W, KEY_WINDOWS, KEY_X, KEY_Y, KEY_Z, Key, Keyboard, KeyboardEvent, LAYERID_DEPTH, LAYERID_IMMEDIATE, LAYERID_SKYBOX, LAYERID_UI, LAYERID_WORLD, LAYER_FX, LAYER_GIZMO, LAYER_HUD, LAYER_WORLD, LIGHTFALLOFF_INVERSESQUARED, LIGHTFALLOFF_LINEAR, LIGHTSHAPE_DISK, LIGHTSHAPE_PUNCTUAL, LIGHTSHAPE_RECT, LIGHTSHAPE_SPHERE, LIGHTTYPE_COUNT, LIGHTTYPE_DIRECTIONAL, LIGHTTYPE_OMNI, LIGHTTYPE_POINT, LIGHTTYPE_SPOT, LINEBATCH_GIZMO, LINEBATCH_OVERLAY, LINEBATCH_WORLD, Layer, LayerComposition, LayoutCalculator, LayoutChildComponent, LayoutChildComponentSystem, LayoutGroupComponent, LayoutGroupComponentSystem, Light, LightComponent, LightComponentSystem, LightingParams, Lightmapper, LitMaterial, LitOptions, LitShaderOptions, LocalizedAsset, MASK_AFFECT_DYNAMIC, MASK_AFFECT_LIGHTMAPPED, MASK_BAKE, MOTION_FREE, MOTION_LIMITED, MOTION_LOCKED, MOUSEBUTTON_LEFT, MOUSEBUTTON_MIDDLE, MOUSEBUTTON_NONE, MOUSEBUTTON_RIGHT, Mat3, Mat4, Material, MaterialHandler, Mesh, MeshInstance, MiniStats, Model, ModelComponent, ModelComponentSystem, ModelHandler, Morph, MorphInstance, MorphTarget, Mouse, MouseEvent, Node, NullGraphicsDevice, ORIENTATION_HORIZONTAL, ORIENTATION_VERTICAL, OrientedBox, PAD_1, PAD_2, PAD_3, PAD_4, PAD_DOWN, PAD_FACE_1, PAD_FACE_2, PAD_FACE_3, PAD_FACE_4, PAD_LEFT, PAD_L_SHOULDER_1, PAD_L_SHOULDER_2, PAD_L_STICK_BUTTON, PAD_L_STICK_X, PAD_L_STICK_Y, PAD_RIGHT, PAD_R_SHOULDER_1, PAD_R_SHOULDER_2, PAD_R_STICK_BUTTON, PAD_R_STICK_X, PAD_R_STICK_Y, PAD_SELECT, PAD_START, PAD_UP, PAD_VENDOR, PARTICLEMODE_CPU, PARTICLEMODE_GPU, PARTICLEORIENTATION_EMITTER, PARTICLEORIENTATION_SCREEN, PARTICLEORIENTATION_WORLD, PARTICLESORT_DISTANCE, PARTICLESORT_NEWER_FIRST, PARTICLESORT_NONE, PARTICLESORT_OLDER_FIRST, PIXELFORMAT_111110F, PIXELFORMAT_A8, PIXELFORMAT_ASTC_4x4, PIXELFORMAT_ATC_RGB, PIXELFORMAT_ATC_RGBA, PIXELFORMAT_BGRA8, PIXELFORMAT_DEPTH, PIXELFORMAT_DEPTHSTENCIL, PIXELFORMAT_DXT1, PIXELFORMAT_DXT3, PIXELFORMAT_DXT5, PIXELFORMAT_ETC1, PIXELFORMAT_ETC2_RGB, PIXELFORMAT_ETC2_RGBA, PIXELFORMAT_L8, PIXELFORMAT_L8_A8, PIXELFORMAT_LA8, PIXELFORMAT_PVRTC_2BPP_RGBA_1, PIXELFORMAT_PVRTC_2BPP_RGB_1, PIXELFORMAT_PVRTC_4BPP_RGBA_1, PIXELFORMAT_PVRTC_4BPP_RGB_1, PIXELFORMAT_R16F, PIXELFORMAT_R16I, PIXELFORMAT_R16U, PIXELFORMAT_R32F, PIXELFORMAT_R32I, PIXELFORMAT_R32U, PIXELFORMAT_R4_G4_B4_A4, PIXELFORMAT_R5_G5_B5_A1, PIXELFORMAT_R5_G6_B5, PIXELFORMAT_R8I, PIXELFORMAT_R8U, PIXELFORMAT_R8_G8_B8, PIXELFORMAT_R8_G8_B8_A8, PIXELFORMAT_RG16F, PIXELFORMAT_RG16I, PIXELFORMAT_RG16U, PIXELFORMAT_RG32I, PIXELFORMAT_RG32U, PIXELFORMAT_RG8I, PIXELFORMAT_RG8U, PIXELFORMAT_RGB16F, PIXELFORMAT_RGB32F, PIXELFORMAT_RGB565, PIXELFORMAT_RGB8, PIXELFORMAT_RGBA16F, PIXELFORMAT_RGBA16I, PIXELFORMAT_RGBA16U, PIXELFORMAT_RGBA32F, PIXELFORMAT_RGBA32I, PIXELFORMAT_RGBA32U, PIXELFORMAT_RGBA4, PIXELFORMAT_RGBA5551, PIXELFORMAT_RGBA8, PIXELFORMAT_RGBA8I, PIXELFORMAT_RGBA8U, PIXELFORMAT_SRGB, PIXELFORMAT_SRGBA, PRIMITIVE_LINELOOP, PRIMITIVE_LINES, PRIMITIVE_LINESTRIP, PRIMITIVE_POINTS, PRIMITIVE_TRIANGLES, PRIMITIVE_TRIFAN, PRIMITIVE_TRISTRIP, PROJECTION_ORTHOGRAPHIC, PROJECTION_PERSPECTIVE, ParticleEmitter, ParticleSystemComponent, ParticleSystemComponentSystem, PhongMaterial, Picker, Plane, PlaneGeometry, PostEffect, PostEffectQueue, ProgramLibrary, QuadRender, Quat, RENDERSTYLE_POINTS, RENDERSTYLE_SOLID, RENDERSTYLE_WIREFRAME, RESOLUTION_AUTO, RESOLUTION_FIXED, RIGIDBODY_ACTIVE_TAG, RIGIDBODY_CF_KINEMATIC_OBJECT, RIGIDBODY_CF_NORESPONSE_OBJECT, RIGIDBODY_CF_STATIC_OBJECT, RIGIDBODY_DISABLE_DEACTIVATION, RIGIDBODY_DISABLE_SIMULATION, RIGIDBODY_ISLAND_SLEEPING, RIGIDBODY_TYPE_DYNAMIC, RIGIDBODY_TYPE_KINEMATIC, RIGIDBODY_TYPE_STATIC, RIGIDBODY_WANTS_DEACTIVATION, Ray, RaycastResult, ReadStream, RenderComponent, RenderComponentSystem, RenderHandler, RenderPass, RenderPassBloom, RenderPassCameraFrame, RenderPassColorGrab, RenderPassCompose, RenderPassDownsample, RenderPassForward, RenderPassShaderQuad, RenderPassTAA, RenderPassUpsample, RenderTarget, ResourceHandler, ResourceLoader, RigidBodyComponent, RigidBodyComponentSystem, RotateGizmo, SAMPLETYPE_DEPTH, SAMPLETYPE_FLOAT, SAMPLETYPE_INT, SAMPLETYPE_UINT, SAMPLETYPE_UNFILTERABLE_FLOAT, SCALEMODE_BLEND, SCALEMODE_NONE, SCROLLBAR_VISIBILITY_SHOW_ALWAYS, SCROLLBAR_VISIBILITY_SHOW_WHEN_REQUIRED, SCROLL_MODE_BOUNCE, SCROLL_MODE_CLAMP, SCROLL_MODE_INFINITE, SEMANTIC_ATTR, SEMANTIC_ATTR0, SEMANTIC_ATTR1, SEMANTIC_ATTR10, SEMANTIC_ATTR11, SEMANTIC_ATTR12, SEMANTIC_ATTR13, SEMANTIC_ATTR14, SEMANTIC_ATTR15, SEMANTIC_ATTR2, SEMANTIC_ATTR3, SEMANTIC_ATTR4, SEMANTIC_ATTR5, SEMANTIC_ATTR6, SEMANTIC_ATTR7, SEMANTIC_ATTR8, SEMANTIC_ATTR9, SEMANTIC_BLENDINDICES, SEMANTIC_BLENDWEIGHT, SEMANTIC_COLOR, SEMANTIC_NORMAL, SEMANTIC_POSITION, SEMANTIC_TANGENT, SEMANTIC_TEXCOORD, SEMANTIC_TEXCOORD0, SEMANTIC_TEXCOORD1, SEMANTIC_TEXCOORD2, SEMANTIC_TEXCOORD3, SEMANTIC_TEXCOORD4, SEMANTIC_TEXCOORD5, SEMANTIC_TEXCOORD6, SEMANTIC_TEXCOORD7, SHADERDEF_DIRLM, SHADERDEF_INSTANCING, SHADERDEF_LM, SHADERDEF_LMAMBIENT, SHADERDEF_MORPH_NORMAL, SHADERDEF_MORPH_POSITION, SHADERDEF_MORPH_TEXTURE_BASED, SHADERDEF_NOSHADOW, SHADERDEF_SCREENSPACE, SHADERDEF_SKIN, SHADERDEF_TANGENTS, SHADERDEF_UV0, SHADERDEF_UV1, SHADERDEF_VCOLOR, SHADERLANGUAGE_GLSL, SHADERLANGUAGE_WGSL, SHADERPASS_ALBEDO, SHADERPASS_AO, SHADERPASS_EMISSION, SHADERPASS_FORWARD, SHADERPASS_GLOSS, SHADERPASS_LIGHTING, SHADERPASS_METALNESS, SHADERPASS_OPACITY, SHADERPASS_SPECULARITY, SHADERPASS_UV0, SHADERPASS_WORLDNORMAL, SHADERSTAGE_COMPUTE, SHADERSTAGE_FRAGMENT, SHADERSTAGE_VERTEX, SHADERTAG_MATERIAL, SHADER_DEPTH, SHADER_FORWARD, SHADER_FORWARDHDR, SHADER_PICK, SHADER_PREPASS_VELOCITY, SHADER_SHADOW, SHADOWUPDATE_NONE, SHADOWUPDATE_REALTIME, SHADOWUPDATE_THISFRAME, SHADOW_DEPTH, SHADOW_PCF1, SHADOW_PCF3, SHADOW_PCF5, SHADOW_PCSS, SHADOW_VSM16, SHADOW_VSM32, SHADOW_VSM8, SKYTYPE_BOX, SKYTYPE_DOME, SKYTYPE_INFINITE, SORTKEY_DEPTH, SORTKEY_FORWARD, SORTMODE_BACK2FRONT, SORTMODE_CUSTOM, SORTMODE_FRONT2BACK, SORTMODE_MANUAL, SORTMODE_MATERIALMESH, SORTMODE_NONE, SPECOCC_AO, SPECOCC_GLOSSDEPENDENT, SPECOCC_NONE, SPECULAR_BLINN, SPECULAR_PHONG, SPRITETYPE_ANIMATED, SPRITETYPE_SIMPLE, SPRITE_RENDERMODE_SIMPLE, SPRITE_RENDERMODE_SLICED, SPRITE_RENDERMODE_TILED, STENCILOP_DECREMENT, STENCILOP_DECREMENTWRAP, STENCILOP_INCREMENT, STENCILOP_INCREMENTWRAP, STENCILOP_INVERT, STENCILOP_KEEP, STENCILOP_REPLACE, STENCILOP_ZERO, ScaleGizmo, Scene, SceneHandler, SceneRegistry, SceneRegistryItem, SceneSettingsHandler, ScopeId, ScopeSpace, ScreenComponent, ScreenComponentSystem, Script, ScriptAttributes, ScriptComponent, ScriptComponentSystem, ScriptHandler, ScriptLegacyComponent, ScriptLegacyComponentSystem, ScriptRegistry, ScriptType, ScrollViewComponent, ScrollViewComponentSystem, ScrollbarComponent, ScrollbarComponentSystem, Shader, ShaderGenerator, ShaderHandler, ShaderPass, ShaderProcessorOptions, ShaderUtils, SingleContactResult, Skeleton, Skin, SkinBatchInstance, SkinInstance, SortedLoopArray, Sound, SoundComponent, SoundComponentSystem, SoundInstance, SoundInstance3d, SoundManager, SoundSlot, SphereGeometry, Sprite, SpriteAnimationClip, SpriteComponent, SpriteComponentSystem, SpriteHandler, StandardMaterial, StandardMaterialOptions, StencilParameters, StorageBuffer, TEXHINT_ASSET, TEXHINT_LIGHTMAP, TEXHINT_NONE, TEXHINT_SHADOWMAP, TEXTUREDIMENSION_1D, TEXTUREDIMENSION_2D, TEXTUREDIMENSION_2D_ARRAY, TEXTUREDIMENSION_3D, TEXTUREDIMENSION_CUBE, TEXTUREDIMENSION_CUBE_ARRAY, TEXTURELOCK_NONE, TEXTURELOCK_READ, TEXTURELOCK_WRITE, TEXTUREPROJECTION_CUBE, TEXTUREPROJECTION_EQUIRECT, TEXTUREPROJECTION_NONE, TEXTUREPROJECTION_OCTAHEDRAL, TEXTURETYPE_DEFAULT, TEXTURETYPE_RGBE, TEXTURETYPE_RGBM, TEXTURETYPE_RGBP, TEXTURETYPE_SWIZZLEGGGR, TONEMAP_ACES, TONEMAP_ACES2, TONEMAP_FILMIC, TONEMAP_HEJL, TONEMAP_LINEAR, TONEMAP_NEUTRAL, TRACEID_BINDGROUPFORMAT_ALLOC, TRACEID_BINDGROUP_ALLOC, TRACEID_COMPUTEPIPELINE_ALLOC, TRACEID_GPU_TIMINGS, TRACEID_PIPELINELAYOUT_ALLOC, TRACEID_RENDERPIPELINE_ALLOC, TRACEID_RENDER_ACTION, TRACEID_RENDER_FRAME, TRACEID_RENDER_FRAME_TIME, TRACEID_RENDER_PASS, TRACEID_RENDER_PASS_DETAIL, TRACEID_RENDER_QUEUE, TRACEID_RENDER_TARGET_ALLOC, TRACEID_SHADER_ALLOC, TRACEID_SHADER_COMPILE, TRACEID_TEXTURES, TRACEID_TEXTURE_ALLOC, TRACEID_VRAM_IB, TRACEID_VRAM_SB, TRACEID_VRAM_TEXTURE, TRACEID_VRAM_VB, TRACE_ID_ELEMENT, TYPE_FLOAT16, TYPE_FLOAT32, TYPE_INT16, TYPE_INT32, TYPE_INT8, TYPE_UINT16, TYPE_UINT32, TYPE_UINT8, Tags, Template, TemplateHandler, TextElement, TextHandler, Texture, TextureAtlas, TextureAtlasHandler, TextureHandler, TextureUtils, TorusGeometry, Touch, TouchDevice, TouchEvent, Tracing, TransformFeedback, TransformGizmo, TranslateGizmo, Tri, UNIFORMTYPE_BOOL, UNIFORMTYPE_BOOLARRAY, UNIFORMTYPE_BVEC2, UNIFORMTYPE_BVEC2ARRAY, UNIFORMTYPE_BVEC3, UNIFORMTYPE_BVEC3ARRAY, UNIFORMTYPE_BVEC4, UNIFORMTYPE_BVEC4ARRAY, UNIFORMTYPE_FLOAT, UNIFORMTYPE_FLOATARRAY, UNIFORMTYPE_INT, UNIFORMTYPE_INTARRAY, UNIFORMTYPE_ITEXTURE2D, UNIFORMTYPE_ITEXTURE2D_ARRAY, UNIFORMTYPE_ITEXTURE3D, UNIFORMTYPE_ITEXTURECUBE, UNIFORMTYPE_IVEC2, UNIFORMTYPE_IVEC2ARRAY, UNIFORMTYPE_IVEC3, UNIFORMTYPE_IVEC3ARRAY, UNIFORMTYPE_IVEC4, UNIFORMTYPE_IVEC4ARRAY, UNIFORMTYPE_MAT2, UNIFORMTYPE_MAT3, UNIFORMTYPE_MAT4, UNIFORMTYPE_MAT4ARRAY, UNIFORMTYPE_TEXTURE2D, UNIFORMTYPE_TEXTURE2D_ARRAY, UNIFORMTYPE_TEXTURE2D_SHADOW, UNIFORMTYPE_TEXTURE3D, UNIFORMTYPE_TEXTURECUBE, UNIFORMTYPE_TEXTURECUBE_SHADOW, UNIFORMTYPE_UINT, UNIFORMTYPE_UINTARRAY, UNIFORMTYPE_UTEXTURE2D, UNIFORMTYPE_UTEXTURE2D_ARRAY, UNIFORMTYPE_UTEXTURE3D, UNIFORMTYPE_UTEXTURECUBE, UNIFORMTYPE_UVEC2, UNIFORMTYPE_UVEC2ARRAY, UNIFORMTYPE_UVEC3, UNIFORMTYPE_UVEC3ARRAY, UNIFORMTYPE_UVEC4, UNIFORMTYPE_UVEC4ARRAY, UNIFORMTYPE_VEC2, UNIFORMTYPE_VEC2ARRAY, UNIFORMTYPE_VEC3, UNIFORMTYPE_VEC3ARRAY, UNIFORMTYPE_VEC4, UNIFORMTYPE_VEC4ARRAY, UNIFORM_BUFFER_DEFAULT_SLOT_NAME, URI, UniformBufferFormat, UniformFormat, UnsupportedBrowserError, UsdzExporter, VIEW_CENTER, VIEW_LEFT, VIEW_RIGHT, Vec2, Vec3, Vec4, VertexBuffer, VertexFormat, VertexIterator, WasmModule, WebglGraphicsDevice, WebgpuGraphicsDevice, WorldClusters, XRDEPTHSENSINGFORMAT_F32, XRDEPTHSENSINGFORMAT_L8A8, XRDEPTHSENSINGUSAGE_CPU, XRDEPTHSENSINGUSAGE_GPU, XREYE_LEFT, XREYE_NONE, XREYE_RIGHT, XRHAND_LEFT, XRHAND_NONE, XRHAND_RIGHT, XRPAD_A, XRPAD_B, XRPAD_SQUEEZE, XRPAD_STICK_BUTTON, XRPAD_STICK_X, XRPAD_STICK_Y, XRPAD_TOUCHPAD_BUTTON, XRPAD_TOUCHPAD_X, XRPAD_TOUCHPAD_Y, XRPAD_TRIGGER, XRSPACE_BOUNDEDFLOOR, XRSPACE_LOCAL, XRSPACE_LOCALFLOOR, XRSPACE_UNBOUNDED, XRSPACE_VIEWER, XRTARGETRAY_GAZE, XRTARGETRAY_POINTER, XRTARGETRAY_SCREEN, XRTRACKABLE_MESH, XRTRACKABLE_PLANE, XRTRACKABLE_POINT, XRTYPE_AR, XRTYPE_INLINE, XRTYPE_VR, XrAnchor, XrAnchors, XrDepthSensing, XrDomOverlay, XrFinger, XrHand, XrHitTest, XrHitTestSource, XrImageTracking, XrInput, XrInputSource, XrJoint, XrLightEstimation, XrManager, XrMeshDetection, XrPlane, XrPlaneDetection, XrTrackedImage, XrView, XrViews, ZoneComponent, ZoneComponentSystem, __adjustStandardMaterialData, __adjustStandardMaterialParameterTypes, __dummyFunction, anim, app, apps, asset, audio, basisInitialize, basisSetDownloadConfig, bindGroupNames, calculateNormals, calculateTangents, common, config, createBox, createCapsule, createCone, createCylinder, createGraphicsDevice, createMesh, createPlane, createScript, createShader, createShaderFromCode, createSphere, createStyle, createTorus, createURI, data$1 as data, dracoInitialize, drawFullscreenQuad, drawQuadWithShader, drawTexture, events, extend, getPixelFormatArrayType, getProgramLibrary, getReservedScriptNames, getTouchTargetCoords, gfx, guid, http, inherits, input, isCompressedPixelFormat, isIntegerPixelFormat, log, makeArray, math, now, path, pixelFormatInfo, platform, posteffect, prefilterCubemap, programlib, registerScript, reprojectTexture, revision, scene, script, semanticToLocation, shFromCubemap, shaderChunks, shaderChunksLightmapper, shadowTypeToString, shape, string, time, type, typedArrayIndexFormats, typedArrayIndexFormatsByteSize, typedArrayToType, typedArrayTypes, typedArrayTypesByteSize, uniformTypeToName, uniformTypeToStorage, version, vertexTypesNames };\n","import { WasmModule, basisInitialize, dracoInitialize } from 'playcanvas';\n\nexport const loadModules = function (modules, urlPrefix) {\n\n    return new Promise((resolve) => {\n\n        if (typeof modules === \"undefined\" || modules.length === 0) {\n\n            resolve();\n\n        } else {\n            let remaining = modules.length;\n            const moduleLoaded = () => {\n                if (--remaining === 0) {\n                    resolve();\n                }\n            };\n\n            modules.forEach(function (m) {\n                WasmModule.setConfig(m.moduleName, {\n                    glueUrl: urlPrefix + m.glueUrl,\n                    wasmUrl: urlPrefix + m.wasmUrl,\n                    fallbackUrl: urlPrefix + m.fallbackUrl\n                });\n\n                if (!m.hasOwnProperty('preload') || m.preload) {\n                    if (m.moduleName === 'BASIS') {\n                        // preload basis transcoder\n                        basisInitialize();\n                        moduleLoaded();\n                    } else if (m.moduleName === 'DracoDecoderModule') {\n                        // preload draco decoder\n                        if (dracoInitialize) {\n                            // 1.63 onwards\n                            dracoInitialize();\n                            moduleLoaded();\n                        } else {\n                            // 1.62 and earlier\n                        }\n                        WasmModule.getInstance(m.moduleName, moduleLoaded);\n                    } else {\n                        // load remaining modules in global scope\n                        WasmModule.getInstance(m.moduleName, moduleLoaded);\n                    }\n                } else {\n                    moduleLoaded();\n                }\n            });\n        }\n    });\n};\n","import { script } from 'playcanvas';\n\n \nexport const ASSET_PREFIX = \"https://s3-eu-west-1.amazonaws.com/apps.playcanvas.com/46797be0/\";\nexport const SCRIPT_PREFIX = \"\";\nexport const SCENE_PATH = \"2231621.json\";\n\nexport const CONTEXT_OPTIONS = {\n    'antialias': true,\n    'alpha': false,\n    'preserveDrawingBuffer': false,\n    'deviceTypes': [`webgpu`, `webgl2`, `webgl1`],\n    'powerPreference': \"high-performance\"\n};\n\nexport const SCRIPTS = [ 226379868, 226378494, 214965173, 214965174, 214965175, 214965176, 215190825, 215190826, 215190827, 215190828, 215190830, 215190831, 215190833 ];\nexport const CONFIG_FILENAME = \"https://s3-eu-west-1.amazonaws.com/apps.playcanvas.com/46797be0/config.json\";\nexport const INPUT_SETTINGS = {\n    useKeyboard: true,\n    useMouse: true,\n    useGamepads: false,\n    useTouch: true\n};\nexport const PRELOAD_MODULES = [\n];\n    \nscript.legacy = false;\n","pc.script.createLoadingScreen(function (app) {\n    var showSplash = function () {\n        // splash wrapper\n        var wrapper = document.createElement('div');\n        wrapper.id = 'application-splash-wrapper';\n        document.body.appendChild(wrapper);\n\n        // splash\n        var splash = document.createElement('div');\n        splash.id = 'application-splash';\n        wrapper.appendChild(splash);\n        splash.style.display = 'none';\n\n        var logo = document.createElement('img');\n        \n        // Base64 encoded image, generated from: https://base64.guru/converter/encode/image\n        logo.src = \"https://static.tildacdn.com/tild6138-3136-4532-b666-653832333631/Kostroman_logo_darkb.png\";\n        splash.appendChild(logo);\n        logo.onload = function () {\n            splash.style.display = 'block';\n        };\n\n        var container = document.createElement('div');\n        container.id = 'progress-bar-container';\n        splash.appendChild(container);\n\n        var bar = document.createElement('div');\n        bar.id = 'progress-bar';\n        container.appendChild(bar);\n\n    };\n\n    var hideSplash = function () {\n        var splash = document.getElementById('application-splash-wrapper');\n        splash.parentElement.removeChild(splash);\n    };\n\n    var setProgress = function (value) {\n        var bar = document.getElementById('progress-bar');\n        if(bar) {\n            value = Math.min(1, Math.max(0, value));\n            bar.style.width = value * 100 + '%';\n        }\n    };\n\n    var createCss = function () {\n        var css = [\n            'body {',\n            '    background-color: #FFFFFF;',\n            '}',\n\n            '#application-splash-wrapper {',\n            '    position: absolute;',\n            '    top: 0;',\n            '    left: 0;',\n            '    height: 100%;',\n            '    width: 100%;',\n            '    background-color: #FFFFFF;',\n            '}',\n\n            '#application-splash {',\n            '    position: absolute;',\n            '    top: calc(50% - 70px);',\n            '    width: 320px;',\n            '    left: calc(50% - 160px);',\n            '}',\n\n            '#application-splash img {',\n            '    width: 100%;',\n            '}',\n\n            '#progress-bar-container {',\n            '    margin: 10px auto 0 auto;',\n            '    height: 7px;',\n            '    width: 100%;',\n            '    background-color: #F23500;',\n            '}',\n\n            '#progress-bar {',\n            '    width: 0%;',\n            '    height: 100%;',\n            '    background-color: #261859;',\n            '}',\n            '@media (max-width: 640px) {',\n            '    #application-splash {',\n            '        width: 170px;',\n            '        left: calc(50% - 85px);',\n            '    }',\n            '}'\n        ].join(\"\\n\");\n\n        var style = document.createElement('style');\n        style.type = 'text/css';\n        if (style.styleSheet) {\n            style.styleSheet.cssText = css;\n        } else {\n            style.appendChild(document.createTextNode(css));\n        }\n\n        document.head.appendChild(style);\n    };\n\n    createCss();\n    showSplash();\n\n    app.on('preload:end', function () {\n        app.off('preload:progress');\n    });\n    app.on('preload:progress', setProgress);\n    app.on('start', hideSplash);\n});"],"names":["TRACEID_RENDER_FRAME","TRACEID_RENDER_FRAME_TIME","TRACEID_RENDER_PASS","TRACEID_RENDER_PASS_DETAIL","TRACEID_RENDER_ACTION","TRACEID_RENDER_TARGET_ALLOC","TRACEID_TEXTURE_ALLOC","TRACEID_SHADER_ALLOC","TRACEID_SHADER_COMPILE","TRACEID_VRAM_TEXTURE","TRACEID_VRAM_VB","TRACEID_VRAM_IB","TRACEID_VRAM_SB","TRACEID_BINDGROUP_ALLOC","TRACEID_BINDGROUPFORMAT_ALLOC","TRACEID_RENDERPIPELINE_ALLOC","TRACEID_COMPUTEPIPELINE_ALLOC","TRACEID_PIPELINELAYOUT_ALLOC","TRACE_ID_ELEMENT","TRACEID_TEXTURES","TRACEID_RENDER_QUEUE","TRACEID_GPU_TIMINGS","version","revision","config","common","apps","data$1","typeofs","objectTypes","type","obj","typeString","includes","Object","prototype","toString","call","extend","target","ex","prop","copy","EventHandle","off","_removed","handler","offByHandle","on","name","callback","scope","_addCallback","once","removed","value","constructor","_once","EventHandler","initEventHandler","_callbacks","Map","_callbackActive","has","set","callbackActive","get","slice","evt","push","key","callbacks","values","i","length","clear","delete","splice","handle","ind","indexOf","fire","arg1","arg2","arg3","arg4","arg5","arg6","arg7","arg8","callbacksInitial","existingCallback","hasEvent","_this$_callbacks$get","events","attach","ev","guid","create","replace","c","r","Math","random","v","path","delimiter","join","sections","result","one","two","normalize","pathname","lead","startsWith","trail","endsWith","parts","split","cleaned","lastDelimiterIndex","lastIndexOf","substring","getBasename","getDirectory","getExtension","ext","pop","isRelativePath","charAt","match","extractPath","_ref","_ref2","_ref3","detectPassiveEvents","opts","defineProperty","window","addEventListener","removeEventListener","e","ua","navigator","userAgent","environment","global","platformName","test","browserName","xbox","touch","maxTouchPoints","gamepads","getGamepads","webkitGetGamepads","workers","Worker","passiveEvents","platform","globalThis","self","browser","worker","desktop","mobile","ios","android","ASCII_LOWERCASE","ASCII_UPPERCASE","ASCII_LETTERS","HIGH_SURROGATE_BEGIN","HIGH_SURROGATE_END","LOW_SURROGATE_BEGIN","LOW_SURROGATE_END","ZERO_WIDTH_JOINER","REGIONAL_INDICATOR_BEGIN","REGIONAL_INDICATOR_END","FITZPATRICK_MODIFIER_BEGIN","FITZPATRICK_MODIFIER_END","DIACRITICAL_MARKS_BEGIN","DIACRITICAL_MARKS_END","VARIATION_MODIFIER_BEGIN","VARIATION_MODIFIER_END","getCodePointData","string","size","first","charCodeAt","second","code","long","isCodeBetween","begin","end","codeData","numCharsToTakeForNextSymbol","index","format","s","args","getCodePoint","codePointData","getCodePoints","TypeError","arr","codePoint","getSymbols","output","take","ch","char","fromCodePoint","chars","current","units","arguments","Number","String","fromCharCode","apply","IndexedList","item","_index","Error","location","_list","undefined","remove","idx","list","cachedResult","func","uninitToken","Impl","loadScript","url","document","createElement","setAttribute","onload","onerror","body","appendChild","loadWasm","moduleName","loadUrl","wasmSupported","glueUrl","wasmUrl","fallbackUrl","err","module","locateFile","onAbort","then","instance","getModule","modules","hasOwnProperty","initializing","initialize","errorHandler","console","error","forEach","WebAssembly","instantiate","Module","Uint8Array","of","Instance","WasmModule","setConfig","getConfig","_Impl$modules","getInstance","ReadStream","remainingBytes","dataView","byteLength","offset","reset","skip","bytes","align","_inc","amount","readChar","getUint8","readChars","numChars","readU8","readU16","getUint16","readU32","getUint32","readU64","readU32be","readArray","readLine","view","arraybuffer","DataView","SortedLoopArray","_binarySearch","left","right","items","search","_sortBy","middle","floor","_doSort","a","b","sortBy","insert","loopIndex","append","sort","_sortHandler","bind","Tags","add","changed","tags","_processArguments","_parent","query","_has","multiple","t","flat","tmp","Array","parent","EVENT_ADD","EVENT_REMOVE","EVENT_CHANGE","now","performance","Date","createURI","options","authority","scheme","host","hostpath","fragment","re","URI","getQuery","queryParams","decodeURIComponent","queryParam","pair","setQuery","params","q","encodeURIComponent","uri","Tracing","channel","enabled","_traceChannels","Set","stack","CURVE_LINEAR","CURVE_SMOOTHSTEP","CURVE_CATMULL","CURVE_CARDINAL","CURVE_SPLINE","CURVE_STEP","math","DEG_TO_RAD","PI","RAD_TO_DEG","clamp","min","max","intToBytes24","g","intToBytes32","bytesToInt24","bytesToInt32","lerp","alpha","lerpAngle","powerOfTwo","x","nextPowerOfTwo","val","nearestPowerOfTwo","pow","round","log","diff","smoothstep","smootherstep","roundUp","numToRound","ceil","between","num","inclusive","_Color","Color","clone","cstr","rhs","equals","lhs","fromString","hex","parseInt","fromArray","_arr$offset","_arr","_arr2","_arr3","toArray","BLACK","freeze","BLUE","CYAN","GRAY","GREEN","MAGENTA","RED","WHITE","YELLOW","CurveEvaluator","evaluate","time","forceReset","_left","_right","_reset","_curve","_p0","_recip","_p1","_evaluateHermite","_m0","_m1","keys","len","Infinity","isFinite","_isHermite","_calcTangents","d","s1_","s2_","tension","s1","s2","a_","d_","p0","p1","m0","m1","t2","twot","omt","omt2","curve","Curve","_eval","closest","abs","map","quantize","precision","Float32Array","step","quantizeClamped","data","CurveSet","curves","_type","numCurves","arg","oneDiv255","floatView","int32View","Int32Array","buffer","FloatPacking","float2Half","bits","m","float2Bytes","array","numBytes","enc1","enc2","enc3","float2BytesRange","float2MantissaExponent","exponent","log2","_Vec$2","Vec3","y","z","add2","addScalar","scalar","addScaled","cross","lx","ly","lz","rx","ry","rz","distance","sqrt","div","div2","divScalar","dot","equalsApprox","epsilon","lengthSq","mul","mul2","mulScalar","src","invLength","project","a_dot_b","b_dot_b","sub","sub2","subScalar","ZERO","ONE","UP","DOWN","RIGHT","LEFT","FORWARD","BACK","_Mat$1","Mat3","dst","getX","getY","getZ","l","isIdentity","setIdentity","transpose","setFromMat4","setFromQuat","qx","qy","qz","qw","w","x2","y2","z2","xx","xy","xz","yy","yz","zz","wx","wy","wz","invertMat4","a0","a1","a2","a4","a5","a6","a8","a9","a10","b11","b21","b31","b12","b22","b32","b13","b23","b33","det","invDet","transformVector","vec","res","IDENTITY","_Vec$1","Vec2","rotate","degrees","angle","atan2","sin","cos","angleTo","angleRad","_Vec","Vec4","_Mat","_halfSize$1","x$1","scale","Mat4","_getPerspectiveHalfSize","halfSize","fov","aspect","znear","fovIsHorizontal","tan","a00","a01","a02","a03","a11","a12","a13","a20","a21","a22","a23","a30","a31","a32","a33","b0","b1","b2","b3","mulAffine2","transformPoint","transformVec4","setLookAt","position","up","setFrustum","bottom","top","zfar","temp1","temp2","temp3","temp4","setPerspective","setOrtho","near","far","setFromAxisAngle","axis","tx","ty","setTranslate","setScale","setViewport","width","height","setReflection","normal","invert","b00","b01","b02","b03","b04","b05","b06","b07","b08","b09","b10","setTRS","sx","sy","sz","getTranslation","getScale","scaleSign","setFromEulerAngles","ey","ez","c1","c2","s3","c3","getEulerAngles","eulers","asin","halfPi","_Quat","Quat","conjugate","getAxisAngle","rad","acos","q1x","q1y","q1z","q1w","q2x","q2y","q2z","q2w","sa","ca","halfToRad","cx","cy","cz","m00","m01","m02","m10","m11","m12","m20","m21","m22","setFromDirections","from","to","dotProduct","EPSILON","slerp","lw","rw","cosHalfTheta","halfTheta","sinHalfTheta","ratioA","ratioB","ix","iy","iz","iw","tmpVecA$1","tmpVecB$1","tmpVecC","tmpVecD","tmpVecE","BoundingBox","other","tc","center","tcx","tcy","tcz","th","halfExtents","thx","thy","thz","tminx","tmaxx","tminy","tmaxy","tminz","tmaxz","oc","ocx","ocy","ocz","oh","ohx","ohy","ohz","ominx","omaxx","ominy","omaxy","ominz","omaxz","intersects","aMax","getMax","aMin","getMin","bMax","bMin","_intersectsRay","ray","point","tMin","origin","tMax","dir","direction","MAX_VALUE","realMin","realMax","minMax","maxMin","_fastIntersectsRay","prod","absDiff","absDir","rayDir","intersectsRay","setMinMax","_min","_max","containsPoint","setFromTransformedAabb","aabb","ignoreScale","ac","ar","mx0","mx1","mx2","my0","my1","my2","mz0","mz1","mz2","computeMinMax","vertices","numVerts","minx","miny","minz","maxx","maxy","maxz","n","compute","intersectsBoundingSphere","sphere","sq","_distanceToBoundingSphereSq","radius","boxMin","boxMax","out","pn","_expand","expandMin","expandMax","tmpVecA","tmpVecB","BoundingSphere","lenSq","discr","totalRadius","Frustum","matrix","vpm","plane","planes","p","containsSphere","sr","sc","scx","scy","scz","Ray","tmpRay","tmpVec3$2","tmpSphere","tmpMat4$1","OrientedBox","worldTransform","_worldTransform","_modelTransform","_aabb","Plane","setFromPointNormal","intersectsLine","start","d0","d1","denominator","e1","e2","h","q$1","Tri","v0","v1","v2","f","u","DISTANCE_LINEAR","DISTANCE_INVERSE","DISTANCE_EXPONENTIAL","ADDRESS_REPEAT","ADDRESS_CLAMP_TO_EDGE","ADDRESS_MIRRORED_REPEAT","BLENDMODE_ZERO","BLENDMODE_ONE","BLENDMODE_SRC_COLOR","BLENDMODE_ONE_MINUS_SRC_COLOR","BLENDMODE_DST_COLOR","BLENDMODE_ONE_MINUS_DST_COLOR","BLENDMODE_SRC_ALPHA","BLENDMODE_SRC_ALPHA_SATURATE","BLENDMODE_ONE_MINUS_SRC_ALPHA","BLENDMODE_DST_ALPHA","BLENDMODE_ONE_MINUS_DST_ALPHA","BLENDMODE_CONSTANT","BLENDMODE_ONE_MINUS_CONSTANT","BLENDEQUATION_ADD","BLENDEQUATION_SUBTRACT","BLENDEQUATION_REVERSE_SUBTRACT","BLENDEQUATION_MIN","BLENDEQUATION_MAX","BUFFERUSAGE_READ","BUFFERUSAGE_WRITE","BUFFERUSAGE_COPY_SRC","BUFFERUSAGE_COPY_DST","BUFFERUSAGE_INDEX","BUFFERUSAGE_VERTEX","BUFFERUSAGE_UNIFORM","BUFFERUSAGE_STORAGE","BUFFERUSAGE_INDIRECT","BUFFER_STATIC","BUFFER_DYNAMIC","BUFFER_STREAM","BUFFER_GPUDYNAMIC","CLEARFLAG_COLOR","CLEARFLAG_DEPTH","CLEARFLAG_STENCIL","CUBEFACE_POSX","CUBEFACE_NEGX","CUBEFACE_POSY","CUBEFACE_NEGY","CUBEFACE_POSZ","CUBEFACE_NEGZ","CULLFACE_NONE","CULLFACE_BACK","CULLFACE_FRONT","CULLFACE_FRONTANDBACK","FILTER_NEAREST","FILTER_LINEAR","FILTER_NEAREST_MIPMAP_NEAREST","FILTER_NEAREST_MIPMAP_LINEAR","FILTER_LINEAR_MIPMAP_NEAREST","FILTER_LINEAR_MIPMAP_LINEAR","FUNC_NEVER","FUNC_LESS","FUNC_EQUAL","FUNC_LESSEQUAL","FUNC_GREATER","FUNC_NOTEQUAL","FUNC_GREATEREQUAL","FUNC_ALWAYS","INDEXFORMAT_UINT8","INDEXFORMAT_UINT16","INDEXFORMAT_UINT32","PIXELFORMAT_A8","PIXELFORMAT_L8","PIXELFORMAT_LA8","PIXELFORMAT_RGB565","PIXELFORMAT_RGBA5551","PIXELFORMAT_RGBA4","PIXELFORMAT_RGB8","PIXELFORMAT_RGBA8","PIXELFORMAT_DXT1","PIXELFORMAT_DXT3","PIXELFORMAT_DXT5","PIXELFORMAT_RGB16F","PIXELFORMAT_RGBA16F","PIXELFORMAT_RGB32F","PIXELFORMAT_RGBA32F","PIXELFORMAT_R32F","PIXELFORMAT_DEPTH","PIXELFORMAT_DEPTHSTENCIL","PIXELFORMAT_111110F","PIXELFORMAT_SRGB","PIXELFORMAT_SRGBA","PIXELFORMAT_ETC1","PIXELFORMAT_ETC2_RGB","PIXELFORMAT_ETC2_RGBA","PIXELFORMAT_PVRTC_2BPP_RGB_1","PIXELFORMAT_PVRTC_2BPP_RGBA_1","PIXELFORMAT_PVRTC_4BPP_RGB_1","PIXELFORMAT_PVRTC_4BPP_RGBA_1","PIXELFORMAT_ASTC_4x4","PIXELFORMAT_ATC_RGB","PIXELFORMAT_ATC_RGBA","PIXELFORMAT_BGRA8","PIXELFORMAT_R8I","PIXELFORMAT_R8U","PIXELFORMAT_R16I","PIXELFORMAT_R16U","PIXELFORMAT_R32I","PIXELFORMAT_R32U","PIXELFORMAT_RG8I","PIXELFORMAT_RG8U","PIXELFORMAT_RG16I","PIXELFORMAT_RG16U","PIXELFORMAT_RG32I","PIXELFORMAT_RG32U","PIXELFORMAT_RGBA8I","PIXELFORMAT_RGBA8U","PIXELFORMAT_RGBA16I","PIXELFORMAT_RGBA16U","PIXELFORMAT_RGBA32I","PIXELFORMAT_RGBA32U","PIXELFORMAT_R16F","PIXELFORMAT_RG16F","pixelFormatInfo","blockSize","isInt","isCompressedPixelFormat","_pixelFormatInfo$get","isIntegerPixelFormat","_pixelFormatInfo$get2","getPixelFormatArrayType","Uint32Array","Int16Array","Uint16Array","Int8Array","PRIMITIVE_POINTS","PRIMITIVE_LINES","PRIMITIVE_LINELOOP","PRIMITIVE_LINESTRIP","PRIMITIVE_TRIANGLES","PRIMITIVE_TRISTRIP","PRIMITIVE_TRIFAN","SEMANTIC_POSITION","SEMANTIC_NORMAL","SEMANTIC_TANGENT","SEMANTIC_BLENDWEIGHT","SEMANTIC_BLENDINDICES","SEMANTIC_COLOR","SEMANTIC_TEXCOORD","SEMANTIC_TEXCOORD0","SEMANTIC_TEXCOORD1","SEMANTIC_TEXCOORD2","SEMANTIC_TEXCOORD3","SEMANTIC_TEXCOORD4","SEMANTIC_TEXCOORD5","SEMANTIC_TEXCOORD6","SEMANTIC_TEXCOORD7","SEMANTIC_ATTR","SEMANTIC_ATTR0","SEMANTIC_ATTR1","SEMANTIC_ATTR2","SEMANTIC_ATTR3","SEMANTIC_ATTR4","SEMANTIC_ATTR5","SEMANTIC_ATTR6","SEMANTIC_ATTR7","SEMANTIC_ATTR8","SEMANTIC_ATTR9","SEMANTIC_ATTR10","SEMANTIC_ATTR11","SEMANTIC_ATTR12","SEMANTIC_ATTR13","SEMANTIC_ATTR14","SEMANTIC_ATTR15","SHADERTAG_MATERIAL","STENCILOP_KEEP","STENCILOP_ZERO","STENCILOP_REPLACE","STENCILOP_INCREMENT","STENCILOP_INCREMENTWRAP","STENCILOP_DECREMENT","STENCILOP_DECREMENTWRAP","STENCILOP_INVERT","TEXTURELOCK_NONE","TEXTURELOCK_READ","TEXTURELOCK_WRITE","TEXTURETYPE_DEFAULT","TEXTURETYPE_RGBM","TEXTURETYPE_RGBE","TEXTURETYPE_RGBP","TEXTURETYPE_SWIZZLEGGGR","TEXHINT_NONE","TEXHINT_SHADOWMAP","TEXHINT_ASSET","TEXHINT_LIGHTMAP","TEXTUREDIMENSION_1D","TEXTUREDIMENSION_2D","TEXTUREDIMENSION_2D_ARRAY","TEXTUREDIMENSION_CUBE","TEXTUREDIMENSION_CUBE_ARRAY","TEXTUREDIMENSION_3D","SAMPLETYPE_FLOAT","SAMPLETYPE_UNFILTERABLE_FLOAT","SAMPLETYPE_DEPTH","SAMPLETYPE_INT","SAMPLETYPE_UINT","TEXTUREPROJECTION_NONE","TEXTUREPROJECTION_CUBE","TEXTUREPROJECTION_EQUIRECT","TEXTUREPROJECTION_OCTAHEDRAL","SHADERLANGUAGE_GLSL","SHADERLANGUAGE_WGSL","TYPE_INT8","TYPE_UINT8","TYPE_INT16","TYPE_UINT16","TYPE_INT32","TYPE_UINT32","TYPE_FLOAT32","TYPE_FLOAT16","UNIFORMTYPE_BOOL","UNIFORMTYPE_INT","UNIFORMTYPE_FLOAT","UNIFORMTYPE_VEC2","UNIFORMTYPE_VEC3","UNIFORMTYPE_VEC4","UNIFORMTYPE_IVEC2","UNIFORMTYPE_IVEC3","UNIFORMTYPE_IVEC4","UNIFORMTYPE_BVEC2","UNIFORMTYPE_BVEC3","UNIFORMTYPE_BVEC4","UNIFORMTYPE_MAT2","UNIFORMTYPE_MAT3","UNIFORMTYPE_MAT4","UNIFORMTYPE_TEXTURE2D","UNIFORMTYPE_TEXTURECUBE","UNIFORMTYPE_FLOATARRAY","UNIFORMTYPE_TEXTURE2D_SHADOW","UNIFORMTYPE_TEXTURECUBE_SHADOW","UNIFORMTYPE_TEXTURE3D","UNIFORMTYPE_VEC2ARRAY","UNIFORMTYPE_VEC3ARRAY","UNIFORMTYPE_VEC4ARRAY","UNIFORMTYPE_MAT4ARRAY","UNIFORMTYPE_TEXTURE2D_ARRAY","UNIFORMTYPE_UINT","UNIFORMTYPE_UVEC2","UNIFORMTYPE_UVEC3","UNIFORMTYPE_UVEC4","UNIFORMTYPE_INTARRAY","UNIFORMTYPE_UINTARRAY","UNIFORMTYPE_BOOLARRAY","UNIFORMTYPE_IVEC2ARRAY","UNIFORMTYPE_UVEC2ARRAY","UNIFORMTYPE_BVEC2ARRAY","UNIFORMTYPE_IVEC3ARRAY","UNIFORMTYPE_UVEC3ARRAY","UNIFORMTYPE_BVEC3ARRAY","UNIFORMTYPE_IVEC4ARRAY","UNIFORMTYPE_UVEC4ARRAY","UNIFORMTYPE_BVEC4ARRAY","UNIFORMTYPE_ITEXTURE2D","UNIFORMTYPE_UTEXTURE2D","UNIFORMTYPE_ITEXTURECUBE","UNIFORMTYPE_UTEXTURECUBE","UNIFORMTYPE_ITEXTURE3D","UNIFORMTYPE_UTEXTURE3D","UNIFORMTYPE_ITEXTURE2D_ARRAY","UNIFORMTYPE_UTEXTURE2D_ARRAY","uniformTypeToName","uniformTypeToStorage","DEVICETYPE_WEBGL1","DEVICETYPE_WEBGL2","DEVICETYPE_WEBGPU","DEVICETYPE_NULL","SHADERSTAGE_VERTEX","SHADERSTAGE_FRAGMENT","SHADERSTAGE_COMPUTE","BINDGROUP_MESH","BINDGROUP_VIEW","bindGroupNames","UNIFORM_BUFFER_DEFAULT_SLOT_NAME","typedArrayTypes","typedArrayTypesByteSize","vertexTypesNames","typedArrayToType","typedArrayIndexFormats","typedArrayIndexFormatsByteSize","semanticToLocation","CHUNKAPI_1_51","CHUNKAPI_1_55","CHUNKAPI_1_56","CHUNKAPI_1_57","CHUNKAPI_1_58","CHUNKAPI_1_60","CHUNKAPI_1_62","CHUNKAPI_1_65","CHUNKAPI_1_70","_extends","assign","BitPacking","storage","shift","mask","all","shifted","any","_BlendState","opMask","factorMask","colorOpShift","colorSrcFactorShift","colorDstFactorShift","alphaOpShift","alphaSrcFactorShift","alphaDstFactorShift","redWriteShift","greenWriteShift","blueWriteShift","alphaWriteShift","blendShift","allWriteMasks","allWriteShift","BlendState","blend","target0","setColorBlend","op","srcFactor","dstFactor","setAlphaBlend","setColorWrite","redWrite","greenWrite","blueWrite","alphaWrite","colorOp","colorSrcFactor","colorDstFactor","alphaOp","alphaSrcFactor","alphaDstFactor","allWrite","NOBLEND","NOWRITE","ALPHABLEND","ADDBLEND","StringIds","id","_DepthState","stringIds$4","funcMask","funcShift","writeShift","DepthState","updateKey","write","depthBias","_depthBias","depthBiasSlope","_depthBiasSlope","DEFAULT","NODEPTH","WRITEDEPTH","Version","globalId","idCounter","VersionedObject","increment","ScopeId","toJSON","setValue","versionObject","getValue","ScopeSpace","resolve","variables","removeValue","uniformName","uniform","id$b","VertexBuffer","destroy","device","buffers","impl","initialized","adjustVramSizeTracking","_vram","vram","vb","loseContext","getFormat","getUsage","usage","getNumVertices","numVertices","lock","unlock","setData","graphicsDevice","initialData","_options$usage","_arguments$","createVertexBufferImpl","verticesByteSize","ArrayBuffer","hashCode","str","hash","hash32Fnv1a","prime","DeviceCache","onCreate","_cache","_this$_cache$get","_this$_cache$get2","stringIds$3","webgpuValidElementSizes","deviceCache$2","VertexFormat","elements","_elements","getDefaultInstancingFormat","semantic","components","isElementValid","elementDesc","elementSize","isWebGPU","update","_evaluateHash","stringElementsBatch","stringElementsRender","dataType","numComponents","stride","asInt","stringElementBatch","stringElementRender","batchingString","batchingHash","shaderProcessingHashString","renderingHashString","renderingHash","description","vertexCount","hasUv0","hasUv1","hasColor","hasTangents","interleaved","instancing","reduce","total","desc","_elementDesc$asInt","_elementDesc$normaliz","element","_StencilParameters","stringIds$2","StencilParameters","_func","_dirty","ref","fail","_fail","zfail","_zfail","zpass","_zpass","readMask","_readMask","writeMask","_writeMask","_evalKey","_key","_options$func","_options$ref","_options$readMask","_options$writeMask","_options$fail","_options$zfail","_options$zpass","GraphicsDevice","postInit","vertexFormat","positions","quadVertexBuffer","_this$quadVertexBuffe","_this$dynamicBuffers","_this$gpuProfiler","dynamicBuffers","gpuProfiler","onDestroyShader","shader","shaders","postDestroy","canvas","_this$gpuProfiler2","contextLost","backBufferSize","texture","textures","targets","restoreContext","_this$gpuProfiler3","initializeRenderState","initializeContextCaches","indexBuffer","vertexBuffers","shaderValid","shaderAsyncCompile","renderTarget","blendState","depthState","cullMode","vx","vy","vw","vh","sw","sh","blendColor","setStencilState","stencilFront","stencilBack","setBlendState","setBlendColor","setDepthState","setCullMode","setRenderTarget","setIndexBuffer","setVertexBuffer","vertexBuffer","clearVertexBuffer","getRenderTarget","initRenderTarget","init","_isBrowserInterface","_isImageBrowserInterface","_isImageCanvasInterface","_isImageVideoInterface","ImageBitmap","HTMLImageElement","HTMLCanvasElement","HTMLVideoElement","resizeCanvas","pixelRatio","_maxPixelRatio","devicePixelRatio","setResolution","EVENT_RESIZE","updateClientRect","clientRect","rect","getBoundingClientRect","fullscreen","maxPixelRatio","ratio","deviceType","_deviceType","getBoneLimit","boneLimit","setBoneLimit","maxBones","startRenderPass","renderPass","endRenderPass","startComputePass","endComputePass","frameStart","renderPassIndex","renderVersion","frameEnd","computeDispatch","computes","getRenderableHdrFormat","formats","filterable","textureRG11B10Renderable","textureHalfFloatRenderable","textureHalfFloatFilterable","textureFloatRenderable","textureFloatFilterable","_this$initOptions","_this$initOptions$dep","_this$initOptions2","_this$initOptions2$st","_this$initOptions3","_this$initOptions3$an","_this$initOptions4","_this$initOptions4$po","backBuffer","backBufferFormat","backBufferAntialias","isWebGL1","isWebGL2","maxAnisotropy","maxCubeMapSize","maxTextureSize","maxVolumeSize","maxColorAttachments","samples","supportsStencil","supportsMrt","supportsVolumeTextures","supportsCompute","supportsStorageTextureRead","insideRenderPass","supportsInstancing","supportsUniformBuffers","stencilEnabled","defaultClearOptions","color","depth","stencil","flags","initOptions","antialias","powerPreference","tex","ib","ub","sb","_shaderStats","vsCompiled","fsCompiled","linked","materialShaders","compileTime","_drawCallsPerFrame","_shaderSwitchesPerFrame","_primsPerFrame","_renderTargetCreationTime","textureBias","id$a","RenderTarget","_device","destroyFrameBuffers","destroyTextureBuffers","_this$_depthBuffer3","_this$_colorBuffers","_depthBuffer","_colorBuffers","colorBuffer","_colorBuffer","resize","_this$_depthBuffer4","_this$_colorBuffers2","validateMrt","createRenderTargetImpl","_samples","source","success","copyRenderTarget","_depth","_stencil","getColorBuffer","_this$_colorBuffers3","depthBuffer","face","_face","_this$_colorBuffer3","_this$_depthBuffer5","_this$_colorBuffer4","_this$_depthBuffer6","_options$face","_this$_colorBuffer","_this$_depthBuffer","_options$samples","_options$autoResolve","_options$flipY","autoResolve","flipY","_arg2","_arg3","_format","_options$depth","_options$stencil","colorBuffers","maxSamples","_this$_colorBuffer2","_this$_depthBuffer2","WebgpuBindGroup","bindGroup","descr","createDescriptor","wgpu","createBindGroup","entries","uniformBufferFormats","uniformBuffers","slot","persistent","allocation","gpuBuffer","binding","resource","byteSize","textureFormats","textureIndex","wgpuTexture","textureFormat","getView","hasSampler","sampler","getSampler","sampleType","storageTextureFormats","storageTextures","storageBufferFormats","storageBuffers","bufferIndex","wgpuBuffer","layout","bindGroupLayout","WebgpuUtils","shaderStage","stage","ret","GPUShaderStage","VERTEX","FRAGMENT","COMPUTE","gpuTextureFormats","samplerTypes","sampleTypes","stringIds$1","WebgpuBindGroupFormat","bindGroupFormat","bufferFormat","visibility","hasDynamicOffset","viewDimension","textureDimension","multisampled","gpuSampleType","gpuSamplerType","read","storageTexture","access","readOnly","createBindGroupLayout","WebgpuBuffer","allocate","createBuffer","usageFlags","_storage$byteOffset","_storage$buffer","GPUBufferUsage","COPY_DST","srcOffset","byteOffset","srcData","queue","writeBuffer","readStorageBuffer","bufferOffset","dataOffset","writeStorageBuffer","clearStorageBuffer","WebgpuIndexBuffer","arr1","arr2","gpuVertexFormats","gpuVertexFormatsNormalized","WebgpuVertexBufferLayout","vertexFormat0","vertexFormat1","getKey","cache","addFormat","stepMode","attributes","elementCount","formatTable","shaderLocation","arrayStride","WebgpuPipeline","getPipelineLayout","bindGroupFormats","bindGroupLayouts","pipelineLayout","createPipelineLayout","_primitiveTopology","_blendOperation","_blendFactor","_compareFunction","_cullModes","_stencilOps","CacheEntry","pipeline","hashes","WebgpuRenderPipeline","primitive","_vertexFormat0$render","_vertexFormat1$render","_bindGroupFormats$0$k","_bindGroupFormats$","_bindGroupFormats$1$k","_bindGroupFormats$2","_bindGroupFormats$2$k","_bindGroupFormats$3","lookupHashes","cacheEntries","entry","primitiveTopology","vertexBufferLayout","cacheEntry","getBlend","operation","getDepthStencil","depthStencil","depthFormat","depthWriteEnabled","depthCompare","depthBiasSlopeScale","stencilReadMas","stencilWriteMask","compare","failOp","passOp","depthFailOp","webgpuShader","vertex","getVertexShaderModule","entryPoint","vertexEntryPoint","topology","frontFace","multisample","count","getFragmentShaderModule","fragmentEntryPoint","colorAttachments","GPUColorWrite","ALPHA","attachment","createRenderPipeline","WebgpuComputePipeline","getComputeShaderModule","computeEntryPoint","createComputePipeline","stringIds","ColorAttachment","_this$multisampledBuf","multisampledBuffer","WebgpuRenderTarget","depthTextureInternal","_this$depthTexture","depthTexture","assignedColorTexture","colorAttachment","rt","setDepthFormat","hasStencil","assignColorTexture","gpuTexture","createView","renderPassDescriptor","resolveTarget","setColorAttachment","_renderTarget$_colorB","_renderTarget$_colorB2","initDepthStencil","_this$colorAttachment","initColor","isDefaultFramebuffer","depthTextureDesc","dimension","sampleCount","GPUTextureUsage","RENDER_ATTACHMENT","TEXTURE_BINDING","COPY_SRC","createTexture","depthStencilAttachment","colorView","mipLevelCount","cubemap","baseArrayLayer","arrayLayerCount","_this$colorAttachment2","_this$colorAttachment3","multisampledTextureDesc","multisampledColorBuffer","setupForRenderPass","_this$renderPassDescr","_this$renderPassDescr2","colorOps","colorArrayOps","clearValue","loadOp","storeOp","store","depthAttachment","depthClearValue","depthStencilOps","clearDepthValue","depthLoadOp","clearDepth","depthStoreOp","storeDepth","depthReadOnly","stencilClearValue","clearStencilValue","stencilLoadOp","clearStencil","stencilStoreOp","storeStencil","stencilReadOnly","uniformTypeToNumComponents","UniformFormat","isArrayType","calculateOffset","alignment","scopeId","shortName","updateType","componentSize","UniformBufferFormat","getShaderDeclaration","bindIndex","uniforms","id$9","textureDimensionInfo","BindBaseFormat","BindUniformBufferFormat","BindStorageBufferFormat","BindTextureFormat","BindStorageTextureFormat","BindGroupFormat","getTexture","textureFormatsMap","getStorageTexture","storageTextureFormatsMap","getShaderDeclarationTextures","textureType","isArray","sampleTypePrefix","namePostfix","extraCode","bufferFormatsMap","bf","tf","storageBufferFormatsMap","createBindGroupFormatImpl","KEYWORD$1","KEYWORD_LINE","MARKER","ARRAY_IDENTIFIER","precisionQualifiers","shadowSamplers","textureDimensions","sampler2D","sampler3D","samplerCube","samplerCubeShadow","sampler2DShadow","sampler2DArray","sampler2DArrayShadow","isampler2D","usampler2D","isampler3D","usampler3D","isamplerCube","usamplerCube","isampler2DArray","usampler2DArray","UniformLine","line","words","trim","rest","exec","arraySize","isNaN","failed","isSampler","isSignedInt","isUnsignedInt","ShaderProcessor","run","shaderDefinition","varyingMap","vertexExtracted","extract","vshader","fragmentExtracted","fshader","attributesBlock","processAttributes","processingOptions","vertexVaryingsBlock","processVaryings","varyings","fragmentVaryingsBlock","outBlock","processOuts","outs","concatUniforms","concat","parsedUniforms","uniformsData","processUniforms","vBlock","fBlock","meshUniformBufferFormat","meshBindGroupFormat","replacement","keyword","lastIndex","lineMatch","cutOut","uniformLinesSamplers","uniformLinesNonSamplers","meshUniforms","hasUniform","uniformType","uniformFormat","hasTexture","uniformFormats","bindGroupIndex","varyingLines","isVertex","block","splitToWords","outsLines","getTypeCount","lastChar","attributeLines","shaderDefinitionAttributes","copyCode","getVertexElement","attribNumElements","newName","isSignedType","WebgpuShader","_vertexCode","_fragmentCode","createShaderModule","shaderType","shaderModule","_computeCode","process","processed","definition","transpile","ready","originalSrc","spirv","glslang","compileGLSL","twgsl","convertSpirV2WGSL","label","message","original","vertexCode","fragmentCode","shaderLanguage","_definition$vshader","_definition$fshader","_definition$cshader","cshader","computeUniformBufferFormats","computeBindGroupFormat","TextureUtils","calcLevelDimension","mipLevel","calcMipLevelsCount","calcLevelGpuSize","_pixelFormatInfo$get$","_formatInfo$blockSize","formatInfo","pixelSize","blockWidth","blockHeight","blockDepth","calcGpuSize","mipmaps","gpuAddressModes","gpuFilterModes","level","mip","dummyUse","thingOne","WebgpuTexture","requiredMipLevels","depthOrArrayLayers","arrayLength","volume","STORAGE_BINDING","viewDescr","propertyChanged","flag","samplers","uploadImmediate","_options$format","_options$dimension","_options$aspect","_options$baseMipLevel","_options$mipLevelCoun","_options$baseArrayLay","_options$arrayLayerCo","textureDescr","defaultViewDimension","baseMipLevel","addressModeU","addressU","addressModeV","addressV","addressModeW","addressW","compareOnRead","magFilter","minFilter","mipmapFilter","forceNearest","allLinear","_anisotropy","maxTextureAnisotropy","createSampler","_needsUpload","_needsMipmapsUpload","uploadData","_levels","anyUploads","anyLevelMissing","mipObject","faceSource","isExternalImage","uploadExternalImage","isView","uploadTypedArrayData","_volume","_arrayLength","arraySource","mipmapRenderer","generate","_gpuSize","gpuSize","image","OffscreenCanvas","copySize","submit","getContext","copyExternalImageToTexture","dest","dataLayout","bytesPerRow","rowsPerImage","blockDim","writeTexture","WebgpuUniformBuffer","uniformBuffer","storageInt32","WebgpuVertexBuffer","KEYWORD","DEFINE","EXTENSION","UNDEF","IF","ENDIF","IDENTIFIER$1","DEFINED","INVALID","INCLUDE","Preprocessor","stripUnusedColorAttachments","trimEnd","defines","counts","regex","matches","_counts$get","_preprocess","intDefines","isInteger","parseFloat","RemoveEmptyLines","processArraySize","RegExp","originalSource","define","expression","identifierValue","identifier","keep","_keep","undef","extension","iff","evaluated","anyKeep","endif","blockInfo","blockCode","endifCommand","include","includeSource","warn","correct","defined","exists","id$8","Shader","vincludes","fincludes","createShaderImpl","id$7","BindGroup","defaultUniformBuffer","setUniformBuffer","dirty","setStorageBuffer","storageBuffer","setTexture","renderVersionUpdated","renderVersionDirty","setStorageTexture","updateUniformBuffers","storageTextureFormat","storageBufferFormat","uniformBufferOffsets","createBindGroupImpl","DynamicBuffer","UsedBuffer","stagingBuffer","DynamicBufferAllocation","DynamicBuffers","gpuBuffers","stagingBuffers","usedBuffers","activeBuffer","alloc","_alignedStart","bufferAlignment","space","bufferSize","scheduleSubmit","alignedStart","_updateFunctions","storageFloat32","storageUint32","UniformBuffer","assignStorage","_this$impl","setUniform","updateFunction","oldGpuBuffer","createUniformBufferImpl","base","indexed","WebgpuClearRenderer","defaultOptions","_options$flags","_options$color","colorData","colorId","depthId","setShader","setBindGroup","draw","WebgpuMipmapRenderer","webgpuTexture","_device$commandEncode","numFaces","srcViews","commandEncoder","createCommandEncoder","dstView","passEncoder","beginRenderPass","getBindGroupLayout","minSampler","setPipeline","cb","finish","addCommandBuffer","WebgpuDynamicBuffer","onAvailable","mappedRange","getMappedRange","isStaging","MAP_WRITE","UNIFORM","mappedAtCreation","WebgpuDynamicBuffers","usedBuffer","unmap","copyBufferToBuffer","pendingStagingBuffers","onCommandBuffersSubmitted","mapAsync","GPUMapMode","WRITE","GpuProfiler","pastFrameAllocations","_enableRequest","processEnableRequest","_enabled","_frameTime","request","frameAllocations","report","timings","allocations","getSlot","slotCount","WebgpuQuerySet","_this$querySet","_this$queryBuffer","querySet","queryBuffer","activeStagingBuffer","getStagingBuffer","MAP_READ","resolveQuerySet","bytesPerSlot","READ","_this$stagingBuffers","srcTimings","BigInt64Array","isTimestamp","capacity","createQuerySet","QUERY_RESOLVE","STORAGE","WebgpuGpuProfiler","_this$timestampQuerie","timestampQueriesSet","_this$timestampQuerie2","_this$timestampQuerie3","results","frameGPUMarkerSlot","supportsTimestampQuery","WebgpuResolver","pipelineCache","getPipeline","createPipeline","resolveDepth","sourceTexture","destinationTexture","srcView","WebgpuCompute","updateBindGroup","dispatch","dispatchWorkgroups","computePipeline","_uniqueLocations","WebgpuGraphicsDevice","clearRenderer","resolver","initDeviceCaps","_this$wgpu","limits","maxPrecision","maxTextures","maxTextureDimension2D","maxTextureDimension3D","fragmentUniformsCount","maxUniformBufferBindingSize","vertexUniformsCount","supportsBoneTextures","supportsMorphTargetTexturesCore","supportsAreaLights","supportsDepthShadow","supportsGpuParticles","extUintElement","extTextureFloat","extTextureHalfFloat","textureHalfFloatUpdatable","supportsImageBitmap","extStandardDerivatives","extBlendMinmax","areaLightLutFormat","supportsTextureFetch","wgslFeatures","gpu","wgslLanguageFeatures","initWebGpu","glslangUrl","twgslUrl","_this$gpuAdapter","_this$wgpu$lost","buildUrl","srcPath","URL","href","Promise","default","adapterOptions","gpuAdapter","requestAdapter","requiredFeatures","requireFeature","feature","supported","features","extCompressedTextureS3TC","extCompressedTextureETC","extCompressedTextureASTC","supportsDepthClip","supportsDepth32Stencil","supportsIndirectFirstInstance","supportsShaderF16","supportsStorageRGBA8","adapterLimits","requiredLimits","limitName","deviceDescr","defaultQueue","requestDevice","lost","info","reason","gpuContext","preferredCanvasFormat","getPreferredCanvasFormat","canvasConfig","colorSpace","alphaMode","viewFormats","configure","createBackbuffer","setupPassEncoderDefaults","minUniformBufferOffsetAlignment","outColorBuffer","getCurrentTexture","wrt","createBufferImpl","createIndexBufferImpl","createTextureImpl","createComputeImpl","submitVertexBuffer","vbBuffer","validateVBLocations","vb0","vb1","validateVB","numInstances","keepBuffers","vbSlot","renderPipeline","drawIndexed","asyncCompile","stencilRef","setStencilReference","setBlendConstant","setAlphaToCoverage","state","_uploadDirtyTextures","_needsMipmaps","upload","renderPassDesc","timestampWrites","beginningOfPassWriteIndex","endOfPassWriteIndex","setScissor","beginComputePass","applyParameters","countX","countY","countZ","commandBuffer","front","commandBuffers","unshift","setScissorRect","_this$commandEncoder","clearBuffer","immediate","_this$commandEncoder2","destBuffer","reject","_data","copySrc","srcType","setTimeout","_this$commandEncoder3","copyDst","copyTextureToTexture","sourceRT","destTexture","_options$alpha","_options$antialias","id$6","Texture","_width","_height","dirtyAll","lockedMode","_lockedMode","_minFilter","_magFilter","_addressU","_addressV","_addressW","_compareOnRead","compareFunc","_compareFunc","anisotropy","_mipmaps","_storage","_cubemap","mips","pot","_compressed","_flipY","premultiplyAlpha","_premultiplyAlpha","encoding","_levelsUpdated","_mipmapsUploaded","_options$level","_options$mode","mode","_lockedLevel","levels","setSource","invalid","_invalid","getSource","_this$impl$uploadImme","downloadAsync","promises","_this$device$readPixe","_this$device","promise","readPixelsAsync","_options$name","_options$width","_options$height","_options$storage","_options$cubemap","_options$fixCubemapSe","_options$premultiplyA","_options$mipmaps","_options$minFilter","_options$magFilter","_options$anisotropy","_options$addressU","_options$addressV","_options$addressW","_options$compareOnRea","_options$compareFunc","_integerFormat","_options$volume","_options$arrayLength","fixCubemapSeams","autoMipmap","rgbm","swizzleGGGR","projection","WebglBuffer","bufferId","gl","deleteBuffer","glUsage","STATIC_DRAW","DYNAMIC_DRAW","STREAM_DRAW","DYNAMIC_COPY","bindBuffer","bufferData","bufferSubData","WebglVertexBuffer","unbindVertexArray","vao","ARRAY_BUFFER","WebglIndexBuffer","ELEMENT_ARRAY_BUFFER","glFormat","UNSIGNED_BYTE","UNSIGNED_SHORT","UNSIGNED_INT","WebglShaderInput","locationId","_vertexShaderBuiltins","CompiledShaderCache","deleteShader","_vertexShaderCache","_fragmentShaderCache","WebglShader","glProgram","deleteProgram","glVertexShader","glFragmentShader","compile","link","_compileShaderSource","isContextLost","createProgram","attachShader","attrs","useTransformFeedback","outNames","attr","transformFeedbackVaryings","INTERLEAVED_ATTRIBS","loc","bindAttribLocation","linkProgram","isVertexShader","shaderDeviceCache","shaderCache","glShader","createShader","VERTEX_SHADER","FRAGMENT_SHADER","shaderSource","compileShader","finalize","linkStatus","getProgramParameter","LINK_STATUS","_isCompiled","getProgramInfoLog","numAttributes","ACTIVE_ATTRIBUTES","getActiveAttrib","getAttribLocation","shaderInput","pcUniformType","_samplerTypes","numUniforms","ACTIVE_UNIFORMS","getActiveUniform","getUniformLocation","getShaderParameter","COMPILE_STATUS","infoLog","getShaderInfoLog","_processError","isLinked","extParallelShaderCompile","COMPLETION_STATUS_KHR","lines","compileDuration","downsampleImage","srcW","srcH","dstW","dstH","context","drawImage","WebglTexture","_glTexture","textureUnits","textureUnit","j","deleteTexture","dirtyParameterFlags","_glTarget","TEXTURE_CUBE_MAP","TEXTURE_3D","TEXTURE_2D_ARRAY","TEXTURE_2D","_glFormat","_glInternalFormat","_glPixelType","LUMINANCE","LUMINANCE_ALPHA","RGB","UNSIGNED_SHORT_5_6_5","RGBA","UNSIGNED_SHORT_5_5_5_1","UNSIGNED_SHORT_4_4_4_4","RGB8","RGBA8","COMPRESSED_RGB_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT3_EXT","COMPRESSED_RGBA_S3TC_DXT5_EXT","extCompressedTextureETC1","COMPRESSED_RGB_ETC1_WEBGL","extCompressedTexturePVRTC","COMPRESSED_RGB_PVRTC_2BPPV1_IMG","COMPRESSED_RGBA_PVRTC_2BPPV1_IMG","COMPRESSED_RGB_PVRTC_4BPPV1_IMG","COMPRESSED_RGBA_PVRTC_4BPPV1_IMG","COMPRESSED_RGB8_ETC2","COMPRESSED_RGBA8_ETC2_EAC","COMPRESSED_RGBA_ASTC_4x4_KHR","extCompressedTextureATC","COMPRESSED_RGB_ATC_WEBGL","COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL","R16F","HALF_FLOAT","HALF_FLOAT_OES","RG","RG16F","RGB16F","RGBA16F","RGB32F","FLOAT","RGBA32F","R32F","DEPTH_COMPONENT","DEPTH_COMPONENT32F","DEPTH_STENCIL","DEPTH24_STENCIL8","UNSIGNED_INT_24_8","extDepthTexture","UNSIGNED_INT_24_8_WEBGL","R11F_G11F_B10F","UNSIGNED_INT_10F_11F_11F_REV","SRGB8","SRGB8_ALPHA8","RED_INTEGER","R8I","BYTE","R8UI","R16I","SHORT","R16UI","R32I","INT","R32UI","RG_INTEGER","RG8I","RG8UI","RG16I","RG16UI","RG32I","RG32UI","RGBA_INTEGER","RGBA8I","RGBA8UI","RGBA16I","RGBA16UI","RGBA32I","RGBA32UI","_glCreated","resMult","texStorage3D","generateMipmap","setUnpackFlipY","setUnpackPremultiplyAlpha","texSubImage2D","TEXTURE_CUBE_MAP_POSITIVE_X","texImage2D","texData","compressedTexSubImage2D","compressedTexImage2D","compressedTexImage3D","texImage3D","compressedTexSubImage3D","texSubImage3D","videoWidth","videoHeight","FramebufferPair","msaaFB","deleteRenderbuffer","resolveFB","WebglRenderTarget","_this$colorMrtFramebu","_isInitialized","_glFrameBuffer","suppliedColorFramebuffer","deleteFramebuffer","_glDepthBuffer","_glResolveFrameBuffer","_glMsaaColorBuffers","colorMrtFramebuffers","framebuffer","_glMsaaDepthBuffer","_target$_colorBuffers","_target$_colorBuffers2","_device$extDrawBuffer","_device$extDrawBuffer2","createFramebuffer","setFramebuffer","colorBufferCount","attachmentBaseConstant","COLOR_ATTACHMENT0","extDrawBuffers","COLOR_ATTACHMENT0_WEBGL","maxRenderBufferSize","framebufferTexture2D","FRAMEBUFFER","drawBuffers","DEPTH_STENCIL_ATTACHMENT","DEPTH_ATTACHMENT","willRenderMsaa","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","renderbufferStorage","framebufferRenderbuffer","DEPTH_COMPONENT16","_target$_colorBuffers3","_target$_colorBuffers4","internalFormat","renderbufferStorageMultisample","_createMsaaMrtFramebuffers","srcFramebuffer","dstFramebuffer","_checkFbo","status","checkFramebufferStatus","FRAMEBUFFER_INCOMPLETE_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_DIMENSIONS","FRAMEBUFFER_UNSUPPORTED","internalResolve","bindFramebuffer","READ_FRAMEBUFFER","DRAW_FRAMEBUFFER","blitFramebuffer","NEAREST","fbPair","COLOR_BUFFER_BIT","DEPTH_BUFFER_BIT","gles2PS","gles2VS","gles3PS","gles3VS","webgpuPS","webgpuVS","sharedFS","_attrib2Semantic","vertex_position","vertex_normal","vertex_tangent","vertex_texCoord0","vertex_texCoord1","vertex_texCoord2","vertex_texCoord3","vertex_texCoord4","vertex_texCoord5","vertex_texCoord6","vertex_texCoord7","vertex_color","vertex_boneIndices","vertex_boneWeights","ShaderUtils","createDefinition","_options$attributes","getDefines","gl2","gl1","deviceIntro","gl1Extensions","attachmentsDefine","_options$fragmentOutp","fragmentOutputTypes","_fragmentOutputTypes$","outType","vertCode","versionCode","getDefinesCode","vertexDefines","getShaderNameCode","fragCode","fragmentPreamble","fragmentDefines","precisionCode","dummyFragmentCode","attribs","collectAttributes","vertexIncludes","fragmentIncludes","vertexExtensions","fragmentExtensions","extTextureLod","forcePrecision","vsCode","found","endOfLine","startOfAttribName","attribName","FrameQueriesInfo","queries","deleteQuery","WebglGpuProfiler","freeQueries","frameQueries","previousFrameQueries","frameQueriesInfo","extDisjointTimerQuery","_this$freeQueries$pop","createQuery","beginQuery","TIME_ELAPSED_EXT","endQuery","previousQueriesInfo","previousQueries","lastQuery","available","getQueryParameter","QUERY_RESULT_AVAILABLE","disjoint","getParameter","GPU_DISJOINT_EXT","duration","QUERY_RESULT","invalidateAttachments","_fullScreenQuadVS","_precisionTest1PS","_precisionTest2PS","_outputTexture2D","quadWithShader","oldRt","updateBegin","updateEnd","testRenderable","pixelFormat","bindTexture","texParameteri","TEXTURE_MIN_FILTER","TEXTURE_MAG_FILTER","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","FRAMEBUFFER_COMPLETE","testTextureHalfFloatUpdatable","getError","NO_ERROR","testTextureFloatHighPrecision","shader1","shader2","textureOptions","tex1","targ1","tex2","targ2","constantTexSource","prevFramebuffer","activeFramebuffer","pixels","readPixels","WebglGraphicsDevice","feedback","deleteTransformFeedback","clearVertexArrayObjectCache","_contextLostHandler","_contextRestoredHandler","frameBuffer","updateBackbufferFormat","alphaBits","ALPHA_BITS","updateBackbuffer","resolutionChanged","_defaultFramebufferChanged","_defaultFramebuffer","getPrecision","getShaderPrecisionFormat","vertexShaderPrecisionHighpFloat","HIGH_FLOAT","vertexShaderPrecisionMediumpFloat","MEDIUM_FLOAT","fragmentShaderPrecisionHighpFloat","fragmentShaderPrecisionMediumpFloat","highpAvailable","mediumpAvailable","supportedExtensions","_extDisjointTimerQuery","initializeExtensions","_gl$getSupportedExten","getSupportedExtensions","extInstancing","extVertexArrayObject","extColorBufferFloat","_this$extDrawBuffers","drawBuffersWEBGL","drawArraysInstanced","drawArraysInstancedANGLE","drawElementsInstanced","drawElementsInstancedANGLE","vertexAttribDivisor","vertexAttribDivisorANGLE","createVertexArray","createVertexArrayOES","deleteVertexArray","deleteVertexArrayOES","isVertexArray","isVertexArrayOES","bindVertexArray","bindVertexArrayOES","extTextureHalfFloatLinear","extDebugRendererInfo","extTextureFloatLinear","extFloatBlend","extTextureFilterAnisotropic","extColorBufferHalfFloat","initializeCapabilities","_contextAttribs$antia","_contextAttribs$stenc","contextAttribs","getContextAttributes","supportsMsaa","MAX_TEXTURE_SIZE","MAX_CUBE_MAP_TEXTURE_SIZE","MAX_RENDERBUFFER_SIZE","MAX_TEXTURE_IMAGE_UNITS","maxCombinedTextures","MAX_COMBINED_TEXTURE_IMAGE_UNITS","maxVertexTextures","MAX_VERTEX_TEXTURE_IMAGE_UNITS","MAX_VERTEX_UNIFORM_VECTORS","MAX_FRAGMENT_UNIFORM_VECTORS","maxDrawBuffers","MAX_DRAW_BUFFERS","MAX_COLOR_ATTACHMENTS","MAX_3D_TEXTURE_SIZE","MAX_DRAW_BUFFERS_WEBGL","MAX_COLOR_ATTACHMENTS_WEBGL","unmaskedRenderer","UNMASKED_RENDERER_WEBGL","unmaskedVendor","UNMASKED_VENDOR_WEBGL","maliRendererRegex","samsungModelRegex","MAX_TEXTURE_MAX_ANISOTROPY_EXT","antialiasSupported","forceDisableMultisampling","MAX_SAMPLES","disable","BLEND","blendFunc","blendEquation","FUNC_ADD","colorMask","enable","CULL_FACE","cullFace","DEPTH_TEST","depthFunc","LEQUAL","depthMask","STENCIL_TEST","stencilFuncFront","stencilFuncBack","stencilRefFront","stencilRefBack","stencilMaskFront","stencilMaskBack","stencilFunc","ALWAYS","stencilFailFront","stencilFailBack","stencilZfailFront","stencilZfailBack","stencilZpassFront","stencilZpassBack","stencilWriteMaskFront","stencilWriteMaskBack","stencilOp","KEEP","stencilMask","alphaToCoverage","raster","SAMPLE_ALPHA_TO_COVERAGE","RASTERIZER_DISCARD","depthBiasEnabled","POLYGON_OFFSET_FILL","clearColor","hint","FRAGMENT_SHADER_DERIVATIVE_HINT","NICEST","FRAGMENT_SHADER_DERIVATIVE_HINT_OES","SCISSOR_TEST","pixelStorei","UNPACK_COLORSPACE_CONVERSION_WEBGL","NONE","unpackFlipY","UNPACK_FLIP_Y_WEBGL","unpackPremultiplyAlpha","UNPACK_PREMULTIPLY_ALPHA_WEBGL","UNPACK_ALIGNMENT","initTextureUnits","_vaoMap","boundVao","transformFeedbackBuffer","viewport","scissor","fb","_this$backBuffer","_this$backBuffer2","prevRt","getCopyShader","_copyShader","_renderPass$renderTar","clearFlags","clearOptions","_renderPass$colorOps","STENCIL_ATTACHMENT","fullSizeClearRect","invalidateFramebuffer","activeTexture","defaultFramebuffer","_this$renderTarget","_tempEnableSafariTextureUnitWorkaround","unit","targetImpl","TEXTURE0","textureTarget","textureObject","targetToSlot","bindTextureOnUnit","setTextureParameters","filter","glFilter","glAddress","TEXTURE_WRAP_R","TEXTURE_COMPARE_MODE","COMPARE_REF_TO_TEXTURE","TEXTURE_COMPARE_FUNC","glComparison","texParameterf","TEXTURE_MAX_ANISOTROPY_EXT","useCache","vertexAttribIPointer","glType","vertexAttribPointer","enableVertexAttribArray","setBuffers","activateShader","samplerValue","numTextures","uniformVersion","programVersion","uniform1i","uniform1iv","commitFunction","bindBufferBase","TRANSFORM_FEEDBACK_BUFFER","beginTransformFeedback","POINTS","glPrimitive","bytesPerIndex","drawElements","drawArrays","endTransformFeedback","glClearFlag","flush","_this$renderTarget$co","_impl$_glFormat","_impl$_glPixelType","clientWaitAsync","interval_ms","sync","fenceSync","SYNC_GPU_COMMANDS_COMPLETE","clientWaitSync","WAIT_FAILED","deleteSync","TIMEOUT_EXPIRED","pixelType","buf","PIXEL_PACK_BUFFER","STREAM_READ","getBufferSubData","setTransformFeedbackBuffer","createTransformFeedback","bindTransformFeedback","TRANSFORM_FEEDBACK","setRaster","setStencilTest","setStencilFunc","setStencilFuncFront","stencilFuncSeparate","FRONT","setStencilFuncBack","setStencilOperation","glStencilOp","setStencilOperationFront","stencilOpSeparate","stencilMaskSeparate","setStencilOperationBack","currentBlendState","glBlendEquation","blendEquationSeparate","blendFuncSeparate","glBlendFunctionColor","glBlendFunctionAlpha","_stencilFront","_stencilBack","currentDepthState","polygonOffset","glCull","useProgram","mapObj","requestFullscreen","exitFullscreen","fullscreenElement","textureFloatHighPrecision","_textureFloatHighPrecision","_textureHalfFloatUpdatable","event","preventDefault","_ua","firefoxVersion","disableAntialias","preferWebGl2","names","WebGL2RenderingContext","isChrome","isSafari","isMac","appVersion","_tempMacChromeBlitFramebufferWorkaround","SAMPLER_2D","SAMPLER_CUBE","UNSIGNED_INT_SAMPLER_2D","INT_SAMPLER_2D","SAMPLER_2D_SHADOW","SAMPLER_CUBE_SHADOW","SAMPLER_3D","INT_SAMPLER_3D","UNSIGNED_INT_SAMPLER_3D","SAMPLER_2D_ARRAY","INT_SAMPLER_2D_ARRAY","UNSIGNED_INT_SAMPLER_2D_ARRAY","REPEAT","MIRRORED_REPEAT","FUNC_SUBTRACT","FUNC_REVERSE_SUBTRACT","MIN","MIN_EXT","MAX","MAX_EXT","SRC_COLOR","ONE_MINUS_SRC_COLOR","DST_COLOR","ONE_MINUS_DST_COLOR","SRC_ALPHA","SRC_ALPHA_SATURATE","ONE_MINUS_SRC_ALPHA","DST_ALPHA","ONE_MINUS_DST_ALPHA","CONSTANT_COLOR","ONE_MINUS_CONSTANT_COLOR","CONSTANT_ALPHA","ONE_MINUS_CONSTANT_ALPHA","NEVER","LESS","EQUAL","GREATER","NOTEQUAL","GEQUAL","REPLACE","INCR","INCR_WRAP","DECR","DECR_WRAP","INVERT","STENCIL_BUFFER_BIT","FRONT_AND_BACK","LINEAR","NEAREST_MIPMAP_NEAREST","NEAREST_MIPMAP_LINEAR","LINEAR_MIPMAP_NEAREST","LINEAR_MIPMAP_LINEAR","LINES","LINE_LOOP","LINE_STRIP","TRIANGLES","TRIANGLE_STRIP","TRIANGLE_FAN","BOOL","FLOAT_VEC2","FLOAT_VEC3","FLOAT_VEC4","INT_VEC2","INT_VEC3","INT_VEC4","BOOL_VEC2","BOOL_VEC3","BOOL_VEC4","FLOAT_MAT2","FLOAT_MAT3","FLOAT_MAT4","UNSIGNED_INT_VEC2","UNSIGNED_INT_VEC3","UNSIGNED_INT_VEC4","INT_SAMPLER_CUBE","scopeX","scopeY","scopeZ","scopeW","uniformValue","uniform1f","uniform2fv","uniform3fv","uniform4fv","uniform2iv","uniform3iv","uniform4iv","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","uniform1fv","uniform1ui","uniform2uiv","uniform3uiv","uniform4uiv","uniform1uiv","NullIndexBuffer","NullRenderTarget","NullShader","NullTexture","NullVertexBuffer","NullGraphicsDevice","disableParticleSystem","isNull","createGraphicsDevice","_options$deviceTypes","deviceTypes","xr","_options$xrCompatible","xrCompatible","deviceCreateFuncs","_window","attempt","next","catch","ComputeParameter","Compute","setParameter","param","parameters","_this$parameters$get","deleteParameter","setupDispatch","id$5","IndexBuffer","getNumIndices","numIndices","_lockTypedArray","indices","writeData","subarray","readData","ColorAttachmentOps","DepthStencilAttachmentOps","RenderPass","_name","_options","_this$_options$scaleX","_this$_options$scaleY","scaleX","scaleY","numColorOps","frameUpdate","_this$_options$resize","resizeSource","before","execute","after","onEnable","onDisable","setClearColor","setClearDepth","depthValue","setClearStencil","stencilValue","render","realPass","executeEnabled","requiresCubemaps","beforePasses","afterPasses","ShaderProcessorOptions","groupFormat","_this$vertexFormat","find","generateKey","JSON","stringify","_this$vertexFormat2","viewUniformFormat","viewBindGroupFormat","id$4","StorageBuffer","bufferUsage","TransformFeedback","_outputBuffer","swap","_inputBuffer","inputBuffer","outputBuffer","set1","set2","set3","set4","arraySet1","inputArray","inputIndex","arraySet2","arraySet3","arraySet4","arrayGet1","outputArray","outputIndex","arrayGet2","arrayGet3","arrayGet4","VertexIteratorAccessor","getToArray","setFromArray","vertexElement","BYTES_PER_ELEMENT","VertexIterator","accessors","numAccessors","accessor","copyCount","vertexFormatSize","ACTION_MOUSE","ACTION_KEYBOARD","ACTION_GAMEPAD","AXIS_MOUSE_X","AXIS_MOUSE_Y","AXIS_PAD_L_X","AXIS_PAD_L_Y","AXIS_PAD_R_X","AXIS_PAD_R_Y","AXIS_KEY","EVENT_KEYDOWN","EVENT_KEYUP","EVENT_MOUSEDOWN","EVENT_MOUSEMOVE","EVENT_MOUSEUP","EVENT_MOUSEWHEEL","EVENT_TOUCHSTART","EVENT_TOUCHEND","EVENT_TOUCHMOVE","EVENT_TOUCHCANCEL","EVENT_SELECT","EVENT_SELECTSTART","EVENT_SELECTEND","KEY_BACKSPACE","KEY_TAB","KEY_RETURN","KEY_ENTER","KEY_SHIFT","KEY_CONTROL","KEY_ALT","KEY_PAUSE","KEY_CAPS_LOCK","KEY_ESCAPE","KEY_SPACE","KEY_PAGE_UP","KEY_PAGE_DOWN","KEY_END","KEY_HOME","KEY_LEFT","KEY_UP","KEY_RIGHT","KEY_DOWN","KEY_PRINT_SCREEN","KEY_INSERT","KEY_DELETE","KEY_0","KEY_1","KEY_2","KEY_3","KEY_4","KEY_5","KEY_6","KEY_7","KEY_8","KEY_9","KEY_SEMICOLON","KEY_EQUAL","KEY_A","KEY_B","KEY_C","KEY_D","KEY_E","KEY_F","KEY_G","KEY_H","KEY_I","KEY_J","KEY_K","KEY_L","KEY_M","KEY_N","KEY_O","KEY_P","KEY_Q","KEY_R","KEY_S","KEY_T","KEY_U","KEY_V","KEY_W","KEY_X","KEY_Y","KEY_Z","KEY_WINDOWS","KEY_CONTEXT_MENU","KEY_NUMPAD_0","KEY_NUMPAD_1","KEY_NUMPAD_2","KEY_NUMPAD_3","KEY_NUMPAD_4","KEY_NUMPAD_5","KEY_NUMPAD_6","KEY_NUMPAD_7","KEY_NUMPAD_8","KEY_NUMPAD_9","KEY_MULTIPLY","KEY_ADD","KEY_SEPARATOR","KEY_SUBTRACT","KEY_DECIMAL","KEY_DIVIDE","KEY_F1","KEY_F2","KEY_F3","KEY_F4","KEY_F5","KEY_F6","KEY_F7","KEY_F8","KEY_F9","KEY_F10","KEY_F11","KEY_F12","KEY_COMMA","KEY_PERIOD","KEY_SLASH","KEY_OPEN_BRACKET","KEY_BACK_SLASH","KEY_CLOSE_BRACKET","KEY_META","MOUSEBUTTON_NONE","MOUSEBUTTON_LEFT","MOUSEBUTTON_MIDDLE","MOUSEBUTTON_RIGHT","PAD_1","PAD_2","PAD_3","PAD_4","PAD_FACE_1","PAD_FACE_2","PAD_FACE_3","PAD_FACE_4","PAD_L_SHOULDER_1","PAD_R_SHOULDER_1","PAD_L_SHOULDER_2","PAD_R_SHOULDER_2","PAD_SELECT","PAD_START","PAD_L_STICK_BUTTON","PAD_R_STICK_BUTTON","PAD_UP","PAD_DOWN","PAD_LEFT","PAD_RIGHT","PAD_VENDOR","PAD_L_STICK_X","PAD_L_STICK_Y","PAD_R_STICK_X","PAD_R_STICK_Y","EVENT_GAMEPADCONNECTED","EVENT_GAMEPADDISCONNECTED","XRPAD_TOUCHPAD_X","XRPAD_TOUCHPAD_Y","XRPAD_STICK_X","XRPAD_STICK_Y","XRPAD_TOUCHPAD_BUTTON","XRPAD_TRIGGER","XRPAD_SQUEEZE","XRPAD_STICK_BUTTON","XRPAD_A","XRPAD_B","KeyboardEvent","keyboard","keyCode","_keyboardEvent","makeKeyboardEvent","toKeyCode","toUpperCase","_keyCodeToKeyIdentifier","Keyboard","_element","detach","_keyDownHandler","_keyPressHandler","_keyUpHandler","_visibilityChangeHandler","_windowBlurHandler","toKeyIdentifier","_handleKeyDown","charCode","_keymap","stopPropagation","_handleKeyUp","_handleKeyPress","_handleVisibilityChange","visibilityState","_handleWindowBlur","_lastmap","isPressed","wasPressed","wasReleased","isMousePointerLocked","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","MouseEvent","mouse","_event$ctrlKey","_event$altKey","_event$shiftKey","_event$metaKey","dx","dy","button","wheelDelta","ctrlKey","altKey","shiftKey","metaKey","coords","_getTargetCoords","deltaY","movementX","webkitMovementX","mozMovementX","movementY","webkitMovementY","mozMovementY","_lastX","_lastY","buttons","_buttons","Mouse","isPointerLocked","_target","_attached","passiveOptions","passive","_upHandler","_downHandler","_moveHandler","_wheelHandler","disableContextMenu","_contextMenuHandler","enableContextMenu","enablePointerLock","requestPointerLock","disablePointerLock","exitPointerLock","_lastbuttons","_handleUp","_handleDown","_handleMove","_handleWheel","clientX","clientWidth","clientY","clientHeight","Controller","_keyboard","_mouse","_enableMouse","dt","_gamepads","_axesValues","_axes","appendAction","action_name","action","_actions","registerKeys","_enableKeyboard","registerMouse","registerPadButton","pad","registerAxis","controller","getAxis","positive","positiveKey","negativeKey","negative","actionName","dummyArray","_getGamepads","MAPS_INDEXES","axes","MAPS","DEFAULT_DUAL","synthesizedButtons","PS3","mapping","DEFAULT_XR","PRODUCT_CODES","custom_maps","getMap","custom","product","raw","defaultmap","deadZone","sleep","ms","GamePadButton","_button$touched","pressed","touched","wasTouched","previous","_current$touched","_previous$touched","dummyButton","GamePad","connected","_compileMapping","_compiledMapping","axesIndexes","buttonsIndexes","axesMap","buttonsMap","synthesizedButtonsMap","_this$_axes$axis","_this$_previousAxes$a","_previousAxes","gamepad","previousAxes","updateMap","resetMap","pulse","intensity","actuators","vibrationActuator","hapticActuators","_options$startDelay","_options$strongMagnit","_options$weakMagnitud","startDelay","strongMagnitude","weakMagnitude","actuator","playEffect","some","getButton","isTouched","hand","GamePads","_previous","_ongamepadconnected","padIndex","findIndex","gp","_ongamepaddisconnected","poll","pads","padDevices","findByIndex","nPad","_ongamepadconnectedHandler","_ongamepaddisconnectedHandler","orderIndex","_this$current$orderIn","_this$current$orderIn2","_this$current$orderIn3","_this$current$orderIn4","pulseAll","findById","gamepadsSupported","getTouchTargetCoords","totalOffsetX","totalOffsetY","HTMLElement","parentNode","offsetLeft","scrollLeft","offsetTop","scrollTop","offsetParent","pageX","pageY","Touch","TouchEvent","getTouchById","touches","changedTouches","TouchDevice","_startHandler","_endHandler","_cancelHandler","_handleTouchStart","_handleTouchEnd","_handleTouchMove","_handleTouchCancel","Http","post","postdata","put","del","method","errored","retry","retries","maxRetries","async","headers","Document","FormData","contentType","ContentType","FORM_URLENCODED","bFirstItem","encodedKey","encodedValue","timestamp","xhr","XMLHttpRequest","open","withCredentials","responseType","_guessResponseType","header","setRequestHeader","onreadystatechange","_onReadyStateChange","_onError","send","toLowerCase","binaryExtensions","ResponseType","DOCUMENT","TEXT","_isBinaryContentType","binTypes","BASIS","BIN","DDS","GLB","MP3","MP4","OGG","OPUS","WAV","_isBinaryResponseType","BLOB","readyState","responseURL","_onSuccess","response","getResponseHeader","parse","responseText","XML","responseXML","retrying","retryDelay","maxRetryDelay","AAC","GIF","JPEG","PNG","http","hasAudioContext","AudioContext","webkitAudioContext","Channel","getVolume","getLoop","loop","setLoop","getPitch","pitch","onManagerVolumeChange","setVolume","onManagerSuspend","isPlaying","suspended","pause","onManagerResume","unpause","play","_createSource","startTime","manager","currentTime","startOffset","setPitch","paused","stop","gain","playbackRate","playbackState","PLAYING_STATE","getDuration","sound","createBufferSource","connect","destination","onended","_options$loop","_options$pitch","createGain","audio","cloneNode","MAX_DISTANCE$1","Channel3d","getPosition","setPosition","panner","positionX","positionY","positionZ","getVelocity","velocity","setVelocity","getMaxDistance","maxDistance","setMaxDistance","getMinDistance","refDistance","setMinDistance","getRollOffFactor","rolloffFactor","setRollOffFactor","factor","getDistanceModel","distanceModel","setDistanceModel","createPanner","minDistance","rollOffFactor","fallOff","posOne","posTwo","listener","lpos","Listener","setOrientation","orientation","forwardX","forwardY","forwardZ","upX","upY","upZ","getOrientation","_manager","CONTEXT_STATE_RUNNING","USER_INPUT_EVENTS","SoundManager","_userSuspended","_context","_registerUnlockListeners","suspend","_suspend","resume","_resume","_this$_context","_removeUnlockListeners","close","playSound","playSound3d","sampleRate","disconnect","_unlockHandler","eventName","_unlockHandlerFunc","Sound","Audio","STATE_PLAYING","STATE_PAUSED","STATE_STOPPED","capTime","SoundInstance","_state","_suspendInstanceEvents","_startOffset","_currentTime","_updateCurrentTime","_duration","_sound","isPaused","isStopped","isSuspended","_suspended","_loop","_currentOffset","_startedAt","_pitch","_startTime","_onPlay","_onPlayCallback","_onPause","_onPauseCallback","_onResume","_onResumeCallback","_onStop","_onStopCallback","_onEnded","_suspendEndEvent","_onEndCallback","_onManagerVolumeChange","_onManagerSuspend","_onManagerResume","_initializeNodes","_inputNode","_connectorNode","_playWhenLoaded","_waitingContextSuspension","_playAudioImmediate","_onManagerDestroy","wasPlaying","setExternalNodes","firstNode","lastNode","speakers","_firstNode","_lastNode","clearExternalNodes","getExternalNodes","_endedHandler","loopStart","loopEnd","onPlay","onPause","onResume","onStop","onEnd","_isReady","_loadedMetadataHandler","_onLoadedMetadata","_timeUpdateHandler","_onTimeUpdate","EVENT_PLAY","EVENT_PAUSE","EVENT_RESUME","EVENT_STOP","EVENT_END","MAX_DISTANCE","SoundInstance3d","_position","_velocity","_maxDistance","_refDistance","_rollOffFactor","_distanceModel","BLEND_SUBTRACTIVE","BLEND_ADDITIVE","BLEND_NORMAL","BLEND_NONE","BLEND_PREMULTIPLIED","BLEND_MULTIPLICATIVE","BLEND_ADDITIVEALPHA","BLEND_MULTIPLICATIVE2X","BLEND_SCREEN","BLEND_MIN","BLEND_MAX","FOG_NONE","FOG_LINEAR","FOG_EXP","FOG_EXP2","FRESNEL_NONE","FRESNEL_SCHLICK","LAYER_HUD","LAYER_GIZMO","LAYER_FX","LAYER_WORLD","LAYERID_WORLD","LAYERID_DEPTH","LAYERID_SKYBOX","LAYERID_IMMEDIATE","LAYERID_UI","LIGHTTYPE_DIRECTIONAL","LIGHTTYPE_OMNI","LIGHTTYPE_POINT","LIGHTTYPE_SPOT","LIGHTTYPE_COUNT","LIGHTSHAPE_PUNCTUAL","LIGHTSHAPE_RECT","LIGHTSHAPE_DISK","LIGHTSHAPE_SPHERE","LIGHTFALLOFF_LINEAR","LIGHTFALLOFF_INVERSESQUARED","SHADOW_PCF3","SHADOW_DEPTH","SHADOW_VSM8","SHADOW_VSM16","SHADOW_VSM32","SHADOW_PCF5","SHADOW_PCF1","SHADOW_PCSS","shadowTypeToString","BLUR_BOX","BLUR_GAUSSIAN","PARTICLESORT_NONE","PARTICLESORT_DISTANCE","PARTICLESORT_NEWER_FIRST","PARTICLESORT_OLDER_FIRST","PARTICLEMODE_GPU","PARTICLEMODE_CPU","EMITTERSHAPE_BOX","EMITTERSHAPE_SPHERE","PARTICLEORIENTATION_SCREEN","PARTICLEORIENTATION_WORLD","PARTICLEORIENTATION_EMITTER","PROJECTION_PERSPECTIVE","PROJECTION_ORTHOGRAPHIC","RENDERSTYLE_SOLID","RENDERSTYLE_WIREFRAME","RENDERSTYLE_POINTS","CUBEPROJ_NONE","CUBEPROJ_BOX","SPECULAR_PHONG","SPECULAR_BLINN","DETAILMODE_MUL","DETAILMODE_ADD","DETAILMODE_SCREEN","DETAILMODE_OVERLAY","DETAILMODE_MIN","DETAILMODE_MAX","GAMMA_NONE","GAMMA_SRGB","GAMMA_SRGBFAST","GAMMA_SRGBHDR","TONEMAP_LINEAR","TONEMAP_FILMIC","TONEMAP_HEJL","TONEMAP_ACES","TONEMAP_ACES2","TONEMAP_NEUTRAL","SPECOCC_NONE","SPECOCC_AO","SPECOCC_GLOSSDEPENDENT","SHADERDEF_NOSHADOW","SHADERDEF_SKIN","SHADERDEF_UV0","SHADERDEF_UV1","SHADERDEF_VCOLOR","SHADERDEF_INSTANCING","SHADERDEF_LM","SHADERDEF_DIRLM","SHADERDEF_SCREENSPACE","SHADERDEF_TANGENTS","SHADERDEF_MORPH_POSITION","SHADERDEF_MORPH_NORMAL","SHADERDEF_MORPH_TEXTURE_BASED","SHADERDEF_LMAMBIENT","SHADOWUPDATE_NONE","SHADOWUPDATE_THISFRAME","SHADOWUPDATE_REALTIME","SORTKEY_FORWARD","SORTKEY_DEPTH","MASK_AFFECT_DYNAMIC","MASK_AFFECT_LIGHTMAPPED","MASK_BAKE","SHADER_FORWARD","SHADER_FORWARDHDR","SHADER_DEPTH","SHADER_PICK","SHADER_SHADOW","SHADER_PREPASS_VELOCITY","SHADERPASS_FORWARD","SHADERPASS_ALBEDO","SHADERPASS_WORLDNORMAL","SHADERPASS_OPACITY","SHADERPASS_SPECULARITY","SHADERPASS_GLOSS","SHADERPASS_METALNESS","SHADERPASS_AO","SHADERPASS_EMISSION","SHADERPASS_LIGHTING","SHADERPASS_UV0","SPRITE_RENDERMODE_SIMPLE","SPRITE_RENDERMODE_SLICED","SPRITE_RENDERMODE_TILED","BAKE_COLOR","BAKE_COLORDIR","VIEW_CENTER","VIEW_LEFT","VIEW_RIGHT","SORTMODE_NONE","SORTMODE_MANUAL","SORTMODE_MATERIALMESH","SORTMODE_BACK2FRONT","SORTMODE_FRONT2BACK","SORTMODE_CUSTOM","ASPECT_AUTO","ASPECT_MANUAL","ORIENTATION_HORIZONTAL","ORIENTATION_VERTICAL","SKYTYPE_INFINITE","SKYTYPE_BOX","SKYTYPE_DOME","DITHER_NONE","DITHER_BAYER8","DITHER_BLUENOISE","DITHER_IGNNOISE","alphaTestPS","ambientConstantPS","ambientEnvPS","ambientSHPS","aoPS","aoDetailMapPS","aoDiffuseOccPS","aoSpecOccPS","aoSpecOccConstPS","aoSpecOccConstSimplePS","aoSpecOccSimplePS","basePS","baseVS","baseNineSlicedPS","baseNineSlicedVS","baseNineSlicedTiledPS","bayerPS","biasConstPS","blurVSMPS","clearCoatPS","clearCoatGlossPS","clearCoatNormalPS","clusteredLightUtilsPS","clusteredLightCookiesPS","clusteredLightShadowsPS","clusteredLightPS","combinePS","cookiePS","cubeMapProjectBoxPS","cubeMapProjectNonePS","cubeMapRotatePS","debugOutputPS","debugProcessFrontendPS","decodePS","detailModesPS","diffusePS","diffuseDetailMapPS","emissivePS","encodePS","endPS","endVS","envAtlasPS","envConstPS","envMultiplyPS","extensionPS","extensionVS","falloffInvSquaredPS","falloffLinearPS","fixCubemapSeamsNonePS","fixCubemapSeamsStretchPS","floatUnpackingPS","fogExpPS","fogExp2PS","fogLinearPS","fogNonePS","fresnelSchlickPS","fullscreenQuadPS","fullscreenQuadVS","gamma1_0PS","gamma2_2PS","glossPS","iridescenceDiffractionPS","iridescencePS","iridescenceThicknessPS","instancingVS","iorPS","lightDiffuseLambertPS","lightDirPointPS","lightmapAddPS","lightmapDirAddPS","lightmapDirPS","lightmapSinglePS","lightSpecularAnisoGGXPS","lightSpecularBlinnPS","lightSpecularPhongPS","lightSheenPS","linearizeDepthPS","litShaderArgsPS","ltcPS","metalnessPS","msdfPS","metalnessModulatePS","msdfVS","normalVS","normalDetailMapPS","normalInstancedVS","normalMapPS","normalSkinnedVS","normalXYPS","normalXYZPS","opacityPS","opacityDitherPS","outputPS","outputAlphaPS","outputAlphaOpaquePS","outputAlphaPremulPS","outputTex2DPS","packDepthPS","sheenPS","sheenGlossPS","parallaxPS","particlePS","particleVS","particleAnimFrameClampVS","particleAnimFrameLoopVS","particleAnimTexVS","particleInputFloatPS","particleInputRgba8PS","particleOutputFloatPS","particleOutputRgba8PS","particleUpdaterAABBPS","particleUpdaterEndPS","particleUpdaterInitPS","particleUpdaterNoRespawnPS","particleUpdaterOnStopPS","particleUpdaterRespawnPS","particleUpdaterSpherePS","particleUpdaterStartPS","particle_billboardVS","particle_blendAddPS","particle_blendMultiplyPS","particle_blendNormalPS","particle_cpuVS","particle_cpu_endVS","particle_customFaceVS","particle_endPS","particle_endVS","particle_halflambertPS","particle_initVS","particle_lambertPS","particle_lightingPS","particle_localShiftVS","particle_meshVS","particle_normalVS","particle_normalMapPS","particle_pointAlongVS","particle_softPS","particle_softVS","particle_stretchVS","particle_TBNVS","particle_wrapVS","reflDirPS","reflDirAnisoPS","reflectionCCPS","reflectionCubePS","reflectionEnvHQPS","reflectionEnvPS","reflectionSpherePS","reflectionSheenPS","refractionCubePS","refractionDynamicPS","reprojectPS","sampleCatmullRomPS","screenDepthPS","shadowCascadesPS","shadowEVSMPS","shadowEVSMnPS","shadowPCSSPS","shadowSampleCoordPS","shadowStandardPS","shadowStandardGL2PS","shadowVSM8PS","shadowVSM_commonPS","skinBatchConstVS","skinBatchTexVS","skinConstVS","skinTexVS","skyboxEnvPS","skyboxHDRPS","skyboxVS","specularPS","sphericalPS","specularityFactorPS","spotPS","startPS","startVS","startNineSlicedPS","startNineSlicedTiledPS","storeEVSMPS","tangentBinormalVS","TBNPS","TBNderivativePS","TBNfastPS","TBNObjectSpacePS","textureSamplePS","thicknessPS","tonemappingAcesPS","tonemappingAces2PS","tonemappingFilmicPS","tonemappingHejlPS","tonemappingLinearPS","tonemappingNeutralPS","tonemappingNonePS","transformVS","transformDeclVS","transmissionPS","twoSidedLightingPS","uv0VS","uv1VS","viewDirPS","viewNormalVS","shaderChunks","programLibraryDeviceCache","getProgramLibrary","library","setProgramLibrary","ShaderGenerator","skinCode","chunks","fogCode","gammaCode","tonemapCode","_chunks$tonemappingFi","_chunks$tonemappingLi","_chunks$tonemappingHe","_chunks$tonemappingAc","_chunks$tonemappingAc2","_chunks$tonemappingNe","_chunks$tonemapingNon","tonemapingNonePS","vsName","fsName","shaderDefinitionOptions","createShaderFromCode","fsCode","uniqueName","programLibrary","getCachedShader","setCachedShader","ShaderGeneratorPassThrough","createShaderDefinition","processShader","_shaderDefinition$nam","materialGenerator","libraryModuleName","register","variant","getProgram","unregister","_quadPrimitive","_tempViewport","_tempScissor","QuadRender","_this$uniformBuffer","_this$bindGroup","_scissor","_bindGroup$defaultUni","ubFormat","RenderPassQuad","quad","scissorRect","_tempRect","drawQuadWithShader","drawTexture","shaderPassDeviceCache","ShaderPassInfo","buildShaderDefines","isShadow","isForward","define1","define2","shaderDefines","ShaderPass","passesNamed","nextIndex","passesIndexed","getByIndex","getByName","vShader","fShader$1","ShaderGeneratorBasic","fog","alphaTest","vertexColors","diffuseMap","skin","screenSpace","useInstancing","useMorphPosition","useMorphNormal","useMorphTextureBased","pass","createAttributesDefinition","definitionOptions","createVertexDefinition","shaderPassInfo","createFragmentDefinition","basic","defaultMaterialDeviceCache","getDefaultMaterial","material","setDefaultMaterial","blendModes","id$3","Material","_depthState","slopeDepthBias","_blendState","_shader","transparent","_updateTransparency","meshInstances","blendType","blendMode","_updateMeshInstanceKeys","depthTest","depthWrite","_source$stencilFront","cull","updateUniforms","scene","getShaderVariant","objDefs","unused","sortedLights","clearParameters","getParameters","clearVariants","variants","clearShaders","uniformObject","setParameters","paramName","parameter","meshInstance","_material","mesh","defaultMaterial","addMeshInstanceRef","removeMeshInstanceRef","userId","_shaderVersion","_scene","BasicMaterial","colorMap","colorUniform","Batch","layers","removeFromLayers","addToLayers","layer","getLayerById","addMeshInstances","removeMeshInstances","updateBoundingBox","origMeshInstances","_aabbVer","dynamic","batchGroupId","BatchGroup","maxAabbSize","_ui","_sprite","_obj","model","sprite","MODEL","ELEMENT","SPRITE","RENDER","_invMatrix","SkinInstance","rootBone","_rootBone","numBones","numPixels","boneTexture","boneTextureSize","matrixPalette","entity","bones","boneNames","boneName","bone","findByName","initSkin","inverseBindPose","matrices","uploadBones","_updateMatrices","rootNode","skinUpdateIndex","_skinUpdateIndex","getWorldTransform","updateMatrices","_updateBeforeCull","updateMatrixPalette","mp","pe","SkinBatchInstance","nodes","RefCountedObject","incRefCount","_refCount","decRefCount","refCount","id$2","GeometryData","initDefaults","recreate","verticesUsage","indicesUsage","maxVertices","maxIndices","indexCount","vertexStreamsUpdated","indexStreamUpdated","vertexStreamDictionary","_changeVertexCount","DEFAULT_COMPONENTS_POSITION","DEFAULT_COMPONENTS_NORMAL","DEFAULT_COMPONENTS_UV","DEFAULT_COMPONENTS_COLORS","GeometryVertexStream","componentCount","dataTypeNormalize","Mesh","fromGeometry","geometry","normals","tangents","colors","uvs","uvs1","blendIndices","blendWeights","setPositions","setNormals","setVertexStream","setColors32","setUvs","setIndices","morph","_morph","_destroyIndexBuffer","_geometryData","_initBoneAabbs","morphTargets","boneAabb","boneUsed","boneMin","boneMax","maxMorphX","maxMorphY","maxMorphZ","iterator","posElement","weightsElement","indicesElement","k","boneWeight","boneIndex","minMorphX","minMorphY","minMorphZ","deltaPositions","dz","positionElement","_initGeometryData","verticesDynamic","indicesDynamic","getVertexStream","done","stream","setColors","getPositions","getNormals","getUvs","getColors","getIndices","streamIndices","il","primitiveType","destroyVB","destroyIB","_updateVertexBuffer","_updateIndexBuffer","updateRenderStates","_buildVertexFormat","vertexDesc","allocateVertexCount","_storageVertex","createFormat","_storageIndex","srcIndices","prepareRenderState","renderStyle","generateWireframe","offsets","seen","i1","i2","wireBuffer","dstIndices","storageIndex","storageVertex","scaleCompensatePosTransform","scaleCompensatePos","scaleCompensateRot","scaleCompensateRot2","scaleCompensateScale","scaleCompensateScaleForParent","tmpMat4","tmpQuat","position$1","invParentWtm$1","rotation","invParentRot","createTest","Function","node","findNode","children","_children","GraphNode","_up","forward","_forward","normalMatrix","normalMat","_normalMatrix","_dirtyNormal","_this$_parent","_notifyHierarchyStateChanged","_enabledInHierarchy","root","graphDepth","_graphDepth","_onHierarchyStateChanged","_frozen","_unfreezeParentToRoot","_cloneInternal","_labels","localPosition","localRotation","localScale","localEulerAngles","eulerAngles","localTransform","_dirtyLocal","_dirtyWorld","scaleCompensation","child","findOne","findByTag","queryNode","checkNode","findByPath","imax","thisArg","isDescendantOf","isAncestorOf","getLocalEulerAngles","getLocalPosition","getLocalRotation","getLocalScale","getLocalTransform","getRotation","_scale","_sync","worldScaleSign","_worldScaleSign","_this$_parent2","removeChild","reparent","insertChild","addChild","setLocalEulerAngles","_dirtifyLocal","setLocalPosition","setLocalRotation","setLocalScale","_dirtifyWorld","_dirtifyWorldInternal","setRotation","parentRot","setPositionAndRotation","parentWtm","setEulerAngles","_prepareInsertChild","_onInsertChild","addChildAndSaveTransform","wPos","wRot","_fireOnHierarchy","nameHierarchy","enabledInHierarchy","_updateGraphDepth","parentWorldScale","parentToUseScaleFrom","tmatrix","syncHierarchy","lookAt","ux","uy","uz","translate","translateLocal","rot","rotateLocal","RefCountedCache","object","incRef","decRef","LightmapCache","id$1","_tmpAabb","_tempBoneAabb","_tempSphere","_meshSet","InstancingData","numObjects","ShaderInstance","getBindGroup","group","_group$defaultUniform","ShaderCacheEntry","shaderInstances","MeshInstance","_renderStyle","_mesh","_updateAabb","_updateAabbFunc","localAabb","_customAabb","toWorldSpace","skinInstance","_morphInstance","_targets","_aabbMeshVer","morphAabb","_shaderCache","_shaderCache$i","getShaderInstance","shaderPass","lightHash","shaderInstance","passEntry","mat","shaderDefs","_shaderDefs","variantKey","_this$_mesh$vertexBuf","prevMat","_layer","_updateShaderDefs","calculateSortDistance","_calculateSortDistance","receiveShadow","_receiveShadow","_skinInstance","_setupSkinUpdate","morphInstance","_this$_morphInstance","useTextureMorph","morphPositions","morphNormals","_screenSpace","toggles","instancingCount","instancingData","_this$_skinInstance","_this$morphInstance","setRealtimeLightmap","lightmapParamNames","_prepareRenderStyleForArray","_isVisible","camera","visible","isVisibleFunc","frustum","setInstancing","ensureMaterial","passFlags","old","passFlag","setLightmapped","setCustomAabb","castShadow","pick","temp","gsplatInstance","drawOrder","visibleThisFrame","flipFacesFactor","paramsIdentical","equalParamSets","params1","params2","_triFanIndices","_triStripIndices","mat3","getScaleSign","mi","BatchManager","_batchGroups","_batchList","_dirtyGroups","addGroup","_batchGroupCounter","removeGroup","newBatchList","destroyBatch","_removeModelsFromBatchGroup","markGroupDirty","getGroupByName","groups","getBatches","batch","groupId","_extractRender","groupMeshInstances","_extractModel","removeModelFromLayers","_extractElement","valid","_text","_model","_image","_renderable","unmaskMeshInstance","_dirtifyMask","_onPrerender","_collectAndRemoveMeshInstances","groupIds","_meshInstance","_renderMode","_batchGroup","newDirtyGroups","lists","groupData","prepare","POSITIVE_INFINITY","translucent","halfMaxAabbSize","maxInstanceCount","maxNumVertices","testAabb","skipTranslucentAabb","sf","meshInstancesLeftA","meshInstancesLeftB","skipMesh","defs","vertCount","vertexFormatBatchingHash","collectBatchedMeshData","streams","batchNumVerts","batchNumIndices","elems","_init","vertexFormats","batchData","indexBase","indexData","verticesOffset","indexOffset","transform","indexArrayType","typeArrayType","elementByteSize","totalComponents","m2","m4","m5","m6","m8","m9","m13","m14","m3","m7","srcFormat","batchGroup","updateAll","clonedMeshInstances","batch2","_colorUniformNames","RenderPassColorGrab","releaseRenderTarget","colorRenderTarget","shouldReallocate","targetRT","sourceFormat","targetFormat","allocateRenderTarget","sourceRenderTarget","_sourceRt$colorBuffer","sourceRt","copyTexImage2D","_depthUniformNames$1","RenderPassDepthGrab","depthRenderTarget","isDepth","_camera$renderTarget","_camera$renderTarget$","_camera$renderTarget2","_camera$renderTarget3","destinationRt","useDepthBuffer","numSamples","webgl1DepthClearColor","tempMeshInstances$2","lights$1","_depthUniformNames","RenderPassDepth","setupRenderTarget","renderer","layerList","subLayerEnabled","isTransparent","subLayerList","camerasSet","culledInstances","getCulledInstances","opaque","_meshInstance$materia","setCameraUniforms","renderForward","_deviceCoord","_halfSize","_point$1","_invViewProjMat","_frustumPoints","Camera","_this$renderPassColor","_this$renderPassDepth","renderPassColorGrab","renderPassDepthGrab","renderPasses","_storeShaderMatrices","viewProjMat","jitterX","jitterY","_shaderMatricesVersion","_this$_viewProjCurren","_this$_viewProjCurren2","_viewProjPrevious","_viewProjCurrent","_viewProjInverse","_jitters","_scissorRectClear","_rect","aspectRatio","newValue","_aspectRatio","_projMatDirty","_this$xr","active","_xrProperties","aspectRatioMode","_aspectRatioMode","calculateProjection","_calculateProjection","calculateTransform","_calculateTransform","_clearColor","clearColorBuffer","_clearColorBuffer","_clearDepth","clearDepthBuffer","_clearDepthBuffer","_clearStencil","clearStencilBuffer","_clearStencilBuffer","cullFaces","_cullFaces","farClip","_farClip","_this$xr2","flipFaces","_flipFaces","_fov","_this$xr3","frustumCulling","_frustumCulling","horizontalFov","_horizontalFov","_this$xr4","_layers","_layersSet","layersSet","nearClip","_nearClip","_this$xr5","_node","orthoHeight","_orthoHeight","_projection","projectionMatrix","_evaluateProjectionMatrix","_projMat","_renderTarget","_scissorRect","viewMatrix","_viewMatDirty","wtm","_viewMat","aperture","_aperture","sensitivity","_sensitivity","shutter","_shutter","_xr","jitter","_enableRenderPassColorGrab","_this$renderPassColor2","_enableRenderPassDepthGrab","_this$renderPassDepth2","_updateViewProjMat","_viewProjMatDirty","_viewProjMat","worldToScreen","worldCoord","cw","screenCoord","screenToWorld","range","invView","cameraPos","_projMatSkybox","getProjectionMatrixSkybox","getExposure","ev100","getScreenSize","viewAngle","sphereViewHeight","screenViewHeight","getFrustumCorners","points","setXrProperties","properties","LitShaderOptions","separateAmbient","nineSlicedMode","clusteredLightingEnabled","clusteredLightingCookiesEnabled","clusteredLightingShadowsEnabled","clusteredLightingShadowType","clusteredLightingAreaLightsEnabled","lightMapEnabled","dirLightMapEnabled","useHeights","useNormals","useClearCoatNormals","useAo","diffuseMapEnabled","useAmbientTint","customFragmentShader","pixelSnap","shadingModel","ambientSH","fastTbn","twoSidedLighting","occludeDirect","occludeSpecular","occludeSpecularFloat","useMsdf","msdfTextAttribute","opacityFadesSpecular","opacityDither","opacityShadowDither","cubeMapProjection","conserveEnergy","useSpecular","useSpecularityFactor","enableGGXSpecular","fresnelModel","useRefraction","useClearCoat","useSheen","useIridescence","useMetalness","useDynamicRefraction","dispersion","gamma","toneMap","fixSeams","reflectionSource","reflectionEncoding","reflectionCubemapEncoding","ambientSource","ambientEncoding","skyboxIntensity","useCubeMapRotation","lightMapWithoutAmbient","lights","noShadow","lightMaskDynamic","userAttributes","LitMaterialOptions","usedUvs","shaderChunk","litOptions","LitMaterialOptionsBuilder","updateSharedOptions","updateMaterialOptions","updateEnvOptions","updateLightingOptions","useLighting","lighting","cookiesEnabled","shadowsEnabled","shadowType","areaLightsEnabled","occludeSpecularIntensity","hasSpecular","hasSpecularityFactor","ggxSpecular","hasRefraction","hasClearCoat","hasSheen","hasIrridescence","hasMetalness","dynamicRefraction","hasLighting","dirLightMap","hasHeights","hasNormals","hasClearCoatNormals","hasAo","hasDiffuseMap","useFog","useGammaTonemap","gammaCorrection","toneMapping","useSkybox","envAtlas","skybox","hasSkybox","_skyboxRotationShaderInclude","lightsFiltered","collectLights","lType","light","ChunkBuilder","chunk","prepend","decodeTable","encodeTable","ChunkUtils","decodeFunc","encodeFunc","_viewportMatrix","LightCamera","lightType","pointLightRotations","evalSpotCookieMatrix","cookieCamera","_spotCookieCamera","_outerConeAngle","cookieNode","cookieMatrix","rectViewport","atlasViewport","epsilon$1","tempVec3$1","tempAreaLightSizes","areaHalfAxisWidth","areaHalfAxisHeight","TextureIndex8","FLAGS","COLOR_A","COLOR_B","SPOT_ANGLES","SHADOW_BIAS","COOKIE_A","COOKIE_B","COUNT_ALWAYS","POSITION_X","POSITION_Y","POSITION_Z","RANGE","SPOT_DIRECTION_X","SPOT_DIRECTION_Y","SPOT_DIRECTION_Z","PROJ_MAT_00","ATLAS_VIEWPORT_A","PROJ_MAT_01","ATLAS_VIEWPORT_B","PROJ_MAT_02","PROJ_MAT_03","PROJ_MAT_10","PROJ_MAT_11","PROJ_MAT_12","PROJ_MAT_13","PROJ_MAT_20","PROJ_MAT_21","PROJ_MAT_22","PROJ_MAT_23","PROJ_MAT_30","PROJ_MAT_31","PROJ_MAT_32","PROJ_MAT_33","AREA_DATA_WIDTH_X","AREA_DATA_WIDTH_Y","AREA_DATA_WIDTH_Z","AREA_DATA_HEIGHT_X","AREA_DATA_HEIGHT_Y","AREA_DATA_HEIGHT_Z","COUNT","TextureIndexFloat","POSITION_RANGE","SPOT_DIRECTION","PROJ_MAT_0","ATLAS_VIEWPORT","PROJ_MAT_1","PROJ_MAT_2","PROJ_MAT_3","AREA_DATA_WIDTH","AREA_DATA_HEIGHT","FORMAT_FLOAT","FORMAT_8BIT","shaderDefinesDeviceCache","LightsBuffer","getLightTextureFormat","getShaderDefines","prefix","floatOffset","lightTextureFormat","clusterTextureFormat","lightsTexture8","lightsTextureFloat","setCompressionRanges","maxAttenuation","maxColorValue","invMaxColorValue","invMaxAttenuation","setBounds","delta","boundsMin","boundsDelta","uploadTextures","lightsFloat","lights8","_lightsTexture8Id","_lightsTextureFloatId","_lightsTextureInvSizeId","_lightsTextureInvSizeData","getSpotDirection","spot","getLightAreaSizes","addLightDataFlags","data8","isSpot","castShadows","shadowIntensity","_shape","_falloffMode","addLightDataColor","isCookie","_linearFinalColor","_finalColor","isDynamic","isLightmapped","addLightDataSpotAngles","_innerConeAngleCos","_outerConeAngleCos","addLightDataShadowBias","lightRenderData","getRenderData","biases","_getUniformBiasValues","bias","normalBias","addLightDataPositionRange","pos","normPos","attenuationEnd","addLightDataSpotDirection","addLightDataLightProjMatrix","lightProjectionMatrix","matData","addLightDataCookies","isRgb","_cookieChannel","cookieIntensity","addLightAtlasViewport","addLightAreaSizes","areaSizes","addLightData","lightIndex","hasAtlasViewport","atlasViewportAllocated","_cookie","isArea","shape","shadowMatrix","data8Start","dataFloat","dataFloatStart","maxLights","pixelsPerLight8","pixelsPerLightFloat","Uint8ClampedArray","builtinAttributes","builtinVaryings","vVertexColor","vPositionW","vNormalV","vNormalW","vTangentW","vBinormalW","vObjectSpaceUpW","vUv0","vUv1","LitShader","_vsAddBaseCode","_vsAddTransformCode","_setMapTransform","codes","uv","checkId","varName","_fsGetBaseCode","_fsGetStartCode","_getLightSourceShapeString","generateVertexShader","useUv","useUnmodifiedUv","mapTransforms","codeBody","instance_line1","instance_line2","instance_line3","instance_line4","needsNormal","maxUvSets","mapTransform","vertex_outlineParameters","vertex_shadowParameters","morph_vertex_id","morphIdType","morph_pos0","morph_pos1","morph_pos2","morph_pos3","morph_nrm0","morph_nrm1","morph_nrm2","morph_nrm3","morph_pos4","morph_pos5","morph_pos6","morph_pos7","morph_nrm4","morph_nrm5","morph_nrm6","morph_nrm7","varyingDefines","shaderPassDefines","_fsGetBeginCode","_fsGetPickPassCode","frontendDecl","frontendCode","frontendFunc","_fsGetDepthPassCode","_fsGetPrePassVelocityCode","_fsGetShadowPassCode","mayPackDepth","mustPackDepth","usePackedDepth","isVsm","applySlopeScaleBias","usePerspectiveDepth","hasModifiedDepth","exportR32","_fsGetLitPassCode","decl","backend","reflections","shadowTypeUsed","numShadowLights","shadowedDirectionalLightUsed","useVsm","usePcss","hasAreaLights","areaLutsPrecision","lightShape","_shadowType","_isPcf","_isVsm","_cookieTransform","hasTBN","lightingUv","useOldAmbient","addAmbient","hasPointLights","usesLinearFalloff","usesInvSquaredFalloff","usesSpot","usesCookie","usesCookieNow","shapeString","_cookieFalloff","pcssShadows","vsmShadows","pcfShadows","shadowReadMode","evsmExp","_normalOffsetBias","coordCode","numCascades","shadowCoordArgs","penumbraSizeArg","affectSpecularity","calcFresnel","structCode","backendCode","mergedCode","generateFragmentShader","_this$handleCompatibi","shadowPass","handleCompatibility","getDefinition","tag","userChunks","chunkName","needsSceneColor","needsScreenSize","needsTransforms","LitOptionsUtils","generateChunksKey","generateLightsKey","_options$chunks","dummyUvs","ShaderGeneratorLit","dummy","litShader","usedUvSets","lit","LitMaterial","tempVec3","tempMin3","tempMax3","tempBox","ClusterLight","WorldClusters","maxCellLightCount","_maxCellLightCount","_cellsDirty","cells","_cells","_cellsLimit","lightsBuffer","releaseClusterTexture","clusterTexture","registerUniforms","_clusterSkipId","_clusterMaxCellsId","_clusterWorldTextureId","_clusterTextureSizeId","_clusterTextureSizeData","_clusterBoundsMinId","_clusterBoundsMinData","_clusterBoundsDeltaId","_clusterBoundsDeltaData","_clusterCellsCountByBoundsSizeId","_clusterCellsCountByBoundsSizeData","_clusterCellsDotId","_clusterCellsDotData","_clusterCellsMaxId","_clusterCellsMaxData","_clusterCompressionLimit0Id","_clusterCompressionLimit0Data","updateParams","lightingParams","maxLightsPerCell","updateCells","numCells","totalPixels","clusters","_usedLights","_maxAttenuation","_maxColorValue","evalLightCellMinMax","clusteredLight","usedLights","runtimeLight","zeroAngleSpotlight","getBoundingBox","evaluateBounds","boundsMax","evaluateCompressionLimits","updateClusters","fill","divX","divZ","limit","pixelsPerCellCount","xStart","xEnd","yStart","yEnd","zStart","zEnd","clusterIndex","activate","reportCount","ShadowMap","renderTargets","getShadowFormat","getShadowFiltering","shadowMap","createCubemap","_shadowResolution","create2dMap","createAtlas","resolution","cached","_tempArray","_tempArray2","_viewport$3","Slot","used","lightId","LightTextureAtlas","destroyShadowAtlas","destroyCookieAtlas","_this$shadowAtlas","shadowAtlas","_this$cookieAtlas","_this$cookieRenderTar","cookieAtlas","cookieRenderTarget","allocateShadowAtlas","scissorOffset","shadowAtlasResolution","scissorVec","allocateCookieAtlas","allocateUniforms","_shadowAtlasTextureId","_shadowAtlasParamsId","_shadowAtlasParams","_cookieAtlasTextureId","isShadowFilterPcf","isDepthShadow","shadowBuffer","shadowEdgePixels","subdivide","numLights","atlasSplit","gridSize","arraysEqual","every","slots","splitCount","invSize","nextLevelSplit","invSizeNext","rectNext","localLights","needsShadowAtlas","needsCookieAtlas","processLights","lightShadow","lightCookie","cookie","maxScreenSize","cookieAtlasResolution","setupSlot","faceCount","numShadowFaces","smallSize","cubeSlotsOffsets","shadowViewport","shadowScissor","assignSlot","slotIndex","slotReassigned","atlasSlotUpdated","atlasVersion","atlasSlotIndex","assignCount","_shadowMap","previousSlot","_previousSlot","usedCount","lightCubeDir","LightCube","ambientLight","weight","_direction","_intensity","lightColor","_color","ShadowMapCache","shadowMaps","isCubeMap","RenderPassShadowLocalNonClustered","shadowRenderer","renderFace","applyVsm","renderVsm","shadowCamera","prepareFace","setupRenderPass","ShadowRendererLocal","comp","casters","isClustered","shadowCam","depthRangeCompensation","shadowCamNode","lightNode","tileSize","lightTextureAtlas","texelSize","filterSize","atan","updateCameraFrustum","cullShadowCasters","visibleCasters","prepareLights","shadowLights","needsShadowRendering","buildNonClusteredRenderPasses","frameGraph","addRenderPass","RenderPassShadowDirectional","allCascadesRendering","shadowUpdateOverrides","visibleSceneAabb","shadowCamView$1","aabbPoints","_depthRange","getDepthRange","cameraViewMatrix","aabbMin","aabbMax","ShadowRendererDirectional","nearDist","generateSplitDistances","shadowDistance","cascade","cascades","frustumNearDist","_shadowCascadeDistances","frustumFarDist","frustumPoints","cameraWorldMat","dist","lightDir","sizeRatio","scaledUp","scaledRight","scaledDir","emptyAabb","depthRange","projectionCompensation","farDist","fraction","linearDist","logDist","cascadeDistribution","getLightRenderPass","gauss","sigma","exp","gaussWeights","kernelSize","halfWidth","sum","tempSet$1","shadowCamView","shadowCamViewProj","pixelOffset","blurScissorRect","viewportMatrix","ShadowRenderer","createShadowCamera","setShadowCameraSettings","hwPcf","_cullShadowCastersInternal","_lightsSet","shadowCasters","sortCompareDepth","setupRenderState","polygonOffsetId","shadowBias","gpuOrGl2","useShadowSampler","blendStateNoWrite","blendStateWrite","shadowDepthState","dispatchUniforms","dispatchViewPos","shadowMapLightRadiusId","_shadowMatrixPalette","getShadowPass","_this$shadowPassCache","shadowPassInfo","shadowPassCache","shadowPassName","submitCasters","setBaseConstants","setSkinning","setupCullMode","shadowShader","setVertexBuffers","setMorphing","setupMeshUniformBuffers","style","drawInstance","_shadowDrawCalls","needs","shadowUpdateMode","_shadowMapUpdates","getLightRenderData","clearRenderTarget","renderTargetIndex","setupViewUniformBuffers","viewBindGroups","setupViewport","clearView","_vsmBlurSize","applyVsmBlur","getVsmBlurShader","isVsm8","blurMode","blurShader","blurPackedVsmShader","blurVsmShader","blurVsmWeights","blurVS","blurFS","blurPackedVsmShaderCode","blurVsmShaderCode","blurShaderName","origShadowMap","tempShadowMap","shadowMapCache","tempRt","vsmBlurMode","sourceId","pixelOffsetId","weightId","initViewBindGroupFormat","packed","tempClusterArray","WorldClustersAllocator","_empty","_allocated","cluster","empty","_clusters","passCount","renderActions","ra","lightClusters","hasClusteredLights","getLightIdHash","existingRenderAction","_tempClusterArray$pop","renderAction","clusteredLightsSet","textureBlitVertexShader$1","textureBlitFragmentShader$1","textureCubeBlitFragmentShader","_viewport$2","_invViewProjMatrices","RenderPassCookieRenderer","_this$_quadRenderer2D","_this$_quadRendererCu","_quadRenderer2D","_quadRendererCube","filteredLights","_filteredLights","initInvViewProjMatrices","projMat","viewMat","quadRenderer2D","quadRendererCube","renderTargetWidth","_cubeSlotsOffsets","blitTextureId","invViewProjId","RenderPassShadowLocalClustered","shadowRendererLocal","RenderPassUpdateClustered","cookiesRenderPass","shadowRenderPass","worldClustersAllocator","base64String","initData","binaryString","atob","blueNoiseData","BlueNoise","_next","seed","vec4","namePrefix","deviceCacheBlueNoise","getBlueNoiseTexture","viewInvMat","viewMat3","tempSphere$1","_flipYMat","_tempLightSet","_tempLayerSet","_fixProjRangeMat","_haltonSequence","_tempProjMat0","_tempProjMat1","_tempProjMat2","_tempProjMat3","_tempProjMat4","_tempProjMat5","_tempSet","_tempMeshInstances","_tempMeshInstancesSkinned","Renderer","_shadowRendererLocal","_shadowRendererDirectional","_renderPassUpdateClustered","sortCompare","drawCallA","drawCallB","zdist","zdist2","sortCompareMesh","keyA","keyB","pixelWidth","pixelHeight","viewCount","session","_camera$_node","views","updateTransforms","projViewOffMat","projMatSkybox","targetWidth","targetHeight","blueNoiseJitterVersion","blueNoise","blueNoiseJitterVec","jitterVec","blueNoiseJitterData","blueNoiseJitterId","projId","projSkyboxId","viewInvId","viewId","viewId3","viewProjId","flipYId","tbnBasis","nearClipId","farClipId","cameraParams","cameraParamsId","exposureId","physicalUnits","exposure","setCamera","forceWrite","setDepthWrite","_clearOptions","flipFactor","drawCall","twoSidedLightingNegScaleFactorId","viewOffMat","opacityMap","opacityMapId","alphaTestId","updateCpuSkinMatrices","drawCalls","drawCallsCount","si","updateGpuSkinMatrices","updateMorphing","morphInst","updateGSplats","_drawCall$gsplatInsta","gpuUpdate","vertexBufferIds","morphPositionTex","texturePositions","morphNormalTex","textureNormals","morphTexParams","_textureParams","_activeVertexBuffers","morphWeightsA","_shaderMorphWeightsA","morphWeightsB","_shaderMorphWeightsB","_skinDrawCalls","boneTextureId","boneTextureSizeId","poseMatrixId","vp","viewPos","viewPosId","bg","viewBindGroup","modelMatrixId","normalMatrixId","meshBindGroup","modelMatrix","_instancedDrawCalls","drawInstance2","doCull","bucket","processingMeshInstances","cameras","stats","_stats","_lights","cullLights","getBoundingSphere","usePhysicalUnits","screenSize","cullShadowmaps","cameraDirShadowLights","cameraComponent","lightList","cameraLayers","cameraLayer","layerDirLights","splitLights","_lightList","cullComposition","numCameras","currentRenderTarget","cameraChanged","_camerasRendered","layerIds","onPreCull","camerasMap","onPostCull","updateLightTextureAtlas","updateShaders","onlyLitShaders","emitter","updateFrameUniforms","blueNoiseTextureId","beginFrame","layerCount","meshInst","lightCount","updateLayerComposition","_postRenderCounter","shaderVersion","_preRenderCalledForCameras","_postRenderCalledForCameras","_postRenderCounterMax","_update","clustersDebugRendered","dirLightShadows","_skinTime","_morphTime","_cullTime","_shadowMapTime","_lightClustersTime","_layerCompositionUpdateTime","_numDrawCallsCulled","_lightClusters","viewIndexId","lightCube","constantLightCube","RenderAction","setupClears","triggerPostprocess","firstCameraUse","lastCameraUse","useCameraPasses","RenderPassForward","addRenderAction","addLayer","autoClears","firstRa","addLayers","composition","startIndex","firstLayerClears","lastLayerId","lastLayerIsTransparent","renderedbyCamera","updateDirectionalShadows","cameraComp","shadowDirLights","updateClears","noDepthClear","onPreRender","layerComposition","isEnabled","renderRenderAction","onPostRender","firstRenderAction","cameraPass","onPreRenderOpaque","onPreRenderTransparent","_camera$camera$shader","_camera$camera$shader2","renderForwardLayer","onPostRenderOpaque","onPostRenderTransparent","RenderPassPostprocessing","onPostprocessing","_noLights","_drawCallList","isNewMaterial","lightMaskChanged","vogelDiskPrecalculationSamples","vogelSpherePrecalculationSamples","ForwardRenderer","dispatchGlobalLights","ambientColor","ambientLuminance","ambientId","skyboxIntensityId","skyboxLuminance","cubeMapRotationMatrixId","_skyboxRotationMat3","_resolveLight","lightColorId","lightDirId","lightShadowMapId","lightShadowMatrixId","lightShadowParamsId","lightShadowIntensity","lightShadowSearchAreaId","lightRadiusId","lightPos","lightPosId","lightWidth","lightWidthId","lightHeight","lightHeightId","lightInAngleId","lightOutAngleId","lightCookieId","lightCookieIntId","lightCookieMatrixId","lightCookieOffsetId","lightCameraParamsId","shadowMatrixPaletteId","shadowCascadeDistancesId","shadowCascadeCountId","setLTCDirectionalLight","cnt","campos","hWidth","hHeight","dispatchDirectLights","dirs","directional","shadowRT","pixelsPerMeter","penumbraSize","_shadowCameraParams","_shadowRenderParams","setLTCPositionalLight","dispatchOmniLight","omni","dispatchSpotLight","fovRatio","_cookieTransformUniform","_cookieOffsetUniform","_cookieOffset","dispatchLocalLights","usedDirLights","omnis","numOmnis","spts","numSpts","renderForwardPrepareMaterials","_layer$getLightHash","addCall","getLightHash","prevMaterial","prevObjDefs","prevLightMask","lightMask","_materialSwitches","renderForwardInternal","preparedCalls","drawCallback","preparedCallsCount","_drawCall$stencilFron","_drawCall$stencilBack","newMaterial","viewInvOffMat","positionData","_forwardDrawCalls","allDrawCalls","_options$clearColor","_options$clearDepth","_options$clearStencil","sortVisible","onPreRenderLayer","requiresLightCube","_options$splitLights","_options$lightCluster","debugLayer","_activeCamera","forwardDrawCalls","onDrawCall","setSceneConstants","fogColor","fogColorId","fogStartId","fogStart","fogEndId","fogEnd","fogDensityId","fogDensity","_screenSize","screenSizeId","pcssDiskSamplesId","pcssDiskSamples","pcssSphereSamplesId","pcssSphereSamples","buildFrameGraph","webgl1","newStart","_renderActions","depthPass","isDepthLayer","renderSceneColorMap","isGrabPass","renderSceneDepthMap","nextRenderAction","isNextLayerDepth","isNextLayerGrabPass","nextNeedDirShadows","isDepthOnly","addMainRenderPass","colorGrabPass","endIndex","_updateSkyMesh","_depthMapTime","_forwardTime","_sortTime","sortManual","sortMaterialMesh","sortBackToFront","sortFrontToBack","sortCallbacks","layerCounter","lightKeys","_tempMaterials","CulledInstances","Layer","_dirtyComposition","incrementCounter","decrementCounter","_clusteredLightsSet","_refCounter","skipShadowCasters","destMeshInstances","destMeshInstancesSet","meshInstancesSet","addShadowCasters","sceneShaderVer","removeShadowCasters","shadowCastersSet","clearMeshInstances","markLightsDirty","_lightHashDirty","_lightIdHashDirty","_splitLightsDirty","addLight","removeLight","clearLights","removeLayer","_splitLights","evaluateLightHash","directionalLights","useIds","isLocalLight","_lightHash","_lightIdHash","addCamera","removeCamera","clearCameras","_calculateSortDistances","camPos","camFwd","meshPos","tempx","tempy","tempz","instances","_visibleInstances","sortMode","transparentSortMode","opaqueSortMode","cameraNode","sortPos","sortDir","customCalculateSortValues","customSortCallback","_options$enabled","_options$opaqueSortMo","_options$transparentS","_options$shaderPass","WeakMap","layerReference","cmpPriority","priority","sortPriority","LayerComposition","destroyRenderActions","renderActionCount","addDummyRenderAction","cameraFirstRenderAction","cameraFirstRenderActionIndex","lastRenderAction","postProcessMarked","isLayerEnabled","disablePostEffectsLayer","postEffectsEnabled","propagateRenderTarget","_logRenderActions","getNextRenderAction","renderActionIndex","needsCameraClear","needsLayerClear","fromCamera","thisCamera","_isLayerAdded","layerIdMap","_isSublayerAdded","layerTransparentIndexMap","layerOpaqueIndexMap","_opaqueOrder","_transparentOrder","_updateLayerMaps","_updateOpaqueOrder","_updateTransparentOrder","pushOpaque","insertOpaque","removeOpaque","pushTransparent","insertTransparent","removeTransparent","getOpaqueIndex","_this$layerOpaqueInde","getTransparentIndex","_this$layerTransparen","layerNameMap","subLayerIndexMap","_this$layerIdMap$get","getLayerByName","_this$layerNameMap$ge","_sortLayersDescending","layersA","layersB","order","topLayerA","topLayerB","sortTransparentLayers","sortOpaqueLayers","tmpVec","tmpBiases","chanId","lightTypes","directionalCascades","LightRenderData","Light","_destroyShadowMap","releaseRenderData","_renderData","_shadowBias","_updateShadowBias","_mask","stype","_usePhysicalUnits","_updateFinalColor","layersDirty","_castShadows","bakeShadows","shadowResolution","vsmBlurSize","normalOffsetBias","falloffMode","innerConeAngle","_innerConeAngle","outerConeAngle","_updateOuterAngle","_penumbraSize","radAngle","_outerConeAngleSin","_affectSpecularity","luminance","_luminance","_cookieMatrix","_atlasViewport","cookieFalloff","cookieChannel","chr","addLen","cookieTransform","_cookieTransformSet","cookieOffset","_cookieOffsetSet","xformNew","rd","clusteredLighting","setColor","attenuationStart","vsmBias","getLightUnitConversion","outerAngle","innerAngle","falloffEnd","falloffStart","getColor","cosAngle","box","scl","finalColor","linearFinalColor","isStatic","bakeDir","bakeNumSamples","bakeArea","LightingParams","applySettings","_render$lightingShado","_render$lightingCooki","_render$lightingAreaL","_render$lightingShado2","_render$lightingCooki2","_render$lightingMaxLi","_render$lightingShado3","lightingShadowsEnabled","lightingCookiesEnabled","lightingAreaLightsEnabled","lightingShadowAtlasResolution","lightingCookieAtlasResolution","lightingMaxLightsPerCell","lightingShadowType","lightingCells","cell","_maxLightsPerCell","_cookieAtlasResolution","_maxTextureSize","_shadowAtlasResolution","_dirtyLightsFnc","_cookiesEnabled","_supportsAreaLights","_areaLightsEnabled","_shadowsEnabled","dirtyLightsFnc","textureMorphVertexShader","blendStateAdditive","MorphInstance","rtPositions","rtNormals","_getWeightIndex","_weightMap","getWeight","_weights","setWeight","_getFragmentShader","fragmentShader","_getShader","fs","_updateTextureRenderTarget","srcTextureName","submitBatch","blending","morphFactor","_shaderMorphWeights","_activeTargets","activeTarget","maxSubmitCount","zeroTextures","_updateTextureMorph","_updateVertexMorph","posIndex","nrmIndex","_vertexBufferPositions","_vertexBufferNormals","activeCount","absWeight","maxActiveTargets","defaultWeight","createRT","textureVar","_createTexture","_renderTextureFormat","morphTextureWidth","morphTextureHeight","Model","getGraph","graph","setGraph","getCameras","setCameras","getLights","setLights","getMaterials","materials","srcNodes","cloneNodes","_duplicate","newNode","cloneGraph","cloneMeshInstances","cloneSkinInstances","cloneMorphInstances","skinInstances","cloneSkinInstance","morphInstances","cloneMorphInstance","nodeIndex","cloneMeshInstance","skinInstanceIndex","morphInstanceIndex","_shadersVersion","_immutable","Morph","targetAabb","_morphPositions","_morphNormals","_useTextureMorph","_initTextureBased","_initVertexBuffers","_postInit","_findSparseSet","deltaArrays","ids","usedDataIndices","floatRounding","freeIndex","dataCount","vertexUsed","useUintIds","deltaInfos","deltaNormals","halfFloat","_textureFormat","textureData","dstIndex","_setTexture","formatDesc","_this$vertexBufferIds","_updateMorphFlags","preferHighPrecision","renderableHalf","renderableFloat","textureHalf","textureFloat","MorphTarget","_this$_vertexBufferPo","_this$_vertexBufferNo","_this$texturePosition","_this$textureNormals","_defaultWeight","preserveData","_createVertexBuffer","deltaPositionsType","deltaNormalsType","ShaderGeneratorParticle","_animTex","animTexLoop","executionDefine","useCpu","localSpace","animTex","soft","faceVS","customFace","pack8","wrap","alignToMotion","stretch","srgb","halflambert","particle","nonUniformScale","uniformScale","particleTexChannels$1","rotMat","rotMatInv","randomPosTformed","randomPos","rndFactor3Vec","particlePosPrev","velocityVec","localVelocityVec","velocityVec2","localVelocityVec2","radialVelocityVec","particlePos","particleFinalPos","moveDirVec","tmpVec3$1","frac","saturate$1","glMod","encodeFloatRGBA","encX","encY","encZ","encW","encodeFloatRG","ParticleCPUUpdater","calcSpawnPosition","particleTex","spawnMatrix","extentsInnerRatioUniform","emitterPos","_emitter","rX","rY","rZ","rW","numParticlesPot","emitterShape","edgeX","edgeY","edgeZ","sign","spawnBoundsSphereInnerRatio","emitterRadius","emitterRadiusInner","particleRate","rate","rate2","startSpawnTime","packX","worldBounds","worldBoundsSize","packY","packZ","packA","startAngle","startAngle2","rg0","ba0","rg1","ba1","maxNegLife","lifetime","numParticles","maxPosLife","rgba3","vbToSort","isOnStop","fullMat","posCam","vertSize","useMesh","cf","cc","rotSpeed","rotSpeed2","scale2","alpha2","radialSpeed","radialSpeed2","precision1","vbCPU","numParticleVerts","rndFactor","particleLifetime","life","nlife","alphaDiv","respawn","particleEnabled","qRotSpeed","qRotSpeed2","qScale","qScale2","qAlpha","qAlpha2","qRadialSpeed","qRadialSpeed2","qLocalVelocity","qLocalVelocity2","qVelocity","qVelocity2","initialVelocity","wrapBounds","particleDistance","vbOffset","quadX","quadY","quadZ","vbStride","vbOld","p2","spawnMatrix3","emitterMatrix3","emitterMatrix3Inv","ParticleGPUUpdater","_setInputBounds","inBoundsSizeUniform","prevWorldBoundsSize","constantInBoundsSize","inBoundsCenterUniform","prevWorldBoundsCenter","constantInBoundsCenter","randomize","frameRandomUniform","constantGraphSampleSize","constantGraphNumSamples","constantNumParticles","constantNumParticlesPot","constantInternalTex0","internalTex0","constantInternalTex1","internalTex1","constantInternalTex2","internalTex2","constantInternalTex3","internalTex3","emitterScale","worldBoundsMulUniform","worldBoundsMul","constantOutBoundsMul","worldBoundsAddUniform","worldBoundsAdd","constantOutBoundsAdd","maxVel","constantMaxVel","emitterMatrix","constantSpawnBounds","constantSpawnPosInnerRatio","constantSpawnBoundsSphere","constantSpawnBoundsSphereInnerRatio","constantInitialVelocity","emitterPosUniform","constantEmitterPos","constantFrameRandom","constantDelta","constantRate","constantRateDiv","constantStartAngle","constantStartAngle2","constantSeed","constantLifetime","emitterScaleUniform","constantEmitterScale","constantEmitterMatrix","constantEmitterMatrixInv","constantLocalVelocityDivMult","localVelocityUMax","constantVelocityDivMult","velocityUMax","constantRotSpeedDivMult","rotSpeedUMax","texIN","swapTex","particleTexOUT","particleTexIN","beenReset","particleTexStart","texOUT","constantParticleTexIN","rtParticleTexIN","rtParticleTexOUT","shaderParticleUpdateRespawn","shaderParticleUpdateNoRespawn","shaderParticleUpdateOnStop","gd","constantParticleTexOUT","constantFaceTangent","constantFaceBinorm","particleVerts","pixelData","mult8Bit","mipFilter","saturate","default0Curve","default1Curve","default0Curve3","default1Curve3","particleTexHeight","particleTexChannels","tmpVec3","setPropertyTarget","setPropertyOptions","setProperty","pName","defaultVal","pack3NFloats","packTextureXYZ_NXYZ","qXYZ","qXYZ2","packTextureRGBA","qRGB","qA","packTexture5Floats","qB","qC","qD","qE","packTexture2Floats","calcEndTime","interval","subGraph","A","B","maxUnsignedGraphValue","outUMax","chans","normalizeGraph","uMax","divGraphFrom2Curves","curve1","curve2","particleEmitterDeviceCache","ParticleEmitter","defaultParamTexture","centerPoint","dtex","xgrad","ygrad","onChangeCamera","regenShader","resetMaterial","calculateBoundsMad","calculateWorldBounds","recalculateLocalBounds","emitterExtents","prevEmitterExtents","prevEmitterRadius","calculateLocalBounds","nodeWT","worldBoundsNoTrail","localBounds","worldBoundsTrail","simTimeTotal","timeToSwitchBounds","resetWorldBounds","maxR","maxScale","stepWeight","wVels","lVels","accumX","accumY","accumZ","accumR","accumW","rebuild","spawnBounds","forceCpuParticles","_destroyResources","totalVertCount","rebuildGraphs","iSort","_gpuUpdater","emitterExtentsInner","_cpuUpdater","shaderCodeStart","shaderCodeRespawn","shaderCodeNoRespawn","shaderCodeOnStop","numParticleIndices","_allocate","wasVisible","_initializeTextures","resetTime","addTime","preWarm","prewarm","_isAnimated","animNumFrames","animTilesX","animTilesY","normalMap","localVelocityGraph","velocityGraph","qColor","colorGraph","rotationSpeedGraph","scaleGraph","alphaGraph","radialSpeedGraph","localVelocityGraph2","velocityGraph2","qColor2","colorGraph2","rotationSpeedGraph2","scaleGraph2","alphaGraph2","radialSpeedGraph2","colorUMax","scaleUMax","alphaUMax","radialSpeedUMax","qLocalVelocityDiv","qVelocityDiv","qColorDiv","qRotSpeedDiv","qScaleDiv","qAlphaDiv","qRadialSpeedDiv","umax","umax2","lumax","lumax2","rumax","rumax2","lmaxVel","maxRad","colorParam","programLib","hasNormal","normalOption","dev","inTools","halfLambert","depthSoftening","noFog","animLoop","animTilesParams","animParams","animIndexParams","wrapBoundsUniform","_compParticleFaceParams","tangent","binormal","particleNormal","emitterMat","psysVertCount","psysIndexCount","particleFormat","meshData","texCoordOffset","elem","vertID","vert","baseIndex","origLoop","lifetimeFraction","iterations","stepDelta","endTime","finishFrame","tilesParams","animStartFrame","animSpeed","animNumAnimations","animIndex","randomizeAnimIndex","onFinished","_addTimeTime","fixedTimeStep","maxSubSteps","simTime","mip2size","fShader","ShaderGeneratorSkybox","sharedKey","skymesh","aPosition","calculateNormals","triangleCount","p3","p1p2","p1p3","faceNormal","i3","nx","ny","nz","invLen","calculateTangents","v3","w1","w2","w3","sdir","tdir","tan1","tan2","x1","y1","z1","_t","_t2","area","t1","ndott","Geometry","primitiveUv1Padding$1","primitiveUv1PaddingScale$1","BoxGeometry","_opts$halfExtents","_opts$widthSegments","_opts$lengthSegments","_opts$heightSegments","_opts$yOffset","he","ws","widthSegments","ls","lengthSegments","hs","heightSegments","yOffset","minY","maxY","corners","faceAxes","faceNormals","sides","TOP","BOTTOM","vcounter","generateFace","side","uSegments","vSegments","SphereGeometry","_opts$radius","_opts$latitudeBands","_opts$longitudeBands","latitudeBands","longitudeBands","lat","theta","sinTheta","cosTheta","lon","phi","sinPhi","cosPhi","DomeGeometry","bottomLimit","curvatureRadius","curvatureRadiusSq","SkyGeometry","dome","infinite","geom","SkyMesh","skyLayer","skyboxMip","_skyboxMip","Sky","_render$skyType","_render$skyMeshPositi","_render$skyMeshRotati","_render$skyMeshScale","skyType","skyMeshPosition","skyMeshRotation","skyMeshScale","skyCenter","_center","updateSkyMesh","_getSkyboxTex","resetSkyMesh","skyMesh","_this$skyMesh","centerArray","projectedSkydomeCenterId","identityGraphNode","ImmediateBatch","addLines","destPos","destCol","col","addLinesArrays","visibleList","ImmediateBatches","getBatch","tempPoints","Immediate","createMaterial","materialDepth","_materialDepth","materialNoDepth","_materialNoDepth","batches","batchesMap","allBatches","getShader","getTextureShader","getUnfilterableTextureShader","getDepthTextureShader","getQuadMesh","quadMesh","drawMesh","graphNode","getGraphNode","layerMeshInstances","drawWireAlignedBox","mulPoint","drawWireSphere","numSegments","sin0","cos0","sin1","cos1","batchLayer","updatedLayers","textureShader","depthTextureShader","cubeLocalPos","cubeWorldPos","_goldenAngle","circlePoint","circlePointDeterministic","numPoints","spherePointDeterministic","radicalInverse","getProjectionName","packFloat32ToRGBA8","packSamples","hemisphereSamplePhong","dstVec","specularPower","hemisphereSampleLambert","hemisphereSampleGGX","D_GGX","NoH","linearRoughness","generatePhongSamples","H","generateLambertSamples","sourceTotalPixels","pixelsPerSample","pdf","requiredSamplesGGX","getRequiredSamplesGGX","table","generateGGXSamples","roughness","L","N","requiredSamples","createSamplesTex","packedSamples","SimpleCache","destroyContent","missFunc","samplesCache","deviceCache$1","getCachedTexture","getSamplesFnc","generateLambertSamplesTex","generatePhongSamplesTex","generateGGXSamplesTex","reprojectTexture","_options$seamPixels","_options$rect$z","_options$rect","_options$rect$w","_options$rect2","seamPixels","innerWidth","innerHeight","funcNames","distribution","processFunc","prefilterSamples","sourceFunc","targetFunc","shaderKey","toFixed","constantSource","constantParams","uvModParam","samplesTex","calcLevels","supportsFloat16","supportsFloat32","lightingSourcePixelFormat","lightingPixelFormat","EnvLighting","generateSkyboxCubemap","generateLightingSource","generateAtlas","numReflectionSamples","numAmbientSamples","generatePrefilteredAtlas","sources","legacyAmbient","Scene","defaultDrawLayer","ambientBakeNumSamples","_ambientBakeNumSamples","ambientBakeSpherePart","_ambientBakeSpherePart","_clusteredLightingEnabled","_envAtlas","_prefilteredCubemaps","_internalEnvAtlas","_resetSkyMesh","_fog","_gammaCorrection","prev","sky","_sky","_lightingParams","lightmapFilterRange","_lightmapFilterRange","lightmapFilterSmoothness","_lightmapFilterSmoothness","prefilteredCubemaps","cubemaps","complete","_skyboxCubeMap","_skyboxIntensity","_skyboxLuminance","skyboxRotation","_skyboxRotation","_skyboxRotationMat4","_toneMapping","drawLine","drawLines","drawLineArrays","settings","_render$skyboxIntensi","_render$skyboxLuminan","_render$skyboxMip","_render$clusteredLigh","physics","_gravity","gravity","global_ambient","fog_color","fog_start","fog_end","fog_density","gamma_correction","tonemapping","lightmapSizeMultiplier","lightmapMaxResolution","lightmapMode","setting","skyboxMapping","setSkybox","lightmapPixelFormat","lightmapHDR","ambientBake","ambientBakeOcclusionBrightness","ambientBakeOcclusionContrast","lightmapFilterEnabled","dynamicLights","bakedLights","updateShadersTime","EVENT_SETLAYERS","EVENT_SETSKYBOX","Skin","ibp","spriteNormals","spriteIndices","Sprite","frameKeys","_frameKeys","_atlas","_updatingProperties","_meshesDirty","_createMeshes","atlas","_onSetFrames","_onFrameChanged","_onFrameRemoved","pixelsPerUnit","_pixelsPerUnit","renderMode","meshes","_meshes","createMeshFunc","_create9SliceMesh","_createSimpleMesh","frame","frames","texWidth","texHeight","hp","pivot","lu","bv","ru","tv","frameKey","startUpdate","endUpdate","StandardMaterialOptions","forceUv1","ambientTint","diffuseTint","specularTint","metalnessTint","glossTint","emissiveTint","opacityTint","emissiveEncoding","lightMapEncoding","packedNormal","glossInvert","sheenGlossInvert","clearCoatGlossInvert","_matTex2D","buildPropertiesList","ShaderGeneratorStandard","props","optionsContextMin","propsMin","optionsContext","_getUvSourceExpression","transformPropName","uVPropName","transformId","uvChannel","isMainPass","heightMap","_addMapDef","_addMapDefs","float","_addMap","propName","mapPropName","identifierPropName","channelPropName","vertexColorChannelPropName","tintPropName","vertexColorPropName","detailModePropName","invertName","tintOption","vertexColorOption","textureOption","textureIdentifier","detailModeOption","subCode","samplerName","alias","linear","rgbe","isFloatTint","isVecTint","invertOption","_correctChannel","chan","isForwardPass","textureMapping","mname","cname","tname","uname","uvSet","clearCoatNormalMap","baseName","diffuseDetail","aoDetail","diffuseDetailEncoding","diffuseEncoding","sheenEncoding","useSpecularColor","specularEncoding","aoMap","aoVertexColor","lightMap","lightVertexColor","lightmapDir","lightmapChunkPropName","standard","notWhite","notBlack","StandardMaterialOptionsBuilder","updateMinRef","stdMat","_updateSharedOptions","_updateMinOptions","_updateUVOptions","updateRef","_updateEnvOptions","_updateMaterialOptions","_updateLightOptions","fromEntries","minimalOptions","hasVcolor","_mapXForms","uniqueTextureMap","_updateTexOptions","isOpacity","vname","vcname","iname","allow","mapId","_getMapTransformID","getUniform","isPrepass","_stdMat$diffuseMap","_stdMat$diffuseDetail","_stdMat$emissiveMap","_stdMat$lightMap","diffuseVertexColor","specularMap","sphereMap","cubeMap","specular","specularityFactor","clearCoat","useMetalnessSpecularColor","specularVertexColor","specularityFactorTint","specularityFactorMap","emissiveTintColor","emissiveMap","emissive","emissiveTintIntensity","emissiveIntensity","isPackedNormalMap","metalness","diffuseDetailMap","refractionTint","refraction","refractionIndexTint","refractionIndex","thicknessTint","thickness","aoMapUv","aoUvSet","normalDetail","diffuseDetailMode","aoDetailMode","clearCoatTint","clearCoatGloss","clearCoatGlossTint","iorTint","iridescenceTint","iridescence","sheenTint","sheen","sheenGlossTint","msdfMap","refractionMap","isPhong","usingSceneEnv","lightMapChannel","lightMapUv","lightMapTransform","xform","xforms","__adjustStandardMaterialParameterTypes","types","useGamma","aoIntensity","_tintProperties","__adjustStandardMaterialData","_textureParameter","vertexColor","standardMaterialParameterTypes","mappingFormat","_engine","ambient","diffuse","shininess","gloss","clearCoatBumpiness","sheenGloss","bumpiness","normalDetailMapBumpiness","heightMapFactor","alphaFade","opacity","reflectivity","attenuation","attenuationDistance","cubeMapProjectionBox","iridescenceThicknessTint","iridescenceThicknessMin","iridescenceThicknessMax","iridescenceRefractionIndex","standardMaterialTextureParameters","standardMaterialCubemapParameters","standardMaterialRemovedParameters","aoMapVertexColor","diffuseMapTint","diffuseMapVertexColor","emissiveMapTint","emissiveMapVertexColor","glossMapVertexColor","metalnessMapVertexColor","opacityMapVertexColor","specularAntialias","specularMapTint","specularMapVertexColor","useTonemap","_props","_uniforms","_params","StandardMaterial","_chunks","_uniformCache","_dirtyShader","_setParameter","_setParameters","_processParameters","paramsName","prevParams","_updateMap","_allocUniform","allocFunc","metalnessMap","sheenMap","sheenGlossMap","normalDetailMap","updateEnvUniforms","hasLocalEnvOverride","shaderOptBuilder","onUpdateShader","asset","_assetReferences","_unbind","_activeParams","_activeLightingParams","TEXTURE_PARAMETERS","CUBEMAP_PARAMETERS","defineUniform","getUniformFunc","definePropInternal","constructorFunc","setterFunc","getterFunc","defineValueProp","internalName","dirtyShaderFunc","oldValue","defaultValue","defineAggProp","defineProp","_defineTex2D","mapTiling","mapOffset","mapRotation","tiling","cr","uniform0","uniform1","_defineColor","_defineFloat","_defineObject","_defineFlag","_defineMaterialProps","bboxMin","minUniform","bboxMax","maxUniform","TextureAtlas","_texture","_frames","setFrame","border","removeFrame","Key","Node","_keys","Animation","getNode","_nodeDict","addNode","_nodes","InterpolatedKey","getTarget","_targetNode","setTarget","_written","_keyFrames","_quat","_pos","Skeleton","animation","_animation","_time","numNodes","_interpolatedKeys","nodeName","_currKeyIndices","updateGraph","looping","interpKey","_interpolatedKeyDict","foundKey","currKeyIndex","k1","k2","skel1","skel2","key1","key2","dstKey","addInterpolatedKeys","_viewport$1","PostEffect","inputTarget","outputTarget","drawQuad","needsDepthBuffer","quadVertexShader","RenderPassShaderQuad","_this$quadRender","_this$_shader","quadRender","createQuadShader","_this$shader","areaElement","texelCoordSolidAngle","_u","_v","invResolution","x0","y0","solidAngle","shFromCubemap","dontFlipX","cubeSize","img","targ","coef1","coef2","coef3","coef4","coef5","coef6","coef7","coef8","coef9","px","py","pz","accum","addr","weight1","weight2","weight3","weight4","weight5","primitiveUv1Padding","primitiveUv1PaddingScale","ConeBaseGeometry","baseRadius","peakRadius","capSegments","roundedCaps","bottomToTop","norm","third","fourth","capOffset","CapsuleGeometry","_opts$height","_opts$sides","ConeGeometry","_opts$baseRadius","_opts$peakRadius","_opts$capSegments","CylinderGeometry","PlaneGeometry","TorusGeometry","_opts$tubeRadius","_opts$ringRadius","_opts$sectorAngle","_opts$segments","rc","tubeRadius","ringRadius","sectorAngle","segments","ProgramLibrary","clearCache","generator","_generators","isRegistered","generateShaderDefinition","def","definitionsCache","_options$litOptions","_options$litOptions2","_def$name","lcopy","storeNewProgram","_precached","processedCache","userMaterialId","generationKeyString","generationKey","processingKeyString","processingKey","totalKey","processedShader","generatedShaderDef","passName","opt","defaultMat","_getDefaultStdMatOptions","_programsCollection","dumpPrograms","text","display","click","_isClearingCache","removeFromCache","cachedShader","_defaultStdMatOptionMin","_defaultStdMatOption","precompile","standardMaterial","bakeDirLmEndPS","bakeLmEndPS","dilatePS","bilateralDeNoisePS","shaderChunksLightmapper","mat4$1","quat$2","aabb2","debugColor","SH_C0$1","SplatIterator","gsplatData","getProp","cg","sigmoid","calcSplatMat","GSplatData","calcSplatAabb","elementName","_this$getElement","getElement","addProp","createIter","calcAabb","pred","mx","my","mz","Mx","My","Mz","numSplats","scaleVal","calcAabbExact","iter","getCenters","calcFocalPoint","renderWireframeBounds","worldMat","isCompressed","hasSHData","calcMortonOrder","calcMinMax","encodeMorton3","Part1By2","minX","maxX","minZ","maxZ","sizeX","sizeY","sizeZ","reorder","getStorage","returnStorage","property","reorderData","splatCoreVS$1","splatCoreFS$1","GSplatShaderGenerator","_options$defines$sort","_options$defines","vsHash","fsHash","dither","_options$defines2","optionDefines","vs","vertex_id_attrib","gsplat","splatMainVS$1","splatMainFS$1","createGSplatMaterial","_options$dither","ditherEnum","_options$vertex","_options$fragment","programOptions","getSHData","GSplat","_this$colorTexture","_this$transformATextu","_this$transformBTextu","_this$sh1to3Texture","_this$sh4to7Texture","_this$sh8to11Texture","_this$sh12to15Texture","colorTexture","transformATexture","transformBTexture","sh1to3Texture","sh4to7Texture","sh8to11Texture","sh12to15Texture","hasSH","evalTextureSize","getTextureFormat","halfSupported","floatSupported","halfFormat","updateColorData","SH_C0","updateTransformData","dataA","dataAFloat32","dataB","cA","cB","computeCov3d","covA","covB","r00","r01","r02","r10","r11","r12","r20","r21","r22","updateSHData","sh1to3Data","sh4to7Data","sh8to11Data","sh12to15Data","t11","t10","pack","rb","gb","bb","float32","uint32","as","centers","SortWorker","cameraPosition","cameraDirection","forceUpdate","lastCameraPosition","lastCameraDirection","boundMin","boundMax","distances","countBuffer","binarySearch","compare_fn","cmp","_distances","minDist","maxDist","compareBits","bucketCount","divider","istride","sortKey","destIndex","findZero","postMessage","onmessage","GSplatSorter","terminate","orderTexture","orderBuffer","setMapping","createObjectURL","Blob","newOrder","oldOrder","GSplatInstance","_this$material","_this$meshInstance","_this$sorter","sorter","splat","updateViewport","cameraMat","modelMat","invModelMat","splatInstanceSize","numSplatInstances","indicesVB","meshPositions","meshIndices","tex_params","FILLMODE_NONE","FILLMODE_FILL_WINDOW","FILLMODE_KEEP_ASPECT","RESOLUTION_AUTO","RESOLUTION_FIXED","currentApplication","getApplication","setApplication","app","ScriptTypes","Type","isLegacy","_types","assert","_legacy","_createdLoadingScreen","script","ScriptType","_pcScriptName","attribute","createLoadingScreen","FrameGraph","renderTargetMap","prevPass","lastCubeTexture","lastCubeRenderPass","thisTexture","AreaLightCacheEntry","_this$texture","_this$texture2","texture0","texture1","deviceCache","AreaLightLuts","postfix","applyTextures","texture2","createPlaceholder","ltcMat1","ltcMat2","buildTexture","offsetScale","convertToHalfFloat","convertToUint","srcData1","srcData2","data1","data2","o1","o2","DEFAULT_LOCALE","DEFAULT_LOCALE_FALLBACKS","PLURALS","definePluralFn","locales","fn","getLang","locale","replaceLang","desiredLang","findAvailableLocale","desiredLocale","availableLocales","fallback","lang","mod10","mod100","DEFAULT_PLURAL_FN","getPluralFn","ABSOLUTE_URL","ASSET_ANIMATION","ASSET_AUDIO","ASSET_IMAGE","ASSET_JSON","ASSET_MODEL","ASSET_MATERIAL","ASSET_TEXT","ASSET_TEXTURE","ASSET_TEXTUREATLAS","ASSET_CUBEMAP","ASSET_SHADER","ASSET_CSS","ASSET_HTML","ASSET_SCRIPT","ASSET_CONTAINER","AssetFile","filename","contents","assetIdCounter","VARIANT_SUPPORT","pvr","dxt","etc2","etc1","basis","VARIANT_DEFAULT_PRIORITY","Asset","_id","file","_this$registry","registry","_loader","_app","enableBundles","bundles","listBundlesForAsset","_b$file","oldFile","_file","newFile","reload","loaded","patch","_old","_resources","resources","preload","_preload","loading","load","loadFaces","_loadFaces","getFileUrl","separator","getAbsoluteUrl","relativePath","getLocalizedAssetId","_i18n","addLocalizedAssetId","assetId","removeLocalizedAssetId","unload","urlObject","revokeObjectURL","fetchArrayBuffer","_asset$file","EVENT_LOAD","EVENT_UNLOAD","EVENT_ERROR","EVENT_ADDLOCALIZED","EVENT_REMOVELOCALIZED","TagsCache","addItem","removeItem","tagsRest","missingIndex","AssetRegistry","filters","assets","_assets","_asset$file2","_idToAsset","_urlToAsset","_nameToAsset","_onNameChange","_tags","_onTagAdd","_onTagRemove","_asset$file3","_asset$file4","getByUrl","force","_fireLoad","_opened","assetIds","assetInBundle","_loaded","extra","legacy","getHandler","head","fileUrl","loadFromUrl","loadFromUrlAndFilename","loadFromUrlError","startLoad","loadedAsset","_loadTextures","_loadModel","modelAsset","continuation","basename","mappingUrl","_loadMaterials","onMaterialLoaded","materialAsset","onTextureLoaded","texParams","nameOld","findAll","loader","BundleRegistry","_onAssetAdd","_idToBundle","_onBundleLoadStart","_onBundleLoad","_onBundleError","_indexAssetInBundle","_assetToBundles","_indexAssetFileUrls","_unbindAssetEvents","bundle","urls","_getAssetFileUrls","_urlsToBundles","numFiles","maps","_onAssetRemove","otherBundles","_fileRequests","requests","decodedUrl","_findLoadedOrLoadingBundleForUrl","candidate","hasUrl","urlIsLoadedOrLoading","ComponentSystemRegistry","system","anim","audiolistener","audiosource","collision","joint","layoutchild","layoutgroup","particlesystem","rigidbody","screen","scrollbar","scrollview","zone","Bundle","addFile","Untar","pump","bytesReceived","readFile","reader","headerRead","bytesRead","headerSize","_this$decoder","decoder","TextDecoder","decode","fileName","fileSize","fileType","ustarFormat","bytesRemained","paddingSize","fetchPromise","assetsPrefix","getReader","ResourceHandler","_maxRetries","handlerType","BundleHandler","_fetchRetries","tryFetch","fetch","credentials","untar","ResourceLoader","addHandler","_handlers","removeHandler","makeKey","_loadNull","_requests","handleLoad","urlObj","_onFailure","openBinary","normalizedUrl","bundlesIgnore","_this$_app$assets","bundlesFilter","fileUrlFromBundle","onLoad","getFromCache","enableRetry","disableRetry","I18nParser","_validate","messages","I18n","_i","idNum","_locale","_lang","_pluralFn","_translations","_findFallbackLocale","getText","translations","getPluralText","pluralFn","addData","parsed","_parser","_availableLangs","removeData","_onAssetLoad","_onAssetChange","_onAssetUnload","ScriptRegistry","addSchema","schema","_scriptSchemas","getSchema","scriptName","__name","_scripts","systems","_components","scriptInstances","scriptInstancesInitialized","component","_scriptsIndex","awaiting","_scriptsData","scriptInstance","preloading","scripts","initializeAttributes","_initialized","_postInitialized","postInitialize","nameOrType","scriptType","_enableList","Entity","addComponent","removeComponent","findComponent","findComponents","entities","findScript","_node$c","findScripts","_node$c2","getGuid","_guid","setGuid","_entityIndex","enableFirst","_beingEnabled","_onHierarchyStatePostChanged","onPostStateChange","findByGuid","_destroying","duplicatedIdsMap","_cloneRecursively","resolveDuplicatedEntityReferenceProperties","cloneComponent","oldChild","newChild","_template","EVENT_DESTROY","oldSubtreeRoot","oldEntity","newEntity","componentName","entityProperties","getPropertiesOfType","propertyDescriptor","propertyName","oldEntityReferenceId","entityIsWithinOldSubtree","newEntityReferenceId","useLegacyScriptAttributeCloning","_new","SceneRegistryItem","_loading","_onLoadedCallbacks","SceneRegistry","_urlIndex","findByUrl","_loadSceneData","sceneItem","storeInCache","loadSceneData","unloadSceneData","_loadSceneHierarchy","onBeforeAddHierarchy","_preloadScripts","loadSceneHierarchy","loadSceneSettings","applySceneSettings","changeScene","loadScene","Ammo","ApplicationStats","lightmapper","_getApplication$light","batcher","_batcher","fps","updateStart","updateTime","renderStart","renderTime","physicsStart","physicsTime","cullTime","sortTime","skinTime","morphTime","instancingTime","triangles","otherPrimitives","shadowMapUpdates","shadowMapTime","depthMapTime","forwardTime","lightClustersTime","_timeToCountFrames","_fpsAccum","shadow","misc","skinned","instanced","removedByInstancing","renderTargetCreationTime","particles","updatesPerFrame","_updatesPerFrame","frameTime","Progress","inc","AppBase","appOptions","_initDefaultMaterial","_initProgramLibrary","_soundManager","soundManager","_registerSceneImmediate","assetPrefix","scriptsOrder","i18n","scenes","defaultLayerWorld","defaultLayerDepth","defaultLayerSkybox","defaultLayerUi","defaultLayerImmediate","defaultLayerComposition","_firstBake","batchManager","_firstBatch","elementInput","attachSelectEvents","_inTools","_skyboxAsset","_scriptPrefix","scriptPrefix","resourceHandlers","resourceHandler","componentSystems","componentSystem","onVisibilityChange","hidden","_hiddenAttr","mozHidden","msHidden","webkitHidden","tick","makeTick","_applications","fillMode","_fillMode","resolutionMode","_resolutionMode","application_properties","_parseApplicationProperties","_parseScenes","_parseAssets","progress","_done","onAssetLoad","onAssetError","sceneData","_getScriptReferences","scriptUrl","maxAssetRetries","useDevicePixelRatio","use_device_pixel_ratio","resolution_mode","fill_mode","setCanvasResolution","setCanvasFillMode","layerOrder","sublayer","batchGroups","grp","i18nAssets","_loadLibraries","libraries","onLibrariesLoaded","scriptsIndex","bundlesIndex","loadingType","priorityScripts","priority_scripts","_librariesLoaded","inputUpdate","renderComposition","_fillFrameStatsBasic","_fillFrameStats","prims","culled","_depthDrawCalls","_immediateRendered","isHidden","_allowResize","windowWidth","windowHeight","winR","updateCanvasSize","onLibraryLoaded","setAreaLightLuts","onSkyboxRemoved","onSkyboxChanged","_this$lightmapper","bake","_this$batcher","_processTimestamp","minPoint","maxPoint","drawMeshInstance","drawDepthTexture","_this$lightmapper2","_this$_soundManager","_inFrameUpdate","_destroyRequested","canvasId","scriptHandler","cancelTick","frameRequestId","cancelAnimationFrame","getEntityFromIndex","timeScale","maxDeltaTime","autoRender","renderNextFrame","_frameEndData","application","_application$xr2","_application$xr","requestAnimationFrame","shouldRenderFrame","_application$xr3","renderState","baseLayer","AppOptions","tempSphere","BakeLight","restore","startBake","endBake","lightBounds","_tempPoint$1","BakeLightSimple","numVirtualLights","prepareVirtualLight","directionalSpreadAngle","linearIntensity","_tempPoint","BakeLightAmbient","fullIntensity","lightEntity","affectDynamic","affectLightmapped","BakeMeshNode","bounds","DENOISE_FILTER_SIZE","LightmapFilters","setSourceTexture","textureWidth","textureHeight","constantPixelOffset","prepareDenoise","filterRange","filterSmoothness","shaderDenoise","sigmas","constantSigmas","constantKernel","bZnorm","evaluateDenoiseUniforms","normpdf","kernel","kSize","shaderDilate","RenderPassLightmapper","receivers","worldClusters","lightArray","MAX_LIGHTMAP_SIZE","PASS_COLOR","PASS_DIR","tempVec$1","Lightmapper","_this$camera","blackTex","initBake","_initCalled","lightmapFilters","constantBakeDir","srcParams","finishBake","bakeNodes","destroyRT","ambientAOMaterial","createMaterialForPass","APIVersion","transformDefines","bakeLmEndChunk","createMaterials","passMaterials","collectModels","allNodes","_node$model","_node$model2","_node$render","lightmapped","notInstancedMeshInstances","prepareShadowCasters","castShadowsLightmap","calculateLightmapSize","sizeMult","srcArea","_area","areaMult","computeNodeBounds","totalArea","lightmapSize","setLightmapping","startShaders","startFboTime","startCompileTime","bakeInternal","nowTime","totalRenderTime","shadersLinked","fboTime","lightmapCount","allocateTextures","bakeNode","prepareLightsToBake","allLights","bakeLights","sceneLights","bakeLight","restoreLights","setupScene","restoreScene","computeNodesBounds","computeBounds","backupMaterials","restoreMaterials","lightCameraPrepare","lightCameraPrepareAndCull","casterBounds","lightAffectsNode","frustumSize","nodeVisible","setupLightArray","renderShadowMap","shadowMapRendered","postprocessTextures","numDilates2x","dilateShader","filterLightmap","nodeRT","lightmap","tempRT","tempTex","bilateralFilterEnabled","rcv","shadersUpdatedOn1stPass","isAmbientLight","isDirectional","virtualLightIndex","clusterLights","passMaterial","lastVirtualLightForPass","Component","_buildAccessors","descriptor","configurable","_accessorsBuilt","buildAccessors","onSetEnabled","record","ComponentSystem","ComponentType","componentData","DataType","initializeComponentData","convertValue","matchingProperties","INTERPOLATION_STEP","INTERPOLATION_LINEAR","INTERPOLATION_CUBIC","AnimCache","input","_len","_findKey","_hermite","eval","interpolation","idx0","idx1","hermite","AnimSnapshot","animTrack","_results","_inputs","_curves","outputs","_outputs","_output","AnimClip","track","_track","_snapshot","snapshot","alignCursorToCurrentTime","speed","signChanged","_speed","blendWeight","_blendWeight","blendOrder","_blendOrder","eventCursor","_eventCursor","eventCursorEnd","isReverse","nextEvent","nextEventAheadOfTime","nextEventBehindTime","resetEventCursor","moveEventCursor","clipFrameTime","frameEndTime","eventFrame","residual","fireNextEvent","_eventHandler","fireNextEventInFrame","frameStartTime","activeEventsForFrame","initialCursor","progressForTime","deltaTime","_playing","playing","eventHandler","ANIM_INTERRUPTION_NONE","ANIM_INTERRUPTION_PREV","ANIM_INTERRUPTION_NEXT","ANIM_INTERRUPTION_PREV_NEXT","ANIM_INTERRUPTION_NEXT_PREV","ANIM_GREATER_THAN","ANIM_LESS_THAN","ANIM_GREATER_THAN_EQUAL_TO","ANIM_LESS_THAN_EQUAL_TO","ANIM_EQUAL_TO","ANIM_NOT_EQUAL_TO","ANIM_PARAMETER_INTEGER","ANIM_PARAMETER_FLOAT","ANIM_PARAMETER_BOOLEAN","ANIM_PARAMETER_TRIGGER","ANIM_BLEND_1D","ANIM_BLEND_2D_DIRECTIONAL","ANIM_BLEND_2D_CARTESIAN","ANIM_BLEND_DIRECT","ANIM_STATE_START","ANIM_STATE_END","ANIM_STATE_ANY","ANIM_CONTROL_STATES","ANIM_LAYER_OVERWRITE","ANIM_LAYER_ADDITIVE","AnimBlend","blendVec","additive","it","blendQuat","stableSort","lessFunc","AnimTargetValue","_normalizeWeights","_component","normalizeWeights","updateWeights","totalWeight","weights","_layerBlendType","setMask","updateValue","counter","IDENTITY_QUAT_ARR","valueType","baseValue","TYPE_QUAT","q1","aV1","q2","aV2","q3","aV","quatArr","vecArr","setter","unbind","TYPE_VEC3","AnimEvaluator","clips","_clips","addClip","clip","binder","_binder","inputs","paths","resolved","targetPath","blendCounter","animComponent","layerIndex","removeClip","unresolve","removeClips","updateClipTrack","rebind","findClip","assignMask","outputAnimation","isTransform","animTarget","AnimEvents","_events","_AnimTrack","AnimTrack","animEvents","_animEvents","_input","_interpolation","EMPTY","AnimBinder","joinPath","pathSegments","character","escape","splitPath","curr","encode","entityPath","propertyPath","AnimTarget","_set","_get","_targetPath","_isTransform","DefaultAnimBinder","_isPathActive","rootNodeNames","currEntityPath","_isPathInMask","createAnimTarget","valueCount","componentType","encodedPath","targetCache","handlers","nodeCounts","activeNodes","checkMaskValue","maskItem","flatten","findMeshInstances","weightName","setters","callSetters","textureName","textureAsset","AnimationComponent","animations","_animations","onSetAnimations","onAssetChanged","onAssetRemoved","animName","animationsIndex","currAnim","_stopCurrentAnimation","loadAnimationAssets","skeleton","animEvaluator","blendTime","prevAnim","_createAnimationController","blendSpeed","fromSkel","toSkel","getAnimation","setModel","_resetAnimationController","modelComponent","animationNames","hasJson","hasGlb","onAssetReady","onAssetAdd","restarted","onBeforeRemove","AnimationComponentData","_schema$m","AnimationComponentSystem","clonedAnimations","clonedAnimationsIndex","onUpdate","AnimNode","_point","pointLength","_pointLength","_weight","normalizedWeight","_weightedSpeed","absoluteSpeed","weightedSpeed","_animTrack","AnimBlendTree","calculateWeights","syncAnimations","_syncAnimations","getChild","updateParameterValues","paramsEqual","_parameterValues","updatedParameter","_findParameter","_parameters","getNodeWeightedDuration","speedMultiplier","getNodeCount","createTree","findParameter","_pointCache","AnimBlendTree1D","weightedDurationSum","child2Distance","parameterDistance","AnimBlendTreeCartesian2D","pointDistanceCache","pointKey","weightSum","_p","pi","_pip","minj","pipj","AnimBlendTreeDirectional2D","pointCache","pLength","piLength","pjLength","weightedChildDuration","AnimBlendTreeDirect","AnimState","_createTree","_getNodeFromPath","currNode","_blendTree","addAnimation","pathString","indexOfAnimation","_animationList","_updateHasAnimations","_hasAnimations","hasAnimations","nodeCount","playable","trackClipName","trackClip","_controller","timelineDuration","blendTree","AnimTransition","_from","_to","_priority","conditions","_conditions","exitTime","_exitTime","transitionOffset","_transitionOffset","interruptionSource","_interruptionSource","hasExitTime","AnimController","_animEvaluator","activeState","stateName","_activeStateName","_findState","activeStateName","activeStateAnimations","previousState","_previousStateName","previousStateName","_stateNames","_states","activeStateProgress","_getActiveStateProgressForTime","_timeInState","activeStateDuration","_activeStateDurationDirty","maxDuration","activeClip","_activeStateDuration","activeStateCurrentTime","_timeInStateBefore","transitioning","_isTransitioning","transitionProgress","_currTransitionTime","_totalTransitionTime","states","_findTransitionsFromState","transitions","_findTransitionsFromStateCache","_transitions","transition","_findTransitionsBetweenStates","sourceStateName","destinationStateName","_findTransitionsBetweenStatesCache","_transitionHasConditionsMet","condition","parameterName","predicate","_findTransition","_transitionInterruptionSource","progressBefore","startTransition","updateStateFromTransition","_consumeTrigger","_transitionPreviousStates","interpolatedTime","hasTransitionOffset","timeInState","timeInStateBefore","offsetTime","_transitionToState","newStateName","assignAnimation","_activate","removeNodeAnimations","stateWeight","activeClips","totalClips","consumeTrigger","v4","AnimComponentBinder","_packFloat","_packBoolean","_packVec2","_packVec3","_packVec4","_packColor","_packQuat","propertyComponent","_getEntityFromHierarchy","_createAnimTargetForProperty","entityHierarchy","currEntity","_resolvePath","resolveLeaf","steps","_setter","packFunc","setterFuncName","baseValues","objKey","propertyHierarchy","materialPropertyName","materialTexture","animDataType","animDataComponents","layerName","AnimComponentLayer","layerPlaying","dirtifyTargets","_blendType","_blendTime","_blendTimeElapsed","_startingWeight","_targetWeight","blendToWeight","nodePath","getAnimationAsset","animationAssets","AnimStateGraph","layerId","dataLayer","dataLayerTransition","conditionKeys","paramId","AnimComponent","stateGraphAsset","removeStateGraph","_stateGraphAsset","_onStateGraphAssetChangeEvent","_asset","_stateGraph","loadStateGraph","_animationAssets","stateGraph","layerIndices","_layerIndices","prevAnimationAssets","prevMasks","_addLayer","animBinder","findAnimationLayer","_assignParameters","paramKeys","paramKey","containsBlendTree","setupAnimationAssets","stateKey","animationAsset","onAnimationAssetLoaded","targetKey","addAnimationState","_this$addLayer","getParameterValue","setParameterValue","getFloat","setFloat","getInteger","setInteger","getBoolean","setBoolean","getTrigger","setTrigger","singleFrame","_consumedTriggers","resetTrigger","trigger","oldAnim","AnimComponentData","_schema$l","AnimComponentSystem","complexProperties","masks","maskData","maskKey","decodeURI","onAnimationUpdate","pathArr","clonePath","AudioListenerComponent","setCurrentListener","AudioListenerComponentData","_schema$k","AudioListenerComponentSystem","AudioSourceComponent","currentSource","onSetAssets","newAssets","loadAudioSourceAssets","onSetLoop","onSetVolume","onSetPitch","onSetMaxDistance","onSetMinDistance","onSetRollOffFactor","onSetDistanceModel","onSet3d","_error","AudioSourceComponentData","_schema$j","AudioSourceComponentSystem","onInitialize","onRemove","BUTTON_TRANSITION_MODE_TINT","BUTTON_TRANSITION_MODE_SPRITE_CHANGE","ELEMENTTYPE_GROUP","ELEMENTTYPE_IMAGE","ELEMENTTYPE_TEXT","FITMODE_STRETCH","FITMODE_CONTAIN","FITMODE_COVER","VisualState","HOVER","PRESSED","INACTIVE","STATES_TO_TINT_NAMES","STATES_TO_SPRITE_ASSET_NAMES","STATES_TO_SPRITE_FRAME_NAMES","ButtonComponent","_setValue","imageEntity","_imageEntity","isString","_imageEntityUnsubscribe","_imageEntitySubscribe","hitPadding","transitionMode","hoverTint","pressedTint","inactiveTint","fadeDuration","hoverSpriteAsset","hoverSpriteFrame","pressedSpriteAsset","pressedSpriteFrame","inactiveSpriteAsset","inactiveSpriteFrame","_toggleLifecycleListeners","onOrOff","_onSetActive","_onSetTransitionMode","_onSetTransitionValue","_evtElementAdd","_onElementComponentAdd","_this$_evtElementAdd","_updateVisualState","_cancelTween","_resetToDefaultVisualState","_forceReapplyVisualState","_evtImageEntityElementAdd","_onImageElementGain","_this$_evtImageEntity","_this$_imageEntity","_onImageElementLose","_imageEntityElementSubscribe","_evtImageEntityElementRemove","_evtImageEntityElementColor","_onSetColor","_evtImageEntityElementOpacity","_onSetOpacity","_evtImageEntityElementSpriteAsset","_onSetSpriteAsset","_evtImageEntityElementSpriteFrame","_onSetSpriteFrame","_imageEntityElementUnsubscribe","_this$_evtImageEntity2","_this$_evtImageEntity3","_this$_evtImageEntity4","_this$_evtImageEntity5","_this$_evtImageEntity6","_onElementComponentRemove","_toggleHitElementListeners","_storeDefaultVisualState","isAdding","_hasHitElementListeners","_onMouseEnter","_onMouseLeave","_onMouseDown","_onMouseUp","_onTouchStart","_onTouchEnd","_onTouchLeave","_onTouchCancel","_onSelectStart","_onSelectEnd","_onSelectEnter","_onSelectLeave","_onClick","_this$_imageEntity2","_storeDefaultColor","_storeDefaultOpacity","_storeDefaultSpriteAsset","spriteAsset","_storeDefaultSpriteFrame","spriteFrame","_defaultTint","_defaultSpriteAsset","_defaultSpriteFrame","_isApplyingTint","_isApplyingSprite","_isHovering","_fireIfActive","_isPressed","_hoveringCounter","oldVisualState","_visualState","newVisualState","_determineVisualState","tintName","tintColor","_applyTint","spriteAssetName","spriteFrameName","_applySprite","_this$_imageEntity3","_applyTintImmediately","_this$_imageEntity4","_applyTintWithTween","_this$_imageEntity5","color3","toColor3","_this$_imageEntity6","_tweenInfo","lerpColor","_updateTintTween","elapsedTime","elapsedProportion","oldButton","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_CLICK","EVENT_TOUCHLEAVE","EVENT_SELECTENTER","EVENT_SELECTLEAVE","EVENT_HOVERSTART","EVENT_HOVEREND","EVENT_PRESSEDSTART","EVENT_PRESSEDEND","color4","ButtonComponentData","_schema$i","ButtonComponentSystem","_onRemoveComponent","_vec3$1","CollisionComponent","linearOffset","angularOffset","renderAsset","convexHull","checkVertexDuplicates","onSetType","changeType","onSetHalfExtents","recreatePhysicalShapes","onSetOffset","_hasOffset","onSetRadius","onSetHeight","onSetAxis","onSetAsset","onSetRenderAsset","onRenderAssetRemoved","onSetModel","implementations","doRecreatePhysicalShape","onSetRender","getCompoundChildShapeIndex","compound","shapes","getNumChildShapes","childShape","getChildShape","getPointer","_onInsert","_compoundParent","ancestor","_updateCompound","_updateEachDescendantTransform","bodyComponent","getShapePosition","lo","getShapeRotation","enableSimulation","_getNodeTransform","addChildShape","disableSimulation","_removeCompoundChild","EVENT_CONTACT","EVENT_COLLISIONSTART","EVENT_COLLISIONEND","EVENT_TRIGGERENTER","EVENT_TRIGGERLEAVE","CollisionComponentData","BODYTYPE_STATIC","BODYTYPE_DYNAMIC","BODYTYPE_KINEMATIC","BODYFLAG_STATIC_OBJECT","BODYFLAG_KINEMATIC_OBJECT","BODYFLAG_NORESPONSE_OBJECT","BODYSTATE_ACTIVE_TAG","BODYSTATE_ISLAND_SLEEPING","BODYSTATE_WANTS_DEACTIVATION","BODYSTATE_DISABLE_DEACTIVATION","BODYSTATE_DISABLE_SIMULATION","BODYGROUP_NONE","BODYGROUP_DEFAULT","BODYGROUP_DYNAMIC","BODYGROUP_STATIC","BODYGROUP_KINEMATIC","BODYGROUP_ENGINE_1","BODYGROUP_TRIGGER","BODYGROUP_ENGINE_2","BODYGROUP_ENGINE_3","BODYGROUP_USER_1","BODYGROUP_USER_2","BODYGROUP_USER_3","BODYGROUP_USER_4","BODYGROUP_USER_5","BODYGROUP_USER_6","BODYGROUP_USER_7","BODYGROUP_USER_8","BODYMASK_NONE","BODYMASK_ALL","BODYMASK_STATIC","BODYMASK_NOT_STATIC","BODYMASK_NOT_STATIC_KINEMATIC","_ammoVec1$1","_ammoQuat$1","_ammoTransform$1","Trigger","mass","bodyPos","bodyRot","setOrigin","createBody","setRestitution","setFriction","setDamping","setLinearFactor","setAngularFactor","setCollisionFlags","getCollisionFlags","destroyBody","_getEntityTransform","updateTransform","setWorldTransform","addBody","_triggers","forceActivationState","removeBody","btVector3","btQuaternion","btTransform","mat4","quat$1","tempGraphNode","_schema$h","CollisionSystemImpl","beforeInitialize","afterInitialize","destroyShape","createPhysicalShape","firstCompoundChild","_addEachDescendant","updateCompoundChildTransform","beforeRemove","CollisionBoxSystemImpl","ammoHe","btBoxShape","CollisionSphereSystemImpl","btSphereShape","CollisionCapsuleSystemImpl","_data$axis","_data$radius","_data$height","btCapsuleShapeX","btCapsuleShape","btCapsuleShapeZ","CollisionCylinderSystemImpl","_data$axis2","_data$radius2","_data$height2","btCylinderShapeX","btCylinderShape","btCylinderShapeZ","CollisionConeSystemImpl","_data$axis3","_data$radius3","_data$height3","btConeShapeX","btConeShape","btConeShapeZ","CollisionMeshSystemImpl","createAmmoHull","hull","btConvexHullShape","addPoint","recalcLocalAabb","setMargin","createAmmoMesh","checkDupes","triMesh","_triMeshCache","numTriangles","btTriangleMesh","vertexCache","indexedArray","getIndexedMeshArray","at","m_numTriangles","addVertex","findOrAddVertex","addIndex","triMeshShape","btBvhTriangleMeshShape","scaling","_getNodeScaling","setLocalScaling","btCompoundShape","entityTransform","loadAsset","previousPropertyValue","onAssetFullyReady","loadAndHandleAsset","containerAsset","worldScale","previousScale","getLocalScaling","numShapes","CollisionCompoundSystemImpl","_updateEachDescendant","CollisionComponentSystem","_createImplementation","_getImplementation","parentComponent","updateChildTransform","removeChildShape","removeChildShapeByIndex","onTransformChanged","previousType","newType","_calculateNodeRelativeTransform","relative","ammoQuat","getOrigin","ao","newOrigin","_vertexFormatDeviceCache","ImageRenderable","_this$unmaskMeshInsta","setMaterial","_entity","setMesh","forceUpdateAabb","addModelToLayers","_this$unmaskMeshInsta2","setUnmaskDrawOrder","getLastChild","last","lastChild","getMaskOffset","setDrawOrder","setCull","visibleFn","_isScreenSpace","isVisibleForCamera","setScreenSpace","setLayer","setAabbFunc","_meshDirty","ImageElement","_defaultMesh","_onParentResizeOrPivotChange","_onScreenSpaceChange","_onScreenChange","_onDrawOrderChange","_onResolutionChange","_updateMesh","_updateMaterial","_hasUserMaterial","_materialAsset","_system","defaultImageMaterials","_use9Slicing","nineSliced","nineTiled","getImageElementMaterial","_isScreenCulled","_createMesh","calculatedWidth","calculatedHeight","vertexData","fitMode","_targetAspectRatio","actualRatio","frameData","_spriteFrame","borderWidthScale","borderHeightScale","_innerOffset","_atlasRect","ppu","scaleMulX","scaleMulY","_outerScale","_innerOffsetUniform","_atlasRectUniform","_outerScaleUniform","vertexDataF32","atlasTextureWidth","atlasTextureHeight","_updateSprite","nineSlice","refreshMesh","_beingInitialized","_toggleMask","_onMaterialLoad","_onMaterialAdded","_bindMaterialAsset","_onMaterialChange","_onMaterialRemove","_unbindMaterialAsset","_onTextureAdded","_textureAsset","_bindTextureAsset","_onTextureLoad","_onTextureChange","_onTextureRemove","_unbindTextureAsset","_onSpriteAssetAdded","_spriteAsset","_bindSpriteAsset","_onSpriteAssetLoad","_onSpriteAssetChange","_onSpriteAssetRemove","_unbindSpriteAsset","textureAtlasAsset","_onTextureAtlasLoad","atlasAssetId","_bindSprite","_evtSetMeshes","_onSpriteMeshesChange","_onSpritePpuChange","_onAtlasTextureChange","_unbindSprite","_this$_evtSetMeshes","atlasAsset","_setStencil","stencilParams","maskedBy","_maskRef","sp","_colorUniform","_removeMaterialAssetEvents","defaultScreenSpaceImageMaskMaterial","defaultImageMaskMaterial","defaultScreenSpaceImageMaterial","defaultImageMaterial","newAspectRatio","_prev","LocalizedAsset","defaultAsset","_defaultAsset","_unbindDefaultAsset","_bindDefaultAsset","_onSetLocale","localizedAsset","_localizedAsset","_onLocalizedAssetAdd","_unbindLocalizedAsset","_bindLocalizedAsset","autoLoad","_autoLoad","disableLocalization","_disableLocalization","_onDefaultAssetAdd","_onLocaleAdd","_onLocaleRemove","_onDefaultAssetRemove","_onLocalizedAssetLoad","_onLocalizedAssetChange","_onLocalizedAssetRemove","localizedAssetId","FONT_MSDF","FONT_BITMAP","EOF_TOKEN","ERROR_TOKEN","TEXT_TOKEN","OPEN_BRACKET_TOKEN","CLOSE_BRACKET_TOKEN","EQUALS_TOKEN","STRING_TOKEN","IDENTIFIER_TOKEN","WHITESPACE_TOKEN","WHITESPACE_CHARS","IDENTIFIER_REGEX","Scanner","token","_read","_last","_buf","debugPrint","tokenStrings","_eof","_mode","_tag","_cur","_store","_whitespace","_string","_isIdentifierSymbol","_identifier","_symbols","symbols","Parser","_scanner","_parseTag","merge","combineTags","resolveMarkupTags","numSymbols","edges","tagStack","removeTags","addTags","edgeKeys","resolvedTags","edge","prevTag","resolvedTag","evaluateMarkup","parser","stripped_symbols","invalidTag","resolved_tags","Markup","MeshInfo","outlines","shadows","createTextMesh","meshInfo","LINE_BREAK_CHAR","WHITESPACE_CHAR","WORD_BOUNDARY_CHAR","ALPHANUMERIC_CHAR","CJK_CHAR","NO_LINE_BREAK_CJK_CHAR","CONTROL_CHARS","CONTROL_GLYPH_DATA","xadvance","xoffset","yoffset","colorTmp","vec2Tmp","TextElement","_setMaterial","_fontAsset","font","_onParentResize","_onPivotChange","_onLocaleSet","_onLocalizationData","_noResize","_font","_updateText","_drawOrder","_i18nKey","fontAsset","_resetLocalizedText","_setText","unicodeConverter","unicodeConverterFunc","getUnicodeConverter","_enableMarkup","_rtlReorder","rtlReorderFunc","getRtlReorder","_rtl","rtl","getColorThicknessHash","getColorOffsetHash","paletteMap","outlinePaletteMap","shadowPaletteMap","_colorPalette","_outlinePalette","_outlineColor","_outlineThickness","_shadowPalette","_shadowColor","_shadowOffset","_symbolColors","_symbolOutlineParams","_symbolShadowParams","outline","outlineHash","offsetX","offsetY","_color2","offX","offY","shadowHash","_updateMaterialEmissive","_updateMaterialOutline","_updateMaterialShadow","charactersPerTexture","_calculateCharsPerTexture","removedModel","screenCulled","_meshInfo","_removeMeshInstance","_setTextureParams","_getPxRange","_outlineColorUniform","_outlineThicknessScale","_shadowColorUniform","_shadowOffsetUniform","_shadowOffsetScale","_setMaskedBy","_updateMeshes","_rangeStart","_rangeEnd","_updateRenderRange","msdf","getTextElementMaterial","_isWordBoundary","_isValidNextChar","nextchar","_isNextCJKBoundary","_isNextCJKWholeWord","json","minFont","_minFontSize","_maxFontSize","maxFont","autoFit","_shouldAutoFit","_fontSize","MAGIC","_x","_y","_z","_xMinusTrailingWhitespace","wordStartX","wordStartIndex","lineStartIndex","numWordsThisLine","numCharsThisLine","numBreaksThisLine","splitHorizontalAnchors","anchor","maxLineWidth","autoWidth","_wrapLines","fontMinY","fontMaxY","breakLine","lineBreakIndex","lineBreakX","_lineWidths","sliceStart","sliceEnd","_lineContents","_scaledLineHeight","retryUpdateMeshes","_lineHeight","_fontMinY","_fontMaxY","color_r","color_g","color_b","outline_color_rg","outline_color_ba","outline_thickness","shadow_color_rg","shadow_color_ba","shadow_offset_xy","isLineBreak","_maxLines","advance","quadsize","dataScale","kerning","kernTable","kernLeft","isWhitespace","meshInfoId","candidateLineWidth","_spacing","backtrack","backtrackStart","backtrackEnd","backChar","backCharData","backMeshInfo","fontSize","_shouldAutoFitWidth","_shouldAutoFitHeight","_getUv","colorIdx","outlineIdx","shadowIdx","_autoWidth","autoHeight","_autoHeight","ha","_alignment","va","prevQuad","hoffset","voffset","_quad","_quad2","tmp0","tmp1","vertMax","_aabbDirty","_onFontRender","_onFontLoad","_onFontChange","_onFontRemove","_autoFitWidth","_autoFitHeight","symbolIndex","startChars","endChars","lineHeight","wrapLines","spacing","_originalFontSize","previousFontType","charId","newFontSize","rtlReorder","_unicodeConverter","outlineColor","outlineThickness","shadowColor","shadowOffset","minFontSize","maxFontSize","autoFitWidth","autoFitHeight","maxLines","enableMarkup","symbolColors","symbolOutlineParams","symbolShadowParams","rangeStart","rangeEnd","_currentMaterialType","_maskedMaterialSrc","invParentWtm","vecA$2","vecB$2","matA","matB","matC","matD","ElementComponent","_absLeft","_localAnchor","_margin","_absRight","_absTop","_absBottom","_hasSplitAnchorsX","_anchor","_hasSplitAnchorsY","_calculateLocalAnchors","_calculateSize","_anchorDirty","_batchGroupId","_this$system$app$batc","_this$system$app$batc2","wt","wb","_setHeight","_calculatedHeight","_pivot","_setCalculatedWidth","_calculatedWidth","_setCalculatedHeight","canvasCorners","_canvasCornersDirty","_canvasCorners","screenCorners","_addedModels","wr","wl","_setWidth","margin","_maskedBy","prevX","prevY","_cornersDirty","_worldCornersDirty","_flagChildrenAsDirty","_screenCorners","parentBottomLeft","_screenTransform","textWidth","textHeight","useInput","_useInput","addElement","removeElement","_fitMode","worldCorners","_worldCorners","_screenMatrix","localPos","_dirtyBatch","_patch","_setPosition","_setLocalPosition","_unpatch","_screenToWorld","pvt","resx","resy","_anchorTransform","_sizeDirty","parentWorldTransform","_parentWorldTransform","depthOffset","pivotOffset","_parseUpToScreen","_updateScreen","_prerender","syncMask","_bindScreen","_bindElement","_unbindScreen","_unbindElement","previousScreen","syncDrawOrder","_updateMask","renderableElement","currentMask","_children$i$element","_children$i$element2","_onScreenResize","_onScreenRemove","getOffsetPosition","onLayersChanged","oldComp","newComp","onLayerAdded","onLayerRemoved","_group","_evtLayersChanged","_evtLayerAdded","_evtLayerRemoved","_this$system$app$batc3","_this$_evtLayersChang","_this$_evtLayerAdded","_this$_evtLayerRemove","_this$system$app$batc4","propagateCalculatedWidth","propagateCalculatedHeight","newWidth","newHeight","updateMargins","_offsetReadAt","_maskOffset","mo","clipL","clipR","clipT","clipB","cameraWidth","cameraHeight","hitCorners","_this$system$app$batc5","ElementComponentData","_schema$g","ElementComponentSystem","_defaultTexture","splitHorAnchors","splitVerAnchors","_marginChange","shouldForceSetAnchor","onAddComponent","onRemoveComponent","textAttibutes","_defaultTextMaterials","opacityMapChannel","emissiveVertexColor","_createBaseImageMaterial","nineSliceTiled","defaultScreenSpaceImageMask9SlicedMaterial","defaultScreenSpaceImageMask9TiledMaterial","defaultScreenSpaceImage9TiledMaterial","defaultScreenSpaceImage9SlicedMaterial","defaultImage9SlicedMaskMaterial","defaultImage9TiledMaskMaterial","defaultImage9SlicedMaterial","defaultImage9TiledMaterial","registerUnicodeConverter","registerRtlReorder","MOTION_FREE","MOTION_LIMITED","MOTION_LOCKED","properties$1","JointComponent","entityA","_destroyConstraint","_entityA","_createConstraint","entityB","_entityB","breakForce","_constraint","_breakForce","setBreakingImpulseThreshold","enableCollision","_enableCollision","angularLimitsX","_angularLimitsX","_updateAngularLimits","angularMotionX","_angularMotionX","angularLimitsY","_angularLimitsY","angularMotionY","_angularMotionY","angularLimitsZ","_angularLimitsZ","angularMotionZ","_angularMotionZ","linearLimitsX","_linearLimitsX","_updateLinearLimits","linearMotionX","_linearMotionX","linearLimitsY","_linearLimitsY","linearMotionY","_linearMotionY","linearLimitsZ","_linearLimitsZ","linearMotionZ","_linearMotionZ","_convertTransform","pcTransform","ammoTransform","ammoVec","constraint","setAngularLowerLimit","setAngularUpperLimit","setLinearLowerLimit","setLinearUpperLimit","bodyA","jointWtm","entityAWtm","invEntityAWtm","frameA","bodyB","entityBWtm","invEntityBWtm","frameB","btGeneric6DofSpringConstraint","enableSpring","setEquilibriumPoint","setStiffness","dynamicsWorld","addConstraint","removeConstraint","initFromData","_onSetEnabled","_onBeforeRemove","_linearSpringX","_linearStiffnessX","_linearDampingX","_linearEquilibriumX","_linearSpringY","_linearStiffnessY","_linearDampingY","_linearEquilibriumY","_linearSpringZ","_linearStiffnessZ","_linearDampingZ","_linearEquilibriumZ","_angularSpringX","_angularStiffnessX","_angularDampingX","_angularEquilibriumX","_angularSpringY","_angularStiffnessY","_angularDampingY","_angularEquilibriumY","_angularSpringZ","_angularEquilibriumZ","_angularDampingZ","_angularStiffnessZ","functionMap","Damping","Equilibrium","Spring","Stiffness","propInternal","JointComponentData","_schema$f","JointComponentSystem","LayoutChildComponent","minWidth","_minWidth","minHeight","_minHeight","maxWidth","_maxWidth","maxHeight","_maxHeight","fitWidthProportion","_fitWidthProportion","fitHeightProportion","_fitHeightProportion","excludeFromLayout","_excludeFromLayout","LayoutChildComponentData","_schema$e","LayoutChildComponentSystem","layoutChild","FITTING_NONE","FITTING_STRETCH","FITTING_SHRINK","FITTING_BOTH","AXIS_MAPPINGS","calculatedSize","minSize","maxSize","fitting","fittingProportion","OPPOSITE_ORIENTATION","PROPERTY_DEFAULTS","FITTING_ACTION","APPLY_STRETCHING","APPLY_SHRINKING","availableSpace","createCalculator","minExtentA","minExtentB","maxExtentA","calculateAll","allElements","layoutOptions","shouldIncludeInLayout","containerSize","padding","resetAnchors","reverseLinesIfRequired","splitLines","sizes","calculateSizesOnAxisB","calculateSizesOnAxisA","calculateBasePositions","applyAlignmentAndPadding","applySizesAndPositions","createLayoutInfo","layoutChildComponent","getElementSizeProperties","runningSize","allowOverrun","idealElementSize","reverseAxisA","reverseX","reverseY","reverseAxisB","lineIndex","reverse","sizesAllLines","sizesThisLine","idealRequiredSpace","calculateTotalSpace","fittingAction","determineFittingAction","stretchSizesToFitContainer","shrinkSizesToFitContainer","largestElementsForEachLine","largestSizesForEachLine","largestElement","largestSize","NEGATIVE_INFINITY","elementIndex","sizesThisElement","sizesForThisElement","currentSize","availableSize","elementFittingAction","fittingMode","totalSizes","sumValues","totalSpacing","ascendingMaxSizeOrder","getTraversalOrder","fittingProportions","getNormalizedValues","fittingProportionSums","createSumArray","remainingUndershoot","targetIncrease","calculateAdjustment","targetSize","actualSize","actualIncrease","appliedIncrease","descendingMinSizeOrder","inverseFittingProportions","invertNormalizedValues","inverseFittingProportionSums","remainingOvershoot","targetReduction","actualReduction","appliedReduction","remainingAdjustment","proportion","sumOfRemainingProportions","cursor","positionsAllLines","positionsThisLine","alignmentA","alignmentB","paddingA","paddingB","axisAOffset","axisBOffset","withinLineAxisBOffset","layoutWidth","layoutHeight","xOffset","sizeProperties","getProperty","accumulator","normalizedValues","numItems","invertedValues","numValues","orderBy","descending","assignIndex","itemA","itemB","getIndex","sumArray","CALCULATE_FNS","LayoutCalculator","calculateLayout","calculateFn","isEnabledAndHasEnabledElement","LayoutGroupComponent","_orientation","_scheduleReflow","_reverseX","_reverseY","_padding","widthFitting","_widthFitting","heightFitting","_heightFitting","_wrap","_isSelfOrChild","_listenForReflowEvents","onOff","_onElementOrLayoutComponentAdd","_onElementOrLayoutComponentRemove","_onChildInsert","_onChildRemove","_isPerformingReflow","scheduleReflow","reflow","container","containerWidth","containerHeight","layoutInfo","_layoutCalculator","LayoutGroupComponentData","_schema$d","MAX_ITERATIONS","LayoutGroupComponentSystem","layoutGroup","_reflowQueue","_onPostUpdate","_processReflowQueue","iterationCount","componentA","componentB","shapePrimitives","getShapePrimitive","primData","ModelComponent","customAabb","_bindModelAsset","_onModelAssetAdded","_unbindModelAsset","_clonedModel","_receiveShadows","_lightmapped","_mapping","_unsetMaterialEvents","receiveShadows","_castShadowsLightmap","_lightmapSizeMultiplier","_onMaterialAssetAdd","assetMapping","_loadAndSetMeshInstanceMaterial","_getMaterialAssetUrl","onRemoveChild","onInsertChild","_setMaterialEvent","_materialEvents","_getAssetByIdOrPath","idOrPath","isPath","isAsset","_app$batcher","_app$batcher2","hide","show","_onMaterialAssetLoad","_onMaterialAssetUnload","_onMaterialAssetRemove","_onMaterialAssetChange","_onModelAssetLoad","_onModelAssetUnload","_onModelAssetChange","_onModelAssetRemove","ModelComponentData","_schema$c","ModelComponentSystem","aabbCenter","aabbHalfExtents","meshInstancesClone","SIMPLE_PROPERTIES","COMPLEX_PROPERTIES","GRAPH_PROPERTIES","ASSET_PROPERTIES","depthLayer","ParticleSystemComponent","autoPlay","colorMapAsset","normalMapAsset","meshAsset","addMeshInstanceToLayers","removeMeshInstanceFromLayers","onSetLayers","_bindColorMapAsset","_onColorMapAssetLoad","_onColorMapAssetUnload","_onColorMapAssetRemove","_onColorMapAssetChange","_unbindColorMapAsset","onSetColorMapAsset","_bindNormalMapAsset","_onNormalMapAssetLoad","_onNormalMapAssetUnload","_onNormalMapAssetRemove","_onNormalMapAssetChange","_unbindNormalMapAsset","onSetNormalMapAsset","_bindMeshAsset","_onMeshAssetLoad","_onMeshAssetUnload","_onMeshAssetRemove","_onMeshAssetChange","_unbindMeshAsset","_onMeshChanged","onSetMeshAsset","onSetMesh","_unbindRenderAsset","_bindRenderAsset","_onRenderChanged","_onRenderAssetLoad","_onRenderAssetUnload","_onRenderAssetRemove","_this$_evtSetMeshes2","_onRenderSetMeshes","onSetBlendType","_requestDepth","_requestedDepth","_releaseDepth","onSetDepthSoftening","onSetSimpleProperty","onSetComplexProperty","onSetGraphProperty","ParticleSystemComponentData","_schema$b","ParticleSystemComponentSystem","propertyTypes","sourceProp","numSteps","SkinInstanceCachedObject","SkinInstanceCache","createCachedSkinInstance","skinInst","getCachedSkinInstance","addCachedSkinInstance","cachedObjArray","_skinInstanceCache","cachedObj","removeCachedSkinInstance","cachedObjIndex","AssetReference","_registry","_bind","_url","_evtLoadById","_onLoad","_evtAddById","_onAdd","_evtRemoveById","_onRemove","_evtUnloadById","_onUnload","_evtLoadByUrl","_evtAddByUrl","_evtRemoveByUrl","_this$_evtLoadById","_this$_evtAddById","_this$_evtRemoveById","_this$_evtUnloadById","_this$_evtLoadByUrl","_this$_evtAddByUrl","_this$_evtRemoveByUrl","_scope","RenderComponent","_meshInstances","destroyMeshInstances","_materialReferences","materialAssets","_onMaterialUnload","_assetReference","_onRenderAssetAdded","assignAsset","_clearSkinInstances","_cloneSkinInstances","_onSetMeshes","_cloneMeshes","_updateMainMaterial","oldRender","RenderComponentData","_schema$a","_properties$1","RenderComponentSystem","srcMeshInstances","ObjectPool","_resize","_pool","_constructor","_count","freeAll","_ammoTransform","_ammoVec1","_ammoVec2","_ammoQuat","_quat1","_quat2","_vec3","RigidBodyComponent","onAppDestroy","angularDamping","damping","_angularDamping","_body","_linearDamping","angularFactor","_angularFactor","angularVelocity","setAngularVelocity","_angularVelocity","getAngularVelocity","_simulationEnabled","friction","_friction","linearDamping","linearFactor","_linearFactor","linearVelocity","setLinearVelocity","_linearVelocity","getLinearVelocity","_mass","getCollisionShape","calculateLocalInertia","setMassProps","updateInertiaTensor","restitution","_restitution","rollingFriction","_rollingFriction","setRollingFriction","setActivationState","isActive","_dynamic","syncEntityToBody","_kinematic","_compounds","applyForce","applyTorque","applyImpulse","applyTorqueImpulse","isStaticOrKinematic","isKinematic","motionState","getMotionState","_updateDynamic","invertedAo","entityRot","_updateKinematic","teleport","RigidBodyComponentData","ammoRayStart","ammoRayEnd","RaycastResult","hitFraction","SingleContactResult","contactPoint","impulse","localPointA","localPointB","pointA","pointB","localPoint","localPointOther","pointOther","ContactPoint","ContactResult","contacts","_schema$9","RigidBodyComponentSystem","collisionConfiguration","btDefaultCollisionConfiguration","dispatcher","btCollisionDispatcher","overlappingPairCache","btDbvtBroadphase","solver","btSequentialImpulseConstraintSolver","btDiscreteDynamicsWorld","setInternalTickCallback","checkForCollisionsPointer","addFunction","_checkForCollisions","contactPointPool","contactResultPool","singleContactResultPool","addRigidBody","removeRigidBody","localInertia","btDefaultMotionState","bodyInfo","btRigidBodyConstructionInfo","btRigidBody","raycastFirst","filterTags","filterCallback","raycastAll","rayCallback","ClosestRayResultCallback","filterCollisionGroup","set_m_collisionFilterGroup","filterCollisionMask","set_m_collisionFilterMask","rayTest","hasHit","collisionObj","get_m_collisionObject","castObject","get_m_hitPointWorld","get_m_hitNormalWorld","get_m_closestHitFraction","AllHitsRayResultCallback","collisionObjs","get_m_collisionObjects","hitFractions","get_m_hitFractions","numHits","_storeCollision","isNewCollision","collisions","others","frameCollisions","_createContactPointFromAmmo","get_m_localPointA","get_m_localPointB","positionWorldOnA","getPositionWorldOnA","positionWorldOnB","getPositionWorldOnB","normalWorldOnB","get_m_normalWorldOnB","contact","getAppliedImpulse","_createReverseContactPointFromAmmo","_createSingleContactResult","_createContactResult","_cleanOldCollisions","frameCollision","entityCollision","entityRigidbody","_hasContactEvent","world","timeStep","wrapPointer","btDynamicsWorld","getDispatcher","numManifolds","getNumManifolds","manifold","getManifoldByIndexInternal","body0","getBody0","body1","getBody1","wb0","wb1","e0","flags0","flags1","numContacts","getNumContacts","forwardContacts","reverseContacts","newCollision","e0Events","e1Events","e0BodyEvents","e1BodyEvents","globalEvents","btContactPoint","getContactPoint","reverseContactPoint","forwardResult","reverseResult","_gravityFloat32","getGravity","setGravity","triggers","compounds","kinematic","stepSimulation","SCALEMODE_NONE","SCALEMODE_BLEND","_transform","ScreenComponent","queueDrawOrderSync","_processDrawOrderSync","_recurseDrawOrderSync","prevDrawOrder","_calcProjectionMatrix","_resolution","_updateScale","_calcScale","referenceResolution","_scaleBlend","_onResize","_referenceResolution","_scaleMode","scaleMode","scaleBlend","ScreenComponentData","_schema$8","ScreenComponentSystem","_onUpdate","windowResolution","processDrawOrderSyncQueue","_drawOrderSyncQueue","ScriptLegacyComponent","functionName","areScriptsLoaded","_initializeScriptComponent","_enableScriptComponent","postInitialized","_postInitializeScriptComponent","_disableScriptComponent","onSetScripts","runInTools","_updateScriptAttributes","_destroyScriptComponent","_loadFromCache","_loadScripts","onlyUpdateAttributes","_updateAccessors","_preRegisterInstance","onPostInitialize","_unprefixed","ScriptLegacyComponentData","_instances","_schema$7","INITIALIZE","POST_INITIALIZE","UPDATE","POST_UPDATE","FIXED_UPDATE","TOOLS_UPDATE","ON_ENABLE","ON_DISABLE","ScriptLegacyComponentSystem","dict","_cloneAttributes","_registerInstances","_callInstancesMethod","instancesWithUpdate","fixedUpdate","instancesWithFixedUpdate","postUpdate","instancesWithPostUpdate","toolsUpdate","instancesWithToolsUpdate","_updateInstances","updateList","onFixedUpdate","onPostUpdate","onToolsUpdate","broadcast","dataStore","instanceName","preRegistered","_createAccessors","_createAccessor","_convertAttributeValue","scriptComponent","previousAttributes","oldAttribute","onAttributeChanged","curveType","_inputScreenPosition","_inputWorldPosition","_ray","_plane","_normal","_entityRotation","OPPOSITE_AXIS","ElementDragHelper","_onMouseDownOrTouchStart","_toggleDragListeners","isOn","_hasDragListeners","_onMove","_onMouseUpOrTouchEnd","_isDragging","_dragCamera","_calculateDragScale","currentMousePosition","_screenToLocal","_dragStartMousePosition","_dragStartHandlePosition","inputSource","getDirection","_determineInputPosition","_chooseRayOriginAndDirection","_dragScale","isWithin2DScreen","screenScale","dragScale","_deltaMousePosition","deltaMousePosition","_deltaHandlePosition","deltaHandlePosition","_axis","currentPosition","constrainedAxis","isDragging","EVENT_DRAGSTART","EVENT_DRAGEND","EVENT_DRAGMOVE","SCROLL_MODE_CLAMP","SCROLL_MODE_BOUNCE","SCROLL_MODE_INFINITE","SCROLLBAR_VISIBILITY_SHOW_ALWAYS","SCROLLBAR_VISIBILITY_SHOW_WHEN_REQUIRED","_tempScrollValue","ScrollViewComponent","horizontal","vertical","scrollMode","bounceAmount","dragThreshold","useMouseWheel","mouseWheelSensitivity","horizontalScrollbarVisibility","verticalScrollbarVisibility","viewportEntity","_viewportEntity","_viewportEntityUnsubscribe","_viewportEntitySubscribe","contentEntity","_contentEntity","_contentEntityUnsubscribe","_contentEntitySubscribe","horizontalScrollbarEntity","_horizontalScrollbarEntity","_horizontalScrollbarEntityUnsubscribe","_scrollbarEntities","_horizontalScrollbarEntitySubscribe","verticalScrollbarEntity","_verticalScrollbarEntity","_verticalScrollbarEntityUnsubscribe","_verticalScrollbarEntitySubscribe","scroll","_onSetScroll","_scroll","_onSetHorizontalScrollingEnabled","_onSetVerticalScrollingEnabled","_toggleElementListeners","_hasElementListeners","_syncAll","_onMouseWheel","_evtElementRemove","_this$_evtElementRemo","_evtViewportEntityElementAdd","_onViewportElementGain","_this$_evtViewportEnt","_this$_viewportEntity","_onViewportElementLose","_viewportEntityElementSubscribe","_evtViewportElementRemove","_evtViewportResize","_viewportEntityElementUnsubscribe","_this$_evtViewportEle","_this$_evtViewportRes","_evtContentEntityElementAdd","_onContentElementGain","_this$_evtContentEnti","_this$_contentEntity","_onContentElementLose","_contentEntityElementSubscribe","_evtContentElementRemove","_evtContentResize","_contentEntityElementUnsubscribe","_this$_evtContentElem","_this$_evtContentResi","_destroyDragHelper","_contentDragHelper","_onContentDragStart","_onContentDragEnd","_onContentDragMove","_prevContentSizes","_dragStartPosition","_prevContentDragPosition","_enableContentInput","_wasDragged","_setScrollFromContentPosition","_setVelocityFromContentPositionDelta","_disabledContentInput","_disableContentInput","_evtHorizontalScrollbarAdd","_onHorizontalScrollbarGain","_evtVerticalScrollbarAdd","_onVerticalScrollbarGain","_this$_evtHorizontalS","_onHorizontalScrollbarLose","_this$_evtVerticalScr","_onVerticalScrollbarLose","_onSetHorizontalScrollbarValue","scrollValueX","_scrollbarUpdateFlags","_onSetVerticalScrollbarValue","scrollValueY","_this$_horizontalScro","_evtHorizontalScrollbarRemove","_evtHorizontalScrollbarValue","_syncScrollbarEnabledState","_syncScrollbarPosition","_this$_verticalScroll","_evtVerticalScrollbarRemove","_evtVerticalScrollbarValue","_this$_evtHorizontalS2","_this$_evtHorizontalS3","_this$_evtVerticalScr2","_this$_evtVerticalScr3","resetVelocity","xChanged","_updateAxis","yChanged","scrollValue","hasChanged","_determineNewScrollValue","_syncContentPosition","_getScrollingEnabled","_getMaxScrollValue","_setVelocityFromOvershoot","_getAxis","_getSign","prevContentSize","currContentSize","_getContentSize","prevMaxOffset","_getMaxOffset","currMaxOffset","contentPosition","scrollbarEntity","handleSize","_getScrollbarHandleSize","isScrollingEnabled","requestedVisibility","_getScrollbarVisibility","_contentIsLargerThanViewport","_getViewportSize","_contentPositionToScrollValue","maxOffsetH","maxOffsetV","contentSize","viewportSize","overshoot","_toOvershoot","_getSize","_getCalculatedDimension","_updateVelocity","_hasOvershoot","maxScrollValue","overshootValue","overshootPixels","_applyScrollValueTension","log10","_setScrollbarComponentsEnabled","_this$_horizontalScro2","_this$_verticalScroll2","_setContentDraggingEnabled","_this$_contentEntity2","wheelEvent","normalizedDeltaX","deltaX","normalizedDeltaY","scrollX","scrollY","_disabledContentInputEntities","_disableInput","oldScrollView","EVENT_SETSCROLL","DEFAULT_DRAG_THRESHOLD$1","ScrollViewComponentData","_schema$6","DEFAULT_DRAG_THRESHOLD","ScrollViewComponentSystem","ScrollbarComponent","handleEntity","_handleEntity","_handleEntityUnsubscribe","_handleEntitySubscribe","_onSetValue","_onSetHandleSize","_onSetOrientation","_evtHandleEntityElementAdd","_onHandleElementGain","_this$_evtHandleEntit","_this$_handleEntity","_onHandleElementLose","_handleEntityElementSubscribe","handles","_evtHandleEntityChanges","_onSetHandleAlignment","_handleEntityElementUnsubscribe","_handleDragHelper","_onHandleDrag","_updateHandlePositionAndSize","_handlePositionToScrollValue","_this$_handleEntity2","_getOppositeDimension","handleElement","_getHandlePosition","_getDimension","_getHandleLength","handlePosition","_getUsableTrackLength","_scrollValueToHandlePosition","_getTrackLength","_setHandleDraggingEnabled","oldScrollbar","EVENT_SETVALUE","ScrollbarComponentData","_schema$5","ScrollbarComponentSystem","_onAddComponent","instanceOptions","SoundSlot","overlap","isLoaded","_hasAsset","_createInstance","playWhenLoaded","resumed","stopped","_onAssetRemoved","_overlap","_onInstancePlayHandler","_onInstancePauseHandler","_onInstanceResumeHandler","_onInstanceStopHandler","_onInstanceEndHandler","positional","_onInstancePlay","_onInstancePause","_onInstanceResume","_onInstanceStop","_onInstanceEnd","updatePosition","oldAsset","_autoPlay","assetDuration","SoundComponent","_updateSoundInstances","isFactor","_slots","_positional","oldLength","playingBeforeDisable","_playingBeforeDisable","addSlot","removeSlot","_getSlotProperty","SoundComponentData","_schema$4","SoundComponentSystem","srcComponent","srcSlots","srcSlot","cloneData","SPRITETYPE_SIMPLE","SPRITETYPE_ANIMATED","SpriteAnimationClip","MIN_VALUE","_setFrame","_setTime","_frame","_paused","_onSpritePpuChanged","currentClip","_hideModel","_showModel","_showFrame","_destroy","EVENT_LOOP","PARAM_EMISSIVE_MAP","PARAM_OPACITY_MAP","PARAM_EMISSIVE","PARAM_OPACITY","PARAM_INNER_OFFSET","PARAM_OUTER_SCALE","PARAM_ATLAS_RECT","SpriteComponent","_currentClip","_defaultClip","_autoPlayClip","_tryAutoPlay","flipX","_flipX","_updateTransform","autoPlayClip","_addedModel","_onLayersChanged","_onLayerAdded","_onLayerRemoved","onDestroy","_this$_node","default9SlicedMaterialSlicedMode","default9SlicedMaterialTiledMode","posX","posY","SpriteComponentData","_schema$3","SpriteComponentSystem","_defaultMaterial","_default9SlicedMaterialSlicedMode","_default9SlicedMaterialTiledMode","_data$opacity","_data$opacity2","ZoneComponent","_size","_checkState","_oldState","EVENT_ENABLE","EVENT_DISABLE","EVENT_STATE","ZoneComponentData","_schema$2","ZoneComponentSystem","PostEffectEntry","effect","PostEffectQueue","_allocateColorBuffer","_renderTarget$width","_renderTarget$height","destinationRenderTarget","_createOffscreenTarget","useDepth","hdr","effects","_resizeOffscreenTarget","_destroyOffscreenTarget","addEffect","isFirstEffect","newEntry","_sourceTarget","_newPostEffect","_requestDepthMap","removeEffect","_releaseDepthMap","_requestDepthMaps","_releaseDepthMaps","requestSceneDepthMap","_onCanvasResized","fx","destTarget","_renderTarget$width2","_renderTarget$height2","resizeRenderTargets","_renderTarget$width3","_renderTarget$height3","desiredWidth","desiredHeight","onCameraRectChanged","depthTarget","CameraComponent","setShaderPass","_camera","getShaderPass","_this$_camera$shaderP","passes","dirtyLayerCompositionCameras","_disablePostEffectsLayer","postEffects","_postEffects","_sceneColorMapRequested","requestSceneColorMap","_renderSceneColorMap","_sceneDepthMapRequested","_renderSceneDepthMap","_enableDepthLayer","hasDepthLayer","layerComp","screenx","screeny","cameraz","onAppPrerender","addCameraToLayers","removeCameraFromLayers","_this$_evtLayersChang2","_this$_evtLayerAdded2","_this$_evtLayerRemove2","calculateAspectRatio","startXr","spaceType","endXr","CameraComponentData","_schema$1","CameraComponentSystem","LightComponentData","cookieAsset","cookieAngle","cookieScale","LightComponent","refreshProperties","_cookieAssetId","onCookieAssetRemove","onCookieAssetAdd","_cookieAssetAdd","setFunc","skipEqualsCheck","addLightToLayers","removeLightFromLayers","onCookieAssetSet","forceLoad","_cookieAsset","onCookieAssetLoad","LightComponentSystem","vecLookup","rawToValue","field","vecType","CurveType","attributeToValue","assignAttributesToScript","attributeSchemaMap","attributeName","attributeSchema","dataToAssign","ScriptAttributes","reservedNames","__attributes","evtName","oldCopy","SCRIPT_INITIALIZE","SCRIPT_POST_INITIALIZE","SCRIPT_UPDATE","SCRIPT_POST_UPDATE","SCRIPT_SWAP","Script","_enabledOld","_scriptMethod","_destroyed","initScript","__destroyed","__scriptType","__executionOrder","EVENT_ATTR","__getScriptName","getScriptName","funcNameRegex","constructorFn","__attributesRaw","initScriptType","__initializeAttributes","methods","toLowerCamelCase$1","ScriptComponent","wasLooping","_beginLooping","_endLooping","_isLoopingThroughScripts","wasLoopingBefore","_removeDestroyedScripts","_addComponentToEnabled","_removeComponentFromEnabled","_destroyedScripts","_removeScriptInstance","_resetExecutionOrder","_onInitializeAttributes","_this$system$app$scri","_attributeDataMap","_onInitialize","_onPostInitialize","_updateList","_postUpdateList","_insertScriptInstance","scriptsLength","_resolveEntityScriptAttribute","useGuid","newAttributes","newGuidArray","scriptData","_scriptType","_scriptType$__name","onSwap","scriptInstanceOld","oldScriptComponent","newScriptComponent","newAttributesRaw","oldAttributes","newJsonValue","move","indOld","_executionOrder","EVENT_CREATE","EVENT_MOVE","ScriptComponentData","METHOD_INITIALIZE_ATTRIBUTES","METHOD_INITIALIZE","METHOD_POST_INITIALIZE","METHOD_UPDATE","METHOD_POST_UPDATE","executionOrderCounter","ScriptComponentSystem","MAX_SAFE_INTEGER","_enabledComponents","_entity$script$_attri","_callComponentMethod","GSplatComponent","_this$_instance","_instance","_this$_instance2","destroyInstance","_materialOptions","materialOptions","_this$_instance3","_onGSplatAssetRemove","_onGSplatAssetAdded","_this$_instance4","_this$instance","_layers$getLayerById","_this$instance2","_layers$getLayerById2","_onGSplatAssetLoad","createInstance","_onGSplatAssetUnload","GSplatComponentData","_schema","_properties","GSplatComponentSystem","gSplatComponent","Render","decRefMeshes","incRefMeshes","EVENT_SETMESHES","onContainerAssetLoaded","containerResource","renders","renderIndex","onContainerAssetAdded","onContainerAssetRemoved","RenderHandler","AnimCurve","_paths","AnimData","DracoWorker","jsUrl","draco","POSITION_ATTRIBUTE","NORMAL_ATTRIBUTE","typedArray","DT_INT8","DT_INT16","DT_INT32","DT_UINT8","DT_UINT16","DT_UINT32","DT_FLOAT32","componentSizeInBytes","attributeSizeInBytes","num_components","data_type","attributeOrder","generateNormals","subtract","decodeMesh","DecoderBuffer","Init","Decoder","GetEncodedGeometryType","TRIANGULAR_MESH","DecodeBufferToMesh","ok","ptr","num_faces","shortIndices","num_points","indicesSize","indicesPtr","_malloc","GetTrianglesUInt16Array","HEAPU16","GetTrianglesUInt32Array","HEAPU32","_free","num_attributes","GetAttribute","_attributeOrder$a$att","_attributeOrder$b$att","attribute_type","unique_id","totalVertexSize","normalOffset","sizeInBytes","ptrSize","GetAttributeDataArrayForAllPoints","HEAPU8","jobId","workQueue","DracoDecoderModule","instantiateWasm","imports","successCallback","downloadMaxRetries","JobQueue","jobCallbacks","jobQueue","job","index2","index1","enqueueJob","downloadScript","compileModule","compileManual","arrayBuffer","compileStreaming","defaultNumWorkers$1","lazyConfig$1","initializeWorkers","moduleConfig","numWorkers","dracoSource","dracoModule","blob","workerUrl","dracoInitialize","lazyInit","dracoDecode","GlbResources","gltf","meshVariants","meshDefaultMaterials","skins","isDataURI","getDataURIMimeType","getNumComponents","accessorType","getComponentType$1","getComponentSizeInBytes","getComponentDataType","gltfToEngineSemanticMap","getDequantizeFunc","dequantizeArray","dstArray","srcArray","convFunc","getAccessorData","gltfAccessor","bufferViews","sparse","indicesAccessor","valuesAccessor","baseAccessor","bufferView","targetIndex","bytesPerElement","tmpArray","dstOffset","byteStride","getAccessorDataFloat32","normalized","float32Data","getAccessorBoundingBox","ctype","getPrimitiveType","generateIndices","dummyIndices","sourceDesc","srcStride","normalsTemp","flipTexCoordVs","floatOffsets","shortOffsets","byteOffsets","flip","cloneTexture","shallowCopyLevels","cloneTextureAsset","createVertexBufferInternal","flipV","positionDesc","sourceOffset","isCorrectlyInterleaved","targetArray","sourceArray","targetStride","sourceStride","kend","createVertexBuffer","vertexBufferDict","useAttributes","attribIds","attrib","vbKey","accessorData","createSkin","gltfSkin","glbSkins","bindMatrix","joints","numJoints","inverseBindMatrices","ibmData","ibmValues","createDracoMesh","_primitive$extensions","POSITION","_accessor$normalized","dracoExt","extensions","KHR_draco_mesh_compression","decompressedData","_primitive$attributes","NORMAL","indexFormat","KHR_materials_variants","tempMapping","mappings","createMesh$1","gltfMesh","assetOptions","primitives","_primitive$extensions2","extras","targetNames","morphPreserveData","morphPreferHighPrecision","extractTextureTransform","_source$extensions","texCoord","zeros","ones","textureTransform","KHR_texture_transform","tilingVec","offsetVec","extensionPbrSpecGlossiness","diffuseFactor","diffuseTexture","diffuseMapChannel","specularFactor","glossinessFactor","specularGlossinessTexture","glossMap","specularMapChannel","glossMapChannel","extensionClearCoat","clearcoatFactor","clearcoatTexture","clearCoatMap","clearCoatMapChannel","clearcoatRoughnessFactor","clearcoatRoughnessTexture","clearCoatGlossMap","clearCoatGlossMapChannel","clearcoatNormalTexture","extensionUnlit","emissiveMapUv","diffuseMapUv","emissiveMapTiling","diffuseMapTiling","emissiveMapOffset","diffuseMapOffset","emissiveMapRotation","diffuseMapRotation","emissiveMapChannel","emissiveVertexColorChannel","diffuseVertexColorChannel","extensionSpecular","specularColorTexture","specularColorFactor","specularityFactorMapChannel","specularTexture","extensionIor","ior","extensionDispersion","extensionTransmission","transmissionFactor","refractionMapChannel","transmissionTexture","extensionSheen","sheenColorFactor","sheenColorTexture","sheenRoughnessFactor","sheenRoughnessTexture","sheenGlossMapChannel","extensionVolume","thicknessFactor","thicknessMap","thicknessTexture","thicknessMapChannel","attenuationColor","extensionEmissiveStrength","emissiveStrength","extensionIridescence","iridescenceFactor","iridescenceMapChannel","iridescenceMap","iridescenceTexture","iridescenceIor","iridescenceThicknessMinimum","iridescenceThicknessMaximum","iridescenceThicknessMapChannel","iridescenceThicknessMap","iridescenceThicknessTexture","gltfMaterial","pbrData","pbrMetallicRoughness","baseColorFactor","baseColorTexture","metallicFactor","roughnessFactor","metallicRoughnessTexture","metalnessMapChannel","normalTexture","occlusionTexture","aoMapChannel","emissiveFactor","emissiveTexture","alphaCutoff","doubleSided","extensionFunc","createAnimation","gltfAnimation","animationIndex","gltfAccessors","gltfNodes","createAnimData","interpMap","inputMap","outputMap","curveMap","outputCounter","quatArrays","transformSchema","constructNodePath","createMorphTargetCurves","gltfNode","outData","morphTargetCount","keyframeCount","singleBufferSize","_targetNames","morphTargetOutput","morphCurve","channels","inputKey","outputKey","curveKey","curveData","prevIndex","dp","tempMat","tempVec","createNode","translation","createCamera","gltfCamera","gltfProperties","orthographic","perspective","ymag","xmag","yfov","cameraEntity","createLight","gltfLight","lightProps","createSkins","createMeshes","_gltf$meshes","_gltf$accessors","_gltf$bufferViews","skipMeshes","_options$material","_options$material$pro","_options$material2","_options$material3","preprocess","postprocess","createVariants","createAnimations","_options$animation","_options$animation2","createNodes","_options$node","_options$node$process","_options$node2","_options$node3","uniqueNames","createScenes","_gltf$scenes$0$nodes","sceneRoot","childNode","createCameras","_options$camera","_options$camera$proce","_options$camera2","_options$camera3","createLights","KHR_lights_punctual","gltfLights","_options$light","_options$light$proces","_options$light2","_options$light3","linkSkins","meshGroup","createResources","_options$global","_options$global2","bufferViewData","textureAssets","textureInstances","applySampler","gltfSampler","getFilter","getWrap","_gltfSampler","wrapS","wrapT","gltfTextureUniqueId","createImages","urlBase","_options$image","_options$image2","_options$image3","images","processAsync","mimeTypeFileExtensions","loadTexture","gltfImage","mimeType","crossOrigin","createTextures","_gltf$images","_gltf$textures","_options$texture","_options$texture2","_options$texture3","seenImages","gltfTexture","gltfImageIndex","_gltfImageIndex","_gltfTexture$extensio","_gltfTexture$extensio2","KHR_texture_basisu","EXT_texture_webp","cloneAsset","imageAsset","_gltf$samplers","loadBuffers","binaryChunk","_options$buffer","_options$buffer2","_options$buffer3","gltfBuffer","byteString","binaryArray","parseGltf","gltfChunk","decodeBinaryUtf8","parseGlb","glbData","magic","chunkLength","chunkType","chunkData","parseChunk","hasGlbHeader","u8","createBufferViews","_options$bufferView","_options$bufferView2","_options$bufferView3","_gltf$bufferViews2","gltfBufferView","GlbParser","createDefaultMaterial","AnimationHandler","_asset$options","parseResult","_asset$data","_parseAnimationV3","animData","_parseAnimationV4","defPos","defaults","defRot","defScl","AnimClipHandler","AnimStateGraphHandler","ie","msie","trident","rv","AudioHandler","_isSupported","msg","_createSound","decodeAudioData","onReady","BinaryHandler","GlbContainerResource","createModel","createAsset","_assetName","assetName","subAsset","instantiateModelEntity","instantiateRenderEntity","skinnedMeshInstances","createMeshInstance","materialIndex","cloneHierarchy","glb","attachedMi","glbNode","cloneMi","childClone","sceneClones","createSceneHierarchy","getMaterialVariants","applyMaterialVariant","renderComponent","_applyMaterialVariant","applyMaterialVariantInstances","sceneNodes","nodeType","skinIndex","destroyAsset","destroyAssets","GlbContainerParser","_getUrlWithoutParams","ContainerResource","ContainerHandler","glbContainerParser","parsers","_getParser","CssHandler","CubemapHandler","loadAssets","getAssetIds","cubemapAsset","compareAssetIds","assetIdA","assetIdB","assetData","oldAssets","_handlerState","oldResources","getType","faceAssets","cmpArrays","_assetData$mipmaps","faceTextures","faceLevels","faceTexture","faces","resolveId","valueInt","loadedAssetIds","loadedAssets","onError","processTexAsset","texAsset","assetId_","FolderHandler","Font","em","upgradeDataSchema","newChars","existing","newKey","letter","FontHandler","numLoaded","onLoaded","SplatCompressedIterator","unpackUnorm","unpack111011","unpack8888","unpackRot","chunkSize","shData","shBands","shCoeffs","ci","GSplatCompressedData","numChunks","_sizes","_this$shData","decompress","members","shMembers","rot_1","rot_2","rot_3","rot_0","scale_0","scale_1","scale_2","f_dc_0","f_dc_1","f_dc_2","_c","splatCoreVS","splatCoreFS","GSplatCompressedShaderGenerator","gsplatCompressed","splatMainVS","splatMainFS","createGSplatCompressedMaterial","strideCopy","numEntries","GSplatCompressed","_this$packedTexture","_this$chunkTexture","_this$shTexture","_this$shTexture2","_this$shTexture3","packedTexture","chunkTexture","shTexture0","shTexture1","shTexture2","chunkTextureSize","chunkTextureData","data0","target1","target2","srcCoeffs","GSplatResource","_this$splat","splatData","createSplat","splatInstance","magicBytes","endHeaderBytes","dataTypeMap","Float64Array","StreamBuf","tail","remaining","newSize","copyWithin","compact","getInt8","getInt16","getInt32","getFloat32","getFloat64","parseHeader","isCompressedPly","chunkProperties","vertexProperties","shProperties","_","hasBaseElements","hasSHElements","isFloatPly","readCompressedPly","streamBuf","littleEndian","numChunkProperties","evalStorageSize","toCopy","readFloatPly","numProperties","inputSize","vertexIdx","floatData","checkFloatData","_floatData","toRead","readGeneralPly","propertyParsingFunctions","readPly","propertyFilter","headerLength","storageType","defaultElementFilter","PlyParser","_asset$data$elementFi","elementFilter","_asset$data$reorder","GSplatHandler","CompressUtils","setCompressedPRS","compressed","singleVecs","___1","tripleVecs","___2","oneCharToKey","fieldFirstCode","fieldArray","multCharToKey","fieldCodeBase","Decompress","_handleMap","_handleArray","_result","_handleKey","origKey","_handleArElt","elt","SceneParser","compressedFormat","entDecompressed","curData","curEnt","_createEntity","childEnt","_openComponentData","_data$enabled","resource_id","_setPosRotScale","_isTemplate","template","labels","addLabel","systemsList","entityData","isTemplate","SceneUtils","errMsg","HierarchyHandler","HtmlHandler","JsonHandler","StandardMaterialValidator","setInvalid","removeInvalid","validate","TYPES","REMOVED","pathMapping","enumType","enumValidators","chunkNames","validated","_createEnumValidator","JsonStandardMaterialParser","migrated","migrate","mapping_format","RENAMED_PROPERTIES","DEPRECATED_PROPERTIES","_validator","PLACEHOLDER_MAP","sheenGlossinessMap","MaterialHandler","_createPlaceholders","_placeholderTextures","white","gray","black","_bindAndAssignAssets","_assignTexture","_getPlaceholderTexture","placeholder","_assignPlaceholderTexture","_onTextureAdd","_onTextureRemoveOrUnload","_assignCubemap","prefiltered","_onCubemapLoad","_onCubemapAdd","_onCubemapRemoveOrUnload","prefilteredCubeMap128","TEXTURES","assetReference","dataAssetId","isPlaceHolderTexture","dataValidated","CUBEMAPS","GlbModelParser","modelHandler","JSON_PRIMITIVE_TYPE","JSON_VERTEX_ELEMENT_TYPE","JsonModelParser","modelData","_parseNodes","_parseSkins","_parseVertexBuffers","_parseIndexBuffers","morphs","_parseMorphs","_parseMeshes","_parseMeshInstances","nodeData","parents","skinData","ibm","_getMorphVertexCount","morphIndex","morphTarget","morphTargetArray","sparseToFull","totalCount","full","attributeMap","texCoord0","texCoord1","texCoord2","texCoord3","texCoord4","texCoord5","texCoord6","texCoord7","maxVerts","meshAabb","meshInstanceData","ModelHandler","_parsers","decider","handleMaterial","addParser","SceneHandler","reservedScriptNames","getReservedScriptNames","createScript","registerScript","reservedAttributes","value2","toLowerCamelCase","ScriptHandler","onScriptLoad","basePath","isEsmScript","_loadModule","_loadScript","baseUrl","importUrl","__esmScriptDynamicImportRuntime__","scriptSchema","scriptClass","extendsScriptType","ShaderHandler","onTextureAtlasLoaded","onTextureAtlasAdded","SpriteHandler","__data","_updateAtlas","Template","_templateRoot","_parseTemplate","TemplateHandler","TextHandler","JSON_ADDRESS_MODE$1","JSON_FILTER_MODE$1","regexFrame","TextureAtlasHandler","textureUrl","minfilter","magfilter","addressu","addressv","BasisWorker","BASIS_FORMAT","cTFETC1","cTFETC2","cTFBC1","cTFBC3","cTFPVRTC1_4_RGB","cTFPVRTC1_4_RGBA","cTFASTC_4x4","cTFATC_RGB","cTFATC_RGBA_INTERPOLATED_ALPHA","cTFRGBA32","cTFRGB565","cTFRGBA4444","opaqueMapping","astc","atc","none","alphaMapping","PIXEL_FORMAT","ETC1","ETC2_RGB","ETC2_RGBA","DXT1","DXT5","PVRTC_4BPP_RGB_1","PVRTC_4BPP_RGBA_1","ASTC_4x4","ATC_RGB","ATC_RGBA","R8_G8_B8_A8","R5_G6_B5","R4_G4_B4_A4","basisToEngineMapping","basisFormat","deviceDetails","unswizzleGGGR","genB","R","G","pack565","isPOT","performanceNow","rgbPriority","rgbaPriority","chooseTargetFormat","hasAlpha","isUASTC","testInOrder","dimensionsValid","webgl2","transcodeKTX2","KTX2File","funcStart","basisFile","getWidth","getHeight","getLevels","getHasAlpha","unswizzle","isGGGR","startTranscoding","levelData","dstSize","getImageTranscodedSizeInBytes","transcodeImage","is16BitFormat","transcodeTime","unswizzledGGGR","transcodeBasis","BasisFile","getImageWidth","getImageHeight","getNumImages","getNumLevels","transcode","isKTX2","workerTranscode","workerInit","instantiateWasmFunc","initializeBasis","getCompressionFormats","prepareWorkerModules","getWorkerBlob","basisCode","sendResponse","module_","BasisQueue","clients","enqueueClient","client","handleResponse","BasisClient","transfer","eager","defaultNumWorkers","defaultRgbPriority","defaultRgbaPriority","defaultMaxRetries","lazyConfig","basisInitialize","eagerWorkers","clientConfig","basisTranscode","TextureParser","BasisParser","basisModuleFound","ImgParser","hasContents","_loadImageBitmapFromBlob","_loadImageBitmap","_loadImage","originalUrl","Image","retryTimeout","createImageBitmap","colorSpaceConversion","imageBitmap","IDENTIFIER","KNOWN_FORMATS","createContainer","KtxParser","dataU32","endianness","glTypeSize","glInternalFormat","glBaseInternalFormat","pixelDepth","numberOfArrayElements","numberOfFaces","numberOfMipmapLevels","bytesOfKeyValueData","isCubemap","mipmapLevel","imageSizeInBytes","KHRConstants","KHR_DF_MODEL_ETC1S","KHR_DF_MODEL_UASTC","Ktx2Parser","rs","vkFormat","typeSize","levelCount","supercompressionScheme","dfdByteOffset","dfdByteLength","kvdByteOffset","kvdByteLength","sgdByteOffset","sgdByteLength","uncompressedByteLength","dfdTotalSize","colorModel","DdsParser","isFourCc","fcc","bpp","FCC_DXT1","FCC_DXT5","FCC_FP16","FCC_FP32","FCC_ETC1","FCC_PVRTC_2BPP_RGB_1","FCC_PVRTC_2BPP_RGBA_1","FCC_PVRTC_4BPP_RGB_1","FCC_PVRTC_4BPP_RGBA_1","pvrtc2","pvrtc4","mipSize","DXT_BLOCK_WIDTH","DXT_BLOCK_HEIGHT","numBlocksAcross","numBlocksDown","numBlocks","mipWidth","mipHeight","mipBuff","HdrParser","readStream","_readPixels","_readPixelsFlat","scanstart","JSON_ADDRESS_MODE","JSON_FILTER_MODE","JSON_TEXTURE_TYPE","_completePartialMipmapChain","isHtmlElement","downsample","sampledWidth","sampledHeight","sampledData","xs","ys","xsys","TextureHandler","imgParser","_getTextureOptions","_asset$name","dds","ktx","ktx2","XRTYPE_INLINE","XRTYPE_VR","XRTYPE_AR","XRSPACE_VIEWER","XRSPACE_LOCAL","XRSPACE_LOCALFLOOR","XRSPACE_BOUNDEDFLOOR","XRSPACE_UNBOUNDED","XRTARGETRAY_GAZE","XRTARGETRAY_SCREEN","XRTARGETRAY_POINTER","XREYE_NONE","XREYE_LEFT","XREYE_RIGHT","XRHAND_NONE","XRHAND_LEFT","XRHAND_RIGHT","XRTRACKABLE_POINT","XRTRACKABLE_PLANE","XRTRACKABLE_MESH","XRDEPTHSENSINGUSAGE_CPU","XRDEPTHSENSINGUSAGE_GPU","XRDEPTHSENSINGFORMAT_L8A8","XRDEPTHSENSINGFORMAT_F32","XrDepthSensing","_onSessionStart","_views","availableDepth","_this$_views$list$","_evtDepthResize","_onDepthResize","_onSessionEnd","_available","getDepth","_this$_views$list$0$g","_this$_views$list$2","supportedDepth","depthUsage","dataFormat","_this$_views$list$0$t","_this$_views$list$3","textureDepth","_this$_views$list$0$t2","_this$_views$list$4","_this$_views$list$5","uvMatrix","_this$_views$list$0$d","_this$_views$list$6","depthUvMatrix","_uvMatrix","rawValueToMeters","_this$_views$list$0$d2","_this$_views$list$7","depthValueToMeters","EVENT_AVAILABLE","EVENT_UNAVAILABLE","XrDomOverlay","_supported","_session","domOverlayState","_root","XRDOMOverlayState","poolVec3","poolQuat","XrHitTestSource","_xrHitTestSource","hitTest","cancel","_transient","transientResults","getHitTestResultsForTransientInput","transientResult","_getByInputSource","updateHitResults","getHitTestResults","_poolVec3$pop","_poolVec3$pop2","_poolQuat$pop","_inputSource","candidateDistance","candidateHitTestResult","pose","getPose","_referenceSpace","xrHitTestSource","transient","EVENT_RESULT","XrHitTest","enabledFeatures","_checkingAvailability","requestReferenceSpace","referenceSpace","requestHitTestSource","hitTestSource","profile","xrRay","offsetRay","DOMPoint","XRRay","entityTypes","_onHitTestSource","requestHitTestSourceForTransientInput","XRSession","XrTrackedImage","trackable","_trackable","tracking","_tracking","emulated","_emulated","_bitmap","widthInMeters","bitmap","_pose","_rotation","_measuredWidth","EVENT_TRACKED","EVENT_UNTRACKED","XrImageTracking","trackedImage","_images","getTrackedImageScores","prepareImages","bitmaps","getImageTrackingResults","trackingState","measuredWidthInMeters","imageSpace","XRImageTrackingResult","XrFinger","_hand","_joints","tip","_tip","_fingers","tipJointIds","XRHand","tipJointIdsIndex","XrJoint","_radius","_localPosition","_localRotation","_updateTransforms","_localTransform","finger","_finger","wrist","_wrist","fingerJointIds","vecA$1","vecB$1","vecC","XrHand","xrInputSource","_xrInputSource","jointSpace","getJointPose","j1","_jointsById","j4","j6","j9","j16","j21","_dirtyRay","_rayLocal","jointL","jointR","handedness","squeezing","_fingerIsClosed","_squeezing","getJointById","fingers","tips","_tips","xrHand","jointId","EVENT_TRACKING","EVENT_TRACKINGLOST","vec3A$1","quat","ids$1","XrInputSource","targetRayMode","profiles","grip","_grip","selecting","_selecting","_elementInput","_elementEntity","elementEntity","hitTestSources","_hitTestSources","gripSpace","gripPose","_localPositionLast","_velocitiesTimestamp","_velocitiesAvailable","velocitiesSupported","targetRayPose","targetRaySpace","_updateRayTransforms","parentTransform","hitTestStart","onHitTestSourceAdd","hitTestResult","onHitTestSourceRemove","EVENT_SQUEEZE","EVENT_SQUEEZESTART","EVENT_SQUEEZEEND","EVENT_HITTESTADD","EVENT_HITTESTREMOVE","EVENT_HITTESTRESULT","XrInput","_onInputSourcesChangeEvt","inputSources","_addInputSource","_inputSources","_onInputSourcesChange","_removeInputSource","added","_window$XRPose","XRPose","vec3A","vec3B","mat4A","mat4B","XrLightEstimation","requestLightProbe","_lightProbeRequested","_lightProbe","lightProbe","wasRequested","lightEstimate","getLightEstimate","pli","primaryLightIntensity","primaryLightDirection","_sphericalHarmonics","sphericalHarmonicsCoefficients","sphericalHarmonics","XrPlane","_xrPlane","_planeDetection","planeSpace","_lastChangedTime","lastChangedTime","polygon","semanticLabel","planeDetection","xrPlane","XrPlaneDetection","_planes","_planesIndex","detectedPlanes","XRPlane","XrAnchor","_xrAnchor","xrAnchor","anchorSpace","_anchors","persist","persistence","_uuid","_uuidRequests","requestPersistentHandle","uuid","_indexByUuid","uuidRequest","forget","anchors","EVENT_PERSIST","EVENT_FORGET","XrAnchors","_creationQueue","_createAnchor","_onAnchorDestroy","XRHitTestResult","hitResult","createAnchor","XRRigidTransform","_persistence","restorePersistentAnchor","deletePersistentAnchor","_callbacksAnchors","trackedAnchors","uuids","persistentAnchors","XRAnchor","XrMesh","xrMesh","_xrMesh","_meshDetection","meshSpace","_lastChanged","meshDetection","XrMeshDetection","detectedMeshes","_removeMesh","XRMesh","XrView","textureColor","_textureColor","_textureDepth","_depthMatrix","_this$_depthInfo","_depthInfo","eye","_xrView","_viewport","_projViewOffMat","_viewOffMat","_viewInvOffMat","_viewMat3","_positionData","xrView","availableColor","_xrCamera","getViewport","inverse","_viewInvMat","_updateTextureColor","_updateDepth","webglBinding","getCameraImage","_frameBufferSource","_frameBuffer","_this$_depthInfo2","_this$_depthInfo3","depthGpuOptimized","infoSource","depthInfo","getDepthInformation","matrixDirty","resized","normDepthBufferFromNormView","_emptyDepthBuffer","_onDeviceLost","_this$_depthInfo$getD","_this$_depthInfo4","getDepthInMeters","viewsCount","supportedColor","depthPixelFormat","EVENT_DEPTHRESIZE","XrViews","_supportedColor","_supportedDepth","_availableColor","_availableDepth","_depthUsage","_depthFormat","_this$_depthFormats$t","_depthFormats","xrViews","_indexTmp","depthDataFormat","XRCamera","XRWebGLBinding","XRDepthInformation","XrManager","_options$framebufferS","_this$app$graphicsDev","_this$app$graphicsDev2","_spaceType","_framebufferScaleFactor","framebufferScaleFactor","_setClipPlanes","optionalFeatures","webgl","imageTracking","domOverlay","depthSensing","usagePreference","dataFormatPreference","cameraColor","trackedImages","_onStartOptionsReady","requestSession","isAvailable","_deviceAvailabilityCheck","_sessionSupportCheck","initiateRoomCapture","updateTargetFrameRate","frameRate","_this$_session","isSessionSupported","onClipPlanesChange","_createBaseLayer","supportedFrameRates","_supportedFrameRates","_this$_session2","_depthNear","_depthFar","updateRenderState","depthNear","depthFar","_baseLayer","XRWebGLLayer","_onDeviceRestored","makeXRCompatible","framebufferWidth","framebufferHeight","getViewerPose","lengthOld","posePosition","poseOrientation","lightEstimation","_this$_session$frameR","_this$_session3","fixedFoveation","_this$_baseLayer$fixe","_this$_baseLayer","_this$_baseLayer$fixe2","_this$_baseLayer2","EVENT_START","EVENT_UPDATE","Application","createDevice","graphicsDeviceOptions","addComponentSystems","addResourceHandles","_options$graphicsDevi","AssetListLoader","_waitingAssets","_onAddAsset","_assetHasDependencies","_callback","loadingAssets","_loadingAssets","_loadingComplete","_failed","_waitForAsset","assetList","assetRegistry","DEFAULT_TEXTURE_SIZE","Atlas","ctx","clearRect","fillStyle","fillRect","CanvasFont","_chars","_normalizeCharsSet","_renderAtlas","updateTextures","newCharsSet","atlases","fontName","glyphSize","fontWeight","_colorToRgbString","renderCharacter","fillText","_getAtlas","charsArray","TEXT_ALIGN","TEXT_BASELINE","atlasIndex","_createJson","maxDescent","metrics","_getTextMetrics","descent","_xOffset","_yOffset","textAlign","textBaseline","measureText","_addChar","mapNum","mapW","mapH","textSpan","innerHTML","ascent","tempMeshInstances$1","RenderPassPicker","srcLayers","pickColorId","pickColor","srcLayer","miId","tempSet","Picker","getSelection","selection","SceneSettingsHandler","targetX","targetY","vecA","vecB","rayA","rayB","rayC","_pq","_pa","_pb","_pc","_pd","_m","_au","_bv","_cw","_ir","_sct","_accumulatedScale","_paddingTop","_paddingBottom","_paddingLeft","_paddingRight","_cornerBottomLeft","_cornerBottomRight","_cornerTopRight","_cornerTopLeft","ZERO_VEC4","scalarTriple","intersectLineQuad","denom","ElementInputEvent","_stopPropagation","stopImmediatePropagation","ElementMouseEvent","lastX","lastY","ElementTouchEvent","ElementSelectEvent","ElementInput","domElement","_useMouse","_useTouch","_touchstartHandler","_touchendHandler","_touchmoveHandler","_touchcancelHandler","_selectEventsAttached","_useXr","_clickedEntities","_onXrStart","_onXrEnd","_onXrUpdate","_onXrInputRemove","_calcMouseCoords","_onElementMouseEvent","_determineTouchedElements","touchedElements","_getTargetElementByCoords","newTouchedElements","newTouchInfo","oldTouchInfo","_touchedElements","_fireEvent","_touchesForWhichTouchLeaveHasFired","touchId","touchInfo","hovered","eventType","lastHovered","_hoveredElement","_pressedElement","fireClick","lastTouchUp","_onElementSelectEvent","_selectedElements","_selectedPressedElements","hoveredBefore","hoveredNow","_getTargetElementByRay","_sortElements","rayScreen","_calculateRayScreen","ray3d","_calculateRay3d","_getTargetElement","screenPos","closestDistance3d","currentDistance","_checkElement","cameraLeft","cameraRight","cameraBottom","cameraTop","calculateScaleToScreen","calculateScaleToWorld","buildHitCorners","screenOrWorldCorners","useMouse","useTouch","useXr","LINEBATCH_WORLD","LINEBATCH_OVERLAY","LINEBATCH_GIZMO","debug","warning","alert","subs","Timer","_isRunning","_a","_b","getMilliseconds","_data3","inherits","Self","Super","Temp","Func","_super","makeArray","createStyle","cssString","styleSheet","cssText","createTextNode","INV_LOG2","LOG2E","intToBytes","bytesToInt","Aabb","Sphere","intersectRay","viewProj","ELEMENTTYPE_INT8","ELEMENTTYPE_UINT8","ELEMENTTYPE_INT16","ELEMENTTYPE_UINT16","ELEMENTTYPE_INT32","ELEMENTTYPE_UINT32","ELEMENTTYPE_FLOAT32","PIXELFORMAT_L8_A8","PIXELFORMAT_R5_G6_B5","PIXELFORMAT_R5_G5_B5_A1","PIXELFORMAT_R4_G4_B4_A4","PIXELFORMAT_R8_G8_B8","PIXELFORMAT_R8_G8_B8_A8","BLENDMODE_CONSTANT_COLOR","BLENDMODE_ONE_MINUS_CONSTANT_COLOR","BLENDMODE_CONSTANT_ALPHA","BLENDMODE_ONE_MINUS_CONSTANT_ALPHA","UnsupportedBrowserError","ContextCreationError","programlib","gfx","Device","ShaderInput","createSphere","createPlane","createBox","createTorus","createCapsule","createCone","createCylinder","createMesh","drawFullscreenQuad","posteffect","createFullscreenQuad","deprecatedChunks","defineProperties","lib","removeShaderFromCache","_tempBlendState","_tempDepthState","setBlendFunction","blendSrc","blendDst","setBlendFunctionSeparate","blendSrcAlpha","blendDstAlpha","setBlendEquation","setBlendEquationSeparate","blendAlphaEquation","getBlending","setBlending","setDepthFunc","setDepthTest","getCullMode","PhongMaterial","LitOptions","procedural","Projection","ORTHOGRAPHIC","PERSPECTIVE","_models","addModel","containsModel","models","addShadowCaster","removeModel","getModels","syncAabb","_dirtify","local","getLabels","hasLabel","removeLabel","findByLabel","getChildren","getName","getPath","getRoot","getParent","setName","_defineAlias","oldName","_defineOption","tempOptions","litOptionProperties","getOwnPropertyNames","litOption","getNodes","setDuration","getCurrentTime","getLooping","getNumNodes","setAnimation","setCurrentTime","setLooping","AudioManager","getListener","getAssetById","RIGIDBODY_TYPE_STATIC","RIGIDBODY_TYPE_DYNAMIC","RIGIDBODY_TYPE_KINEMATIC","RIGIDBODY_CF_STATIC_OBJECT","RIGIDBODY_CF_KINEMATIC_OBJECT","RIGIDBODY_CF_NORESPONSE_OBJECT","RIGIDBODY_ACTIVE_TAG","RIGIDBODY_ISLAND_SLEEPING","RIGIDBODY_WANTS_DEACTIVATION","RIGIDBODY_DISABLE_DEACTIVATION","RIGIDBODY_DISABLE_SIMULATION","isFullscreen","enableFullscreen","Element","ALLOW_KEYBOARD_INPUT","disableFullscreen","getSceneUrl","renderMeshInstance","renderMesh","_addLines","renderLine","endColor","renderLines","multiColor","enableVr","setVisible","syncBodyToEntity","basisSetDownloadConfig","prefilterCubemap","__dummyFunction","CpuTimer","_frameIndex","_frameTimings","_prevTimings","_timings","mark","timing","unitsName","decimalPlaces","GpuTimer","StatsTimer","statNames","multiplier","Graph","timer","avgTotal","avgTimer","avgCount","textRefreshRate","timingText","watermark","sample","render2d","WordAtlas","word","placements","initContext","isNumber","measurement","actualBoundingBoxLeft","actualBoundingBoxRight","actualBoundingBoxAscent","actualBoundingBoxDescent","getImageData","vertexShader","fragmentShader$1","Render2d","uw","uh","wordFlag","rh","tw","u0","u1","quads","prim","startFrame","scrollWidth","scrollHeight","graphTexture","wordsTexture","clr","maxQuads","MiniStats","updateDiv","postRender","graphs","wordAtlas","getDefaultOptions","startSizeIndex","cpu","activeSizeIndex","_activeSizeIndex","gspacing","overallHeight","initGraphs","drawLayer","showGraphs","stat","textureBlitVertexShader","textureBlitFragmentShader","CoreExporter","textureToCanvas","calcTextureSize","_canvas","imagedata","putImageData","dstTexture","newImage","ImageData","newContext","u16","i32","fleb","fdeb","clim","freb","eb","fl","revfl","revfd","rev","hMap","cd","mb","le","co","rvb","sv","r_1","flt","fdt","flm","fdm","shft","slc","ec","nt","captureStackTrace","wbits","o","wbits16","hTree","et","i0","maxSym","tr","mbt","ln","lft","cst","i2_1","i2_2","i2_3","lc","cl","cli","cln","cls","clen","wfblk","dat","wblk","final","syms","lf","df","li","bs","bl","dlt","mlb","ddt","mdb","lclt","nlc","_d","lcdt","ndc","lcfreq","_e","lct","mlcb","nlcc","flen","ftlen","dtlen","lm","ll","dm","dl","llm","lcts","clct","sym","deo","dflt","lvl","plvl","pre","st","lst","msk_1","bs1_1","bs2_1","hsh","lc_1","wi","hv","imod","pimod","rem","ch_1","dif","maxn","maxd","ml","nl","mmd","md","ti","pti","lin","din","crct","crc","dopt","dictionary","newDat","mem","mrg","wbytes","deflateSync","fltn","te","TextEncoder","td","tds","strToU8","latin1","ai","exfl","wzh","ce","exl","os","compression","mtime","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","exf","wzf","zipSync","files","tot","com","comment","oe","cdl","badd","ROOT_FILE_NAME","materialListTemplate","meshTemplate","faceVertexCounts","uv0","uv1","meshInstanceTemplate","meshRefPath","worldMatrix","materialRefPath","materialValueTemplate","UsdzExporter","meshMap","textureMap","materialMap","nodeNames","build","allMeshInstances","rootContent","buildMeshInstance","textureArray","texturePromise","toBlob","finalData","textureArrayBuffer","getTextureFileIds","alignFiles","offsetMod64","padLength","getFileIds","category","refName","uniqueId","content","contentU8","getMaterialRef","materialRef","buildMaterial","getMeshRef","meshRef","buildMesh","buildArray2","buildArray3","buildMat4","vectors","materialName","materialPath","materialPropertyPath","textureIds","mapType","addTexture","textureSlot","propType","valueName","handleOpacity","tintTexture","textureValue","materialObject","indicesCount","meshObject","refPath","getIndexComponentType","getComponentType","getAccessorType","getSemantic","engineSemantic","isCanvasTransparent","textureSemantics","GltfExporter","collectResources","entityMeshInstances","bufferViewMap","compressableTexture","collectMeshInstances","nodeMeshInstances","writeBufferViews","writeBufferView","_json$buffers","_json$buffers$","bufferInfo","addBufferView","bufferViewIndex","bufferViewIndices","writeCameras","cam","attachTexture","textureSemantic","_json$extensionsUsed","_json$extensionsRequi","extensionsUsed","extensionsRequired","writeStandardMaterial","pbr","writeBasicMaterial","writeMaterials","writeNodes","entityMeshInstance","writeMeshes","createPrimitive","viewIndex","convertTextures","srcTextures","srcTexture","writeTextures","textureCanvases","isRGBA","getBlob","FileReader","readAsArrayBuffer","onloadend","getPaddedArrayBuffer","quality","convertToBlob","paddingByte","paddedLength","buildJson","_this","encoder","jsonData","jsonHeaderLength","jsonDataLength","jsonPaddingLength","binaryHeaderLength","binaryDataLength","totalLength","glbBuffer","glbView","setUint32","setUint8","bufferViewId","srcBuffer","RenderPassDownsample","sourceTextureId","sourceInvResolutionValue","sourceInvResolutionId","RenderPassUpsample","RenderPassBloom","destroyRenderPasses","destroyRenderTargets","createRenderTarget","createRenderTargets","bloomRenderTarget","calcMipLevels","createRenderPasses","numPasses","passSourceTexture","_sourceTexture","_this$renderTargets$","firstPass","lastMipLevel","bloomTexture","RenderPassCompose","_bloomTexture","_shaderDirty","taaEnabled","_taaEnabled","gradingEnabled","_gradingEnabled","vignetteEnabled","_vignetteEnabled","fringingEnabled","_fringingEnabled","toneMapChunk","sharpness","_sharpness","isSharpnessEnabled","fsChunks","sceneTextureId","sceneTexture","sceneTextureInvResValue","sceneTextureInvResId","bloomTextureId","bloomIntensityId","bloomIntensity","bcsId","gradingBrightness","gradingContrast","gradingSaturation","vignetterParamsId","vignetteInner","vignetteOuter","vignetteCurvature","vignetteIntensity","fringingIntensityId","fringingIntensity","sharpnessId","RenderPassTAA","setup","historyTextures","historyRenderTargets","historyTexture","historyTextureId","historyIndex","textureSize","textureSizeId","viewProjPrevId","viewProjInvId","jittersId","tempMeshInstances","DEPTH_UNIFORM_NAME","VELOCITY_UNIFORM_NAME","RenderPassPrepass","_this$velocityTexture","velocityTexture","velocityFormat","RenderPassCameraFrame","_rt","sanitizeOptions","sceneColorMap","lastGrabLayerId","lastGrabLayerIsTransparent","lastSceneLayerId","lastSceneLayerIsTransparent","renderTargetScale","_renderTargetScale","scenePass","bloomEnabled","_bloomEnabled","composePass","bloomPass","setupRenderPasses","targetRenderTarget","sceneDepth","sceneOptions","prepassEnabled","prePass","lastAddedIndex","scenePassTransparent","sceneTextureWithTaa","taaPass","afterPass","allPasses","_this$taaPass$update","_this$taaPass","GIZMOSPACE_LOCAL","GIZMOSPACE_WORLD","GIZMOAXIS_X","GIZMOAXIS_Y","GIZMOAXIS_Z","GIZMOAXIS_YZ","GIZMOAXIS_XZ","GIZMOAXIS_XY","GIZMOAXIS_XYZ","GIZMOAXIS_FACE","tmpV1$8","tmpV2$8","tmpM1$2","tmpM2","tmpR1$1","LAYER_NAME","MIN_SCALE","PERS_SCALE_RATIO","ORTHO_SCALE_RATIO","UPDATE_EPSILON$1","Gizmo","createLayer","coordSpace","_coordSpace","_updateRotation","facing","gizmoPos","_onPointerDown","_getSelection","setPointerCapture","pointerId","EVENT_POINTERDOWN","_onPointerMove","EVENT_POINTERMOVE","_onPointerUp","releasePointerCapture","EVENT_POINTERUP","_updatePosition","EVENT_POSITIONUPDATE","EVENT_ROTATIONUPDATE","EVENT_SCALEUPDATE","intersectShapes","disabled","parentTM","triData","tris","triWTM","invTriWTM","s0","EVENT_NODESATTACH","EVENT_RENDERUPDATE","EVENT_NODESDETACH","COLOR_RED","COLOR_GREEN","COLOR_BLUE","COLOR_YELLOW","COLOR_GRAY","color3from4","color4from3","tmpV1$7","tmpV2$7","tmpQ1$5","tmpR1","tmpP1","VEC3_AXES","TransformGizmo","shading","_shading","_shapes","snap","_snap","xAxisColor","_updateAxisColor","_meshColors","yAxisColor","zAxisColor","colorAlpha","_colorAlpha","_colorSemi","xyz","hover","_hoverAxis","_guideColors","_getIsPlane","_hover","_this$_shapeMap$get","_dragging","_hoverIsPlane","_shapeMap","_hoverShape","_createRay","mouseWPos","orthoDepth","_createPlane","isFacing","isLine","facingDir","_rootStartRot","_rootStartPos","_dirFromAxis","_projectToAxis","_screenToPoint","_selectedAxis","_drawGuideLines","gizmoRot","checkAxis","checkIsPlane","_selectedIsPlane","_drawSpanLine","_createTransform","enableShape","shapeAxis","isShapeEnabled","_noSelection","_selectionStartPoint","snapIncrement","EVENT_TRANSFORMSTART","EVENT_TRANSFORMMOVE","EVENT_TRANSFORMEND","tmpV1$6","tmpV2$6","tmpV3$3","TriData","setTransform","_geometry$positions","_geometry$indices","tri","SHADING_DAMP_SCALE","SHADING_DAMP_OFFSET","LIGHT_DIR","GEOMETRIES","cone","cylinder","torus","shaderDesc","shadingMeshMap","tmpV1$5","tmpV2$5","tmpM1$1","tmpG","applyShadowColor","localLightDir","strength","setMeshColor","Shape","_disabledColor","_defaultColor","_disabled","_createRoot","_createRenderComponent","_cull","_addRenderMesh","_hoverColor","_options$axis","_options$position","_options$rotation","_options$scale","_options$disabled","_options$layers","_options$shading","defaultColor","hoverColor","disabledColor","UPDATE_EPSILON","PlaneShape","gap","_gap","flipped","_flipped","_getPosition","tmpV1$4","tmpV2$4","tmpQ1$4","ArrowShape","_updateHead","_updateLine","lineThickness","_lineThickness","lineLength","_lineLength","arrowThickness","_arrowThickness","arrowLength","_arrowLength","tolerance","_tolerance","_line","_createArrow","_head","SphereShape","_createCenter","tmpV1$3","tmpV2$3","tmpV3$2","tmpQ1$3","GLANCE_EPSILON$1","TranslateGizmo","axisGap","_setArrowProp","axisLineThickness","axisLineLength","axisLineTolerance","axisArrowThickness","axisArrowLength","axisPlaneSize","_setPlaneProp","axisPlaneGap","axisCenterSize","axisCenterTolerance","_shapesLookAtCamera","flipShapes","_storeNodePositions","_nodeLocalPositions","_nodePositions","_setNodePositions","pointDelta","_node$parent","isPlane","TORUS_RENDER_SEGMENTS","TORUS_INTERSECT_SEGMENTS","ArcShape","_createTorusGeometry","_tubeRadius","_ringRadius","_sectorAngle","_createTorusMesh","_createDisk","drag","_options$tubeRadius","_options$ringRadius","_options$sectorAngle","_lightDir","tmpV1$2","tmpV2$2","tmpV3$1","tmpV4","tmpM1","tmpQ1$2","tmpQ2","FACING_THRESHOLD","GUIDE_ANGLE_COLOR","RotateGizmo","xyzTubeRadius","_setDiskProp","xyzRingRadius","faceTubeRadius","faceRingRadius","ringTolerance","_storeGuidePoints","_guideAngleStart","_guideAngleEnd","_updateGuidePoints","angleDelta","_drawGuideAngleLine","_getLookAtEulerAngles","_drag","_storeNodeRotations","_nodeLocalRotations","_nodeRotations","_nodeOffsets","_setNodeRotations","_calculateAngle","facingDot","orbitRotation","_selectionStartAngle","_guideAngleStartColor","BoxShape","tmpV1$1","tmpV2$1","tmpQ1$1","BoxLineShape","_updateBox","boxSize","_boxSize","_createBoxLine","_box","tmpV1","tmpV2","tmpV3","tmpQ1","GLANCE_EPSILON","ScaleGizmo","_useUniformScaling","axisBoxSize","_storeNodeScales","_nodeScales","_setNodeScales","lowerBoundScale","isScaleUniform","loadModules","urlPrefix","moduleLoaded","ASSET_PREFIX","SCRIPT_PREFIX","SCENE_PATH","CONTEXT_OPTIONS","SCRIPTS","CONFIG_FILENAME","INPUT_SETTINGS","useKeyboard","useGamepads","PRELOAD_MODULES","pc","showSplash","wrapper","splash","logo","bar","hideSplash","getElementById","parentElement","setProgress","createCss","css"],"mappings":"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"}