@threepipe/plugin-gltf-transform 0.1.0 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../node_modules/property-graph/dist/property-graph.modern.js","../node_modules/@gltf-transform/core/dist/core.modern.js","../node_modules/ktx-parse/dist/ktx-parse.modern.js","../node_modules/@gltf-transform/extensions/dist/extensions.modern.js","../src/GLTFDracoExporter.ts","../src/GLTFDracoExportPlugin.ts"],"sourcesContent":["class EventDispatcher {\n constructor() {\n this._listeners = {};\n }\n\n addEventListener(type, listener) {\n const listeners = this._listeners;\n\n if (listeners[type] === undefined) {\n listeners[type] = [];\n }\n\n if (listeners[type].indexOf(listener) === -1) {\n listeners[type].push(listener);\n }\n\n return this;\n }\n\n removeEventListener(type, listener) {\n if (this._listeners === undefined) return this;\n const listeners = this._listeners;\n const listenerArray = listeners[type];\n\n if (listenerArray !== undefined) {\n const index = listenerArray.indexOf(listener);\n\n if (index !== -1) {\n listenerArray.splice(index, 1);\n }\n }\n\n return this;\n }\n\n dispatchEvent(event) {\n if (this._listeners === undefined) return this;\n const listeners = this._listeners;\n const listenerArray = listeners[event.type];\n\n if (listenerArray !== undefined) {\n // Make a copy, in case listeners are removed while iterating.\n const array = listenerArray.slice(0);\n\n for (let i = 0, l = array.length; i < l; i++) {\n array[i].call(this, event);\n }\n }\n\n return this;\n }\n\n dispose() {\n for (const key in this._listeners) {\n delete this._listeners[key];\n }\n }\n\n}\n\n/**\n * Represents a connection between two {@link GraphNode} resources in a {@link Graph}.\n *\n * The left node is considered the owner, and the right node the resource. The\n * owner is responsible for being able find and remove a reference to a resource, given\n * that link. The resource does not hold a reference to the link or to the owner,\n * although that reverse lookup can be done on the graph.\n */\n\nclass GraphEdge extends EventDispatcher {\n constructor(_name, _parent, _child, _attributes = {}) {\n super();\n this._name = void 0;\n this._parent = void 0;\n this._child = void 0;\n this._attributes = void 0;\n this._disposed = false;\n this._name = _name;\n this._parent = _parent;\n this._child = _child;\n this._attributes = _attributes;\n\n if (!_parent.isOnGraph(_child)) {\n throw new Error('Cannot connect disconnected graphs.');\n }\n }\n /** Name. */\n\n\n getName() {\n return this._name;\n }\n /** Owner node. */\n\n\n getParent() {\n return this._parent;\n }\n /** Resource node. */\n\n\n getChild() {\n return this._child;\n }\n /**\n * Sets the child node.\n *\n * @internal Only {@link Graph} implementations may safely call this method directly. Use\n * \t{@link Property.swap} or {@link Graph.swapChild} instead.\n */\n\n\n setChild(child) {\n this._child = child;\n return this;\n }\n /** Attributes of the graph node relationship. */\n\n\n getAttributes() {\n return this._attributes;\n }\n /** Destroys a (currently intact) edge, updating both the graph and the owner. */\n\n\n dispose() {\n if (this._disposed) return;\n this._disposed = true;\n this.dispatchEvent({\n type: 'dispose',\n target: this\n });\n super.dispose();\n }\n /** Whether this link has been destroyed. */\n\n\n isDisposed() {\n return this._disposed;\n }\n\n}\n\n/**\n * A graph manages a network of {@link GraphNode} nodes, connected\n * by {@link @Link} edges.\n */\n\nclass Graph extends EventDispatcher {\n constructor(...args) {\n super(...args);\n this._emptySet = new Set();\n this._edges = new Set();\n this._parentEdges = new Map();\n this._childEdges = new Map();\n }\n\n /** Returns a list of all parent->child edges on this graph. */\n listEdges() {\n return Array.from(this._edges);\n }\n /** Returns a list of all edges on the graph having the given node as their child. */\n\n\n listParentEdges(node) {\n return Array.from(this._childEdges.get(node) || this._emptySet);\n }\n /** Returns a list of parent nodes for the given child node. */\n\n\n listParents(node) {\n return this.listParentEdges(node).map(edge => edge.getParent());\n }\n /** Returns a list of all edges on the graph having the given node as their parent. */\n\n\n listChildEdges(node) {\n return Array.from(this._parentEdges.get(node) || this._emptySet);\n }\n /** Returns a list of child nodes for the given parent node. */\n\n\n listChildren(node) {\n return this.listChildEdges(node).map(edge => edge.getChild());\n }\n\n disconnectParents(node, filter) {\n let edges = this.listParentEdges(node);\n\n if (filter) {\n edges = edges.filter(edge => filter(edge.getParent()));\n }\n\n edges.forEach(edge => edge.dispose());\n return this;\n }\n /**\n * Creates a {@link GraphEdge} connecting two {@link GraphNode} instances. Edge is returned\n * for the caller to store.\n * @param a Owner\n * @param b Resource\n */\n\n\n createEdge(name, a, b, attributes) {\n return this._registerEdge(new GraphEdge(name, a, b, attributes));\n }\n /**********************************************************************************************\n * Internal.\n */\n\n /** @hidden */\n\n\n _registerEdge(edge) {\n this._edges.add(edge);\n\n const parent = edge.getParent();\n if (!this._parentEdges.has(parent)) this._parentEdges.set(parent, new Set());\n\n this._parentEdges.get(parent).add(edge);\n\n const child = edge.getChild();\n if (!this._childEdges.has(child)) this._childEdges.set(child, new Set());\n\n this._childEdges.get(child).add(edge);\n\n edge.addEventListener('dispose', () => this._removeEdge(edge));\n return edge;\n }\n /**\n * Removes the {@link GraphEdge} from the {@link Graph}. This method should only\n * be invoked by the onDispose() listener created in {@link _registerEdge()}. The\n * public method of removing an edge is {@link GraphEdge.dispose}.\n */\n\n\n _removeEdge(edge) {\n this._edges.delete(edge);\n\n this._parentEdges.get(edge.getParent()).delete(edge);\n\n this._childEdges.get(edge.getChild()).delete(edge);\n\n return this;\n }\n\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction isRef(value) {\n return value instanceof GraphEdge;\n}\nfunction isRefList(value) {\n return Array.isArray(value) && value[0] instanceof GraphEdge;\n}\nfunction isRefMap(value) {\n return !!(isPlainObject(value) && getFirstValue(value) instanceof GraphEdge);\n}\n\nfunction getFirstValue(value) {\n for (const key in value) {\n return value[key];\n }\n}\n\nfunction isPlainObject(value) {\n return Boolean(value) && Object.getPrototypeOf(value) === Object.prototype;\n}\n\nconst $attributes = Symbol('attributes');\nconst $immutableKeys = Symbol('immutableKeys');\n/**\n * Represents a node in a {@link Graph}.\n */\n\nclass GraphNode extends EventDispatcher {\n /**\n * Internal graph used to search and maintain references.\n * @hidden\n */\n\n /**\n * Attributes (literal values and GraphNode references) associated with this instance. For each\n * GraphNode reference, the attributes stores a {@link GraphEdge}. List and Map references are\n * stored as arrays and dictionaries of edges.\n * @internal\n */\n\n /**\n * Attributes included with `getDefaultAttributes` are considered immutable, and cannot be\n * modifed by `.setRef()`, `.copy()`, or other GraphNode methods. Both the edges and the\n * properties will be disposed with the parent GraphNode.\n *\n * Currently, only single-edge references (getRef/setRef) are supported as immutables.\n *\n * @internal\n */\n constructor(graph) {\n super();\n this._disposed = false;\n this.graph = void 0;\n this[$attributes] = void 0;\n this[$immutableKeys] = void 0;\n this.graph = graph;\n this[$immutableKeys] = new Set();\n this[$attributes] = this._createAttributes();\n }\n /**\n * Returns default attributes for the graph node. Subclasses having any attributes (either\n * literal values or references to other graph nodes) must override this method. Literal\n * attributes should be given their default values, if any. References should generally be\n * initialized as empty (Ref → null, RefList → [], RefMap → {}) and then modified by setters.\n *\n * Any single-edge references (setRef) returned by this method will be considered immutable,\n * to be owned by and disposed with the parent node. Multi-edge references (addRef, removeRef,\n * setRefMap) cannot be returned as default attributes.\n */\n\n\n getDefaults() {\n return {};\n }\n /**\n * Constructs and returns an object used to store a graph nodes attributes. Compared to the\n * default Attributes interface, this has two distinctions:\n *\n * 1. Slots for GraphNode<T> objects are replaced with slots for GraphEdge<this, GraphNode<T>>\n * 2. GraphNode<T> objects provided as defaults are considered immutable\n *\n * @internal\n */\n\n\n _createAttributes() {\n const defaultAttributes = this.getDefaults();\n const attributes = {};\n\n for (const key in defaultAttributes) {\n const value = defaultAttributes[key];\n\n if (value instanceof GraphNode) {\n const ref = this.graph.createEdge(key, this, value);\n ref.addEventListener('dispose', () => value.dispose());\n this[$immutableKeys].add(key);\n attributes[key] = ref;\n } else {\n attributes[key] = value;\n }\n }\n\n return attributes;\n }\n /** @internal Returns true if two nodes are on the same {@link Graph}. */\n\n\n isOnGraph(other) {\n return this.graph === other.graph;\n }\n /** Returns true if the node has been permanently removed from the graph. */\n\n\n isDisposed() {\n return this._disposed;\n }\n /**\n * Removes both inbound references to and outbound references from this object. At the end\n * of the process the object holds no references, and nothing holds references to it. A\n * disposed object is not reusable.\n */\n\n\n dispose() {\n if (this._disposed) return;\n this.graph.listChildEdges(this).forEach(edge => edge.dispose());\n this.graph.disconnectParents(this);\n this._disposed = true;\n this.dispatchEvent({\n type: 'dispose'\n });\n }\n /**\n * Removes all inbound references to this object. At the end of the process the object is\n * considered 'detached': it may hold references to child resources, but nothing holds\n * references to it. A detached object may be re-attached.\n */\n\n\n detach() {\n this.graph.disconnectParents(this);\n return this;\n }\n /**\n * Transfers this object's references from the old node to the new one. The old node is fully\n * detached from this parent at the end of the process.\n *\n * @hidden\n */\n\n\n swap(old, replacement) {\n for (const attribute in this[$attributes]) {\n const value = this[$attributes][attribute];\n\n if (isRef(value)) {\n const ref = value;\n\n if (ref.getChild() === old) {\n this.setRef(attribute, replacement, ref.getAttributes());\n }\n } else if (isRefList(value)) {\n const refs = value;\n const ref = refs.find(ref => ref.getChild() === old);\n\n if (ref) {\n const refAttributes = ref.getAttributes();\n this.removeRef(attribute, old).addRef(attribute, replacement, refAttributes);\n }\n } else if (isRefMap(value)) {\n const refMap = value;\n\n for (const key in refMap) {\n const ref = refMap[key];\n\n if (ref.getChild() === old) {\n this.setRefMap(attribute, key, replacement, ref.getAttributes());\n }\n }\n }\n }\n\n return this;\n }\n /**********************************************************************************************\n * Literal attributes.\n */\n\n /** @hidden */\n\n\n get(attribute) {\n return this[$attributes][attribute];\n }\n /** @hidden */\n\n\n set(attribute, value) {\n this[$attributes][attribute] = value;\n return this.dispatchEvent({\n type: 'change',\n attribute\n });\n }\n /**********************************************************************************************\n * Ref: 1:1 graph node references.\n */\n\n /** @hidden */\n\n\n getRef(attribute) {\n const ref = this[$attributes][attribute];\n return ref ? ref.getChild() : null;\n }\n /** @hidden */\n\n\n setRef(attribute, value, attributes) {\n if (this[$immutableKeys].has(attribute)) {\n throw new Error(`Cannot overwrite immutable attribute, \"${attribute}\".`);\n }\n\n const prevRef = this[$attributes][attribute];\n if (prevRef) prevRef.dispose(); // TODO(cleanup): Possible duplicate event.\n\n if (!value) return this;\n const ref = this.graph.createEdge(attribute, this, value, attributes);\n ref.addEventListener('dispose', () => {\n delete this[$attributes][attribute];\n this.dispatchEvent({\n type: 'change',\n attribute\n });\n });\n this[$attributes][attribute] = ref;\n return this.dispatchEvent({\n type: 'change',\n attribute\n });\n }\n /**********************************************************************************************\n * RefList: 1:many graph node references.\n */\n\n /** @hidden */\n\n\n listRefs(attribute) {\n const refs = this[$attributes][attribute];\n return refs.map(ref => ref.getChild());\n }\n /** @hidden */\n\n\n addRef(attribute, value, attributes) {\n const ref = this.graph.createEdge(attribute, this, value, attributes);\n const refs = this[$attributes][attribute];\n refs.push(ref);\n ref.addEventListener('dispose', () => {\n let index;\n\n while ((index = refs.indexOf(ref)) !== -1) {\n refs.splice(index, 1);\n }\n\n this.dispatchEvent({\n type: 'change',\n attribute\n });\n });\n return this.dispatchEvent({\n type: 'change',\n attribute\n });\n }\n /** @hidden */\n\n\n removeRef(attribute, value) {\n const refs = this[$attributes][attribute];\n const pruned = refs.filter(ref => ref.getChild() === value);\n pruned.forEach(ref => ref.dispose()); // TODO(cleanup): Possible duplicate event.\n\n return this;\n }\n /**********************************************************************************************\n * RefMap: Named 1:many (map) graph node references.\n */\n\n /** @hidden */\n\n\n listRefMapKeys(key) {\n return Object.keys(this[$attributes][key]);\n }\n /** @hidden */\n\n\n listRefMapValues(key) {\n return Object.values(this[$attributes][key]).map(ref => ref.getChild());\n }\n /** @hidden */\n\n\n getRefMap(attribute, key) {\n const refMap = this[$attributes][attribute];\n return refMap[key] ? refMap[key].getChild() : null;\n }\n /** @hidden */\n\n\n setRefMap(attribute, key, value, metadata) {\n const refMap = this[$attributes][attribute];\n const prevRef = refMap[key];\n if (prevRef) prevRef.dispose(); // TODO(cleanup): Possible duplicate event.\n\n if (!value) return this;\n metadata = Object.assign(metadata || {}, {\n key: key\n });\n const ref = this.graph.createEdge(attribute, this, value, _extends({}, metadata, {\n key\n }));\n ref.addEventListener('dispose', () => {\n delete refMap[key];\n this.dispatchEvent({\n type: 'change',\n attribute,\n key\n });\n });\n refMap[key] = ref;\n return this.dispatchEvent({\n type: 'change',\n attribute,\n key\n });\n }\n /**********************************************************************************************\n * Events.\n */\n\n /**\n * Dispatches an event on the GraphNode, and on the associated\n * Graph. Event types on the graph are prefixed, `\"node:[type]\"`.\n */\n\n\n dispatchEvent(event) {\n super.dispatchEvent(_extends({}, event, {\n target: this\n }));\n this.graph.dispatchEvent(_extends({}, event, {\n target: this,\n type: `node:${event.type}`\n }));\n return this;\n }\n\n}\n\nexport { $attributes, $immutableKeys, EventDispatcher, Graph, GraphEdge, GraphNode, isRef, isRefList, isRefMap };\n//# sourceMappingURL=property-graph.modern.js.map\n","import{GraphNode as t,$attributes as e,GraphEdge as r,$immutableKeys as s,isRefList as n,isRefMap as i,isRef as o,Graph as a}from\"property-graph\";export{Graph,GraphEdge}from\"property-graph\";const u=\"v3.2.1\",c=\"@glb.bin\";var h,f,l,d,g;!function(t){t.ACCESSOR=\"Accessor\",t.ANIMATION=\"Animation\",t.ANIMATION_CHANNEL=\"AnimationChannel\",t.ANIMATION_SAMPLER=\"AnimationSampler\",t.BUFFER=\"Buffer\",t.CAMERA=\"Camera\",t.MATERIAL=\"Material\",t.MESH=\"Mesh\",t.PRIMITIVE=\"Primitive\",t.PRIMITIVE_TARGET=\"PrimitiveTarget\",t.NODE=\"Node\",t.ROOT=\"Root\",t.SCENE=\"Scene\",t.SKIN=\"Skin\",t.TEXTURE=\"Texture\",t.TEXTURE_INFO=\"TextureInfo\"}(h||(h={})),function(t){t.INTERLEAVED=\"interleaved\",t.SEPARATE=\"separate\"}(f||(f={})),function(t){t.ARRAY_BUFFER=\"ARRAY_BUFFER\",t.ELEMENT_ARRAY_BUFFER=\"ELEMENT_ARRAY_BUFFER\",t.INVERSE_BIND_MATRICES=\"INVERSE_BIND_MATRICES\",t.OTHER=\"OTHER\",t.SPARSE=\"SPARSE\"}(l||(l={})),function(t){t[t.R=4096]=\"R\",t[t.G=256]=\"G\",t[t.B=16]=\"B\",t[t.A=1]=\"A\"}(d||(d={})),function(t){t.GLTF=\"GLTF\",t.GLB=\"GLB\"}(g||(g={}));const p={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};var m,w=\"undefined\"!=typeof Float32Array?Float32Array:Array;function y(t){return Math.hypot(t[0],t[1],t[2])}function v(t,e,r){var s=e[0],n=e[1],i=e[2],o=r[3]*s+r[7]*n+r[11]*i+r[15];return t[0]=(r[0]*s+r[4]*n+r[8]*i+r[12])/(o=o||1),t[1]=(r[1]*s+r[5]*n+r[9]*i+r[13])/o,t[2]=(r[2]*s+r[6]*n+r[10]*i+r[14])/o,t}function T(t){const e={min:[Infinity,Infinity,Infinity],max:[-Infinity,-Infinity,-Infinity]},r=t.propertyType===h.NODE?[t]:t.listChildren();for(const t of r)t.traverse(t=>{const r=t.getMesh();if(!r)return;const s=x(r,t.getWorldMatrix());A(s.min,e),A(s.max,e)});return e}Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)}),m=new w(3),w!=Float32Array&&(m[0]=0,m[1]=0,m[2]=0);const b=T;function x(t,e){const r={min:[Infinity,Infinity,Infinity],max:[-Infinity,-Infinity,-Infinity]};for(const s of t.listPrimitives()){const t=s.getAttribute(\"POSITION\");if(!t)continue;let n=[0,0,0],i=[0,0,0];for(let s=0;s<t.getCount();s++)n=t.getElement(s,n),i=v(i,n,e),A(i,r)}return r}function A(t,e){for(let r=0;r<3;r++)e.min[r]=Math.min(t[r],e.min[r]),e.max[r]=Math.max(t[r],e.max[r])}class E{static createBufferFromDataURI(t){if(\"undefined\"==typeof Buffer){const e=atob(t.split(\",\")[1]),r=new Uint8Array(e.length);for(let t=0;t<e.length;t++)r[t]=e.charCodeAt(t);return r}{const e=t.split(\",\")[1],r=t.indexOf(\"base64\")>=0;return Buffer.from(e,r?\"base64\":\"utf8\")}}static encodeText(t){return\"undefined\"!=typeof TextEncoder?(new TextEncoder).encode(t):Buffer.from(t)}static decodeText(t){return\"undefined\"!=typeof TextDecoder?(new TextDecoder).decode(t):Buffer.from(t).toString(\"utf8\")}static concat(t){let e=0;for(const r of t)e+=r.byteLength;const r=new Uint8Array(e);let s=0;for(const e of t)r.set(e,s),s+=e.byteLength;return r}static pad(t,e=0){const r=this.padNumber(t.byteLength);if(r===t.byteLength)return t;const s=new Uint8Array(r);if(s.set(t),0!==e)for(let n=t.byteLength;n<r;n++)s[n]=e;return s}static padNumber(t){return 4*Math.ceil(t/4)}static equals(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;let r=t.byteLength;for(;r--;)if(t[r]!==e[r])return!1;return!0}static toView(t,e=0,r=Infinity){return new Uint8Array(t.buffer,t.byteOffset+e,Math.min(t.byteLength,r))}static assertView(t){if(t&&!ArrayBuffer.isView(t))throw new Error(`Method requires Uint8Array parameter; received \"${typeof t}\".`);return t}}class M{static hexToFactor(t,e){t=Math.floor(t);const r=e;return r[0]=(t>>16&255)/255,r[1]=(t>>8&255)/255,r[2]=(255&t)/255,this.convertSRGBToLinear(e,e)}static factorToHex(t){const e=[...t],[r,s,n]=this.convertLinearToSRGB(t,e);return 255*r<<16^255*s<<8^255*n<<0}static convertSRGBToLinear(t,e){const r=t,s=e;for(let t=0;t<3;t++)s[t]=r[t]<.04045?.0773993808*r[t]:Math.pow(.9478672986*r[t]+.0521327014,2.4);return e}static convertLinearToSRGB(t,e){const r=t,s=e;for(let t=0;t<3;t++)s[t]=r[t]<.0031308?12.92*r[t]:1.055*Math.pow(r[t],.41666)-.055;return e}}class S{match(t){return t.length>=8&&137===t[0]&&80===t[1]&&78===t[2]&&71===t[3]&&13===t[4]&&10===t[5]&&26===t[6]&&10===t[7]}getSize(t){const e=new DataView(t.buffer,t.byteOffset);return E.decodeText(t.slice(12,16))===S.PNG_FRIED_CHUNK_NAME?[e.getUint32(32,!1),e.getUint32(36,!1)]:[e.getUint32(16,!1),e.getUint32(20,!1)]}getChannels(t){return 4}}S.PNG_FRIED_CHUNK_NAME=\"CgBI\";class I{static registerFormat(t,e){this.impls[t]=e}static getMimeType(t){for(const e in this.impls)if(this.impls[e].match(t))return e;return null}static getSize(t,e){return this.impls[e]?this.impls[e].getSize(t):null}static getChannels(t,e){return this.impls[e]?this.impls[e].getChannels(t):null}static getVRAMByteLength(t,e){if(!this.impls[e])return null;if(this.impls[e].getVRAMByteLength)return this.impls[e].getVRAMByteLength(t);let r=0;const s=this.getSize(t,e);if(!s)return null;for(;s[0]>1||s[1]>1;)r+=s[0]*s[1]*4,s[0]=Math.max(Math.floor(s[0]/2),1),s[1]=Math.max(Math.floor(s[1]/2),1);return r+=4,r}static mimeTypeToExtension(t){return\"image/jpeg\"===t?\"jpg\":t.split(\"/\").pop()}static extensionToMimeType(t){return\"jpg\"===t?\"image/jpeg\":t?`image/${t}`:\"\"}}function R(t,e){if(e>t.byteLength)throw new TypeError(\"Corrupt JPG, exceeded buffer limits\");if(255!==t.getUint8(e))throw new TypeError(\"Invalid JPG, marker table corrupted\");return t}I.impls={\"image/jpeg\":new class{match(t){return t.length>=3&&255===t[0]&&216===t[1]&&255===t[2]}getSize(t){let e,r,s=new DataView(t.buffer,t.byteOffset+4);for(;s.byteLength;){if(e=s.getUint16(0,!1),R(s,e),r=s.getUint8(e+1),192===r||193===r||194===r)return[s.getUint16(e+7,!1),s.getUint16(e+5,!1)];s=new DataView(t.buffer,s.byteOffset+e+2)}throw new TypeError(\"Invalid JPG, no size found\")}getChannels(t){return 3}},\"image/png\":new S};class N{static basename(t){const e=t.split(/[\\\\/]/).pop();return e.substring(0,e.lastIndexOf(\".\"))}static extension(t){if(t.startsWith(\"data:image/\")){const e=t.match(/data:(image\\/\\w+)/)[1];return I.mimeTypeToExtension(e)}return t.startsWith(\"data:model/gltf+json\")?\"gltf\":t.startsWith(\"data:model/gltf-binary\")?\"glb\":t.startsWith(\"data:application/\")?\"bin\":t.split(/[\\\\/]/).pop().split(/[.]/).pop()}}function O(t){return\"[object Object]\"===Object.prototype.toString.call(t)}function C(t){if(!1===O(t))return!1;const e=t.constructor;if(void 0===e)return!0;const r=e.prototype;return!1!==O(r)&&!1!==Object.prototype.hasOwnProperty.call(r,\"isPrototypeOf\")}var F;!function(t){t[t.SILENT=4]=\"SILENT\",t[t.ERROR=3]=\"ERROR\",t[t.WARN=2]=\"WARN\",t[t.INFO=1]=\"INFO\",t[t.DEBUG=0]=\"DEBUG\"}(F||(F={}));class U{constructor(t){this.verbosity=void 0,this.verbosity=t}debug(t){this.verbosity<=U.Verbosity.DEBUG&&console.debug(t)}info(t){this.verbosity<=U.Verbosity.INFO&&console.info(t)}warn(t){this.verbosity<=U.Verbosity.WARN&&console.warn(t)}error(t){this.verbosity<=U.Verbosity.ERROR&&console.error(t)}}function B(t,e,r){var s=e[0],n=e[1],i=e[2],o=e[3],a=e[4],u=e[5],c=e[6],h=e[7],f=e[8],l=e[9],d=e[10],g=e[11],p=e[12],m=e[13],w=e[14],y=e[15],v=r[0],T=r[1],b=r[2],x=r[3];return t[0]=v*s+T*a+b*f+x*p,t[1]=v*n+T*u+b*l+x*m,t[2]=v*i+T*c+b*d+x*w,t[3]=v*o+T*h+b*g+x*y,t[4]=(v=r[4])*s+(T=r[5])*a+(b=r[6])*f+(x=r[7])*p,t[5]=v*n+T*u+b*l+x*m,t[6]=v*i+T*c+b*d+x*w,t[7]=v*o+T*h+b*g+x*y,t[8]=(v=r[8])*s+(T=r[9])*a+(b=r[10])*f+(x=r[11])*p,t[9]=v*n+T*u+b*l+x*m,t[10]=v*i+T*c+b*d+x*w,t[11]=v*o+T*h+b*g+x*y,t[12]=(v=r[12])*s+(T=r[13])*a+(b=r[14])*f+(x=r[15])*p,t[13]=v*n+T*u+b*l+x*m,t[14]=v*i+T*c+b*d+x*w,t[15]=v*o+T*h+b*g+x*y,t}U.Verbosity=F,U.DEFAULT_INSTANCE=new U(U.Verbosity.INFO);class P{static identity(t){return t}static eq(t,e,r=1e-5){if(t.length!==e.length)return!1;for(let s=0;s<t.length;s++)if(Math.abs(t[s]-e[s])>r)return!1;return!0}static decodeNormalizedInt(t,e){switch(e){case 5126:return t;case 5123:return t/65535;case 5121:return t/255;case 5122:return Math.max(t/32767,-1);case 5120:return Math.max(t/127,-1);default:throw new Error(\"Invalid component type.\")}}static denormalize(t,e){return P.decodeNormalizedInt(t,e)}static encodeNormalizedInt(t,e){switch(e){case 5126:return t;case 5123:return Math.round(65535*t);case 5121:return Math.round(255*t);case 5122:return Math.round(32767*t);case 5120:return Math.round(127*t);default:throw new Error(\"Invalid component type.\")}}static normalize(t,e){return P.encodeNormalizedInt(t,e)}static decompose(t,e,r,s){let n=y([t[0],t[1],t[2]]);const i=y([t[4],t[5],t[6]]),o=y([t[8],t[9],t[10]]);var a,u,c,h,f,l,d,g,p,m,v,T,b,x,A,E,M;((u=(a=t)[0])*(d=a[5])-(c=a[1])*(l=a[4]))*((T=a[10])*(M=a[15])-(b=a[11])*(E=a[14]))-(u*(g=a[6])-(h=a[2])*l)*((v=a[9])*M-b*(A=a[13]))+(u*(p=a[7])-(f=a[3])*l)*(v*E-T*A)+(c*g-h*d)*((m=a[8])*M-b*(x=a[12]))-(c*p-f*d)*(m*E-T*x)+(h*p-f*g)*(m*A-v*x)<0&&(n=-n),e[0]=t[12],e[1]=t[13],e[2]=t[14];const S=t.slice(),I=1/n,R=1/i,N=1/o;S[0]*=I,S[1]*=I,S[2]*=I,S[4]*=R,S[5]*=R,S[6]*=R,S[8]*=N,S[9]*=N,S[10]*=N,function(t,e){var r=new w(3);!function(t,e){var r=e[4],s=e[5],n=e[6],i=e[8],o=e[9],a=e[10];t[0]=Math.hypot(e[0],e[1],e[2]),t[1]=Math.hypot(r,s,n),t[2]=Math.hypot(i,o,a)}(r,e);var s=1/r[0],n=1/r[1],i=1/r[2],o=e[0]*s,a=e[1]*n,u=e[2]*i,c=e[4]*s,h=e[5]*n,f=e[6]*i,l=e[8]*s,d=e[9]*n,g=e[10]*i,p=o+h+g,m=0;p>0?(m=2*Math.sqrt(p+1),t[3]=.25*m,t[0]=(f-d)/m,t[1]=(l-u)/m,t[2]=(a-c)/m):o>h&&o>g?(m=2*Math.sqrt(1+o-h-g),t[3]=(f-d)/m,t[0]=.25*m,t[1]=(a+c)/m,t[2]=(l+u)/m):h>g?(m=2*Math.sqrt(1+h-o-g),t[3]=(l-u)/m,t[0]=(a+c)/m,t[1]=.25*m,t[2]=(f+d)/m):(m=2*Math.sqrt(1+g-o-h),t[3]=(a-c)/m,t[0]=(l+u)/m,t[1]=(f+d)/m,t[2]=.25*m)}(r,S),s[0]=n,s[1]=i,s[2]=o}static compose(t,e,r,s){const n=s,i=e[0],o=e[1],a=e[2],u=e[3],c=i+i,h=o+o,f=a+a,l=i*c,d=i*h,g=i*f,p=o*h,m=o*f,w=a*f,y=u*c,v=u*h,T=u*f,b=r[0],x=r[1],A=r[2];return n[0]=(1-(p+w))*b,n[1]=(d+T)*b,n[2]=(g-v)*b,n[3]=0,n[4]=(d-T)*x,n[5]=(1-(l+w))*x,n[6]=(m+y)*x,n[7]=0,n[8]=(g+v)*A,n[9]=(m-y)*A,n[10]=(1-(l+p))*A,n[11]=0,n[12]=t[0],n[13]=t[1],n[14]=t[2],n[15]=1,n}}function L(t,e){if(!!t!=!!e)return!1;const r=t.getChild(),s=e.getChild();return r===s||r.equals(s)}function j(t,e){if(!!t!=!!e)return!1;if(t.length!==e.length)return!1;for(let r=0;r<t.length;r++){const s=t[r],n=e[r];if(s.getChild()!==n.getChild()&&!s.getChild().equals(n.getChild()))return!1}return!0}function D(t,e){if(!!t!=!!e)return!1;const r=Object.keys(t),s=Object.keys(e);if(r.length!==s.length)return!1;for(const r in t){const s=t[r],n=e[r];if(!!s!=!!n)return!1;const i=s.getChild(),o=n.getChild();if(i!==o&&!i.equals(o))return!1}return!0}function _(t,e){if(t===e)return!0;if(!!t!=!!e||!t||!e)return!1;if(t.length!==e.length)return!1;for(let r=0;r<t.length;r++)if(t[r]!==e[r])return!1;return!0}function k(t,e){if(t===e)return!0;if(!!t!=!!e)return!1;if(!C(t)||!C(e))return t===e;const r=t,s=e;let n,i=0,o=0;for(n in r)i++;for(n in s)o++;if(i!==o)return!1;for(n in r){const t=r[n],e=s[n];if(z(t)&&z(e)){if(!_(t,e))return!1}else if(C(t)&&C(e)){if(!k(t,e))return!1}else if(t!==e)return!1}return!0}function z(t){return Array.isArray(t)||ArrayBuffer.isView(t)}const G=\"23456789abdegjkmnpqrvwxyzABDEGJKMNPQRVWXYZ\",J=new Set,$=function(){let t=\"\";for(let e=0;e<6;e++)t+=G.charAt(Math.floor(Math.random()*G.length));return t},V=function(){for(let t=0;t<999;t++){const t=$();if(!J.has(t))return J.add(t),t}return\"\"};class W{static dirname(t){const e=t.lastIndexOf(\"/\");return-1===e?\"./\":t.substring(0,e+1)}static basename(t){return N.basename(new URL(t,\"https://null.example\").pathname)}static extension(t){return N.extension(new URL(t,\"https://null.example\").pathname)}static resolve(t,e){if(!this.isRelativePath(e))return e;const r=t.split(\"/\"),s=e.split(\"/\");r.pop();for(let t=0;t<s.length;t++)\".\"!==s[t]&&(\"..\"===s[t]?r.pop():r.push(s[t]));return r.join(\"/\")}static isAbsoluteURL(t){return this.PROTOCOL_REGEXP.test(t)}static isRelativePath(t){return!/^(?:[a-zA-Z]+:)?\\//.test(t)}}W.DEFAULT_INIT={},W.PROTOCOL_REGEXP=/^[a-zA-Z]+:\\/\\//;const q=t=>t,H=new Set;class Y extends t{constructor(t,r=\"\"){super(t),this[e].name=r,this.init(),this.dispatchEvent({type:\"create\"})}getGraph(){return this.graph}getDefaults(){return Object.assign(super.getDefaults(),{name:\"\",extras:{}})}set(t,e){return Array.isArray(e)&&(e=e.slice()),super.set(t,e)}getName(){return this.get(\"name\")}setName(t){return this.set(\"name\",t)}getExtras(){return this.get(\"extras\")}setExtras(t){return this.set(\"extras\",t)}clone(){return new(0,this.constructor)(this.graph).copy(this,q)}copy(t,o=q){for(const t in this[e]){const o=this[e][t];if(o instanceof r)this[s].has(t)||o.dispose();else if(n(o))for(const t of o)t.dispose();else if(i(o))for(const t in o)o[t].dispose()}for(const a in t[e]){const u=this[e][a],c=t[e][a];if(c instanceof r)this[s].has(a)?u.getChild().copy(o(c.getChild()),o):this.setRef(a,o(c.getChild()),c.getAttributes());else if(n(c))for(const t of c)this.addRef(a,o(t.getChild()),t.getAttributes());else if(i(c))for(const t in c){const e=c[t];this.setRefMap(a,t,o(e.getChild()),e.getAttributes())}else this[e][a]=C(c)?JSON.parse(JSON.stringify(c)):Array.isArray(c)||c instanceof ArrayBuffer||ArrayBuffer.isView(c)?c.slice():c}return this}equals(t,r=H){if(this===t)return!0;if(this.propertyType!==t.propertyType)return!1;for(const s in this[e]){if(r.has(s))continue;const a=this[e][s],u=t[e][s];if(o(a)||o(u)){if(!L(a,u))return!1}else if(n(a)||n(u)){if(!j(a,u))return!1}else if(i(a)||i(u)){if(!D(a,u))return!1}else if(C(a)||C(u)){if(!k(a,u))return!1}else if(z(a)||z(u)){if(!_(a,u))return!1}else if(a!==u)return!1}return!0}detach(){return this.graph.disconnectParents(this,t=>\"Root\"!==t.propertyType),this}listParents(){return this.graph.listParents(this)}}class Z extends Y{getDefaults(){return Object.assign(super.getDefaults(),{extensions:{}})}getExtension(t){return this.getRefMap(\"extensions\",t)}setExtension(t,e){return e&&e.t(this),this.setRefMap(\"extensions\",t,e)}listExtensions(){return this.listRefMapValues(\"extensions\")}}class K extends Z{constructor(...t){super(...t),this.i=P.identity,this.o=P.identity}init(){this.propertyType=h.ACCESSOR}getDefaults(){return Object.assign(super.getDefaults(),{array:null,type:K.Type.SCALAR,componentType:K.ComponentType.FLOAT,normalized:!1,sparse:!1,buffer:null})}copy(t,e=q){return super.copy(t,e),this.i=t.i,this.o=t.o,this}static getElementSize(t){switch(t){case K.Type.SCALAR:return 1;case K.Type.VEC2:return 2;case K.Type.VEC3:return 3;case K.Type.VEC4:case K.Type.MAT2:return 4;case K.Type.MAT3:return 9;case K.Type.MAT4:return 16;default:throw new Error(\"Unexpected type: \"+t)}}static getComponentSize(t){switch(t){case K.ComponentType.BYTE:case K.ComponentType.UNSIGNED_BYTE:return 1;case K.ComponentType.SHORT:case K.ComponentType.UNSIGNED_SHORT:return 2;case K.ComponentType.UNSIGNED_INT:case K.ComponentType.FLOAT:return 4;default:throw new Error(\"Unexpected component type: \"+t)}}getMinNormalized(t){const e=this.getElementSize();this.getMin(t);for(let r=0;r<e;r++)t[r]=this.o(t[r]);return t}getMin(t){const e=this.get(\"array\"),r=this.getCount(),s=this.getElementSize();for(let e=0;e<s;e++)t[e]=Infinity;for(let n=0;n<r*s;n+=s)for(let r=0;r<s;r++){const s=e[n+r];Number.isFinite(s)&&(t[r]=Math.min(t[r],s))}return t}getMaxNormalized(t){const e=this.getElementSize();this.getMax(t);for(let r=0;r<e;r++)t[r]=this.o(t[r]);return t}getMax(t){const e=this.get(\"array\"),r=this.getCount(),s=this.getElementSize();for(let e=0;e<s;e++)t[e]=-Infinity;for(let n=0;n<r*s;n+=s)for(let r=0;r<s;r++){const s=e[n+r];Number.isFinite(s)&&(t[r]=Math.max(t[r],s))}return t}getCount(){const t=this.get(\"array\");return t?t.length/this.getElementSize():0}getType(){return this.get(\"type\")}setType(t){return this.set(\"type\",t)}getElementSize(){return K.getElementSize(this.get(\"type\"))}getComponentSize(){return this.get(\"array\").BYTES_PER_ELEMENT}getComponentType(){return this.get(\"componentType\")}getNormalized(){return this.get(\"normalized\")}setNormalized(t){return this.set(\"normalized\",t),t?(this.o=t=>P.decodeNormalizedInt(t,this.get(\"componentType\")),this.i=t=>P.encodeNormalizedInt(t,this.get(\"componentType\"))):(this.o=P.identity,this.i=P.identity),this}getScalar(t){const e=this.getElementSize();return this.o(this.get(\"array\")[t*e])}setScalar(t,e){return this.get(\"array\")[t*this.getElementSize()]=this.i(e),this}getElement(t,e){const r=this.getElementSize(),s=this.get(\"array\");for(let n=0;n<r;n++)e[n]=this.o(s[t*r+n]);return e}setElement(t,e){const r=this.getElementSize(),s=this.get(\"array\");for(let n=0;n<r;n++)s[t*r+n]=this.i(e[n]);return this}getSparse(){return this.get(\"sparse\")}setSparse(t){return this.set(\"sparse\",t)}getBuffer(){return this.getRef(\"buffer\")}setBuffer(t){return this.setRef(\"buffer\",t)}getArray(){return this.get(\"array\")}setArray(t){return this.set(\"componentType\",t?function(t){switch(t.constructor){case Float32Array:return K.ComponentType.FLOAT;case Uint32Array:return K.ComponentType.UNSIGNED_INT;case Uint16Array:return K.ComponentType.UNSIGNED_SHORT;case Uint8Array:return K.ComponentType.UNSIGNED_BYTE;case Int16Array:return K.ComponentType.SHORT;case Int8Array:return K.ComponentType.BYTE;default:throw new Error(\"Unknown accessor componentType.\")}}(t):K.ComponentType.FLOAT),this.set(\"array\",t),this}getByteLength(){const t=this.get(\"array\");return t?t.byteLength:0}}K.Type={SCALAR:\"SCALAR\",VEC2:\"VEC2\",VEC3:\"VEC3\",VEC4:\"VEC4\",MAT2:\"MAT2\",MAT3:\"MAT3\",MAT4:\"MAT4\"},K.ComponentType={BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,UNSIGNED_INT:5125,FLOAT:5126};class Q extends Z{init(){this.propertyType=h.ANIMATION}getDefaults(){return Object.assign(super.getDefaults(),{channels:[],samplers:[]})}addChannel(t){return this.addRef(\"channels\",t)}removeChannel(t){return this.removeRef(\"channels\",t)}listChannels(){return this.listRefs(\"channels\")}addSampler(t){return this.addRef(\"samplers\",t)}removeSampler(t){return this.removeRef(\"samplers\",t)}listSamplers(){return this.listRefs(\"samplers\")}}class X extends Z{init(){this.propertyType=h.ANIMATION_CHANNEL}getDefaults(){return Object.assign(super.getDefaults(),{targetPath:null,targetNode:null,sampler:null})}getTargetPath(){return this.get(\"targetPath\")}setTargetPath(t){return this.set(\"targetPath\",t)}getTargetNode(){return this.getRef(\"targetNode\")}setTargetNode(t){return this.setRef(\"targetNode\",t)}getSampler(){return this.getRef(\"sampler\")}setSampler(t){return this.setRef(\"sampler\",t)}}X.TargetPath={TRANSLATION:\"translation\",ROTATION:\"rotation\",SCALE:\"scale\",WEIGHTS:\"weights\"};class tt extends Z{init(){this.propertyType=h.ANIMATION_SAMPLER}getDefaultAttributes(){return Object.assign(super.getDefaults(),{interpolation:tt.Interpolation.LINEAR,input:null,output:null})}getInterpolation(){return this.get(\"interpolation\")}setInterpolation(t){return this.set(\"interpolation\",t)}getInput(){return this.getRef(\"input\")}setInput(t){return this.setRef(\"input\",t,{usage:l.OTHER})}getOutput(){return this.getRef(\"output\")}setOutput(t){return this.setRef(\"output\",t,{usage:l.OTHER})}}tt.Interpolation={LINEAR:\"LINEAR\",STEP:\"STEP\",CUBICSPLINE:\"CUBICSPLINE\"};class et extends Z{init(){this.propertyType=h.BUFFER}getDefaults(){return Object.assign(super.getDefaults(),{uri:\"\"})}getURI(){return this.get(\"uri\")}setURI(t){return this.set(\"uri\",t)}}class rt extends Z{init(){this.propertyType=h.CAMERA}getDefaults(){return Object.assign(super.getDefaults(),{type:rt.Type.PERSPECTIVE,znear:.1,zfar:100,aspectRatio:null,yfov:2*Math.PI*50/360,xmag:1,ymag:1})}getType(){return this.get(\"type\")}setType(t){return this.set(\"type\",t)}getZNear(){return this.get(\"znear\")}setZNear(t){return this.set(\"znear\",t)}getZFar(){return this.get(\"zfar\")}setZFar(t){return this.set(\"zfar\",t)}getAspectRatio(){return this.get(\"aspectRatio\")}setAspectRatio(t){return this.set(\"aspectRatio\",t)}getYFov(){return this.get(\"yfov\")}setYFov(t){return this.set(\"yfov\",t)}getXMag(){return this.get(\"xmag\")}setXMag(t){return this.set(\"xmag\",t)}getYMag(){return this.get(\"ymag\")}setYMag(t){return this.set(\"ymag\",t)}}rt.Type={PERSPECTIVE:\"perspective\",ORTHOGRAPHIC:\"orthographic\"};class st extends Y{t(t){if(!this.parentTypes.includes(t.propertyType))throw new Error(`Parent \"${t.propertyType}\" invalid for child \"${this.propertyType}\".`)}}st.EXTENSION_NAME=void 0;class nt extends Z{init(){this.propertyType=h.TEXTURE_INFO}getDefaults(){return Object.assign(super.getDefaults(),{texCoord:0,magFilter:null,minFilter:null,wrapS:nt.WrapMode.REPEAT,wrapT:nt.WrapMode.REPEAT})}getTexCoord(){return this.get(\"texCoord\")}setTexCoord(t){return this.set(\"texCoord\",t)}getMagFilter(){return this.get(\"magFilter\")}setMagFilter(t){return this.set(\"magFilter\",t)}getMinFilter(){return this.get(\"minFilter\")}setMinFilter(t){return this.set(\"minFilter\",t)}getWrapS(){return this.get(\"wrapS\")}setWrapS(t){return this.set(\"wrapS\",t)}getWrapT(){return this.get(\"wrapT\")}setWrapT(t){return this.set(\"wrapT\",t)}}nt.WrapMode={CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,REPEAT:10497},nt.MagFilter={NEAREST:9728,LINEAR:9729},nt.MinFilter={NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987};const{R:it,G:ot,B:at,A:ut}=d;class ct extends Z{init(){this.propertyType=h.MATERIAL}getDefaults(){return Object.assign(super.getDefaults(),{alphaMode:ct.AlphaMode.OPAQUE,alphaCutoff:.5,doubleSided:!1,baseColorFactor:[1,1,1,1],baseColorTexture:null,baseColorTextureInfo:new nt(this.graph,\"baseColorTextureInfo\"),emissiveFactor:[0,0,0],emissiveTexture:null,emissiveTextureInfo:new nt(this.graph,\"emissiveTextureInfo\"),normalScale:1,normalTexture:null,normalTextureInfo:new nt(this.graph,\"normalTextureInfo\"),occlusionStrength:1,occlusionTexture:null,occlusionTextureInfo:new nt(this.graph,\"occlusionTextureInfo\"),roughnessFactor:1,metallicFactor:1,metallicRoughnessTexture:null,metallicRoughnessTextureInfo:new nt(this.graph,\"metallicRoughnessTextureInfo\")})}getDoubleSided(){return this.get(\"doubleSided\")}setDoubleSided(t){return this.set(\"doubleSided\",t)}getAlpha(){return this.get(\"baseColorFactor\")[3]}setAlpha(t){const e=this.get(\"baseColorFactor\").slice();return e[3]=t,this.set(\"baseColorFactor\",e)}getAlphaMode(){return this.get(\"alphaMode\")}setAlphaMode(t){return this.set(\"alphaMode\",t)}getAlphaCutoff(){return this.get(\"alphaCutoff\")}setAlphaCutoff(t){return this.set(\"alphaCutoff\",t)}getBaseColorFactor(){return this.get(\"baseColorFactor\")}setBaseColorFactor(t){return this.set(\"baseColorFactor\",t)}getBaseColorHex(){return M.factorToHex(this.get(\"baseColorFactor\"))}setBaseColorHex(t){const e=this.get(\"baseColorFactor\").slice();return this.set(\"baseColorFactor\",M.hexToFactor(t,e))}getBaseColorTexture(){return this.getRef(\"baseColorTexture\")}getBaseColorTextureInfo(){return this.getRef(\"baseColorTexture\")?this.getRef(\"baseColorTextureInfo\"):null}setBaseColorTexture(t){return this.setRef(\"baseColorTexture\",t,{channels:it|ot|at|ut})}getEmissiveFactor(){return this.get(\"emissiveFactor\")}setEmissiveFactor(t){return this.set(\"emissiveFactor\",t)}getEmissiveHex(){return M.factorToHex(this.get(\"emissiveFactor\"))}setEmissiveHex(t){const e=this.get(\"emissiveFactor\").slice();return this.set(\"emissiveFactor\",M.hexToFactor(t,e))}getEmissiveTexture(){return this.getRef(\"emissiveTexture\")}getEmissiveTextureInfo(){return this.getRef(\"emissiveTexture\")?this.getRef(\"emissiveTextureInfo\"):null}setEmissiveTexture(t){return this.setRef(\"emissiveTexture\",t,{channels:it|ot|at})}getNormalScale(){return this.get(\"normalScale\")}setNormalScale(t){return this.set(\"normalScale\",t)}getNormalTexture(){return this.getRef(\"normalTexture\")}getNormalTextureInfo(){return this.getRef(\"normalTexture\")?this.getRef(\"normalTextureInfo\"):null}setNormalTexture(t){return this.setRef(\"normalTexture\",t,{channels:it|ot|at})}getOcclusionStrength(){return this.get(\"occlusionStrength\")}setOcclusionStrength(t){return this.set(\"occlusionStrength\",t)}getOcclusionTexture(){return this.getRef(\"occlusionTexture\")}getOcclusionTextureInfo(){return this.getRef(\"occlusionTexture\")?this.getRef(\"occlusionTextureInfo\"):null}setOcclusionTexture(t){return this.setRef(\"occlusionTexture\",t,{channels:it})}getRoughnessFactor(){return this.get(\"roughnessFactor\")}setRoughnessFactor(t){return this.set(\"roughnessFactor\",t)}getMetallicFactor(){return this.get(\"metallicFactor\")}setMetallicFactor(t){return this.set(\"metallicFactor\",t)}getMetallicRoughnessTexture(){return this.getRef(\"metallicRoughnessTexture\")}getMetallicRoughnessTextureInfo(){return this.getRef(\"metallicRoughnessTexture\")?this.getRef(\"metallicRoughnessTextureInfo\"):null}setMetallicRoughnessTexture(t){return this.setRef(\"metallicRoughnessTexture\",t,{channels:ot|at})}}ct.AlphaMode={OPAQUE:\"OPAQUE\",MASK:\"MASK\",BLEND:\"BLEND\"};class ht extends Z{init(){this.propertyType=h.MESH}getDefaults(){return Object.assign(super.getDefaults(),{weights:[],primitives:[]})}addPrimitive(t){return this.addRef(\"primitives\",t)}removePrimitive(t){return this.removeRef(\"primitives\",t)}listPrimitives(){return this.listRefs(\"primitives\")}getWeights(){return this.get(\"weights\")}setWeights(t){return this.set(\"weights\",t)}}class ft extends Z{constructor(...t){super(...t),this.u=null}init(){this.propertyType=h.NODE}getDefaults(){return Object.assign(super.getDefaults(),{translation:[0,0,0],rotation:[0,0,0,1],scale:[1,1,1],weights:[],camera:null,mesh:null,skin:null,children:[]})}copy(t,e=q){if(e===q)throw new Error(\"Node cannot be copied.\");return super.copy(t,e)}getTranslation(){return this.get(\"translation\")}getRotation(){return this.get(\"rotation\")}getScale(){return this.get(\"scale\")}setTranslation(t){return this.set(\"translation\",t)}setRotation(t){return this.set(\"rotation\",t)}setScale(t){return this.set(\"scale\",t)}getMatrix(){return P.compose(this.get(\"translation\"),this.get(\"rotation\"),this.get(\"scale\"),[])}setMatrix(t){const e=this.get(\"translation\").slice(),r=this.get(\"rotation\").slice(),s=this.get(\"scale\").slice();return P.decompose(t,e,r,s),this.set(\"translation\",e).set(\"rotation\",r).set(\"scale\",s)}getWorldTranslation(){const t=[0,0,0];return P.decompose(this.getWorldMatrix(),t,[0,0,0,1],[1,1,1]),t}getWorldRotation(){const t=[0,0,0,1];return P.decompose(this.getWorldMatrix(),[0,0,0],t,[1,1,1]),t}getWorldScale(){const t=[1,1,1];return P.decompose(this.getWorldMatrix(),[0,0,0],[0,0,0,1],t),t}getWorldMatrix(){const t=[];for(let e=this;null!=e;e=e.u)t.push(e);let e;const r=t.pop().getMatrix();for(;e=t.pop();)B(r,r,e.getMatrix());return r}addChild(t){t.u&&t.u.removeChild(t),this.addRef(\"children\",t),t.u=this;const r=this[e].children;return r[r.length-1].addEventListener(\"dispose\",()=>t.u=null),this}removeChild(t){return this.removeRef(\"children\",t)}listChildren(){return this.listRefs(\"children\")}getParent(){return this.u?this.u:this.listParents().find(t=>t.propertyType===h.SCENE)||null}getParentNode(){return this.u}getMesh(){return this.getRef(\"mesh\")}setMesh(t){return this.setRef(\"mesh\",t)}getCamera(){return this.getRef(\"camera\")}setCamera(t){return this.setRef(\"camera\",t)}getSkin(){return this.getRef(\"skin\")}setSkin(t){return this.setRef(\"skin\",t)}getWeights(){return this.get(\"weights\")}setWeights(t){return this.set(\"weights\",t)}traverse(t){t(this);for(const e of this.listChildren())e.traverse(t);return this}}class lt extends Z{init(){this.propertyType=h.PRIMITIVE}getDefaults(){return Object.assign(super.getDefaults(),{mode:lt.Mode.TRIANGLES,material:null,indices:null,attributes:{},targets:[]})}getIndices(){return this.getRef(\"indices\")}setIndices(t){return this.setRef(\"indices\",t,{usage:l.ELEMENT_ARRAY_BUFFER})}getAttribute(t){return this.getRefMap(\"attributes\",t)}setAttribute(t,e){return this.setRefMap(\"attributes\",t,e,{usage:l.ARRAY_BUFFER})}listAttributes(){return this.listRefMapValues(\"attributes\")}listSemantics(){return this.listRefMapKeys(\"attributes\")}getMaterial(){return this.getRef(\"material\")}setMaterial(t){return this.setRef(\"material\",t)}getMode(){return this.get(\"mode\")}setMode(t){return this.set(\"mode\",t)}listTargets(){return this.listRefs(\"targets\")}addTarget(t){return this.addRef(\"targets\",t)}removeTarget(t){return this.removeRef(\"targets\",t)}}lt.Mode={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6};class dt extends Y{init(){this.propertyType=h.PRIMITIVE_TARGET}getDefaults(){return Object.assign(super.getDefaults(),{attributes:{}})}getAttribute(t){return this.getRefMap(\"attributes\",t)}setAttribute(t,e){return this.setRefMap(\"attributes\",t,e,{usage:l.ARRAY_BUFFER})}listAttributes(){return this.listRefMapValues(\"attributes\")}listSemantics(){return this.listRefMapKeys(\"attributes\")}}function gt(){return(gt=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(t[s]=r[s])}return t}).apply(this,arguments)}class pt extends Z{init(){this.propertyType=h.SCENE}getDefaults(){return Object.assign(super.getDefaults(),{children:[]})}copy(t,e=q){if(e===q)throw new Error(\"Scene cannot be copied.\");return super.copy(t,e)}addChild(t){return this.addRef(\"children\",t)}removeChild(t){return this.removeRef(\"children\",t)}listChildren(){return this.listRefs(\"children\")}traverse(t){for(const e of this.listChildren())e.traverse(t);return this}}class mt extends Z{init(){this.propertyType=h.SKIN}getDefaults(){return Object.assign(super.getDefaults(),{skeleton:null,inverseBindMatrices:null,joints:[]})}getSkeleton(){return this.getRef(\"skeleton\")}setSkeleton(t){return this.setRef(\"skeleton\",t)}getInverseBindMatrices(){return this.getRef(\"inverseBindMatrices\")}setInverseBindMatrices(t){return this.setRef(\"inverseBindMatrices\",t,{usage:l.INVERSE_BIND_MATRICES})}addJoint(t){return this.addRef(\"joints\",t)}removeJoint(t){return this.removeRef(\"joints\",t)}listJoints(){return this.listRefs(\"joints\")}}class wt extends Z{init(){this.propertyType=h.TEXTURE}getDefaults(){return Object.assign(super.getDefaults(),{image:null,mimeType:\"\",uri:\"\"})}getMimeType(){return this.get(\"mimeType\")||I.extensionToMimeType(N.extension(this.get(\"uri\")))}setMimeType(t){return this.set(\"mimeType\",t)}getURI(){return this.get(\"uri\")}setURI(t){this.set(\"uri\",t);const e=I.extensionToMimeType(N.extension(t));return e&&this.set(\"mimeType\",e),this}getImage(){return this.get(\"image\")}setImage(t){return this.set(\"image\",E.assertView(t))}getSize(){const t=this.get(\"image\");return t?I.getSize(t,this.getMimeType()):null}}class yt extends Z{init(){this.propertyType=h.ROOT}getDefaults(){return Object.assign(super.getDefaults(),{asset:{generator:\"glTF-Transform v3.2.1\",version:\"2.0\"},defaultScene:null,accessors:[],animations:[],buffers:[],cameras:[],materials:[],meshes:[],nodes:[],scenes:[],skins:[],textures:[]})}constructor(t){super(t),this.h=new Set,t.addEventListener(\"node:create\",t=>{this.l(t.target)})}clone(){throw new Error(\"Root cannot be cloned.\")}copy(t,e=q){if(e===q)throw new Error(\"Root cannot be copied.\");this.set(\"asset\",gt({},t.get(\"asset\"))),this.setName(t.getName()),this.setExtras(gt({},t.getExtras())),this.setDefaultScene(t.getDefaultScene()?e(t.getDefaultScene()):null);for(const r of t.listRefMapKeys(\"extensions\")){const s=t.getExtension(r);this.setExtension(r,e(s))}return this}l(t){return t instanceof pt?this.addRef(\"scenes\",t):t instanceof ft?this.addRef(\"nodes\",t):t instanceof rt?this.addRef(\"cameras\",t):t instanceof mt?this.addRef(\"skins\",t):t instanceof ht?this.addRef(\"meshes\",t):t instanceof ct?this.addRef(\"materials\",t):t instanceof wt?this.addRef(\"textures\",t):t instanceof Q?this.addRef(\"animations\",t):t instanceof K?this.addRef(\"accessors\",t):t instanceof et&&this.addRef(\"buffers\",t),this}getAsset(){return this.get(\"asset\")}listExtensionsUsed(){return Array.from(this.h)}listExtensionsRequired(){return this.listExtensionsUsed().filter(t=>t.isRequired())}g(t){return this.h.add(t),this}p(t){return this.h.delete(t),this}listScenes(){return this.listRefs(\"scenes\")}setDefaultScene(t){return this.setRef(\"defaultScene\",t)}getDefaultScene(){return this.getRef(\"defaultScene\")}listNodes(){return this.listRefs(\"nodes\")}listCameras(){return this.listRefs(\"cameras\")}listSkins(){return this.listRefs(\"skins\")}listMeshes(){return this.listRefs(\"meshes\")}listMaterials(){return this.listRefs(\"materials\")}listTextures(){return this.listRefs(\"textures\")}listAnimations(){return this.listRefs(\"animations\")}listAccessors(){return this.listRefs(\"accessors\")}listBuffers(){return this.listRefs(\"buffers\")}}class vt{static fromGraph(t){return vt.m.get(t)||null}constructor(){this.v=new a,this.T=new yt(this.v),this.M=U.DEFAULT_INSTANCE,vt.m.set(this.v,this)}getRoot(){return this.T}getGraph(){return this.v}getLogger(){return this.M}setLogger(t){return this.M=t,this}clone(){return(new vt).setLogger(this.M).merge(this)}merge(t){for(const e of t.getRoot().listExtensionsUsed()){const t=this.createExtension(e.constructor);e.isRequired()&&t.setRequired(!0)}const e=new Set,r=new Map;e.add(t.T),r.set(t.T,this.T);for(const s of t.v.listEdges())for(const t of[s.getParent(),s.getChild()]){if(e.has(t))continue;let s;s=t.propertyType===h.TEXTURE_INFO?t:new(0,t.constructor)(this.v),r.set(t,s),e.add(t)}const s=t=>{const e=r.get(t);if(!e)throw new Error(\"Could resolve property.\");return e};for(const t of e){const e=r.get(t);if(!e)throw new Error(\"Could resolve property.\");e.propertyType!==h.TEXTURE_INFO&&e.copy(t,s)}return this}async transform(...t){const e=t.map(t=>t.name);for(const r of t)await r(this,{stack:e});return this}createExtension(t){const e=t.EXTENSION_NAME;return this.getRoot().listExtensionsUsed().find(t=>t.extensionName===e)||new t(this)}createScene(t=\"\"){return new pt(this.v,t)}createNode(t=\"\"){return new ft(this.v,t)}createCamera(t=\"\"){return new rt(this.v,t)}createSkin(t=\"\"){return new mt(this.v,t)}createMesh(t=\"\"){return new ht(this.v,t)}createPrimitive(){return new lt(this.v)}createPrimitiveTarget(t=\"\"){return new dt(this.v,t)}createMaterial(t=\"\"){return new ct(this.v,t)}createTexture(t=\"\"){return new wt(this.v,t)}createAnimation(t=\"\"){return new Q(this.v,t)}createAnimationChannel(t=\"\"){return new X(this.v,t)}createAnimationSampler(t=\"\"){return new tt(this.v,t)}createAccessor(t=\"\",e=null){return e||(e=this.getRoot().listBuffers()[0]),new K(this.v,t).setBuffer(e)}createBuffer(t=\"\"){return new et(this.v,t)}}vt.m=new WeakMap;class Tt{constructor(t){this.extensionName=\"\",this.prereadTypes=[],this.prewriteTypes=[],this.readDependencies=[],this.writeDependencies=[],this.document=void 0,this.required=!1,this.properties=new Set,this.S=void 0,this.document=t,t.getRoot().g(this),this.S=t=>{const e=t,r=e.target;r instanceof st&&r.extensionName===this.extensionName&&(\"node:create\"===e.type&&this.I(r),\"node:dispose\"===e.type&&this.N(r))};const e=t.getGraph();e.addEventListener(\"node:create\",this.S),e.addEventListener(\"node:dispose\",this.S)}dispose(){this.document.getRoot().p(this);const t=this.document.getGraph();t.removeEventListener(\"node:create\",this.S),t.removeEventListener(\"node:dispose\",this.S);for(const t of this.properties)t.dispose()}static register(){}isRequired(){return this.required}setRequired(t){return this.required=t,this}listProperties(){return Array.from(this.properties)}I(t){return this.properties.add(t),this}N(t){return this.properties.delete(t),this}install(t,e){return this}preread(t,e){return this}prewrite(t,e){return this}}Tt.EXTENSION_NAME=void 0;class bt{constructor(t){this.jsonDoc=void 0,this.buffers=[],this.bufferViews=[],this.bufferViewBuffers=[],this.accessors=[],this.textures=[],this.textureInfos=new Map,this.materials=[],this.meshes=[],this.cameras=[],this.nodes=[],this.skins=[],this.animations=[],this.scenes=[],this.jsonDoc=t}setTextureInfo(t,e){this.textureInfos.set(t,e),void 0!==e.texCoord&&t.setTexCoord(e.texCoord),void 0!==e.extras&&t.setExtras(e.extras);const r=this.jsonDoc.json.textures[e.index];if(void 0===r.sampler)return;const s=this.jsonDoc.json.samplers[r.sampler];void 0!==s.magFilter&&t.setMagFilter(s.magFilter),void 0!==s.minFilter&&t.setMinFilter(s.minFilter),void 0!==s.wrapS&&t.setWrapS(s.wrapS),void 0!==s.wrapT&&t.setWrapT(s.wrapT)}}const xt={logger:U.DEFAULT_INSTANCE,extensions:[],dependencies:{}};function At(t,e){const r=e.bufferViews[t.bufferView],s=e.jsonDoc.json.bufferViews[t.bufferView],n=p[t.componentType],i=K.getElementSize(t.type),o=n.BYTES_PER_ELEMENT;if(void 0!==s.byteStride&&s.byteStride!==i*o)return function(t,e){const r=e.bufferViews[t.bufferView],s=e.jsonDoc.json.bufferViews[t.bufferView],n=p[t.componentType],i=K.getElementSize(t.type),o=n.BYTES_PER_ELEMENT,a=t.byteOffset||0,u=new n(t.count*i),c=new DataView(r.buffer,r.byteOffset,r.byteLength),h=s.byteStride;for(let e=0;e<t.count;e++)for(let r=0;r<i;r++){const s=a+e*h+r*o;let n;switch(t.componentType){case K.ComponentType.FLOAT:n=c.getFloat32(s,!0);break;case K.ComponentType.UNSIGNED_INT:n=c.getUint32(s,!0);break;case K.ComponentType.UNSIGNED_SHORT:n=c.getUint16(s,!0);break;case K.ComponentType.UNSIGNED_BYTE:n=c.getUint8(s);break;case K.ComponentType.SHORT:n=c.getInt16(s,!0);break;case K.ComponentType.BYTE:n=c.getInt8(s);break;default:throw new Error(`Unexpected componentType \"${t.componentType}\".`)}u[e*i+r]=n}return u}(t,e);const a=r.byteOffset+(t.byteOffset||0);return new n(r.buffer.slice(a,a+t.count*i*o))}var Et;!function(t){t[t.ARRAY_BUFFER=34962]=\"ARRAY_BUFFER\",t[t.ELEMENT_ARRAY_BUFFER=34963]=\"ELEMENT_ARRAY_BUFFER\"}(Et||(Et={}));class Mt{constructor(t,e,r){this.O=void 0,this.jsonDoc=void 0,this.options=void 0,this.accessorIndexMap=new Map,this.animationIndexMap=new Map,this.bufferIndexMap=new Map,this.cameraIndexMap=new Map,this.skinIndexMap=new Map,this.materialIndexMap=new Map,this.meshIndexMap=new Map,this.nodeIndexMap=new Map,this.imageIndexMap=new Map,this.textureDefIndexMap=new Map,this.textureInfoDefMap=new Map,this.samplerDefIndexMap=new Map,this.sceneIndexMap=new Map,this.imageBufferViews=[],this.otherBufferViews=new Map,this.otherBufferViewsIndexMap=new Map,this.extensionData={},this.bufferURIGenerator=void 0,this.imageURIGenerator=void 0,this.logger=void 0,this.C=new Map,this.accessorUsageGroupedByParent=new Set([\"ARRAY_BUFFER\"]),this.accessorParents=new Map,this.O=t,this.jsonDoc=e,this.options=r;const s=t.getRoot(),n=s.listBuffers().length,i=s.listTextures().length;this.bufferURIGenerator=new St(n>1,()=>r.basename||\"buffer\"),this.imageURIGenerator=new St(i>1,e=>function(t,e){const r=t.getGraph().listParentEdges(e).find(e=>e.getParent()!==t.getRoot());return r?r.getName().replace(/texture$/i,\"\"):\"\"}(t,e)||r.basename||\"texture\"),this.logger=t.getLogger()}createTextureInfoDef(t,e){const r={magFilter:e.getMagFilter()||void 0,minFilter:e.getMinFilter()||void 0,wrapS:e.getWrapS(),wrapT:e.getWrapT()},s=JSON.stringify(r);this.samplerDefIndexMap.has(s)||(this.samplerDefIndexMap.set(s,this.jsonDoc.json.samplers.length),this.jsonDoc.json.samplers.push(r));const n={source:this.imageIndexMap.get(t),sampler:this.samplerDefIndexMap.get(s)},i=JSON.stringify(n);this.textureDefIndexMap.has(i)||(this.textureDefIndexMap.set(i,this.jsonDoc.json.textures.length),this.jsonDoc.json.textures.push(n));const o={index:this.textureDefIndexMap.get(i)};return 0!==e.getTexCoord()&&(o.texCoord=e.getTexCoord()),Object.keys(e.getExtras()).length>0&&(o.extras=e.getExtras()),this.textureInfoDefMap.set(e,o),o}createPropertyDef(t){const e={};return t.getName()&&(e.name=t.getName()),Object.keys(t.getExtras()).length>0&&(e.extras=t.getExtras()),e}createAccessorDef(t){const e=this.createPropertyDef(t);return e.type=t.getType(),e.componentType=t.getComponentType(),e.count=t.getCount(),this.O.getGraph().listParentEdges(t).some(t=>\"attributes\"===t.getName()&&\"POSITION\"===t.getAttributes().key||\"input\"===t.getName())&&(e.max=t.getMax([]).map(Math.fround),e.min=t.getMin([]).map(Math.fround)),t.getNormalized()&&(e.normalized=t.getNormalized()),e}createImageData(t,e,r){if(this.options.format===g.GLB)this.imageBufferViews.push(e),t.bufferView=this.jsonDoc.json.bufferViews.length,this.jsonDoc.json.bufferViews.push({buffer:0,byteOffset:-1,byteLength:e.byteLength});else{const s=I.mimeTypeToExtension(r.getMimeType());t.uri=this.imageURIGenerator.createURI(r,s),this.jsonDoc.resources[t.uri]=e}}getAccessorUsage(t){const e=this.C.get(t);if(e)return e;if(t.getSparse())return l.SPARSE;for(const e of this.O.getGraph().listParentEdges(t)){const{usage:t}=e.getAttributes();if(t)return t;e.getParent().propertyType!==h.ROOT&&this.logger.warn(`Missing attribute \".usage\" on edge, \"${e.getName()}\".`)}return l.OTHER}addAccessorToUsageGroup(t,e){const r=this.C.get(t);if(r&&r!==e)throw new Error(`Accessor with usage \"${r}\" cannot be reused as \"${e}\".`);return this.C.set(t,e),this}listAccessorUsageGroups(){const t={};for(const[e,r]of Array.from(this.C.entries()))t[r]=t[r]||[],t[r].push(e);return t}}Mt.BufferViewTarget=Et,Mt.BufferViewUsage=l,Mt.USAGE_TO_TARGET={[l.ARRAY_BUFFER]:Et.ARRAY_BUFFER,[l.ELEMENT_ARRAY_BUFFER]:Et.ELEMENT_ARRAY_BUFFER};class St{constructor(t,e){this.multiple=void 0,this.basename=void 0,this.counter={},this.multiple=t,this.basename=e}createURI(t,e){if(t.getURI())return t.getURI();if(this.multiple){const r=this.basename(t);return this.counter[r]=this.counter[r]||1,`${r}_${this.counter[r]++}.${e}`}return`${this.basename(t)}.${e}`}}const{BufferViewUsage:It}=Mt,{UNSIGNED_INT:Rt,UNSIGNED_SHORT:Nt,UNSIGNED_BYTE:Ot}=K.ComponentType;var Ct;!function(t){t[t.JSON=1313821514]=\"JSON\",t[t.BIN=5130562]=\"BIN\"}(Ct||(Ct={}));class Ft{constructor(){this.M=U.DEFAULT_INSTANCE,this.h=new Set,this.F={},this.U=f.INTERLEAVED,this.lastReadBytes=0,this.lastWriteBytes=0}setLogger(t){return this.M=t,this}registerExtensions(t){for(const e of t)this.h.add(e),e.register();return this}registerDependencies(t){return Object.assign(this.F,t),this}setVertexLayout(t){return this.U=t,this}async read(t){return await this.readJSON(await this.readAsJSON(t))}async readAsJSON(t){const e=await this.readURI(t,\"view\");this.lastReadBytes=e.byteLength;const r=Ut(e)?this.P(e):{json:JSON.parse(E.decodeText(e)),resources:{}};return await this.L(r,this.dirname(t)),this.j(r),r}async readJSON(t){return t=this.D(t),this.j(t),class{static read(t,e=xt){const r=gt({},xt,e),{json:s}=t,n=(new vt).setLogger(r.logger);this.validate(t,r);const i=new bt(t),o=s.asset,a=n.getRoot().getAsset();o.copyright&&(a.copyright=o.copyright),o.extras&&(a.extras=o.extras),void 0!==s.extras&&n.getRoot().setExtras(gt({},s.extras));const u=s.extensionsUsed||[],c=s.extensionsRequired||[];for(const t of r.extensions)if(u.includes(t.EXTENSION_NAME)){const e=n.createExtension(t).setRequired(c.includes(t.EXTENSION_NAME));for(const t of e.readDependencies)e.install(t,r.dependencies[t])}const f=s.buffers||[];n.getRoot().listExtensionsUsed().filter(t=>t.prereadTypes.includes(h.BUFFER)).forEach(t=>t.preread(i,h.BUFFER)),i.buffers=f.map(t=>{const e=n.createBuffer(t.name);return t.extras&&e.setExtras(t.extras),t.uri&&0!==t.uri.indexOf(\"__\")&&e.setURI(t.uri),e}),i.bufferViewBuffers=(s.bufferViews||[]).map((e,r)=>{if(!i.bufferViews[r]){const s=t.json.buffers[e.buffer];i.bufferViews[r]=E.toView(s.uri?t.resources[s.uri]:t.resources[\"@glb.bin\"],e.byteOffset||0,e.byteLength)}return i.buffers[e.buffer]});const l=s.accessors||[];i.accessors=l.map(t=>{const e=n.createAccessor(t.name,i.bufferViewBuffers[t.bufferView]).setType(t.type);return t.extras&&e.setExtras(t.extras),void 0!==t.normalized&&e.setNormalized(t.normalized),void 0===t.bufferView||e.setArray(At(t,i)),e});const d=s.images||[],g=s.textures||[];n.getRoot().listExtensionsUsed().filter(t=>t.prereadTypes.includes(h.TEXTURE)).forEach(t=>t.preread(i,h.TEXTURE)),i.textures=d.map(e=>{const r=n.createTexture(e.name);if(e.extras&&r.setExtras(e.extras),void 0!==e.bufferView){const n=s.bufferViews[e.bufferView],i=t.json.buffers[n.buffer],o=n.byteOffset||0,a=(i.uri?t.resources[i.uri]:t.resources[\"@glb.bin\"]).slice(o,o+n.byteLength);r.setImage(a)}else void 0!==e.uri&&(r.setImage(t.resources[e.uri]),0!==e.uri.indexOf(\"__\")&&r.setURI(e.uri));if(void 0!==e.mimeType)r.setMimeType(e.mimeType);else if(e.uri){const t=N.extension(e.uri);r.setMimeType(I.extensionToMimeType(t))}return r}),i.materials=(s.materials||[]).map(t=>{const e=n.createMaterial(t.name);t.extras&&e.setExtras(t.extras),void 0!==t.alphaMode&&e.setAlphaMode(t.alphaMode),void 0!==t.alphaCutoff&&e.setAlphaCutoff(t.alphaCutoff),void 0!==t.doubleSided&&e.setDoubleSided(t.doubleSided);const r=t.pbrMetallicRoughness||{};if(void 0!==r.baseColorFactor&&e.setBaseColorFactor(r.baseColorFactor),void 0!==t.emissiveFactor&&e.setEmissiveFactor(t.emissiveFactor),void 0!==r.metallicFactor&&e.setMetallicFactor(r.metallicFactor),void 0!==r.roughnessFactor&&e.setRoughnessFactor(r.roughnessFactor),void 0!==r.baseColorTexture){const t=r.baseColorTexture;e.setBaseColorTexture(i.textures[g[t.index].source]),i.setTextureInfo(e.getBaseColorTextureInfo(),t)}if(void 0!==t.emissiveTexture){const r=t.emissiveTexture;e.setEmissiveTexture(i.textures[g[r.index].source]),i.setTextureInfo(e.getEmissiveTextureInfo(),r)}if(void 0!==t.normalTexture){const r=t.normalTexture;e.setNormalTexture(i.textures[g[r.index].source]),i.setTextureInfo(e.getNormalTextureInfo(),r),void 0!==t.normalTexture.scale&&e.setNormalScale(t.normalTexture.scale)}if(void 0!==t.occlusionTexture){const r=t.occlusionTexture;e.setOcclusionTexture(i.textures[g[r.index].source]),i.setTextureInfo(e.getOcclusionTextureInfo(),r),void 0!==t.occlusionTexture.strength&&e.setOcclusionStrength(t.occlusionTexture.strength)}if(void 0!==r.metallicRoughnessTexture){const t=r.metallicRoughnessTexture;e.setMetallicRoughnessTexture(i.textures[g[t.index].source]),i.setTextureInfo(e.getMetallicRoughnessTextureInfo(),t)}return e});const m=s.meshes||[];n.getRoot().listExtensionsUsed().filter(t=>t.prereadTypes.includes(h.PRIMITIVE)).forEach(t=>t.preread(i,h.PRIMITIVE)),i.meshes=m.map(t=>{const e=n.createMesh(t.name);return t.extras&&e.setExtras(t.extras),void 0!==t.weights&&e.setWeights(t.weights),(t.primitives||[]).forEach(r=>{const s=n.createPrimitive();r.extras&&s.setExtras(r.extras),void 0!==r.material&&s.setMaterial(i.materials[r.material]),void 0!==r.mode&&s.setMode(r.mode);for(const[t,e]of Object.entries(r.attributes||{}))s.setAttribute(t,i.accessors[e]);void 0!==r.indices&&s.setIndices(i.accessors[r.indices]);const o=t.extras&&t.extras.targetNames||[];(r.targets||[]).forEach((t,e)=>{const r=o[e]||e.toString(),a=n.createPrimitiveTarget(r);for(const[e,r]of Object.entries(t))a.setAttribute(e,i.accessors[r]);s.addTarget(a)}),e.addPrimitive(s)}),e}),i.cameras=(s.cameras||[]).map(t=>{const e=n.createCamera(t.name).setType(t.type);if(t.extras&&e.setExtras(t.extras),t.type===rt.Type.PERSPECTIVE){const r=t.perspective;e.setYFov(r.yfov),e.setZNear(r.znear),void 0!==r.zfar&&e.setZFar(r.zfar),void 0!==r.aspectRatio&&e.setAspectRatio(r.aspectRatio)}else{const r=t.orthographic;e.setZNear(r.znear).setZFar(r.zfar).setXMag(r.xmag).setYMag(r.ymag)}return e});const w=s.nodes||[];n.getRoot().listExtensionsUsed().filter(t=>t.prereadTypes.includes(h.NODE)).forEach(t=>t.preread(i,h.NODE)),i.nodes=w.map(t=>{const e=n.createNode(t.name);if(t.extras&&e.setExtras(t.extras),void 0!==t.translation&&e.setTranslation(t.translation),void 0!==t.rotation&&e.setRotation(t.rotation),void 0!==t.scale&&e.setScale(t.scale),void 0!==t.matrix){const r=[0,0,0],s=[0,0,0,1],n=[1,1,1];P.decompose(t.matrix,r,s,n),e.setTranslation(r),e.setRotation(s),e.setScale(n)}return void 0!==t.weights&&e.setWeights(t.weights),e}),i.skins=(s.skins||[]).map(t=>{const e=n.createSkin(t.name);t.extras&&e.setExtras(t.extras),void 0!==t.inverseBindMatrices&&e.setInverseBindMatrices(i.accessors[t.inverseBindMatrices]),void 0!==t.skeleton&&e.setSkeleton(i.nodes[t.skeleton]);for(const r of t.joints)e.addJoint(i.nodes[r]);return e}),w.map((t,e)=>{const r=i.nodes[e];(t.children||[]).forEach(t=>r.addChild(i.nodes[t])),void 0!==t.mesh&&r.setMesh(i.meshes[t.mesh]),void 0!==t.camera&&r.setCamera(i.cameras[t.camera]),void 0!==t.skin&&r.setSkin(i.skins[t.skin])}),i.animations=(s.animations||[]).map(t=>{const e=n.createAnimation(t.name);t.extras&&e.setExtras(t.extras);const r=(t.samplers||[]).map(t=>{const r=n.createAnimationSampler().setInput(i.accessors[t.input]).setOutput(i.accessors[t.output]).setInterpolation(t.interpolation||tt.Interpolation.LINEAR);return t.extras&&r.setExtras(t.extras),e.addSampler(r),r});return(t.channels||[]).forEach(t=>{const s=n.createAnimationChannel().setSampler(r[t.sampler]).setTargetPath(t.target.path);void 0!==t.target.node&&s.setTargetNode(i.nodes[t.target.node]),t.extras&&s.setExtras(t.extras),e.addChannel(s)}),e});const y=s.scenes||[];return n.getRoot().listExtensionsUsed().filter(t=>t.prereadTypes.includes(h.SCENE)).forEach(t=>t.preread(i,h.SCENE)),i.scenes=y.map(t=>{const e=n.createScene(t.name);return t.extras&&e.setExtras(t.extras),(t.nodes||[]).map(t=>i.nodes[t]).forEach(t=>e.addChild(t)),e}),void 0!==s.scene&&n.getRoot().setDefaultScene(i.scenes[s.scene]),n.getRoot().listExtensionsUsed().forEach(t=>t.read(i)),l.forEach((t,e)=>{const r=i.accessors[e],s=!!t.sparse,n=!t.bufferView&&!r.getArray();(s||n)&&r.setSparse(!0).setArray(function(t,e){const r=p[t.componentType],s=K.getElementSize(t.type);let n;n=void 0!==t.bufferView?At(t,e):new r(t.count*s);const i=t.sparse;if(!i)return n;const o=i.count,a=gt({},t,i.indices,{count:o,type:\"SCALAR\"}),u=gt({},t,i.values,{count:o}),c=At(a,e),h=At(u,e);for(let t=0;t<a.count;t++)for(let e=0;e<s;e++)n[c[t]*s+e]=h[t*s+e];return n}(t,i))}),n}static validate(t,e){const r=t.json;if(\"2.0\"!==r.asset.version)throw new Error(`Unsupported glTF version, \"${r.asset.version}\".`);if(r.extensionsRequired)for(const t of r.extensionsRequired)if(!e.extensions.find(e=>e.EXTENSION_NAME===t))throw new Error(`Missing required extension, \"${t}\".`);if(r.extensionsUsed)for(const t of r.extensionsUsed)e.extensions.find(e=>e.EXTENSION_NAME===t)||e.logger.warn(`Missing optional extension, \"${t}\".`)}}.read(t,{extensions:Array.from(this.h),dependencies:this.F,logger:this.M})}async binaryToJSON(t){const e=this.P(E.assertView(t));this.j(e);const r=e.json;if(r.buffers&&r.buffers.some(t=>function(t,e){return void 0!==e.uri&&!(e.uri in t.resources)}(e,t)))throw new Error(\"Cannot resolve external buffers with binaryToJSON().\");if(r.images&&r.images.some(t=>function(t,e){return void 0!==e.uri&&!(e.uri in t.resources)&&void 0===e.bufferView}(e,t)))throw new Error(\"Cannot resolve external images with binaryToJSON().\");return e}async readBinary(t){return this.readJSON(await this.binaryToJSON(E.assertView(t)))}async writeJSON(t,e={}){if(e.format===g.GLB&&t.getRoot().listBuffers().length>1)throw new Error(\"GLB must have 0–1 buffers.\");return class{static write(t,e){const r=t.getRoot(),s={asset:gt({generator:\"glTF-Transform v3.2.1\"},r.getAsset()),extras:gt({},r.getExtras())},n={json:s,resources:{}},i=new Mt(t,n,e),o=e.logger||U.DEFAULT_INSTANCE,a=new Set(e.extensions.map(t=>t.EXTENSION_NAME)),u=t.getRoot().listExtensionsUsed().filter(t=>a.has(t.extensionName)),c=t.getRoot().listExtensionsRequired().filter(t=>a.has(t.extensionName));u.length<t.getRoot().listExtensionsUsed().length&&o.warn(\"Some extensions were not registered for I/O, and will not be written.\");for(const t of u)for(const r of t.writeDependencies)t.install(r,e.dependencies[r]);function l(t,e,r,n){const o=[];let a=0;for(const e of t){const t=i.createAccessorDef(e);t.bufferView=s.bufferViews.length;const r=e.getArray(),n=E.pad(E.toView(r));t.byteOffset=a,a+=n.byteLength,o.push(n),i.accessorIndexMap.set(e,s.accessors.length),s.accessors.push(t)}const u={buffer:e,byteOffset:r,byteLength:E.concat(o).byteLength};return n&&(u.target=n),s.bufferViews.push(u),{buffers:o,byteLength:a}}function d(t,e,r){const n=t[0].getCount();let o=0;for(const e of t){const t=i.createAccessorDef(e);t.bufferView=s.bufferViews.length,t.byteOffset=o;const r=e.getElementSize(),n=e.getComponentSize();o+=E.padNumber(r*n),i.accessorIndexMap.set(e,s.accessors.length),s.accessors.push(t)}const a=n*o,u=new ArrayBuffer(a),c=new DataView(u);for(let e=0;e<n;e++){let r=0;for(const s of t){const t=s.getElementSize(),n=s.getComponentSize(),i=s.getComponentType(),a=s.getArray();for(let s=0;s<t;s++){const u=e*o+r+s*n,h=a[e*t+s];switch(i){case K.ComponentType.FLOAT:c.setFloat32(u,h,!0);break;case K.ComponentType.BYTE:c.setInt8(u,h);break;case K.ComponentType.SHORT:c.setInt16(u,h,!0);break;case K.ComponentType.UNSIGNED_BYTE:c.setUint8(u,h);break;case K.ComponentType.UNSIGNED_SHORT:c.setUint16(u,h,!0);break;case K.ComponentType.UNSIGNED_INT:c.setUint32(u,h,!0);break;default:throw new Error(\"Unexpected component type: \"+i)}}r+=E.padNumber(t*n)}}return s.bufferViews.push({buffer:e,byteOffset:r,byteLength:a,byteStride:o,target:Mt.BufferViewTarget.ARRAY_BUFFER}),{byteLength:a,buffers:[new Uint8Array(u)]}}function m(t,e,r){const n=[];let a=0;const u=new Map;let c=-Infinity;for(const e of t){const t=i.createAccessorDef(e);s.accessors.push(t),i.accessorIndexMap.set(e,s.accessors.length-1);const r=[],n=[],a=[],h=new Array(e.getElementSize()).fill(0);for(let t=0,s=e.getCount();t<s;t++)if(e.getElement(t,a),!P.eq(a,h,0)){c=Math.max(t,c),r.push(t);for(let t=0;t<a.length;t++)n.push(a[t])}const f=r.length,l={accessorDef:t,count:f};if(u.set(e,l),0===f)continue;if(f>e.getCount()/3){const t=(100*r.length/e.getCount()).toFixed(1);o.warn(`Sparse accessor with many non-zero elements (${t}%) may increase file size.`)}const d=p[e.getComponentType()];l.indices=r,l.values=new d(n)}if(!Number.isFinite(c))return{buffers:n,byteLength:a};const h=c<255?Uint8Array:c<65535?Uint16Array:Uint32Array,f=c<255?Ot:c<65535?Nt:Rt,l={buffer:e,byteOffset:r+a,byteLength:0};for(const e of t){const t=u.get(e);if(0===t.count)continue;t.indicesByteOffset=l.byteLength;const r=E.pad(E.toView(new h(t.indices)));n.push(r),a+=r.byteLength,l.byteLength+=r.byteLength}s.bufferViews.push(l);const d=s.bufferViews.length-1,g={buffer:e,byteOffset:r+a,byteLength:0};for(const e of t){const t=u.get(e);if(0===t.count)continue;t.valuesByteOffset=g.byteLength;const r=E.pad(E.toView(t.values));n.push(r),a+=r.byteLength,g.byteLength+=r.byteLength}s.bufferViews.push(g);const m=s.bufferViews.length-1;for(const e of t){const t=u.get(e);0!==t.count&&(t.accessorDef.sparse={count:t.count,indices:{bufferView:d,byteOffset:t.indicesByteOffset,componentType:f},values:{bufferView:m,byteOffset:t.valuesByteOffset}})}return{buffers:n,byteLength:a}}const w=new Map;for(const e of t.getGraph().listEdges()){if(e.getParent()===r)continue;const t=e.getChild();if(t instanceof K){const r=w.get(t)||[];r.push(e),w.set(t,r)}}if(s.accessors=[],s.bufferViews=[],s.samplers=[],s.textures=[],s.images=r.listTextures().map((t,e)=>{const r=i.createPropertyDef(t);t.getMimeType()&&(r.mimeType=t.getMimeType());const s=t.getImage();return s&&i.createImageData(r,s,t),i.imageIndexMap.set(t,e),r}),u.filter(t=>t.prewriteTypes.includes(h.ACCESSOR)).forEach(t=>t.prewrite(i,h.ACCESSOR)),r.listAccessors().forEach(t=>{const e=i.accessorUsageGroupedByParent,r=i.accessorParents;if(i.accessorIndexMap.has(t))return;const s=w.get(t)||[],n=i.getAccessorUsage(t);if(i.addAccessorToUsageGroup(t,n),e.has(n)){const e=s[0].getParent(),n=r.get(e)||new Set;n.add(t),r.set(e,n)}}),u.filter(t=>t.prewriteTypes.includes(h.BUFFER)).forEach(t=>t.prewrite(i,h.BUFFER)),(r.listAccessors().length>0||r.listTextures().length>0||i.otherBufferViews.size>0)&&0===r.listBuffers().length)throw new Error(\"Buffer required for Document resources, but none was found.\");s.buffers=[],r.listBuffers().forEach((t,r)=>{const o=i.createPropertyDef(t),a=i.accessorUsageGroupedByParent,u=i.accessorParents,c=t.listParents().filter(t=>t instanceof K),h=new Set(c),p=[],w=s.buffers.length;let y=0;const v=i.listAccessorUsageGroups();for(const t in v)if(a.has(t))for(const r of Array.from(u.values())){const s=Array.from(r).filter(t=>h.has(t)).filter(e=>i.getAccessorUsage(e)===t);if(s.length)if(t!==It.ARRAY_BUFFER||e.vertexLayout===f.INTERLEAVED){const e=t===It.ARRAY_BUFFER?d(s,w,y):l(s,w,y);y+=e.byteLength,p.push(...e.buffers)}else for(const t of s){const e=d([t],w,y);y+=e.byteLength,p.push(...e.buffers)}}else{const e=v[t].filter(t=>h.has(t));if(!e.length)continue;const r=t===It.ELEMENT_ARRAY_BUFFER?Mt.BufferViewTarget.ELEMENT_ARRAY_BUFFER:void 0,s=t===It.SPARSE?m(e,w,y):l(e,w,y,r);y+=s.byteLength,p.push(...s.buffers)}if(i.imageBufferViews.length&&0===r)for(let t=0;t<i.imageBufferViews.length;t++)if(s.bufferViews[s.images[t].bufferView].byteOffset=y,y+=i.imageBufferViews[t].byteLength,p.push(i.imageBufferViews[t]),y%8){const t=8-y%8;y+=t,p.push(new Uint8Array(t))}if(i.otherBufferViews.has(t))for(const e of i.otherBufferViews.get(t))s.bufferViews.push({buffer:w,byteOffset:y,byteLength:e.byteLength}),i.otherBufferViewsIndexMap.set(e,s.bufferViews.length-1),y+=e.byteLength,p.push(e);if(y){let r;e.format===g.GLB?r=\"@glb.bin\":(r=i.bufferURIGenerator.createURI(t,\"bin\"),o.uri=r),o.byteLength=y,n.resources[r]=E.concat(p)}s.buffers.push(o),i.bufferIndexMap.set(t,r)}),r.listAccessors().find(t=>!t.getBuffer())&&o.warn(\"Skipped writing one or more Accessors: no Buffer assigned.\"),s.materials=r.listMaterials().map((t,e)=>{const r=i.createPropertyDef(t);if(t.getAlphaMode()!==ct.AlphaMode.OPAQUE&&(r.alphaMode=t.getAlphaMode()),t.getAlphaMode()===ct.AlphaMode.MASK&&(r.alphaCutoff=t.getAlphaCutoff()),t.getDoubleSided()&&(r.doubleSided=!0),r.pbrMetallicRoughness={},P.eq(t.getBaseColorFactor(),[1,1,1,1])||(r.pbrMetallicRoughness.baseColorFactor=t.getBaseColorFactor()),P.eq(t.getEmissiveFactor(),[0,0,0])||(r.emissiveFactor=t.getEmissiveFactor()),1!==t.getRoughnessFactor()&&(r.pbrMetallicRoughness.roughnessFactor=t.getRoughnessFactor()),1!==t.getMetallicFactor()&&(r.pbrMetallicRoughness.metallicFactor=t.getMetallicFactor()),t.getBaseColorTexture()){const e=t.getBaseColorTexture(),s=t.getBaseColorTextureInfo();r.pbrMetallicRoughness.baseColorTexture=i.createTextureInfoDef(e,s)}if(t.getEmissiveTexture()){const e=t.getEmissiveTexture(),s=t.getEmissiveTextureInfo();r.emissiveTexture=i.createTextureInfoDef(e,s)}if(t.getNormalTexture()){const e=t.getNormalTexture(),s=t.getNormalTextureInfo(),n=i.createTextureInfoDef(e,s);1!==t.getNormalScale()&&(n.scale=t.getNormalScale()),r.normalTexture=n}if(t.getOcclusionTexture()){const e=t.getOcclusionTexture(),s=t.getOcclusionTextureInfo(),n=i.createTextureInfoDef(e,s);1!==t.getOcclusionStrength()&&(n.strength=t.getOcclusionStrength()),r.occlusionTexture=n}if(t.getMetallicRoughnessTexture()){const e=t.getMetallicRoughnessTexture(),s=t.getMetallicRoughnessTextureInfo();r.pbrMetallicRoughness.metallicRoughnessTexture=i.createTextureInfoDef(e,s)}return i.materialIndexMap.set(t,e),r}),s.meshes=r.listMeshes().map((t,e)=>{const r=i.createPropertyDef(t);let s=null;return r.primitives=t.listPrimitives().map(t=>{const e={attributes:{}};e.mode=t.getMode();const r=t.getMaterial();r&&(e.material=i.materialIndexMap.get(r)),Object.keys(t.getExtras()).length&&(e.extras=t.getExtras());const n=t.getIndices();n&&(e.indices=i.accessorIndexMap.get(n));for(const r of t.listSemantics())e.attributes[r]=i.accessorIndexMap.get(t.getAttribute(r));for(const r of t.listTargets()){const t={};for(const e of r.listSemantics())t[e]=i.accessorIndexMap.get(r.getAttribute(e));e.targets=e.targets||[],e.targets.push(t)}return t.listTargets().length&&!s&&(s=t.listTargets().map(t=>t.getName())),e}),t.getWeights().length&&(r.weights=t.getWeights()),s&&(r.extras=r.extras||{},r.extras.targetNames=s),i.meshIndexMap.set(t,e),r}),s.cameras=r.listCameras().map((t,e)=>{const r=i.createPropertyDef(t);if(r.type=t.getType(),r.type===rt.Type.PERSPECTIVE){r.perspective={znear:t.getZNear(),zfar:t.getZFar(),yfov:t.getYFov()};const e=t.getAspectRatio();null!==e&&(r.perspective.aspectRatio=e)}else r.orthographic={znear:t.getZNear(),zfar:t.getZFar(),xmag:t.getXMag(),ymag:t.getYMag()};return i.cameraIndexMap.set(t,e),r}),s.nodes=r.listNodes().map((t,e)=>{const r=i.createPropertyDef(t);return P.eq(t.getTranslation(),[0,0,0])||(r.translation=t.getTranslation()),P.eq(t.getRotation(),[0,0,0,1])||(r.rotation=t.getRotation()),P.eq(t.getScale(),[1,1,1])||(r.scale=t.getScale()),t.getWeights().length&&(r.weights=t.getWeights()),i.nodeIndexMap.set(t,e),r}),s.skins=r.listSkins().map((t,e)=>{const r=i.createPropertyDef(t),s=t.getInverseBindMatrices();s&&(r.inverseBindMatrices=i.accessorIndexMap.get(s));const n=t.getSkeleton();return n&&(r.skeleton=i.nodeIndexMap.get(n)),r.joints=t.listJoints().map(t=>i.nodeIndexMap.get(t)),i.skinIndexMap.set(t,e),r}),r.listNodes().forEach((t,e)=>{const r=s.nodes[e],n=t.getMesh();n&&(r.mesh=i.meshIndexMap.get(n));const o=t.getCamera();o&&(r.camera=i.cameraIndexMap.get(o));const a=t.getSkin();a&&(r.skin=i.skinIndexMap.get(a)),t.listChildren().length>0&&(r.children=t.listChildren().map(t=>i.nodeIndexMap.get(t)))}),s.animations=r.listAnimations().map((t,e)=>{const r=i.createPropertyDef(t),s=new Map;return r.samplers=t.listSamplers().map((t,e)=>{const r=i.createPropertyDef(t);return r.input=i.accessorIndexMap.get(t.getInput()),r.output=i.accessorIndexMap.get(t.getOutput()),r.interpolation=t.getInterpolation(),s.set(t,e),r}),r.channels=t.listChannels().map(t=>{const e=i.createPropertyDef(t);return e.sampler=s.get(t.getSampler()),e.target={node:i.nodeIndexMap.get(t.getTargetNode()),path:t.getTargetPath()},e}),i.animationIndexMap.set(t,e),r}),s.scenes=r.listScenes().map((t,e)=>{const r=i.createPropertyDef(t);return r.nodes=t.listChildren().map(t=>i.nodeIndexMap.get(t)),i.sceneIndexMap.set(t,e),r});const y=r.getDefaultScene();return y&&(s.scene=r.listScenes().indexOf(y)),s.extensionsUsed=u.map(t=>t.extensionName),s.extensionsRequired=c.map(t=>t.extensionName),u.forEach(t=>t.write(i)),function(t){const e=[];for(const r in t){const s=t[r];(Array.isArray(s)&&0===s.length||null===s||\"\"===s||s&&\"object\"==typeof s&&0===Object.keys(s).length)&&e.push(r)}for(const r of e)delete t[r]}(s),n}}.write(t,{format:e.format||g.GLTF,basename:e.basename||\"\",logger:this.M,vertexLayout:this.U,dependencies:gt({},this.F),extensions:Array.from(this.h)})}async writeBinary(t){const{json:e,resources:r}=await this.writeJSON(t,{format:g.GLB}),s=new Uint32Array([1179937895,2,12]),n=JSON.stringify(e),i=E.pad(E.encodeText(n),32),o=E.toView(new Uint32Array([i.byteLength,1313821514])),a=E.concat([o,i]);s[s.length-1]+=a.byteLength;const u=Object.values(r)[0];if(!u||!u.byteLength)return E.concat([E.toView(s),a]);const c=E.pad(u,0),h=E.toView(new Uint32Array([c.byteLength,5130562])),f=E.concat([h,c]);return s[s.length-1]+=f.byteLength,E.concat([E.toView(s),a,f])}async L(t,e){var r=this;const s=[...t.json.images||[],...t.json.buffers||[]].map(async function(s){const n=s.uri;if(!n||n.match(/data:/))return Promise.resolve();t.resources[n]=await r.readURI(r.resolve(e,n),\"view\"),r.lastReadBytes+=t.resources[n].byteLength});await Promise.all(s)}j(t){function e(e){if(e.uri)if(e.uri in t.resources)E.assertView(t.resources[e.uri]);else if(e.uri.match(/data:/)){const r=`__${V()}.${N.extension(e.uri)}`;t.resources[r]=E.createBufferFromDataURI(e.uri),e.uri=r}}(t.json.images||[]).forEach(t=>{if(void 0===t.bufferView&&void 0===t.uri)throw new Error(\"Missing resource URI or buffer view.\");e(t)}),(t.json.buffers||[]).forEach(e)}D(t){const{images:e,buffers:r}=t.json;return t={json:gt({},t.json),resources:gt({},t.resources)},e&&(t.json.images=e.map(t=>gt({},t))),r&&(t.json.buffers=r.map(t=>gt({},t))),t}P(t){if(!Ut(t))throw new Error(\"Invalid glTF 2.0 binary.\");const e=new Uint32Array(t.buffer,t.byteOffset+12,2);if(e[1]!==Ct.JSON)throw new Error(\"Missing required GLB JSON chunk.\");const r=e[0],s=E.decodeText(E.toView(t,20,r)),n=JSON.parse(s),i=20+r;if(t.byteLength<=i)return{json:n,resources:{}};const o=new Uint32Array(t.buffer,t.byteOffset+i,2);if(o[1]!==Ct.BIN)throw new Error(\"Expected GLB BIN in second chunk.\");return{json:n,resources:{\"@glb.bin\":E.toView(t,i+8,o[0])}}}}function Ut(t){if(t.byteLength<3*Uint32Array.BYTES_PER_ELEMENT)return!1;const e=new Uint32Array(t.buffer,t.byteOffset,3);return 1179937895===e[0]&&2===e[1]}class Bt extends Ft{constructor(t=null,e=W.DEFAULT_INIT){super(),this._=void 0,this.k=void 0,this.J=void 0,this.$=!1,this._=t,this.k=e,this.J=this.init()}async init(){return this.J?this.J:Promise.all([import(\"fs\"),import(\"path\")]).then(([t,e])=>{this.V=t.promises,this.W=e})}setAllowHTTP(t){if(t&&!this._)throw new Error(\"NodeIO requires a Fetch API implementation for HTTP requests.\");return this.$=t,this}async readURI(t,e){if(await this.init(),W.isAbsoluteURL(t)){if(!this.$||!this._)throw new Error(\"Network request blocked. Allow HTTP requests explicitly, if needed.\");const r=await this._(t,this.k);switch(e){case\"view\":return new Uint8Array(await r.arrayBuffer());case\"text\":return r.text()}}else switch(e){case\"view\":return this.V.readFile(t);case\"text\":return this.V.readFile(t,\"utf8\")}}resolve(t,e){return W.isAbsoluteURL(t)||W.isAbsoluteURL(e)?W.resolve(t,e):this.W.resolve(t,e)}dirname(t){return W.isAbsoluteURL(t)?W.dirname(t):this.W.dirname(t)}async write(t,e){await this.init();const r=!!t.match(/\\.glb$/);await(r?this.q(t,e):this.H(t,e))}async H(t,e){var r=this;this.lastWriteBytes=0;const{json:s,resources:n}=await this.writeJSON(e,{format:g.GLTF,basename:N.basename(t)}),{V:i,W:o}=this,a=o.dirname(t),u=JSON.stringify(s,null,2);this.lastWriteBytes+=u.length,await i.writeFile(t,u);const c=Object.keys(n).map(async function(t){if(W.isAbsoluteURL(t)){if(\"bin\"===W.extension(t))throw new Error(`Cannot write buffer to path \"${t}\".`);return}const e=Buffer.from(n[t]),s=o.join(a,t);await i.mkdir(o.dirname(s),{recursive:!0}),await i.writeFile(s,e),r.lastWriteBytes+=e.byteLength});await Promise.all(c)}async q(t,e){const r=Buffer.from(await this.writeBinary(e));await this.V.writeFile(t,r),this.lastWriteBytes=r.byteLength}}class Pt extends Ft{constructor(t){super(),this.W=void 0,this.W=t}async readURI(t,e){switch(e){case\"view\":return Deno.readFile(t);case\"text\":return Deno.readTextFile(t)}}resolve(t,e){return this.W.resolve(t,e)}dirname(t){return this.W.dirname(t)}}class Lt extends Ft{constructor(t=W.DEFAULT_INIT){super(),this.k=void 0,this.k=t}async readURI(t,e){const r=await fetch(t,this.k);switch(e){case\"view\":return new Uint8Array(await r.arrayBuffer());case\"text\":return r.text()}}resolve(t,e){return W.resolve(t,e)}dirname(t){return W.dirname(t)}}export{K as Accessor,Q as Animation,X as AnimationChannel,tt as AnimationSampler,et as Buffer,E as BufferUtils,q as COPY_IDENTITY,rt as Camera,M as ColorUtils,p as ComponentTypeToTypedArray,Pt as DenoIO,vt as Document,Z as ExtensibleProperty,Tt as Extension,st as ExtensionProperty,N as FileUtils,g as Format,c as GLB_BUFFER,W as HTTPUtils,I as ImageUtils,U as Logger,ct as Material,P as MathUtils,ht as Mesh,ft as Node,Bt as NodeIO,Ft as PlatformIO,lt as Primitive,dt as PrimitiveTarget,Y as Property,h as PropertyType,bt as ReaderContext,yt as Root,pt as Scene,mt as Skin,wt as Texture,d as TextureChannel,nt as TextureInfo,u as VERSION,F as Verbosity,f as VertexLayout,Lt as WebIO,Mt as WriterContext,b as bounds,T as getBounds,V as uuid};\n//# sourceMappingURL=core.modern.js.map\n","///////////////////////////////////////////////////\n// KTX2 Header.\n///////////////////////////////////////////////////\nconst KHR_SUPERCOMPRESSION_NONE = 0;\nconst KHR_SUPERCOMPRESSION_BASISLZ = 1;\nconst KHR_SUPERCOMPRESSION_ZSTD = 2;\nconst KHR_SUPERCOMPRESSION_ZLIB = 3; ///////////////////////////////////////////////////\n// Data Format Descriptor (DFD).\n///////////////////////////////////////////////////\n\nconst KHR_DF_KHR_DESCRIPTORTYPE_BASICFORMAT = 0;\nconst KHR_DF_VENDORID_KHRONOS = 0;\nconst KHR_DF_VERSION = 2;\nconst KHR_DF_MODEL_UNSPECIFIED = 0;\nconst KHR_DF_MODEL_RGBSDA = 1; // ...\n\nconst KHR_DF_MODEL_ETC1 = 160;\nconst KHR_DF_MODEL_ETC2 = 161;\nconst KHR_DF_MODEL_ASTC = 162;\nconst KHR_DF_MODEL_ETC1S = 163;\nconst KHR_DF_MODEL_UASTC = 166;\nconst KHR_DF_FLAG_ALPHA_STRAIGHT = 0;\nconst KHR_DF_FLAG_ALPHA_PREMULTIPLIED = 1;\nconst KHR_DF_TRANSFER_UNSPECIFIED = 0;\nconst KHR_DF_TRANSFER_LINEAR = 1;\nconst KHR_DF_TRANSFER_SRGB = 2;\nconst KHR_DF_TRANSFER_ITU = 3;\nconst KHR_DF_TRANSFER_NTSC = 4;\nconst KHR_DF_TRANSFER_SLOG = 5;\nconst KHR_DF_TRANSFER_SLOG2 = 6;\nconst KHR_DF_TRANSFER_BT1886 = 7;\nconst KHR_DF_TRANSFER_HLG_OETF = 8;\nconst KHR_DF_TRANSFER_HLG_EOTF = 9;\nconst KHR_DF_TRANSFER_PQ_EOTF = 10;\nconst KHR_DF_TRANSFER_PQ_OETF = 11;\nconst KHR_DF_TRANSFER_DCIP3 = 12;\nconst KHR_DF_TRANSFER_PAL_OETF = 13;\nconst KHR_DF_TRANSFER_PAL625_EOTF = 14;\nconst KHR_DF_TRANSFER_ST240 = 15;\nconst KHR_DF_TRANSFER_ACESCC = 16;\nconst KHR_DF_TRANSFER_ACESCCT = 17;\nconst KHR_DF_TRANSFER_ADOBERGB = 18;\nconst KHR_DF_PRIMARIES_UNSPECIFIED = 0;\nconst KHR_DF_PRIMARIES_BT709 = 1;\nconst KHR_DF_PRIMARIES_BT601_EBU = 2;\nconst KHR_DF_PRIMARIES_BT601_SMPTE = 3;\nconst KHR_DF_PRIMARIES_BT2020 = 4;\nconst KHR_DF_PRIMARIES_CIEXYZ = 5;\nconst KHR_DF_PRIMARIES_ACES = 6;\nconst KHR_DF_PRIMARIES_ACESCC = 7;\nconst KHR_DF_PRIMARIES_NTSC1953 = 8;\nconst KHR_DF_PRIMARIES_PAL525 = 9;\nconst KHR_DF_PRIMARIES_DISPLAYP3 = 10;\nconst KHR_DF_PRIMARIES_ADOBERGB = 11;\nconst KHR_DF_CHANNEL_RGBSDA_RED = 0;\nconst KHR_DF_CHANNEL_RGBSDA_GREEN = 1;\nconst KHR_DF_CHANNEL_RGBSDA_BLUE = 2;\nconst KHR_DF_CHANNEL_RGBSDA_STENCIL = 13;\nconst KHR_DF_CHANNEL_RGBSDA_DEPTH = 14;\nconst KHR_DF_CHANNEL_RGBSDA_ALPHA = 15;\nconst KHR_DF_SAMPLE_DATATYPE_FLOAT = 0x80;\nconst KHR_DF_SAMPLE_DATATYPE_SIGNED = 0x40;\nconst KHR_DF_SAMPLE_DATATYPE_EXPONENT = 0x20;\nconst KHR_DF_SAMPLE_DATATYPE_LINEAR = 0x10; ///////////////////////////////////////////////////\n// VK FORMAT.\n///////////////////////////////////////////////////\n\nconst VK_FORMAT_UNDEFINED = 0;\nconst VK_FORMAT_R4G4_UNORM_PACK8 = 1;\nconst VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2;\nconst VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3;\nconst VK_FORMAT_R5G6B5_UNORM_PACK16 = 4;\nconst VK_FORMAT_B5G6R5_UNORM_PACK16 = 5;\nconst VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6;\nconst VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7;\nconst VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8;\nconst VK_FORMAT_R8_UNORM = 9;\nconst VK_FORMAT_R8_SNORM = 10;\nconst VK_FORMAT_R8_UINT = 13;\nconst VK_FORMAT_R8_SINT = 14;\nconst VK_FORMAT_R8_SRGB = 15;\nconst VK_FORMAT_R8G8_UNORM = 16;\nconst VK_FORMAT_R8G8_SNORM = 17;\nconst VK_FORMAT_R8G8_UINT = 20;\nconst VK_FORMAT_R8G8_SINT = 21;\nconst VK_FORMAT_R8G8_SRGB = 22;\nconst VK_FORMAT_R8G8B8_UNORM = 23;\nconst VK_FORMAT_R8G8B8_SNORM = 24;\nconst VK_FORMAT_R8G8B8_UINT = 27;\nconst VK_FORMAT_R8G8B8_SINT = 28;\nconst VK_FORMAT_R8G8B8_SRGB = 29;\nconst VK_FORMAT_B8G8R8_UNORM = 30;\nconst VK_FORMAT_B8G8R8_SNORM = 31;\nconst VK_FORMAT_B8G8R8_UINT = 34;\nconst VK_FORMAT_B8G8R8_SINT = 35;\nconst VK_FORMAT_B8G8R8_SRGB = 36;\nconst VK_FORMAT_R8G8B8A8_UNORM = 37;\nconst VK_FORMAT_R8G8B8A8_SNORM = 38;\nconst VK_FORMAT_R8G8B8A8_UINT = 41;\nconst VK_FORMAT_R8G8B8A8_SINT = 42;\nconst VK_FORMAT_R8G8B8A8_SRGB = 43;\nconst VK_FORMAT_B8G8R8A8_UNORM = 44;\nconst VK_FORMAT_B8G8R8A8_SNORM = 45;\nconst VK_FORMAT_B8G8R8A8_UINT = 48;\nconst VK_FORMAT_B8G8R8A8_SINT = 49;\nconst VK_FORMAT_B8G8R8A8_SRGB = 50;\nconst VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58;\nconst VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59;\nconst VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62;\nconst VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63;\nconst VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64;\nconst VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65;\nconst VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68;\nconst VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69;\nconst VK_FORMAT_R16_UNORM = 70;\nconst VK_FORMAT_R16_SNORM = 71;\nconst VK_FORMAT_R16_UINT = 74;\nconst VK_FORMAT_R16_SINT = 75;\nconst VK_FORMAT_R16_SFLOAT = 76;\nconst VK_FORMAT_R16G16_UNORM = 77;\nconst VK_FORMAT_R16G16_SNORM = 78;\nconst VK_FORMAT_R16G16_UINT = 81;\nconst VK_FORMAT_R16G16_SINT = 82;\nconst VK_FORMAT_R16G16_SFLOAT = 83;\nconst VK_FORMAT_R16G16B16_UNORM = 84;\nconst VK_FORMAT_R16G16B16_SNORM = 85;\nconst VK_FORMAT_R16G16B16_UINT = 88;\nconst VK_FORMAT_R16G16B16_SINT = 89;\nconst VK_FORMAT_R16G16B16_SFLOAT = 90;\nconst VK_FORMAT_R16G16B16A16_UNORM = 91;\nconst VK_FORMAT_R16G16B16A16_SNORM = 92;\nconst VK_FORMAT_R16G16B16A16_UINT = 95;\nconst VK_FORMAT_R16G16B16A16_SINT = 96;\nconst VK_FORMAT_R16G16B16A16_SFLOAT = 97;\nconst VK_FORMAT_R32_UINT = 98;\nconst VK_FORMAT_R32_SINT = 99;\nconst VK_FORMAT_R32_SFLOAT = 100;\nconst VK_FORMAT_R32G32_UINT = 101;\nconst VK_FORMAT_R32G32_SINT = 102;\nconst VK_FORMAT_R32G32_SFLOAT = 103;\nconst VK_FORMAT_R32G32B32_UINT = 104;\nconst VK_FORMAT_R32G32B32_SINT = 105;\nconst VK_FORMAT_R32G32B32_SFLOAT = 106;\nconst VK_FORMAT_R32G32B32A32_UINT = 107;\nconst VK_FORMAT_R32G32B32A32_SINT = 108;\nconst VK_FORMAT_R32G32B32A32_SFLOAT = 109;\nconst VK_FORMAT_R64_UINT = 110;\nconst VK_FORMAT_R64_SINT = 111;\nconst VK_FORMAT_R64_SFLOAT = 112;\nconst VK_FORMAT_R64G64_UINT = 113;\nconst VK_FORMAT_R64G64_SINT = 114;\nconst VK_FORMAT_R64G64_SFLOAT = 115;\nconst VK_FORMAT_R64G64B64_UINT = 116;\nconst VK_FORMAT_R64G64B64_SINT = 117;\nconst VK_FORMAT_R64G64B64_SFLOAT = 118;\nconst VK_FORMAT_R64G64B64A64_UINT = 119;\nconst VK_FORMAT_R64G64B64A64_SINT = 120;\nconst VK_FORMAT_R64G64B64A64_SFLOAT = 121;\nconst VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122;\nconst VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123;\nconst VK_FORMAT_D16_UNORM = 124;\nconst VK_FORMAT_X8_D24_UNORM_PACK32 = 125;\nconst VK_FORMAT_D32_SFLOAT = 126;\nconst VK_FORMAT_S8_UINT = 127;\nconst VK_FORMAT_D16_UNORM_S8_UINT = 128;\nconst VK_FORMAT_D24_UNORM_S8_UINT = 129;\nconst VK_FORMAT_D32_SFLOAT_S8_UINT = 130;\nconst VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131;\nconst VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132;\nconst VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133;\nconst VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134;\nconst VK_FORMAT_BC2_UNORM_BLOCK = 135;\nconst VK_FORMAT_BC2_SRGB_BLOCK = 136;\nconst VK_FORMAT_BC3_UNORM_BLOCK = 137;\nconst VK_FORMAT_BC3_SRGB_BLOCK = 138;\nconst VK_FORMAT_BC4_UNORM_BLOCK = 139;\nconst VK_FORMAT_BC4_SNORM_BLOCK = 140;\nconst VK_FORMAT_BC5_UNORM_BLOCK = 141;\nconst VK_FORMAT_BC5_SNORM_BLOCK = 142;\nconst VK_FORMAT_BC6H_UFLOAT_BLOCK = 143;\nconst VK_FORMAT_BC6H_SFLOAT_BLOCK = 144;\nconst VK_FORMAT_BC7_UNORM_BLOCK = 145;\nconst VK_FORMAT_BC7_SRGB_BLOCK = 146;\nconst VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147;\nconst VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148;\nconst VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149;\nconst VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150;\nconst VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151;\nconst VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152;\nconst VK_FORMAT_EAC_R11_UNORM_BLOCK = 153;\nconst VK_FORMAT_EAC_R11_SNORM_BLOCK = 154;\nconst VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155;\nconst VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156;\nconst VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157;\nconst VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158;\nconst VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159;\nconst VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160;\nconst VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161;\nconst VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162;\nconst VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163;\nconst VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164;\nconst VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165;\nconst VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166;\nconst VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167;\nconst VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168;\nconst VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169;\nconst VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170;\nconst VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171;\nconst VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172;\nconst VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173;\nconst VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174;\nconst VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175;\nconst VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176;\nconst VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177;\nconst VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178;\nconst VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179;\nconst VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180;\nconst VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181;\nconst VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182;\nconst VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183;\nconst VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184;\nconst VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007;\nconst VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008;\nconst VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009;\nconst VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010;\nconst VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011;\nconst VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017;\nconst VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018;\nconst VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019;\nconst VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020;\nconst VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021;\nconst VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000;\nconst VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001;\nconst VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002;\nconst VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003;\nconst VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004;\nconst VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005;\nconst VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006;\nconst VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007;\nconst VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066000;\nconst VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001;\nconst VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002;\nconst VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = 1000066003;\nconst VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = 1000066004;\nconst VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = 1000066005;\nconst VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = 1000066006;\nconst VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = 1000066007;\nconst VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = 1000066008;\nconst VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = 1000066009;\nconst VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = 1000066010;\nconst VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = 1000066011;\nconst VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = 1000066012;\nconst VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = 1000066013;\nconst VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = 1000340000;\nconst VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = 1000340001;\n\n/**\r\n * Represents an unpacked KTX 2.0 texture container. Data for individual mip levels are stored in\r\n * the `.levels` array, typically compressed in Basis Universal formats. Additional properties\r\n * provide metadata required to process, transcode, and upload these textures.\r\n */\n\nclass KTX2Container {\n constructor() {\n this.vkFormat = VK_FORMAT_UNDEFINED;\n this.typeSize = 1;\n this.pixelWidth = 0;\n this.pixelHeight = 0;\n this.pixelDepth = 0;\n this.layerCount = 0;\n this.faceCount = 1;\n this.supercompressionScheme = KHR_SUPERCOMPRESSION_NONE;\n this.levels = [];\n this.dataFormatDescriptor = [{\n vendorId: KHR_DF_VENDORID_KHRONOS,\n descriptorType: KHR_DF_KHR_DESCRIPTORTYPE_BASICFORMAT,\n descriptorBlockSize: 0,\n versionNumber: KHR_DF_VERSION,\n colorModel: KHR_DF_MODEL_UNSPECIFIED,\n colorPrimaries: KHR_DF_PRIMARIES_BT709,\n transferFunction: KHR_DF_TRANSFER_SRGB,\n flags: KHR_DF_FLAG_ALPHA_STRAIGHT,\n texelBlockDimension: [0, 0, 0, 0],\n bytesPlane: [0, 0, 0, 0, 0, 0, 0, 0],\n samples: []\n }];\n this.keyValue = {};\n this.globalData = null;\n }\n\n}\n\nclass BufferReader {\n constructor(data, byteOffset, byteLength, littleEndian) {\n this._dataView = void 0;\n this._littleEndian = void 0;\n this._offset = void 0;\n this._dataView = new DataView(data.buffer, data.byteOffset + byteOffset, byteLength);\n this._littleEndian = littleEndian;\n this._offset = 0;\n }\n\n _nextUint8() {\n const value = this._dataView.getUint8(this._offset);\n\n this._offset += 1;\n return value;\n }\n\n _nextUint16() {\n const value = this._dataView.getUint16(this._offset, this._littleEndian);\n\n this._offset += 2;\n return value;\n }\n\n _nextUint32() {\n const value = this._dataView.getUint32(this._offset, this._littleEndian);\n\n this._offset += 4;\n return value;\n }\n\n _nextUint64() {\n const left = this._dataView.getUint32(this._offset, this._littleEndian);\n\n const right = this._dataView.getUint32(this._offset + 4, this._littleEndian); // TODO(cleanup): Just test this...\n // const value = this._littleEndian ? left + (2 ** 32 * right) : (2 ** 32 * left) + right;\n\n\n const value = left + 2 ** 32 * right;\n this._offset += 8;\n return value;\n }\n\n _nextInt32() {\n const value = this._dataView.getInt32(this._offset, this._littleEndian);\n\n this._offset += 4;\n return value;\n }\n\n _skip(bytes) {\n this._offset += bytes;\n return this;\n }\n\n _scan(maxByteLength, term = 0x00) {\n const byteOffset = this._offset;\n let byteLength = 0;\n\n while (this._dataView.getUint8(this._offset) !== term && byteLength < maxByteLength) {\n byteLength++;\n this._offset++;\n }\n\n if (byteLength < maxByteLength) this._offset++;\n return new Uint8Array(this._dataView.buffer, this._dataView.byteOffset + byteOffset, byteLength);\n }\n\n}\n\n///////////////////////////////////////////////////\n// Common.\n///////////////////////////////////////////////////\nconst KTX_WRITER = `KTX-Parse v${\"0.5.0\"}`;\nconst NUL = new Uint8Array([0x00]); ///////////////////////////////////////////////////\n// KTX2 Header.\n///////////////////////////////////////////////////\n\nconst KTX2_ID = [// '´', 'K', 'T', 'X', '2', '0', 'ª', '\\r', '\\n', '\\x1A', '\\n'\n0xab, 0x4b, 0x54, 0x58, 0x20, 0x32, 0x30, 0xbb, 0x0d, 0x0a, 0x1a, 0x0a];\nconst HEADER_BYTE_LENGTH = 68; // 13 * 4 + 2 * 8\n\n/** Encodes text to an ArrayBuffer. */\nfunction encodeText(text) {\n if (typeof TextEncoder !== 'undefined') {\n return new TextEncoder().encode(text);\n }\n\n return Buffer.from(text);\n}\n/** Decodes an ArrayBuffer to text. */\n\nfunction decodeText(buffer) {\n if (typeof TextDecoder !== 'undefined') {\n return new TextDecoder().decode(buffer);\n }\n\n return Buffer.from(buffer).toString('utf8');\n}\n/** Concatenates N ArrayBuffers. */\n\nfunction concat(buffers) {\n let totalByteLength = 0;\n\n for (const buffer of buffers) {\n totalByteLength += buffer.byteLength;\n }\n\n const result = new Uint8Array(totalByteLength);\n let byteOffset = 0;\n\n for (const buffer of buffers) {\n result.set(new Uint8Array(buffer), byteOffset);\n byteOffset += buffer.byteLength;\n }\n\n return result;\n}\n\n/**\r\n * Parses a KTX 2.0 file, returning an unpacked {@link KTX2Container} instance with all associated\r\n * data. The container's mip levels and other binary data are pointers into the original file, not\r\n * copies, so the original file should not be overwritten after reading.\r\n *\r\n * @param data Bytes of KTX 2.0 file, as Uint8Array or Buffer.\r\n */\n\nfunction read(data) {\n ///////////////////////////////////////////////////\n // KTX 2.0 Identifier.\n ///////////////////////////////////////////////////\n const id = new Uint8Array(data.buffer, data.byteOffset, KTX2_ID.length);\n\n if (id[0] !== KTX2_ID[0] || // '´'\n id[1] !== KTX2_ID[1] || // 'K'\n id[2] !== KTX2_ID[2] || // 'T'\n id[3] !== KTX2_ID[3] || // 'X'\n id[4] !== KTX2_ID[4] || // ' '\n id[5] !== KTX2_ID[5] || // '2'\n id[6] !== KTX2_ID[6] || // '0'\n id[7] !== KTX2_ID[7] || // 'ª'\n id[8] !== KTX2_ID[8] || // '\\r'\n id[9] !== KTX2_ID[9] || // '\\n'\n id[10] !== KTX2_ID[10] || // '\\x1A'\n id[11] !== KTX2_ID[11] // '\\n'\n ) {\n throw new Error('Missing KTX 2.0 identifier.');\n }\n\n const container = new KTX2Container(); ///////////////////////////////////////////////////\n // Header.\n ///////////////////////////////////////////////////\n\n const headerByteLength = 17 * Uint32Array.BYTES_PER_ELEMENT;\n const headerReader = new BufferReader(data, KTX2_ID.length, headerByteLength, true);\n container.vkFormat = headerReader._nextUint32();\n container.typeSize = headerReader._nextUint32();\n container.pixelWidth = headerReader._nextUint32();\n container.pixelHeight = headerReader._nextUint32();\n container.pixelDepth = headerReader._nextUint32();\n container.layerCount = headerReader._nextUint32();\n container.faceCount = headerReader._nextUint32();\n\n const levelCount = headerReader._nextUint32();\n\n container.supercompressionScheme = headerReader._nextUint32();\n\n const dfdByteOffset = headerReader._nextUint32();\n\n const dfdByteLength = headerReader._nextUint32();\n\n const kvdByteOffset = headerReader._nextUint32();\n\n const kvdByteLength = headerReader._nextUint32();\n\n const sgdByteOffset = headerReader._nextUint64();\n\n const sgdByteLength = headerReader._nextUint64(); ///////////////////////////////////////////////////\n // Level Index.\n ///////////////////////////////////////////////////\n\n\n const levelByteLength = levelCount * 3 * 8;\n const levelReader = new BufferReader(data, KTX2_ID.length + headerByteLength, levelByteLength, true);\n\n for (let i = 0; i < levelCount; i++) {\n container.levels.push({\n levelData: new Uint8Array(data.buffer, data.byteOffset + levelReader._nextUint64(), levelReader._nextUint64()),\n uncompressedByteLength: levelReader._nextUint64()\n });\n } ///////////////////////////////////////////////////\n // Data Format Descriptor (DFD).\n ///////////////////////////////////////////////////\n\n\n const dfdReader = new BufferReader(data, dfdByteOffset, dfdByteLength, true);\n const dfd = {\n vendorId: dfdReader._skip(4\n /* totalSize */\n )._nextUint16(),\n descriptorType: dfdReader._nextUint16(),\n versionNumber: dfdReader._nextUint16(),\n descriptorBlockSize: dfdReader._nextUint16(),\n colorModel: dfdReader._nextUint8(),\n colorPrimaries: dfdReader._nextUint8(),\n transferFunction: dfdReader._nextUint8(),\n flags: dfdReader._nextUint8(),\n texelBlockDimension: [dfdReader._nextUint8(), dfdReader._nextUint8(), dfdReader._nextUint8(), dfdReader._nextUint8()],\n bytesPlane: [dfdReader._nextUint8(), dfdReader._nextUint8(), dfdReader._nextUint8(), dfdReader._nextUint8(), dfdReader._nextUint8(), dfdReader._nextUint8(), dfdReader._nextUint8(), dfdReader._nextUint8()],\n samples: []\n };\n const sampleStart = 6;\n const sampleWords = 4;\n const numSamples = (dfd.descriptorBlockSize / 4 - sampleStart) / sampleWords;\n\n for (let i = 0; i < numSamples; i++) {\n const sample = {\n bitOffset: dfdReader._nextUint16(),\n bitLength: dfdReader._nextUint8(),\n channelType: dfdReader._nextUint8(),\n samplePosition: [dfdReader._nextUint8(), dfdReader._nextUint8(), dfdReader._nextUint8(), dfdReader._nextUint8()],\n sampleLower: -Infinity,\n sampleUpper: Infinity\n };\n\n if (sample.channelType & KHR_DF_SAMPLE_DATATYPE_SIGNED) {\n sample.sampleLower = dfdReader._nextInt32();\n sample.sampleUpper = dfdReader._nextInt32();\n } else {\n sample.sampleLower = dfdReader._nextUint32();\n sample.sampleUpper = dfdReader._nextUint32();\n }\n\n dfd.samples[i] = sample;\n }\n\n container.dataFormatDescriptor.length = 0;\n container.dataFormatDescriptor.push(dfd); ///////////////////////////////////////////////////\n // Key/Value Data (KVD).\n ///////////////////////////////////////////////////\n\n const kvdReader = new BufferReader(data, kvdByteOffset, kvdByteLength, true);\n\n while (kvdReader._offset < kvdByteLength) {\n const keyValueByteLength = kvdReader._nextUint32();\n\n const keyData = kvdReader._scan(keyValueByteLength);\n\n const key = decodeText(keyData);\n\n const valueData = kvdReader._scan(keyValueByteLength - keyData.byteLength);\n\n container.keyValue[key] = key.match(/^ktx/i) ? decodeText(valueData) : valueData; // 4-byte alignment.\n\n if (kvdReader._offset % 4) kvdReader._skip(4 - kvdReader._offset % 4);\n } ///////////////////////////////////////////////////\n // Supercompression Global Data (SGD).\n ///////////////////////////////////////////////////\n\n\n if (sgdByteLength <= 0) return container;\n const sgdReader = new BufferReader(data, sgdByteOffset, sgdByteLength, true);\n\n const endpointCount = sgdReader._nextUint16();\n\n const selectorCount = sgdReader._nextUint16();\n\n const endpointsByteLength = sgdReader._nextUint32();\n\n const selectorsByteLength = sgdReader._nextUint32();\n\n const tablesByteLength = sgdReader._nextUint32();\n\n const extendedByteLength = sgdReader._nextUint32();\n\n const imageDescs = [];\n\n for (let i = 0; i < levelCount; i++) {\n imageDescs.push({\n imageFlags: sgdReader._nextUint32(),\n rgbSliceByteOffset: sgdReader._nextUint32(),\n rgbSliceByteLength: sgdReader._nextUint32(),\n alphaSliceByteOffset: sgdReader._nextUint32(),\n alphaSliceByteLength: sgdReader._nextUint32()\n });\n }\n\n const endpointsByteOffset = sgdByteOffset + sgdReader._offset;\n const selectorsByteOffset = endpointsByteOffset + endpointsByteLength;\n const tablesByteOffset = selectorsByteOffset + selectorsByteLength;\n const extendedByteOffset = tablesByteOffset + tablesByteLength;\n const endpointsData = new Uint8Array(data.buffer, data.byteOffset + endpointsByteOffset, endpointsByteLength);\n const selectorsData = new Uint8Array(data.buffer, data.byteOffset + selectorsByteOffset, selectorsByteLength);\n const tablesData = new Uint8Array(data.buffer, data.byteOffset + tablesByteOffset, tablesByteLength);\n const extendedData = new Uint8Array(data.buffer, data.byteOffset + extendedByteOffset, extendedByteLength);\n container.globalData = {\n endpointCount,\n selectorCount,\n imageDescs,\n endpointsData,\n selectorsData,\n tablesData,\n extendedData\n };\n return container;\n}\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nconst DEFAULT_OPTIONS = {\n keepWriter: false\n};\n/**\r\n * Serializes a {@link KTX2Container} instance to a KTX 2.0 file. Mip levels and other binary data\r\n * are copied into the resulting Uint8Array, so the original container can safely be edited or\r\n * destroyed after it is serialized.\r\n *\r\n * Options:\r\n * - keepWriter: If true, 'KTXWriter' key/value field is written as provided by the container.\r\n * \t\tOtherwise, a string for the current ktx-parse version is generated. Default: false.\r\n *\r\n * @param container\r\n * @param options\r\n */\n\nfunction write(container, options = {}) {\n options = _extends({}, DEFAULT_OPTIONS, options); ///////////////////////////////////////////////////\n // Supercompression Global Data (SGD).\n ///////////////////////////////////////////////////\n\n let sgdBuffer = new ArrayBuffer(0);\n\n if (container.globalData) {\n const sgdHeaderBuffer = new ArrayBuffer(20 + container.globalData.imageDescs.length * 5 * 4);\n const sgdHeaderView = new DataView(sgdHeaderBuffer);\n sgdHeaderView.setUint16(0, container.globalData.endpointCount, true);\n sgdHeaderView.setUint16(2, container.globalData.selectorCount, true);\n sgdHeaderView.setUint32(4, container.globalData.endpointsData.byteLength, true);\n sgdHeaderView.setUint32(8, container.globalData.selectorsData.byteLength, true);\n sgdHeaderView.setUint32(12, container.globalData.tablesData.byteLength, true);\n sgdHeaderView.setUint32(16, container.globalData.extendedData.byteLength, true);\n\n for (let i = 0; i < container.globalData.imageDescs.length; i++) {\n const imageDesc = container.globalData.imageDescs[i];\n sgdHeaderView.setUint32(20 + i * 5 * 4 + 0, imageDesc.imageFlags, true);\n sgdHeaderView.setUint32(20 + i * 5 * 4 + 4, imageDesc.rgbSliceByteOffset, true);\n sgdHeaderView.setUint32(20 + i * 5 * 4 + 8, imageDesc.rgbSliceByteLength, true);\n sgdHeaderView.setUint32(20 + i * 5 * 4 + 12, imageDesc.alphaSliceByteOffset, true);\n sgdHeaderView.setUint32(20 + i * 5 * 4 + 16, imageDesc.alphaSliceByteLength, true);\n }\n\n sgdBuffer = concat([sgdHeaderBuffer, container.globalData.endpointsData, container.globalData.selectorsData, container.globalData.tablesData, container.globalData.extendedData]);\n } ///////////////////////////////////////////////////\n // Key/Value Data (KVD).\n ///////////////////////////////////////////////////\n\n\n const keyValueData = [];\n let keyValue = container.keyValue;\n\n if (!options.keepWriter) {\n keyValue = _extends({}, container.keyValue, {\n KTXwriter: KTX_WRITER\n });\n }\n\n for (const key in keyValue) {\n const value = keyValue[key];\n const keyData = encodeText(key);\n const valueData = typeof value === 'string' ? encodeText(value) : value;\n const kvByteLength = keyData.byteLength + 1 + valueData.byteLength + 1;\n const kvPadding = kvByteLength % 4 ? 4 - kvByteLength % 4 : 0; // align(4)\n\n keyValueData.push(concat([new Uint32Array([kvByteLength]), keyData, NUL, valueData, NUL, new Uint8Array(kvPadding).fill(0x00) // align(4)\n ]));\n }\n\n const kvdBuffer = concat(keyValueData); ///////////////////////////////////////////////////\n // Data Format Descriptor (DFD).\n ///////////////////////////////////////////////////\n\n if (container.dataFormatDescriptor.length !== 1 || container.dataFormatDescriptor[0].descriptorType !== KHR_DF_KHR_DESCRIPTORTYPE_BASICFORMAT) {\n throw new Error('Only BASICFORMAT Data Format Descriptor output supported.');\n }\n\n const dfd = container.dataFormatDescriptor[0];\n const dfdBuffer = new ArrayBuffer(28 + dfd.samples.length * 16);\n const dfdView = new DataView(dfdBuffer);\n const descriptorBlockSize = 24 + dfd.samples.length * 16;\n dfdView.setUint32(0, dfdBuffer.byteLength, true);\n dfdView.setUint16(4, dfd.vendorId, true);\n dfdView.setUint16(6, dfd.descriptorType, true);\n dfdView.setUint16(8, dfd.versionNumber, true);\n dfdView.setUint16(10, descriptorBlockSize, true);\n dfdView.setUint8(12, dfd.colorModel);\n dfdView.setUint8(13, dfd.colorPrimaries);\n dfdView.setUint8(14, dfd.transferFunction);\n dfdView.setUint8(15, dfd.flags);\n\n if (!Array.isArray(dfd.texelBlockDimension)) {\n throw new Error('texelBlockDimension is now an array. For dimensionality `d`, set `d - 1`.');\n }\n\n dfdView.setUint8(16, dfd.texelBlockDimension[0]);\n dfdView.setUint8(17, dfd.texelBlockDimension[1]);\n dfdView.setUint8(18, dfd.texelBlockDimension[2]);\n dfdView.setUint8(19, dfd.texelBlockDimension[3]);\n\n for (let i = 0; i < 8; i++) dfdView.setUint8(20 + i, dfd.bytesPlane[i]);\n\n for (let i = 0; i < dfd.samples.length; i++) {\n const sample = dfd.samples[i];\n const sampleByteOffset = 28 + i * 16;\n\n if (sample.channelID) {\n throw new Error('channelID has been renamed to channelType.');\n }\n\n dfdView.setUint16(sampleByteOffset + 0, sample.bitOffset, true);\n dfdView.setUint8(sampleByteOffset + 2, sample.bitLength);\n dfdView.setUint8(sampleByteOffset + 3, sample.channelType);\n dfdView.setUint8(sampleByteOffset + 4, sample.samplePosition[0]);\n dfdView.setUint8(sampleByteOffset + 5, sample.samplePosition[1]);\n dfdView.setUint8(sampleByteOffset + 6, sample.samplePosition[2]);\n dfdView.setUint8(sampleByteOffset + 7, sample.samplePosition[3]);\n\n if (sample.channelType & KHR_DF_SAMPLE_DATATYPE_SIGNED) {\n dfdView.setInt32(sampleByteOffset + 8, sample.sampleLower, true);\n dfdView.setInt32(sampleByteOffset + 12, sample.sampleUpper, true);\n } else {\n dfdView.setUint32(sampleByteOffset + 8, sample.sampleLower, true);\n dfdView.setUint32(sampleByteOffset + 12, sample.sampleUpper, true);\n }\n } ///////////////////////////////////////////////////\n // Data alignment.\n ///////////////////////////////////////////////////\n\n\n const dfdByteOffset = KTX2_ID.length + HEADER_BYTE_LENGTH + container.levels.length * 3 * 8;\n const kvdByteOffset = dfdByteOffset + dfdBuffer.byteLength;\n let sgdByteOffset = sgdBuffer.byteLength > 0 ? kvdByteOffset + kvdBuffer.byteLength : 0;\n if (sgdByteOffset % 8) sgdByteOffset += 8 - sgdByteOffset % 8; // align(8)\n ///////////////////////////////////////////////////\n // Level Index.\n ///////////////////////////////////////////////////\n\n const levelData = [];\n const levelIndex = new DataView(new ArrayBuffer(container.levels.length * 3 * 8));\n let levelDataByteOffset = (sgdByteOffset || kvdByteOffset + kvdBuffer.byteLength) + sgdBuffer.byteLength;\n\n for (let i = 0; i < container.levels.length; i++) {\n const level = container.levels[i];\n levelData.push(level.levelData);\n levelIndex.setBigUint64(i * 24 + 0, BigInt(levelDataByteOffset), true);\n levelIndex.setBigUint64(i * 24 + 8, BigInt(level.levelData.byteLength), true);\n levelIndex.setBigUint64(i * 24 + 16, BigInt(level.uncompressedByteLength), true);\n levelDataByteOffset += level.levelData.byteLength;\n } ///////////////////////////////////////////////////\n // Header.\n ///////////////////////////////////////////////////\n\n\n const headerBuffer = new ArrayBuffer(HEADER_BYTE_LENGTH);\n const headerView = new DataView(headerBuffer);\n headerView.setUint32(0, container.vkFormat, true);\n headerView.setUint32(4, container.typeSize, true);\n headerView.setUint32(8, container.pixelWidth, true);\n headerView.setUint32(12, container.pixelHeight, true);\n headerView.setUint32(16, container.pixelDepth, true);\n headerView.setUint32(20, container.layerCount, true);\n headerView.setUint32(24, container.faceCount, true);\n headerView.setUint32(28, container.levels.length, true);\n headerView.setUint32(32, container.supercompressionScheme, true);\n headerView.setUint32(36, dfdByteOffset, true);\n headerView.setUint32(40, dfdBuffer.byteLength, true);\n headerView.setUint32(44, kvdByteOffset, true);\n headerView.setUint32(48, kvdBuffer.byteLength, true);\n headerView.setBigUint64(52, BigInt(sgdBuffer.byteLength > 0 ? sgdByteOffset : 0), true);\n headerView.setBigUint64(60, BigInt(sgdBuffer.byteLength), true); ///////////////////////////////////////////////////\n // Compose.\n ///////////////////////////////////////////////////\n\n return new Uint8Array(concat([new Uint8Array(KTX2_ID).buffer, headerBuffer, levelIndex.buffer, dfdBuffer, kvdBuffer, sgdByteOffset > 0 ? new ArrayBuffer(sgdByteOffset - (kvdByteOffset + kvdBuffer.byteLength)) // align(8)\n : new ArrayBuffer(0), sgdBuffer, ...levelData]));\n}\n\nexport { KHR_DF_CHANNEL_RGBSDA_ALPHA, KHR_DF_CHANNEL_RGBSDA_BLUE, KHR_DF_CHANNEL_RGBSDA_DEPTH, KHR_DF_CHANNEL_RGBSDA_GREEN, KHR_DF_CHANNEL_RGBSDA_RED, KHR_DF_CHANNEL_RGBSDA_STENCIL, KHR_DF_FLAG_ALPHA_PREMULTIPLIED, KHR_DF_FLAG_ALPHA_STRAIGHT, KHR_DF_KHR_DESCRIPTORTYPE_BASICFORMAT, KHR_DF_MODEL_ASTC, KHR_DF_MODEL_ETC1, KHR_DF_MODEL_ETC1S, KHR_DF_MODEL_ETC2, KHR_DF_MODEL_RGBSDA, KHR_DF_MODEL_UASTC, KHR_DF_MODEL_UNSPECIFIED, KHR_DF_PRIMARIES_ACES, KHR_DF_PRIMARIES_ACESCC, KHR_DF_PRIMARIES_ADOBERGB, KHR_DF_PRIMARIES_BT2020, KHR_DF_PRIMARIES_BT601_EBU, KHR_DF_PRIMARIES_BT601_SMPTE, KHR_DF_PRIMARIES_BT709, KHR_DF_PRIMARIES_CIEXYZ, KHR_DF_PRIMARIES_DISPLAYP3, KHR_DF_PRIMARIES_NTSC1953, KHR_DF_PRIMARIES_PAL525, KHR_DF_PRIMARIES_UNSPECIFIED, KHR_DF_SAMPLE_DATATYPE_EXPONENT, KHR_DF_SAMPLE_DATATYPE_FLOAT, KHR_DF_SAMPLE_DATATYPE_LINEAR, KHR_DF_SAMPLE_DATATYPE_SIGNED, KHR_DF_TRANSFER_ACESCC, KHR_DF_TRANSFER_ACESCCT, KHR_DF_TRANSFER_ADOBERGB, KHR_DF_TRANSFER_BT1886, KHR_DF_TRANSFER_DCIP3, KHR_DF_TRANSFER_HLG_EOTF, KHR_DF_TRANSFER_HLG_OETF, KHR_DF_TRANSFER_ITU, KHR_DF_TRANSFER_LINEAR, KHR_DF_TRANSFER_NTSC, KHR_DF_TRANSFER_PAL625_EOTF, KHR_DF_TRANSFER_PAL_OETF, KHR_DF_TRANSFER_PQ_EOTF, KHR_DF_TRANSFER_PQ_OETF, KHR_DF_TRANSFER_SLOG, KHR_DF_TRANSFER_SLOG2, KHR_DF_TRANSFER_SRGB, KHR_DF_TRANSFER_ST240, KHR_DF_TRANSFER_UNSPECIFIED, KHR_DF_VENDORID_KHRONOS, KHR_DF_VERSION, KHR_SUPERCOMPRESSION_BASISLZ, KHR_SUPERCOMPRESSION_NONE, KHR_SUPERCOMPRESSION_ZLIB, KHR_SUPERCOMPRESSION_ZSTD, KTX2Container, VK_FORMAT_A1R5G5B5_UNORM_PACK16, VK_FORMAT_A2B10G10R10_SINT_PACK32, VK_FORMAT_A2B10G10R10_SNORM_PACK32, VK_FORMAT_A2B10G10R10_UINT_PACK32, VK_FORMAT_A2B10G10R10_UNORM_PACK32, VK_FORMAT_A2R10G10B10_SINT_PACK32, VK_FORMAT_A2R10G10B10_SNORM_PACK32, VK_FORMAT_A2R10G10B10_UINT_PACK32, VK_FORMAT_A2R10G10B10_UNORM_PACK32, VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT, VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT, VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT, VK_FORMAT_ASTC_10x10_SRGB_BLOCK, VK_FORMAT_ASTC_10x10_UNORM_BLOCK, VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT, VK_FORMAT_ASTC_10x5_SRGB_BLOCK, VK_FORMAT_ASTC_10x5_UNORM_BLOCK, VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT, VK_FORMAT_ASTC_10x6_SRGB_BLOCK, VK_FORMAT_ASTC_10x6_UNORM_BLOCK, VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT, VK_FORMAT_ASTC_10x8_SRGB_BLOCK, VK_FORMAT_ASTC_10x8_UNORM_BLOCK, VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT, VK_FORMAT_ASTC_12x10_SRGB_BLOCK, VK_FORMAT_ASTC_12x10_UNORM_BLOCK, VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT, VK_FORMAT_ASTC_12x12_SRGB_BLOCK, VK_FORMAT_ASTC_12x12_UNORM_BLOCK, VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT, VK_FORMAT_ASTC_4x4_SRGB_BLOCK, VK_FORMAT_ASTC_4x4_UNORM_BLOCK, VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT, VK_FORMAT_ASTC_5x4_SRGB_BLOCK, VK_FORMAT_ASTC_5x4_UNORM_BLOCK, VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT, VK_FORMAT_ASTC_5x5_SRGB_BLOCK, VK_FORMAT_ASTC_5x5_UNORM_BLOCK, VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT, VK_FORMAT_ASTC_6x5_SRGB_BLOCK, VK_FORMAT_ASTC_6x5_UNORM_BLOCK, VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT, VK_FORMAT_ASTC_6x6_SRGB_BLOCK, VK_FORMAT_ASTC_6x6_UNORM_BLOCK, VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT, VK_FORMAT_ASTC_8x5_SRGB_BLOCK, VK_FORMAT_ASTC_8x5_UNORM_BLOCK, VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT, VK_FORMAT_ASTC_8x6_SRGB_BLOCK, VK_FORMAT_ASTC_8x6_UNORM_BLOCK, VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT, VK_FORMAT_ASTC_8x8_SRGB_BLOCK, VK_FORMAT_ASTC_8x8_UNORM_BLOCK, VK_FORMAT_B10G11R11_UFLOAT_PACK32, VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16, VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16, VK_FORMAT_B4G4R4A4_UNORM_PACK16, VK_FORMAT_B5G5R5A1_UNORM_PACK16, VK_FORMAT_B5G6R5_UNORM_PACK16, VK_FORMAT_B8G8R8A8_SINT, VK_FORMAT_B8G8R8A8_SNORM, VK_FORMAT_B8G8R8A8_SRGB, VK_FORMAT_B8G8R8A8_UINT, VK_FORMAT_B8G8R8A8_UNORM, VK_FORMAT_B8G8R8_SINT, VK_FORMAT_B8G8R8_SNORM, VK_FORMAT_B8G8R8_SRGB, VK_FORMAT_B8G8R8_UINT, VK_FORMAT_B8G8R8_UNORM, VK_FORMAT_BC1_RGBA_SRGB_BLOCK, VK_FORMAT_BC1_RGBA_UNORM_BLOCK, VK_FORMAT_BC1_RGB_SRGB_BLOCK, VK_FORMAT_BC1_RGB_UNORM_BLOCK, VK_FORMAT_BC2_SRGB_BLOCK, VK_FORMAT_BC2_UNORM_BLOCK, VK_FORMAT_BC3_SRGB_BLOCK, VK_FORMAT_BC3_UNORM_BLOCK, VK_FORMAT_BC4_SNORM_BLOCK, VK_FORMAT_BC4_UNORM_BLOCK, VK_FORMAT_BC5_SNORM_BLOCK, VK_FORMAT_BC5_UNORM_BLOCK, VK_FORMAT_BC6H_SFLOAT_BLOCK, VK_FORMAT_BC6H_UFLOAT_BLOCK, VK_FORMAT_BC7_SRGB_BLOCK, VK_FORMAT_BC7_UNORM_BLOCK, VK_FORMAT_D16_UNORM, VK_FORMAT_D16_UNORM_S8_UINT, VK_FORMAT_D24_UNORM_S8_UINT, VK_FORMAT_D32_SFLOAT, VK_FORMAT_D32_SFLOAT_S8_UINT, VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, VK_FORMAT_EAC_R11G11_SNORM_BLOCK, VK_FORMAT_EAC_R11G11_UNORM_BLOCK, VK_FORMAT_EAC_R11_SNORM_BLOCK, VK_FORMAT_EAC_R11_UNORM_BLOCK, VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK, VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK, VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK, VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK, VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK, VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK, VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16, VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16, VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG, VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG, VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG, VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG, VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG, VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG, VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG, VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG, VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16, VK_FORMAT_R10X6G10X6_UNORM_2PACK16, VK_FORMAT_R10X6_UNORM_PACK16, VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16, VK_FORMAT_R12X4G12X4_UNORM_2PACK16, VK_FORMAT_R12X4_UNORM_PACK16, VK_FORMAT_R16G16B16A16_SFLOAT, VK_FORMAT_R16G16B16A16_SINT, VK_FORMAT_R16G16B16A16_SNORM, VK_FORMAT_R16G16B16A16_UINT, VK_FORMAT_R16G16B16A16_UNORM, VK_FORMAT_R16G16B16_SFLOAT, VK_FORMAT_R16G16B16_SINT, VK_FORMAT_R16G16B16_SNORM, VK_FORMAT_R16G16B16_UINT, VK_FORMAT_R16G16B16_UNORM, VK_FORMAT_R16G16_SFLOAT, VK_FORMAT_R16G16_SINT, VK_FORMAT_R16G16_SNORM, VK_FORMAT_R16G16_UINT, VK_FORMAT_R16G16_UNORM, VK_FORMAT_R16_SFLOAT, VK_FORMAT_R16_SINT, VK_FORMAT_R16_SNORM, VK_FORMAT_R16_UINT, VK_FORMAT_R16_UNORM, VK_FORMAT_R32G32B32A32_SFLOAT, VK_FORMAT_R32G32B32A32_SINT, VK_FORMAT_R32G32B32A32_UINT, VK_FORMAT_R32G32B32_SFLOAT, VK_FORMAT_R32G32B32_SINT, VK_FORMAT_R32G32B32_UINT, VK_FORMAT_R32G32_SFLOAT, VK_FORMAT_R32G32_SINT, VK_FORMAT_R32G32_UINT, VK_FORMAT_R32_SFLOAT, VK_FORMAT_R32_SINT, VK_FORMAT_R32_UINT, VK_FORMAT_R4G4B4A4_UNORM_PACK16, VK_FORMAT_R4G4_UNORM_PACK8, VK_FORMAT_R5G5B5A1_UNORM_PACK16, VK_FORMAT_R5G6B5_UNORM_PACK16, VK_FORMAT_R64G64B64A64_SFLOAT, VK_FORMAT_R64G64B64A64_SINT, VK_FORMAT_R64G64B64A64_UINT, VK_FORMAT_R64G64B64_SFLOAT, VK_FORMAT_R64G64B64_SINT, VK_FORMAT_R64G64B64_UINT, VK_FORMAT_R64G64_SFLOAT, VK_FORMAT_R64G64_SINT, VK_FORMAT_R64G64_UINT, VK_FORMAT_R64_SFLOAT, VK_FORMAT_R64_SINT, VK_FORMAT_R64_UINT, VK_FORMAT_R8G8B8A8_SINT, VK_FORMAT_R8G8B8A8_SNORM, VK_FORMAT_R8G8B8A8_SRGB, VK_FORMAT_R8G8B8A8_UINT, VK_FORMAT_R8G8B8A8_UNORM, VK_FORMAT_R8G8B8_SINT, VK_FORMAT_R8G8B8_SNORM, VK_FORMAT_R8G8B8_SRGB, VK_FORMAT_R8G8B8_UINT, VK_FORMAT_R8G8B8_UNORM, VK_FORMAT_R8G8_SINT, VK_FORMAT_R8G8_SNORM, VK_FORMAT_R8G8_SRGB, VK_FORMAT_R8G8_UINT, VK_FORMAT_R8G8_UNORM, VK_FORMAT_R8_SINT, VK_FORMAT_R8_SNORM, VK_FORMAT_R8_SRGB, VK_FORMAT_R8_UINT, VK_FORMAT_R8_UNORM, VK_FORMAT_S8_UINT, VK_FORMAT_UNDEFINED, VK_FORMAT_X8_D24_UNORM_PACK32, read, write };\n//# sourceMappingURL=ktx-parse.modern.js.map\n","import{ExtensionProperty as e,PropertyType as t,Extension as s,BufferUtils as n,WriterContext as r,Primitive as o,Root as i,AnimationSampler as a,AnimationChannel as c,Accessor as u,MathUtils as l,GLB_BUFFER as h,ImageUtils as f,getBounds as g,ColorUtils as p,TextureInfo as x,TextureChannel as d}from\"@gltf-transform/core\";import{read as T,KHR_DF_MODEL_ETC1S as m,KHR_DF_MODEL_UASTC as E}from\"ktx-parse\";const I=\"INSTANCE_ATTRIBUTE\";class R extends e{init(){this.extensionName=\"EXT_mesh_gpu_instancing\",this.propertyType=\"InstancedMesh\",this.parentTypes=[t.NODE]}getDefaults(){return Object.assign(super.getDefaults(),{attributes:{}})}getAttribute(e){return this.getRefMap(\"attributes\",e)}setAttribute(e,t){return this.setRefMap(\"attributes\",e,t,{usage:\"INSTANCE_ATTRIBUTE\"})}listAttributes(){return this.listRefMapValues(\"attributes\")}listSemantics(){return this.listRefMapKeys(\"attributes\")}}R.EXTENSION_NAME=\"EXT_mesh_gpu_instancing\";const N=\"EXT_mesh_gpu_instancing\";class y extends s{constructor(...e){super(...e),this.extensionName=N,this.provideTypes=[t.NODE],this.prewriteTypes=[t.ACCESSOR]}createInstancedMesh(){return new R(this.document.getGraph())}read(e){return(e.jsonDoc.json.nodes||[]).forEach((t,s)=>{if(!t.extensions||!t.extensions[N])return;const n=t.extensions[N],r=this.createInstancedMesh();for(const t in n.attributes)r.setAttribute(t,e.accessors[n.attributes[t]]);e.nodes[s].setExtension(N,r)}),this}prewrite(e){e.accessorUsageGroupedByParent.add(\"INSTANCE_ATTRIBUTE\");for(const t of this.properties)for(const s of t.listAttributes())e.addAccessorToUsageGroup(s,\"INSTANCE_ATTRIBUTE\");return this}write(e){const t=e.jsonDoc;return this.document.getRoot().listNodes().forEach(s=>{const n=s.getExtension(N);if(n){const r=e.nodeIndexMap.get(s),o=t.json.nodes[r],i={attributes:{}};n.listSemantics().forEach(t=>{const s=n.getAttribute(t);i.attributes[t]=e.accessorIndexMap.get(s)}),o.extensions=o.extensions||{},o.extensions[N]=i}}),this}}function _(){return(_=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var n in s)Object.prototype.hasOwnProperty.call(s,n)&&(e[n]=s[n])}return e}).apply(this,arguments)}var A,S,C;y.EXTENSION_NAME=N,function(e){e.QUANTIZE=\"quantize\",e.FILTER=\"filter\"}(A||(A={})),function(e){e.ATTRIBUTES=\"ATTRIBUTES\",e.TRIANGLES=\"TRIANGLES\",e.INDICES=\"INDICES\"}(S||(S={})),function(e){e.NONE=\"NONE\",e.OCTAHEDRAL=\"OCTAHEDRAL\",e.QUATERNION=\"QUATERNION\",e.EXPONENTIAL=\"EXPONENTIAL\"}(C||(C={}));const{BYTE:M,SHORT:O,FLOAT:w}=u.ComponentType,{encodeNormalizedInt:D,decodeNormalizedInt:b}=l;function F(e,t,s,r){const{filter:o,bits:i}=r,a={array:e.getArray(),byteStride:e.getElementSize()*e.getComponentSize(),componentType:e.getComponentType(),normalized:e.getNormalized()};if(s!==S.ATTRIBUTES)return a;if(o!==C.NONE){let s=e.getNormalized()?function(e){const t=e.getComponentType(),s=e.getArray(),n=new Float32Array(s.length);for(let e=0;e<s.length;e++)n[e]=b(s[e],t);return n}(e):new Float32Array(a.array);switch(o){case C.EXPONENTIAL:a.byteStride=4*e.getElementSize(),a.componentType=w,a.normalized=!1,a.array=t.encodeFilterExp(s,e.getCount(),a.byteStride,i);break;case C.OCTAHEDRAL:a.byteStride=i>8?8:4,a.componentType=i>8?O:M,a.normalized=!0,s=3===e.getElementSize()?function(e){const t=new Float32Array(4*e.length/3);for(let s=0,n=e.length/3;s<n;s++)t[4*s]=e[3*s],t[4*s+1]=e[3*s+1],t[4*s+2]=e[3*s+2];return t}(s):s,a.array=t.encodeFilterOct(s,e.getCount(),a.byteStride,i);break;case C.QUATERNION:a.byteStride=8,a.componentType=O,a.normalized=!0,a.array=t.encodeFilterQuat(s,e.getCount(),a.byteStride,i);break;default:throw new Error(\"Invalid filter.\")}a.min=e.getMin([]),a.max=e.getMax([]),e.getNormalized()&&(a.min=a.min.map(t=>b(t,e.getComponentType())),a.max=a.max.map(t=>b(t,e.getComponentType()))),a.normalized&&(a.min=a.min.map(e=>D(e,a.componentType)),a.max=a.max.map(e=>D(e,a.componentType)))}else a.byteStride%4&&(a.array=function(e,t){const s=n.padNumber(e.BYTES_PER_ELEMENT*t)/e.BYTES_PER_ELEMENT,r=new e.constructor(e.length/t*s);for(let n=0;n*t<e.length;n++)for(let o=0;o<t;o++)r[n*s+o]=e[n*t+o];return r}(a.array,e.getElementSize()),a.byteStride=a.array.byteLength/e.getCount());return a}function j(e,t){return t===r.BufferViewUsage.ELEMENT_ARRAY_BUFFER?e.listParents().some(e=>e instanceof o&&e.getMode()===o.Mode.TRIANGLES)?S.TRIANGLES:S.INDICES:S.ATTRIBUTES}function v(e,t){const s=t.getGraph().listParentEdges(e).filter(e=>!(e.getParent()instanceof i));for(const t of s){const s=t.getName(),n=t.getAttributes().key||\"\";if(\"indices\"===s)return{filter:C.NONE};if(\"attributes\"===s){if(\"POSITION\"===n)return{filter:C.NONE};if(\"TEXCOORD_0\"===n)return{filter:C.NONE};if(\"NORMAL\"===n)return{filter:C.OCTAHEDRAL,bits:8};if(\"TANGENT\"===n)return{filter:C.OCTAHEDRAL,bits:8};if(n.startsWith(\"JOINTS_\"))return{filter:C.NONE};if(n.startsWith(\"WEIGHTS_\"))return{filter:C.NONE}}if(\"output\"===s){const t=k(e);return\"rotation\"===t?{filter:C.QUATERNION,bits:16}:\"translation\"===t||\"scale\"===t?{filter:C.EXPONENTIAL,bits:12}:{filter:C.NONE}}if(\"input\"===s)return{filter:C.NONE};if(\"inverseBindMatrices\"===s)return{filter:C.NONE}}return{filter:C.NONE}}function k(e){for(const t of e.listParents())if(t instanceof a)for(const e of t.listParents())if(e instanceof c)return e.getTargetPath();return null}const B=\"EXT_meshopt_compression\",G={method:A.QUANTIZE};class L extends s{constructor(...e){super(...e),this.extensionName=B,this.prereadTypes=[t.BUFFER,t.PRIMITIVE],this.prewriteTypes=[t.BUFFER,t.ACCESSOR],this.readDependencies=[\"meshopt.decoder\"],this.writeDependencies=[\"meshopt.encoder\"],this._decoder=null,this._decoderFallbackBufferMap=new Map,this._encoder=null,this._encoderOptions=G,this._encoderFallbackBuffer=null,this._encoderBufferViews={},this._encoderBufferViewData={},this._encoderBufferViewAccessors={}}install(e,t){return\"meshopt.decoder\"===e&&(this._decoder=t),\"meshopt.encoder\"===e&&(this._encoder=t),this}setEncoderOptions(e){return this._encoderOptions=_({},G,e),this}preread(e,s){if(!this._decoder){if(!this.isRequired())return this;throw new Error(`[${B}] Please install extension dependency, \"meshopt.decoder\".`)}if(!this._decoder.supported){if(!this.isRequired())return this;throw new Error(`[${B}]: Missing WASM support.`)}return s===t.BUFFER?this._prereadBuffers(e):s===t.PRIMITIVE&&this._prereadPrimitives(e),this}_prereadBuffers(e){const t=e.jsonDoc;(t.json.bufferViews||[]).forEach((s,r)=>{if(!s.extensions||!s.extensions[B])return;const o=s.extensions[B],i=o.byteOffset||0,a=o.byteLength||0,c=o.count,u=o.byteStride,l=new Uint8Array(c*u),f=t.json.buffers[o.buffer],g=n.toView(f.uri?t.resources[f.uri]:t.resources[h],i,a);this._decoder.decodeGltfBuffer(l,c,u,g,o.mode,o.filter),e.bufferViews[r]=l})}_prereadPrimitives(e){const t=e.jsonDoc;(t.json.bufferViews||[]).forEach(s=>{var n;s.extensions&&s.extensions[B]&&(n=t.json.buffers[s.buffer]).extensions&&n.extensions.EXT_meshopt_compression&&n.extensions.EXT_meshopt_compression.fallback&&this._decoderFallbackBufferMap.set(e.buffers[s.buffer],e.buffers[s.extensions[B].buffer])})}read(e){if(!this.isRequired())return this;for(const[e,t]of this._decoderFallbackBufferMap){for(const s of e.listParents())s instanceof u&&s.swap(e,t);e.dispose()}return this}prewrite(e,s){return s===t.ACCESSOR?this._prewriteAccessors(e):s===t.BUFFER&&this._prewriteBuffers(e),this}_prewriteAccessors(e){const t=e.jsonDoc.json,s=this._encoder,n=this._encoderOptions,o=this.document.createBuffer(),i=this.document.getRoot().listBuffers().indexOf(o);this._encoderFallbackBuffer=o,this._encoderBufferViews={},this._encoderBufferViewData={},this._encoderBufferViewAccessors={};for(const o of this.document.getRoot().listAccessors()){if(\"weights\"===k(o))continue;if(o.getSparse())continue;const a=e.getAccessorUsage(o),c=j(o,a),u=n.method===A.FILTER?v(o,this.document):{filter:C.NONE},l=F(o,s,c,u),{array:h,byteStride:f}=l,g=o.getBuffer();if(!g)throw new Error(`${B}: Missing buffer for accessor.`);const p=this.document.getRoot().listBuffers().indexOf(g),x=[a,c,u.filter,f,p].join(\":\");let d=this._encoderBufferViews[x],T=this._encoderBufferViewData[x],m=this._encoderBufferViewAccessors[x];d&&T||(m=this._encoderBufferViewAccessors[x]=[],T=this._encoderBufferViewData[x]=[],d=this._encoderBufferViews[x]={buffer:i,target:r.USAGE_TO_TARGET[a],byteOffset:0,byteLength:0,byteStride:a===r.BufferViewUsage.ARRAY_BUFFER?f:void 0,extensions:{[B]:{buffer:p,byteOffset:0,byteLength:0,mode:c,filter:u.filter!==C.NONE?u.filter:void 0,byteStride:f,count:0}}});const E=e.createAccessorDef(o);E.componentType=l.componentType,E.normalized=l.normalized,E.byteOffset=d.byteLength,E.min&&l.min&&(E.min=l.min),E.max&&l.max&&(E.max=l.max),e.accessorIndexMap.set(o,t.accessors.length),t.accessors.push(E),m.push(E),T.push(new Uint8Array(h.buffer,h.byteOffset,h.byteLength)),d.byteLength+=h.byteLength,d.extensions.EXT_meshopt_compression.count+=o.getCount()}}_prewriteBuffers(e){const t=this._encoder;for(const s in this._encoderBufferViews){const r=this._encoderBufferViews[s],o=this._encoderBufferViewData[s],i=this.document.getRoot().listBuffers()[r.extensions[B].buffer],a=e.otherBufferViews.get(i)||[],{count:c,byteStride:u,mode:l}=r.extensions[B],h=n.concat(o),f=t.encodeGltfBuffer(h,c,u,l),g=n.pad(f);r.extensions[B].byteLength=f.byteLength,o.length=0,o.push(g),a.push(g),e.otherBufferViews.set(i,a)}}write(e){let t=0;for(const s in this._encoderBufferViews){const r=this._encoderBufferViews[s],o=e.otherBufferViewsIndexMap.get(this._encoderBufferViewData[s][0]),i=this._encoderBufferViewAccessors[s];for(const e of i)e.bufferView=o;const a=e.jsonDoc.json.bufferViews[o],c=a.byteOffset||0;Object.assign(a,r),a.byteOffset=t,a.extensions[B].byteOffset=c,t+=n.padNumber(r.byteLength)}const s=this._encoderFallbackBuffer,r=e.bufferIndexMap.get(s),o=e.jsonDoc.json.buffers[r];return o.byteLength=t,o.extensions={[B]:{fallback:!0}},s.dispose(),this}}L.EXTENSION_NAME=B,L.EncoderMethod=A;const H=\"EXT_texture_avif\";class U{match(e){return e.length>=12&&\"ftypavif\"===n.decodeText(e.slice(4,12))}getSize(e){if(!this.match(e))return null;const t=new DataView(e.buffer,e.byteOffset,e.byteLength);let s=P(t,0);if(!s)return null;let n=s.end;for(;s=P(t,n);)if(\"meta\"===s.type)n=s.start+4;else if(\"iprp\"===s.type||\"ipco\"===s.type)n=s.start;else{if(\"ispe\"===s.type)return[t.getUint32(s.start+4),t.getUint32(s.start+8)];if(\"mdat\"===s.type)break;n=s.end}return null}getChannels(e){return 4}}class V extends s{constructor(...e){super(...e),this.extensionName=H,this.prereadTypes=[t.TEXTURE]}static register(){f.registerFormat(\"image/avif\",new U)}preread(e){return(e.jsonDoc.json.textures||[]).forEach(e=>{e.extensions&&e.extensions[H]&&(e.source=e.extensions[H].source)}),this}read(e){return this}write(e){const t=e.jsonDoc;return this.document.getRoot().listTextures().forEach(s=>{if(\"image/avif\"===s.getMimeType()){const n=e.imageIndexMap.get(s);(t.json.textures||[]).forEach(e=>{e.source===n&&(e.extensions=e.extensions||{},e.extensions[H]={source:e.source},delete e.source)})}}),this}}function P(e,t){if(e.byteLength<4+t)return null;const s=e.getUint32(t);return e.byteLength<s+t||s<8?null:{type:n.decodeText(new Uint8Array(e.buffer,e.byteOffset+t+4,4)),start:t+8,end:t+s}}V.EXTENSION_NAME=H;const X=\"EXT_texture_webp\";class K{match(e){return e.length>=12&&87===e[8]&&69===e[9]&&66===e[10]&&80===e[11]}getSize(e){const t=n.decodeText(e.slice(0,4)),s=n.decodeText(e.slice(8,12));if(\"RIFF\"!==t||\"WEBP\"!==s)return null;const r=new DataView(e.buffer,e.byteOffset);let o=12;for(;o<r.byteLength;){const e=n.decodeText(new Uint8Array([r.getUint8(o),r.getUint8(o+1),r.getUint8(o+2),r.getUint8(o+3)])),t=r.getUint32(o+4,!0);if(\"VP8 \"===e)return[16383&r.getInt16(o+14,!0),16383&r.getInt16(o+16,!0)];if(\"VP8L\"===e){const e=r.getUint8(o+9),t=r.getUint8(o+10),s=r.getUint8(o+11);return[1+((63&t)<<8|e),1+((15&r.getUint8(o+12))<<10|s<<2|(192&t)>>6)]}o+=8+t+t%2}return null}getChannels(e){return 4}}class z extends s{constructor(...e){super(...e),this.extensionName=X,this.prereadTypes=[t.TEXTURE]}static register(){f.registerFormat(\"image/webp\",new K)}preread(e){return(e.jsonDoc.json.textures||[]).forEach(e=>{e.extensions&&e.extensions[X]&&(e.source=e.extensions[X].source)}),this}read(e){return this}write(e){const t=e.jsonDoc;return this.document.getRoot().listTextures().forEach(s=>{if(\"image/webp\"===s.getMimeType()){const n=e.imageIndexMap.get(s);(t.json.textures||[]).forEach(e=>{e.source===n&&(e.extensions=e.extensions||{},e.extensions[X]={source:e.source},delete e.source)})}}),this}}z.EXTENSION_NAME=X;const $=\"KHR_draco_mesh_compression\";let q,Y,Q,W;function J(e,t){const s=new q.DecoderBuffer;try{if(s.Init(t,t.length),e.GetEncodedGeometryType(s)!==q.TRIANGULAR_MESH)throw new Error(`[${$}] Unknown geometry type.`);const n=new q.Mesh;if(!e.DecodeBufferToMesh(s,n).ok()||0===n.ptr)throw new Error(`[${$}] Decoding failure.`);return n}finally{q.destroy(s)}}function Z(e,t){const s=3*t.num_faces();let n,r;if(t.num_points()<=65534){const o=s*Uint16Array.BYTES_PER_ELEMENT;n=q._malloc(o),e.GetTrianglesUInt16Array(t,o,n),r=new Uint16Array(q.HEAPU16.buffer,n,s).slice()}else{const o=s*Uint32Array.BYTES_PER_ELEMENT;n=q._malloc(o),e.GetTrianglesUInt32Array(t,o,n),r=new Uint32Array(q.HEAPU32.buffer,n,s).slice()}return q._free(n),r}function ee(e,t,s,n){const r=Q[n.componentType],o=Y[n.componentType],i=s.num_components(),a=t.num_points()*i,c=a*o.BYTES_PER_ELEMENT,u=q._malloc(c);e.GetAttributeDataArrayForAllPoints(t,s,r,c,u);const l=new o(q.HEAPF32.buffer,u,a).slice();return q._free(u),l}var te,se;!function(e){e[e.EDGEBREAKER=1]=\"EDGEBREAKER\",e[e.SEQUENTIAL=0]=\"SEQUENTIAL\"}(te||(te={})),function(e){e.POSITION=\"POSITION\",e.NORMAL=\"NORMAL\",e.COLOR=\"COLOR\",e.TEX_COORD=\"TEX_COORD\",e.GENERIC=\"GENERIC\"}(se||(se={}));const ne={[se.POSITION]:14,[se.NORMAL]:10,[se.COLOR]:8,[se.TEX_COORD]:12,[se.GENERIC]:12},re={decodeSpeed:5,encodeSpeed:5,method:te.EDGEBREAKER,quantizationBits:ne,quantizationVolume:\"mesh\"};function oe(e,t=re){const s=_({},re,t);s.quantizationBits=_({},ne,t.quantizationBits);const n=new W.Encoder,r=new W.MeshBuilder,o=new W.Mesh,i={},a=new W.DracoInt8Array,c=e.listTargets().length>0;let u=!1;for(const t of e.listSemantics()){const a=e.getAttribute(t);if(a.getSparse()){u=!0;continue}const c=ie(t),l=ae(r,a.getComponentType(),o,W[c],a.getCount(),a.getElementSize(),a.getArray());if(-1===l)throw new Error(`Error compressing \"${t}\" attribute.`);if(i[t]=l,\"mesh\"===s.quantizationVolume||\"POSITION\"!==t)n.SetAttributeQuantization(W[c],s.quantizationBits[c]);else{if(\"object\"!=typeof s.quantizationVolume)throw new Error(\"Invalid quantization volume state.\");{const{quantizationVolume:e}=s,t=Math.max(e.max[0]-e.min[0],e.max[1]-e.min[1],e.max[2]-e.min[2]);n.SetAttributeExplicitQuantization(W[c],s.quantizationBits[c],a.getElementSize(),e.min,t)}}}const l=e.getIndices();if(!l)throw new ce(\"Primitive must have indices.\");r.AddFacesToMesh(o,l.getCount()/3,l.getArray()),n.SetSpeedOptions(s.encodeSpeed,s.decodeSpeed),n.SetTrackEncodedProperties(!0),n.SetEncodingMethod(s.method===te.SEQUENTIAL||c||u?W.MESH_SEQUENTIAL_ENCODING:W.MESH_EDGEBREAKER_ENCODING);const h=n.EncodeMeshToDracoBuffer(o,a);if(h<=0)throw new ce(\"Error applying Draco compression.\");const f=new Uint8Array(h);for(let e=0;e<h;++e)f[e]=a.GetValue(e);const g=e.getAttribute(\"POSITION\").getCount(),p=n.GetNumberOfEncodedPoints(),x=3*n.GetNumberOfEncodedFaces();if((c||u)&&p!==g)throw new ce('Compression reduced vertex count unexpectedly, corrupting mesh data. Applying the \"weld\" function before compression may resolve the issue. See: https://github.com/google/draco/issues/929');return W.destroy(a),W.destroy(o),W.destroy(r),W.destroy(n),{numVertices:p,numIndices:x,data:f,attributeIDs:i}}function ie(e){return\"POSITION\"===e?se.POSITION:\"NORMAL\"===e?se.NORMAL:e.startsWith(\"COLOR_\")?se.COLOR:e.startsWith(\"TEXCOORD_\")?se.TEX_COORD:se.GENERIC}function ae(e,t,s,n,r,o,i){switch(t){case u.ComponentType.UNSIGNED_BYTE:return e.AddUInt8Attribute(s,n,r,o,i);case u.ComponentType.BYTE:return e.AddInt8Attribute(s,n,r,o,i);case u.ComponentType.UNSIGNED_SHORT:return e.AddUInt16Attribute(s,n,r,o,i);case u.ComponentType.SHORT:return e.AddInt16Attribute(s,n,r,o,i);case u.ComponentType.UNSIGNED_INT:return e.AddUInt32Attribute(s,n,r,o,i);case u.ComponentType.FLOAT:return e.AddFloatAttribute(s,n,r,o,i);default:throw new Error(`Unexpected component type, \"${t}\".`)}}class ce extends Error{}const ue=\"KHR_draco_mesh_compression\";class le extends s{constructor(...e){super(...e),this.extensionName=ue,this.prereadTypes=[t.PRIMITIVE],this.prewriteTypes=[t.ACCESSOR],this.readDependencies=[\"draco3d.decoder\"],this.writeDependencies=[\"draco3d.encoder\"],this._decoderModule=null,this._encoderModule=null,this._encoderOptions={}}install(e,t){return\"draco3d.decoder\"===e&&(this._decoderModule=t,q=this._decoderModule,Y={[u.ComponentType.FLOAT]:Float32Array,[u.ComponentType.UNSIGNED_INT]:Uint32Array,[u.ComponentType.UNSIGNED_SHORT]:Uint16Array,[u.ComponentType.UNSIGNED_BYTE]:Uint8Array,[u.ComponentType.SHORT]:Int16Array,[u.ComponentType.BYTE]:Int8Array},Q={[u.ComponentType.FLOAT]:q.DT_FLOAT32,[u.ComponentType.UNSIGNED_INT]:q.DT_UINT32,[u.ComponentType.UNSIGNED_SHORT]:q.DT_UINT16,[u.ComponentType.UNSIGNED_BYTE]:q.DT_UINT8,[u.ComponentType.SHORT]:q.DT_INT16,[u.ComponentType.BYTE]:q.DT_INT8}),\"draco3d.encoder\"===e&&(this._encoderModule=t,W=this._encoderModule),this}setEncoderOptions(e){return this._encoderOptions=e,this}preread(e){if(!this._decoderModule)throw new Error(`[${ue}] Please install extension dependency, \"draco3d.decoder\".`);const t=this.document.getLogger(),s=e.jsonDoc,r=new Map;try{const o=s.json.meshes||[];for(const i of o)for(const o of i.primitives){if(!o.extensions||!o.extensions[ue])continue;const i=o.extensions[ue];let[a,c]=r.get(i.bufferView)||[];if(!c||!a){const e=s.json.bufferViews[i.bufferView],o=s.json.buffers[e.buffer],u=n.toView(o.uri?s.resources[o.uri]:s.resources[h],e.byteOffset||0,e.byteLength);a=new this._decoderModule.Decoder,c=J(a,u),r.set(i.bufferView,[a,c]),t.debug(`[${ue}] Decompressed ${u.byteLength} bytes.`)}for(const t in o.attributes){const s=e.jsonDoc.json.accessors[o.attributes[t]],n=a.GetAttributeByUniqueId(c,i.attributes[t]),r=ee(a,c,n,s);e.accessors[o.attributes[t]].setArray(r)}void 0!==o.indices&&e.accessors[o.indices].setArray(Z(a,c))}}finally{for(const[e,t]of Array.from(r.values()))this._decoderModule.destroy(e),this._decoderModule.destroy(t)}return this}read(e){return this}prewrite(e,s){if(!this._encoderModule)throw new Error(`[${ue}] Please install extension dependency, \"draco3d.encoder\".`);const n=this.document.getLogger();n.debug(`[${ue}] Compression options: ${JSON.stringify(this._encoderOptions)}`);const r=function(e){const s=e.getLogger(),n=new Set,r=new Set;for(const t of e.getRoot().listMeshes())for(const e of t.listPrimitives())e.getIndices()?e.getMode()!==o.Mode.TRIANGLES?(r.add(e),s.warn(`[${ue}] Skipping Draco compression on non-TRIANGLES primitive.`)):n.add(e):(r.add(e),s.warn(`[${ue}] Skipping Draco compression on non-indexed primitive.`));const i=e.getRoot().listAccessors(),a=new Map;for(let e=0;e<i.length;e++)a.set(i[e],e);const c=new Map,u=new Set,l=new Map;for(const t of Array.from(n)){let s=he(t,a);if(u.has(s))l.set(t,s);else{if(c.has(t.getIndices())){const s=t.getIndices(),n=s.clone();a.set(n,e.getRoot().listAccessors().length-1),t.swap(s,n)}for(const s of t.listAttributes())if(c.has(s)){const n=s.clone();a.set(n,e.getRoot().listAccessors().length-1),t.swap(s,n)}s=he(t,a),u.add(s),l.set(t,s),c.set(t.getIndices(),s);for(const e of t.listAttributes())c.set(e,s)}}for(const e of Array.from(c.keys())){const s=new Set(e.listParents().map(e=>e.propertyType));if(2!==s.size||!s.has(t.PRIMITIVE)||!s.has(t.ROOT))throw new Error(`[${ue}] Compressed accessors must only be used as indices or vertex attributes.`)}for(const e of Array.from(n)){const t=l.get(e),s=e.getIndices();if(c.get(s)!==t||e.listAttributes().some(e=>c.get(e)!==t))throw new Error(`[${ue}] Draco primitives must share all, or no, accessors.`)}for(const e of Array.from(r)){const t=e.getIndices();if(c.has(t)||e.listAttributes().some(e=>c.has(e)))throw new Error(`[${ue}] Accessor cannot be shared by compressed and uncompressed primitives.`)}return l}(this.document),i=new Map;let a=\"mesh\";\"scene\"===this._encoderOptions.quantizationVolume&&(1!==this.document.getRoot().listScenes().length?n.warn(`[${ue}]: quantizationVolume=scene requires exactly 1 scene.`):a=g(this.document.getRoot().listScenes().pop()));for(const t of Array.from(r.keys())){const s=r.get(t);if(!s)throw new Error(\"Unexpected primitive.\");if(i.has(s)){i.set(s,i.get(s));continue}const o=t.getIndices(),c=e.jsonDoc.json.accessors;let u;try{u=oe(t,_({},this._encoderOptions,{quantizationVolume:a}))}catch(e){if(e instanceof ce){n.warn(`[${ue}]: ${e.message} Skipping primitive compression.`);continue}throw e}i.set(s,u);const l=e.createAccessorDef(o);l.count=u.numIndices,e.accessorIndexMap.set(o,c.length),c.push(l);for(const s of t.listSemantics()){const n=t.getAttribute(s);if(void 0===u.attributeIDs[s])continue;const r=e.createAccessorDef(n);r.count=u.numVertices,e.accessorIndexMap.set(n,c.length),c.push(r)}const h=t.getAttribute(\"POSITION\").getBuffer()||this.document.getRoot().listBuffers()[0];e.otherBufferViews.has(h)||e.otherBufferViews.set(h,[]),e.otherBufferViews.get(h).push(u.data)}return n.debug(`[${ue}] Compressed ${r.size} primitives.`),e.extensionData[ue]={primitiveHashMap:r,primitiveEncodingMap:i},this}write(e){const t=e.extensionData[ue];for(const s of this.document.getRoot().listMeshes()){const n=e.jsonDoc.json.meshes[e.meshIndexMap.get(s)];for(let r=0;r<s.listPrimitives().length;r++){const o=s.listPrimitives()[r],i=n.primitives[r],a=t.primitiveHashMap.get(o);if(!a)continue;const c=t.primitiveEncodingMap.get(a);c&&(i.extensions=i.extensions||{},i.extensions[ue]={bufferView:e.otherBufferViewsIndexMap.get(c.data),attributes:c.attributeIDs})}}if(!t.primitiveHashMap.size){const t=e.jsonDoc.json;t.extensionsUsed=(t.extensionsUsed||[]).filter(e=>e!==ue),t.extensionsRequired=(t.extensionsRequired||[]).filter(e=>e!==ue)}return this}}function he(e,t){const s=[],n=e.getIndices();s.push(t.get(n));for(const n of e.listAttributes())s.push(t.get(n));return s.sort().join(\"|\")}le.EXTENSION_NAME=ue,le.EncoderMethod=te;class fe extends e{init(){this.extensionName=\"KHR_lights_punctual\",this.propertyType=\"Light\",this.parentTypes=[t.NODE]}getDefaults(){return Object.assign(super.getDefaults(),{color:[1,1,1],intensity:1,type:fe.Type.POINT,range:null,innerConeAngle:0,outerConeAngle:Math.PI/4})}getColor(){return this.get(\"color\")}setColor(e){return this.set(\"color\",e)}getColorHex(){return p.factorToHex(this.getColor())}setColorHex(e){const t=this.getColor().slice();return p.hexToFactor(e,t),this.setColor(t)}getIntensity(){return this.get(\"intensity\")}setIntensity(e){return this.set(\"intensity\",e)}getType(){return this.get(\"type\")}setType(e){return this.set(\"type\",e)}getRange(){return this.get(\"range\")}setRange(e){return this.set(\"range\",e)}getInnerConeAngle(){return this.get(\"innerConeAngle\")}setInnerConeAngle(e){return this.set(\"innerConeAngle\",e)}getOuterConeAngle(){return this.get(\"outerConeAngle\")}setOuterConeAngle(e){return this.set(\"outerConeAngle\",e)}}fe.EXTENSION_NAME=\"KHR_lights_punctual\",fe.Type={POINT:\"point\",SPOT:\"spot\",DIRECTIONAL:\"directional\"};const ge=\"KHR_lights_punctual\";class pe extends s{constructor(...e){super(...e),this.extensionName=ge}createLight(e=\"\"){return new fe(this.document.getGraph(),e)}read(e){const t=e.jsonDoc;if(!t.json.extensions||!t.json.extensions[ge])return this;const s=(t.json.extensions[ge].lights||[]).map(e=>{var t,s;const n=this.createLight().setName(e.name||\"\").setType(e.type);return void 0!==e.color&&n.setColor(e.color),void 0!==e.intensity&&n.setIntensity(e.intensity),void 0!==e.range&&n.setRange(e.range),void 0!==(null==(t=e.spot)?void 0:t.innerConeAngle)&&n.setInnerConeAngle(e.spot.innerConeAngle),void 0!==(null==(s=e.spot)?void 0:s.outerConeAngle)&&n.setOuterConeAngle(e.spot.outerConeAngle),n});return t.json.nodes.forEach((t,n)=>{t.extensions&&t.extensions[ge]&&e.nodes[n].setExtension(ge,s[t.extensions[ge].light])}),this}write(e){const t=e.jsonDoc;if(0===this.properties.size)return this;const s=[],n=new Map;for(const e of this.properties){const t=e,r={type:t.getType()};l.eq(t.getColor(),[1,1,1])||(r.color=t.getColor()),1!==t.getIntensity()&&(r.intensity=t.getIntensity()),null!=t.getRange()&&(r.range=t.getRange()),t.getName()&&(r.name=t.getName()),t.getType()===fe.Type.SPOT&&(r.spot={innerConeAngle:t.getInnerConeAngle(),outerConeAngle:t.getOuterConeAngle()}),s.push(r),n.set(t,s.length-1)}return this.document.getRoot().listNodes().forEach(s=>{const r=s.getExtension(ge);if(r){const o=e.nodeIndexMap.get(s),i=t.json.nodes[o];i.extensions=i.extensions||{},i.extensions[ge]={light:n.get(r)}}}),t.json.extensions=t.json.extensions||{},t.json.extensions[ge]={lights:s},this}}pe.EXTENSION_NAME=ge;const{R:xe,G:de}=d;class Te extends e{init(){this.extensionName=\"KHR_materials_anisotropy\",this.propertyType=\"Anisotropy\",this.parentTypes=[t.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{anisotropyStrength:0,anisotropyRotation:0,anisotropyTexture:null,anisotropyTextureInfo:new x(this.graph,\"anisotropyTextureInfo\")})}getAnisotropyStrength(){return this.get(\"anisotropyStrength\")}setAnisotropyStrength(e){return this.set(\"anisotropyStrength\",e)}getAnisotropyRotation(){return this.get(\"anisotropyRotation\")}setAnisotropyRotation(e){return this.set(\"anisotropyRotation\",e)}getAnisotropyTexture(){return this.getRef(\"anisotropyTexture\")}getAnisotropyTextureInfo(){return this.getRef(\"anisotropyTexture\")?this.getRef(\"anisotropyTextureInfo\"):null}setAnisotropyTexture(e){return this.setRef(\"anisotropyTexture\",e,{channels:xe|de})}}Te.EXTENSION_NAME=\"KHR_materials_anisotropy\";const me=\"KHR_materials_anisotropy\";class Ee extends s{constructor(...e){super(...e),this.extensionName=me}createAnisotropy(){return new Te(this.document.getGraph())}read(e){const t=e.jsonDoc,s=t.json.textures||[];return(t.json.materials||[]).forEach((t,n)=>{if(t.extensions&&t.extensions[me]){const r=this.createAnisotropy();e.materials[n].setExtension(me,r);const o=t.extensions[me];if(void 0!==o.anisotropyStrength&&r.setAnisotropyStrength(o.anisotropyStrength),void 0!==o.anisotropyRotation&&r.setAnisotropyRotation(o.anisotropyRotation),void 0!==o.anisotropyTexture){const t=o.anisotropyTexture;r.setAnisotropyTexture(e.textures[s[t.index].source]),e.setTextureInfo(r.getAnisotropyTextureInfo(),t)}}}),this}write(e){const t=e.jsonDoc;return this.document.getRoot().listMaterials().forEach(s=>{const n=s.getExtension(me);if(n){const r=e.materialIndexMap.get(s),o=t.json.materials[r];o.extensions=o.extensions||{};const i=o.extensions[me]={};if(n.getAnisotropyStrength()>0&&(i.anisotropyStrength=n.getAnisotropyStrength()),0!==n.getAnisotropyRotation()&&(i.anisotropyRotation=n.getAnisotropyRotation()),n.getAnisotropyTexture()){const t=n.getAnisotropyTexture(),s=n.getAnisotropyTextureInfo();i.anisotropyTexture=e.createTextureInfoDef(t,s)}}}),this}}Ee.EXTENSION_NAME=me;const{R:Ie,G:Re,B:Ne}=d;class ye extends e{init(){this.extensionName=\"KHR_materials_clearcoat\",this.propertyType=\"Clearcoat\",this.parentTypes=[t.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{clearcoatFactor:0,clearcoatTexture:null,clearcoatTextureInfo:new x(this.graph,\"clearcoatTextureInfo\"),clearcoatRoughnessFactor:0,clearcoatRoughnessTexture:null,clearcoatRoughnessTextureInfo:new x(this.graph,\"clearcoatRoughnessTextureInfo\"),clearcoatNormalScale:1,clearcoatNormalTexture:null,clearcoatNormalTextureInfo:new x(this.graph,\"clearcoatNormalTextureInfo\")})}getClearcoatFactor(){return this.get(\"clearcoatFactor\")}setClearcoatFactor(e){return this.set(\"clearcoatFactor\",e)}getClearcoatTexture(){return this.getRef(\"clearcoatTexture\")}getClearcoatTextureInfo(){return this.getRef(\"clearcoatTexture\")?this.getRef(\"clearcoatTextureInfo\"):null}setClearcoatTexture(e){return this.setRef(\"clearcoatTexture\",e,{channels:Ie})}getClearcoatRoughnessFactor(){return this.get(\"clearcoatRoughnessFactor\")}setClearcoatRoughnessFactor(e){return this.set(\"clearcoatRoughnessFactor\",e)}getClearcoatRoughnessTexture(){return this.getRef(\"clearcoatRoughnessTexture\")}getClearcoatRoughnessTextureInfo(){return this.getRef(\"clearcoatRoughnessTexture\")?this.getRef(\"clearcoatRoughnessTextureInfo\"):null}setClearcoatRoughnessTexture(e){return this.setRef(\"clearcoatRoughnessTexture\",e,{channels:Re})}getClearcoatNormalScale(){return this.get(\"clearcoatNormalScale\")}setClearcoatNormalScale(e){return this.set(\"clearcoatNormalScale\",e)}getClearcoatNormalTexture(){return this.getRef(\"clearcoatNormalTexture\")}getClearcoatNormalTextureInfo(){return this.getRef(\"clearcoatNormalTexture\")?this.getRef(\"clearcoatNormalTextureInfo\"):null}setClearcoatNormalTexture(e){return this.setRef(\"clearcoatNormalTexture\",e,{channels:Ie|Re|Ne})}}ye.EXTENSION_NAME=\"KHR_materials_clearcoat\";const _e=\"KHR_materials_clearcoat\";class Ae extends s{constructor(...e){super(...e),this.extensionName=_e}createClearcoat(){return new ye(this.document.getGraph())}read(e){const t=e.jsonDoc,s=t.json.textures||[];return(t.json.materials||[]).forEach((t,n)=>{if(t.extensions&&t.extensions[_e]){const r=this.createClearcoat();e.materials[n].setExtension(_e,r);const o=t.extensions[_e];if(void 0!==o.clearcoatFactor&&r.setClearcoatFactor(o.clearcoatFactor),void 0!==o.clearcoatRoughnessFactor&&r.setClearcoatRoughnessFactor(o.clearcoatRoughnessFactor),void 0!==o.clearcoatTexture){const t=o.clearcoatTexture;r.setClearcoatTexture(e.textures[s[t.index].source]),e.setTextureInfo(r.getClearcoatTextureInfo(),t)}if(void 0!==o.clearcoatRoughnessTexture){const t=o.clearcoatRoughnessTexture;r.setClearcoatRoughnessTexture(e.textures[s[t.index].source]),e.setTextureInfo(r.getClearcoatRoughnessTextureInfo(),t)}if(void 0!==o.clearcoatNormalTexture){const t=o.clearcoatNormalTexture;r.setClearcoatNormalTexture(e.textures[s[t.index].source]),e.setTextureInfo(r.getClearcoatNormalTextureInfo(),t),void 0!==t.scale&&r.setClearcoatNormalScale(t.scale)}}}),this}write(e){const t=e.jsonDoc;return this.document.getRoot().listMaterials().forEach(s=>{const n=s.getExtension(_e);if(n){const r=e.materialIndexMap.get(s),o=t.json.materials[r];o.extensions=o.extensions||{};const i=o.extensions[_e]={clearcoatFactor:n.getClearcoatFactor(),clearcoatRoughnessFactor:n.getClearcoatRoughnessFactor()};if(n.getClearcoatTexture()){const t=n.getClearcoatTexture(),s=n.getClearcoatTextureInfo();i.clearcoatTexture=e.createTextureInfoDef(t,s)}if(n.getClearcoatRoughnessTexture()){const t=n.getClearcoatRoughnessTexture(),s=n.getClearcoatRoughnessTextureInfo();i.clearcoatRoughnessTexture=e.createTextureInfoDef(t,s)}if(n.getClearcoatNormalTexture()){const t=n.getClearcoatNormalTexture(),s=n.getClearcoatNormalTextureInfo();i.clearcoatNormalTexture=e.createTextureInfoDef(t,s),1!==n.getClearcoatNormalScale()&&(i.clearcoatNormalTexture.scale=n.getClearcoatNormalScale())}}}),this}}Ae.EXTENSION_NAME=_e;class Se extends e{init(){this.extensionName=\"KHR_materials_emissive_strength\",this.propertyType=\"EmissiveStrength\",this.parentTypes=[t.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{emissiveStrength:1})}getEmissiveStrength(){return this.get(\"emissiveStrength\")}setEmissiveStrength(e){return this.set(\"emissiveStrength\",e)}}Se.EXTENSION_NAME=\"KHR_materials_emissive_strength\";const Ce=\"KHR_materials_emissive_strength\";class Me extends s{constructor(...e){super(...e),this.extensionName=Ce}createEmissiveStrength(){return new Se(this.document.getGraph())}read(e){return(e.jsonDoc.json.materials||[]).forEach((t,s)=>{if(t.extensions&&t.extensions[Ce]){const n=this.createEmissiveStrength();e.materials[s].setExtension(Ce,n);const r=t.extensions[Ce];void 0!==r.emissiveStrength&&n.setEmissiveStrength(r.emissiveStrength)}}),this}write(e){const t=e.jsonDoc;return this.document.getRoot().listMaterials().forEach(s=>{const n=s.getExtension(Ce);if(n){const r=e.materialIndexMap.get(s),o=t.json.materials[r];o.extensions=o.extensions||{},o.extensions[Ce]={emissiveStrength:n.getEmissiveStrength()}}}),this}}Me.EXTENSION_NAME=Ce;class Oe extends e{init(){this.extensionName=\"KHR_materials_ior\",this.propertyType=\"IOR\",this.parentTypes=[t.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{ior:1.5})}getIOR(){return this.get(\"ior\")}setIOR(e){return this.set(\"ior\",e)}}Oe.EXTENSION_NAME=\"KHR_materials_ior\";const we=\"KHR_materials_ior\";class De extends s{constructor(...e){super(...e),this.extensionName=we}createIOR(){return new Oe(this.document.getGraph())}read(e){return(e.jsonDoc.json.materials||[]).forEach((t,s)=>{if(t.extensions&&t.extensions[we]){const n=this.createIOR();e.materials[s].setExtension(we,n);const r=t.extensions[we];void 0!==r.ior&&n.setIOR(r.ior)}}),this}write(e){const t=e.jsonDoc;return this.document.getRoot().listMaterials().forEach(s=>{const n=s.getExtension(we);if(n){const r=e.materialIndexMap.get(s),o=t.json.materials[r];o.extensions=o.extensions||{},o.extensions[we]={ior:n.getIOR()}}}),this}}De.EXTENSION_NAME=we;const{R:be,G:Fe}=d;class je extends e{init(){this.extensionName=\"KHR_materials_iridescence\",this.propertyType=\"Iridescence\",this.parentTypes=[t.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{iridescenceFactor:0,iridescenceTexture:null,iridescenceTextureInfo:new x(this.graph,\"iridescenceTextureInfo\"),iridescenceIOR:1.3,iridescenceThicknessMinimum:100,iridescenceThicknessMaximum:400,iridescenceThicknessTexture:null,iridescenceThicknessTextureInfo:new x(this.graph,\"iridescenceThicknessTextureInfo\")})}getIridescenceFactor(){return this.get(\"iridescenceFactor\")}setIridescenceFactor(e){return this.set(\"iridescenceFactor\",e)}getIridescenceTexture(){return this.getRef(\"iridescenceTexture\")}getIridescenceTextureInfo(){return this.getRef(\"iridescenceTexture\")?this.getRef(\"iridescenceTextureInfo\"):null}setIridescenceTexture(e){return this.setRef(\"iridescenceTexture\",e,{channels:be})}getIridescenceIOR(){return this.get(\"iridescenceIOR\")}setIridescenceIOR(e){return this.set(\"iridescenceIOR\",e)}getIridescenceThicknessMinimum(){return this.get(\"iridescenceThicknessMinimum\")}setIridescenceThicknessMinimum(e){return this.set(\"iridescenceThicknessMinimum\",e)}getIridescenceThicknessMaximum(){return this.get(\"iridescenceThicknessMaximum\")}setIridescenceThicknessMaximum(e){return this.set(\"iridescenceThicknessMaximum\",e)}getIridescenceThicknessTexture(){return this.getRef(\"iridescenceThicknessTexture\")}getIridescenceThicknessTextureInfo(){return this.getRef(\"iridescenceThicknessTexture\")?this.getRef(\"iridescenceThicknessTextureInfo\"):null}setIridescenceThicknessTexture(e){return this.setRef(\"iridescenceThicknessTexture\",e,{channels:Fe})}}je.EXTENSION_NAME=\"KHR_materials_iridescence\";const ve=\"KHR_materials_iridescence\";class ke extends s{constructor(...e){super(...e),this.extensionName=ve}createIridescence(){return new je(this.document.getGraph())}read(e){const t=e.jsonDoc,s=t.json.textures||[];return(t.json.materials||[]).forEach((t,n)=>{if(t.extensions&&t.extensions[ve]){const r=this.createIridescence();e.materials[n].setExtension(ve,r);const o=t.extensions[ve];if(void 0!==o.iridescenceFactor&&r.setIridescenceFactor(o.iridescenceFactor),void 0!==o.iridescenceIor&&r.setIridescenceIOR(o.iridescenceIor),void 0!==o.iridescenceThicknessMinimum&&r.setIridescenceThicknessMinimum(o.iridescenceThicknessMinimum),void 0!==o.iridescenceThicknessMaximum&&r.setIridescenceThicknessMaximum(o.iridescenceThicknessMaximum),void 0!==o.iridescenceTexture){const t=o.iridescenceTexture;r.setIridescenceTexture(e.textures[s[t.index].source]),e.setTextureInfo(r.getIridescenceTextureInfo(),t)}if(void 0!==o.iridescenceThicknessTexture){const t=o.iridescenceThicknessTexture;r.setIridescenceThicknessTexture(e.textures[s[t.index].source]),e.setTextureInfo(r.getIridescenceThicknessTextureInfo(),t)}}}),this}write(e){const t=e.jsonDoc;return this.document.getRoot().listMaterials().forEach(s=>{const n=s.getExtension(ve);if(n){const r=e.materialIndexMap.get(s),o=t.json.materials[r];o.extensions=o.extensions||{};const i=o.extensions[ve]={};if(n.getIridescenceFactor()>0&&(i.iridescenceFactor=n.getIridescenceFactor()),1.3!==n.getIridescenceIOR()&&(i.iridescenceIor=n.getIridescenceIOR()),100!==n.getIridescenceThicknessMinimum()&&(i.iridescenceThicknessMinimum=n.getIridescenceThicknessMinimum()),400!==n.getIridescenceThicknessMaximum()&&(i.iridescenceThicknessMaximum=n.getIridescenceThicknessMaximum()),n.getIridescenceTexture()){const t=n.getIridescenceTexture(),s=n.getIridescenceTextureInfo();i.iridescenceTexture=e.createTextureInfoDef(t,s)}if(n.getIridescenceThicknessTexture()){const t=n.getIridescenceThicknessTexture(),s=n.getIridescenceThicknessTextureInfo();i.iridescenceThicknessTexture=e.createTextureInfoDef(t,s)}}}),this}}ke.EXTENSION_NAME=ve;const{R:Be,G:Ge,B:Le,A:He}=d;class Ue extends e{init(){this.extensionName=\"KHR_materials_pbrSpecularGlossiness\",this.propertyType=\"PBRSpecularGlossiness\",this.parentTypes=[t.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{diffuseFactor:[1,1,1,1],diffuseTexture:null,diffuseTextureInfo:new x(this.graph,\"diffuseTextureInfo\"),specularFactor:[1,1,1],glossinessFactor:1,specularGlossinessTexture:null,specularGlossinessTextureInfo:new x(this.graph,\"specularGlossinessTextureInfo\")})}getDiffuseFactor(){return this.get(\"diffuseFactor\")}setDiffuseFactor(e){return this.set(\"diffuseFactor\",e)}getDiffuseHex(){return p.factorToHex(this.getDiffuseFactor())}setDiffuseHex(e){const t=this.getDiffuseFactor().slice();return this.setDiffuseFactor(p.hexToFactor(e,t))}getDiffuseTexture(){return this.getRef(\"diffuseTexture\")}getDiffuseTextureInfo(){return this.getRef(\"diffuseTexture\")?this.getRef(\"diffuseTextureInfo\"):null}setDiffuseTexture(e){return this.setRef(\"diffuseTexture\",e,{channels:Be|Ge|Le|He})}getSpecularFactor(){return this.get(\"specularFactor\")}setSpecularFactor(e){return this.set(\"specularFactor\",e)}getGlossinessFactor(){return this.get(\"glossinessFactor\")}setGlossinessFactor(e){return this.set(\"glossinessFactor\",e)}getSpecularGlossinessTexture(){return this.getRef(\"specularGlossinessTexture\")}getSpecularGlossinessTextureInfo(){return this.getRef(\"specularGlossinessTexture\")?this.getRef(\"specularGlossinessTextureInfo\"):null}setSpecularGlossinessTexture(e){return this.setRef(\"specularGlossinessTexture\",e,{channels:Be|Ge|Le|He})}}Ue.EXTENSION_NAME=\"KHR_materials_pbrSpecularGlossiness\";const Ve=\"KHR_materials_pbrSpecularGlossiness\";class Pe extends s{constructor(...e){super(...e),this.extensionName=Ve}createPBRSpecularGlossiness(){return new Ue(this.document.getGraph())}read(e){const t=e.jsonDoc,s=t.json.textures||[];return(t.json.materials||[]).forEach((t,n)=>{if(t.extensions&&t.extensions[Ve]){const r=this.createPBRSpecularGlossiness();e.materials[n].setExtension(Ve,r);const o=t.extensions[Ve];if(void 0!==o.diffuseFactor&&r.setDiffuseFactor(o.diffuseFactor),void 0!==o.specularFactor&&r.setSpecularFactor(o.specularFactor),void 0!==o.glossinessFactor&&r.setGlossinessFactor(o.glossinessFactor),void 0!==o.diffuseTexture){const t=o.diffuseTexture;r.setDiffuseTexture(e.textures[s[t.index].source]),e.setTextureInfo(r.getDiffuseTextureInfo(),t)}if(void 0!==o.specularGlossinessTexture){const t=o.specularGlossinessTexture;r.setSpecularGlossinessTexture(e.textures[s[t.index].source]),e.setTextureInfo(r.getSpecularGlossinessTextureInfo(),t)}}}),this}write(e){const t=e.jsonDoc;return this.document.getRoot().listMaterials().forEach(s=>{const n=s.getExtension(Ve);if(n){const r=e.materialIndexMap.get(s),o=t.json.materials[r];o.extensions=o.extensions||{};const i=o.extensions[Ve]={diffuseFactor:n.getDiffuseFactor(),specularFactor:n.getSpecularFactor(),glossinessFactor:n.getGlossinessFactor()};if(n.getDiffuseTexture()){const t=n.getDiffuseTexture(),s=n.getDiffuseTextureInfo();i.diffuseTexture=e.createTextureInfoDef(t,s)}if(n.getSpecularGlossinessTexture()){const t=n.getSpecularGlossinessTexture(),s=n.getSpecularGlossinessTextureInfo();i.specularGlossinessTexture=e.createTextureInfoDef(t,s)}}}),this}}Pe.EXTENSION_NAME=Ve;const{R:Xe,G:Ke,B:ze,A:$e}=d;class qe extends e{init(){this.extensionName=\"KHR_materials_sheen\",this.propertyType=\"Sheen\",this.parentTypes=[t.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{sheenColorFactor:[0,0,0],sheenColorTexture:null,sheenColorTextureInfo:new x(this.graph,\"sheenColorTextureInfo\"),sheenRoughnessFactor:0,sheenRoughnessTexture:null,sheenRoughnessTextureInfo:new x(this.graph,\"sheenRoughnessTextureInfo\")})}getSheenColorFactor(){return this.get(\"sheenColorFactor\")}getSheenColorHex(){return p.factorToHex(this.getSheenColorFactor())}setSheenColorFactor(e){return this.set(\"sheenColorFactor\",e)}setSheenColorHex(e){const t=this.getSheenColorFactor().slice();return this.set(\"sheenColorFactor\",p.hexToFactor(e,t))}getSheenColorTexture(){return this.getRef(\"sheenColorTexture\")}getSheenColorTextureInfo(){return this.getRef(\"sheenColorTexture\")?this.getRef(\"sheenColorTextureInfo\"):null}setSheenColorTexture(e){return this.setRef(\"sheenColorTexture\",e,{channels:Xe|Ke|ze})}getSheenRoughnessFactor(){return this.get(\"sheenRoughnessFactor\")}setSheenRoughnessFactor(e){return this.set(\"sheenRoughnessFactor\",e)}getSheenRoughnessTexture(){return this.getRef(\"sheenRoughnessTexture\")}getSheenRoughnessTextureInfo(){return this.getRef(\"sheenRoughnessTexture\")?this.getRef(\"sheenRoughnessTextureInfo\"):null}setSheenRoughnessTexture(e){return this.setRef(\"sheenRoughnessTexture\",e,{channels:$e})}}qe.EXTENSION_NAME=\"KHR_materials_sheen\";const Ye=\"KHR_materials_sheen\";class Qe extends s{constructor(...e){super(...e),this.extensionName=Ye}createSheen(){return new qe(this.document.getGraph())}read(e){const t=e.jsonDoc,s=t.json.textures||[];return(t.json.materials||[]).forEach((t,n)=>{if(t.extensions&&t.extensions[Ye]){const r=this.createSheen();e.materials[n].setExtension(Ye,r);const o=t.extensions[Ye];if(void 0!==o.sheenColorFactor&&r.setSheenColorFactor(o.sheenColorFactor),void 0!==o.sheenRoughnessFactor&&r.setSheenRoughnessFactor(o.sheenRoughnessFactor),void 0!==o.sheenColorTexture){const t=o.sheenColorTexture;r.setSheenColorTexture(e.textures[s[t.index].source]),e.setTextureInfo(r.getSheenColorTextureInfo(),t)}if(void 0!==o.sheenRoughnessTexture){const t=o.sheenRoughnessTexture;r.setSheenRoughnessTexture(e.textures[s[t.index].source]),e.setTextureInfo(r.getSheenRoughnessTextureInfo(),t)}}}),this}write(e){const t=e.jsonDoc;return this.document.getRoot().listMaterials().forEach(s=>{const n=s.getExtension(Ye);if(n){const r=e.materialIndexMap.get(s),o=t.json.materials[r];o.extensions=o.extensions||{};const i=o.extensions[Ye]={sheenColorFactor:n.getSheenColorFactor(),sheenRoughnessFactor:n.getSheenRoughnessFactor()};if(n.getSheenColorTexture()){const t=n.getSheenColorTexture(),s=n.getSheenColorTextureInfo();i.sheenColorTexture=e.createTextureInfoDef(t,s)}if(n.getSheenRoughnessTexture()){const t=n.getSheenRoughnessTexture(),s=n.getSheenRoughnessTextureInfo();i.sheenRoughnessTexture=e.createTextureInfoDef(t,s)}}}),this}}Qe.EXTENSION_NAME=Ye;const{R:We,G:Je,B:Ze,A:et}=d;class tt extends e{init(){this.extensionName=\"KHR_materials_specular\",this.propertyType=\"Specular\",this.parentTypes=[t.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{specularFactor:1,specularTexture:null,specularTextureInfo:new x(this.graph,\"specularTextureInfo\"),specularColorFactor:[1,1,1],specularColorTexture:null,specularColorTextureInfo:new x(this.graph,\"specularColorTextureInfo\")})}getSpecularFactor(){return this.get(\"specularFactor\")}setSpecularFactor(e){return this.set(\"specularFactor\",e)}getSpecularColorFactor(){return this.get(\"specularColorFactor\")}setSpecularColorFactor(e){return this.set(\"specularColorFactor\",e)}getSpecularColorHex(){return p.factorToHex(this.getSpecularColorFactor())}setSpecularColorHex(e){const t=this.getSpecularColorFactor().slice();return this.set(\"specularColorFactor\",p.hexToFactor(e,t))}getSpecularTexture(){return this.getRef(\"specularTexture\")}getSpecularTextureInfo(){return this.getRef(\"specularTexture\")?this.getRef(\"specularTextureInfo\"):null}setSpecularTexture(e){return this.setRef(\"specularTexture\",e,{channels:et})}getSpecularColorTexture(){return this.getRef(\"specularColorTexture\")}getSpecularColorTextureInfo(){return this.getRef(\"specularColorTexture\")?this.getRef(\"specularColorTextureInfo\"):null}setSpecularColorTexture(e){return this.setRef(\"specularColorTexture\",e,{channels:We|Je|Ze})}}tt.EXTENSION_NAME=\"KHR_materials_specular\";const st=\"KHR_materials_specular\";class nt extends s{constructor(...e){super(...e),this.extensionName=st}createSpecular(){return new tt(this.document.getGraph())}read(e){const t=e.jsonDoc,s=t.json.textures||[];return(t.json.materials||[]).forEach((t,n)=>{if(t.extensions&&t.extensions[st]){const r=this.createSpecular();e.materials[n].setExtension(st,r);const o=t.extensions[st];if(void 0!==o.specularFactor&&r.setSpecularFactor(o.specularFactor),void 0!==o.specularColorFactor&&r.setSpecularColorFactor(o.specularColorFactor),void 0!==o.specularTexture){const t=o.specularTexture;r.setSpecularTexture(e.textures[s[t.index].source]),e.setTextureInfo(r.getSpecularTextureInfo(),t)}if(void 0!==o.specularColorTexture){const t=o.specularColorTexture;r.setSpecularColorTexture(e.textures[s[t.index].source]),e.setTextureInfo(r.getSpecularColorTextureInfo(),t)}}}),this}write(e){const t=e.jsonDoc;return this.document.getRoot().listMaterials().forEach(s=>{const n=s.getExtension(st);if(n){const r=e.materialIndexMap.get(s),o=t.json.materials[r];o.extensions=o.extensions||{};const i=o.extensions[st]={};if(1!==n.getSpecularFactor()&&(i.specularFactor=n.getSpecularFactor()),l.eq(n.getSpecularColorFactor(),[1,1,1])||(i.specularColorFactor=n.getSpecularColorFactor()),n.getSpecularTexture()){const t=n.getSpecularTexture(),s=n.getSpecularTextureInfo();i.specularTexture=e.createTextureInfoDef(t,s)}if(n.getSpecularColorTexture()){const t=n.getSpecularColorTexture(),s=n.getSpecularColorTextureInfo();i.specularColorTexture=e.createTextureInfoDef(t,s)}}}),this}}nt.EXTENSION_NAME=st;const{R:rt}=d;class ot extends e{init(){this.extensionName=\"KHR_materials_transmission\",this.propertyType=\"Transmission\",this.parentTypes=[t.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{transmissionFactor:0,transmissionTexture:null,transmissionTextureInfo:new x(this.graph,\"transmissionTextureInfo\")})}getTransmissionFactor(){return this.get(\"transmissionFactor\")}setTransmissionFactor(e){return this.set(\"transmissionFactor\",e)}getTransmissionTexture(){return this.getRef(\"transmissionTexture\")}getTransmissionTextureInfo(){return this.getRef(\"transmissionTexture\")?this.getRef(\"transmissionTextureInfo\"):null}setTransmissionTexture(e){return this.setRef(\"transmissionTexture\",e,{channels:rt})}}ot.EXTENSION_NAME=\"KHR_materials_transmission\";const it=\"KHR_materials_transmission\";class at extends s{constructor(...e){super(...e),this.extensionName=it}createTransmission(){return new ot(this.document.getGraph())}read(e){const t=e.jsonDoc,s=t.json.textures||[];return(t.json.materials||[]).forEach((t,n)=>{if(t.extensions&&t.extensions[it]){const r=this.createTransmission();e.materials[n].setExtension(it,r);const o=t.extensions[it];if(void 0!==o.transmissionFactor&&r.setTransmissionFactor(o.transmissionFactor),void 0!==o.transmissionTexture){const t=o.transmissionTexture;r.setTransmissionTexture(e.textures[s[t.index].source]),e.setTextureInfo(r.getTransmissionTextureInfo(),t)}}}),this}write(e){const t=e.jsonDoc;return this.document.getRoot().listMaterials().forEach(s=>{const n=s.getExtension(it);if(n){const r=e.materialIndexMap.get(s),o=t.json.materials[r];o.extensions=o.extensions||{};const i=o.extensions[it]={transmissionFactor:n.getTransmissionFactor()};if(n.getTransmissionTexture()){const t=n.getTransmissionTexture(),s=n.getTransmissionTextureInfo();i.transmissionTexture=e.createTextureInfoDef(t,s)}}}),this}}at.EXTENSION_NAME=it;class ct extends e{init(){this.extensionName=\"KHR_materials_unlit\",this.propertyType=\"Unlit\",this.parentTypes=[t.MATERIAL]}}ct.EXTENSION_NAME=\"KHR_materials_unlit\";const ut=\"KHR_materials_unlit\";class lt extends s{constructor(...e){super(...e),this.extensionName=ut}createUnlit(){return new ct(this.document.getGraph())}read(e){return(e.jsonDoc.json.materials||[]).forEach((t,s)=>{t.extensions&&t.extensions[ut]&&e.materials[s].setExtension(ut,this.createUnlit())}),this}write(e){const t=e.jsonDoc;return this.document.getRoot().listMaterials().forEach(s=>{if(s.getExtension(ut)){const n=e.materialIndexMap.get(s),r=t.json.materials[n];r.extensions=r.extensions||{},r.extensions[ut]={}}}),this}}lt.EXTENSION_NAME=ut;class ht extends e{init(){this.extensionName=\"KHR_materials_variants\",this.propertyType=\"Mapping\",this.parentTypes=[\"MappingList\"]}getDefaults(){return Object.assign(super.getDefaults(),{material:null,variants:[]})}getMaterial(){return this.getRef(\"material\")}setMaterial(e){return this.setRef(\"material\",e)}addVariant(e){return this.addRef(\"variants\",e)}removeVariant(e){return this.removeRef(\"variants\",e)}listVariants(){return this.listRefs(\"variants\")}}ht.EXTENSION_NAME=\"KHR_materials_variants\";class ft extends e{init(){this.extensionName=\"KHR_materials_variants\",this.propertyType=\"MappingList\",this.parentTypes=[t.PRIMITIVE]}getDefaults(){return Object.assign(super.getDefaults(),{mappings:[]})}addMapping(e){return this.addRef(\"mappings\",e)}removeMapping(e){return this.removeRef(\"mappings\",e)}listMappings(){return this.listRefs(\"mappings\")}}ft.EXTENSION_NAME=\"KHR_materials_variants\";class gt extends e{init(){this.extensionName=\"KHR_materials_variants\",this.propertyType=\"Variant\",this.parentTypes=[\"MappingList\"]}}gt.EXTENSION_NAME=\"KHR_materials_variants\";const pt=\"KHR_materials_variants\";class xt extends s{constructor(...e){super(...e),this.extensionName=pt}createMappingList(){return new ft(this.document.getGraph())}createVariant(e=\"\"){return new gt(this.document.getGraph(),e)}createMapping(){return new ht(this.document.getGraph())}listVariants(){return Array.from(this.properties).filter(e=>e instanceof gt)}read(e){const t=e.jsonDoc;if(!t.json.extensions||!t.json.extensions[pt])return this;const s=(t.json.extensions[pt].variants||[]).map(e=>this.createVariant().setName(e.name||\"\"));return(t.json.meshes||[]).forEach((t,n)=>{const r=e.meshes[n];(t.primitives||[]).forEach((t,n)=>{if(!t.extensions||!t.extensions[pt])return;const o=this.createMappingList(),i=t.extensions[pt];for(const t of i.mappings){const n=this.createMapping();void 0!==t.material&&n.setMaterial(e.materials[t.material]);for(const e of t.variants||[])n.addVariant(s[e]);o.addMapping(n)}r.listPrimitives()[n].setExtension(pt,o)})}),this}write(e){const t=e.jsonDoc,s=this.listVariants();if(!s.length)return this;const n=[],r=new Map;for(const t of s)r.set(t,n.length),n.push(e.createPropertyDef(t));for(const t of this.document.getRoot().listMeshes()){const s=e.meshIndexMap.get(t);t.listPrimitives().forEach((t,n)=>{const o=t.getExtension(pt);if(!o)return;const i=e.jsonDoc.json.meshes[s].primitives[n],a=o.listMappings().map(t=>{const s=e.createPropertyDef(t),n=t.getMaterial();return n&&(s.material=e.materialIndexMap.get(n)),s.variants=t.listVariants().map(e=>r.get(e)),s});i.extensions=i.extensions||{},i.extensions[pt]={mappings:a}})}return t.json.extensions=t.json.extensions||{},t.json.extensions[pt]={variants:n},this}}xt.EXTENSION_NAME=pt;const{G:dt}=d;class Tt extends e{init(){this.extensionName=\"KHR_materials_volume\",this.propertyType=\"Volume\",this.parentTypes=[t.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{thicknessFactor:0,thicknessTexture:null,thicknessTextureInfo:new x(this.graph,\"thicknessTexture\"),attenuationDistance:Infinity,attenuationColor:[1,1,1]})}getThicknessFactor(){return this.get(\"thicknessFactor\")}setThicknessFactor(e){return this.set(\"thicknessFactor\",e)}getThicknessTexture(){return this.getRef(\"thicknessTexture\")}getThicknessTextureInfo(){return this.getRef(\"thicknessTexture\")?this.getRef(\"thicknessTextureInfo\"):null}setThicknessTexture(e){return this.setRef(\"thicknessTexture\",e,{channels:dt})}getAttenuationDistance(){return this.get(\"attenuationDistance\")}setAttenuationDistance(e){return this.set(\"attenuationDistance\",e)}getAttenuationColor(){return this.get(\"attenuationColor\")}setAttenuationColor(e){return this.set(\"attenuationColor\",e)}getAttenuationColorHex(){return p.factorToHex(this.getAttenuationColor())}setAttenuationColorHex(e){const t=this.getAttenuationColor().slice();return this.set(\"attenuationColor\",p.hexToFactor(e,t))}}Tt.EXTENSION_NAME=\"KHR_materials_volume\";const mt=\"KHR_materials_volume\";class Et extends s{constructor(...e){super(...e),this.extensionName=mt}createVolume(){return new Tt(this.document.getGraph())}read(e){const t=e.jsonDoc,s=t.json.textures||[];return(t.json.materials||[]).forEach((t,n)=>{if(t.extensions&&t.extensions[mt]){const r=this.createVolume();e.materials[n].setExtension(mt,r);const o=t.extensions[mt];if(void 0!==o.thicknessFactor&&r.setThicknessFactor(o.thicknessFactor),void 0!==o.attenuationDistance&&r.setAttenuationDistance(o.attenuationDistance),void 0!==o.attenuationColor&&r.setAttenuationColor(o.attenuationColor),void 0!==o.thicknessTexture){const t=o.thicknessTexture;r.setThicknessTexture(e.textures[s[t.index].source]),e.setTextureInfo(r.getThicknessTextureInfo(),t)}}}),this}write(e){const t=e.jsonDoc;return this.document.getRoot().listMaterials().forEach(s=>{const n=s.getExtension(mt);if(n){const r=e.materialIndexMap.get(s),o=t.json.materials[r];o.extensions=o.extensions||{};const i=o.extensions[mt]={};if(n.getThicknessFactor()>0&&(i.thicknessFactor=n.getThicknessFactor()),Number.isFinite(n.getAttenuationDistance())&&(i.attenuationDistance=n.getAttenuationDistance()),l.eq(n.getAttenuationColor(),[1,1,1])||(i.attenuationColor=n.getAttenuationColor()),n.getThicknessTexture()){const t=n.getThicknessTexture(),s=n.getThicknessTextureInfo();i.thicknessTexture=e.createTextureInfoDef(t,s)}}}),this}}Et.EXTENSION_NAME=mt;const It=\"KHR_mesh_quantization\";class Rt extends s{constructor(...e){super(...e),this.extensionName=It}read(e){return this}write(e){return this}}Rt.EXTENSION_NAME=It;const Nt=\"KHR_texture_basisu\";class yt{match(e){return 171===e[0]&&75===e[1]&&84===e[2]&&88===e[3]&&32===e[4]&&50===e[5]&&48===e[6]&&187===e[7]&&13===e[8]&&10===e[9]&&26===e[10]&&10===e[11]}getSize(e){const t=T(e);return[t.pixelWidth,t.pixelHeight]}getChannels(e){const t=T(e).dataFormatDescriptor[0];if(t.colorModel===m)return 2===t.samples.length&&15==(15&t.samples[1].channelType)?4:3;if(t.colorModel===E)return 3==(15&t.samples[0].channelType)?4:3;throw new Error(`Unexpected KTX2 colorModel, \"${t.colorModel}\".`)}getVRAMByteLength(e){const t=T(e),s=this.getChannels(e)>3;let n=0;for(let e=0;e<t.levels.length;e++){const r=t.levels[e];n+=r.uncompressedByteLength?r.uncompressedByteLength:Math.max(1,Math.floor(t.pixelWidth/Math.pow(2,e)))/4*(Math.max(1,Math.floor(t.pixelHeight/Math.pow(2,e)))/4)*(s?16:8)}return n}}class _t extends s{constructor(...e){super(...e),this.extensionName=Nt,this.prereadTypes=[t.TEXTURE]}static register(){f.registerFormat(\"image/ktx2\",new yt)}preread(e){return e.jsonDoc.json.textures.forEach(e=>{e.extensions&&e.extensions[Nt]&&(e.source=e.extensions[Nt].source)}),this}read(e){return this}write(e){const t=e.jsonDoc;return this.document.getRoot().listTextures().forEach(s=>{if(\"image/ktx2\"===s.getMimeType()){const n=e.imageIndexMap.get(s);t.json.textures.forEach(e=>{e.source===n&&(e.extensions=e.extensions||{},e.extensions[Nt]={source:e.source},delete e.source)})}}),this}}_t.EXTENSION_NAME=Nt;class At extends e{init(){this.extensionName=\"KHR_texture_transform\",this.propertyType=\"Transform\",this.parentTypes=[t.TEXTURE_INFO]}getDefaults(){return Object.assign(super.getDefaults(),{offset:[0,0],rotation:0,scale:[1,1],texCoord:null})}getOffset(){return this.get(\"offset\")}setOffset(e){return this.set(\"offset\",e)}getRotation(){return this.get(\"rotation\")}setRotation(e){return this.set(\"rotation\",e)}getScale(){return this.get(\"scale\")}setScale(e){return this.set(\"scale\",e)}getTexCoord(){return this.get(\"texCoord\")}setTexCoord(e){return this.set(\"texCoord\",e)}}At.EXTENSION_NAME=\"KHR_texture_transform\";const St=\"KHR_texture_transform\";class Ct extends s{constructor(...e){super(...e),this.extensionName=St}createTransform(){return new At(this.document.getGraph())}read(e){for(const[t,s]of Array.from(e.textureInfos.entries())){if(!s.extensions||!s.extensions[St])continue;const e=this.createTransform(),n=s.extensions[St];void 0!==n.offset&&e.setOffset(n.offset),void 0!==n.rotation&&e.setRotation(n.rotation),void 0!==n.scale&&e.setScale(n.scale),void 0!==n.texCoord&&e.setTexCoord(n.texCoord),t.setExtension(St,e)}return this}write(e){const t=Array.from(e.textureInfoDefMap.entries());for(const[e,s]of t){const t=e.getExtension(St);if(!t)continue;s.extensions=s.extensions||{};const n={},r=l.eq;r(t.getOffset(),[0,0])||(n.offset=t.getOffset()),0!==t.getRotation()&&(n.rotation=t.getRotation()),r(t.getScale(),[1,1])||(n.scale=t.getScale()),null!=t.getTexCoord()&&(n.texCoord=t.getTexCoord()),s.extensions[St]=n}return this}}Ct.EXTENSION_NAME=St;const Mt=[t.ROOT,t.SCENE,t.NODE,t.MESH,t.MATERIAL,t.TEXTURE,t.ANIMATION];class Ot extends e{init(){this.extensionName=\"KHR_xmp_json_ld\",this.propertyType=\"Packet\",this.parentTypes=Mt}getDefaults(){return Object.assign(super.getDefaults(),{context:{},properties:{}})}getContext(){return this.get(\"context\")}setContext(e){return this.set(\"context\",_({},e))}listProperties(){return Object.keys(this.get(\"properties\"))}getProperty(e){const t=this.get(\"properties\");return e in t?t[e]:null}setProperty(e,t){this._assertContext(e);const s=_({},this.get(\"properties\"));return t?s[e]=t:delete s[e],this.set(\"properties\",s)}toJSONLD(){return _({\"@context\":wt(this.get(\"context\"))},wt(this.get(\"properties\")))}fromJSONLD(e){const t=(e=wt(e))[\"@context\"];return t&&this.set(\"context\",t),delete e[\"@context\"],this.set(\"properties\",e)}_assertContext(e){if(!(e.split(\":\")[0]in this.get(\"context\")))throw new Error(`KHR_xmp_json_ld: Missing context for term, \"${e}\".`)}}function wt(e){return JSON.parse(JSON.stringify(e))}Ot.EXTENSION_NAME=\"KHR_xmp_json_ld\";const Dt=\"KHR_xmp_json_ld\";class bt extends s{constructor(...e){super(...e),this.extensionName=Dt}createPacket(){return new Ot(this.document.getGraph())}listPackets(){return Array.from(this.properties)}read(e){var t;const s=null==(t=e.jsonDoc.json.extensions)?void 0:t[Dt];if(!s||!s.packets)return this;const n=e.jsonDoc.json,r=this.document.getRoot(),o=s.packets.map(e=>this.createPacket().fromJSONLD(e)),i=[[n.asset],n.scenes,n.nodes,n.meshes,n.materials,n.images,n.animations],a=[[r],r.listScenes(),r.listNodes(),r.listMeshes(),r.listMaterials(),r.listTextures(),r.listAnimations()];for(let e=0;e<i.length;e++){const t=i[e]||[];for(let s=0;s<t.length;s++){const n=t[s];n.extensions&&n.extensions[Dt]&&a[e][s].setExtension(Dt,o[n.extensions[Dt].packet])}}return this}write(e){const{json:s}=e.jsonDoc,n=[];for(const r of this.properties){n.push(r.toJSONLD());for(const o of r.listParents()){let r;switch(o.propertyType){case t.ROOT:r=s.asset;break;case t.SCENE:r=s.scenes[e.sceneIndexMap.get(o)];break;case t.NODE:r=s.nodes[e.nodeIndexMap.get(o)];break;case t.MESH:r=s.meshes[e.meshIndexMap.get(o)];break;case t.MATERIAL:r=s.materials[e.materialIndexMap.get(o)];break;case t.TEXTURE:r=s.images[e.imageIndexMap.get(o)];break;case t.ANIMATION:r=s.animations[e.animationIndexMap.get(o)];break;default:r=null,this.document.getLogger().warn(`[${Dt}]: Unsupported parent property, \"${o.propertyType}\"`)}r&&(r.extensions=r.extensions||{},r.extensions[Dt]={packet:n.length-1})}}return n.length>0&&(s.extensions=s.extensions||{},s.extensions[Dt]={packets:n}),this}}bt.EXTENSION_NAME=Dt;const Ft=[le,pe,Ee,Ae,Me,De,ke,Pe,nt,Qe,at,lt,xt,Et,Rt,_t,Ct,bt],jt=[y,L,V,z,...Ft];export{jt as ALL_EXTENSIONS,Te as Anisotropy,ye as Clearcoat,y as EXTMeshGPUInstancing,L as EXTMeshoptCompression,V as EXTTextureAVIF,z as EXTTextureWebP,Se as EmissiveStrength,I as INSTANCE_ATTRIBUTE,Oe as IOR,R as InstancedMesh,je as Iridescence,le as KHRDracoMeshCompression,pe as KHRLightsPunctual,Ee as KHRMaterialsAnisotropy,Ae as KHRMaterialsClearcoat,Me as KHRMaterialsEmissiveStrength,De as KHRMaterialsIOR,ke as KHRMaterialsIridescence,Pe as KHRMaterialsPBRSpecularGlossiness,Qe as KHRMaterialsSheen,nt as KHRMaterialsSpecular,at as KHRMaterialsTransmission,lt as KHRMaterialsUnlit,xt as KHRMaterialsVariants,Et as KHRMaterialsVolume,Rt as KHRMeshQuantization,Ft as KHRONOS_EXTENSIONS,_t as KHRTextureBasisu,Ct as KHRTextureTransform,bt as KHRXMP,fe as Light,ht as Mapping,ft as MappingList,Ue as PBRSpecularGlossiness,Ot as Packet,qe as Sheen,tt as Specular,At as Transform,ot as Transmission,ct as Unlit,gt as Variant,Tt as Volume};\n//# sourceMappingURL=extensions.modern.js.map\n","import {\n Extension,\n ExtensionProperty,\n GLTF,\n Graph,\n Property,\n PropertyType,\n ReaderContext,\n Texture,\n TextureChannel,\n TextureInfo,\n WebIO,\n WriterContext,\n} from '@gltf-transform/core'\nimport {EncoderOptions} from '@gltf-transform/extensions/dist/khr-draco-mesh-compression/encoder'\nimport {ALL_EXTENSIONS, KHRDracoMeshCompression} from '@gltf-transform/extensions'\nimport {DRACOLoader2, GLTFExporter2, GLTFExporter2Options, GLTFViewerConfigExtension, IExportParser} from 'threepipe'\n\n/**\n * GLTF Draco Exporter\n *\n * Extension of GLTFExporter2 that runs the output through gltf-transform for draco compression.\n */\nexport class GLTFDracoExporter extends GLTFExporter2 implements IExportParser {\n public loader?: DRACOLoader2 // required for loading draco libs.\n private _io: WebIO\n private _loadedLibs = false\n private _encoderOptions: EncoderOptions\n\n constructor(encoderOptions?: EncoderOptions, loader?: DRACOLoader2) {\n super()\n encoderOptions = encoderOptions || {\n method: KHRDracoMeshCompression.EncoderMethod.EDGEBREAKER,\n encodeSpeed: 5,\n }\n this._io = new WebIO().registerExtensions(ALL_EXTENSIONS)\n .registerExtensions([\n GLTFViewerConfigExtensionGP,\n ])\n this._encoderOptions = encoderOptions\n\n if (loader) {\n this.loader = loader\n this.loader.setDecoderConfig({type: 'js'}) // todo: hack for now.\n this.loader.preload(true, true)\n }\n\n }\n\n preload(): this {\n this._loadLibs()\n return this\n }\n\n private async _loadLibs() {\n if (this._loadedLibs || !this.loader) return\n\n const libs = await Promise.all([\n this.loader.initEncoder(),\n this.loader.initDecoder(),\n ])\n this._io.registerDependencies({\n ['draco3d.encoder']: libs[0],\n ['draco3d.decoder']: libs[1], // only required if we are loading a draco compressed gltf\n })\n this._loadedLibs = true\n\n }\n\n async parseAsync(obj: any, {compress = false, dracoOptions, ...options}: {compress: boolean, dracoOptions?: EncoderOptions} & GLTFExporter2Options): Promise<Blob> {\n if (!this.loader) {\n console.error('GLTFDracoExporter: No DRACOLoader2 instance provided')\n return super.parseAsync(obj, options)\n }\n await this._loadLibs()\n\n const ops = {...options}\n if (compress) {\n // externalImagesInExtras: this is required because gltf-transform doesn't support external images in glb\n // see https://github.com/donmccurdy/glTF-Transform/discussions/644\n ops.externalImagesInExtras = true\n }\n\n const uncompressed = await new Promise((resolve, reject) => this.parse(obj, resolve, reject, ops)) as any\n\n const uncompressedBlob = await super.parseAsync(uncompressed, ops)\n if (!compress) return uncompressedBlob\n\n if (!uncompressed) throw new Error('GLTFDracoExporter: gltf is null')\n\n let gltf = uncompressed\n\n const bytes = (gltf as ArrayBuffer).byteLength || Infinity\n\n const iDocument = await (typeof gltf === 'object' && !(gltf as any).byteLength ? this._io.readJSON({\n json: gltf as GLTF.IGLTF,\n resources: {},\n }) : this._io.readBinary(new Uint8Array(gltf as ArrayBuffer)))\n\n // iDocument.createExtension(GLTFViewerConfigExtensionGP)\n iDocument.createExtension(KHRDracoMeshCompression)\n .setRequired(true)\n .setEncoderOptions({...this._encoderOptions, ...dracoOptions ?? {}})\n\n if (ops.exportExt === 'glb') {\n gltf = await this._io.writeBinary(iDocument)\n if (isFinite(bytes)) {\n console.log('DRACO Compression ratio: ' + ((gltf as ArrayBuffer).byteLength / bytes).toFixed(5))\n }\n } else {\n const jDoc = await this._io.writeJSON(iDocument)\n gltf = jDoc.json\n if (Object.values(jDoc.resources).filter(v => v).length > 0) {\n console.warn('DRACOExporter: extra resources in resources not supported properly')\n ;(gltf as any).resources = jDoc.resources\n }\n }\n\n gltf.__isGLTFOutput = true\n const blob = await super.parseAsync(gltf, ops) as any // this will just convert it to blob because __isGLTFOutput is set (checked in GLTFExporter2)\n if (!blob) throw new Error('GLTFDracoExporter: blob is null')\n blob.ext = 'glb'\n ;(blob as any).__uncompressed = uncompressedBlob\n return blob\n }\n\n addExtension(extension: typeof Extension): this {\n this._io.registerExtensions([extension])\n return this\n }\n createAndAddExtension(name: string, textures?: Record<string, string|number>): this {\n return this.addExtension(createGenericExtensionClass(name, textures))\n }\n}\n\ndeclare module 'threepipe'{\n interface GLTFExporter2Options {\n compress?: boolean\n dracoOptions?: EncoderOptions\n }\n}\n\n// for @gltf-transform/core\nclass ViewerJSONExtensionProperty extends ExtensionProperty {\n readonly extensionName: string = GLTFViewerConfigExtension.ViewerConfigGLTFExtension\n readonly parentTypes: string[] = [PropertyType.SCENE]\n readonly propertyType: string = 'ViewerJSON'\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n protected init(): void {return}\n\n}\nclass GLTFViewerConfigExtensionGP extends Extension {\n public readonly extensionName = GLTFViewerConfigExtension.ViewerConfigGLTFExtension\n public static readonly EXTENSION_NAME = GLTFViewerConfigExtension.ViewerConfigGLTFExtension\n private _viewerConfig: any = {}\n // private _texturesRef: [any, Texture][] = []\n\n read(context: ReaderContext): this {\n this._viewerConfig = {}\n context.jsonDoc.json.scenes?.forEach((sceneDef, sceneIndex)=>{\n if (sceneDef.extensions && sceneDef.extensions[GLTFViewerConfigExtension.ViewerConfigGLTFExtension]) {\n const prop = new ViewerJSONExtensionProperty(this.document.getGraph())\n context.scenes[sceneIndex].setExtension(GLTFViewerConfigExtension.ViewerConfigGLTFExtension, prop)\n this._viewerConfig = sceneDef.extensions[GLTFViewerConfigExtension.ViewerConfigGLTFExtension] as any\n // prop.setExtras()\n\n /*\n const buffers = [] as any[]\n\n Object.values(viewerConfig.resources).forEach((res: any) => {\n Object.values(res).forEach((item: any) => {\n if (!item.url) return\n if (item.url.data?.image !== null) {\n buffers.push(item.url)\n }\n })\n })\n const jsonDoc = context.jsonDoc\n console.log(buffers)\n for (const buffer of buffers) {\n const img = buffer.data.image as number\n const imageDef = jsonDoc.json.images![img]\n const bufferViewDef = jsonDoc.json.bufferViews![imageDef.bufferView!]\n const bufferDef = jsonDoc.json.buffers![bufferViewDef.buffer]\n const bufferData = bufferDef.uri ? jsonDoc.resources[bufferDef.uri] : jsonDoc.resources[GLB_BUFFER]\n const byteOffset = bufferViewDef.byteOffset || 0\n const byteLength = bufferViewDef.byteLength\n const imageData = bufferData.slice(byteOffset, byteOffset + byteLength)\n const texture = this.document.createTexture(imageDef.name)\n texture.setImage(imageData)\n this._texturesRef.push([buffer, texture])\n }\n */\n\n\n }\n })\n return this\n }\n\n write(context: WriterContext): this {\n this.document.getRoot().listScenes().forEach((scene)=>{\n const prop = scene.getExtension(GLTFViewerConfigExtension.ViewerConfigGLTFExtension)\n if (prop) {\n const sceneDef = context.jsonDoc.json.scenes?.[context.jsonDoc.json.scene || 0] // todo: get proper scene index, if working with multiple scenes\n if (sceneDef && Object.keys(this._viewerConfig).length > 0) {\n sceneDef.extensions = sceneDef.extensions || {}\n\n /*\n console.log(context.jsonDoc.json.images)\n for (const [buffer, texture] of this._texturesRef) {\n const imageDef = context.createPropertyDef(texture) as GLTF.IImage\n context.createImageData(imageDef, texture.getImage()!, texture)\n buffer.data.image = context.jsonDoc.json.images!.push(imageDef) - 1\n context.imageIndexMap.set(texture, buffer.data.image)\n }\n console.log(context.jsonDoc.json)\n */\n\n sceneDef.extensions[GLTFViewerConfigExtension.ViewerConfigGLTFExtension] = this._viewerConfig\n\n // this._texturesRef = []\n this._viewerConfig = {}\n\n }\n }\n })\n\n return this\n }\n\n required = true\n}\n\nclass GenericExtensionProperty extends ExtensionProperty<any> {\n readonly extensionName: string\n readonly parentTypes: string[] = [PropertyType.MATERIAL, PropertyType.MESH, PropertyType.NODE, PropertyType.SCENE]\n readonly propertyType: string = 'GenericExtension'\n textures: Record<string, [TextureInfo, Texture|null]> = {}\n\n addTexture(key: string, texInfo: TextureInfo, texture: Texture | null, channels = 0x1111) {\n this.setRef(key, texture, {channels})\n this.textures[key] = [texInfo, texture]\n }\n\n constructor(graph: Graph<Property>, name: string, extensionName: string) {\n super(graph, name)\n this.extensionName = extensionName\n }\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n protected init(): void {return}\n}\n\n// see transmission extension for reference\nabstract class GenericExtension extends Extension {\n abstract readonly extensionName: string\n\n textureChannels: Record<string, number> = {}\n\n read(context: ReaderContext): this {\n const jsonDoc = context.jsonDoc\n // console.log(jsonDoc)\n const materialDefs = jsonDoc.json.materials || []\n const textureDefs = jsonDoc.json.textures || []\n materialDefs.forEach((materialDef, materialIndex) => {\n if (materialDef.extensions && materialDef.extensions[this.extensionName]) {\n const paramsExt = new GenericExtensionProperty(this.document.getGraph(), '', this.extensionName)\n context.materials[materialIndex].setExtension(this.extensionName, paramsExt)\n const paramsExtDef = materialDef.extensions[this.extensionName] as Record<string, any>\n const paramsExtDef2 = {...paramsExtDef}\n\n for (const [key, value] of Object.entries(paramsExtDef2)) {\n if (typeof value?.index === 'number') { // this is a texture...\n const textureInfoDef = value\n const source = textureDefs[textureInfoDef.index]?.source\n if (typeof source !== 'number') {\n console.warn('GLTF Pipeline: source texture not found for texture info', textureInfoDef)\n continue\n }\n const texture = context.textures[source]\n const texInfo = new TextureInfo(this.document.getGraph())\n const channels = this.textureChannels[key] ?? 0x1111\n paramsExt.addTexture(key, texInfo, texture, channels)\n context.setTextureInfo(texInfo, textureInfoDef)\n delete paramsExtDef2[key]\n }\n }\n\n paramsExt.setExtras(paramsExtDef2)\n // console.log({...paramsExtDef})\n }\n })\n const meshDefs = jsonDoc.json.meshes || []\n meshDefs.forEach((meshDef, meshIndex) => {\n if (meshDef.extensions && meshDef.extensions[this.extensionName]) {\n const paramsExt = new GenericExtensionProperty(this.document.getGraph(), '', this.extensionName)\n context.meshes[meshIndex].setExtension(this.extensionName, paramsExt)\n const paramsExtDef = meshDef.extensions[this.extensionName] as Record<string, any>\n paramsExt.setExtras(paramsExtDef)\n }\n })\n const nodeDefs = jsonDoc.json.nodes || []\n nodeDefs.forEach((nodeDef, nodeIndex) => {\n if (nodeDef.extensions && nodeDef.extensions[this.extensionName]) {\n const paramsExt = new GenericExtensionProperty(this.document.getGraph(), '', this.extensionName)\n context.nodes[nodeIndex].setExtension(this.extensionName, paramsExt)\n const paramsExtDef = nodeDef.extensions[this.extensionName] as Record<string, any>\n paramsExt.setExtras(paramsExtDef)\n // console.log(paramsExtDef)\n }\n })\n const sceneDefs = jsonDoc.json.scenes || []\n sceneDefs.forEach((sceneDef, sceneIndex) => {\n if (sceneDef.extensions && sceneDef.extensions[this.extensionName]) {\n const paramsExt = new GenericExtensionProperty(this.document.getGraph(), '', this.extensionName)\n context.scenes[sceneIndex].setExtension(this.extensionName, paramsExt)\n const paramsExtDef = sceneDef.extensions[this.extensionName] as Record<string, any>\n paramsExt.setExtras(paramsExtDef)\n // console.log(paramsExtDef)\n }\n })\n\n return this\n }\n\n write(context: WriterContext): this {\n const jsonDoc = context.jsonDoc\n this.document.getRoot()\n .listMaterials()\n .forEach((material) => {\n const paramsExt = material.getExtension<GenericExtensionProperty>(this.extensionName)\n // console.log(paramsExt)\n if (paramsExt) {\n const materialIndex = context.materialIndexMap.get(material)!\n const materialDef = jsonDoc.json.materials![materialIndex]\n materialDef.extensions = materialDef.extensions || {}\n const extensionDef = paramsExt.getExtras()\n const extensionDef2 = {...extensionDef}\n\n // console.log(paramsExt.textures)\n for (const [key, value] of Object.entries(paramsExt.textures)) {\n const textureInfo = value[0]\n const textureLink = value[1]\n const texture = textureLink\n\n if (texture)\n extensionDef2[key] = context.createTextureInfoDef(texture, textureInfo)\n\n // console.log(texture)\n\n }\n // console.log(extensionDef2)\n\n materialDef.extensions[this.extensionName] = extensionDef2\n }\n })\n this.document.getRoot()\n .listMeshes()\n .forEach((mesh) => {\n const paramsExt = mesh.getExtension<GenericExtensionProperty>(this.extensionName)\n if (paramsExt) {\n const meshIndex = context.meshIndexMap.get(mesh)!\n const meshDef = jsonDoc.json.meshes![meshIndex]\n meshDef.extensions = meshDef.extensions || {}\n meshDef.extensions[this.extensionName] = paramsExt.getExtras()\n }\n })\n this.document.getRoot()\n .listNodes()\n .forEach((node) => {\n const paramsExt = node.getExtension<GenericExtensionProperty>(this.extensionName)\n if (paramsExt) {\n const nodeIndex = context.nodeIndexMap.get(node)!\n const nodeDef = jsonDoc.json.nodes![nodeIndex]\n nodeDef.extensions = nodeDef.extensions || {}\n nodeDef.extensions[this.extensionName] = paramsExt.getExtras()\n }\n })\n this.document.getRoot()\n .listScenes()\n .forEach((scene) => {\n const paramsExt = scene.getExtension<GenericExtensionProperty>(this.extensionName)\n if (paramsExt) {\n const sceneIndex = context.jsonDoc.json.scene || 0 // todo: get proper scene index, if working with multiple scenes, this will do the default one.\n const sceneDef = jsonDoc.json.scenes![sceneIndex]\n if (!sceneDef) return\n sceneDef.extensions = sceneDef.extensions || {}\n sceneDef.extensions[this.extensionName] = paramsExt.getExtras()\n }\n })\n\n return this\n }\n\n}\n\nfunction stringToChannel(s: string) {\n let r = 0\n if (s.includes('R')) r |= TextureChannel.R\n if (s.includes('G')) r |= TextureChannel.G\n if (s.includes('B')) r |= TextureChannel.B\n if (s.includes('A')) r |= TextureChannel.A\n return r\n}\n\nexport function createGenericExtensionClass(name: string, textures?: Record<string, string|number>): typeof GenericExtension {\n return class extends GenericExtension {\n public static readonly EXTENSION_NAME = name\n readonly extensionName = name\n textureChannels: Record<string, number> = !textures ? {} : Object.fromEntries(\n Object.entries(textures)\n .map(([k, v])=>\n [k, typeof v === 'number' ? v : stringToChannel(v)])\n )\n }\n}\n","import {\n AssetExporterPlugin,\n AViewerPluginSync,\n ClearcoatTintPlugin,\n CustomBumpMapPlugin,\n DRACOLoader2,\n generateUUID,\n GLTFLightExtrasExtension,\n GLTFMaterialExtrasExtension,\n GLTFMaterialsAlphaMapExtension,\n GLTFMaterialsBumpMapExtension,\n GLTFMaterialsDisplacementMapExtension,\n GLTFMaterialsLightMapExtension,\n GLTFObject3DExtrasExtension,\n NoiseBumpMaterialPlugin,\n ThreeViewer,\n} from 'threepipe'\nimport {GLTFDracoExporter} from './GLTFDracoExporter'\nimport {UiObjectConfig} from 'uiconfig.js'\nimport {EncoderOptions} from '@gltf-transform/extensions/dist/khr-draco-mesh-compression/encoder'\n\nexport enum EncoderMethod {\n EDGEBREAKER = 1,\n SEQUENTIAL = 0\n}\n\n/**\n * GLTF Draco Export Plugin\n *\n * Overloads the default gltf exporter in the asset manager with GLTFDracoExporter. When exporting with compress = true, the output will be compressed.\n * Note - Only `glb` supported right now.\n *\n * @category Plugins\n */\nexport class GLTFDracoExportPlugin extends AViewerPluginSync<''> {\n public static readonly PluginType = 'GLTFDracoExportPlugin'\n enabled = true\n\n onAdded(viewer: ThreeViewer): void {\n super.onAdded(viewer)\n const importer = viewer.assetManager.importer\n const exporter = viewer.assetManager.exporter\n\n const glbExporter = exporter.getExporter('glb')\n if (glbExporter) exporter.removeExporter(glbExporter)\n\n // todo remove exporter and add back the old one on plugin remove.\n exporter.addExporter({\n ...glbExporter || {\n ext: ['glb', 'gltf'],\n extensions: [],\n }, // for extensions\n ctor: (_, _exporter) => {\n const tempFile = generateUUID() + '.drc' // dummy\n const ex = new GLTFDracoExporter({},\n // todo unregister on dispose\n importer.registerFile(tempFile) as DRACOLoader2)\n ex.setup(viewer, _exporter.extensions)\n ex.createAndAddExtension(GLTFMaterialsBumpMapExtension.WebGiMaterialsBumpMapExtension, {\n bumpTexture: 'R',\n })\n ex.createAndAddExtension(GLTFMaterialsLightMapExtension.WebGiMaterialsLightMapExtension, {\n lightMapTexture: 'RGB',\n })\n ex.createAndAddExtension(GLTFMaterialsAlphaMapExtension.WebGiMaterialsAlphaMapExtension, {\n alphaTexture: 'G',\n })\n ex.createAndAddExtension(GLTFMaterialsDisplacementMapExtension.WebGiMaterialsDisplacementMapExtension, {\n displacementTexture: 'R',\n })\n ex.createAndAddExtension(CustomBumpMapPlugin.CUSTOM_BUMP_MAP_GLTF_EXTENSION, {\n customBumpMap: 'RGB',\n })\n ex.createAndAddExtension(GLTFLightExtrasExtension.WebGiLightExtrasExtension)\n ex.createAndAddExtension(GLTFObject3DExtrasExtension.WebGiObject3DExtrasExtension)\n ex.createAndAddExtension(GLTFMaterialExtrasExtension.WebGiMaterialExtrasExtension)\n ex.createAndAddExtension(ClearcoatTintPlugin.CLEARCOAT_TINT_GLTF_EXTENSION)\n ex.createAndAddExtension(NoiseBumpMaterialPlugin.NOISE_BUMP_MATERIAL_GLTF_EXTENSION)\n // todo port\n // DiamondMaterialExtension\n // AnimationMarkersExtension\n // AnisotropyMaterialExtension\n // ThinFilmLayerMaterialExtension\n // TriplanarMappingMaterialExtension\n // SSBevelMaterialExtension\n return ex\n },\n })\n\n // for ui\n const exportPlugin = viewer.getPlugin(AssetExporterPlugin)\n if (exportPlugin) {\n Object.assign(exportPlugin.exportOptions, {\n compress: false,\n dracoOptions: {\n encodeSpeed: 5,\n method: EncoderMethod.EDGEBREAKER,\n quantizationVolume: 'mesh',\n quantizationBits: {\n ['POSITION']: 14,\n ['NORMAL']: 10,\n ['COLOR']: 8,\n ['TEX_COORD']: 12,\n ['GENERIC']: 12,\n },\n } as EncoderOptions,\n })\n const exportOptions = exportPlugin.uiConfig.children?.find(c => (c as UiObjectConfig).label === 'GLB Export') as UiObjectConfig\n if (exportOptions) {\n exportOptions.children = [this._makeUi(exportPlugin), ...exportOptions.children || []]\n } else {\n console.warn('GLTFDracoExportPlugin: Unable to setup UI')\n }\n }\n }\n\n protected _makeUi = (exporter: AssetExporterPlugin)=>[\n {\n type: 'checkbox',\n label: 'DRACO Compress',\n property: [exporter.exportOptions, 'compress'],\n onChange: ()=>exporter.uiConfig.uiRefresh?.(true),\n },\n {\n type: 'folder',\n hidden: ()=>!exporter.exportOptions.compress,\n label: 'DRACO Options',\n children: [\n {\n type: 'slider',\n label: 'Encode Speed',\n bounds: [1, 10],\n property: [exporter.exportOptions.dracoOptions, 'encodeSpeed'],\n },\n {\n type: 'dropdown',\n label: 'Encoder Method',\n property: [exporter.exportOptions.dracoOptions, 'method'],\n children: Object.entries(EncoderMethod).map(([k, v]) => ({label: k, value: v})),\n },\n {\n type: 'dropdown',\n label: 'Quantization Volume',\n property: [exporter.exportOptions.dracoOptions, 'quantizationVolume'],\n children: ['mesh', 'scene', 'bbox'].map(v => ({label: v})),\n },\n {\n type: 'folder',\n label: 'Quantization Bits',\n children: Object.keys(exporter.exportOptions.dracoOptions?.quantizationBits || {}).map(k => ({\n type: 'slider',\n label: k,\n bounds: [1, 16],\n stepSize: 1,\n property: [exporter.exportOptions.dracoOptions?.quantizationBits, k],\n })),\n },\n ],\n },\n ]\n}\n"],"names":["l","b","ref","w","y","v","t","r","A","s","e","S","R","O","C","F","B","c","h","f","d","g","p","m","T","x","U","E","M","I","N","n","i","o","a","u","L","j","D","_","k","z","G","J","$","V","W","q","H","Y","Z","P","K","X","tt","rt","st","nt","it","ot","at","ut","ct","lt","gt","pt","ft","mt","ht","wt","Q","et","yt","dt","Tt","xt","At","Et","St","Mt","It","Rt","Nt","Ot","Ct","bt","Ft","KHRDracoMeshCompression","WebIO","ALL_EXTENSIONS","ExtensionProperty","PropertyType","Extension","TextureInfo","TextureChannel","EncoderMethod","_a"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
1
+ {"version":3,"file":"index.mjs","sources":["../node_modules/property-graph/dist/property-graph.modern.js","../node_modules/@gltf-transform/core/dist/core.modern.js","../node_modules/ktx-parse/dist/ktx-parse.modern.js","../node_modules/@gltf-transform/extensions/dist/extensions.modern.js","../src/GLTFDracoExporter.ts","../src/GLTFDracoExportPlugin.ts"],"sourcesContent":["class EventDispatcher {\n constructor() {\n this._listeners = {};\n }\n\n addEventListener(type, listener) {\n const listeners = this._listeners;\n\n if (listeners[type] === undefined) {\n listeners[type] = [];\n }\n\n if (listeners[type].indexOf(listener) === -1) {\n listeners[type].push(listener);\n }\n\n return this;\n }\n\n removeEventListener(type, listener) {\n if (this._listeners === undefined) return this;\n const listeners = this._listeners;\n const listenerArray = listeners[type];\n\n if (listenerArray !== undefined) {\n const index = listenerArray.indexOf(listener);\n\n if (index !== -1) {\n listenerArray.splice(index, 1);\n }\n }\n\n return this;\n }\n\n dispatchEvent(event) {\n if (this._listeners === undefined) return this;\n const listeners = this._listeners;\n const listenerArray = listeners[event.type];\n\n if (listenerArray !== undefined) {\n // Make a copy, in case listeners are removed while iterating.\n const array = listenerArray.slice(0);\n\n for (let i = 0, l = array.length; i < l; i++) {\n array[i].call(this, event);\n }\n }\n\n return this;\n }\n\n dispose() {\n for (const key in this._listeners) {\n delete this._listeners[key];\n }\n }\n\n}\n\n/**\n * Represents a connection between two {@link GraphNode} resources in a {@link Graph}.\n *\n * The left node is considered the owner, and the right node the resource. The\n * owner is responsible for being able find and remove a reference to a resource, given\n * that link. The resource does not hold a reference to the link or to the owner,\n * although that reverse lookup can be done on the graph.\n */\n\nclass GraphEdge extends EventDispatcher {\n constructor(_name, _parent, _child, _attributes = {}) {\n super();\n this._name = void 0;\n this._parent = void 0;\n this._child = void 0;\n this._attributes = void 0;\n this._disposed = false;\n this._name = _name;\n this._parent = _parent;\n this._child = _child;\n this._attributes = _attributes;\n\n if (!_parent.isOnGraph(_child)) {\n throw new Error('Cannot connect disconnected graphs.');\n }\n }\n /** Name. */\n\n\n getName() {\n return this._name;\n }\n /** Owner node. */\n\n\n getParent() {\n return this._parent;\n }\n /** Resource node. */\n\n\n getChild() {\n return this._child;\n }\n /**\n * Sets the child node.\n *\n * @internal Only {@link Graph} implementations may safely call this method directly. Use\n * \t{@link Property.swap} or {@link Graph.swapChild} instead.\n */\n\n\n setChild(child) {\n this._child = child;\n return this;\n }\n /** Attributes of the graph node relationship. */\n\n\n getAttributes() {\n return this._attributes;\n }\n /** Destroys a (currently intact) edge, updating both the graph and the owner. */\n\n\n dispose() {\n if (this._disposed) return;\n this._disposed = true;\n this.dispatchEvent({\n type: 'dispose',\n target: this\n });\n super.dispose();\n }\n /** Whether this link has been destroyed. */\n\n\n isDisposed() {\n return this._disposed;\n }\n\n}\n\n/**\n * A graph manages a network of {@link GraphNode} nodes, connected\n * by {@link @Link} edges.\n */\n\nclass Graph extends EventDispatcher {\n constructor(...args) {\n super(...args);\n this._emptySet = new Set();\n this._edges = new Set();\n this._parentEdges = new Map();\n this._childEdges = new Map();\n }\n\n /** Returns a list of all parent->child edges on this graph. */\n listEdges() {\n return Array.from(this._edges);\n }\n /** Returns a list of all edges on the graph having the given node as their child. */\n\n\n listParentEdges(node) {\n return Array.from(this._childEdges.get(node) || this._emptySet);\n }\n /** Returns a list of parent nodes for the given child node. */\n\n\n listParents(node) {\n return this.listParentEdges(node).map(edge => edge.getParent());\n }\n /** Returns a list of all edges on the graph having the given node as their parent. */\n\n\n listChildEdges(node) {\n return Array.from(this._parentEdges.get(node) || this._emptySet);\n }\n /** Returns a list of child nodes for the given parent node. */\n\n\n listChildren(node) {\n return this.listChildEdges(node).map(edge => edge.getChild());\n }\n\n disconnectParents(node, filter) {\n let edges = this.listParentEdges(node);\n\n if (filter) {\n edges = edges.filter(edge => filter(edge.getParent()));\n }\n\n edges.forEach(edge => edge.dispose());\n return this;\n }\n /**\n * Creates a {@link GraphEdge} connecting two {@link GraphNode} instances. Edge is returned\n * for the caller to store.\n * @param a Owner\n * @param b Resource\n */\n\n\n createEdge(name, a, b, attributes) {\n return this._registerEdge(new GraphEdge(name, a, b, attributes));\n }\n /**********************************************************************************************\n * Internal.\n */\n\n /** @hidden */\n\n\n _registerEdge(edge) {\n this._edges.add(edge);\n\n const parent = edge.getParent();\n if (!this._parentEdges.has(parent)) this._parentEdges.set(parent, new Set());\n\n this._parentEdges.get(parent).add(edge);\n\n const child = edge.getChild();\n if (!this._childEdges.has(child)) this._childEdges.set(child, new Set());\n\n this._childEdges.get(child).add(edge);\n\n edge.addEventListener('dispose', () => this._removeEdge(edge));\n return edge;\n }\n /**\n * Removes the {@link GraphEdge} from the {@link Graph}. This method should only\n * be invoked by the onDispose() listener created in {@link _registerEdge()}. The\n * public method of removing an edge is {@link GraphEdge.dispose}.\n */\n\n\n _removeEdge(edge) {\n this._edges.delete(edge);\n\n this._parentEdges.get(edge.getParent()).delete(edge);\n\n this._childEdges.get(edge.getChild()).delete(edge);\n\n return this;\n }\n\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction isRef(value) {\n return value instanceof GraphEdge;\n}\nfunction isRefList(value) {\n return Array.isArray(value) && value[0] instanceof GraphEdge;\n}\nfunction isRefMap(value) {\n return !!(isPlainObject(value) && getFirstValue(value) instanceof GraphEdge);\n}\n\nfunction getFirstValue(value) {\n for (const key in value) {\n return value[key];\n }\n}\n\nfunction isPlainObject(value) {\n return Boolean(value) && Object.getPrototypeOf(value) === Object.prototype;\n}\n\nconst $attributes = Symbol('attributes');\nconst $immutableKeys = Symbol('immutableKeys');\n/**\n * Represents a node in a {@link Graph}.\n */\n\nclass GraphNode extends EventDispatcher {\n /**\n * Internal graph used to search and maintain references.\n * @hidden\n */\n\n /**\n * Attributes (literal values and GraphNode references) associated with this instance. For each\n * GraphNode reference, the attributes stores a {@link GraphEdge}. List and Map references are\n * stored as arrays and dictionaries of edges.\n * @internal\n */\n\n /**\n * Attributes included with `getDefaultAttributes` are considered immutable, and cannot be\n * modifed by `.setRef()`, `.copy()`, or other GraphNode methods. Both the edges and the\n * properties will be disposed with the parent GraphNode.\n *\n * Currently, only single-edge references (getRef/setRef) are supported as immutables.\n *\n * @internal\n */\n constructor(graph) {\n super();\n this._disposed = false;\n this.graph = void 0;\n this[$attributes] = void 0;\n this[$immutableKeys] = void 0;\n this.graph = graph;\n this[$immutableKeys] = new Set();\n this[$attributes] = this._createAttributes();\n }\n /**\n * Returns default attributes for the graph node. Subclasses having any attributes (either\n * literal values or references to other graph nodes) must override this method. Literal\n * attributes should be given their default values, if any. References should generally be\n * initialized as empty (Ref → null, RefList → [], RefMap → {}) and then modified by setters.\n *\n * Any single-edge references (setRef) returned by this method will be considered immutable,\n * to be owned by and disposed with the parent node. Multi-edge references (addRef, removeRef,\n * setRefMap) cannot be returned as default attributes.\n */\n\n\n getDefaults() {\n return {};\n }\n /**\n * Constructs and returns an object used to store a graph nodes attributes. Compared to the\n * default Attributes interface, this has two distinctions:\n *\n * 1. Slots for GraphNode<T> objects are replaced with slots for GraphEdge<this, GraphNode<T>>\n * 2. GraphNode<T> objects provided as defaults are considered immutable\n *\n * @internal\n */\n\n\n _createAttributes() {\n const defaultAttributes = this.getDefaults();\n const attributes = {};\n\n for (const key in defaultAttributes) {\n const value = defaultAttributes[key];\n\n if (value instanceof GraphNode) {\n const ref = this.graph.createEdge(key, this, value);\n ref.addEventListener('dispose', () => value.dispose());\n this[$immutableKeys].add(key);\n attributes[key] = ref;\n } else {\n attributes[key] = value;\n }\n }\n\n return attributes;\n }\n /** @internal Returns true if two nodes are on the same {@link Graph}. */\n\n\n isOnGraph(other) {\n return this.graph === other.graph;\n }\n /** Returns true if the node has been permanently removed from the graph. */\n\n\n isDisposed() {\n return this._disposed;\n }\n /**\n * Removes both inbound references to and outbound references from this object. At the end\n * of the process the object holds no references, and nothing holds references to it. A\n * disposed object is not reusable.\n */\n\n\n dispose() {\n if (this._disposed) return;\n this.graph.listChildEdges(this).forEach(edge => edge.dispose());\n this.graph.disconnectParents(this);\n this._disposed = true;\n this.dispatchEvent({\n type: 'dispose'\n });\n }\n /**\n * Removes all inbound references to this object. At the end of the process the object is\n * considered 'detached': it may hold references to child resources, but nothing holds\n * references to it. A detached object may be re-attached.\n */\n\n\n detach() {\n this.graph.disconnectParents(this);\n return this;\n }\n /**\n * Transfers this object's references from the old node to the new one. The old node is fully\n * detached from this parent at the end of the process.\n *\n * @hidden\n */\n\n\n swap(old, replacement) {\n for (const attribute in this[$attributes]) {\n const value = this[$attributes][attribute];\n\n if (isRef(value)) {\n const ref = value;\n\n if (ref.getChild() === old) {\n this.setRef(attribute, replacement, ref.getAttributes());\n }\n } else if (isRefList(value)) {\n const refs = value;\n const ref = refs.find(ref => ref.getChild() === old);\n\n if (ref) {\n const refAttributes = ref.getAttributes();\n this.removeRef(attribute, old).addRef(attribute, replacement, refAttributes);\n }\n } else if (isRefMap(value)) {\n const refMap = value;\n\n for (const key in refMap) {\n const ref = refMap[key];\n\n if (ref.getChild() === old) {\n this.setRefMap(attribute, key, replacement, ref.getAttributes());\n }\n }\n }\n }\n\n return this;\n }\n /**********************************************************************************************\n * Literal attributes.\n */\n\n /** @hidden */\n\n\n get(attribute) {\n return this[$attributes][attribute];\n }\n /** @hidden */\n\n\n set(attribute, value) {\n this[$attributes][attribute] = value;\n return this.dispatchEvent({\n type: 'change',\n attribute\n });\n }\n /**********************************************************************************************\n * Ref: 1:1 graph node references.\n */\n\n /** @hidden */\n\n\n getRef(attribute) {\n const ref = this[$attributes][attribute];\n return ref ? ref.getChild() : null;\n }\n /** @hidden */\n\n\n setRef(attribute, value, attributes) {\n if (this[$immutableKeys].has(attribute)) {\n throw new Error(`Cannot overwrite immutable attribute, \"${attribute}\".`);\n }\n\n const prevRef = this[$attributes][attribute];\n if (prevRef) prevRef.dispose(); // TODO(cleanup): Possible duplicate event.\n\n if (!value) return this;\n const ref = this.graph.createEdge(attribute, this, value, attributes);\n ref.addEventListener('dispose', () => {\n delete this[$attributes][attribute];\n this.dispatchEvent({\n type: 'change',\n attribute\n });\n });\n this[$attributes][attribute] = ref;\n return this.dispatchEvent({\n type: 'change',\n attribute\n });\n }\n /**********************************************************************************************\n * RefList: 1:many graph node references.\n */\n\n /** @hidden */\n\n\n listRefs(attribute) {\n const refs = this[$attributes][attribute];\n return refs.map(ref => ref.getChild());\n }\n /** @hidden */\n\n\n addRef(attribute, value, attributes) {\n const ref = this.graph.createEdge(attribute, this, value, attributes);\n const refs = this[$attributes][attribute];\n refs.push(ref);\n ref.addEventListener('dispose', () => {\n let index;\n\n while ((index = refs.indexOf(ref)) !== -1) {\n refs.splice(index, 1);\n }\n\n this.dispatchEvent({\n type: 'change',\n attribute\n });\n });\n return this.dispatchEvent({\n type: 'change',\n attribute\n });\n }\n /** @hidden */\n\n\n removeRef(attribute, value) {\n const refs = this[$attributes][attribute];\n const pruned = refs.filter(ref => ref.getChild() === value);\n pruned.forEach(ref => ref.dispose()); // TODO(cleanup): Possible duplicate event.\n\n return this;\n }\n /**********************************************************************************************\n * RefMap: Named 1:many (map) graph node references.\n */\n\n /** @hidden */\n\n\n listRefMapKeys(key) {\n return Object.keys(this[$attributes][key]);\n }\n /** @hidden */\n\n\n listRefMapValues(key) {\n return Object.values(this[$attributes][key]).map(ref => ref.getChild());\n }\n /** @hidden */\n\n\n getRefMap(attribute, key) {\n const refMap = this[$attributes][attribute];\n return refMap[key] ? refMap[key].getChild() : null;\n }\n /** @hidden */\n\n\n setRefMap(attribute, key, value, metadata) {\n const refMap = this[$attributes][attribute];\n const prevRef = refMap[key];\n if (prevRef) prevRef.dispose(); // TODO(cleanup): Possible duplicate event.\n\n if (!value) return this;\n metadata = Object.assign(metadata || {}, {\n key: key\n });\n const ref = this.graph.createEdge(attribute, this, value, _extends({}, metadata, {\n key\n }));\n ref.addEventListener('dispose', () => {\n delete refMap[key];\n this.dispatchEvent({\n type: 'change',\n attribute,\n key\n });\n });\n refMap[key] = ref;\n return this.dispatchEvent({\n type: 'change',\n attribute,\n key\n });\n }\n /**********************************************************************************************\n * Events.\n */\n\n /**\n * Dispatches an event on the GraphNode, and on the associated\n * Graph. Event types on the graph are prefixed, `\"node:[type]\"`.\n */\n\n\n dispatchEvent(event) {\n super.dispatchEvent(_extends({}, event, {\n target: this\n }));\n this.graph.dispatchEvent(_extends({}, event, {\n target: this,\n type: `node:${event.type}`\n }));\n return this;\n }\n\n}\n\nexport { $attributes, $immutableKeys, EventDispatcher, Graph, GraphEdge, GraphNode, isRef, isRefList, isRefMap };\n//# sourceMappingURL=property-graph.modern.js.map\n","import{GraphNode as t,$attributes as e,GraphEdge as r,$immutableKeys as s,isRefList as n,isRefMap as i,isRef as o,Graph as a}from\"property-graph\";export{Graph,GraphEdge}from\"property-graph\";const u=\"v3.2.1\",c=\"@glb.bin\";var h,f,l,d,g;!function(t){t.ACCESSOR=\"Accessor\",t.ANIMATION=\"Animation\",t.ANIMATION_CHANNEL=\"AnimationChannel\",t.ANIMATION_SAMPLER=\"AnimationSampler\",t.BUFFER=\"Buffer\",t.CAMERA=\"Camera\",t.MATERIAL=\"Material\",t.MESH=\"Mesh\",t.PRIMITIVE=\"Primitive\",t.PRIMITIVE_TARGET=\"PrimitiveTarget\",t.NODE=\"Node\",t.ROOT=\"Root\",t.SCENE=\"Scene\",t.SKIN=\"Skin\",t.TEXTURE=\"Texture\",t.TEXTURE_INFO=\"TextureInfo\"}(h||(h={})),function(t){t.INTERLEAVED=\"interleaved\",t.SEPARATE=\"separate\"}(f||(f={})),function(t){t.ARRAY_BUFFER=\"ARRAY_BUFFER\",t.ELEMENT_ARRAY_BUFFER=\"ELEMENT_ARRAY_BUFFER\",t.INVERSE_BIND_MATRICES=\"INVERSE_BIND_MATRICES\",t.OTHER=\"OTHER\",t.SPARSE=\"SPARSE\"}(l||(l={})),function(t){t[t.R=4096]=\"R\",t[t.G=256]=\"G\",t[t.B=16]=\"B\",t[t.A=1]=\"A\"}(d||(d={})),function(t){t.GLTF=\"GLTF\",t.GLB=\"GLB\"}(g||(g={}));const p={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};var m,w=\"undefined\"!=typeof Float32Array?Float32Array:Array;function y(t){return Math.hypot(t[0],t[1],t[2])}function v(t,e,r){var s=e[0],n=e[1],i=e[2],o=r[3]*s+r[7]*n+r[11]*i+r[15];return t[0]=(r[0]*s+r[4]*n+r[8]*i+r[12])/(o=o||1),t[1]=(r[1]*s+r[5]*n+r[9]*i+r[13])/o,t[2]=(r[2]*s+r[6]*n+r[10]*i+r[14])/o,t}function T(t){const e={min:[Infinity,Infinity,Infinity],max:[-Infinity,-Infinity,-Infinity]},r=t.propertyType===h.NODE?[t]:t.listChildren();for(const t of r)t.traverse(t=>{const r=t.getMesh();if(!r)return;const s=x(r,t.getWorldMatrix());A(s.min,e),A(s.max,e)});return e}Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)}),m=new w(3),w!=Float32Array&&(m[0]=0,m[1]=0,m[2]=0);const b=T;function x(t,e){const r={min:[Infinity,Infinity,Infinity],max:[-Infinity,-Infinity,-Infinity]};for(const s of t.listPrimitives()){const t=s.getAttribute(\"POSITION\");if(!t)continue;let n=[0,0,0],i=[0,0,0];for(let s=0;s<t.getCount();s++)n=t.getElement(s,n),i=v(i,n,e),A(i,r)}return r}function A(t,e){for(let r=0;r<3;r++)e.min[r]=Math.min(t[r],e.min[r]),e.max[r]=Math.max(t[r],e.max[r])}class E{static createBufferFromDataURI(t){if(\"undefined\"==typeof Buffer){const e=atob(t.split(\",\")[1]),r=new Uint8Array(e.length);for(let t=0;t<e.length;t++)r[t]=e.charCodeAt(t);return r}{const e=t.split(\",\")[1],r=t.indexOf(\"base64\")>=0;return Buffer.from(e,r?\"base64\":\"utf8\")}}static encodeText(t){return\"undefined\"!=typeof TextEncoder?(new TextEncoder).encode(t):Buffer.from(t)}static decodeText(t){return\"undefined\"!=typeof TextDecoder?(new TextDecoder).decode(t):Buffer.from(t).toString(\"utf8\")}static concat(t){let e=0;for(const r of t)e+=r.byteLength;const r=new Uint8Array(e);let s=0;for(const e of t)r.set(e,s),s+=e.byteLength;return r}static pad(t,e=0){const r=this.padNumber(t.byteLength);if(r===t.byteLength)return t;const s=new Uint8Array(r);if(s.set(t),0!==e)for(let n=t.byteLength;n<r;n++)s[n]=e;return s}static padNumber(t){return 4*Math.ceil(t/4)}static equals(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;let r=t.byteLength;for(;r--;)if(t[r]!==e[r])return!1;return!0}static toView(t,e=0,r=Infinity){return new Uint8Array(t.buffer,t.byteOffset+e,Math.min(t.byteLength,r))}static assertView(t){if(t&&!ArrayBuffer.isView(t))throw new Error(`Method requires Uint8Array parameter; received \"${typeof t}\".`);return t}}class M{static hexToFactor(t,e){t=Math.floor(t);const r=e;return r[0]=(t>>16&255)/255,r[1]=(t>>8&255)/255,r[2]=(255&t)/255,this.convertSRGBToLinear(e,e)}static factorToHex(t){const e=[...t],[r,s,n]=this.convertLinearToSRGB(t,e);return 255*r<<16^255*s<<8^255*n<<0}static convertSRGBToLinear(t,e){const r=t,s=e;for(let t=0;t<3;t++)s[t]=r[t]<.04045?.0773993808*r[t]:Math.pow(.9478672986*r[t]+.0521327014,2.4);return e}static convertLinearToSRGB(t,e){const r=t,s=e;for(let t=0;t<3;t++)s[t]=r[t]<.0031308?12.92*r[t]:1.055*Math.pow(r[t],.41666)-.055;return e}}class S{match(t){return t.length>=8&&137===t[0]&&80===t[1]&&78===t[2]&&71===t[3]&&13===t[4]&&10===t[5]&&26===t[6]&&10===t[7]}getSize(t){const e=new DataView(t.buffer,t.byteOffset);return E.decodeText(t.slice(12,16))===S.PNG_FRIED_CHUNK_NAME?[e.getUint32(32,!1),e.getUint32(36,!1)]:[e.getUint32(16,!1),e.getUint32(20,!1)]}getChannels(t){return 4}}S.PNG_FRIED_CHUNK_NAME=\"CgBI\";class I{static registerFormat(t,e){this.impls[t]=e}static getMimeType(t){for(const e in this.impls)if(this.impls[e].match(t))return e;return null}static getSize(t,e){return this.impls[e]?this.impls[e].getSize(t):null}static getChannels(t,e){return this.impls[e]?this.impls[e].getChannels(t):null}static getVRAMByteLength(t,e){if(!this.impls[e])return null;if(this.impls[e].getVRAMByteLength)return this.impls[e].getVRAMByteLength(t);let r=0;const s=this.getSize(t,e);if(!s)return null;for(;s[0]>1||s[1]>1;)r+=s[0]*s[1]*4,s[0]=Math.max(Math.floor(s[0]/2),1),s[1]=Math.max(Math.floor(s[1]/2),1);return r+=4,r}static mimeTypeToExtension(t){return\"image/jpeg\"===t?\"jpg\":t.split(\"/\").pop()}static extensionToMimeType(t){return\"jpg\"===t?\"image/jpeg\":t?`image/${t}`:\"\"}}function R(t,e){if(e>t.byteLength)throw new TypeError(\"Corrupt JPG, exceeded buffer limits\");if(255!==t.getUint8(e))throw new TypeError(\"Invalid JPG, marker table corrupted\");return t}I.impls={\"image/jpeg\":new class{match(t){return t.length>=3&&255===t[0]&&216===t[1]&&255===t[2]}getSize(t){let e,r,s=new DataView(t.buffer,t.byteOffset+4);for(;s.byteLength;){if(e=s.getUint16(0,!1),R(s,e),r=s.getUint8(e+1),192===r||193===r||194===r)return[s.getUint16(e+7,!1),s.getUint16(e+5,!1)];s=new DataView(t.buffer,s.byteOffset+e+2)}throw new TypeError(\"Invalid JPG, no size found\")}getChannels(t){return 3}},\"image/png\":new S};class N{static basename(t){const e=t.split(/[\\\\/]/).pop();return e.substring(0,e.lastIndexOf(\".\"))}static extension(t){if(t.startsWith(\"data:image/\")){const e=t.match(/data:(image\\/\\w+)/)[1];return I.mimeTypeToExtension(e)}return t.startsWith(\"data:model/gltf+json\")?\"gltf\":t.startsWith(\"data:model/gltf-binary\")?\"glb\":t.startsWith(\"data:application/\")?\"bin\":t.split(/[\\\\/]/).pop().split(/[.]/).pop()}}function O(t){return\"[object Object]\"===Object.prototype.toString.call(t)}function C(t){if(!1===O(t))return!1;const e=t.constructor;if(void 0===e)return!0;const r=e.prototype;return!1!==O(r)&&!1!==Object.prototype.hasOwnProperty.call(r,\"isPrototypeOf\")}var F;!function(t){t[t.SILENT=4]=\"SILENT\",t[t.ERROR=3]=\"ERROR\",t[t.WARN=2]=\"WARN\",t[t.INFO=1]=\"INFO\",t[t.DEBUG=0]=\"DEBUG\"}(F||(F={}));class U{constructor(t){this.verbosity=void 0,this.verbosity=t}debug(t){this.verbosity<=U.Verbosity.DEBUG&&console.debug(t)}info(t){this.verbosity<=U.Verbosity.INFO&&console.info(t)}warn(t){this.verbosity<=U.Verbosity.WARN&&console.warn(t)}error(t){this.verbosity<=U.Verbosity.ERROR&&console.error(t)}}function B(t,e,r){var s=e[0],n=e[1],i=e[2],o=e[3],a=e[4],u=e[5],c=e[6],h=e[7],f=e[8],l=e[9],d=e[10],g=e[11],p=e[12],m=e[13],w=e[14],y=e[15],v=r[0],T=r[1],b=r[2],x=r[3];return t[0]=v*s+T*a+b*f+x*p,t[1]=v*n+T*u+b*l+x*m,t[2]=v*i+T*c+b*d+x*w,t[3]=v*o+T*h+b*g+x*y,t[4]=(v=r[4])*s+(T=r[5])*a+(b=r[6])*f+(x=r[7])*p,t[5]=v*n+T*u+b*l+x*m,t[6]=v*i+T*c+b*d+x*w,t[7]=v*o+T*h+b*g+x*y,t[8]=(v=r[8])*s+(T=r[9])*a+(b=r[10])*f+(x=r[11])*p,t[9]=v*n+T*u+b*l+x*m,t[10]=v*i+T*c+b*d+x*w,t[11]=v*o+T*h+b*g+x*y,t[12]=(v=r[12])*s+(T=r[13])*a+(b=r[14])*f+(x=r[15])*p,t[13]=v*n+T*u+b*l+x*m,t[14]=v*i+T*c+b*d+x*w,t[15]=v*o+T*h+b*g+x*y,t}U.Verbosity=F,U.DEFAULT_INSTANCE=new U(U.Verbosity.INFO);class P{static identity(t){return t}static eq(t,e,r=1e-5){if(t.length!==e.length)return!1;for(let s=0;s<t.length;s++)if(Math.abs(t[s]-e[s])>r)return!1;return!0}static decodeNormalizedInt(t,e){switch(e){case 5126:return t;case 5123:return t/65535;case 5121:return t/255;case 5122:return Math.max(t/32767,-1);case 5120:return Math.max(t/127,-1);default:throw new Error(\"Invalid component type.\")}}static denormalize(t,e){return P.decodeNormalizedInt(t,e)}static encodeNormalizedInt(t,e){switch(e){case 5126:return t;case 5123:return Math.round(65535*t);case 5121:return Math.round(255*t);case 5122:return Math.round(32767*t);case 5120:return Math.round(127*t);default:throw new Error(\"Invalid component type.\")}}static normalize(t,e){return P.encodeNormalizedInt(t,e)}static decompose(t,e,r,s){let n=y([t[0],t[1],t[2]]);const i=y([t[4],t[5],t[6]]),o=y([t[8],t[9],t[10]]);var a,u,c,h,f,l,d,g,p,m,v,T,b,x,A,E,M;((u=(a=t)[0])*(d=a[5])-(c=a[1])*(l=a[4]))*((T=a[10])*(M=a[15])-(b=a[11])*(E=a[14]))-(u*(g=a[6])-(h=a[2])*l)*((v=a[9])*M-b*(A=a[13]))+(u*(p=a[7])-(f=a[3])*l)*(v*E-T*A)+(c*g-h*d)*((m=a[8])*M-b*(x=a[12]))-(c*p-f*d)*(m*E-T*x)+(h*p-f*g)*(m*A-v*x)<0&&(n=-n),e[0]=t[12],e[1]=t[13],e[2]=t[14];const S=t.slice(),I=1/n,R=1/i,N=1/o;S[0]*=I,S[1]*=I,S[2]*=I,S[4]*=R,S[5]*=R,S[6]*=R,S[8]*=N,S[9]*=N,S[10]*=N,function(t,e){var r=new w(3);!function(t,e){var r=e[4],s=e[5],n=e[6],i=e[8],o=e[9],a=e[10];t[0]=Math.hypot(e[0],e[1],e[2]),t[1]=Math.hypot(r,s,n),t[2]=Math.hypot(i,o,a)}(r,e);var s=1/r[0],n=1/r[1],i=1/r[2],o=e[0]*s,a=e[1]*n,u=e[2]*i,c=e[4]*s,h=e[5]*n,f=e[6]*i,l=e[8]*s,d=e[9]*n,g=e[10]*i,p=o+h+g,m=0;p>0?(m=2*Math.sqrt(p+1),t[3]=.25*m,t[0]=(f-d)/m,t[1]=(l-u)/m,t[2]=(a-c)/m):o>h&&o>g?(m=2*Math.sqrt(1+o-h-g),t[3]=(f-d)/m,t[0]=.25*m,t[1]=(a+c)/m,t[2]=(l+u)/m):h>g?(m=2*Math.sqrt(1+h-o-g),t[3]=(l-u)/m,t[0]=(a+c)/m,t[1]=.25*m,t[2]=(f+d)/m):(m=2*Math.sqrt(1+g-o-h),t[3]=(a-c)/m,t[0]=(l+u)/m,t[1]=(f+d)/m,t[2]=.25*m)}(r,S),s[0]=n,s[1]=i,s[2]=o}static compose(t,e,r,s){const n=s,i=e[0],o=e[1],a=e[2],u=e[3],c=i+i,h=o+o,f=a+a,l=i*c,d=i*h,g=i*f,p=o*h,m=o*f,w=a*f,y=u*c,v=u*h,T=u*f,b=r[0],x=r[1],A=r[2];return n[0]=(1-(p+w))*b,n[1]=(d+T)*b,n[2]=(g-v)*b,n[3]=0,n[4]=(d-T)*x,n[5]=(1-(l+w))*x,n[6]=(m+y)*x,n[7]=0,n[8]=(g+v)*A,n[9]=(m-y)*A,n[10]=(1-(l+p))*A,n[11]=0,n[12]=t[0],n[13]=t[1],n[14]=t[2],n[15]=1,n}}function L(t,e){if(!!t!=!!e)return!1;const r=t.getChild(),s=e.getChild();return r===s||r.equals(s)}function j(t,e){if(!!t!=!!e)return!1;if(t.length!==e.length)return!1;for(let r=0;r<t.length;r++){const s=t[r],n=e[r];if(s.getChild()!==n.getChild()&&!s.getChild().equals(n.getChild()))return!1}return!0}function D(t,e){if(!!t!=!!e)return!1;const r=Object.keys(t),s=Object.keys(e);if(r.length!==s.length)return!1;for(const r in t){const s=t[r],n=e[r];if(!!s!=!!n)return!1;const i=s.getChild(),o=n.getChild();if(i!==o&&!i.equals(o))return!1}return!0}function _(t,e){if(t===e)return!0;if(!!t!=!!e||!t||!e)return!1;if(t.length!==e.length)return!1;for(let r=0;r<t.length;r++)if(t[r]!==e[r])return!1;return!0}function k(t,e){if(t===e)return!0;if(!!t!=!!e)return!1;if(!C(t)||!C(e))return t===e;const r=t,s=e;let n,i=0,o=0;for(n in r)i++;for(n in s)o++;if(i!==o)return!1;for(n in r){const t=r[n],e=s[n];if(z(t)&&z(e)){if(!_(t,e))return!1}else if(C(t)&&C(e)){if(!k(t,e))return!1}else if(t!==e)return!1}return!0}function z(t){return Array.isArray(t)||ArrayBuffer.isView(t)}const G=\"23456789abdegjkmnpqrvwxyzABDEGJKMNPQRVWXYZ\",J=new Set,$=function(){let t=\"\";for(let e=0;e<6;e++)t+=G.charAt(Math.floor(Math.random()*G.length));return t},V=function(){for(let t=0;t<999;t++){const t=$();if(!J.has(t))return J.add(t),t}return\"\"};class W{static dirname(t){const e=t.lastIndexOf(\"/\");return-1===e?\"./\":t.substring(0,e+1)}static basename(t){return N.basename(new URL(t,\"https://null.example\").pathname)}static extension(t){return N.extension(new URL(t,\"https://null.example\").pathname)}static resolve(t,e){if(!this.isRelativePath(e))return e;const r=t.split(\"/\"),s=e.split(\"/\");r.pop();for(let t=0;t<s.length;t++)\".\"!==s[t]&&(\"..\"===s[t]?r.pop():r.push(s[t]));return r.join(\"/\")}static isAbsoluteURL(t){return this.PROTOCOL_REGEXP.test(t)}static isRelativePath(t){return!/^(?:[a-zA-Z]+:)?\\//.test(t)}}W.DEFAULT_INIT={},W.PROTOCOL_REGEXP=/^[a-zA-Z]+:\\/\\//;const q=t=>t,H=new Set;class Y extends t{constructor(t,r=\"\"){super(t),this[e].name=r,this.init(),this.dispatchEvent({type:\"create\"})}getGraph(){return this.graph}getDefaults(){return Object.assign(super.getDefaults(),{name:\"\",extras:{}})}set(t,e){return Array.isArray(e)&&(e=e.slice()),super.set(t,e)}getName(){return this.get(\"name\")}setName(t){return this.set(\"name\",t)}getExtras(){return this.get(\"extras\")}setExtras(t){return this.set(\"extras\",t)}clone(){return new(0,this.constructor)(this.graph).copy(this,q)}copy(t,o=q){for(const t in this[e]){const o=this[e][t];if(o instanceof r)this[s].has(t)||o.dispose();else if(n(o))for(const t of o)t.dispose();else if(i(o))for(const t in o)o[t].dispose()}for(const a in t[e]){const u=this[e][a],c=t[e][a];if(c instanceof r)this[s].has(a)?u.getChild().copy(o(c.getChild()),o):this.setRef(a,o(c.getChild()),c.getAttributes());else if(n(c))for(const t of c)this.addRef(a,o(t.getChild()),t.getAttributes());else if(i(c))for(const t in c){const e=c[t];this.setRefMap(a,t,o(e.getChild()),e.getAttributes())}else this[e][a]=C(c)?JSON.parse(JSON.stringify(c)):Array.isArray(c)||c instanceof ArrayBuffer||ArrayBuffer.isView(c)?c.slice():c}return this}equals(t,r=H){if(this===t)return!0;if(this.propertyType!==t.propertyType)return!1;for(const s in this[e]){if(r.has(s))continue;const a=this[e][s],u=t[e][s];if(o(a)||o(u)){if(!L(a,u))return!1}else if(n(a)||n(u)){if(!j(a,u))return!1}else if(i(a)||i(u)){if(!D(a,u))return!1}else if(C(a)||C(u)){if(!k(a,u))return!1}else if(z(a)||z(u)){if(!_(a,u))return!1}else if(a!==u)return!1}return!0}detach(){return this.graph.disconnectParents(this,t=>\"Root\"!==t.propertyType),this}listParents(){return this.graph.listParents(this)}}class Z extends Y{getDefaults(){return Object.assign(super.getDefaults(),{extensions:{}})}getExtension(t){return this.getRefMap(\"extensions\",t)}setExtension(t,e){return e&&e.t(this),this.setRefMap(\"extensions\",t,e)}listExtensions(){return this.listRefMapValues(\"extensions\")}}class K extends Z{constructor(...t){super(...t),this.i=P.identity,this.o=P.identity}init(){this.propertyType=h.ACCESSOR}getDefaults(){return Object.assign(super.getDefaults(),{array:null,type:K.Type.SCALAR,componentType:K.ComponentType.FLOAT,normalized:!1,sparse:!1,buffer:null})}copy(t,e=q){return super.copy(t,e),this.i=t.i,this.o=t.o,this}static getElementSize(t){switch(t){case K.Type.SCALAR:return 1;case K.Type.VEC2:return 2;case K.Type.VEC3:return 3;case K.Type.VEC4:case K.Type.MAT2:return 4;case K.Type.MAT3:return 9;case K.Type.MAT4:return 16;default:throw new Error(\"Unexpected type: \"+t)}}static getComponentSize(t){switch(t){case K.ComponentType.BYTE:case K.ComponentType.UNSIGNED_BYTE:return 1;case K.ComponentType.SHORT:case K.ComponentType.UNSIGNED_SHORT:return 2;case K.ComponentType.UNSIGNED_INT:case K.ComponentType.FLOAT:return 4;default:throw new Error(\"Unexpected component type: \"+t)}}getMinNormalized(t){const e=this.getElementSize();this.getMin(t);for(let r=0;r<e;r++)t[r]=this.o(t[r]);return t}getMin(t){const e=this.get(\"array\"),r=this.getCount(),s=this.getElementSize();for(let e=0;e<s;e++)t[e]=Infinity;for(let n=0;n<r*s;n+=s)for(let r=0;r<s;r++){const s=e[n+r];Number.isFinite(s)&&(t[r]=Math.min(t[r],s))}return t}getMaxNormalized(t){const e=this.getElementSize();this.getMax(t);for(let r=0;r<e;r++)t[r]=this.o(t[r]);return t}getMax(t){const e=this.get(\"array\"),r=this.getCount(),s=this.getElementSize();for(let e=0;e<s;e++)t[e]=-Infinity;for(let n=0;n<r*s;n+=s)for(let r=0;r<s;r++){const s=e[n+r];Number.isFinite(s)&&(t[r]=Math.max(t[r],s))}return t}getCount(){const t=this.get(\"array\");return t?t.length/this.getElementSize():0}getType(){return this.get(\"type\")}setType(t){return this.set(\"type\",t)}getElementSize(){return K.getElementSize(this.get(\"type\"))}getComponentSize(){return this.get(\"array\").BYTES_PER_ELEMENT}getComponentType(){return this.get(\"componentType\")}getNormalized(){return this.get(\"normalized\")}setNormalized(t){return this.set(\"normalized\",t),t?(this.o=t=>P.decodeNormalizedInt(t,this.get(\"componentType\")),this.i=t=>P.encodeNormalizedInt(t,this.get(\"componentType\"))):(this.o=P.identity,this.i=P.identity),this}getScalar(t){const e=this.getElementSize();return this.o(this.get(\"array\")[t*e])}setScalar(t,e){return this.get(\"array\")[t*this.getElementSize()]=this.i(e),this}getElement(t,e){const r=this.getElementSize(),s=this.get(\"array\");for(let n=0;n<r;n++)e[n]=this.o(s[t*r+n]);return e}setElement(t,e){const r=this.getElementSize(),s=this.get(\"array\");for(let n=0;n<r;n++)s[t*r+n]=this.i(e[n]);return this}getSparse(){return this.get(\"sparse\")}setSparse(t){return this.set(\"sparse\",t)}getBuffer(){return this.getRef(\"buffer\")}setBuffer(t){return this.setRef(\"buffer\",t)}getArray(){return this.get(\"array\")}setArray(t){return this.set(\"componentType\",t?function(t){switch(t.constructor){case Float32Array:return K.ComponentType.FLOAT;case Uint32Array:return K.ComponentType.UNSIGNED_INT;case Uint16Array:return K.ComponentType.UNSIGNED_SHORT;case Uint8Array:return K.ComponentType.UNSIGNED_BYTE;case Int16Array:return K.ComponentType.SHORT;case Int8Array:return K.ComponentType.BYTE;default:throw new Error(\"Unknown accessor componentType.\")}}(t):K.ComponentType.FLOAT),this.set(\"array\",t),this}getByteLength(){const t=this.get(\"array\");return t?t.byteLength:0}}K.Type={SCALAR:\"SCALAR\",VEC2:\"VEC2\",VEC3:\"VEC3\",VEC4:\"VEC4\",MAT2:\"MAT2\",MAT3:\"MAT3\",MAT4:\"MAT4\"},K.ComponentType={BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,UNSIGNED_INT:5125,FLOAT:5126};class Q extends Z{init(){this.propertyType=h.ANIMATION}getDefaults(){return Object.assign(super.getDefaults(),{channels:[],samplers:[]})}addChannel(t){return this.addRef(\"channels\",t)}removeChannel(t){return this.removeRef(\"channels\",t)}listChannels(){return this.listRefs(\"channels\")}addSampler(t){return this.addRef(\"samplers\",t)}removeSampler(t){return this.removeRef(\"samplers\",t)}listSamplers(){return this.listRefs(\"samplers\")}}class X extends Z{init(){this.propertyType=h.ANIMATION_CHANNEL}getDefaults(){return Object.assign(super.getDefaults(),{targetPath:null,targetNode:null,sampler:null})}getTargetPath(){return this.get(\"targetPath\")}setTargetPath(t){return this.set(\"targetPath\",t)}getTargetNode(){return this.getRef(\"targetNode\")}setTargetNode(t){return this.setRef(\"targetNode\",t)}getSampler(){return this.getRef(\"sampler\")}setSampler(t){return this.setRef(\"sampler\",t)}}X.TargetPath={TRANSLATION:\"translation\",ROTATION:\"rotation\",SCALE:\"scale\",WEIGHTS:\"weights\"};class tt extends Z{init(){this.propertyType=h.ANIMATION_SAMPLER}getDefaultAttributes(){return Object.assign(super.getDefaults(),{interpolation:tt.Interpolation.LINEAR,input:null,output:null})}getInterpolation(){return this.get(\"interpolation\")}setInterpolation(t){return this.set(\"interpolation\",t)}getInput(){return this.getRef(\"input\")}setInput(t){return this.setRef(\"input\",t,{usage:l.OTHER})}getOutput(){return this.getRef(\"output\")}setOutput(t){return this.setRef(\"output\",t,{usage:l.OTHER})}}tt.Interpolation={LINEAR:\"LINEAR\",STEP:\"STEP\",CUBICSPLINE:\"CUBICSPLINE\"};class et extends Z{init(){this.propertyType=h.BUFFER}getDefaults(){return Object.assign(super.getDefaults(),{uri:\"\"})}getURI(){return this.get(\"uri\")}setURI(t){return this.set(\"uri\",t)}}class rt extends Z{init(){this.propertyType=h.CAMERA}getDefaults(){return Object.assign(super.getDefaults(),{type:rt.Type.PERSPECTIVE,znear:.1,zfar:100,aspectRatio:null,yfov:2*Math.PI*50/360,xmag:1,ymag:1})}getType(){return this.get(\"type\")}setType(t){return this.set(\"type\",t)}getZNear(){return this.get(\"znear\")}setZNear(t){return this.set(\"znear\",t)}getZFar(){return this.get(\"zfar\")}setZFar(t){return this.set(\"zfar\",t)}getAspectRatio(){return this.get(\"aspectRatio\")}setAspectRatio(t){return this.set(\"aspectRatio\",t)}getYFov(){return this.get(\"yfov\")}setYFov(t){return this.set(\"yfov\",t)}getXMag(){return this.get(\"xmag\")}setXMag(t){return this.set(\"xmag\",t)}getYMag(){return this.get(\"ymag\")}setYMag(t){return this.set(\"ymag\",t)}}rt.Type={PERSPECTIVE:\"perspective\",ORTHOGRAPHIC:\"orthographic\"};class st extends Y{t(t){if(!this.parentTypes.includes(t.propertyType))throw new Error(`Parent \"${t.propertyType}\" invalid for child \"${this.propertyType}\".`)}}st.EXTENSION_NAME=void 0;class nt extends Z{init(){this.propertyType=h.TEXTURE_INFO}getDefaults(){return Object.assign(super.getDefaults(),{texCoord:0,magFilter:null,minFilter:null,wrapS:nt.WrapMode.REPEAT,wrapT:nt.WrapMode.REPEAT})}getTexCoord(){return this.get(\"texCoord\")}setTexCoord(t){return this.set(\"texCoord\",t)}getMagFilter(){return this.get(\"magFilter\")}setMagFilter(t){return this.set(\"magFilter\",t)}getMinFilter(){return this.get(\"minFilter\")}setMinFilter(t){return this.set(\"minFilter\",t)}getWrapS(){return this.get(\"wrapS\")}setWrapS(t){return this.set(\"wrapS\",t)}getWrapT(){return this.get(\"wrapT\")}setWrapT(t){return this.set(\"wrapT\",t)}}nt.WrapMode={CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,REPEAT:10497},nt.MagFilter={NEAREST:9728,LINEAR:9729},nt.MinFilter={NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987};const{R:it,G:ot,B:at,A:ut}=d;class ct extends Z{init(){this.propertyType=h.MATERIAL}getDefaults(){return Object.assign(super.getDefaults(),{alphaMode:ct.AlphaMode.OPAQUE,alphaCutoff:.5,doubleSided:!1,baseColorFactor:[1,1,1,1],baseColorTexture:null,baseColorTextureInfo:new nt(this.graph,\"baseColorTextureInfo\"),emissiveFactor:[0,0,0],emissiveTexture:null,emissiveTextureInfo:new nt(this.graph,\"emissiveTextureInfo\"),normalScale:1,normalTexture:null,normalTextureInfo:new nt(this.graph,\"normalTextureInfo\"),occlusionStrength:1,occlusionTexture:null,occlusionTextureInfo:new nt(this.graph,\"occlusionTextureInfo\"),roughnessFactor:1,metallicFactor:1,metallicRoughnessTexture:null,metallicRoughnessTextureInfo:new nt(this.graph,\"metallicRoughnessTextureInfo\")})}getDoubleSided(){return this.get(\"doubleSided\")}setDoubleSided(t){return this.set(\"doubleSided\",t)}getAlpha(){return this.get(\"baseColorFactor\")[3]}setAlpha(t){const e=this.get(\"baseColorFactor\").slice();return e[3]=t,this.set(\"baseColorFactor\",e)}getAlphaMode(){return this.get(\"alphaMode\")}setAlphaMode(t){return this.set(\"alphaMode\",t)}getAlphaCutoff(){return this.get(\"alphaCutoff\")}setAlphaCutoff(t){return this.set(\"alphaCutoff\",t)}getBaseColorFactor(){return this.get(\"baseColorFactor\")}setBaseColorFactor(t){return this.set(\"baseColorFactor\",t)}getBaseColorHex(){return M.factorToHex(this.get(\"baseColorFactor\"))}setBaseColorHex(t){const e=this.get(\"baseColorFactor\").slice();return this.set(\"baseColorFactor\",M.hexToFactor(t,e))}getBaseColorTexture(){return this.getRef(\"baseColorTexture\")}getBaseColorTextureInfo(){return this.getRef(\"baseColorTexture\")?this.getRef(\"baseColorTextureInfo\"):null}setBaseColorTexture(t){return this.setRef(\"baseColorTexture\",t,{channels:it|ot|at|ut})}getEmissiveFactor(){return this.get(\"emissiveFactor\")}setEmissiveFactor(t){return this.set(\"emissiveFactor\",t)}getEmissiveHex(){return M.factorToHex(this.get(\"emissiveFactor\"))}setEmissiveHex(t){const e=this.get(\"emissiveFactor\").slice();return this.set(\"emissiveFactor\",M.hexToFactor(t,e))}getEmissiveTexture(){return this.getRef(\"emissiveTexture\")}getEmissiveTextureInfo(){return this.getRef(\"emissiveTexture\")?this.getRef(\"emissiveTextureInfo\"):null}setEmissiveTexture(t){return this.setRef(\"emissiveTexture\",t,{channels:it|ot|at})}getNormalScale(){return this.get(\"normalScale\")}setNormalScale(t){return this.set(\"normalScale\",t)}getNormalTexture(){return this.getRef(\"normalTexture\")}getNormalTextureInfo(){return this.getRef(\"normalTexture\")?this.getRef(\"normalTextureInfo\"):null}setNormalTexture(t){return this.setRef(\"normalTexture\",t,{channels:it|ot|at})}getOcclusionStrength(){return this.get(\"occlusionStrength\")}setOcclusionStrength(t){return this.set(\"occlusionStrength\",t)}getOcclusionTexture(){return this.getRef(\"occlusionTexture\")}getOcclusionTextureInfo(){return this.getRef(\"occlusionTexture\")?this.getRef(\"occlusionTextureInfo\"):null}setOcclusionTexture(t){return this.setRef(\"occlusionTexture\",t,{channels:it})}getRoughnessFactor(){return this.get(\"roughnessFactor\")}setRoughnessFactor(t){return this.set(\"roughnessFactor\",t)}getMetallicFactor(){return this.get(\"metallicFactor\")}setMetallicFactor(t){return this.set(\"metallicFactor\",t)}getMetallicRoughnessTexture(){return this.getRef(\"metallicRoughnessTexture\")}getMetallicRoughnessTextureInfo(){return this.getRef(\"metallicRoughnessTexture\")?this.getRef(\"metallicRoughnessTextureInfo\"):null}setMetallicRoughnessTexture(t){return this.setRef(\"metallicRoughnessTexture\",t,{channels:ot|at})}}ct.AlphaMode={OPAQUE:\"OPAQUE\",MASK:\"MASK\",BLEND:\"BLEND\"};class ht extends Z{init(){this.propertyType=h.MESH}getDefaults(){return Object.assign(super.getDefaults(),{weights:[],primitives:[]})}addPrimitive(t){return this.addRef(\"primitives\",t)}removePrimitive(t){return this.removeRef(\"primitives\",t)}listPrimitives(){return this.listRefs(\"primitives\")}getWeights(){return this.get(\"weights\")}setWeights(t){return this.set(\"weights\",t)}}class ft extends Z{constructor(...t){super(...t),this.u=null}init(){this.propertyType=h.NODE}getDefaults(){return Object.assign(super.getDefaults(),{translation:[0,0,0],rotation:[0,0,0,1],scale:[1,1,1],weights:[],camera:null,mesh:null,skin:null,children:[]})}copy(t,e=q){if(e===q)throw new Error(\"Node cannot be copied.\");return super.copy(t,e)}getTranslation(){return this.get(\"translation\")}getRotation(){return this.get(\"rotation\")}getScale(){return this.get(\"scale\")}setTranslation(t){return this.set(\"translation\",t)}setRotation(t){return this.set(\"rotation\",t)}setScale(t){return this.set(\"scale\",t)}getMatrix(){return P.compose(this.get(\"translation\"),this.get(\"rotation\"),this.get(\"scale\"),[])}setMatrix(t){const e=this.get(\"translation\").slice(),r=this.get(\"rotation\").slice(),s=this.get(\"scale\").slice();return P.decompose(t,e,r,s),this.set(\"translation\",e).set(\"rotation\",r).set(\"scale\",s)}getWorldTranslation(){const t=[0,0,0];return P.decompose(this.getWorldMatrix(),t,[0,0,0,1],[1,1,1]),t}getWorldRotation(){const t=[0,0,0,1];return P.decompose(this.getWorldMatrix(),[0,0,0],t,[1,1,1]),t}getWorldScale(){const t=[1,1,1];return P.decompose(this.getWorldMatrix(),[0,0,0],[0,0,0,1],t),t}getWorldMatrix(){const t=[];for(let e=this;null!=e;e=e.u)t.push(e);let e;const r=t.pop().getMatrix();for(;e=t.pop();)B(r,r,e.getMatrix());return r}addChild(t){t.u&&t.u.removeChild(t),this.addRef(\"children\",t),t.u=this;const r=this[e].children;return r[r.length-1].addEventListener(\"dispose\",()=>t.u=null),this}removeChild(t){return this.removeRef(\"children\",t)}listChildren(){return this.listRefs(\"children\")}getParent(){return this.u?this.u:this.listParents().find(t=>t.propertyType===h.SCENE)||null}getParentNode(){return this.u}getMesh(){return this.getRef(\"mesh\")}setMesh(t){return this.setRef(\"mesh\",t)}getCamera(){return this.getRef(\"camera\")}setCamera(t){return this.setRef(\"camera\",t)}getSkin(){return this.getRef(\"skin\")}setSkin(t){return this.setRef(\"skin\",t)}getWeights(){return this.get(\"weights\")}setWeights(t){return this.set(\"weights\",t)}traverse(t){t(this);for(const e of this.listChildren())e.traverse(t);return this}}class lt extends Z{init(){this.propertyType=h.PRIMITIVE}getDefaults(){return Object.assign(super.getDefaults(),{mode:lt.Mode.TRIANGLES,material:null,indices:null,attributes:{},targets:[]})}getIndices(){return this.getRef(\"indices\")}setIndices(t){return this.setRef(\"indices\",t,{usage:l.ELEMENT_ARRAY_BUFFER})}getAttribute(t){return this.getRefMap(\"attributes\",t)}setAttribute(t,e){return this.setRefMap(\"attributes\",t,e,{usage:l.ARRAY_BUFFER})}listAttributes(){return this.listRefMapValues(\"attributes\")}listSemantics(){return this.listRefMapKeys(\"attributes\")}getMaterial(){return this.getRef(\"material\")}setMaterial(t){return this.setRef(\"material\",t)}getMode(){return this.get(\"mode\")}setMode(t){return this.set(\"mode\",t)}listTargets(){return this.listRefs(\"targets\")}addTarget(t){return this.addRef(\"targets\",t)}removeTarget(t){return this.removeRef(\"targets\",t)}}lt.Mode={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6};class dt extends Y{init(){this.propertyType=h.PRIMITIVE_TARGET}getDefaults(){return Object.assign(super.getDefaults(),{attributes:{}})}getAttribute(t){return this.getRefMap(\"attributes\",t)}setAttribute(t,e){return this.setRefMap(\"attributes\",t,e,{usage:l.ARRAY_BUFFER})}listAttributes(){return this.listRefMapValues(\"attributes\")}listSemantics(){return this.listRefMapKeys(\"attributes\")}}function gt(){return(gt=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(t[s]=r[s])}return t}).apply(this,arguments)}class pt extends Z{init(){this.propertyType=h.SCENE}getDefaults(){return Object.assign(super.getDefaults(),{children:[]})}copy(t,e=q){if(e===q)throw new Error(\"Scene cannot be copied.\");return super.copy(t,e)}addChild(t){return this.addRef(\"children\",t)}removeChild(t){return this.removeRef(\"children\",t)}listChildren(){return this.listRefs(\"children\")}traverse(t){for(const e of this.listChildren())e.traverse(t);return this}}class mt extends Z{init(){this.propertyType=h.SKIN}getDefaults(){return Object.assign(super.getDefaults(),{skeleton:null,inverseBindMatrices:null,joints:[]})}getSkeleton(){return this.getRef(\"skeleton\")}setSkeleton(t){return this.setRef(\"skeleton\",t)}getInverseBindMatrices(){return this.getRef(\"inverseBindMatrices\")}setInverseBindMatrices(t){return this.setRef(\"inverseBindMatrices\",t,{usage:l.INVERSE_BIND_MATRICES})}addJoint(t){return this.addRef(\"joints\",t)}removeJoint(t){return this.removeRef(\"joints\",t)}listJoints(){return this.listRefs(\"joints\")}}class wt extends Z{init(){this.propertyType=h.TEXTURE}getDefaults(){return Object.assign(super.getDefaults(),{image:null,mimeType:\"\",uri:\"\"})}getMimeType(){return this.get(\"mimeType\")||I.extensionToMimeType(N.extension(this.get(\"uri\")))}setMimeType(t){return this.set(\"mimeType\",t)}getURI(){return this.get(\"uri\")}setURI(t){this.set(\"uri\",t);const e=I.extensionToMimeType(N.extension(t));return e&&this.set(\"mimeType\",e),this}getImage(){return this.get(\"image\")}setImage(t){return this.set(\"image\",E.assertView(t))}getSize(){const t=this.get(\"image\");return t?I.getSize(t,this.getMimeType()):null}}class yt extends Z{init(){this.propertyType=h.ROOT}getDefaults(){return Object.assign(super.getDefaults(),{asset:{generator:\"glTF-Transform v3.2.1\",version:\"2.0\"},defaultScene:null,accessors:[],animations:[],buffers:[],cameras:[],materials:[],meshes:[],nodes:[],scenes:[],skins:[],textures:[]})}constructor(t){super(t),this.h=new Set,t.addEventListener(\"node:create\",t=>{this.l(t.target)})}clone(){throw new Error(\"Root cannot be cloned.\")}copy(t,e=q){if(e===q)throw new Error(\"Root cannot be copied.\");this.set(\"asset\",gt({},t.get(\"asset\"))),this.setName(t.getName()),this.setExtras(gt({},t.getExtras())),this.setDefaultScene(t.getDefaultScene()?e(t.getDefaultScene()):null);for(const r of t.listRefMapKeys(\"extensions\")){const s=t.getExtension(r);this.setExtension(r,e(s))}return this}l(t){return t instanceof pt?this.addRef(\"scenes\",t):t instanceof ft?this.addRef(\"nodes\",t):t instanceof rt?this.addRef(\"cameras\",t):t instanceof mt?this.addRef(\"skins\",t):t instanceof ht?this.addRef(\"meshes\",t):t instanceof ct?this.addRef(\"materials\",t):t instanceof wt?this.addRef(\"textures\",t):t instanceof Q?this.addRef(\"animations\",t):t instanceof K?this.addRef(\"accessors\",t):t instanceof et&&this.addRef(\"buffers\",t),this}getAsset(){return this.get(\"asset\")}listExtensionsUsed(){return Array.from(this.h)}listExtensionsRequired(){return this.listExtensionsUsed().filter(t=>t.isRequired())}g(t){return this.h.add(t),this}p(t){return this.h.delete(t),this}listScenes(){return this.listRefs(\"scenes\")}setDefaultScene(t){return this.setRef(\"defaultScene\",t)}getDefaultScene(){return this.getRef(\"defaultScene\")}listNodes(){return this.listRefs(\"nodes\")}listCameras(){return this.listRefs(\"cameras\")}listSkins(){return this.listRefs(\"skins\")}listMeshes(){return this.listRefs(\"meshes\")}listMaterials(){return this.listRefs(\"materials\")}listTextures(){return this.listRefs(\"textures\")}listAnimations(){return this.listRefs(\"animations\")}listAccessors(){return this.listRefs(\"accessors\")}listBuffers(){return this.listRefs(\"buffers\")}}class vt{static fromGraph(t){return vt.m.get(t)||null}constructor(){this.v=new a,this.T=new yt(this.v),this.M=U.DEFAULT_INSTANCE,vt.m.set(this.v,this)}getRoot(){return this.T}getGraph(){return this.v}getLogger(){return this.M}setLogger(t){return this.M=t,this}clone(){return(new vt).setLogger(this.M).merge(this)}merge(t){for(const e of t.getRoot().listExtensionsUsed()){const t=this.createExtension(e.constructor);e.isRequired()&&t.setRequired(!0)}const e=new Set,r=new Map;e.add(t.T),r.set(t.T,this.T);for(const s of t.v.listEdges())for(const t of[s.getParent(),s.getChild()]){if(e.has(t))continue;let s;s=t.propertyType===h.TEXTURE_INFO?t:new(0,t.constructor)(this.v),r.set(t,s),e.add(t)}const s=t=>{const e=r.get(t);if(!e)throw new Error(\"Could resolve property.\");return e};for(const t of e){const e=r.get(t);if(!e)throw new Error(\"Could resolve property.\");e.propertyType!==h.TEXTURE_INFO&&e.copy(t,s)}return this}async transform(...t){const e=t.map(t=>t.name);for(const r of t)await r(this,{stack:e});return this}createExtension(t){const e=t.EXTENSION_NAME;return this.getRoot().listExtensionsUsed().find(t=>t.extensionName===e)||new t(this)}createScene(t=\"\"){return new pt(this.v,t)}createNode(t=\"\"){return new ft(this.v,t)}createCamera(t=\"\"){return new rt(this.v,t)}createSkin(t=\"\"){return new mt(this.v,t)}createMesh(t=\"\"){return new ht(this.v,t)}createPrimitive(){return new lt(this.v)}createPrimitiveTarget(t=\"\"){return new dt(this.v,t)}createMaterial(t=\"\"){return new ct(this.v,t)}createTexture(t=\"\"){return new wt(this.v,t)}createAnimation(t=\"\"){return new Q(this.v,t)}createAnimationChannel(t=\"\"){return new X(this.v,t)}createAnimationSampler(t=\"\"){return new tt(this.v,t)}createAccessor(t=\"\",e=null){return e||(e=this.getRoot().listBuffers()[0]),new K(this.v,t).setBuffer(e)}createBuffer(t=\"\"){return new et(this.v,t)}}vt.m=new WeakMap;class Tt{constructor(t){this.extensionName=\"\",this.prereadTypes=[],this.prewriteTypes=[],this.readDependencies=[],this.writeDependencies=[],this.document=void 0,this.required=!1,this.properties=new Set,this.S=void 0,this.document=t,t.getRoot().g(this),this.S=t=>{const e=t,r=e.target;r instanceof st&&r.extensionName===this.extensionName&&(\"node:create\"===e.type&&this.I(r),\"node:dispose\"===e.type&&this.N(r))};const e=t.getGraph();e.addEventListener(\"node:create\",this.S),e.addEventListener(\"node:dispose\",this.S)}dispose(){this.document.getRoot().p(this);const t=this.document.getGraph();t.removeEventListener(\"node:create\",this.S),t.removeEventListener(\"node:dispose\",this.S);for(const t of this.properties)t.dispose()}static register(){}isRequired(){return this.required}setRequired(t){return this.required=t,this}listProperties(){return Array.from(this.properties)}I(t){return this.properties.add(t),this}N(t){return this.properties.delete(t),this}install(t,e){return this}preread(t,e){return this}prewrite(t,e){return this}}Tt.EXTENSION_NAME=void 0;class bt{constructor(t){this.jsonDoc=void 0,this.buffers=[],this.bufferViews=[],this.bufferViewBuffers=[],this.accessors=[],this.textures=[],this.textureInfos=new Map,this.materials=[],this.meshes=[],this.cameras=[],this.nodes=[],this.skins=[],this.animations=[],this.scenes=[],this.jsonDoc=t}setTextureInfo(t,e){this.textureInfos.set(t,e),void 0!==e.texCoord&&t.setTexCoord(e.texCoord),void 0!==e.extras&&t.setExtras(e.extras);const r=this.jsonDoc.json.textures[e.index];if(void 0===r.sampler)return;const s=this.jsonDoc.json.samplers[r.sampler];void 0!==s.magFilter&&t.setMagFilter(s.magFilter),void 0!==s.minFilter&&t.setMinFilter(s.minFilter),void 0!==s.wrapS&&t.setWrapS(s.wrapS),void 0!==s.wrapT&&t.setWrapT(s.wrapT)}}const xt={logger:U.DEFAULT_INSTANCE,extensions:[],dependencies:{}};function At(t,e){const r=e.bufferViews[t.bufferView],s=e.jsonDoc.json.bufferViews[t.bufferView],n=p[t.componentType],i=K.getElementSize(t.type),o=n.BYTES_PER_ELEMENT;if(void 0!==s.byteStride&&s.byteStride!==i*o)return function(t,e){const r=e.bufferViews[t.bufferView],s=e.jsonDoc.json.bufferViews[t.bufferView],n=p[t.componentType],i=K.getElementSize(t.type),o=n.BYTES_PER_ELEMENT,a=t.byteOffset||0,u=new n(t.count*i),c=new DataView(r.buffer,r.byteOffset,r.byteLength),h=s.byteStride;for(let e=0;e<t.count;e++)for(let r=0;r<i;r++){const s=a+e*h+r*o;let n;switch(t.componentType){case K.ComponentType.FLOAT:n=c.getFloat32(s,!0);break;case K.ComponentType.UNSIGNED_INT:n=c.getUint32(s,!0);break;case K.ComponentType.UNSIGNED_SHORT:n=c.getUint16(s,!0);break;case K.ComponentType.UNSIGNED_BYTE:n=c.getUint8(s);break;case K.ComponentType.SHORT:n=c.getInt16(s,!0);break;case K.ComponentType.BYTE:n=c.getInt8(s);break;default:throw new Error(`Unexpected componentType \"${t.componentType}\".`)}u[e*i+r]=n}return u}(t,e);const a=r.byteOffset+(t.byteOffset||0);return new n(r.buffer.slice(a,a+t.count*i*o))}var Et;!function(t){t[t.ARRAY_BUFFER=34962]=\"ARRAY_BUFFER\",t[t.ELEMENT_ARRAY_BUFFER=34963]=\"ELEMENT_ARRAY_BUFFER\"}(Et||(Et={}));class Mt{constructor(t,e,r){this.O=void 0,this.jsonDoc=void 0,this.options=void 0,this.accessorIndexMap=new Map,this.animationIndexMap=new Map,this.bufferIndexMap=new Map,this.cameraIndexMap=new Map,this.skinIndexMap=new Map,this.materialIndexMap=new Map,this.meshIndexMap=new Map,this.nodeIndexMap=new Map,this.imageIndexMap=new Map,this.textureDefIndexMap=new Map,this.textureInfoDefMap=new Map,this.samplerDefIndexMap=new Map,this.sceneIndexMap=new Map,this.imageBufferViews=[],this.otherBufferViews=new Map,this.otherBufferViewsIndexMap=new Map,this.extensionData={},this.bufferURIGenerator=void 0,this.imageURIGenerator=void 0,this.logger=void 0,this.C=new Map,this.accessorUsageGroupedByParent=new Set([\"ARRAY_BUFFER\"]),this.accessorParents=new Map,this.O=t,this.jsonDoc=e,this.options=r;const s=t.getRoot(),n=s.listBuffers().length,i=s.listTextures().length;this.bufferURIGenerator=new St(n>1,()=>r.basename||\"buffer\"),this.imageURIGenerator=new St(i>1,e=>function(t,e){const r=t.getGraph().listParentEdges(e).find(e=>e.getParent()!==t.getRoot());return r?r.getName().replace(/texture$/i,\"\"):\"\"}(t,e)||r.basename||\"texture\"),this.logger=t.getLogger()}createTextureInfoDef(t,e){const r={magFilter:e.getMagFilter()||void 0,minFilter:e.getMinFilter()||void 0,wrapS:e.getWrapS(),wrapT:e.getWrapT()},s=JSON.stringify(r);this.samplerDefIndexMap.has(s)||(this.samplerDefIndexMap.set(s,this.jsonDoc.json.samplers.length),this.jsonDoc.json.samplers.push(r));const n={source:this.imageIndexMap.get(t),sampler:this.samplerDefIndexMap.get(s)},i=JSON.stringify(n);this.textureDefIndexMap.has(i)||(this.textureDefIndexMap.set(i,this.jsonDoc.json.textures.length),this.jsonDoc.json.textures.push(n));const o={index:this.textureDefIndexMap.get(i)};return 0!==e.getTexCoord()&&(o.texCoord=e.getTexCoord()),Object.keys(e.getExtras()).length>0&&(o.extras=e.getExtras()),this.textureInfoDefMap.set(e,o),o}createPropertyDef(t){const e={};return t.getName()&&(e.name=t.getName()),Object.keys(t.getExtras()).length>0&&(e.extras=t.getExtras()),e}createAccessorDef(t){const e=this.createPropertyDef(t);return e.type=t.getType(),e.componentType=t.getComponentType(),e.count=t.getCount(),this.O.getGraph().listParentEdges(t).some(t=>\"attributes\"===t.getName()&&\"POSITION\"===t.getAttributes().key||\"input\"===t.getName())&&(e.max=t.getMax([]).map(Math.fround),e.min=t.getMin([]).map(Math.fround)),t.getNormalized()&&(e.normalized=t.getNormalized()),e}createImageData(t,e,r){if(this.options.format===g.GLB)this.imageBufferViews.push(e),t.bufferView=this.jsonDoc.json.bufferViews.length,this.jsonDoc.json.bufferViews.push({buffer:0,byteOffset:-1,byteLength:e.byteLength});else{const s=I.mimeTypeToExtension(r.getMimeType());t.uri=this.imageURIGenerator.createURI(r,s),this.jsonDoc.resources[t.uri]=e}}getAccessorUsage(t){const e=this.C.get(t);if(e)return e;if(t.getSparse())return l.SPARSE;for(const e of this.O.getGraph().listParentEdges(t)){const{usage:t}=e.getAttributes();if(t)return t;e.getParent().propertyType!==h.ROOT&&this.logger.warn(`Missing attribute \".usage\" on edge, \"${e.getName()}\".`)}return l.OTHER}addAccessorToUsageGroup(t,e){const r=this.C.get(t);if(r&&r!==e)throw new Error(`Accessor with usage \"${r}\" cannot be reused as \"${e}\".`);return this.C.set(t,e),this}listAccessorUsageGroups(){const t={};for(const[e,r]of Array.from(this.C.entries()))t[r]=t[r]||[],t[r].push(e);return t}}Mt.BufferViewTarget=Et,Mt.BufferViewUsage=l,Mt.USAGE_TO_TARGET={[l.ARRAY_BUFFER]:Et.ARRAY_BUFFER,[l.ELEMENT_ARRAY_BUFFER]:Et.ELEMENT_ARRAY_BUFFER};class St{constructor(t,e){this.multiple=void 0,this.basename=void 0,this.counter={},this.multiple=t,this.basename=e}createURI(t,e){if(t.getURI())return t.getURI();if(this.multiple){const r=this.basename(t);return this.counter[r]=this.counter[r]||1,`${r}_${this.counter[r]++}.${e}`}return`${this.basename(t)}.${e}`}}const{BufferViewUsage:It}=Mt,{UNSIGNED_INT:Rt,UNSIGNED_SHORT:Nt,UNSIGNED_BYTE:Ot}=K.ComponentType;var Ct;!function(t){t[t.JSON=1313821514]=\"JSON\",t[t.BIN=5130562]=\"BIN\"}(Ct||(Ct={}));class Ft{constructor(){this.M=U.DEFAULT_INSTANCE,this.h=new Set,this.F={},this.U=f.INTERLEAVED,this.lastReadBytes=0,this.lastWriteBytes=0}setLogger(t){return this.M=t,this}registerExtensions(t){for(const e of t)this.h.add(e),e.register();return this}registerDependencies(t){return Object.assign(this.F,t),this}setVertexLayout(t){return this.U=t,this}async read(t){return await this.readJSON(await this.readAsJSON(t))}async readAsJSON(t){const e=await this.readURI(t,\"view\");this.lastReadBytes=e.byteLength;const r=Ut(e)?this.P(e):{json:JSON.parse(E.decodeText(e)),resources:{}};return await this.L(r,this.dirname(t)),this.j(r),r}async readJSON(t){return t=this.D(t),this.j(t),class{static read(t,e=xt){const r=gt({},xt,e),{json:s}=t,n=(new vt).setLogger(r.logger);this.validate(t,r);const i=new bt(t),o=s.asset,a=n.getRoot().getAsset();o.copyright&&(a.copyright=o.copyright),o.extras&&(a.extras=o.extras),void 0!==s.extras&&n.getRoot().setExtras(gt({},s.extras));const u=s.extensionsUsed||[],c=s.extensionsRequired||[];for(const t of r.extensions)if(u.includes(t.EXTENSION_NAME)){const e=n.createExtension(t).setRequired(c.includes(t.EXTENSION_NAME));for(const t of e.readDependencies)e.install(t,r.dependencies[t])}const f=s.buffers||[];n.getRoot().listExtensionsUsed().filter(t=>t.prereadTypes.includes(h.BUFFER)).forEach(t=>t.preread(i,h.BUFFER)),i.buffers=f.map(t=>{const e=n.createBuffer(t.name);return t.extras&&e.setExtras(t.extras),t.uri&&0!==t.uri.indexOf(\"__\")&&e.setURI(t.uri),e}),i.bufferViewBuffers=(s.bufferViews||[]).map((e,r)=>{if(!i.bufferViews[r]){const s=t.json.buffers[e.buffer];i.bufferViews[r]=E.toView(s.uri?t.resources[s.uri]:t.resources[\"@glb.bin\"],e.byteOffset||0,e.byteLength)}return i.buffers[e.buffer]});const l=s.accessors||[];i.accessors=l.map(t=>{const e=n.createAccessor(t.name,i.bufferViewBuffers[t.bufferView]).setType(t.type);return t.extras&&e.setExtras(t.extras),void 0!==t.normalized&&e.setNormalized(t.normalized),void 0===t.bufferView||e.setArray(At(t,i)),e});const d=s.images||[],g=s.textures||[];n.getRoot().listExtensionsUsed().filter(t=>t.prereadTypes.includes(h.TEXTURE)).forEach(t=>t.preread(i,h.TEXTURE)),i.textures=d.map(e=>{const r=n.createTexture(e.name);if(e.extras&&r.setExtras(e.extras),void 0!==e.bufferView){const n=s.bufferViews[e.bufferView],i=t.json.buffers[n.buffer],o=n.byteOffset||0,a=(i.uri?t.resources[i.uri]:t.resources[\"@glb.bin\"]).slice(o,o+n.byteLength);r.setImage(a)}else void 0!==e.uri&&(r.setImage(t.resources[e.uri]),0!==e.uri.indexOf(\"__\")&&r.setURI(e.uri));if(void 0!==e.mimeType)r.setMimeType(e.mimeType);else if(e.uri){const t=N.extension(e.uri);r.setMimeType(I.extensionToMimeType(t))}return r}),i.materials=(s.materials||[]).map(t=>{const e=n.createMaterial(t.name);t.extras&&e.setExtras(t.extras),void 0!==t.alphaMode&&e.setAlphaMode(t.alphaMode),void 0!==t.alphaCutoff&&e.setAlphaCutoff(t.alphaCutoff),void 0!==t.doubleSided&&e.setDoubleSided(t.doubleSided);const r=t.pbrMetallicRoughness||{};if(void 0!==r.baseColorFactor&&e.setBaseColorFactor(r.baseColorFactor),void 0!==t.emissiveFactor&&e.setEmissiveFactor(t.emissiveFactor),void 0!==r.metallicFactor&&e.setMetallicFactor(r.metallicFactor),void 0!==r.roughnessFactor&&e.setRoughnessFactor(r.roughnessFactor),void 0!==r.baseColorTexture){const t=r.baseColorTexture;e.setBaseColorTexture(i.textures[g[t.index].source]),i.setTextureInfo(e.getBaseColorTextureInfo(),t)}if(void 0!==t.emissiveTexture){const r=t.emissiveTexture;e.setEmissiveTexture(i.textures[g[r.index].source]),i.setTextureInfo(e.getEmissiveTextureInfo(),r)}if(void 0!==t.normalTexture){const r=t.normalTexture;e.setNormalTexture(i.textures[g[r.index].source]),i.setTextureInfo(e.getNormalTextureInfo(),r),void 0!==t.normalTexture.scale&&e.setNormalScale(t.normalTexture.scale)}if(void 0!==t.occlusionTexture){const r=t.occlusionTexture;e.setOcclusionTexture(i.textures[g[r.index].source]),i.setTextureInfo(e.getOcclusionTextureInfo(),r),void 0!==t.occlusionTexture.strength&&e.setOcclusionStrength(t.occlusionTexture.strength)}if(void 0!==r.metallicRoughnessTexture){const t=r.metallicRoughnessTexture;e.setMetallicRoughnessTexture(i.textures[g[t.index].source]),i.setTextureInfo(e.getMetallicRoughnessTextureInfo(),t)}return e});const m=s.meshes||[];n.getRoot().listExtensionsUsed().filter(t=>t.prereadTypes.includes(h.PRIMITIVE)).forEach(t=>t.preread(i,h.PRIMITIVE)),i.meshes=m.map(t=>{const e=n.createMesh(t.name);return t.extras&&e.setExtras(t.extras),void 0!==t.weights&&e.setWeights(t.weights),(t.primitives||[]).forEach(r=>{const s=n.createPrimitive();r.extras&&s.setExtras(r.extras),void 0!==r.material&&s.setMaterial(i.materials[r.material]),void 0!==r.mode&&s.setMode(r.mode);for(const[t,e]of Object.entries(r.attributes||{}))s.setAttribute(t,i.accessors[e]);void 0!==r.indices&&s.setIndices(i.accessors[r.indices]);const o=t.extras&&t.extras.targetNames||[];(r.targets||[]).forEach((t,e)=>{const r=o[e]||e.toString(),a=n.createPrimitiveTarget(r);for(const[e,r]of Object.entries(t))a.setAttribute(e,i.accessors[r]);s.addTarget(a)}),e.addPrimitive(s)}),e}),i.cameras=(s.cameras||[]).map(t=>{const e=n.createCamera(t.name).setType(t.type);if(t.extras&&e.setExtras(t.extras),t.type===rt.Type.PERSPECTIVE){const r=t.perspective;e.setYFov(r.yfov),e.setZNear(r.znear),void 0!==r.zfar&&e.setZFar(r.zfar),void 0!==r.aspectRatio&&e.setAspectRatio(r.aspectRatio)}else{const r=t.orthographic;e.setZNear(r.znear).setZFar(r.zfar).setXMag(r.xmag).setYMag(r.ymag)}return e});const w=s.nodes||[];n.getRoot().listExtensionsUsed().filter(t=>t.prereadTypes.includes(h.NODE)).forEach(t=>t.preread(i,h.NODE)),i.nodes=w.map(t=>{const e=n.createNode(t.name);if(t.extras&&e.setExtras(t.extras),void 0!==t.translation&&e.setTranslation(t.translation),void 0!==t.rotation&&e.setRotation(t.rotation),void 0!==t.scale&&e.setScale(t.scale),void 0!==t.matrix){const r=[0,0,0],s=[0,0,0,1],n=[1,1,1];P.decompose(t.matrix,r,s,n),e.setTranslation(r),e.setRotation(s),e.setScale(n)}return void 0!==t.weights&&e.setWeights(t.weights),e}),i.skins=(s.skins||[]).map(t=>{const e=n.createSkin(t.name);t.extras&&e.setExtras(t.extras),void 0!==t.inverseBindMatrices&&e.setInverseBindMatrices(i.accessors[t.inverseBindMatrices]),void 0!==t.skeleton&&e.setSkeleton(i.nodes[t.skeleton]);for(const r of t.joints)e.addJoint(i.nodes[r]);return e}),w.map((t,e)=>{const r=i.nodes[e];(t.children||[]).forEach(t=>r.addChild(i.nodes[t])),void 0!==t.mesh&&r.setMesh(i.meshes[t.mesh]),void 0!==t.camera&&r.setCamera(i.cameras[t.camera]),void 0!==t.skin&&r.setSkin(i.skins[t.skin])}),i.animations=(s.animations||[]).map(t=>{const e=n.createAnimation(t.name);t.extras&&e.setExtras(t.extras);const r=(t.samplers||[]).map(t=>{const r=n.createAnimationSampler().setInput(i.accessors[t.input]).setOutput(i.accessors[t.output]).setInterpolation(t.interpolation||tt.Interpolation.LINEAR);return t.extras&&r.setExtras(t.extras),e.addSampler(r),r});return(t.channels||[]).forEach(t=>{const s=n.createAnimationChannel().setSampler(r[t.sampler]).setTargetPath(t.target.path);void 0!==t.target.node&&s.setTargetNode(i.nodes[t.target.node]),t.extras&&s.setExtras(t.extras),e.addChannel(s)}),e});const y=s.scenes||[];return n.getRoot().listExtensionsUsed().filter(t=>t.prereadTypes.includes(h.SCENE)).forEach(t=>t.preread(i,h.SCENE)),i.scenes=y.map(t=>{const e=n.createScene(t.name);return t.extras&&e.setExtras(t.extras),(t.nodes||[]).map(t=>i.nodes[t]).forEach(t=>e.addChild(t)),e}),void 0!==s.scene&&n.getRoot().setDefaultScene(i.scenes[s.scene]),n.getRoot().listExtensionsUsed().forEach(t=>t.read(i)),l.forEach((t,e)=>{const r=i.accessors[e],s=!!t.sparse,n=!t.bufferView&&!r.getArray();(s||n)&&r.setSparse(!0).setArray(function(t,e){const r=p[t.componentType],s=K.getElementSize(t.type);let n;n=void 0!==t.bufferView?At(t,e):new r(t.count*s);const i=t.sparse;if(!i)return n;const o=i.count,a=gt({},t,i.indices,{count:o,type:\"SCALAR\"}),u=gt({},t,i.values,{count:o}),c=At(a,e),h=At(u,e);for(let t=0;t<a.count;t++)for(let e=0;e<s;e++)n[c[t]*s+e]=h[t*s+e];return n}(t,i))}),n}static validate(t,e){const r=t.json;if(\"2.0\"!==r.asset.version)throw new Error(`Unsupported glTF version, \"${r.asset.version}\".`);if(r.extensionsRequired)for(const t of r.extensionsRequired)if(!e.extensions.find(e=>e.EXTENSION_NAME===t))throw new Error(`Missing required extension, \"${t}\".`);if(r.extensionsUsed)for(const t of r.extensionsUsed)e.extensions.find(e=>e.EXTENSION_NAME===t)||e.logger.warn(`Missing optional extension, \"${t}\".`)}}.read(t,{extensions:Array.from(this.h),dependencies:this.F,logger:this.M})}async binaryToJSON(t){const e=this.P(E.assertView(t));this.j(e);const r=e.json;if(r.buffers&&r.buffers.some(t=>function(t,e){return void 0!==e.uri&&!(e.uri in t.resources)}(e,t)))throw new Error(\"Cannot resolve external buffers with binaryToJSON().\");if(r.images&&r.images.some(t=>function(t,e){return void 0!==e.uri&&!(e.uri in t.resources)&&void 0===e.bufferView}(e,t)))throw new Error(\"Cannot resolve external images with binaryToJSON().\");return e}async readBinary(t){return this.readJSON(await this.binaryToJSON(E.assertView(t)))}async writeJSON(t,e={}){if(e.format===g.GLB&&t.getRoot().listBuffers().length>1)throw new Error(\"GLB must have 0–1 buffers.\");return class{static write(t,e){const r=t.getRoot(),s={asset:gt({generator:\"glTF-Transform v3.2.1\"},r.getAsset()),extras:gt({},r.getExtras())},n={json:s,resources:{}},i=new Mt(t,n,e),o=e.logger||U.DEFAULT_INSTANCE,a=new Set(e.extensions.map(t=>t.EXTENSION_NAME)),u=t.getRoot().listExtensionsUsed().filter(t=>a.has(t.extensionName)),c=t.getRoot().listExtensionsRequired().filter(t=>a.has(t.extensionName));u.length<t.getRoot().listExtensionsUsed().length&&o.warn(\"Some extensions were not registered for I/O, and will not be written.\");for(const t of u)for(const r of t.writeDependencies)t.install(r,e.dependencies[r]);function l(t,e,r,n){const o=[];let a=0;for(const e of t){const t=i.createAccessorDef(e);t.bufferView=s.bufferViews.length;const r=e.getArray(),n=E.pad(E.toView(r));t.byteOffset=a,a+=n.byteLength,o.push(n),i.accessorIndexMap.set(e,s.accessors.length),s.accessors.push(t)}const u={buffer:e,byteOffset:r,byteLength:E.concat(o).byteLength};return n&&(u.target=n),s.bufferViews.push(u),{buffers:o,byteLength:a}}function d(t,e,r){const n=t[0].getCount();let o=0;for(const e of t){const t=i.createAccessorDef(e);t.bufferView=s.bufferViews.length,t.byteOffset=o;const r=e.getElementSize(),n=e.getComponentSize();o+=E.padNumber(r*n),i.accessorIndexMap.set(e,s.accessors.length),s.accessors.push(t)}const a=n*o,u=new ArrayBuffer(a),c=new DataView(u);for(let e=0;e<n;e++){let r=0;for(const s of t){const t=s.getElementSize(),n=s.getComponentSize(),i=s.getComponentType(),a=s.getArray();for(let s=0;s<t;s++){const u=e*o+r+s*n,h=a[e*t+s];switch(i){case K.ComponentType.FLOAT:c.setFloat32(u,h,!0);break;case K.ComponentType.BYTE:c.setInt8(u,h);break;case K.ComponentType.SHORT:c.setInt16(u,h,!0);break;case K.ComponentType.UNSIGNED_BYTE:c.setUint8(u,h);break;case K.ComponentType.UNSIGNED_SHORT:c.setUint16(u,h,!0);break;case K.ComponentType.UNSIGNED_INT:c.setUint32(u,h,!0);break;default:throw new Error(\"Unexpected component type: \"+i)}}r+=E.padNumber(t*n)}}return s.bufferViews.push({buffer:e,byteOffset:r,byteLength:a,byteStride:o,target:Mt.BufferViewTarget.ARRAY_BUFFER}),{byteLength:a,buffers:[new Uint8Array(u)]}}function m(t,e,r){const n=[];let a=0;const u=new Map;let c=-Infinity;for(const e of t){const t=i.createAccessorDef(e);s.accessors.push(t),i.accessorIndexMap.set(e,s.accessors.length-1);const r=[],n=[],a=[],h=new Array(e.getElementSize()).fill(0);for(let t=0,s=e.getCount();t<s;t++)if(e.getElement(t,a),!P.eq(a,h,0)){c=Math.max(t,c),r.push(t);for(let t=0;t<a.length;t++)n.push(a[t])}const f=r.length,l={accessorDef:t,count:f};if(u.set(e,l),0===f)continue;if(f>e.getCount()/3){const t=(100*r.length/e.getCount()).toFixed(1);o.warn(`Sparse accessor with many non-zero elements (${t}%) may increase file size.`)}const d=p[e.getComponentType()];l.indices=r,l.values=new d(n)}if(!Number.isFinite(c))return{buffers:n,byteLength:a};const h=c<255?Uint8Array:c<65535?Uint16Array:Uint32Array,f=c<255?Ot:c<65535?Nt:Rt,l={buffer:e,byteOffset:r+a,byteLength:0};for(const e of t){const t=u.get(e);if(0===t.count)continue;t.indicesByteOffset=l.byteLength;const r=E.pad(E.toView(new h(t.indices)));n.push(r),a+=r.byteLength,l.byteLength+=r.byteLength}s.bufferViews.push(l);const d=s.bufferViews.length-1,g={buffer:e,byteOffset:r+a,byteLength:0};for(const e of t){const t=u.get(e);if(0===t.count)continue;t.valuesByteOffset=g.byteLength;const r=E.pad(E.toView(t.values));n.push(r),a+=r.byteLength,g.byteLength+=r.byteLength}s.bufferViews.push(g);const m=s.bufferViews.length-1;for(const e of t){const t=u.get(e);0!==t.count&&(t.accessorDef.sparse={count:t.count,indices:{bufferView:d,byteOffset:t.indicesByteOffset,componentType:f},values:{bufferView:m,byteOffset:t.valuesByteOffset}})}return{buffers:n,byteLength:a}}const w=new Map;for(const e of t.getGraph().listEdges()){if(e.getParent()===r)continue;const t=e.getChild();if(t instanceof K){const r=w.get(t)||[];r.push(e),w.set(t,r)}}if(s.accessors=[],s.bufferViews=[],s.samplers=[],s.textures=[],s.images=r.listTextures().map((t,e)=>{const r=i.createPropertyDef(t);t.getMimeType()&&(r.mimeType=t.getMimeType());const s=t.getImage();return s&&i.createImageData(r,s,t),i.imageIndexMap.set(t,e),r}),u.filter(t=>t.prewriteTypes.includes(h.ACCESSOR)).forEach(t=>t.prewrite(i,h.ACCESSOR)),r.listAccessors().forEach(t=>{const e=i.accessorUsageGroupedByParent,r=i.accessorParents;if(i.accessorIndexMap.has(t))return;const s=w.get(t)||[],n=i.getAccessorUsage(t);if(i.addAccessorToUsageGroup(t,n),e.has(n)){const e=s[0].getParent(),n=r.get(e)||new Set;n.add(t),r.set(e,n)}}),u.filter(t=>t.prewriteTypes.includes(h.BUFFER)).forEach(t=>t.prewrite(i,h.BUFFER)),(r.listAccessors().length>0||r.listTextures().length>0||i.otherBufferViews.size>0)&&0===r.listBuffers().length)throw new Error(\"Buffer required for Document resources, but none was found.\");s.buffers=[],r.listBuffers().forEach((t,r)=>{const o=i.createPropertyDef(t),a=i.accessorUsageGroupedByParent,u=i.accessorParents,c=t.listParents().filter(t=>t instanceof K),h=new Set(c),p=[],w=s.buffers.length;let y=0;const v=i.listAccessorUsageGroups();for(const t in v)if(a.has(t))for(const r of Array.from(u.values())){const s=Array.from(r).filter(t=>h.has(t)).filter(e=>i.getAccessorUsage(e)===t);if(s.length)if(t!==It.ARRAY_BUFFER||e.vertexLayout===f.INTERLEAVED){const e=t===It.ARRAY_BUFFER?d(s,w,y):l(s,w,y);y+=e.byteLength,p.push(...e.buffers)}else for(const t of s){const e=d([t],w,y);y+=e.byteLength,p.push(...e.buffers)}}else{const e=v[t].filter(t=>h.has(t));if(!e.length)continue;const r=t===It.ELEMENT_ARRAY_BUFFER?Mt.BufferViewTarget.ELEMENT_ARRAY_BUFFER:void 0,s=t===It.SPARSE?m(e,w,y):l(e,w,y,r);y+=s.byteLength,p.push(...s.buffers)}if(i.imageBufferViews.length&&0===r)for(let t=0;t<i.imageBufferViews.length;t++)if(s.bufferViews[s.images[t].bufferView].byteOffset=y,y+=i.imageBufferViews[t].byteLength,p.push(i.imageBufferViews[t]),y%8){const t=8-y%8;y+=t,p.push(new Uint8Array(t))}if(i.otherBufferViews.has(t))for(const e of i.otherBufferViews.get(t))s.bufferViews.push({buffer:w,byteOffset:y,byteLength:e.byteLength}),i.otherBufferViewsIndexMap.set(e,s.bufferViews.length-1),y+=e.byteLength,p.push(e);if(y){let r;e.format===g.GLB?r=\"@glb.bin\":(r=i.bufferURIGenerator.createURI(t,\"bin\"),o.uri=r),o.byteLength=y,n.resources[r]=E.concat(p)}s.buffers.push(o),i.bufferIndexMap.set(t,r)}),r.listAccessors().find(t=>!t.getBuffer())&&o.warn(\"Skipped writing one or more Accessors: no Buffer assigned.\"),s.materials=r.listMaterials().map((t,e)=>{const r=i.createPropertyDef(t);if(t.getAlphaMode()!==ct.AlphaMode.OPAQUE&&(r.alphaMode=t.getAlphaMode()),t.getAlphaMode()===ct.AlphaMode.MASK&&(r.alphaCutoff=t.getAlphaCutoff()),t.getDoubleSided()&&(r.doubleSided=!0),r.pbrMetallicRoughness={},P.eq(t.getBaseColorFactor(),[1,1,1,1])||(r.pbrMetallicRoughness.baseColorFactor=t.getBaseColorFactor()),P.eq(t.getEmissiveFactor(),[0,0,0])||(r.emissiveFactor=t.getEmissiveFactor()),1!==t.getRoughnessFactor()&&(r.pbrMetallicRoughness.roughnessFactor=t.getRoughnessFactor()),1!==t.getMetallicFactor()&&(r.pbrMetallicRoughness.metallicFactor=t.getMetallicFactor()),t.getBaseColorTexture()){const e=t.getBaseColorTexture(),s=t.getBaseColorTextureInfo();r.pbrMetallicRoughness.baseColorTexture=i.createTextureInfoDef(e,s)}if(t.getEmissiveTexture()){const e=t.getEmissiveTexture(),s=t.getEmissiveTextureInfo();r.emissiveTexture=i.createTextureInfoDef(e,s)}if(t.getNormalTexture()){const e=t.getNormalTexture(),s=t.getNormalTextureInfo(),n=i.createTextureInfoDef(e,s);1!==t.getNormalScale()&&(n.scale=t.getNormalScale()),r.normalTexture=n}if(t.getOcclusionTexture()){const e=t.getOcclusionTexture(),s=t.getOcclusionTextureInfo(),n=i.createTextureInfoDef(e,s);1!==t.getOcclusionStrength()&&(n.strength=t.getOcclusionStrength()),r.occlusionTexture=n}if(t.getMetallicRoughnessTexture()){const e=t.getMetallicRoughnessTexture(),s=t.getMetallicRoughnessTextureInfo();r.pbrMetallicRoughness.metallicRoughnessTexture=i.createTextureInfoDef(e,s)}return i.materialIndexMap.set(t,e),r}),s.meshes=r.listMeshes().map((t,e)=>{const r=i.createPropertyDef(t);let s=null;return r.primitives=t.listPrimitives().map(t=>{const e={attributes:{}};e.mode=t.getMode();const r=t.getMaterial();r&&(e.material=i.materialIndexMap.get(r)),Object.keys(t.getExtras()).length&&(e.extras=t.getExtras());const n=t.getIndices();n&&(e.indices=i.accessorIndexMap.get(n));for(const r of t.listSemantics())e.attributes[r]=i.accessorIndexMap.get(t.getAttribute(r));for(const r of t.listTargets()){const t={};for(const e of r.listSemantics())t[e]=i.accessorIndexMap.get(r.getAttribute(e));e.targets=e.targets||[],e.targets.push(t)}return t.listTargets().length&&!s&&(s=t.listTargets().map(t=>t.getName())),e}),t.getWeights().length&&(r.weights=t.getWeights()),s&&(r.extras=r.extras||{},r.extras.targetNames=s),i.meshIndexMap.set(t,e),r}),s.cameras=r.listCameras().map((t,e)=>{const r=i.createPropertyDef(t);if(r.type=t.getType(),r.type===rt.Type.PERSPECTIVE){r.perspective={znear:t.getZNear(),zfar:t.getZFar(),yfov:t.getYFov()};const e=t.getAspectRatio();null!==e&&(r.perspective.aspectRatio=e)}else r.orthographic={znear:t.getZNear(),zfar:t.getZFar(),xmag:t.getXMag(),ymag:t.getYMag()};return i.cameraIndexMap.set(t,e),r}),s.nodes=r.listNodes().map((t,e)=>{const r=i.createPropertyDef(t);return P.eq(t.getTranslation(),[0,0,0])||(r.translation=t.getTranslation()),P.eq(t.getRotation(),[0,0,0,1])||(r.rotation=t.getRotation()),P.eq(t.getScale(),[1,1,1])||(r.scale=t.getScale()),t.getWeights().length&&(r.weights=t.getWeights()),i.nodeIndexMap.set(t,e),r}),s.skins=r.listSkins().map((t,e)=>{const r=i.createPropertyDef(t),s=t.getInverseBindMatrices();s&&(r.inverseBindMatrices=i.accessorIndexMap.get(s));const n=t.getSkeleton();return n&&(r.skeleton=i.nodeIndexMap.get(n)),r.joints=t.listJoints().map(t=>i.nodeIndexMap.get(t)),i.skinIndexMap.set(t,e),r}),r.listNodes().forEach((t,e)=>{const r=s.nodes[e],n=t.getMesh();n&&(r.mesh=i.meshIndexMap.get(n));const o=t.getCamera();o&&(r.camera=i.cameraIndexMap.get(o));const a=t.getSkin();a&&(r.skin=i.skinIndexMap.get(a)),t.listChildren().length>0&&(r.children=t.listChildren().map(t=>i.nodeIndexMap.get(t)))}),s.animations=r.listAnimations().map((t,e)=>{const r=i.createPropertyDef(t),s=new Map;return r.samplers=t.listSamplers().map((t,e)=>{const r=i.createPropertyDef(t);return r.input=i.accessorIndexMap.get(t.getInput()),r.output=i.accessorIndexMap.get(t.getOutput()),r.interpolation=t.getInterpolation(),s.set(t,e),r}),r.channels=t.listChannels().map(t=>{const e=i.createPropertyDef(t);return e.sampler=s.get(t.getSampler()),e.target={node:i.nodeIndexMap.get(t.getTargetNode()),path:t.getTargetPath()},e}),i.animationIndexMap.set(t,e),r}),s.scenes=r.listScenes().map((t,e)=>{const r=i.createPropertyDef(t);return r.nodes=t.listChildren().map(t=>i.nodeIndexMap.get(t)),i.sceneIndexMap.set(t,e),r});const y=r.getDefaultScene();return y&&(s.scene=r.listScenes().indexOf(y)),s.extensionsUsed=u.map(t=>t.extensionName),s.extensionsRequired=c.map(t=>t.extensionName),u.forEach(t=>t.write(i)),function(t){const e=[];for(const r in t){const s=t[r];(Array.isArray(s)&&0===s.length||null===s||\"\"===s||s&&\"object\"==typeof s&&0===Object.keys(s).length)&&e.push(r)}for(const r of e)delete t[r]}(s),n}}.write(t,{format:e.format||g.GLTF,basename:e.basename||\"\",logger:this.M,vertexLayout:this.U,dependencies:gt({},this.F),extensions:Array.from(this.h)})}async writeBinary(t){const{json:e,resources:r}=await this.writeJSON(t,{format:g.GLB}),s=new Uint32Array([1179937895,2,12]),n=JSON.stringify(e),i=E.pad(E.encodeText(n),32),o=E.toView(new Uint32Array([i.byteLength,1313821514])),a=E.concat([o,i]);s[s.length-1]+=a.byteLength;const u=Object.values(r)[0];if(!u||!u.byteLength)return E.concat([E.toView(s),a]);const c=E.pad(u,0),h=E.toView(new Uint32Array([c.byteLength,5130562])),f=E.concat([h,c]);return s[s.length-1]+=f.byteLength,E.concat([E.toView(s),a,f])}async L(t,e){var r=this;const s=[...t.json.images||[],...t.json.buffers||[]].map(async function(s){const n=s.uri;if(!n||n.match(/data:/))return Promise.resolve();t.resources[n]=await r.readURI(r.resolve(e,n),\"view\"),r.lastReadBytes+=t.resources[n].byteLength});await Promise.all(s)}j(t){function e(e){if(e.uri)if(e.uri in t.resources)E.assertView(t.resources[e.uri]);else if(e.uri.match(/data:/)){const r=`__${V()}.${N.extension(e.uri)}`;t.resources[r]=E.createBufferFromDataURI(e.uri),e.uri=r}}(t.json.images||[]).forEach(t=>{if(void 0===t.bufferView&&void 0===t.uri)throw new Error(\"Missing resource URI or buffer view.\");e(t)}),(t.json.buffers||[]).forEach(e)}D(t){const{images:e,buffers:r}=t.json;return t={json:gt({},t.json),resources:gt({},t.resources)},e&&(t.json.images=e.map(t=>gt({},t))),r&&(t.json.buffers=r.map(t=>gt({},t))),t}P(t){if(!Ut(t))throw new Error(\"Invalid glTF 2.0 binary.\");const e=new Uint32Array(t.buffer,t.byteOffset+12,2);if(e[1]!==Ct.JSON)throw new Error(\"Missing required GLB JSON chunk.\");const r=e[0],s=E.decodeText(E.toView(t,20,r)),n=JSON.parse(s),i=20+r;if(t.byteLength<=i)return{json:n,resources:{}};const o=new Uint32Array(t.buffer,t.byteOffset+i,2);if(o[1]!==Ct.BIN)throw new Error(\"Expected GLB BIN in second chunk.\");return{json:n,resources:{\"@glb.bin\":E.toView(t,i+8,o[0])}}}}function Ut(t){if(t.byteLength<3*Uint32Array.BYTES_PER_ELEMENT)return!1;const e=new Uint32Array(t.buffer,t.byteOffset,3);return 1179937895===e[0]&&2===e[1]}class Bt extends Ft{constructor(t=null,e=W.DEFAULT_INIT){super(),this._=void 0,this.k=void 0,this.J=void 0,this.$=!1,this._=t,this.k=e,this.J=this.init()}async init(){return this.J?this.J:Promise.all([import(\"fs\"),import(\"path\")]).then(([t,e])=>{this.V=t.promises,this.W=e})}setAllowHTTP(t){if(t&&!this._)throw new Error(\"NodeIO requires a Fetch API implementation for HTTP requests.\");return this.$=t,this}async readURI(t,e){if(await this.init(),W.isAbsoluteURL(t)){if(!this.$||!this._)throw new Error(\"Network request blocked. Allow HTTP requests explicitly, if needed.\");const r=await this._(t,this.k);switch(e){case\"view\":return new Uint8Array(await r.arrayBuffer());case\"text\":return r.text()}}else switch(e){case\"view\":return this.V.readFile(t);case\"text\":return this.V.readFile(t,\"utf8\")}}resolve(t,e){return W.isAbsoluteURL(t)||W.isAbsoluteURL(e)?W.resolve(t,e):this.W.resolve(t,e)}dirname(t){return W.isAbsoluteURL(t)?W.dirname(t):this.W.dirname(t)}async write(t,e){await this.init();const r=!!t.match(/\\.glb$/);await(r?this.q(t,e):this.H(t,e))}async H(t,e){var r=this;this.lastWriteBytes=0;const{json:s,resources:n}=await this.writeJSON(e,{format:g.GLTF,basename:N.basename(t)}),{V:i,W:o}=this,a=o.dirname(t),u=JSON.stringify(s,null,2);this.lastWriteBytes+=u.length,await i.writeFile(t,u);const c=Object.keys(n).map(async function(t){if(W.isAbsoluteURL(t)){if(\"bin\"===W.extension(t))throw new Error(`Cannot write buffer to path \"${t}\".`);return}const e=Buffer.from(n[t]),s=o.join(a,t);await i.mkdir(o.dirname(s),{recursive:!0}),await i.writeFile(s,e),r.lastWriteBytes+=e.byteLength});await Promise.all(c)}async q(t,e){const r=Buffer.from(await this.writeBinary(e));await this.V.writeFile(t,r),this.lastWriteBytes=r.byteLength}}class Pt extends Ft{constructor(t){super(),this.W=void 0,this.W=t}async readURI(t,e){switch(e){case\"view\":return Deno.readFile(t);case\"text\":return Deno.readTextFile(t)}}resolve(t,e){return this.W.resolve(t,e)}dirname(t){return this.W.dirname(t)}}class Lt extends Ft{constructor(t=W.DEFAULT_INIT){super(),this.k=void 0,this.k=t}async readURI(t,e){const r=await fetch(t,this.k);switch(e){case\"view\":return new Uint8Array(await r.arrayBuffer());case\"text\":return r.text()}}resolve(t,e){return W.resolve(t,e)}dirname(t){return W.dirname(t)}}export{K as Accessor,Q as Animation,X as AnimationChannel,tt as AnimationSampler,et as Buffer,E as BufferUtils,q as COPY_IDENTITY,rt as Camera,M as ColorUtils,p as ComponentTypeToTypedArray,Pt as DenoIO,vt as Document,Z as ExtensibleProperty,Tt as Extension,st as ExtensionProperty,N as FileUtils,g as Format,c as GLB_BUFFER,W as HTTPUtils,I as ImageUtils,U as Logger,ct as Material,P as MathUtils,ht as Mesh,ft as Node,Bt as NodeIO,Ft as PlatformIO,lt as Primitive,dt as PrimitiveTarget,Y as Property,h as PropertyType,bt as ReaderContext,yt as Root,pt as Scene,mt as Skin,wt as Texture,d as TextureChannel,nt as TextureInfo,u as VERSION,F as Verbosity,f as VertexLayout,Lt as WebIO,Mt as WriterContext,b as bounds,T as getBounds,V as uuid};\n//# sourceMappingURL=core.modern.js.map\n","///////////////////////////////////////////////////\n// KTX2 Header.\n///////////////////////////////////////////////////\nconst KHR_SUPERCOMPRESSION_NONE = 0;\nconst KHR_SUPERCOMPRESSION_BASISLZ = 1;\nconst KHR_SUPERCOMPRESSION_ZSTD = 2;\nconst KHR_SUPERCOMPRESSION_ZLIB = 3; ///////////////////////////////////////////////////\n// Data Format Descriptor (DFD).\n///////////////////////////////////////////////////\n\nconst KHR_DF_KHR_DESCRIPTORTYPE_BASICFORMAT = 0;\nconst KHR_DF_VENDORID_KHRONOS = 0;\nconst KHR_DF_VERSION = 2;\nconst KHR_DF_MODEL_UNSPECIFIED = 0;\nconst KHR_DF_MODEL_RGBSDA = 1; // ...\n\nconst KHR_DF_MODEL_ETC1 = 160;\nconst KHR_DF_MODEL_ETC2 = 161;\nconst KHR_DF_MODEL_ASTC = 162;\nconst KHR_DF_MODEL_ETC1S = 163;\nconst KHR_DF_MODEL_UASTC = 166;\nconst KHR_DF_FLAG_ALPHA_STRAIGHT = 0;\nconst KHR_DF_FLAG_ALPHA_PREMULTIPLIED = 1;\nconst KHR_DF_TRANSFER_UNSPECIFIED = 0;\nconst KHR_DF_TRANSFER_LINEAR = 1;\nconst KHR_DF_TRANSFER_SRGB = 2;\nconst KHR_DF_TRANSFER_ITU = 3;\nconst KHR_DF_TRANSFER_NTSC = 4;\nconst KHR_DF_TRANSFER_SLOG = 5;\nconst KHR_DF_TRANSFER_SLOG2 = 6;\nconst KHR_DF_TRANSFER_BT1886 = 7;\nconst KHR_DF_TRANSFER_HLG_OETF = 8;\nconst KHR_DF_TRANSFER_HLG_EOTF = 9;\nconst KHR_DF_TRANSFER_PQ_EOTF = 10;\nconst KHR_DF_TRANSFER_PQ_OETF = 11;\nconst KHR_DF_TRANSFER_DCIP3 = 12;\nconst KHR_DF_TRANSFER_PAL_OETF = 13;\nconst KHR_DF_TRANSFER_PAL625_EOTF = 14;\nconst KHR_DF_TRANSFER_ST240 = 15;\nconst KHR_DF_TRANSFER_ACESCC = 16;\nconst KHR_DF_TRANSFER_ACESCCT = 17;\nconst KHR_DF_TRANSFER_ADOBERGB = 18;\nconst KHR_DF_PRIMARIES_UNSPECIFIED = 0;\nconst KHR_DF_PRIMARIES_BT709 = 1;\nconst KHR_DF_PRIMARIES_BT601_EBU = 2;\nconst KHR_DF_PRIMARIES_BT601_SMPTE = 3;\nconst KHR_DF_PRIMARIES_BT2020 = 4;\nconst KHR_DF_PRIMARIES_CIEXYZ = 5;\nconst KHR_DF_PRIMARIES_ACES = 6;\nconst KHR_DF_PRIMARIES_ACESCC = 7;\nconst KHR_DF_PRIMARIES_NTSC1953 = 8;\nconst KHR_DF_PRIMARIES_PAL525 = 9;\nconst KHR_DF_PRIMARIES_DISPLAYP3 = 10;\nconst KHR_DF_PRIMARIES_ADOBERGB = 11;\nconst KHR_DF_CHANNEL_RGBSDA_RED = 0;\nconst KHR_DF_CHANNEL_RGBSDA_GREEN = 1;\nconst KHR_DF_CHANNEL_RGBSDA_BLUE = 2;\nconst KHR_DF_CHANNEL_RGBSDA_STENCIL = 13;\nconst KHR_DF_CHANNEL_RGBSDA_DEPTH = 14;\nconst KHR_DF_CHANNEL_RGBSDA_ALPHA = 15;\nconst KHR_DF_SAMPLE_DATATYPE_FLOAT = 0x80;\nconst KHR_DF_SAMPLE_DATATYPE_SIGNED = 0x40;\nconst KHR_DF_SAMPLE_DATATYPE_EXPONENT = 0x20;\nconst KHR_DF_SAMPLE_DATATYPE_LINEAR = 0x10; ///////////////////////////////////////////////////\n// VK FORMAT.\n///////////////////////////////////////////////////\n\nconst VK_FORMAT_UNDEFINED = 0;\nconst VK_FORMAT_R4G4_UNORM_PACK8 = 1;\nconst VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2;\nconst VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3;\nconst VK_FORMAT_R5G6B5_UNORM_PACK16 = 4;\nconst VK_FORMAT_B5G6R5_UNORM_PACK16 = 5;\nconst VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6;\nconst VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7;\nconst VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8;\nconst VK_FORMAT_R8_UNORM = 9;\nconst VK_FORMAT_R8_SNORM = 10;\nconst VK_FORMAT_R8_UINT = 13;\nconst VK_FORMAT_R8_SINT = 14;\nconst VK_FORMAT_R8_SRGB = 15;\nconst VK_FORMAT_R8G8_UNORM = 16;\nconst VK_FORMAT_R8G8_SNORM = 17;\nconst VK_FORMAT_R8G8_UINT = 20;\nconst VK_FORMAT_R8G8_SINT = 21;\nconst VK_FORMAT_R8G8_SRGB = 22;\nconst VK_FORMAT_R8G8B8_UNORM = 23;\nconst VK_FORMAT_R8G8B8_SNORM = 24;\nconst VK_FORMAT_R8G8B8_UINT = 27;\nconst VK_FORMAT_R8G8B8_SINT = 28;\nconst VK_FORMAT_R8G8B8_SRGB = 29;\nconst VK_FORMAT_B8G8R8_UNORM = 30;\nconst VK_FORMAT_B8G8R8_SNORM = 31;\nconst VK_FORMAT_B8G8R8_UINT = 34;\nconst VK_FORMAT_B8G8R8_SINT = 35;\nconst VK_FORMAT_B8G8R8_SRGB = 36;\nconst VK_FORMAT_R8G8B8A8_UNORM = 37;\nconst VK_FORMAT_R8G8B8A8_SNORM = 38;\nconst VK_FORMAT_R8G8B8A8_UINT = 41;\nconst VK_FORMAT_R8G8B8A8_SINT = 42;\nconst VK_FORMAT_R8G8B8A8_SRGB = 43;\nconst VK_FORMAT_B8G8R8A8_UNORM = 44;\nconst VK_FORMAT_B8G8R8A8_SNORM = 45;\nconst VK_FORMAT_B8G8R8A8_UINT = 48;\nconst VK_FORMAT_B8G8R8A8_SINT = 49;\nconst VK_FORMAT_B8G8R8A8_SRGB = 50;\nconst VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58;\nconst VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59;\nconst VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62;\nconst VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63;\nconst VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64;\nconst VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65;\nconst VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68;\nconst VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69;\nconst VK_FORMAT_R16_UNORM = 70;\nconst VK_FORMAT_R16_SNORM = 71;\nconst VK_FORMAT_R16_UINT = 74;\nconst VK_FORMAT_R16_SINT = 75;\nconst VK_FORMAT_R16_SFLOAT = 76;\nconst VK_FORMAT_R16G16_UNORM = 77;\nconst VK_FORMAT_R16G16_SNORM = 78;\nconst VK_FORMAT_R16G16_UINT = 81;\nconst VK_FORMAT_R16G16_SINT = 82;\nconst VK_FORMAT_R16G16_SFLOAT = 83;\nconst VK_FORMAT_R16G16B16_UNORM = 84;\nconst VK_FORMAT_R16G16B16_SNORM = 85;\nconst VK_FORMAT_R16G16B16_UINT = 88;\nconst VK_FORMAT_R16G16B16_SINT = 89;\nconst VK_FORMAT_R16G16B16_SFLOAT = 90;\nconst VK_FORMAT_R16G16B16A16_UNORM = 91;\nconst VK_FORMAT_R16G16B16A16_SNORM = 92;\nconst VK_FORMAT_R16G16B16A16_UINT = 95;\nconst VK_FORMAT_R16G16B16A16_SINT = 96;\nconst VK_FORMAT_R16G16B16A16_SFLOAT = 97;\nconst VK_FORMAT_R32_UINT = 98;\nconst VK_FORMAT_R32_SINT = 99;\nconst VK_FORMAT_R32_SFLOAT = 100;\nconst VK_FORMAT_R32G32_UINT = 101;\nconst VK_FORMAT_R32G32_SINT = 102;\nconst VK_FORMAT_R32G32_SFLOAT = 103;\nconst VK_FORMAT_R32G32B32_UINT = 104;\nconst VK_FORMAT_R32G32B32_SINT = 105;\nconst VK_FORMAT_R32G32B32_SFLOAT = 106;\nconst VK_FORMAT_R32G32B32A32_UINT = 107;\nconst VK_FORMAT_R32G32B32A32_SINT = 108;\nconst VK_FORMAT_R32G32B32A32_SFLOAT = 109;\nconst VK_FORMAT_R64_UINT = 110;\nconst VK_FORMAT_R64_SINT = 111;\nconst VK_FORMAT_R64_SFLOAT = 112;\nconst VK_FORMAT_R64G64_UINT = 113;\nconst VK_FORMAT_R64G64_SINT = 114;\nconst VK_FORMAT_R64G64_SFLOAT = 115;\nconst VK_FORMAT_R64G64B64_UINT = 116;\nconst VK_FORMAT_R64G64B64_SINT = 117;\nconst VK_FORMAT_R64G64B64_SFLOAT = 118;\nconst VK_FORMAT_R64G64B64A64_UINT = 119;\nconst VK_FORMAT_R64G64B64A64_SINT = 120;\nconst VK_FORMAT_R64G64B64A64_SFLOAT = 121;\nconst VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122;\nconst VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123;\nconst VK_FORMAT_D16_UNORM = 124;\nconst VK_FORMAT_X8_D24_UNORM_PACK32 = 125;\nconst VK_FORMAT_D32_SFLOAT = 126;\nconst VK_FORMAT_S8_UINT = 127;\nconst VK_FORMAT_D16_UNORM_S8_UINT = 128;\nconst VK_FORMAT_D24_UNORM_S8_UINT = 129;\nconst VK_FORMAT_D32_SFLOAT_S8_UINT = 130;\nconst VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131;\nconst VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132;\nconst VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133;\nconst VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134;\nconst VK_FORMAT_BC2_UNORM_BLOCK = 135;\nconst VK_FORMAT_BC2_SRGB_BLOCK = 136;\nconst VK_FORMAT_BC3_UNORM_BLOCK = 137;\nconst VK_FORMAT_BC3_SRGB_BLOCK = 138;\nconst VK_FORMAT_BC4_UNORM_BLOCK = 139;\nconst VK_FORMAT_BC4_SNORM_BLOCK = 140;\nconst VK_FORMAT_BC5_UNORM_BLOCK = 141;\nconst VK_FORMAT_BC5_SNORM_BLOCK = 142;\nconst VK_FORMAT_BC6H_UFLOAT_BLOCK = 143;\nconst VK_FORMAT_BC6H_SFLOAT_BLOCK = 144;\nconst VK_FORMAT_BC7_UNORM_BLOCK = 145;\nconst VK_FORMAT_BC7_SRGB_BLOCK = 146;\nconst VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147;\nconst VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148;\nconst VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149;\nconst VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150;\nconst VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151;\nconst VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152;\nconst VK_FORMAT_EAC_R11_UNORM_BLOCK = 153;\nconst VK_FORMAT_EAC_R11_SNORM_BLOCK = 154;\nconst VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155;\nconst VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156;\nconst VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157;\nconst VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158;\nconst VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159;\nconst VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160;\nconst VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161;\nconst VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162;\nconst VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163;\nconst VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164;\nconst VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165;\nconst VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166;\nconst VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167;\nconst VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168;\nconst VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169;\nconst VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170;\nconst VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171;\nconst VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172;\nconst VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173;\nconst VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174;\nconst VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175;\nconst VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176;\nconst VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177;\nconst VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178;\nconst VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179;\nconst VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180;\nconst VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181;\nconst VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182;\nconst VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183;\nconst VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184;\nconst VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007;\nconst VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008;\nconst VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009;\nconst VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010;\nconst VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011;\nconst VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017;\nconst VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018;\nconst VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019;\nconst VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020;\nconst VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021;\nconst VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000;\nconst VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001;\nconst VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002;\nconst VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003;\nconst VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004;\nconst VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005;\nconst VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006;\nconst VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007;\nconst VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066000;\nconst VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001;\nconst VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002;\nconst VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = 1000066003;\nconst VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = 1000066004;\nconst VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = 1000066005;\nconst VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = 1000066006;\nconst VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = 1000066007;\nconst VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = 1000066008;\nconst VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = 1000066009;\nconst VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = 1000066010;\nconst VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = 1000066011;\nconst VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = 1000066012;\nconst VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = 1000066013;\nconst VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = 1000340000;\nconst VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = 1000340001;\n\n/**\r\n * Represents an unpacked KTX 2.0 texture container. Data for individual mip levels are stored in\r\n * the `.levels` array, typically compressed in Basis Universal formats. Additional properties\r\n * provide metadata required to process, transcode, and upload these textures.\r\n */\n\nclass KTX2Container {\n constructor() {\n this.vkFormat = VK_FORMAT_UNDEFINED;\n this.typeSize = 1;\n this.pixelWidth = 0;\n this.pixelHeight = 0;\n this.pixelDepth = 0;\n this.layerCount = 0;\n this.faceCount = 1;\n this.supercompressionScheme = KHR_SUPERCOMPRESSION_NONE;\n this.levels = [];\n this.dataFormatDescriptor = [{\n vendorId: KHR_DF_VENDORID_KHRONOS,\n descriptorType: KHR_DF_KHR_DESCRIPTORTYPE_BASICFORMAT,\n descriptorBlockSize: 0,\n versionNumber: KHR_DF_VERSION,\n colorModel: KHR_DF_MODEL_UNSPECIFIED,\n colorPrimaries: KHR_DF_PRIMARIES_BT709,\n transferFunction: KHR_DF_TRANSFER_SRGB,\n flags: KHR_DF_FLAG_ALPHA_STRAIGHT,\n texelBlockDimension: [0, 0, 0, 0],\n bytesPlane: [0, 0, 0, 0, 0, 0, 0, 0],\n samples: []\n }];\n this.keyValue = {};\n this.globalData = null;\n }\n\n}\n\nclass BufferReader {\n constructor(data, byteOffset, byteLength, littleEndian) {\n this._dataView = void 0;\n this._littleEndian = void 0;\n this._offset = void 0;\n this._dataView = new DataView(data.buffer, data.byteOffset + byteOffset, byteLength);\n this._littleEndian = littleEndian;\n this._offset = 0;\n }\n\n _nextUint8() {\n const value = this._dataView.getUint8(this._offset);\n\n this._offset += 1;\n return value;\n }\n\n _nextUint16() {\n const value = this._dataView.getUint16(this._offset, this._littleEndian);\n\n this._offset += 2;\n return value;\n }\n\n _nextUint32() {\n const value = this._dataView.getUint32(this._offset, this._littleEndian);\n\n this._offset += 4;\n return value;\n }\n\n _nextUint64() {\n const left = this._dataView.getUint32(this._offset, this._littleEndian);\n\n const right = this._dataView.getUint32(this._offset + 4, this._littleEndian); // TODO(cleanup): Just test this...\n // const value = this._littleEndian ? left + (2 ** 32 * right) : (2 ** 32 * left) + right;\n\n\n const value = left + 2 ** 32 * right;\n this._offset += 8;\n return value;\n }\n\n _nextInt32() {\n const value = this._dataView.getInt32(this._offset, this._littleEndian);\n\n this._offset += 4;\n return value;\n }\n\n _skip(bytes) {\n this._offset += bytes;\n return this;\n }\n\n _scan(maxByteLength, term = 0x00) {\n const byteOffset = this._offset;\n let byteLength = 0;\n\n while (this._dataView.getUint8(this._offset) !== term && byteLength < maxByteLength) {\n byteLength++;\n this._offset++;\n }\n\n if (byteLength < maxByteLength) this._offset++;\n return new Uint8Array(this._dataView.buffer, this._dataView.byteOffset + byteOffset, byteLength);\n }\n\n}\n\n///////////////////////////////////////////////////\n// Common.\n///////////////////////////////////////////////////\nconst KTX_WRITER = `KTX-Parse v${\"0.5.0\"}`;\nconst NUL = new Uint8Array([0x00]); ///////////////////////////////////////////////////\n// KTX2 Header.\n///////////////////////////////////////////////////\n\nconst KTX2_ID = [// '´', 'K', 'T', 'X', '2', '0', 'ª', '\\r', '\\n', '\\x1A', '\\n'\n0xab, 0x4b, 0x54, 0x58, 0x20, 0x32, 0x30, 0xbb, 0x0d, 0x0a, 0x1a, 0x0a];\nconst HEADER_BYTE_LENGTH = 68; // 13 * 4 + 2 * 8\n\n/** Encodes text to an ArrayBuffer. */\nfunction encodeText(text) {\n if (typeof TextEncoder !== 'undefined') {\n return new TextEncoder().encode(text);\n }\n\n return Buffer.from(text);\n}\n/** Decodes an ArrayBuffer to text. */\n\nfunction decodeText(buffer) {\n if (typeof TextDecoder !== 'undefined') {\n return new TextDecoder().decode(buffer);\n }\n\n return Buffer.from(buffer).toString('utf8');\n}\n/** Concatenates N ArrayBuffers. */\n\nfunction concat(buffers) {\n let totalByteLength = 0;\n\n for (const buffer of buffers) {\n totalByteLength += buffer.byteLength;\n }\n\n const result = new Uint8Array(totalByteLength);\n let byteOffset = 0;\n\n for (const buffer of buffers) {\n result.set(new Uint8Array(buffer), byteOffset);\n byteOffset += buffer.byteLength;\n }\n\n return result;\n}\n\n/**\r\n * Parses a KTX 2.0 file, returning an unpacked {@link KTX2Container} instance with all associated\r\n * data. The container's mip levels and other binary data are pointers into the original file, not\r\n * copies, so the original file should not be overwritten after reading.\r\n *\r\n * @param data Bytes of KTX 2.0 file, as Uint8Array or Buffer.\r\n */\n\nfunction read(data) {\n ///////////////////////////////////////////////////\n // KTX 2.0 Identifier.\n ///////////////////////////////////////////////////\n const id = new Uint8Array(data.buffer, data.byteOffset, KTX2_ID.length);\n\n if (id[0] !== KTX2_ID[0] || // '´'\n id[1] !== KTX2_ID[1] || // 'K'\n id[2] !== KTX2_ID[2] || // 'T'\n id[3] !== KTX2_ID[3] || // 'X'\n id[4] !== KTX2_ID[4] || // ' '\n id[5] !== KTX2_ID[5] || // '2'\n id[6] !== KTX2_ID[6] || // '0'\n id[7] !== KTX2_ID[7] || // 'ª'\n id[8] !== KTX2_ID[8] || // '\\r'\n id[9] !== KTX2_ID[9] || // '\\n'\n id[10] !== KTX2_ID[10] || // '\\x1A'\n id[11] !== KTX2_ID[11] // '\\n'\n ) {\n throw new Error('Missing KTX 2.0 identifier.');\n }\n\n const container = new KTX2Container(); ///////////////////////////////////////////////////\n // Header.\n ///////////////////////////////////////////////////\n\n const headerByteLength = 17 * Uint32Array.BYTES_PER_ELEMENT;\n const headerReader = new BufferReader(data, KTX2_ID.length, headerByteLength, true);\n container.vkFormat = headerReader._nextUint32();\n container.typeSize = headerReader._nextUint32();\n container.pixelWidth = headerReader._nextUint32();\n container.pixelHeight = headerReader._nextUint32();\n container.pixelDepth = headerReader._nextUint32();\n container.layerCount = headerReader._nextUint32();\n container.faceCount = headerReader._nextUint32();\n\n const levelCount = headerReader._nextUint32();\n\n container.supercompressionScheme = headerReader._nextUint32();\n\n const dfdByteOffset = headerReader._nextUint32();\n\n const dfdByteLength = headerReader._nextUint32();\n\n const kvdByteOffset = headerReader._nextUint32();\n\n const kvdByteLength = headerReader._nextUint32();\n\n const sgdByteOffset = headerReader._nextUint64();\n\n const sgdByteLength = headerReader._nextUint64(); ///////////////////////////////////////////////////\n // Level Index.\n ///////////////////////////////////////////////////\n\n\n const levelByteLength = levelCount * 3 * 8;\n const levelReader = new BufferReader(data, KTX2_ID.length + headerByteLength, levelByteLength, true);\n\n for (let i = 0; i < levelCount; i++) {\n container.levels.push({\n levelData: new Uint8Array(data.buffer, data.byteOffset + levelReader._nextUint64(), levelReader._nextUint64()),\n uncompressedByteLength: levelReader._nextUint64()\n });\n } ///////////////////////////////////////////////////\n // Data Format Descriptor (DFD).\n ///////////////////////////////////////////////////\n\n\n const dfdReader = new BufferReader(data, dfdByteOffset, dfdByteLength, true);\n const dfd = {\n vendorId: dfdReader._skip(4\n /* totalSize */\n )._nextUint16(),\n descriptorType: dfdReader._nextUint16(),\n versionNumber: dfdReader._nextUint16(),\n descriptorBlockSize: dfdReader._nextUint16(),\n colorModel: dfdReader._nextUint8(),\n colorPrimaries: dfdReader._nextUint8(),\n transferFunction: dfdReader._nextUint8(),\n flags: dfdReader._nextUint8(),\n texelBlockDimension: [dfdReader._nextUint8(), dfdReader._nextUint8(), dfdReader._nextUint8(), dfdReader._nextUint8()],\n bytesPlane: [dfdReader._nextUint8(), dfdReader._nextUint8(), dfdReader._nextUint8(), dfdReader._nextUint8(), dfdReader._nextUint8(), dfdReader._nextUint8(), dfdReader._nextUint8(), dfdReader._nextUint8()],\n samples: []\n };\n const sampleStart = 6;\n const sampleWords = 4;\n const numSamples = (dfd.descriptorBlockSize / 4 - sampleStart) / sampleWords;\n\n for (let i = 0; i < numSamples; i++) {\n const sample = {\n bitOffset: dfdReader._nextUint16(),\n bitLength: dfdReader._nextUint8(),\n channelType: dfdReader._nextUint8(),\n samplePosition: [dfdReader._nextUint8(), dfdReader._nextUint8(), dfdReader._nextUint8(), dfdReader._nextUint8()],\n sampleLower: -Infinity,\n sampleUpper: Infinity\n };\n\n if (sample.channelType & KHR_DF_SAMPLE_DATATYPE_SIGNED) {\n sample.sampleLower = dfdReader._nextInt32();\n sample.sampleUpper = dfdReader._nextInt32();\n } else {\n sample.sampleLower = dfdReader._nextUint32();\n sample.sampleUpper = dfdReader._nextUint32();\n }\n\n dfd.samples[i] = sample;\n }\n\n container.dataFormatDescriptor.length = 0;\n container.dataFormatDescriptor.push(dfd); ///////////////////////////////////////////////////\n // Key/Value Data (KVD).\n ///////////////////////////////////////////////////\n\n const kvdReader = new BufferReader(data, kvdByteOffset, kvdByteLength, true);\n\n while (kvdReader._offset < kvdByteLength) {\n const keyValueByteLength = kvdReader._nextUint32();\n\n const keyData = kvdReader._scan(keyValueByteLength);\n\n const key = decodeText(keyData);\n\n const valueData = kvdReader._scan(keyValueByteLength - keyData.byteLength);\n\n container.keyValue[key] = key.match(/^ktx/i) ? decodeText(valueData) : valueData; // 4-byte alignment.\n\n if (kvdReader._offset % 4) kvdReader._skip(4 - kvdReader._offset % 4);\n } ///////////////////////////////////////////////////\n // Supercompression Global Data (SGD).\n ///////////////////////////////////////////////////\n\n\n if (sgdByteLength <= 0) return container;\n const sgdReader = new BufferReader(data, sgdByteOffset, sgdByteLength, true);\n\n const endpointCount = sgdReader._nextUint16();\n\n const selectorCount = sgdReader._nextUint16();\n\n const endpointsByteLength = sgdReader._nextUint32();\n\n const selectorsByteLength = sgdReader._nextUint32();\n\n const tablesByteLength = sgdReader._nextUint32();\n\n const extendedByteLength = sgdReader._nextUint32();\n\n const imageDescs = [];\n\n for (let i = 0; i < levelCount; i++) {\n imageDescs.push({\n imageFlags: sgdReader._nextUint32(),\n rgbSliceByteOffset: sgdReader._nextUint32(),\n rgbSliceByteLength: sgdReader._nextUint32(),\n alphaSliceByteOffset: sgdReader._nextUint32(),\n alphaSliceByteLength: sgdReader._nextUint32()\n });\n }\n\n const endpointsByteOffset = sgdByteOffset + sgdReader._offset;\n const selectorsByteOffset = endpointsByteOffset + endpointsByteLength;\n const tablesByteOffset = selectorsByteOffset + selectorsByteLength;\n const extendedByteOffset = tablesByteOffset + tablesByteLength;\n const endpointsData = new Uint8Array(data.buffer, data.byteOffset + endpointsByteOffset, endpointsByteLength);\n const selectorsData = new Uint8Array(data.buffer, data.byteOffset + selectorsByteOffset, selectorsByteLength);\n const tablesData = new Uint8Array(data.buffer, data.byteOffset + tablesByteOffset, tablesByteLength);\n const extendedData = new Uint8Array(data.buffer, data.byteOffset + extendedByteOffset, extendedByteLength);\n container.globalData = {\n endpointCount,\n selectorCount,\n imageDescs,\n endpointsData,\n selectorsData,\n tablesData,\n extendedData\n };\n return container;\n}\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nconst DEFAULT_OPTIONS = {\n keepWriter: false\n};\n/**\r\n * Serializes a {@link KTX2Container} instance to a KTX 2.0 file. Mip levels and other binary data\r\n * are copied into the resulting Uint8Array, so the original container can safely be edited or\r\n * destroyed after it is serialized.\r\n *\r\n * Options:\r\n * - keepWriter: If true, 'KTXWriter' key/value field is written as provided by the container.\r\n * \t\tOtherwise, a string for the current ktx-parse version is generated. Default: false.\r\n *\r\n * @param container\r\n * @param options\r\n */\n\nfunction write(container, options = {}) {\n options = _extends({}, DEFAULT_OPTIONS, options); ///////////////////////////////////////////////////\n // Supercompression Global Data (SGD).\n ///////////////////////////////////////////////////\n\n let sgdBuffer = new ArrayBuffer(0);\n\n if (container.globalData) {\n const sgdHeaderBuffer = new ArrayBuffer(20 + container.globalData.imageDescs.length * 5 * 4);\n const sgdHeaderView = new DataView(sgdHeaderBuffer);\n sgdHeaderView.setUint16(0, container.globalData.endpointCount, true);\n sgdHeaderView.setUint16(2, container.globalData.selectorCount, true);\n sgdHeaderView.setUint32(4, container.globalData.endpointsData.byteLength, true);\n sgdHeaderView.setUint32(8, container.globalData.selectorsData.byteLength, true);\n sgdHeaderView.setUint32(12, container.globalData.tablesData.byteLength, true);\n sgdHeaderView.setUint32(16, container.globalData.extendedData.byteLength, true);\n\n for (let i = 0; i < container.globalData.imageDescs.length; i++) {\n const imageDesc = container.globalData.imageDescs[i];\n sgdHeaderView.setUint32(20 + i * 5 * 4 + 0, imageDesc.imageFlags, true);\n sgdHeaderView.setUint32(20 + i * 5 * 4 + 4, imageDesc.rgbSliceByteOffset, true);\n sgdHeaderView.setUint32(20 + i * 5 * 4 + 8, imageDesc.rgbSliceByteLength, true);\n sgdHeaderView.setUint32(20 + i * 5 * 4 + 12, imageDesc.alphaSliceByteOffset, true);\n sgdHeaderView.setUint32(20 + i * 5 * 4 + 16, imageDesc.alphaSliceByteLength, true);\n }\n\n sgdBuffer = concat([sgdHeaderBuffer, container.globalData.endpointsData, container.globalData.selectorsData, container.globalData.tablesData, container.globalData.extendedData]);\n } ///////////////////////////////////////////////////\n // Key/Value Data (KVD).\n ///////////////////////////////////////////////////\n\n\n const keyValueData = [];\n let keyValue = container.keyValue;\n\n if (!options.keepWriter) {\n keyValue = _extends({}, container.keyValue, {\n KTXwriter: KTX_WRITER\n });\n }\n\n for (const key in keyValue) {\n const value = keyValue[key];\n const keyData = encodeText(key);\n const valueData = typeof value === 'string' ? encodeText(value) : value;\n const kvByteLength = keyData.byteLength + 1 + valueData.byteLength + 1;\n const kvPadding = kvByteLength % 4 ? 4 - kvByteLength % 4 : 0; // align(4)\n\n keyValueData.push(concat([new Uint32Array([kvByteLength]), keyData, NUL, valueData, NUL, new Uint8Array(kvPadding).fill(0x00) // align(4)\n ]));\n }\n\n const kvdBuffer = concat(keyValueData); ///////////////////////////////////////////////////\n // Data Format Descriptor (DFD).\n ///////////////////////////////////////////////////\n\n if (container.dataFormatDescriptor.length !== 1 || container.dataFormatDescriptor[0].descriptorType !== KHR_DF_KHR_DESCRIPTORTYPE_BASICFORMAT) {\n throw new Error('Only BASICFORMAT Data Format Descriptor output supported.');\n }\n\n const dfd = container.dataFormatDescriptor[0];\n const dfdBuffer = new ArrayBuffer(28 + dfd.samples.length * 16);\n const dfdView = new DataView(dfdBuffer);\n const descriptorBlockSize = 24 + dfd.samples.length * 16;\n dfdView.setUint32(0, dfdBuffer.byteLength, true);\n dfdView.setUint16(4, dfd.vendorId, true);\n dfdView.setUint16(6, dfd.descriptorType, true);\n dfdView.setUint16(8, dfd.versionNumber, true);\n dfdView.setUint16(10, descriptorBlockSize, true);\n dfdView.setUint8(12, dfd.colorModel);\n dfdView.setUint8(13, dfd.colorPrimaries);\n dfdView.setUint8(14, dfd.transferFunction);\n dfdView.setUint8(15, dfd.flags);\n\n if (!Array.isArray(dfd.texelBlockDimension)) {\n throw new Error('texelBlockDimension is now an array. For dimensionality `d`, set `d - 1`.');\n }\n\n dfdView.setUint8(16, dfd.texelBlockDimension[0]);\n dfdView.setUint8(17, dfd.texelBlockDimension[1]);\n dfdView.setUint8(18, dfd.texelBlockDimension[2]);\n dfdView.setUint8(19, dfd.texelBlockDimension[3]);\n\n for (let i = 0; i < 8; i++) dfdView.setUint8(20 + i, dfd.bytesPlane[i]);\n\n for (let i = 0; i < dfd.samples.length; i++) {\n const sample = dfd.samples[i];\n const sampleByteOffset = 28 + i * 16;\n\n if (sample.channelID) {\n throw new Error('channelID has been renamed to channelType.');\n }\n\n dfdView.setUint16(sampleByteOffset + 0, sample.bitOffset, true);\n dfdView.setUint8(sampleByteOffset + 2, sample.bitLength);\n dfdView.setUint8(sampleByteOffset + 3, sample.channelType);\n dfdView.setUint8(sampleByteOffset + 4, sample.samplePosition[0]);\n dfdView.setUint8(sampleByteOffset + 5, sample.samplePosition[1]);\n dfdView.setUint8(sampleByteOffset + 6, sample.samplePosition[2]);\n dfdView.setUint8(sampleByteOffset + 7, sample.samplePosition[3]);\n\n if (sample.channelType & KHR_DF_SAMPLE_DATATYPE_SIGNED) {\n dfdView.setInt32(sampleByteOffset + 8, sample.sampleLower, true);\n dfdView.setInt32(sampleByteOffset + 12, sample.sampleUpper, true);\n } else {\n dfdView.setUint32(sampleByteOffset + 8, sample.sampleLower, true);\n dfdView.setUint32(sampleByteOffset + 12, sample.sampleUpper, true);\n }\n } ///////////////////////////////////////////////////\n // Data alignment.\n ///////////////////////////////////////////////////\n\n\n const dfdByteOffset = KTX2_ID.length + HEADER_BYTE_LENGTH + container.levels.length * 3 * 8;\n const kvdByteOffset = dfdByteOffset + dfdBuffer.byteLength;\n let sgdByteOffset = sgdBuffer.byteLength > 0 ? kvdByteOffset + kvdBuffer.byteLength : 0;\n if (sgdByteOffset % 8) sgdByteOffset += 8 - sgdByteOffset % 8; // align(8)\n ///////////////////////////////////////////////////\n // Level Index.\n ///////////////////////////////////////////////////\n\n const levelData = [];\n const levelIndex = new DataView(new ArrayBuffer(container.levels.length * 3 * 8));\n let levelDataByteOffset = (sgdByteOffset || kvdByteOffset + kvdBuffer.byteLength) + sgdBuffer.byteLength;\n\n for (let i = 0; i < container.levels.length; i++) {\n const level = container.levels[i];\n levelData.push(level.levelData);\n levelIndex.setBigUint64(i * 24 + 0, BigInt(levelDataByteOffset), true);\n levelIndex.setBigUint64(i * 24 + 8, BigInt(level.levelData.byteLength), true);\n levelIndex.setBigUint64(i * 24 + 16, BigInt(level.uncompressedByteLength), true);\n levelDataByteOffset += level.levelData.byteLength;\n } ///////////////////////////////////////////////////\n // Header.\n ///////////////////////////////////////////////////\n\n\n const headerBuffer = new ArrayBuffer(HEADER_BYTE_LENGTH);\n const headerView = new DataView(headerBuffer);\n headerView.setUint32(0, container.vkFormat, true);\n headerView.setUint32(4, container.typeSize, true);\n headerView.setUint32(8, container.pixelWidth, true);\n headerView.setUint32(12, container.pixelHeight, true);\n headerView.setUint32(16, container.pixelDepth, true);\n headerView.setUint32(20, container.layerCount, true);\n headerView.setUint32(24, container.faceCount, true);\n headerView.setUint32(28, container.levels.length, true);\n headerView.setUint32(32, container.supercompressionScheme, true);\n headerView.setUint32(36, dfdByteOffset, true);\n headerView.setUint32(40, dfdBuffer.byteLength, true);\n headerView.setUint32(44, kvdByteOffset, true);\n headerView.setUint32(48, kvdBuffer.byteLength, true);\n headerView.setBigUint64(52, BigInt(sgdBuffer.byteLength > 0 ? sgdByteOffset : 0), true);\n headerView.setBigUint64(60, BigInt(sgdBuffer.byteLength), true); ///////////////////////////////////////////////////\n // Compose.\n ///////////////////////////////////////////////////\n\n return new Uint8Array(concat([new Uint8Array(KTX2_ID).buffer, headerBuffer, levelIndex.buffer, dfdBuffer, kvdBuffer, sgdByteOffset > 0 ? new ArrayBuffer(sgdByteOffset - (kvdByteOffset + kvdBuffer.byteLength)) // align(8)\n : new ArrayBuffer(0), sgdBuffer, ...levelData]));\n}\n\nexport { KHR_DF_CHANNEL_RGBSDA_ALPHA, KHR_DF_CHANNEL_RGBSDA_BLUE, KHR_DF_CHANNEL_RGBSDA_DEPTH, KHR_DF_CHANNEL_RGBSDA_GREEN, KHR_DF_CHANNEL_RGBSDA_RED, KHR_DF_CHANNEL_RGBSDA_STENCIL, KHR_DF_FLAG_ALPHA_PREMULTIPLIED, KHR_DF_FLAG_ALPHA_STRAIGHT, KHR_DF_KHR_DESCRIPTORTYPE_BASICFORMAT, KHR_DF_MODEL_ASTC, KHR_DF_MODEL_ETC1, KHR_DF_MODEL_ETC1S, KHR_DF_MODEL_ETC2, KHR_DF_MODEL_RGBSDA, KHR_DF_MODEL_UASTC, KHR_DF_MODEL_UNSPECIFIED, KHR_DF_PRIMARIES_ACES, KHR_DF_PRIMARIES_ACESCC, KHR_DF_PRIMARIES_ADOBERGB, KHR_DF_PRIMARIES_BT2020, KHR_DF_PRIMARIES_BT601_EBU, KHR_DF_PRIMARIES_BT601_SMPTE, KHR_DF_PRIMARIES_BT709, KHR_DF_PRIMARIES_CIEXYZ, KHR_DF_PRIMARIES_DISPLAYP3, KHR_DF_PRIMARIES_NTSC1953, KHR_DF_PRIMARIES_PAL525, KHR_DF_PRIMARIES_UNSPECIFIED, KHR_DF_SAMPLE_DATATYPE_EXPONENT, KHR_DF_SAMPLE_DATATYPE_FLOAT, KHR_DF_SAMPLE_DATATYPE_LINEAR, KHR_DF_SAMPLE_DATATYPE_SIGNED, KHR_DF_TRANSFER_ACESCC, KHR_DF_TRANSFER_ACESCCT, KHR_DF_TRANSFER_ADOBERGB, KHR_DF_TRANSFER_BT1886, KHR_DF_TRANSFER_DCIP3, KHR_DF_TRANSFER_HLG_EOTF, KHR_DF_TRANSFER_HLG_OETF, KHR_DF_TRANSFER_ITU, KHR_DF_TRANSFER_LINEAR, KHR_DF_TRANSFER_NTSC, KHR_DF_TRANSFER_PAL625_EOTF, KHR_DF_TRANSFER_PAL_OETF, KHR_DF_TRANSFER_PQ_EOTF, KHR_DF_TRANSFER_PQ_OETF, KHR_DF_TRANSFER_SLOG, KHR_DF_TRANSFER_SLOG2, KHR_DF_TRANSFER_SRGB, KHR_DF_TRANSFER_ST240, KHR_DF_TRANSFER_UNSPECIFIED, KHR_DF_VENDORID_KHRONOS, KHR_DF_VERSION, KHR_SUPERCOMPRESSION_BASISLZ, KHR_SUPERCOMPRESSION_NONE, KHR_SUPERCOMPRESSION_ZLIB, KHR_SUPERCOMPRESSION_ZSTD, KTX2Container, VK_FORMAT_A1R5G5B5_UNORM_PACK16, VK_FORMAT_A2B10G10R10_SINT_PACK32, VK_FORMAT_A2B10G10R10_SNORM_PACK32, VK_FORMAT_A2B10G10R10_UINT_PACK32, VK_FORMAT_A2B10G10R10_UNORM_PACK32, VK_FORMAT_A2R10G10B10_SINT_PACK32, VK_FORMAT_A2R10G10B10_SNORM_PACK32, VK_FORMAT_A2R10G10B10_UINT_PACK32, VK_FORMAT_A2R10G10B10_UNORM_PACK32, VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT, VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT, VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT, VK_FORMAT_ASTC_10x10_SRGB_BLOCK, VK_FORMAT_ASTC_10x10_UNORM_BLOCK, VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT, VK_FORMAT_ASTC_10x5_SRGB_BLOCK, VK_FORMAT_ASTC_10x5_UNORM_BLOCK, VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT, VK_FORMAT_ASTC_10x6_SRGB_BLOCK, VK_FORMAT_ASTC_10x6_UNORM_BLOCK, VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT, VK_FORMAT_ASTC_10x8_SRGB_BLOCK, VK_FORMAT_ASTC_10x8_UNORM_BLOCK, VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT, VK_FORMAT_ASTC_12x10_SRGB_BLOCK, VK_FORMAT_ASTC_12x10_UNORM_BLOCK, VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT, VK_FORMAT_ASTC_12x12_SRGB_BLOCK, VK_FORMAT_ASTC_12x12_UNORM_BLOCK, VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT, VK_FORMAT_ASTC_4x4_SRGB_BLOCK, VK_FORMAT_ASTC_4x4_UNORM_BLOCK, VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT, VK_FORMAT_ASTC_5x4_SRGB_BLOCK, VK_FORMAT_ASTC_5x4_UNORM_BLOCK, VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT, VK_FORMAT_ASTC_5x5_SRGB_BLOCK, VK_FORMAT_ASTC_5x5_UNORM_BLOCK, VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT, VK_FORMAT_ASTC_6x5_SRGB_BLOCK, VK_FORMAT_ASTC_6x5_UNORM_BLOCK, VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT, VK_FORMAT_ASTC_6x6_SRGB_BLOCK, VK_FORMAT_ASTC_6x6_UNORM_BLOCK, VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT, VK_FORMAT_ASTC_8x5_SRGB_BLOCK, VK_FORMAT_ASTC_8x5_UNORM_BLOCK, VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT, VK_FORMAT_ASTC_8x6_SRGB_BLOCK, VK_FORMAT_ASTC_8x6_UNORM_BLOCK, VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT, VK_FORMAT_ASTC_8x8_SRGB_BLOCK, VK_FORMAT_ASTC_8x8_UNORM_BLOCK, VK_FORMAT_B10G11R11_UFLOAT_PACK32, VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16, VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16, VK_FORMAT_B4G4R4A4_UNORM_PACK16, VK_FORMAT_B5G5R5A1_UNORM_PACK16, VK_FORMAT_B5G6R5_UNORM_PACK16, VK_FORMAT_B8G8R8A8_SINT, VK_FORMAT_B8G8R8A8_SNORM, VK_FORMAT_B8G8R8A8_SRGB, VK_FORMAT_B8G8R8A8_UINT, VK_FORMAT_B8G8R8A8_UNORM, VK_FORMAT_B8G8R8_SINT, VK_FORMAT_B8G8R8_SNORM, VK_FORMAT_B8G8R8_SRGB, VK_FORMAT_B8G8R8_UINT, VK_FORMAT_B8G8R8_UNORM, VK_FORMAT_BC1_RGBA_SRGB_BLOCK, VK_FORMAT_BC1_RGBA_UNORM_BLOCK, VK_FORMAT_BC1_RGB_SRGB_BLOCK, VK_FORMAT_BC1_RGB_UNORM_BLOCK, VK_FORMAT_BC2_SRGB_BLOCK, VK_FORMAT_BC2_UNORM_BLOCK, VK_FORMAT_BC3_SRGB_BLOCK, VK_FORMAT_BC3_UNORM_BLOCK, VK_FORMAT_BC4_SNORM_BLOCK, VK_FORMAT_BC4_UNORM_BLOCK, VK_FORMAT_BC5_SNORM_BLOCK, VK_FORMAT_BC5_UNORM_BLOCK, VK_FORMAT_BC6H_SFLOAT_BLOCK, VK_FORMAT_BC6H_UFLOAT_BLOCK, VK_FORMAT_BC7_SRGB_BLOCK, VK_FORMAT_BC7_UNORM_BLOCK, VK_FORMAT_D16_UNORM, VK_FORMAT_D16_UNORM_S8_UINT, VK_FORMAT_D24_UNORM_S8_UINT, VK_FORMAT_D32_SFLOAT, VK_FORMAT_D32_SFLOAT_S8_UINT, VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, VK_FORMAT_EAC_R11G11_SNORM_BLOCK, VK_FORMAT_EAC_R11G11_UNORM_BLOCK, VK_FORMAT_EAC_R11_SNORM_BLOCK, VK_FORMAT_EAC_R11_UNORM_BLOCK, VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK, VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK, VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK, VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK, VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK, VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK, VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16, VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16, VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG, VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG, VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG, VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG, VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG, VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG, VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG, VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG, VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16, VK_FORMAT_R10X6G10X6_UNORM_2PACK16, VK_FORMAT_R10X6_UNORM_PACK16, VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16, VK_FORMAT_R12X4G12X4_UNORM_2PACK16, VK_FORMAT_R12X4_UNORM_PACK16, VK_FORMAT_R16G16B16A16_SFLOAT, VK_FORMAT_R16G16B16A16_SINT, VK_FORMAT_R16G16B16A16_SNORM, VK_FORMAT_R16G16B16A16_UINT, VK_FORMAT_R16G16B16A16_UNORM, VK_FORMAT_R16G16B16_SFLOAT, VK_FORMAT_R16G16B16_SINT, VK_FORMAT_R16G16B16_SNORM, VK_FORMAT_R16G16B16_UINT, VK_FORMAT_R16G16B16_UNORM, VK_FORMAT_R16G16_SFLOAT, VK_FORMAT_R16G16_SINT, VK_FORMAT_R16G16_SNORM, VK_FORMAT_R16G16_UINT, VK_FORMAT_R16G16_UNORM, VK_FORMAT_R16_SFLOAT, VK_FORMAT_R16_SINT, VK_FORMAT_R16_SNORM, VK_FORMAT_R16_UINT, VK_FORMAT_R16_UNORM, VK_FORMAT_R32G32B32A32_SFLOAT, VK_FORMAT_R32G32B32A32_SINT, VK_FORMAT_R32G32B32A32_UINT, VK_FORMAT_R32G32B32_SFLOAT, VK_FORMAT_R32G32B32_SINT, VK_FORMAT_R32G32B32_UINT, VK_FORMAT_R32G32_SFLOAT, VK_FORMAT_R32G32_SINT, VK_FORMAT_R32G32_UINT, VK_FORMAT_R32_SFLOAT, VK_FORMAT_R32_SINT, VK_FORMAT_R32_UINT, VK_FORMAT_R4G4B4A4_UNORM_PACK16, VK_FORMAT_R4G4_UNORM_PACK8, VK_FORMAT_R5G5B5A1_UNORM_PACK16, VK_FORMAT_R5G6B5_UNORM_PACK16, VK_FORMAT_R64G64B64A64_SFLOAT, VK_FORMAT_R64G64B64A64_SINT, VK_FORMAT_R64G64B64A64_UINT, VK_FORMAT_R64G64B64_SFLOAT, VK_FORMAT_R64G64B64_SINT, VK_FORMAT_R64G64B64_UINT, VK_FORMAT_R64G64_SFLOAT, VK_FORMAT_R64G64_SINT, VK_FORMAT_R64G64_UINT, VK_FORMAT_R64_SFLOAT, VK_FORMAT_R64_SINT, VK_FORMAT_R64_UINT, VK_FORMAT_R8G8B8A8_SINT, VK_FORMAT_R8G8B8A8_SNORM, VK_FORMAT_R8G8B8A8_SRGB, VK_FORMAT_R8G8B8A8_UINT, VK_FORMAT_R8G8B8A8_UNORM, VK_FORMAT_R8G8B8_SINT, VK_FORMAT_R8G8B8_SNORM, VK_FORMAT_R8G8B8_SRGB, VK_FORMAT_R8G8B8_UINT, VK_FORMAT_R8G8B8_UNORM, VK_FORMAT_R8G8_SINT, VK_FORMAT_R8G8_SNORM, VK_FORMAT_R8G8_SRGB, VK_FORMAT_R8G8_UINT, VK_FORMAT_R8G8_UNORM, VK_FORMAT_R8_SINT, VK_FORMAT_R8_SNORM, VK_FORMAT_R8_SRGB, VK_FORMAT_R8_UINT, VK_FORMAT_R8_UNORM, VK_FORMAT_S8_UINT, VK_FORMAT_UNDEFINED, VK_FORMAT_X8_D24_UNORM_PACK32, read, write };\n//# sourceMappingURL=ktx-parse.modern.js.map\n","import{ExtensionProperty as e,PropertyType as t,Extension as s,BufferUtils as n,WriterContext as r,Primitive as o,Root as i,AnimationSampler as a,AnimationChannel as c,Accessor as u,MathUtils as l,GLB_BUFFER as h,ImageUtils as f,getBounds as g,ColorUtils as p,TextureInfo as x,TextureChannel as d}from\"@gltf-transform/core\";import{read as T,KHR_DF_MODEL_ETC1S as m,KHR_DF_MODEL_UASTC as E}from\"ktx-parse\";const I=\"INSTANCE_ATTRIBUTE\";class R extends e{init(){this.extensionName=\"EXT_mesh_gpu_instancing\",this.propertyType=\"InstancedMesh\",this.parentTypes=[t.NODE]}getDefaults(){return Object.assign(super.getDefaults(),{attributes:{}})}getAttribute(e){return this.getRefMap(\"attributes\",e)}setAttribute(e,t){return this.setRefMap(\"attributes\",e,t,{usage:\"INSTANCE_ATTRIBUTE\"})}listAttributes(){return this.listRefMapValues(\"attributes\")}listSemantics(){return this.listRefMapKeys(\"attributes\")}}R.EXTENSION_NAME=\"EXT_mesh_gpu_instancing\";const N=\"EXT_mesh_gpu_instancing\";class y extends s{constructor(...e){super(...e),this.extensionName=N,this.provideTypes=[t.NODE],this.prewriteTypes=[t.ACCESSOR]}createInstancedMesh(){return new R(this.document.getGraph())}read(e){return(e.jsonDoc.json.nodes||[]).forEach((t,s)=>{if(!t.extensions||!t.extensions[N])return;const n=t.extensions[N],r=this.createInstancedMesh();for(const t in n.attributes)r.setAttribute(t,e.accessors[n.attributes[t]]);e.nodes[s].setExtension(N,r)}),this}prewrite(e){e.accessorUsageGroupedByParent.add(\"INSTANCE_ATTRIBUTE\");for(const t of this.properties)for(const s of t.listAttributes())e.addAccessorToUsageGroup(s,\"INSTANCE_ATTRIBUTE\");return this}write(e){const t=e.jsonDoc;return this.document.getRoot().listNodes().forEach(s=>{const n=s.getExtension(N);if(n){const r=e.nodeIndexMap.get(s),o=t.json.nodes[r],i={attributes:{}};n.listSemantics().forEach(t=>{const s=n.getAttribute(t);i.attributes[t]=e.accessorIndexMap.get(s)}),o.extensions=o.extensions||{},o.extensions[N]=i}}),this}}function _(){return(_=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var n in s)Object.prototype.hasOwnProperty.call(s,n)&&(e[n]=s[n])}return e}).apply(this,arguments)}var A,S,C;y.EXTENSION_NAME=N,function(e){e.QUANTIZE=\"quantize\",e.FILTER=\"filter\"}(A||(A={})),function(e){e.ATTRIBUTES=\"ATTRIBUTES\",e.TRIANGLES=\"TRIANGLES\",e.INDICES=\"INDICES\"}(S||(S={})),function(e){e.NONE=\"NONE\",e.OCTAHEDRAL=\"OCTAHEDRAL\",e.QUATERNION=\"QUATERNION\",e.EXPONENTIAL=\"EXPONENTIAL\"}(C||(C={}));const{BYTE:M,SHORT:O,FLOAT:w}=u.ComponentType,{encodeNormalizedInt:D,decodeNormalizedInt:b}=l;function F(e,t,s,r){const{filter:o,bits:i}=r,a={array:e.getArray(),byteStride:e.getElementSize()*e.getComponentSize(),componentType:e.getComponentType(),normalized:e.getNormalized()};if(s!==S.ATTRIBUTES)return a;if(o!==C.NONE){let s=e.getNormalized()?function(e){const t=e.getComponentType(),s=e.getArray(),n=new Float32Array(s.length);for(let e=0;e<s.length;e++)n[e]=b(s[e],t);return n}(e):new Float32Array(a.array);switch(o){case C.EXPONENTIAL:a.byteStride=4*e.getElementSize(),a.componentType=w,a.normalized=!1,a.array=t.encodeFilterExp(s,e.getCount(),a.byteStride,i);break;case C.OCTAHEDRAL:a.byteStride=i>8?8:4,a.componentType=i>8?O:M,a.normalized=!0,s=3===e.getElementSize()?function(e){const t=new Float32Array(4*e.length/3);for(let s=0,n=e.length/3;s<n;s++)t[4*s]=e[3*s],t[4*s+1]=e[3*s+1],t[4*s+2]=e[3*s+2];return t}(s):s,a.array=t.encodeFilterOct(s,e.getCount(),a.byteStride,i);break;case C.QUATERNION:a.byteStride=8,a.componentType=O,a.normalized=!0,a.array=t.encodeFilterQuat(s,e.getCount(),a.byteStride,i);break;default:throw new Error(\"Invalid filter.\")}a.min=e.getMin([]),a.max=e.getMax([]),e.getNormalized()&&(a.min=a.min.map(t=>b(t,e.getComponentType())),a.max=a.max.map(t=>b(t,e.getComponentType()))),a.normalized&&(a.min=a.min.map(e=>D(e,a.componentType)),a.max=a.max.map(e=>D(e,a.componentType)))}else a.byteStride%4&&(a.array=function(e,t){const s=n.padNumber(e.BYTES_PER_ELEMENT*t)/e.BYTES_PER_ELEMENT,r=new e.constructor(e.length/t*s);for(let n=0;n*t<e.length;n++)for(let o=0;o<t;o++)r[n*s+o]=e[n*t+o];return r}(a.array,e.getElementSize()),a.byteStride=a.array.byteLength/e.getCount());return a}function j(e,t){return t===r.BufferViewUsage.ELEMENT_ARRAY_BUFFER?e.listParents().some(e=>e instanceof o&&e.getMode()===o.Mode.TRIANGLES)?S.TRIANGLES:S.INDICES:S.ATTRIBUTES}function v(e,t){const s=t.getGraph().listParentEdges(e).filter(e=>!(e.getParent()instanceof i));for(const t of s){const s=t.getName(),n=t.getAttributes().key||\"\";if(\"indices\"===s)return{filter:C.NONE};if(\"attributes\"===s){if(\"POSITION\"===n)return{filter:C.NONE};if(\"TEXCOORD_0\"===n)return{filter:C.NONE};if(\"NORMAL\"===n)return{filter:C.OCTAHEDRAL,bits:8};if(\"TANGENT\"===n)return{filter:C.OCTAHEDRAL,bits:8};if(n.startsWith(\"JOINTS_\"))return{filter:C.NONE};if(n.startsWith(\"WEIGHTS_\"))return{filter:C.NONE}}if(\"output\"===s){const t=k(e);return\"rotation\"===t?{filter:C.QUATERNION,bits:16}:\"translation\"===t||\"scale\"===t?{filter:C.EXPONENTIAL,bits:12}:{filter:C.NONE}}if(\"input\"===s)return{filter:C.NONE};if(\"inverseBindMatrices\"===s)return{filter:C.NONE}}return{filter:C.NONE}}function k(e){for(const t of e.listParents())if(t instanceof a)for(const e of t.listParents())if(e instanceof c)return e.getTargetPath();return null}const B=\"EXT_meshopt_compression\",G={method:A.QUANTIZE};class L extends s{constructor(...e){super(...e),this.extensionName=B,this.prereadTypes=[t.BUFFER,t.PRIMITIVE],this.prewriteTypes=[t.BUFFER,t.ACCESSOR],this.readDependencies=[\"meshopt.decoder\"],this.writeDependencies=[\"meshopt.encoder\"],this._decoder=null,this._decoderFallbackBufferMap=new Map,this._encoder=null,this._encoderOptions=G,this._encoderFallbackBuffer=null,this._encoderBufferViews={},this._encoderBufferViewData={},this._encoderBufferViewAccessors={}}install(e,t){return\"meshopt.decoder\"===e&&(this._decoder=t),\"meshopt.encoder\"===e&&(this._encoder=t),this}setEncoderOptions(e){return this._encoderOptions=_({},G,e),this}preread(e,s){if(!this._decoder){if(!this.isRequired())return this;throw new Error(`[${B}] Please install extension dependency, \"meshopt.decoder\".`)}if(!this._decoder.supported){if(!this.isRequired())return this;throw new Error(`[${B}]: Missing WASM support.`)}return s===t.BUFFER?this._prereadBuffers(e):s===t.PRIMITIVE&&this._prereadPrimitives(e),this}_prereadBuffers(e){const t=e.jsonDoc;(t.json.bufferViews||[]).forEach((s,r)=>{if(!s.extensions||!s.extensions[B])return;const o=s.extensions[B],i=o.byteOffset||0,a=o.byteLength||0,c=o.count,u=o.byteStride,l=new Uint8Array(c*u),f=t.json.buffers[o.buffer],g=n.toView(f.uri?t.resources[f.uri]:t.resources[h],i,a);this._decoder.decodeGltfBuffer(l,c,u,g,o.mode,o.filter),e.bufferViews[r]=l})}_prereadPrimitives(e){const t=e.jsonDoc;(t.json.bufferViews||[]).forEach(s=>{var n;s.extensions&&s.extensions[B]&&(n=t.json.buffers[s.buffer]).extensions&&n.extensions.EXT_meshopt_compression&&n.extensions.EXT_meshopt_compression.fallback&&this._decoderFallbackBufferMap.set(e.buffers[s.buffer],e.buffers[s.extensions[B].buffer])})}read(e){if(!this.isRequired())return this;for(const[e,t]of this._decoderFallbackBufferMap){for(const s of e.listParents())s instanceof u&&s.swap(e,t);e.dispose()}return this}prewrite(e,s){return s===t.ACCESSOR?this._prewriteAccessors(e):s===t.BUFFER&&this._prewriteBuffers(e),this}_prewriteAccessors(e){const t=e.jsonDoc.json,s=this._encoder,n=this._encoderOptions,o=this.document.createBuffer(),i=this.document.getRoot().listBuffers().indexOf(o);this._encoderFallbackBuffer=o,this._encoderBufferViews={},this._encoderBufferViewData={},this._encoderBufferViewAccessors={};for(const o of this.document.getRoot().listAccessors()){if(\"weights\"===k(o))continue;if(o.getSparse())continue;const a=e.getAccessorUsage(o),c=j(o,a),u=n.method===A.FILTER?v(o,this.document):{filter:C.NONE},l=F(o,s,c,u),{array:h,byteStride:f}=l,g=o.getBuffer();if(!g)throw new Error(`${B}: Missing buffer for accessor.`);const p=this.document.getRoot().listBuffers().indexOf(g),x=[a,c,u.filter,f,p].join(\":\");let d=this._encoderBufferViews[x],T=this._encoderBufferViewData[x],m=this._encoderBufferViewAccessors[x];d&&T||(m=this._encoderBufferViewAccessors[x]=[],T=this._encoderBufferViewData[x]=[],d=this._encoderBufferViews[x]={buffer:i,target:r.USAGE_TO_TARGET[a],byteOffset:0,byteLength:0,byteStride:a===r.BufferViewUsage.ARRAY_BUFFER?f:void 0,extensions:{[B]:{buffer:p,byteOffset:0,byteLength:0,mode:c,filter:u.filter!==C.NONE?u.filter:void 0,byteStride:f,count:0}}});const E=e.createAccessorDef(o);E.componentType=l.componentType,E.normalized=l.normalized,E.byteOffset=d.byteLength,E.min&&l.min&&(E.min=l.min),E.max&&l.max&&(E.max=l.max),e.accessorIndexMap.set(o,t.accessors.length),t.accessors.push(E),m.push(E),T.push(new Uint8Array(h.buffer,h.byteOffset,h.byteLength)),d.byteLength+=h.byteLength,d.extensions.EXT_meshopt_compression.count+=o.getCount()}}_prewriteBuffers(e){const t=this._encoder;for(const s in this._encoderBufferViews){const r=this._encoderBufferViews[s],o=this._encoderBufferViewData[s],i=this.document.getRoot().listBuffers()[r.extensions[B].buffer],a=e.otherBufferViews.get(i)||[],{count:c,byteStride:u,mode:l}=r.extensions[B],h=n.concat(o),f=t.encodeGltfBuffer(h,c,u,l),g=n.pad(f);r.extensions[B].byteLength=f.byteLength,o.length=0,o.push(g),a.push(g),e.otherBufferViews.set(i,a)}}write(e){let t=0;for(const s in this._encoderBufferViews){const r=this._encoderBufferViews[s],o=e.otherBufferViewsIndexMap.get(this._encoderBufferViewData[s][0]),i=this._encoderBufferViewAccessors[s];for(const e of i)e.bufferView=o;const a=e.jsonDoc.json.bufferViews[o],c=a.byteOffset||0;Object.assign(a,r),a.byteOffset=t,a.extensions[B].byteOffset=c,t+=n.padNumber(r.byteLength)}const s=this._encoderFallbackBuffer,r=e.bufferIndexMap.get(s),o=e.jsonDoc.json.buffers[r];return o.byteLength=t,o.extensions={[B]:{fallback:!0}},s.dispose(),this}}L.EXTENSION_NAME=B,L.EncoderMethod=A;const H=\"EXT_texture_avif\";class U{match(e){return e.length>=12&&\"ftypavif\"===n.decodeText(e.slice(4,12))}getSize(e){if(!this.match(e))return null;const t=new DataView(e.buffer,e.byteOffset,e.byteLength);let s=P(t,0);if(!s)return null;let n=s.end;for(;s=P(t,n);)if(\"meta\"===s.type)n=s.start+4;else if(\"iprp\"===s.type||\"ipco\"===s.type)n=s.start;else{if(\"ispe\"===s.type)return[t.getUint32(s.start+4),t.getUint32(s.start+8)];if(\"mdat\"===s.type)break;n=s.end}return null}getChannels(e){return 4}}class V extends s{constructor(...e){super(...e),this.extensionName=H,this.prereadTypes=[t.TEXTURE]}static register(){f.registerFormat(\"image/avif\",new U)}preread(e){return(e.jsonDoc.json.textures||[]).forEach(e=>{e.extensions&&e.extensions[H]&&(e.source=e.extensions[H].source)}),this}read(e){return this}write(e){const t=e.jsonDoc;return this.document.getRoot().listTextures().forEach(s=>{if(\"image/avif\"===s.getMimeType()){const n=e.imageIndexMap.get(s);(t.json.textures||[]).forEach(e=>{e.source===n&&(e.extensions=e.extensions||{},e.extensions[H]={source:e.source},delete e.source)})}}),this}}function P(e,t){if(e.byteLength<4+t)return null;const s=e.getUint32(t);return e.byteLength<s+t||s<8?null:{type:n.decodeText(new Uint8Array(e.buffer,e.byteOffset+t+4,4)),start:t+8,end:t+s}}V.EXTENSION_NAME=H;const X=\"EXT_texture_webp\";class K{match(e){return e.length>=12&&87===e[8]&&69===e[9]&&66===e[10]&&80===e[11]}getSize(e){const t=n.decodeText(e.slice(0,4)),s=n.decodeText(e.slice(8,12));if(\"RIFF\"!==t||\"WEBP\"!==s)return null;const r=new DataView(e.buffer,e.byteOffset);let o=12;for(;o<r.byteLength;){const e=n.decodeText(new Uint8Array([r.getUint8(o),r.getUint8(o+1),r.getUint8(o+2),r.getUint8(o+3)])),t=r.getUint32(o+4,!0);if(\"VP8 \"===e)return[16383&r.getInt16(o+14,!0),16383&r.getInt16(o+16,!0)];if(\"VP8L\"===e){const e=r.getUint8(o+9),t=r.getUint8(o+10),s=r.getUint8(o+11);return[1+((63&t)<<8|e),1+((15&r.getUint8(o+12))<<10|s<<2|(192&t)>>6)]}o+=8+t+t%2}return null}getChannels(e){return 4}}class z extends s{constructor(...e){super(...e),this.extensionName=X,this.prereadTypes=[t.TEXTURE]}static register(){f.registerFormat(\"image/webp\",new K)}preread(e){return(e.jsonDoc.json.textures||[]).forEach(e=>{e.extensions&&e.extensions[X]&&(e.source=e.extensions[X].source)}),this}read(e){return this}write(e){const t=e.jsonDoc;return this.document.getRoot().listTextures().forEach(s=>{if(\"image/webp\"===s.getMimeType()){const n=e.imageIndexMap.get(s);(t.json.textures||[]).forEach(e=>{e.source===n&&(e.extensions=e.extensions||{},e.extensions[X]={source:e.source},delete e.source)})}}),this}}z.EXTENSION_NAME=X;const $=\"KHR_draco_mesh_compression\";let q,Y,Q,W;function J(e,t){const s=new q.DecoderBuffer;try{if(s.Init(t,t.length),e.GetEncodedGeometryType(s)!==q.TRIANGULAR_MESH)throw new Error(`[${$}] Unknown geometry type.`);const n=new q.Mesh;if(!e.DecodeBufferToMesh(s,n).ok()||0===n.ptr)throw new Error(`[${$}] Decoding failure.`);return n}finally{q.destroy(s)}}function Z(e,t){const s=3*t.num_faces();let n,r;if(t.num_points()<=65534){const o=s*Uint16Array.BYTES_PER_ELEMENT;n=q._malloc(o),e.GetTrianglesUInt16Array(t,o,n),r=new Uint16Array(q.HEAPU16.buffer,n,s).slice()}else{const o=s*Uint32Array.BYTES_PER_ELEMENT;n=q._malloc(o),e.GetTrianglesUInt32Array(t,o,n),r=new Uint32Array(q.HEAPU32.buffer,n,s).slice()}return q._free(n),r}function ee(e,t,s,n){const r=Q[n.componentType],o=Y[n.componentType],i=s.num_components(),a=t.num_points()*i,c=a*o.BYTES_PER_ELEMENT,u=q._malloc(c);e.GetAttributeDataArrayForAllPoints(t,s,r,c,u);const l=new o(q.HEAPF32.buffer,u,a).slice();return q._free(u),l}var te,se;!function(e){e[e.EDGEBREAKER=1]=\"EDGEBREAKER\",e[e.SEQUENTIAL=0]=\"SEQUENTIAL\"}(te||(te={})),function(e){e.POSITION=\"POSITION\",e.NORMAL=\"NORMAL\",e.COLOR=\"COLOR\",e.TEX_COORD=\"TEX_COORD\",e.GENERIC=\"GENERIC\"}(se||(se={}));const ne={[se.POSITION]:14,[se.NORMAL]:10,[se.COLOR]:8,[se.TEX_COORD]:12,[se.GENERIC]:12},re={decodeSpeed:5,encodeSpeed:5,method:te.EDGEBREAKER,quantizationBits:ne,quantizationVolume:\"mesh\"};function oe(e,t=re){const s=_({},re,t);s.quantizationBits=_({},ne,t.quantizationBits);const n=new W.Encoder,r=new W.MeshBuilder,o=new W.Mesh,i={},a=new W.DracoInt8Array,c=e.listTargets().length>0;let u=!1;for(const t of e.listSemantics()){const a=e.getAttribute(t);if(a.getSparse()){u=!0;continue}const c=ie(t),l=ae(r,a.getComponentType(),o,W[c],a.getCount(),a.getElementSize(),a.getArray());if(-1===l)throw new Error(`Error compressing \"${t}\" attribute.`);if(i[t]=l,\"mesh\"===s.quantizationVolume||\"POSITION\"!==t)n.SetAttributeQuantization(W[c],s.quantizationBits[c]);else{if(\"object\"!=typeof s.quantizationVolume)throw new Error(\"Invalid quantization volume state.\");{const{quantizationVolume:e}=s,t=Math.max(e.max[0]-e.min[0],e.max[1]-e.min[1],e.max[2]-e.min[2]);n.SetAttributeExplicitQuantization(W[c],s.quantizationBits[c],a.getElementSize(),e.min,t)}}}const l=e.getIndices();if(!l)throw new ce(\"Primitive must have indices.\");r.AddFacesToMesh(o,l.getCount()/3,l.getArray()),n.SetSpeedOptions(s.encodeSpeed,s.decodeSpeed),n.SetTrackEncodedProperties(!0),n.SetEncodingMethod(s.method===te.SEQUENTIAL||c||u?W.MESH_SEQUENTIAL_ENCODING:W.MESH_EDGEBREAKER_ENCODING);const h=n.EncodeMeshToDracoBuffer(o,a);if(h<=0)throw new ce(\"Error applying Draco compression.\");const f=new Uint8Array(h);for(let e=0;e<h;++e)f[e]=a.GetValue(e);const g=e.getAttribute(\"POSITION\").getCount(),p=n.GetNumberOfEncodedPoints(),x=3*n.GetNumberOfEncodedFaces();if((c||u)&&p!==g)throw new ce('Compression reduced vertex count unexpectedly, corrupting mesh data. Applying the \"weld\" function before compression may resolve the issue. See: https://github.com/google/draco/issues/929');return W.destroy(a),W.destroy(o),W.destroy(r),W.destroy(n),{numVertices:p,numIndices:x,data:f,attributeIDs:i}}function ie(e){return\"POSITION\"===e?se.POSITION:\"NORMAL\"===e?se.NORMAL:e.startsWith(\"COLOR_\")?se.COLOR:e.startsWith(\"TEXCOORD_\")?se.TEX_COORD:se.GENERIC}function ae(e,t,s,n,r,o,i){switch(t){case u.ComponentType.UNSIGNED_BYTE:return e.AddUInt8Attribute(s,n,r,o,i);case u.ComponentType.BYTE:return e.AddInt8Attribute(s,n,r,o,i);case u.ComponentType.UNSIGNED_SHORT:return e.AddUInt16Attribute(s,n,r,o,i);case u.ComponentType.SHORT:return e.AddInt16Attribute(s,n,r,o,i);case u.ComponentType.UNSIGNED_INT:return e.AddUInt32Attribute(s,n,r,o,i);case u.ComponentType.FLOAT:return e.AddFloatAttribute(s,n,r,o,i);default:throw new Error(`Unexpected component type, \"${t}\".`)}}class ce extends Error{}const ue=\"KHR_draco_mesh_compression\";class le extends s{constructor(...e){super(...e),this.extensionName=ue,this.prereadTypes=[t.PRIMITIVE],this.prewriteTypes=[t.ACCESSOR],this.readDependencies=[\"draco3d.decoder\"],this.writeDependencies=[\"draco3d.encoder\"],this._decoderModule=null,this._encoderModule=null,this._encoderOptions={}}install(e,t){return\"draco3d.decoder\"===e&&(this._decoderModule=t,q=this._decoderModule,Y={[u.ComponentType.FLOAT]:Float32Array,[u.ComponentType.UNSIGNED_INT]:Uint32Array,[u.ComponentType.UNSIGNED_SHORT]:Uint16Array,[u.ComponentType.UNSIGNED_BYTE]:Uint8Array,[u.ComponentType.SHORT]:Int16Array,[u.ComponentType.BYTE]:Int8Array},Q={[u.ComponentType.FLOAT]:q.DT_FLOAT32,[u.ComponentType.UNSIGNED_INT]:q.DT_UINT32,[u.ComponentType.UNSIGNED_SHORT]:q.DT_UINT16,[u.ComponentType.UNSIGNED_BYTE]:q.DT_UINT8,[u.ComponentType.SHORT]:q.DT_INT16,[u.ComponentType.BYTE]:q.DT_INT8}),\"draco3d.encoder\"===e&&(this._encoderModule=t,W=this._encoderModule),this}setEncoderOptions(e){return this._encoderOptions=e,this}preread(e){if(!this._decoderModule)throw new Error(`[${ue}] Please install extension dependency, \"draco3d.decoder\".`);const t=this.document.getLogger(),s=e.jsonDoc,r=new Map;try{const o=s.json.meshes||[];for(const i of o)for(const o of i.primitives){if(!o.extensions||!o.extensions[ue])continue;const i=o.extensions[ue];let[a,c]=r.get(i.bufferView)||[];if(!c||!a){const e=s.json.bufferViews[i.bufferView],o=s.json.buffers[e.buffer],u=n.toView(o.uri?s.resources[o.uri]:s.resources[h],e.byteOffset||0,e.byteLength);a=new this._decoderModule.Decoder,c=J(a,u),r.set(i.bufferView,[a,c]),t.debug(`[${ue}] Decompressed ${u.byteLength} bytes.`)}for(const t in o.attributes){const s=e.jsonDoc.json.accessors[o.attributes[t]],n=a.GetAttributeByUniqueId(c,i.attributes[t]),r=ee(a,c,n,s);e.accessors[o.attributes[t]].setArray(r)}void 0!==o.indices&&e.accessors[o.indices].setArray(Z(a,c))}}finally{for(const[e,t]of Array.from(r.values()))this._decoderModule.destroy(e),this._decoderModule.destroy(t)}return this}read(e){return this}prewrite(e,s){if(!this._encoderModule)throw new Error(`[${ue}] Please install extension dependency, \"draco3d.encoder\".`);const n=this.document.getLogger();n.debug(`[${ue}] Compression options: ${JSON.stringify(this._encoderOptions)}`);const r=function(e){const s=e.getLogger(),n=new Set,r=new Set;for(const t of e.getRoot().listMeshes())for(const e of t.listPrimitives())e.getIndices()?e.getMode()!==o.Mode.TRIANGLES?(r.add(e),s.warn(`[${ue}] Skipping Draco compression on non-TRIANGLES primitive.`)):n.add(e):(r.add(e),s.warn(`[${ue}] Skipping Draco compression on non-indexed primitive.`));const i=e.getRoot().listAccessors(),a=new Map;for(let e=0;e<i.length;e++)a.set(i[e],e);const c=new Map,u=new Set,l=new Map;for(const t of Array.from(n)){let s=he(t,a);if(u.has(s))l.set(t,s);else{if(c.has(t.getIndices())){const s=t.getIndices(),n=s.clone();a.set(n,e.getRoot().listAccessors().length-1),t.swap(s,n)}for(const s of t.listAttributes())if(c.has(s)){const n=s.clone();a.set(n,e.getRoot().listAccessors().length-1),t.swap(s,n)}s=he(t,a),u.add(s),l.set(t,s),c.set(t.getIndices(),s);for(const e of t.listAttributes())c.set(e,s)}}for(const e of Array.from(c.keys())){const s=new Set(e.listParents().map(e=>e.propertyType));if(2!==s.size||!s.has(t.PRIMITIVE)||!s.has(t.ROOT))throw new Error(`[${ue}] Compressed accessors must only be used as indices or vertex attributes.`)}for(const e of Array.from(n)){const t=l.get(e),s=e.getIndices();if(c.get(s)!==t||e.listAttributes().some(e=>c.get(e)!==t))throw new Error(`[${ue}] Draco primitives must share all, or no, accessors.`)}for(const e of Array.from(r)){const t=e.getIndices();if(c.has(t)||e.listAttributes().some(e=>c.has(e)))throw new Error(`[${ue}] Accessor cannot be shared by compressed and uncompressed primitives.`)}return l}(this.document),i=new Map;let a=\"mesh\";\"scene\"===this._encoderOptions.quantizationVolume&&(1!==this.document.getRoot().listScenes().length?n.warn(`[${ue}]: quantizationVolume=scene requires exactly 1 scene.`):a=g(this.document.getRoot().listScenes().pop()));for(const t of Array.from(r.keys())){const s=r.get(t);if(!s)throw new Error(\"Unexpected primitive.\");if(i.has(s)){i.set(s,i.get(s));continue}const o=t.getIndices(),c=e.jsonDoc.json.accessors;let u;try{u=oe(t,_({},this._encoderOptions,{quantizationVolume:a}))}catch(e){if(e instanceof ce){n.warn(`[${ue}]: ${e.message} Skipping primitive compression.`);continue}throw e}i.set(s,u);const l=e.createAccessorDef(o);l.count=u.numIndices,e.accessorIndexMap.set(o,c.length),c.push(l);for(const s of t.listSemantics()){const n=t.getAttribute(s);if(void 0===u.attributeIDs[s])continue;const r=e.createAccessorDef(n);r.count=u.numVertices,e.accessorIndexMap.set(n,c.length),c.push(r)}const h=t.getAttribute(\"POSITION\").getBuffer()||this.document.getRoot().listBuffers()[0];e.otherBufferViews.has(h)||e.otherBufferViews.set(h,[]),e.otherBufferViews.get(h).push(u.data)}return n.debug(`[${ue}] Compressed ${r.size} primitives.`),e.extensionData[ue]={primitiveHashMap:r,primitiveEncodingMap:i},this}write(e){const t=e.extensionData[ue];for(const s of this.document.getRoot().listMeshes()){const n=e.jsonDoc.json.meshes[e.meshIndexMap.get(s)];for(let r=0;r<s.listPrimitives().length;r++){const o=s.listPrimitives()[r],i=n.primitives[r],a=t.primitiveHashMap.get(o);if(!a)continue;const c=t.primitiveEncodingMap.get(a);c&&(i.extensions=i.extensions||{},i.extensions[ue]={bufferView:e.otherBufferViewsIndexMap.get(c.data),attributes:c.attributeIDs})}}if(!t.primitiveHashMap.size){const t=e.jsonDoc.json;t.extensionsUsed=(t.extensionsUsed||[]).filter(e=>e!==ue),t.extensionsRequired=(t.extensionsRequired||[]).filter(e=>e!==ue)}return this}}function he(e,t){const s=[],n=e.getIndices();s.push(t.get(n));for(const n of e.listAttributes())s.push(t.get(n));return s.sort().join(\"|\")}le.EXTENSION_NAME=ue,le.EncoderMethod=te;class fe extends e{init(){this.extensionName=\"KHR_lights_punctual\",this.propertyType=\"Light\",this.parentTypes=[t.NODE]}getDefaults(){return Object.assign(super.getDefaults(),{color:[1,1,1],intensity:1,type:fe.Type.POINT,range:null,innerConeAngle:0,outerConeAngle:Math.PI/4})}getColor(){return this.get(\"color\")}setColor(e){return this.set(\"color\",e)}getColorHex(){return p.factorToHex(this.getColor())}setColorHex(e){const t=this.getColor().slice();return p.hexToFactor(e,t),this.setColor(t)}getIntensity(){return this.get(\"intensity\")}setIntensity(e){return this.set(\"intensity\",e)}getType(){return this.get(\"type\")}setType(e){return this.set(\"type\",e)}getRange(){return this.get(\"range\")}setRange(e){return this.set(\"range\",e)}getInnerConeAngle(){return this.get(\"innerConeAngle\")}setInnerConeAngle(e){return this.set(\"innerConeAngle\",e)}getOuterConeAngle(){return this.get(\"outerConeAngle\")}setOuterConeAngle(e){return this.set(\"outerConeAngle\",e)}}fe.EXTENSION_NAME=\"KHR_lights_punctual\",fe.Type={POINT:\"point\",SPOT:\"spot\",DIRECTIONAL:\"directional\"};const ge=\"KHR_lights_punctual\";class pe extends s{constructor(...e){super(...e),this.extensionName=ge}createLight(e=\"\"){return new fe(this.document.getGraph(),e)}read(e){const t=e.jsonDoc;if(!t.json.extensions||!t.json.extensions[ge])return this;const s=(t.json.extensions[ge].lights||[]).map(e=>{var t,s;const n=this.createLight().setName(e.name||\"\").setType(e.type);return void 0!==e.color&&n.setColor(e.color),void 0!==e.intensity&&n.setIntensity(e.intensity),void 0!==e.range&&n.setRange(e.range),void 0!==(null==(t=e.spot)?void 0:t.innerConeAngle)&&n.setInnerConeAngle(e.spot.innerConeAngle),void 0!==(null==(s=e.spot)?void 0:s.outerConeAngle)&&n.setOuterConeAngle(e.spot.outerConeAngle),n});return t.json.nodes.forEach((t,n)=>{t.extensions&&t.extensions[ge]&&e.nodes[n].setExtension(ge,s[t.extensions[ge].light])}),this}write(e){const t=e.jsonDoc;if(0===this.properties.size)return this;const s=[],n=new Map;for(const e of this.properties){const t=e,r={type:t.getType()};l.eq(t.getColor(),[1,1,1])||(r.color=t.getColor()),1!==t.getIntensity()&&(r.intensity=t.getIntensity()),null!=t.getRange()&&(r.range=t.getRange()),t.getName()&&(r.name=t.getName()),t.getType()===fe.Type.SPOT&&(r.spot={innerConeAngle:t.getInnerConeAngle(),outerConeAngle:t.getOuterConeAngle()}),s.push(r),n.set(t,s.length-1)}return this.document.getRoot().listNodes().forEach(s=>{const r=s.getExtension(ge);if(r){const o=e.nodeIndexMap.get(s),i=t.json.nodes[o];i.extensions=i.extensions||{},i.extensions[ge]={light:n.get(r)}}}),t.json.extensions=t.json.extensions||{},t.json.extensions[ge]={lights:s},this}}pe.EXTENSION_NAME=ge;const{R:xe,G:de}=d;class Te extends e{init(){this.extensionName=\"KHR_materials_anisotropy\",this.propertyType=\"Anisotropy\",this.parentTypes=[t.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{anisotropyStrength:0,anisotropyRotation:0,anisotropyTexture:null,anisotropyTextureInfo:new x(this.graph,\"anisotropyTextureInfo\")})}getAnisotropyStrength(){return this.get(\"anisotropyStrength\")}setAnisotropyStrength(e){return this.set(\"anisotropyStrength\",e)}getAnisotropyRotation(){return this.get(\"anisotropyRotation\")}setAnisotropyRotation(e){return this.set(\"anisotropyRotation\",e)}getAnisotropyTexture(){return this.getRef(\"anisotropyTexture\")}getAnisotropyTextureInfo(){return this.getRef(\"anisotropyTexture\")?this.getRef(\"anisotropyTextureInfo\"):null}setAnisotropyTexture(e){return this.setRef(\"anisotropyTexture\",e,{channels:xe|de})}}Te.EXTENSION_NAME=\"KHR_materials_anisotropy\";const me=\"KHR_materials_anisotropy\";class Ee extends s{constructor(...e){super(...e),this.extensionName=me}createAnisotropy(){return new Te(this.document.getGraph())}read(e){const t=e.jsonDoc,s=t.json.textures||[];return(t.json.materials||[]).forEach((t,n)=>{if(t.extensions&&t.extensions[me]){const r=this.createAnisotropy();e.materials[n].setExtension(me,r);const o=t.extensions[me];if(void 0!==o.anisotropyStrength&&r.setAnisotropyStrength(o.anisotropyStrength),void 0!==o.anisotropyRotation&&r.setAnisotropyRotation(o.anisotropyRotation),void 0!==o.anisotropyTexture){const t=o.anisotropyTexture;r.setAnisotropyTexture(e.textures[s[t.index].source]),e.setTextureInfo(r.getAnisotropyTextureInfo(),t)}}}),this}write(e){const t=e.jsonDoc;return this.document.getRoot().listMaterials().forEach(s=>{const n=s.getExtension(me);if(n){const r=e.materialIndexMap.get(s),o=t.json.materials[r];o.extensions=o.extensions||{};const i=o.extensions[me]={};if(n.getAnisotropyStrength()>0&&(i.anisotropyStrength=n.getAnisotropyStrength()),0!==n.getAnisotropyRotation()&&(i.anisotropyRotation=n.getAnisotropyRotation()),n.getAnisotropyTexture()){const t=n.getAnisotropyTexture(),s=n.getAnisotropyTextureInfo();i.anisotropyTexture=e.createTextureInfoDef(t,s)}}}),this}}Ee.EXTENSION_NAME=me;const{R:Ie,G:Re,B:Ne}=d;class ye extends e{init(){this.extensionName=\"KHR_materials_clearcoat\",this.propertyType=\"Clearcoat\",this.parentTypes=[t.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{clearcoatFactor:0,clearcoatTexture:null,clearcoatTextureInfo:new x(this.graph,\"clearcoatTextureInfo\"),clearcoatRoughnessFactor:0,clearcoatRoughnessTexture:null,clearcoatRoughnessTextureInfo:new x(this.graph,\"clearcoatRoughnessTextureInfo\"),clearcoatNormalScale:1,clearcoatNormalTexture:null,clearcoatNormalTextureInfo:new x(this.graph,\"clearcoatNormalTextureInfo\")})}getClearcoatFactor(){return this.get(\"clearcoatFactor\")}setClearcoatFactor(e){return this.set(\"clearcoatFactor\",e)}getClearcoatTexture(){return this.getRef(\"clearcoatTexture\")}getClearcoatTextureInfo(){return this.getRef(\"clearcoatTexture\")?this.getRef(\"clearcoatTextureInfo\"):null}setClearcoatTexture(e){return this.setRef(\"clearcoatTexture\",e,{channels:Ie})}getClearcoatRoughnessFactor(){return this.get(\"clearcoatRoughnessFactor\")}setClearcoatRoughnessFactor(e){return this.set(\"clearcoatRoughnessFactor\",e)}getClearcoatRoughnessTexture(){return this.getRef(\"clearcoatRoughnessTexture\")}getClearcoatRoughnessTextureInfo(){return this.getRef(\"clearcoatRoughnessTexture\")?this.getRef(\"clearcoatRoughnessTextureInfo\"):null}setClearcoatRoughnessTexture(e){return this.setRef(\"clearcoatRoughnessTexture\",e,{channels:Re})}getClearcoatNormalScale(){return this.get(\"clearcoatNormalScale\")}setClearcoatNormalScale(e){return this.set(\"clearcoatNormalScale\",e)}getClearcoatNormalTexture(){return this.getRef(\"clearcoatNormalTexture\")}getClearcoatNormalTextureInfo(){return this.getRef(\"clearcoatNormalTexture\")?this.getRef(\"clearcoatNormalTextureInfo\"):null}setClearcoatNormalTexture(e){return this.setRef(\"clearcoatNormalTexture\",e,{channels:Ie|Re|Ne})}}ye.EXTENSION_NAME=\"KHR_materials_clearcoat\";const _e=\"KHR_materials_clearcoat\";class Ae extends s{constructor(...e){super(...e),this.extensionName=_e}createClearcoat(){return new ye(this.document.getGraph())}read(e){const t=e.jsonDoc,s=t.json.textures||[];return(t.json.materials||[]).forEach((t,n)=>{if(t.extensions&&t.extensions[_e]){const r=this.createClearcoat();e.materials[n].setExtension(_e,r);const o=t.extensions[_e];if(void 0!==o.clearcoatFactor&&r.setClearcoatFactor(o.clearcoatFactor),void 0!==o.clearcoatRoughnessFactor&&r.setClearcoatRoughnessFactor(o.clearcoatRoughnessFactor),void 0!==o.clearcoatTexture){const t=o.clearcoatTexture;r.setClearcoatTexture(e.textures[s[t.index].source]),e.setTextureInfo(r.getClearcoatTextureInfo(),t)}if(void 0!==o.clearcoatRoughnessTexture){const t=o.clearcoatRoughnessTexture;r.setClearcoatRoughnessTexture(e.textures[s[t.index].source]),e.setTextureInfo(r.getClearcoatRoughnessTextureInfo(),t)}if(void 0!==o.clearcoatNormalTexture){const t=o.clearcoatNormalTexture;r.setClearcoatNormalTexture(e.textures[s[t.index].source]),e.setTextureInfo(r.getClearcoatNormalTextureInfo(),t),void 0!==t.scale&&r.setClearcoatNormalScale(t.scale)}}}),this}write(e){const t=e.jsonDoc;return this.document.getRoot().listMaterials().forEach(s=>{const n=s.getExtension(_e);if(n){const r=e.materialIndexMap.get(s),o=t.json.materials[r];o.extensions=o.extensions||{};const i=o.extensions[_e]={clearcoatFactor:n.getClearcoatFactor(),clearcoatRoughnessFactor:n.getClearcoatRoughnessFactor()};if(n.getClearcoatTexture()){const t=n.getClearcoatTexture(),s=n.getClearcoatTextureInfo();i.clearcoatTexture=e.createTextureInfoDef(t,s)}if(n.getClearcoatRoughnessTexture()){const t=n.getClearcoatRoughnessTexture(),s=n.getClearcoatRoughnessTextureInfo();i.clearcoatRoughnessTexture=e.createTextureInfoDef(t,s)}if(n.getClearcoatNormalTexture()){const t=n.getClearcoatNormalTexture(),s=n.getClearcoatNormalTextureInfo();i.clearcoatNormalTexture=e.createTextureInfoDef(t,s),1!==n.getClearcoatNormalScale()&&(i.clearcoatNormalTexture.scale=n.getClearcoatNormalScale())}}}),this}}Ae.EXTENSION_NAME=_e;class Se extends e{init(){this.extensionName=\"KHR_materials_emissive_strength\",this.propertyType=\"EmissiveStrength\",this.parentTypes=[t.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{emissiveStrength:1})}getEmissiveStrength(){return this.get(\"emissiveStrength\")}setEmissiveStrength(e){return this.set(\"emissiveStrength\",e)}}Se.EXTENSION_NAME=\"KHR_materials_emissive_strength\";const Ce=\"KHR_materials_emissive_strength\";class Me extends s{constructor(...e){super(...e),this.extensionName=Ce}createEmissiveStrength(){return new Se(this.document.getGraph())}read(e){return(e.jsonDoc.json.materials||[]).forEach((t,s)=>{if(t.extensions&&t.extensions[Ce]){const n=this.createEmissiveStrength();e.materials[s].setExtension(Ce,n);const r=t.extensions[Ce];void 0!==r.emissiveStrength&&n.setEmissiveStrength(r.emissiveStrength)}}),this}write(e){const t=e.jsonDoc;return this.document.getRoot().listMaterials().forEach(s=>{const n=s.getExtension(Ce);if(n){const r=e.materialIndexMap.get(s),o=t.json.materials[r];o.extensions=o.extensions||{},o.extensions[Ce]={emissiveStrength:n.getEmissiveStrength()}}}),this}}Me.EXTENSION_NAME=Ce;class Oe extends e{init(){this.extensionName=\"KHR_materials_ior\",this.propertyType=\"IOR\",this.parentTypes=[t.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{ior:1.5})}getIOR(){return this.get(\"ior\")}setIOR(e){return this.set(\"ior\",e)}}Oe.EXTENSION_NAME=\"KHR_materials_ior\";const we=\"KHR_materials_ior\";class De extends s{constructor(...e){super(...e),this.extensionName=we}createIOR(){return new Oe(this.document.getGraph())}read(e){return(e.jsonDoc.json.materials||[]).forEach((t,s)=>{if(t.extensions&&t.extensions[we]){const n=this.createIOR();e.materials[s].setExtension(we,n);const r=t.extensions[we];void 0!==r.ior&&n.setIOR(r.ior)}}),this}write(e){const t=e.jsonDoc;return this.document.getRoot().listMaterials().forEach(s=>{const n=s.getExtension(we);if(n){const r=e.materialIndexMap.get(s),o=t.json.materials[r];o.extensions=o.extensions||{},o.extensions[we]={ior:n.getIOR()}}}),this}}De.EXTENSION_NAME=we;const{R:be,G:Fe}=d;class je extends e{init(){this.extensionName=\"KHR_materials_iridescence\",this.propertyType=\"Iridescence\",this.parentTypes=[t.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{iridescenceFactor:0,iridescenceTexture:null,iridescenceTextureInfo:new x(this.graph,\"iridescenceTextureInfo\"),iridescenceIOR:1.3,iridescenceThicknessMinimum:100,iridescenceThicknessMaximum:400,iridescenceThicknessTexture:null,iridescenceThicknessTextureInfo:new x(this.graph,\"iridescenceThicknessTextureInfo\")})}getIridescenceFactor(){return this.get(\"iridescenceFactor\")}setIridescenceFactor(e){return this.set(\"iridescenceFactor\",e)}getIridescenceTexture(){return this.getRef(\"iridescenceTexture\")}getIridescenceTextureInfo(){return this.getRef(\"iridescenceTexture\")?this.getRef(\"iridescenceTextureInfo\"):null}setIridescenceTexture(e){return this.setRef(\"iridescenceTexture\",e,{channels:be})}getIridescenceIOR(){return this.get(\"iridescenceIOR\")}setIridescenceIOR(e){return this.set(\"iridescenceIOR\",e)}getIridescenceThicknessMinimum(){return this.get(\"iridescenceThicknessMinimum\")}setIridescenceThicknessMinimum(e){return this.set(\"iridescenceThicknessMinimum\",e)}getIridescenceThicknessMaximum(){return this.get(\"iridescenceThicknessMaximum\")}setIridescenceThicknessMaximum(e){return this.set(\"iridescenceThicknessMaximum\",e)}getIridescenceThicknessTexture(){return this.getRef(\"iridescenceThicknessTexture\")}getIridescenceThicknessTextureInfo(){return this.getRef(\"iridescenceThicknessTexture\")?this.getRef(\"iridescenceThicknessTextureInfo\"):null}setIridescenceThicknessTexture(e){return this.setRef(\"iridescenceThicknessTexture\",e,{channels:Fe})}}je.EXTENSION_NAME=\"KHR_materials_iridescence\";const ve=\"KHR_materials_iridescence\";class ke extends s{constructor(...e){super(...e),this.extensionName=ve}createIridescence(){return new je(this.document.getGraph())}read(e){const t=e.jsonDoc,s=t.json.textures||[];return(t.json.materials||[]).forEach((t,n)=>{if(t.extensions&&t.extensions[ve]){const r=this.createIridescence();e.materials[n].setExtension(ve,r);const o=t.extensions[ve];if(void 0!==o.iridescenceFactor&&r.setIridescenceFactor(o.iridescenceFactor),void 0!==o.iridescenceIor&&r.setIridescenceIOR(o.iridescenceIor),void 0!==o.iridescenceThicknessMinimum&&r.setIridescenceThicknessMinimum(o.iridescenceThicknessMinimum),void 0!==o.iridescenceThicknessMaximum&&r.setIridescenceThicknessMaximum(o.iridescenceThicknessMaximum),void 0!==o.iridescenceTexture){const t=o.iridescenceTexture;r.setIridescenceTexture(e.textures[s[t.index].source]),e.setTextureInfo(r.getIridescenceTextureInfo(),t)}if(void 0!==o.iridescenceThicknessTexture){const t=o.iridescenceThicknessTexture;r.setIridescenceThicknessTexture(e.textures[s[t.index].source]),e.setTextureInfo(r.getIridescenceThicknessTextureInfo(),t)}}}),this}write(e){const t=e.jsonDoc;return this.document.getRoot().listMaterials().forEach(s=>{const n=s.getExtension(ve);if(n){const r=e.materialIndexMap.get(s),o=t.json.materials[r];o.extensions=o.extensions||{};const i=o.extensions[ve]={};if(n.getIridescenceFactor()>0&&(i.iridescenceFactor=n.getIridescenceFactor()),1.3!==n.getIridescenceIOR()&&(i.iridescenceIor=n.getIridescenceIOR()),100!==n.getIridescenceThicknessMinimum()&&(i.iridescenceThicknessMinimum=n.getIridescenceThicknessMinimum()),400!==n.getIridescenceThicknessMaximum()&&(i.iridescenceThicknessMaximum=n.getIridescenceThicknessMaximum()),n.getIridescenceTexture()){const t=n.getIridescenceTexture(),s=n.getIridescenceTextureInfo();i.iridescenceTexture=e.createTextureInfoDef(t,s)}if(n.getIridescenceThicknessTexture()){const t=n.getIridescenceThicknessTexture(),s=n.getIridescenceThicknessTextureInfo();i.iridescenceThicknessTexture=e.createTextureInfoDef(t,s)}}}),this}}ke.EXTENSION_NAME=ve;const{R:Be,G:Ge,B:Le,A:He}=d;class Ue extends e{init(){this.extensionName=\"KHR_materials_pbrSpecularGlossiness\",this.propertyType=\"PBRSpecularGlossiness\",this.parentTypes=[t.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{diffuseFactor:[1,1,1,1],diffuseTexture:null,diffuseTextureInfo:new x(this.graph,\"diffuseTextureInfo\"),specularFactor:[1,1,1],glossinessFactor:1,specularGlossinessTexture:null,specularGlossinessTextureInfo:new x(this.graph,\"specularGlossinessTextureInfo\")})}getDiffuseFactor(){return this.get(\"diffuseFactor\")}setDiffuseFactor(e){return this.set(\"diffuseFactor\",e)}getDiffuseHex(){return p.factorToHex(this.getDiffuseFactor())}setDiffuseHex(e){const t=this.getDiffuseFactor().slice();return this.setDiffuseFactor(p.hexToFactor(e,t))}getDiffuseTexture(){return this.getRef(\"diffuseTexture\")}getDiffuseTextureInfo(){return this.getRef(\"diffuseTexture\")?this.getRef(\"diffuseTextureInfo\"):null}setDiffuseTexture(e){return this.setRef(\"diffuseTexture\",e,{channels:Be|Ge|Le|He})}getSpecularFactor(){return this.get(\"specularFactor\")}setSpecularFactor(e){return this.set(\"specularFactor\",e)}getGlossinessFactor(){return this.get(\"glossinessFactor\")}setGlossinessFactor(e){return this.set(\"glossinessFactor\",e)}getSpecularGlossinessTexture(){return this.getRef(\"specularGlossinessTexture\")}getSpecularGlossinessTextureInfo(){return this.getRef(\"specularGlossinessTexture\")?this.getRef(\"specularGlossinessTextureInfo\"):null}setSpecularGlossinessTexture(e){return this.setRef(\"specularGlossinessTexture\",e,{channels:Be|Ge|Le|He})}}Ue.EXTENSION_NAME=\"KHR_materials_pbrSpecularGlossiness\";const Ve=\"KHR_materials_pbrSpecularGlossiness\";class Pe extends s{constructor(...e){super(...e),this.extensionName=Ve}createPBRSpecularGlossiness(){return new Ue(this.document.getGraph())}read(e){const t=e.jsonDoc,s=t.json.textures||[];return(t.json.materials||[]).forEach((t,n)=>{if(t.extensions&&t.extensions[Ve]){const r=this.createPBRSpecularGlossiness();e.materials[n].setExtension(Ve,r);const o=t.extensions[Ve];if(void 0!==o.diffuseFactor&&r.setDiffuseFactor(o.diffuseFactor),void 0!==o.specularFactor&&r.setSpecularFactor(o.specularFactor),void 0!==o.glossinessFactor&&r.setGlossinessFactor(o.glossinessFactor),void 0!==o.diffuseTexture){const t=o.diffuseTexture;r.setDiffuseTexture(e.textures[s[t.index].source]),e.setTextureInfo(r.getDiffuseTextureInfo(),t)}if(void 0!==o.specularGlossinessTexture){const t=o.specularGlossinessTexture;r.setSpecularGlossinessTexture(e.textures[s[t.index].source]),e.setTextureInfo(r.getSpecularGlossinessTextureInfo(),t)}}}),this}write(e){const t=e.jsonDoc;return this.document.getRoot().listMaterials().forEach(s=>{const n=s.getExtension(Ve);if(n){const r=e.materialIndexMap.get(s),o=t.json.materials[r];o.extensions=o.extensions||{};const i=o.extensions[Ve]={diffuseFactor:n.getDiffuseFactor(),specularFactor:n.getSpecularFactor(),glossinessFactor:n.getGlossinessFactor()};if(n.getDiffuseTexture()){const t=n.getDiffuseTexture(),s=n.getDiffuseTextureInfo();i.diffuseTexture=e.createTextureInfoDef(t,s)}if(n.getSpecularGlossinessTexture()){const t=n.getSpecularGlossinessTexture(),s=n.getSpecularGlossinessTextureInfo();i.specularGlossinessTexture=e.createTextureInfoDef(t,s)}}}),this}}Pe.EXTENSION_NAME=Ve;const{R:Xe,G:Ke,B:ze,A:$e}=d;class qe extends e{init(){this.extensionName=\"KHR_materials_sheen\",this.propertyType=\"Sheen\",this.parentTypes=[t.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{sheenColorFactor:[0,0,0],sheenColorTexture:null,sheenColorTextureInfo:new x(this.graph,\"sheenColorTextureInfo\"),sheenRoughnessFactor:0,sheenRoughnessTexture:null,sheenRoughnessTextureInfo:new x(this.graph,\"sheenRoughnessTextureInfo\")})}getSheenColorFactor(){return this.get(\"sheenColorFactor\")}getSheenColorHex(){return p.factorToHex(this.getSheenColorFactor())}setSheenColorFactor(e){return this.set(\"sheenColorFactor\",e)}setSheenColorHex(e){const t=this.getSheenColorFactor().slice();return this.set(\"sheenColorFactor\",p.hexToFactor(e,t))}getSheenColorTexture(){return this.getRef(\"sheenColorTexture\")}getSheenColorTextureInfo(){return this.getRef(\"sheenColorTexture\")?this.getRef(\"sheenColorTextureInfo\"):null}setSheenColorTexture(e){return this.setRef(\"sheenColorTexture\",e,{channels:Xe|Ke|ze})}getSheenRoughnessFactor(){return this.get(\"sheenRoughnessFactor\")}setSheenRoughnessFactor(e){return this.set(\"sheenRoughnessFactor\",e)}getSheenRoughnessTexture(){return this.getRef(\"sheenRoughnessTexture\")}getSheenRoughnessTextureInfo(){return this.getRef(\"sheenRoughnessTexture\")?this.getRef(\"sheenRoughnessTextureInfo\"):null}setSheenRoughnessTexture(e){return this.setRef(\"sheenRoughnessTexture\",e,{channels:$e})}}qe.EXTENSION_NAME=\"KHR_materials_sheen\";const Ye=\"KHR_materials_sheen\";class Qe extends s{constructor(...e){super(...e),this.extensionName=Ye}createSheen(){return new qe(this.document.getGraph())}read(e){const t=e.jsonDoc,s=t.json.textures||[];return(t.json.materials||[]).forEach((t,n)=>{if(t.extensions&&t.extensions[Ye]){const r=this.createSheen();e.materials[n].setExtension(Ye,r);const o=t.extensions[Ye];if(void 0!==o.sheenColorFactor&&r.setSheenColorFactor(o.sheenColorFactor),void 0!==o.sheenRoughnessFactor&&r.setSheenRoughnessFactor(o.sheenRoughnessFactor),void 0!==o.sheenColorTexture){const t=o.sheenColorTexture;r.setSheenColorTexture(e.textures[s[t.index].source]),e.setTextureInfo(r.getSheenColorTextureInfo(),t)}if(void 0!==o.sheenRoughnessTexture){const t=o.sheenRoughnessTexture;r.setSheenRoughnessTexture(e.textures[s[t.index].source]),e.setTextureInfo(r.getSheenRoughnessTextureInfo(),t)}}}),this}write(e){const t=e.jsonDoc;return this.document.getRoot().listMaterials().forEach(s=>{const n=s.getExtension(Ye);if(n){const r=e.materialIndexMap.get(s),o=t.json.materials[r];o.extensions=o.extensions||{};const i=o.extensions[Ye]={sheenColorFactor:n.getSheenColorFactor(),sheenRoughnessFactor:n.getSheenRoughnessFactor()};if(n.getSheenColorTexture()){const t=n.getSheenColorTexture(),s=n.getSheenColorTextureInfo();i.sheenColorTexture=e.createTextureInfoDef(t,s)}if(n.getSheenRoughnessTexture()){const t=n.getSheenRoughnessTexture(),s=n.getSheenRoughnessTextureInfo();i.sheenRoughnessTexture=e.createTextureInfoDef(t,s)}}}),this}}Qe.EXTENSION_NAME=Ye;const{R:We,G:Je,B:Ze,A:et}=d;class tt extends e{init(){this.extensionName=\"KHR_materials_specular\",this.propertyType=\"Specular\",this.parentTypes=[t.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{specularFactor:1,specularTexture:null,specularTextureInfo:new x(this.graph,\"specularTextureInfo\"),specularColorFactor:[1,1,1],specularColorTexture:null,specularColorTextureInfo:new x(this.graph,\"specularColorTextureInfo\")})}getSpecularFactor(){return this.get(\"specularFactor\")}setSpecularFactor(e){return this.set(\"specularFactor\",e)}getSpecularColorFactor(){return this.get(\"specularColorFactor\")}setSpecularColorFactor(e){return this.set(\"specularColorFactor\",e)}getSpecularColorHex(){return p.factorToHex(this.getSpecularColorFactor())}setSpecularColorHex(e){const t=this.getSpecularColorFactor().slice();return this.set(\"specularColorFactor\",p.hexToFactor(e,t))}getSpecularTexture(){return this.getRef(\"specularTexture\")}getSpecularTextureInfo(){return this.getRef(\"specularTexture\")?this.getRef(\"specularTextureInfo\"):null}setSpecularTexture(e){return this.setRef(\"specularTexture\",e,{channels:et})}getSpecularColorTexture(){return this.getRef(\"specularColorTexture\")}getSpecularColorTextureInfo(){return this.getRef(\"specularColorTexture\")?this.getRef(\"specularColorTextureInfo\"):null}setSpecularColorTexture(e){return this.setRef(\"specularColorTexture\",e,{channels:We|Je|Ze})}}tt.EXTENSION_NAME=\"KHR_materials_specular\";const st=\"KHR_materials_specular\";class nt extends s{constructor(...e){super(...e),this.extensionName=st}createSpecular(){return new tt(this.document.getGraph())}read(e){const t=e.jsonDoc,s=t.json.textures||[];return(t.json.materials||[]).forEach((t,n)=>{if(t.extensions&&t.extensions[st]){const r=this.createSpecular();e.materials[n].setExtension(st,r);const o=t.extensions[st];if(void 0!==o.specularFactor&&r.setSpecularFactor(o.specularFactor),void 0!==o.specularColorFactor&&r.setSpecularColorFactor(o.specularColorFactor),void 0!==o.specularTexture){const t=o.specularTexture;r.setSpecularTexture(e.textures[s[t.index].source]),e.setTextureInfo(r.getSpecularTextureInfo(),t)}if(void 0!==o.specularColorTexture){const t=o.specularColorTexture;r.setSpecularColorTexture(e.textures[s[t.index].source]),e.setTextureInfo(r.getSpecularColorTextureInfo(),t)}}}),this}write(e){const t=e.jsonDoc;return this.document.getRoot().listMaterials().forEach(s=>{const n=s.getExtension(st);if(n){const r=e.materialIndexMap.get(s),o=t.json.materials[r];o.extensions=o.extensions||{};const i=o.extensions[st]={};if(1!==n.getSpecularFactor()&&(i.specularFactor=n.getSpecularFactor()),l.eq(n.getSpecularColorFactor(),[1,1,1])||(i.specularColorFactor=n.getSpecularColorFactor()),n.getSpecularTexture()){const t=n.getSpecularTexture(),s=n.getSpecularTextureInfo();i.specularTexture=e.createTextureInfoDef(t,s)}if(n.getSpecularColorTexture()){const t=n.getSpecularColorTexture(),s=n.getSpecularColorTextureInfo();i.specularColorTexture=e.createTextureInfoDef(t,s)}}}),this}}nt.EXTENSION_NAME=st;const{R:rt}=d;class ot extends e{init(){this.extensionName=\"KHR_materials_transmission\",this.propertyType=\"Transmission\",this.parentTypes=[t.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{transmissionFactor:0,transmissionTexture:null,transmissionTextureInfo:new x(this.graph,\"transmissionTextureInfo\")})}getTransmissionFactor(){return this.get(\"transmissionFactor\")}setTransmissionFactor(e){return this.set(\"transmissionFactor\",e)}getTransmissionTexture(){return this.getRef(\"transmissionTexture\")}getTransmissionTextureInfo(){return this.getRef(\"transmissionTexture\")?this.getRef(\"transmissionTextureInfo\"):null}setTransmissionTexture(e){return this.setRef(\"transmissionTexture\",e,{channels:rt})}}ot.EXTENSION_NAME=\"KHR_materials_transmission\";const it=\"KHR_materials_transmission\";class at extends s{constructor(...e){super(...e),this.extensionName=it}createTransmission(){return new ot(this.document.getGraph())}read(e){const t=e.jsonDoc,s=t.json.textures||[];return(t.json.materials||[]).forEach((t,n)=>{if(t.extensions&&t.extensions[it]){const r=this.createTransmission();e.materials[n].setExtension(it,r);const o=t.extensions[it];if(void 0!==o.transmissionFactor&&r.setTransmissionFactor(o.transmissionFactor),void 0!==o.transmissionTexture){const t=o.transmissionTexture;r.setTransmissionTexture(e.textures[s[t.index].source]),e.setTextureInfo(r.getTransmissionTextureInfo(),t)}}}),this}write(e){const t=e.jsonDoc;return this.document.getRoot().listMaterials().forEach(s=>{const n=s.getExtension(it);if(n){const r=e.materialIndexMap.get(s),o=t.json.materials[r];o.extensions=o.extensions||{};const i=o.extensions[it]={transmissionFactor:n.getTransmissionFactor()};if(n.getTransmissionTexture()){const t=n.getTransmissionTexture(),s=n.getTransmissionTextureInfo();i.transmissionTexture=e.createTextureInfoDef(t,s)}}}),this}}at.EXTENSION_NAME=it;class ct extends e{init(){this.extensionName=\"KHR_materials_unlit\",this.propertyType=\"Unlit\",this.parentTypes=[t.MATERIAL]}}ct.EXTENSION_NAME=\"KHR_materials_unlit\";const ut=\"KHR_materials_unlit\";class lt extends s{constructor(...e){super(...e),this.extensionName=ut}createUnlit(){return new ct(this.document.getGraph())}read(e){return(e.jsonDoc.json.materials||[]).forEach((t,s)=>{t.extensions&&t.extensions[ut]&&e.materials[s].setExtension(ut,this.createUnlit())}),this}write(e){const t=e.jsonDoc;return this.document.getRoot().listMaterials().forEach(s=>{if(s.getExtension(ut)){const n=e.materialIndexMap.get(s),r=t.json.materials[n];r.extensions=r.extensions||{},r.extensions[ut]={}}}),this}}lt.EXTENSION_NAME=ut;class ht extends e{init(){this.extensionName=\"KHR_materials_variants\",this.propertyType=\"Mapping\",this.parentTypes=[\"MappingList\"]}getDefaults(){return Object.assign(super.getDefaults(),{material:null,variants:[]})}getMaterial(){return this.getRef(\"material\")}setMaterial(e){return this.setRef(\"material\",e)}addVariant(e){return this.addRef(\"variants\",e)}removeVariant(e){return this.removeRef(\"variants\",e)}listVariants(){return this.listRefs(\"variants\")}}ht.EXTENSION_NAME=\"KHR_materials_variants\";class ft extends e{init(){this.extensionName=\"KHR_materials_variants\",this.propertyType=\"MappingList\",this.parentTypes=[t.PRIMITIVE]}getDefaults(){return Object.assign(super.getDefaults(),{mappings:[]})}addMapping(e){return this.addRef(\"mappings\",e)}removeMapping(e){return this.removeRef(\"mappings\",e)}listMappings(){return this.listRefs(\"mappings\")}}ft.EXTENSION_NAME=\"KHR_materials_variants\";class gt extends e{init(){this.extensionName=\"KHR_materials_variants\",this.propertyType=\"Variant\",this.parentTypes=[\"MappingList\"]}}gt.EXTENSION_NAME=\"KHR_materials_variants\";const pt=\"KHR_materials_variants\";class xt extends s{constructor(...e){super(...e),this.extensionName=pt}createMappingList(){return new ft(this.document.getGraph())}createVariant(e=\"\"){return new gt(this.document.getGraph(),e)}createMapping(){return new ht(this.document.getGraph())}listVariants(){return Array.from(this.properties).filter(e=>e instanceof gt)}read(e){const t=e.jsonDoc;if(!t.json.extensions||!t.json.extensions[pt])return this;const s=(t.json.extensions[pt].variants||[]).map(e=>this.createVariant().setName(e.name||\"\"));return(t.json.meshes||[]).forEach((t,n)=>{const r=e.meshes[n];(t.primitives||[]).forEach((t,n)=>{if(!t.extensions||!t.extensions[pt])return;const o=this.createMappingList(),i=t.extensions[pt];for(const t of i.mappings){const n=this.createMapping();void 0!==t.material&&n.setMaterial(e.materials[t.material]);for(const e of t.variants||[])n.addVariant(s[e]);o.addMapping(n)}r.listPrimitives()[n].setExtension(pt,o)})}),this}write(e){const t=e.jsonDoc,s=this.listVariants();if(!s.length)return this;const n=[],r=new Map;for(const t of s)r.set(t,n.length),n.push(e.createPropertyDef(t));for(const t of this.document.getRoot().listMeshes()){const s=e.meshIndexMap.get(t);t.listPrimitives().forEach((t,n)=>{const o=t.getExtension(pt);if(!o)return;const i=e.jsonDoc.json.meshes[s].primitives[n],a=o.listMappings().map(t=>{const s=e.createPropertyDef(t),n=t.getMaterial();return n&&(s.material=e.materialIndexMap.get(n)),s.variants=t.listVariants().map(e=>r.get(e)),s});i.extensions=i.extensions||{},i.extensions[pt]={mappings:a}})}return t.json.extensions=t.json.extensions||{},t.json.extensions[pt]={variants:n},this}}xt.EXTENSION_NAME=pt;const{G:dt}=d;class Tt extends e{init(){this.extensionName=\"KHR_materials_volume\",this.propertyType=\"Volume\",this.parentTypes=[t.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{thicknessFactor:0,thicknessTexture:null,thicknessTextureInfo:new x(this.graph,\"thicknessTexture\"),attenuationDistance:Infinity,attenuationColor:[1,1,1]})}getThicknessFactor(){return this.get(\"thicknessFactor\")}setThicknessFactor(e){return this.set(\"thicknessFactor\",e)}getThicknessTexture(){return this.getRef(\"thicknessTexture\")}getThicknessTextureInfo(){return this.getRef(\"thicknessTexture\")?this.getRef(\"thicknessTextureInfo\"):null}setThicknessTexture(e){return this.setRef(\"thicknessTexture\",e,{channels:dt})}getAttenuationDistance(){return this.get(\"attenuationDistance\")}setAttenuationDistance(e){return this.set(\"attenuationDistance\",e)}getAttenuationColor(){return this.get(\"attenuationColor\")}setAttenuationColor(e){return this.set(\"attenuationColor\",e)}getAttenuationColorHex(){return p.factorToHex(this.getAttenuationColor())}setAttenuationColorHex(e){const t=this.getAttenuationColor().slice();return this.set(\"attenuationColor\",p.hexToFactor(e,t))}}Tt.EXTENSION_NAME=\"KHR_materials_volume\";const mt=\"KHR_materials_volume\";class Et extends s{constructor(...e){super(...e),this.extensionName=mt}createVolume(){return new Tt(this.document.getGraph())}read(e){const t=e.jsonDoc,s=t.json.textures||[];return(t.json.materials||[]).forEach((t,n)=>{if(t.extensions&&t.extensions[mt]){const r=this.createVolume();e.materials[n].setExtension(mt,r);const o=t.extensions[mt];if(void 0!==o.thicknessFactor&&r.setThicknessFactor(o.thicknessFactor),void 0!==o.attenuationDistance&&r.setAttenuationDistance(o.attenuationDistance),void 0!==o.attenuationColor&&r.setAttenuationColor(o.attenuationColor),void 0!==o.thicknessTexture){const t=o.thicknessTexture;r.setThicknessTexture(e.textures[s[t.index].source]),e.setTextureInfo(r.getThicknessTextureInfo(),t)}}}),this}write(e){const t=e.jsonDoc;return this.document.getRoot().listMaterials().forEach(s=>{const n=s.getExtension(mt);if(n){const r=e.materialIndexMap.get(s),o=t.json.materials[r];o.extensions=o.extensions||{};const i=o.extensions[mt]={};if(n.getThicknessFactor()>0&&(i.thicknessFactor=n.getThicknessFactor()),Number.isFinite(n.getAttenuationDistance())&&(i.attenuationDistance=n.getAttenuationDistance()),l.eq(n.getAttenuationColor(),[1,1,1])||(i.attenuationColor=n.getAttenuationColor()),n.getThicknessTexture()){const t=n.getThicknessTexture(),s=n.getThicknessTextureInfo();i.thicknessTexture=e.createTextureInfoDef(t,s)}}}),this}}Et.EXTENSION_NAME=mt;const It=\"KHR_mesh_quantization\";class Rt extends s{constructor(...e){super(...e),this.extensionName=It}read(e){return this}write(e){return this}}Rt.EXTENSION_NAME=It;const Nt=\"KHR_texture_basisu\";class yt{match(e){return 171===e[0]&&75===e[1]&&84===e[2]&&88===e[3]&&32===e[4]&&50===e[5]&&48===e[6]&&187===e[7]&&13===e[8]&&10===e[9]&&26===e[10]&&10===e[11]}getSize(e){const t=T(e);return[t.pixelWidth,t.pixelHeight]}getChannels(e){const t=T(e).dataFormatDescriptor[0];if(t.colorModel===m)return 2===t.samples.length&&15==(15&t.samples[1].channelType)?4:3;if(t.colorModel===E)return 3==(15&t.samples[0].channelType)?4:3;throw new Error(`Unexpected KTX2 colorModel, \"${t.colorModel}\".`)}getVRAMByteLength(e){const t=T(e),s=this.getChannels(e)>3;let n=0;for(let e=0;e<t.levels.length;e++){const r=t.levels[e];n+=r.uncompressedByteLength?r.uncompressedByteLength:Math.max(1,Math.floor(t.pixelWidth/Math.pow(2,e)))/4*(Math.max(1,Math.floor(t.pixelHeight/Math.pow(2,e)))/4)*(s?16:8)}return n}}class _t extends s{constructor(...e){super(...e),this.extensionName=Nt,this.prereadTypes=[t.TEXTURE]}static register(){f.registerFormat(\"image/ktx2\",new yt)}preread(e){return e.jsonDoc.json.textures.forEach(e=>{e.extensions&&e.extensions[Nt]&&(e.source=e.extensions[Nt].source)}),this}read(e){return this}write(e){const t=e.jsonDoc;return this.document.getRoot().listTextures().forEach(s=>{if(\"image/ktx2\"===s.getMimeType()){const n=e.imageIndexMap.get(s);t.json.textures.forEach(e=>{e.source===n&&(e.extensions=e.extensions||{},e.extensions[Nt]={source:e.source},delete e.source)})}}),this}}_t.EXTENSION_NAME=Nt;class At extends e{init(){this.extensionName=\"KHR_texture_transform\",this.propertyType=\"Transform\",this.parentTypes=[t.TEXTURE_INFO]}getDefaults(){return Object.assign(super.getDefaults(),{offset:[0,0],rotation:0,scale:[1,1],texCoord:null})}getOffset(){return this.get(\"offset\")}setOffset(e){return this.set(\"offset\",e)}getRotation(){return this.get(\"rotation\")}setRotation(e){return this.set(\"rotation\",e)}getScale(){return this.get(\"scale\")}setScale(e){return this.set(\"scale\",e)}getTexCoord(){return this.get(\"texCoord\")}setTexCoord(e){return this.set(\"texCoord\",e)}}At.EXTENSION_NAME=\"KHR_texture_transform\";const St=\"KHR_texture_transform\";class Ct extends s{constructor(...e){super(...e),this.extensionName=St}createTransform(){return new At(this.document.getGraph())}read(e){for(const[t,s]of Array.from(e.textureInfos.entries())){if(!s.extensions||!s.extensions[St])continue;const e=this.createTransform(),n=s.extensions[St];void 0!==n.offset&&e.setOffset(n.offset),void 0!==n.rotation&&e.setRotation(n.rotation),void 0!==n.scale&&e.setScale(n.scale),void 0!==n.texCoord&&e.setTexCoord(n.texCoord),t.setExtension(St,e)}return this}write(e){const t=Array.from(e.textureInfoDefMap.entries());for(const[e,s]of t){const t=e.getExtension(St);if(!t)continue;s.extensions=s.extensions||{};const n={},r=l.eq;r(t.getOffset(),[0,0])||(n.offset=t.getOffset()),0!==t.getRotation()&&(n.rotation=t.getRotation()),r(t.getScale(),[1,1])||(n.scale=t.getScale()),null!=t.getTexCoord()&&(n.texCoord=t.getTexCoord()),s.extensions[St]=n}return this}}Ct.EXTENSION_NAME=St;const Mt=[t.ROOT,t.SCENE,t.NODE,t.MESH,t.MATERIAL,t.TEXTURE,t.ANIMATION];class Ot extends e{init(){this.extensionName=\"KHR_xmp_json_ld\",this.propertyType=\"Packet\",this.parentTypes=Mt}getDefaults(){return Object.assign(super.getDefaults(),{context:{},properties:{}})}getContext(){return this.get(\"context\")}setContext(e){return this.set(\"context\",_({},e))}listProperties(){return Object.keys(this.get(\"properties\"))}getProperty(e){const t=this.get(\"properties\");return e in t?t[e]:null}setProperty(e,t){this._assertContext(e);const s=_({},this.get(\"properties\"));return t?s[e]=t:delete s[e],this.set(\"properties\",s)}toJSONLD(){return _({\"@context\":wt(this.get(\"context\"))},wt(this.get(\"properties\")))}fromJSONLD(e){const t=(e=wt(e))[\"@context\"];return t&&this.set(\"context\",t),delete e[\"@context\"],this.set(\"properties\",e)}_assertContext(e){if(!(e.split(\":\")[0]in this.get(\"context\")))throw new Error(`KHR_xmp_json_ld: Missing context for term, \"${e}\".`)}}function wt(e){return JSON.parse(JSON.stringify(e))}Ot.EXTENSION_NAME=\"KHR_xmp_json_ld\";const Dt=\"KHR_xmp_json_ld\";class bt extends s{constructor(...e){super(...e),this.extensionName=Dt}createPacket(){return new Ot(this.document.getGraph())}listPackets(){return Array.from(this.properties)}read(e){var t;const s=null==(t=e.jsonDoc.json.extensions)?void 0:t[Dt];if(!s||!s.packets)return this;const n=e.jsonDoc.json,r=this.document.getRoot(),o=s.packets.map(e=>this.createPacket().fromJSONLD(e)),i=[[n.asset],n.scenes,n.nodes,n.meshes,n.materials,n.images,n.animations],a=[[r],r.listScenes(),r.listNodes(),r.listMeshes(),r.listMaterials(),r.listTextures(),r.listAnimations()];for(let e=0;e<i.length;e++){const t=i[e]||[];for(let s=0;s<t.length;s++){const n=t[s];n.extensions&&n.extensions[Dt]&&a[e][s].setExtension(Dt,o[n.extensions[Dt].packet])}}return this}write(e){const{json:s}=e.jsonDoc,n=[];for(const r of this.properties){n.push(r.toJSONLD());for(const o of r.listParents()){let r;switch(o.propertyType){case t.ROOT:r=s.asset;break;case t.SCENE:r=s.scenes[e.sceneIndexMap.get(o)];break;case t.NODE:r=s.nodes[e.nodeIndexMap.get(o)];break;case t.MESH:r=s.meshes[e.meshIndexMap.get(o)];break;case t.MATERIAL:r=s.materials[e.materialIndexMap.get(o)];break;case t.TEXTURE:r=s.images[e.imageIndexMap.get(o)];break;case t.ANIMATION:r=s.animations[e.animationIndexMap.get(o)];break;default:r=null,this.document.getLogger().warn(`[${Dt}]: Unsupported parent property, \"${o.propertyType}\"`)}r&&(r.extensions=r.extensions||{},r.extensions[Dt]={packet:n.length-1})}}return n.length>0&&(s.extensions=s.extensions||{},s.extensions[Dt]={packets:n}),this}}bt.EXTENSION_NAME=Dt;const Ft=[le,pe,Ee,Ae,Me,De,ke,Pe,nt,Qe,at,lt,xt,Et,Rt,_t,Ct,bt],jt=[y,L,V,z,...Ft];export{jt as ALL_EXTENSIONS,Te as Anisotropy,ye as Clearcoat,y as EXTMeshGPUInstancing,L as EXTMeshoptCompression,V as EXTTextureAVIF,z as EXTTextureWebP,Se as EmissiveStrength,I as INSTANCE_ATTRIBUTE,Oe as IOR,R as InstancedMesh,je as Iridescence,le as KHRDracoMeshCompression,pe as KHRLightsPunctual,Ee as KHRMaterialsAnisotropy,Ae as KHRMaterialsClearcoat,Me as KHRMaterialsEmissiveStrength,De as KHRMaterialsIOR,ke as KHRMaterialsIridescence,Pe as KHRMaterialsPBRSpecularGlossiness,Qe as KHRMaterialsSheen,nt as KHRMaterialsSpecular,at as KHRMaterialsTransmission,lt as KHRMaterialsUnlit,xt as KHRMaterialsVariants,Et as KHRMaterialsVolume,Rt as KHRMeshQuantization,Ft as KHRONOS_EXTENSIONS,_t as KHRTextureBasisu,Ct as KHRTextureTransform,bt as KHRXMP,fe as Light,ht as Mapping,ft as MappingList,Ue as PBRSpecularGlossiness,Ot as Packet,qe as Sheen,tt as Specular,At as Transform,ot as Transmission,ct as Unlit,gt as Variant,Tt as Volume};\n//# sourceMappingURL=extensions.modern.js.map\n","import {\n Extension,\n ExtensionProperty,\n GLTF,\n Graph,\n Property,\n PropertyType,\n ReaderContext,\n Texture,\n TextureChannel,\n TextureInfo,\n WebIO,\n WriterContext,\n} from '@gltf-transform/core'\nimport {EncoderOptions} from '@gltf-transform/extensions/dist/khr-draco-mesh-compression/encoder'\nimport {ALL_EXTENSIONS, KHRDracoMeshCompression} from '@gltf-transform/extensions'\nimport {DRACOLoader2, GLTFExporter2, GLTFExporter2Options, GLTFViewerConfigExtension, IExportParser} from 'threepipe'\n\n/**\n * GLTF Draco Exporter\n *\n * Extension of GLTFExporter2 that runs the output through gltf-transform for draco compression.\n */\nexport class GLTFDracoExporter extends GLTFExporter2 implements IExportParser {\n public loader?: DRACOLoader2 // required for loading draco libs.\n private _io: WebIO\n private _loadedLibs = false\n private _encoderOptions: EncoderOptions\n\n constructor(encoderOptions?: EncoderOptions, loader?: DRACOLoader2) {\n super()\n encoderOptions = encoderOptions || {\n method: KHRDracoMeshCompression.EncoderMethod.EDGEBREAKER,\n encodeSpeed: 5,\n }\n this._io = new WebIO().registerExtensions(ALL_EXTENSIONS)\n .registerExtensions([\n GLTFViewerConfigExtensionGP,\n ])\n this._encoderOptions = encoderOptions\n\n if (loader) {\n this.loader = loader\n this.loader.setDecoderConfig({type: 'js'}) // todo: hack for now.\n this.loader.preload(true, true)\n }\n\n }\n\n preload(): this {\n this._loadLibs()\n return this\n }\n\n private async _loadLibs() {\n if (this._loadedLibs || !this.loader) return\n\n const libs = await Promise.all([\n this.loader.initEncoder(),\n this.loader.initDecoder(),\n ])\n this._io.registerDependencies({\n ['draco3d.encoder']: libs[0],\n ['draco3d.decoder']: libs[1], // only required if we are loading a draco compressed gltf\n })\n this._loadedLibs = true\n\n }\n\n async parseAsync(obj: any, {compress = false, dracoOptions, ...options}: {compress: boolean, dracoOptions?: EncoderOptions} & GLTFExporter2Options, throwOnError = false): Promise<Blob> {\n if (!this.loader) {\n console.error('GLTFDracoExporter: No DRACOLoader2 instance provided')\n return super.parseAsync(obj, options)\n }\n await this._loadLibs()\n\n const ops = {...options}\n if (compress) {\n // externalImagesInExtras: this is required because gltf-transform doesn't support external images in glb\n // see https://github.com/donmccurdy/glTF-Transform/discussions/644\n ops.externalImagesInExtras = true\n }\n\n const uncompressed = await new Promise((resolve, reject) => this.parse(obj, resolve, reject, ops)) as any\n\n const uncompressedBlob = await super.parseAsync(uncompressed, ops)\n if (!compress) return uncompressedBlob\n\n try {\n if (!uncompressed) throw new Error('GLTFDracoExporter: gltf is null')\n\n let gltf = uncompressed\n\n const bytes = (gltf as ArrayBuffer).byteLength || Infinity\n\n const iDocument = await (typeof gltf === 'object' && !(gltf as any).byteLength ? this._io.readJSON({\n json: gltf as GLTF.IGLTF,\n resources: {},\n }) : this._io.readBinary(new Uint8Array(gltf as ArrayBuffer)))\n\n // iDocument.createExtension(GLTFViewerConfigExtensionGP)\n iDocument.createExtension(KHRDracoMeshCompression)\n .setRequired(true)\n .setEncoderOptions({...this._encoderOptions, ...dracoOptions ?? {}})\n\n if (ops.exportExt === 'glb') {\n gltf = await this._io.writeBinary(iDocument)\n if (isFinite(bytes)) {\n console.log('DRACO Compression ratio: ' + ((gltf as ArrayBuffer).byteLength / bytes).toFixed(5))\n }\n } else {\n const jDoc = await this._io.writeJSON(iDocument)\n gltf = jDoc.json\n if (Object.values(jDoc.resources).filter(v => v).length > 0) {\n console.warn('DRACOExporter: extra resources in resources not supported properly')\n ;(gltf as any).resources = jDoc.resources\n }\n }\n\n gltf.__isGLTFOutput = true\n const blob = await super.parseAsync(gltf, ops) as any // this will just convert it to blob because __isGLTFOutput is set (checked in GLTFExporter2)\n if (!blob) throw new Error('GLTFDracoExporter: blob is null')\n blob.ext = 'glb'\n ;(blob as any).__uncompressed = uncompressedBlob\n return blob\n } catch (e) {\n if (throwOnError) throw e\n console.error('Unable to compress glb with DRACO extension, fallback to uncompressed')\n console.error(e)\n return uncompressedBlob\n }\n }\n\n addExtension(extension: typeof Extension): this {\n this._io.registerExtensions([extension])\n return this\n }\n createAndAddExtension(name: string, textures?: Record<string, string|number>): this {\n return this.addExtension(createGenericExtensionClass(name, textures))\n }\n}\n\ndeclare module 'threepipe'{\n interface GLTFExporter2Options {\n compress?: boolean\n dracoOptions?: EncoderOptions\n }\n}\n\n// for @gltf-transform/core\nclass ViewerJSONExtensionProperty extends ExtensionProperty {\n readonly extensionName: string = GLTFViewerConfigExtension.ViewerConfigGLTFExtension\n readonly parentTypes: string[] = [PropertyType.SCENE]\n readonly propertyType: string = 'ViewerJSON'\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n protected init(): void {return}\n\n}\nclass GLTFViewerConfigExtensionGP extends Extension {\n public readonly extensionName = GLTFViewerConfigExtension.ViewerConfigGLTFExtension\n public static readonly EXTENSION_NAME = GLTFViewerConfigExtension.ViewerConfigGLTFExtension\n private _viewerConfig: any = {}\n // private _texturesRef: [any, Texture][] = []\n\n read(context: ReaderContext): this {\n this._viewerConfig = {}\n context.jsonDoc.json.scenes?.forEach((sceneDef, sceneIndex)=>{\n if (sceneDef.extensions && sceneDef.extensions[GLTFViewerConfigExtension.ViewerConfigGLTFExtension]) {\n const prop = new ViewerJSONExtensionProperty(this.document.getGraph())\n context.scenes[sceneIndex].setExtension(GLTFViewerConfigExtension.ViewerConfigGLTFExtension, prop)\n this._viewerConfig = sceneDef.extensions[GLTFViewerConfigExtension.ViewerConfigGLTFExtension] as any\n // prop.setExtras()\n\n /*\n const buffers = [] as any[]\n\n Object.values(viewerConfig.resources).forEach((res: any) => {\n Object.values(res).forEach((item: any) => {\n if (!item.url) return\n if (item.url.data?.image !== null) {\n buffers.push(item.url)\n }\n })\n })\n const jsonDoc = context.jsonDoc\n console.log(buffers)\n for (const buffer of buffers) {\n const img = buffer.data.image as number\n const imageDef = jsonDoc.json.images![img]\n const bufferViewDef = jsonDoc.json.bufferViews![imageDef.bufferView!]\n const bufferDef = jsonDoc.json.buffers![bufferViewDef.buffer]\n const bufferData = bufferDef.uri ? jsonDoc.resources[bufferDef.uri] : jsonDoc.resources[GLB_BUFFER]\n const byteOffset = bufferViewDef.byteOffset || 0\n const byteLength = bufferViewDef.byteLength\n const imageData = bufferData.slice(byteOffset, byteOffset + byteLength)\n const texture = this.document.createTexture(imageDef.name)\n texture.setImage(imageData)\n this._texturesRef.push([buffer, texture])\n }\n */\n\n\n }\n })\n return this\n }\n\n write(context: WriterContext): this {\n this.document.getRoot().listScenes().forEach((scene)=>{\n const prop = scene.getExtension(GLTFViewerConfigExtension.ViewerConfigGLTFExtension)\n if (prop) {\n const sceneDef = context.jsonDoc.json.scenes?.[context.jsonDoc.json.scene || 0] // todo: get proper scene index, if working with multiple scenes\n if (sceneDef && Object.keys(this._viewerConfig).length > 0) {\n sceneDef.extensions = sceneDef.extensions || {}\n\n /*\n console.log(context.jsonDoc.json.images)\n for (const [buffer, texture] of this._texturesRef) {\n const imageDef = context.createPropertyDef(texture) as GLTF.IImage\n context.createImageData(imageDef, texture.getImage()!, texture)\n buffer.data.image = context.jsonDoc.json.images!.push(imageDef) - 1\n context.imageIndexMap.set(texture, buffer.data.image)\n }\n console.log(context.jsonDoc.json)\n */\n\n sceneDef.extensions[GLTFViewerConfigExtension.ViewerConfigGLTFExtension] = this._viewerConfig\n\n // this._texturesRef = []\n this._viewerConfig = {}\n\n }\n }\n })\n\n return this\n }\n\n required = true\n}\n\nclass GenericExtensionProperty extends ExtensionProperty<any> {\n readonly extensionName: string\n readonly parentTypes: string[] = [PropertyType.MATERIAL, PropertyType.MESH, PropertyType.NODE, PropertyType.SCENE]\n readonly propertyType: string = 'GenericExtension'\n textures: Record<string, [TextureInfo, Texture|null]> = {}\n\n addTexture(key: string, texInfo: TextureInfo, texture: Texture | null, channels = 0x1111) {\n this.setRef(key, texture, {channels})\n this.textures[key] = [texInfo, texture]\n }\n\n constructor(graph: Graph<Property>, name: string, extensionName: string) {\n super(graph, name)\n this.extensionName = extensionName\n }\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n protected init(): void {return}\n}\n\n// see transmission extension for reference\nabstract class GenericExtension extends Extension {\n abstract readonly extensionName: string\n\n textureChannels: Record<string, number> = {}\n\n read(context: ReaderContext): this {\n const jsonDoc = context.jsonDoc\n // console.log(jsonDoc)\n const materialDefs = jsonDoc.json.materials || []\n const textureDefs = jsonDoc.json.textures || []\n materialDefs.forEach((materialDef, materialIndex) => {\n if (materialDef.extensions && materialDef.extensions[this.extensionName]) {\n const paramsExt = new GenericExtensionProperty(this.document.getGraph(), '', this.extensionName)\n context.materials[materialIndex].setExtension(this.extensionName, paramsExt)\n const paramsExtDef = materialDef.extensions[this.extensionName] as Record<string, any>\n const paramsExtDef2 = {...paramsExtDef}\n\n for (const [key, value] of Object.entries(paramsExtDef2)) {\n if (typeof value?.index === 'number') { // this is a texture...\n const textureInfoDef = value\n const source = textureDefs[textureInfoDef.index]?.source\n if (typeof source !== 'number') {\n console.warn('GLTF Pipeline: source texture not found for texture info', textureInfoDef)\n continue\n }\n const texture = context.textures[source]\n const texInfo = new TextureInfo(this.document.getGraph())\n const channels = this.textureChannels[key] ?? 0x1111\n paramsExt.addTexture(key, texInfo, texture, channels)\n context.setTextureInfo(texInfo, textureInfoDef)\n delete paramsExtDef2[key]\n }\n }\n\n paramsExt.setExtras(paramsExtDef2)\n // console.log({...paramsExtDef})\n }\n })\n const meshDefs = jsonDoc.json.meshes || []\n meshDefs.forEach((meshDef, meshIndex) => {\n if (meshDef.extensions && meshDef.extensions[this.extensionName]) {\n const paramsExt = new GenericExtensionProperty(this.document.getGraph(), '', this.extensionName)\n context.meshes[meshIndex].setExtension(this.extensionName, paramsExt)\n const paramsExtDef = meshDef.extensions[this.extensionName] as Record<string, any>\n paramsExt.setExtras(paramsExtDef)\n }\n })\n const nodeDefs = jsonDoc.json.nodes || []\n nodeDefs.forEach((nodeDef, nodeIndex) => {\n if (nodeDef.extensions && nodeDef.extensions[this.extensionName]) {\n const paramsExt = new GenericExtensionProperty(this.document.getGraph(), '', this.extensionName)\n context.nodes[nodeIndex].setExtension(this.extensionName, paramsExt)\n const paramsExtDef = nodeDef.extensions[this.extensionName] as Record<string, any>\n paramsExt.setExtras(paramsExtDef)\n // console.log(paramsExtDef)\n }\n })\n const sceneDefs = jsonDoc.json.scenes || []\n sceneDefs.forEach((sceneDef, sceneIndex) => {\n if (sceneDef.extensions && sceneDef.extensions[this.extensionName]) {\n const paramsExt = new GenericExtensionProperty(this.document.getGraph(), '', this.extensionName)\n context.scenes[sceneIndex].setExtension(this.extensionName, paramsExt)\n const paramsExtDef = sceneDef.extensions[this.extensionName] as Record<string, any>\n paramsExt.setExtras(paramsExtDef)\n // console.log(paramsExtDef)\n }\n })\n\n return this\n }\n\n write(context: WriterContext): this {\n const jsonDoc = context.jsonDoc\n this.document.getRoot()\n .listMaterials()\n .forEach((material) => {\n const paramsExt = material.getExtension<GenericExtensionProperty>(this.extensionName)\n // console.log(paramsExt)\n if (paramsExt) {\n const materialIndex = context.materialIndexMap.get(material)!\n const materialDef = jsonDoc.json.materials![materialIndex]\n materialDef.extensions = materialDef.extensions || {}\n const extensionDef = paramsExt.getExtras()\n const extensionDef2 = {...extensionDef}\n\n // console.log(paramsExt.textures)\n for (const [key, value] of Object.entries(paramsExt.textures)) {\n const textureInfo = value[0]\n const textureLink = value[1]\n const texture = textureLink\n\n if (texture)\n extensionDef2[key] = context.createTextureInfoDef(texture, textureInfo)\n\n // console.log(texture)\n\n }\n // console.log(extensionDef2)\n\n materialDef.extensions[this.extensionName] = extensionDef2\n }\n })\n this.document.getRoot()\n .listMeshes()\n .forEach((mesh) => {\n const paramsExt = mesh.getExtension<GenericExtensionProperty>(this.extensionName)\n if (paramsExt) {\n const meshIndex = context.meshIndexMap.get(mesh)!\n const meshDef = jsonDoc.json.meshes![meshIndex]\n meshDef.extensions = meshDef.extensions || {}\n meshDef.extensions[this.extensionName] = paramsExt.getExtras()\n }\n })\n this.document.getRoot()\n .listNodes()\n .forEach((node) => {\n const paramsExt = node.getExtension<GenericExtensionProperty>(this.extensionName)\n if (paramsExt) {\n const nodeIndex = context.nodeIndexMap.get(node)!\n const nodeDef = jsonDoc.json.nodes![nodeIndex]\n nodeDef.extensions = nodeDef.extensions || {}\n nodeDef.extensions[this.extensionName] = paramsExt.getExtras()\n }\n })\n this.document.getRoot()\n .listScenes()\n .forEach((scene) => {\n const paramsExt = scene.getExtension<GenericExtensionProperty>(this.extensionName)\n if (paramsExt) {\n const sceneIndex = context.jsonDoc.json.scene || 0 // todo: get proper scene index, if working with multiple scenes, this will do the default one.\n const sceneDef = jsonDoc.json.scenes![sceneIndex]\n if (!sceneDef) return\n sceneDef.extensions = sceneDef.extensions || {}\n sceneDef.extensions[this.extensionName] = paramsExt.getExtras()\n }\n })\n\n return this\n }\n\n}\n\nfunction stringToChannel(s: string) {\n let r = 0\n if (s.includes('R')) r |= TextureChannel.R\n if (s.includes('G')) r |= TextureChannel.G\n if (s.includes('B')) r |= TextureChannel.B\n if (s.includes('A')) r |= TextureChannel.A\n return r\n}\n\nexport function createGenericExtensionClass(name: string, textures?: Record<string, string|number>): typeof GenericExtension {\n return class extends GenericExtension {\n public static readonly EXTENSION_NAME = name\n readonly extensionName = name\n textureChannels: Record<string, number> = !textures ? {} : Object.fromEntries(\n Object.entries(textures)\n .map(([k, v])=>\n [k, typeof v === 'number' ? v : stringToChannel(v)])\n )\n }\n}\n","import {\n AssetExporterPlugin,\n AViewerPluginSync,\n DRACOLoader2,\n generateUUID,\n GLTFLightExtrasExtension,\n GLTFMaterialExtrasExtension,\n GLTFMaterialsAlphaMapExtension,\n GLTFMaterialsBumpMapExtension,\n GLTFMaterialsDisplacementMapExtension,\n GLTFMaterialsLightMapExtension,\n GLTFObject3DExtrasExtension,\n IExporter,\n ThreeViewer,\n clearCoatTintGLTFExtension,\n customBumpMapGLTFExtension,\n noiseBumpMaterialGLTFExtension,\n fragmentClippingGLTFExtension,\n} from 'threepipe'\nimport {GLTFDracoExporter} from './GLTFDracoExporter'\nimport {UiObjectConfig} from 'uiconfig.js'\nimport {EncoderOptions} from '@gltf-transform/extensions/dist/khr-draco-mesh-compression/encoder'\n\nexport enum EncoderMethod {\n EDGEBREAKER = 1,\n SEQUENTIAL = 0\n}\n\n/**\n * GLTF Draco Export Plugin\n *\n * Overloads the default gltf exporter in the asset manager with GLTFDracoExporter. When exporting with compress = true, the output will be compressed.\n * Note - Only `glb` supported right now.\n *\n * @category Plugins\n */\nexport class GLTFDracoExportPlugin extends AViewerPluginSync {\n public static readonly PluginType = 'GLTFDracoExportPlugin'\n enabled = true\n\n /**\n * These are added here, but also added as plugins. Added here by default so that the data is not lost if some plugin is not added in an app.\n * To explicitly remove the data, use `removeExtension` with the name of the extension\n */\n extraExtensions = [\n [GLTFMaterialsBumpMapExtension.WebGiMaterialsBumpMapExtension, GLTFMaterialsBumpMapExtension.Textures],\n [GLTFMaterialsLightMapExtension.WebGiMaterialsLightMapExtension, GLTFMaterialsLightMapExtension.Textures],\n [GLTFMaterialsAlphaMapExtension.WebGiMaterialsAlphaMapExtension, GLTFMaterialsAlphaMapExtension.Textures],\n [GLTFMaterialsDisplacementMapExtension.WebGiMaterialsDisplacementMapExtension, GLTFMaterialsDisplacementMapExtension.Textures],\n [customBumpMapGLTFExtension.name, customBumpMapGLTFExtension.textures],\n [GLTFLightExtrasExtension.WebGiLightExtrasExtension, GLTFLightExtrasExtension.Textures],\n [GLTFObject3DExtrasExtension.WebGiObject3DExtrasExtension, GLTFObject3DExtrasExtension.Textures],\n [GLTFMaterialExtrasExtension.WebGiMaterialExtrasExtension, GLTFMaterialExtrasExtension.Textures],\n [clearCoatTintGLTFExtension.name, clearCoatTintGLTFExtension.textures],\n [noiseBumpMaterialGLTFExtension.name, noiseBumpMaterialGLTFExtension.textures],\n [fragmentClippingGLTFExtension.name, fragmentClippingGLTFExtension.textures],\n\n // extenal plugins\n\n // AnisotropyMaterialExtension\n ['WEBGI_materials_anisotropy', {\n anisotropyDirection: 'RGB',\n }],\n // todo port\n // DiamondMaterialExtension\n // AnimationMarkersExtension\n // ThinFilmLayerMaterialExtension\n // TriplanarMappingMaterialExtension\n // SSBevelMaterialExtension\n ] as [string, Record<string, string|number>|undefined][]\n\n addExtension(name: string, textures?: Record<string, string|number>) {\n const ext = this.extraExtensions.findIndex(e => e[0] === name)\n if (ext >= 0) this.extraExtensions[ext] = [name, textures]\n else this.extraExtensions.push([name, textures])\n }\n\n /**\n * Note - don't remove an extension when removing a plugin.\n *\n * extensions can be removed if you don't want to save the data of some plugin when transforming glb. But since this is not desirable in most cases, it is not recommended.\n * @param name\n */\n removeExtension(name: string) {\n const ext = this.extraExtensions.findIndex(e => e[0] === name)\n if (ext >= 0) this.extraExtensions.splice(ext, 1)\n }\n\n private _lastExporter?: IExporter['ctor'] = undefined\n\n protected _ctor: IExporter['ctor'] = (_, _exporter) => {\n if (!this._viewer) throw new Error('Viewer not set')\n const tempFile = generateUUID() + '.drc' // dummy\n const ex = new GLTFDracoExporter({},\n // todo unregister on dispose\n this._viewer.assetManager.importer.registerFile(tempFile) as DRACOLoader2)\n ex.setup(this._viewer, _exporter.extensions)\n for (const [ext, config] of this.extraExtensions) {\n ex.createAndAddExtension(ext, config)\n }\n return ex\n }\n\n onAdded(viewer: ThreeViewer): void {\n super.onAdded(viewer)\n const exporter = viewer.assetManager.exporter\n\n let glbExporter = exporter.getExporter('glb')\n this._lastExporter = glbExporter?.ctor\n if (!glbExporter) {\n console.error('GLTFDracoExportPlugin: GLB exporter not found in AssetManager.exporter, creating a new one.')\n glbExporter = {\n ext: ['glb', 'gltf'],\n extensions: [],\n ctor: this._ctor,\n }\n exporter.addExporter(glbExporter)\n } else {\n glbExporter.ctor = this._ctor\n }\n\n // for ui. todo use viewer.forPlugin\n const exportPlugin = viewer.getPlugin(AssetExporterPlugin)\n if (exportPlugin) {\n Object.assign(exportPlugin.exportOptions, {\n compress: false,\n dracoOptions: {\n encodeSpeed: 5,\n method: EncoderMethod.EDGEBREAKER,\n quantizationVolume: 'mesh',\n quantizationBits: {\n ['POSITION']: 14,\n ['NORMAL']: 10,\n ['COLOR']: 8,\n ['TEX_COORD']: 12,\n ['GENERIC']: 12,\n },\n } as EncoderOptions,\n })\n const exportOptions = exportPlugin.uiConfig.children?.find(c => (c as UiObjectConfig).label === 'GLB Export') as UiObjectConfig\n if (exportOptions) {\n exportOptions.children = [this._makeUi(exportPlugin), ...exportOptions.children || []]\n } else {\n console.warn('GLTFDracoExportPlugin: Unable to setup UI')\n }\n }\n }\n\n onRemove(viewer: ThreeViewer) {\n const exporter = viewer.assetManager.exporter\n const glbExporter = exporter.getExporter('glb')\n if (glbExporter && this._lastExporter) {\n glbExporter.ctor = this._lastExporter\n }\n super.onRemove(viewer)\n }\n\n protected _makeUi = (exporter: AssetExporterPlugin)=>[\n {\n type: 'checkbox',\n label: 'DRACO Compress',\n property: [exporter.exportOptions, 'compress'],\n onChange: ()=>exporter.uiConfig.uiRefresh?.(true),\n },\n {\n type: 'folder',\n hidden: ()=>!exporter.exportOptions.compress,\n label: 'DRACO Options',\n children: [\n {\n type: 'slider',\n label: 'Encode Speed',\n bounds: [1, 10],\n property: [exporter.exportOptions.dracoOptions, 'encodeSpeed'],\n },\n {\n type: 'dropdown',\n label: 'Encoder Method',\n property: [exporter.exportOptions.dracoOptions, 'method'],\n children: Object.entries(EncoderMethod).map(([k, v]) => ({label: k, value: v})),\n },\n {\n type: 'dropdown',\n label: 'Quantization Volume',\n property: [exporter.exportOptions.dracoOptions, 'quantizationVolume'],\n children: ['mesh', 'scene', 'bbox'].map(v => ({label: v})),\n },\n {\n type: 'folder',\n label: 'Quantization Bits',\n children: Object.keys(exporter.exportOptions.dracoOptions?.quantizationBits || {}).map(k => ({\n type: 'slider',\n label: k,\n bounds: [1, 16],\n stepSize: 1,\n property: [exporter.exportOptions.dracoOptions?.quantizationBits, k],\n })),\n },\n ],\n },\n ]\n}\n"],"names":["l","b","ref","w","y","v","t","r","A","s","e","S","R","O","C","F","B","c","h","f","d","g","p","m","T","x","U","E","M","I","N","n","i","o","a","u","L","j","D","_","k","z","G","J","$","V","W","q","H","Y","Z","P","K","X","tt","rt","st","nt","it","ot","at","ut","ct","lt","gt","pt","ft","mt","ht","wt","Q","et","yt","dt","Tt","xt","At","Et","St","Mt","It","Rt","Nt","Ot","Ct","bt","Ft","KHRDracoMeshCompression","WebIO","ALL_EXTENSIONS","ExtensionProperty","PropertyType","Extension","TextureInfo","TextureChannel","EncoderMethod","_a"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}