1 |
- {"ast":null,"code":"import { DracoCompression } from \"@babylonjs/core/Meshes/Compression/dracoCompression.js\";\nimport { VertexBuffer } from \"@babylonjs/core/Buffers/buffer.js\";\nimport { GLTFLoader, ArrayItem } from \"../glTFLoader.js\";\nconst NAME = \"KHR_draco_mesh_compression\";\n/**\n * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_draco_mesh_compression/README.md)\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class KHR_draco_mesh_compression {\n /**\n * @internal\n */\n constructor(loader) {\n /**\n * The name of this extension.\n */\n this.name = NAME;\n /**\n * Defines whether to use the normalized flag from the glTF accessor instead of the Draco data. Defaults to true.\n */\n this.useNormalizedFlagFromAccessor = true;\n this._loader = loader;\n this.enabled = DracoCompression.DecoderAvailable && this._loader.isExtensionUsed(NAME);\n }\n /** @internal */\n dispose() {\n delete this.dracoCompression;\n this._loader = null;\n }\n /**\n * @internal\n */\n _loadVertexDataAsync(context, primitive, babylonMesh) {\n return GLTFLoader.LoadExtensionAsync(context, primitive, this.name, (extensionContext, extension) => {\n if (primitive.mode != undefined) {\n if (primitive.mode !== 4 /* MeshPrimitiveMode.TRIANGLES */ && primitive.mode !== 5 /* MeshPrimitiveMode.TRIANGLE_STRIP */) {\n throw new Error(`${context}: Unsupported mode ${primitive.mode}`);\n }\n }\n const attributes = {};\n const normalized = {};\n const loadAttribute = (name, kind) => {\n const uniqueId = extension.attributes[name];\n if (uniqueId == undefined) {\n return;\n }\n babylonMesh._delayInfo = babylonMesh._delayInfo || [];\n if (babylonMesh._delayInfo.indexOf(kind) === -1) {\n babylonMesh._delayInfo.push(kind);\n }\n attributes[kind] = uniqueId;\n if (this.useNormalizedFlagFromAccessor) {\n const accessor = ArrayItem.TryGet(this._loader.gltf.accessors, primitive.attributes[name]);\n if (accessor) {\n normalized[kind] = accessor.normalized || false;\n }\n }\n };\n loadAttribute(\"POSITION\", VertexBuffer.PositionKind);\n loadAttribute(\"NORMAL\", VertexBuffer.NormalKind);\n loadAttribute(\"TANGENT\", VertexBuffer.TangentKind);\n loadAttribute(\"TEXCOORD_0\", VertexBuffer.UVKind);\n loadAttribute(\"TEXCOORD_1\", VertexBuffer.UV2Kind);\n loadAttribute(\"TEXCOORD_2\", VertexBuffer.UV3Kind);\n loadAttribute(\"TEXCOORD_3\", VertexBuffer.UV4Kind);\n loadAttribute(\"TEXCOORD_4\", VertexBuffer.UV5Kind);\n loadAttribute(\"TEXCOORD_5\", VertexBuffer.UV6Kind);\n loadAttribute(\"JOINTS_0\", VertexBuffer.MatricesIndicesKind);\n loadAttribute(\"WEIGHTS_0\", VertexBuffer.MatricesWeightsKind);\n loadAttribute(\"COLOR_0\", VertexBuffer.ColorKind);\n const bufferView = ArrayItem.Get(extensionContext, this._loader.gltf.bufferViews, extension.bufferView);\n if (!bufferView._dracoBabylonGeometry) {\n bufferView._dracoBabylonGeometry = this._loader.loadBufferViewAsync(`/bufferViews/${bufferView.index}`, bufferView).then(data => {\n const dracoCompression = this.dracoCompression || DracoCompression.Default;\n return dracoCompression._decodeMeshToGeometryForGltfAsync(babylonMesh.name, this._loader.babylonScene, data, attributes, normalized).catch(error => {\n throw new Error(`${context}: ${error.message}`);\n });\n });\n }\n return bufferView._dracoBabylonGeometry;\n });\n }\n}\nGLTFLoader.RegisterExtension(NAME, loader => new KHR_draco_mesh_compression(loader));","map":{"version":3,"names":["DracoCompression","VertexBuffer","GLTFLoader","ArrayItem","NAME","KHR_draco_mesh_compression","constructor","loader","name","useNormalizedFlagFromAccessor","_loader","enabled","DecoderAvailable","isExtensionUsed","dispose","dracoCompression","_loadVertexDataAsync","context","primitive","babylonMesh","LoadExtensionAsync","extensionContext","extension","mode","undefined","Error","attributes","normalized","loadAttribute","kind","uniqueId","_delayInfo","indexOf","push","accessor","TryGet","gltf","accessors","PositionKind","NormalKind","TangentKind","UVKind","UV2Kind","UV3Kind","UV4Kind","UV5Kind","UV6Kind","MatricesIndicesKind","MatricesWeightsKind","ColorKind","bufferView","Get","bufferViews","_dracoBabylonGeometry","loadBufferViewAsync","index","then","data","Default","_decodeMeshToGeometryForGltfAsync","babylonScene","catch","error","message","RegisterExtension"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_draco_mesh_compression.js"],"sourcesContent":["import { DracoCompression } from \"@babylonjs/core/Meshes/Compression/dracoCompression.js\";\nimport { VertexBuffer } from \"@babylonjs/core/Buffers/buffer.js\";\nimport { GLTFLoader, ArrayItem } from \"../glTFLoader.js\";\nconst NAME = \"KHR_draco_mesh_compression\";\n/**\n * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_draco_mesh_compression/README.md)\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class KHR_draco_mesh_compression {\n /**\n * @internal\n */\n constructor(loader) {\n /**\n * The name of this extension.\n */\n this.name = NAME;\n /**\n * Defines whether to use the normalized flag from the glTF accessor instead of the Draco data. Defaults to true.\n */\n this.useNormalizedFlagFromAccessor = true;\n this._loader = loader;\n this.enabled = DracoCompression.DecoderAvailable && this._loader.isExtensionUsed(NAME);\n }\n /** @internal */\n dispose() {\n delete this.dracoCompression;\n this._loader = null;\n }\n /**\n * @internal\n */\n _loadVertexDataAsync(context, primitive, babylonMesh) {\n return GLTFLoader.LoadExtensionAsync(context, primitive, this.name, (extensionContext, extension) => {\n if (primitive.mode != undefined) {\n if (primitive.mode !== 4 /* MeshPrimitiveMode.TRIANGLES */ && primitive.mode !== 5 /* MeshPrimitiveMode.TRIANGLE_STRIP */) {\n throw new Error(`${context}: Unsupported mode ${primitive.mode}`);\n }\n }\n const attributes = {};\n const normalized = {};\n const loadAttribute = (name, kind) => {\n const uniqueId = extension.attributes[name];\n if (uniqueId == undefined) {\n return;\n }\n babylonMesh._delayInfo = babylonMesh._delayInfo || [];\n if (babylonMesh._delayInfo.indexOf(kind) === -1) {\n babylonMesh._delayInfo.push(kind);\n }\n attributes[kind] = uniqueId;\n if (this.useNormalizedFlagFromAccessor) {\n const accessor = ArrayItem.TryGet(this._loader.gltf.accessors, primitive.attributes[name]);\n if (accessor) {\n normalized[kind] = accessor.normalized || false;\n }\n }\n };\n loadAttribute(\"POSITION\", VertexBuffer.PositionKind);\n loadAttribute(\"NORMAL\", VertexBuffer.NormalKind);\n loadAttribute(\"TANGENT\", VertexBuffer.TangentKind);\n loadAttribute(\"TEXCOORD_0\", VertexBuffer.UVKind);\n loadAttribute(\"TEXCOORD_1\", VertexBuffer.UV2Kind);\n loadAttribute(\"TEXCOORD_2\", VertexBuffer.UV3Kind);\n loadAttribute(\"TEXCOORD_3\", VertexBuffer.UV4Kind);\n loadAttribute(\"TEXCOORD_4\", VertexBuffer.UV5Kind);\n loadAttribute(\"TEXCOORD_5\", VertexBuffer.UV6Kind);\n loadAttribute(\"JOINTS_0\", VertexBuffer.MatricesIndicesKind);\n loadAttribute(\"WEIGHTS_0\", VertexBuffer.MatricesWeightsKind);\n loadAttribute(\"COLOR_0\", VertexBuffer.ColorKind);\n const bufferView = ArrayItem.Get(extensionContext, this._loader.gltf.bufferViews, extension.bufferView);\n if (!bufferView._dracoBabylonGeometry) {\n bufferView._dracoBabylonGeometry = this._loader.loadBufferViewAsync(`/bufferViews/${bufferView.index}`, bufferView).then((data) => {\n const dracoCompression = this.dracoCompression || DracoCompression.Default;\n return dracoCompression._decodeMeshToGeometryForGltfAsync(babylonMesh.name, this._loader.babylonScene, data, attributes, normalized).catch((error) => {\n throw new Error(`${context}: ${error.message}`);\n });\n });\n }\n return bufferView._dracoBabylonGeometry;\n });\n }\n}\nGLTFLoader.RegisterExtension(NAME, (loader) => new KHR_draco_mesh_compression(loader));\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,wDAAwD;AACzF,SAASC,YAAY,QAAQ,mCAAmC;AAChE,SAASC,UAAU,EAAEC,SAAS,QAAQ,kBAAkB;AACxD,MAAMC,IAAI,GAAG,4BAA4B;AACzC;AACA;AACA;AACA;AACA,OAAO,MAAMC,0BAA0B,CAAC;EACpC;AACJ;AACA;EACIC,WAAWA,CAACC,MAAM,EAAE;IAChB;AACR;AACA;IACQ,IAAI,CAACC,IAAI,GAAGJ,IAAI;IAChB;AACR;AACA;IACQ,IAAI,CAACK,6BAA6B,GAAG,IAAI;IACzC,IAAI,CAACC,OAAO,GAAGH,MAAM;IACrB,IAAI,CAACI,OAAO,GAAGX,gBAAgB,CAACY,gBAAgB,IAAI,IAAI,CAACF,OAAO,CAACG,eAAe,CAACT,IAAI,CAAC;EAC1F;EACA;EACAU,OAAOA,CAAA,EAAG;IACN,OAAO,IAAI,CAACC,gBAAgB;IAC5B,IAAI,CAACL,OAAO,GAAG,IAAI;EACvB;EACA;AACJ;AACA;EACIM,oBAAoBA,CAACC,OAAO,EAAEC,SAAS,EAAEC,WAAW,EAAE;IAClD,OAAOjB,UAAU,CAACkB,kBAAkB,CAACH,OAAO,EAAEC,SAAS,EAAE,IAAI,CAACV,IAAI,EAAE,CAACa,gBAAgB,EAAEC,SAAS,KAAK;MACjG,IAAIJ,SAAS,CAACK,IAAI,IAAIC,SAAS,EAAE;QAC7B,IAAIN,SAAS,CAACK,IAAI,KAAK,CAAC,CAAC,qCAAqCL,SAAS,CAACK,IAAI,KAAK,CAAC,CAAC,wCAAwC;UACvH,MAAM,IAAIE,KAAK,CAAC,GAAGR,OAAO,sBAAsBC,SAAS,CAACK,IAAI,EAAE,CAAC;QACrE;MACJ;MACA,MAAMG,UAAU,GAAG,CAAC,CAAC;MACrB,MAAMC,UAAU,GAAG,CAAC,CAAC;MACrB,MAAMC,aAAa,GAAGA,CAACpB,IAAI,EAAEqB,IAAI,KAAK;QAClC,MAAMC,QAAQ,GAAGR,SAAS,CAACI,UAAU,CAAClB,IAAI,CAAC;QAC3C,IAAIsB,QAAQ,IAAIN,SAAS,EAAE;UACvB;QACJ;QACAL,WAAW,CAACY,UAAU,GAAGZ,WAAW,CAACY,UAAU,IAAI,EAAE;QACrD,IAAIZ,WAAW,CAACY,UAAU,CAACC,OAAO,CAACH,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;UAC7CV,WAAW,CAACY,UAAU,CAACE,IAAI,CAACJ,IAAI,CAAC;QACrC;QACAH,UAAU,CAACG,IAAI,CAAC,GAAGC,QAAQ;QAC3B,IAAI,IAAI,CAACrB,6BAA6B,EAAE;UACpC,MAAMyB,QAAQ,GAAG/B,SAAS,CAACgC,MAAM,CAAC,IAAI,CAACzB,OAAO,CAAC0B,IAAI,CAACC,SAAS,EAAEnB,SAAS,CAACQ,UAAU,CAAClB,IAAI,CAAC,CAAC;UAC1F,IAAI0B,QAAQ,EAAE;YACVP,UAAU,CAACE,IAAI,CAAC,GAAGK,QAAQ,CAACP,UAAU,IAAI,KAAK;UACnD;QACJ;MACJ,CAAC;MACDC,aAAa,CAAC,UAAU,EAAE3B,YAAY,CAACqC,YAAY,CAAC;MACpDV,aAAa,CAAC,QAAQ,EAAE3B,YAAY,CAACsC,UAAU,CAAC;MAChDX,aAAa,CAAC,SAAS,EAAE3B,YAAY,CAACuC,WAAW,CAAC;MAClDZ,aAAa,CAAC,YAAY,EAAE3B,YAAY,CAACwC,MAAM,CAAC;MAChDb,aAAa,CAAC,YAAY,EAAE3B,YAAY,CAACyC,OAAO,CAAC;MACjDd,aAAa,CAAC,YAAY,EAAE3B,YAAY,CAAC0C,OAAO,CAAC;MACjDf,aAAa,CAAC,YAAY,EAAE3B,YAAY,CAAC2C,OAAO,CAAC;MACjDhB,aAAa,CAAC,YAAY,EAAE3B,YAAY,CAAC4C,OAAO,CAAC;MACjDjB,aAAa,CAAC,YAAY,EAAE3B,YAAY,CAAC6C,OAAO,CAAC;MACjDlB,aAAa,CAAC,UAAU,EAAE3B,YAAY,CAAC8C,mBAAmB,CAAC;MAC3DnB,aAAa,CAAC,WAAW,EAAE3B,YAAY,CAAC+C,mBAAmB,CAAC;MAC5DpB,aAAa,CAAC,SAAS,EAAE3B,YAAY,CAACgD,SAAS,CAAC;MAChD,MAAMC,UAAU,GAAG/C,SAAS,CAACgD,GAAG,CAAC9B,gBAAgB,EAAE,IAAI,CAACX,OAAO,CAAC0B,IAAI,CAACgB,WAAW,EAAE9B,SAAS,CAAC4B,UAAU,CAAC;MACvG,IAAI,CAACA,UAAU,CAACG,qBAAqB,EAAE;QACnCH,UAAU,CAACG,qBAAqB,GAAG,IAAI,CAAC3C,OAAO,CAAC4C,mBAAmB,CAAC,gBAAgBJ,UAAU,CAACK,KAAK,EAAE,EAAEL,UAAU,CAAC,CAACM,IAAI,CAAEC,IAAI,IAAK;UAC/H,MAAM1C,gBAAgB,GAAG,IAAI,CAACA,gBAAgB,IAAIf,gBAAgB,CAAC0D,OAAO;UAC1E,OAAO3C,gBAAgB,CAAC4C,iCAAiC,CAACxC,WAAW,CAACX,IAAI,EAAE,IAAI,CAACE,OAAO,CAACkD,YAAY,EAAEH,IAAI,EAAE/B,UAAU,EAAEC,UAAU,CAAC,CAACkC,KAAK,CAAEC,KAAK,IAAK;YAClJ,MAAM,IAAIrC,KAAK,CAAC,GAAGR,OAAO,KAAK6C,KAAK,CAACC,OAAO,EAAE,CAAC;UACnD,CAAC,CAAC;QACN,CAAC,CAAC;MACN;MACA,OAAOb,UAAU,CAACG,qBAAqB;IAC3C,CAAC,CAAC;EACN;AACJ;AACAnD,UAAU,CAAC8D,iBAAiB,CAAC5D,IAAI,EAAGG,MAAM,IAAK,IAAIF,0BAA0B,CAACE,MAAM,CAAC,CAAC","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|