@loaders.gl/gltf 3.1.0-alpha.1 → 4.0.0-alpha.1

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.
Files changed (70) hide show
  1. package/dist/bundle.js +2 -4
  2. package/dist/bundle.js.map +1 -1
  3. package/dist/gltf-loader.js.map +1 -1
  4. package/dist/index.js +0 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/lib/api/gltf-extensions.js +35 -0
  7. package/dist/lib/api/gltf-extensions.js.map +1 -0
  8. package/dist/lib/api/gltf-scenegraph.js +1 -1
  9. package/dist/lib/api/gltf-scenegraph.js.map +1 -1
  10. package/dist/lib/api/normalize-gltf-v1.js +4 -4
  11. package/dist/lib/api/normalize-gltf-v1.js.map +1 -1
  12. package/dist/lib/api/post-process-gltf.js +12 -12
  13. package/dist/lib/api/post-process-gltf.js.map +1 -1
  14. package/dist/lib/extensions/EXT_meshopt_compression.js +16 -8
  15. package/dist/lib/extensions/EXT_meshopt_compression.js.map +1 -1
  16. package/dist/lib/extensions/EXT_texture_webp.js +32 -0
  17. package/dist/lib/extensions/EXT_texture_webp.js.map +1 -0
  18. package/dist/lib/extensions/KHR_binary_gltf.js +8 -8
  19. package/dist/lib/extensions/KHR_binary_gltf.js.map +1 -1
  20. package/dist/lib/extensions/KHR_draco_mesh_compression.js +9 -1
  21. package/dist/lib/extensions/KHR_draco_mesh_compression.js.map +1 -1
  22. package/dist/lib/extensions/KHR_texture_basisu.js +22 -0
  23. package/dist/lib/extensions/KHR_texture_basisu.js.map +1 -0
  24. package/dist/lib/extensions/{KHR_lights_punctual.js → deprecated/KHR_lights_punctual.js} +4 -3
  25. package/dist/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -0
  26. package/dist/lib/extensions/{KHR_materials_unlit.js → deprecated/KHR_materials_unlit.js} +3 -2
  27. package/dist/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -0
  28. package/dist/lib/extensions/{KHR_techniques_webgl.js → deprecated/KHR_techniques_webgl.js} +3 -2
  29. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -0
  30. package/dist/lib/gltf-utils/gltf-constants.js +0 -6
  31. package/dist/lib/gltf-utils/gltf-constants.js.map +1 -1
  32. package/dist/lib/gltf-utils/resolve-url.js +1 -1
  33. package/dist/lib/gltf-utils/resolve-url.js.map +1 -1
  34. package/dist/lib/parsers/parse-glb.js +2 -6
  35. package/dist/lib/parsers/parse-glb.js.map +1 -1
  36. package/dist/lib/parsers/parse-gltf.js +42 -7
  37. package/dist/lib/parsers/parse-gltf.js.map +1 -1
  38. package/dist/lib/utils/version.js +1 -1
  39. package/dist/meshopt/meshopt-decoder.js +1 -1
  40. package/dist/meshopt/meshopt-decoder.js.map +1 -1
  41. package/dist/webp/webp.js +29 -0
  42. package/dist/webp/webp.js.map +1 -0
  43. package/package.json +10 -7
  44. package/src/bundle.ts +2 -3
  45. package/src/gltf-loader.ts +7 -4
  46. package/src/index.ts +8 -4
  47. package/src/lib/api/gltf-extensions.ts +71 -0
  48. package/src/lib/api/gltf-scenegraph.ts +4 -6
  49. package/src/lib/api/normalize-gltf-v1.js +2 -1
  50. package/src/lib/extensions/EXT_meshopt_compression.ts +32 -23
  51. package/src/lib/extensions/EXT_texture_webp.ts +45 -0
  52. package/src/lib/extensions/KHR_binary_gltf.ts +19 -10
  53. package/src/lib/extensions/KHR_draco_mesh_compression.ts +29 -4
  54. package/src/lib/extensions/KHR_texture_basisu.ts +36 -0
  55. package/src/lib/extensions/{KHR_lights_punctual.ts → deprecated/KHR_lights_punctual.ts} +7 -4
  56. package/src/lib/extensions/{KHR_materials_unlit.ts → deprecated/KHR_materials_unlit.ts} +6 -3
  57. package/src/lib/extensions/{KHR_techniques_webgl.ts → deprecated/KHR_techniques_webgl.ts} +6 -3
  58. package/src/lib/gltf-utils/gltf-constants.ts +0 -12
  59. package/src/lib/parsers/parse-gltf.ts +72 -20
  60. package/src/lib/types/gltf-json-schema.ts +96 -3
  61. package/src/lib/types/gltf-types.ts +19 -21
  62. package/src/webp/webp.ts +41 -0
  63. package/dist/dist.min.js +0 -2
  64. package/dist/dist.min.js.map +0 -1
  65. package/dist/lib/extensions/KHR_lights_punctual.js.map +0 -1
  66. package/dist/lib/extensions/KHR_materials_unlit.js.map +0 -1
  67. package/dist/lib/extensions/KHR_techniques_webgl.js.map +0 -1
  68. package/dist/lib/extensions/gltf-extensions.js +0 -24
  69. package/dist/lib/extensions/gltf-extensions.js.map +0 -1
  70. package/src/lib/extensions/gltf-extensions.ts +0 -48
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/lib/extensions/KHR_lights_punctual.ts"],"names":["assert","GLTFScenegraph","KHR_LIGHTS_PUNCTUAL","decode","gltfData","gltfScenegraph","json","extension","getExtension","lights","removeExtension","node","nodes","nodeExtension","getObjectExtension","light","removeObjectExtension","encode","addExtension","addObjectExtension"],"mappings":"AAKA,SAAQA,MAAR,QAAqB,iBAArB;AACA,OAAOC,cAAP,MAA2B,wBAA3B;AACA,SAAQC,mBAAR,QAAkC,8BAAlC;AAEA,OAAO,eAAeC,MAAf,CAAsBC,QAAtB,EAA6D;AAClE,QAAMC,cAAc,GAAG,IAAIJ,cAAJ,CAAmBG,QAAnB,CAAvB;AACA,QAAM;AAACE,IAAAA;AAAD,MAASD,cAAf;AAGA,QAAME,SAAS,GAAGF,cAAc,CAACG,YAAf,CAA4BN,mBAA5B,CAAlB;;AACA,MAAIK,SAAJ,EAAe;AAEbF,IAAAA,cAAc,CAACC,IAAf,CAAoBG,MAApB,GAA6BF,SAAS,CAACE,MAAvC;AACAJ,IAAAA,cAAc,CAACK,eAAf,CAA+BR,mBAA/B;AACD;;AAID,OAAK,MAAMS,IAAX,IAAmBL,IAAI,CAACM,KAAL,IAAc,EAAjC,EAAqC;AACnC,UAAMC,aAAa,GAAGR,cAAc,CAACS,kBAAf,CAAkCH,IAAlC,EAAwCT,mBAAxC,CAAtB;;AACA,QAAIW,aAAJ,EAAmB;AAEjBF,MAAAA,IAAI,CAACI,KAAL,GAAaF,aAAa,CAACE,KAA3B;AACD;;AACDV,IAAAA,cAAc,CAACW,qBAAf,CAAqCL,IAArC,EAA2CT,mBAA3C;AACD;AACF;AAGD,OAAO,eAAee,MAAf,CAAsBb,QAAtB,EAA+C;AACpD,QAAMC,cAAc,GAAG,IAAIJ,cAAJ,CAAmBG,QAAnB,CAAvB;AACA,QAAM;AAACE,IAAAA;AAAD,MAASD,cAAf;;AAGA,MAAIC,IAAI,CAACG,MAAT,EAAiB;AACf,UAAMF,SAAS,GAAGF,cAAc,CAACa,YAAf,CAA4BhB,mBAA5B,CAAlB;AAEAF,IAAAA,MAAM,CAAC,CAACO,SAAS,CAACE,MAAZ,CAAN;AAEAF,IAAAA,SAAS,CAACE,MAAV,GAAmBH,IAAI,CAACG,MAAxB;AAEA,WAAOH,IAAI,CAACG,MAAZ;AACD;;AAKD,MAAIJ,cAAc,CAACC,IAAf,CAAoBG,MAAxB,EAAgC;AAE9B,SAAK,MAAMM,KAAX,IAAoBV,cAAc,CAACC,IAAf,CAAoBG,MAAxC,EAAgD;AAC9C,YAAME,IAAI,GAAGI,KAAK,CAACJ,IAAnB;AACAN,MAAAA,cAAc,CAACc,kBAAf,CAAkCR,IAAlC,EAAwCT,mBAAxC,EAA6Da,KAA7D;AACD;;AAED,WAAOV,cAAc,CAACC,IAAf,CAAoBG,MAA3B;AACD;AACF","sourcesContent":["// GLTF EXTENSION: KHR_lights_punctual\n// https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_lights_punctual\n\nimport type {GLTF} from '../types/gltf-types';\n\nimport {assert} from '../utils/assert';\nimport GLTFScenegraph from '../api/gltf-scenegraph';\nimport {KHR_LIGHTS_PUNCTUAL} from '../gltf-utils/gltf-constants';\n\nexport async function decode(gltfData: {json: GLTF}): Promise<void> {\n const gltfScenegraph = new GLTFScenegraph(gltfData);\n const {json} = gltfScenegraph;\n\n // Move the light array out of the extension and remove the extension\n const extension = gltfScenegraph.getExtension(KHR_LIGHTS_PUNCTUAL);\n if (extension) {\n // @ts-ignore\n gltfScenegraph.json.lights = extension.lights;\n gltfScenegraph.removeExtension(KHR_LIGHTS_PUNCTUAL);\n }\n\n // Any nodes that have the extension, add lights field pointing to light object\n // and remove the extension\n for (const node of json.nodes || []) {\n const nodeExtension = gltfScenegraph.getObjectExtension(node, KHR_LIGHTS_PUNCTUAL);\n if (nodeExtension) {\n // @ts-ignore\n node.light = nodeExtension.light;\n }\n gltfScenegraph.removeObjectExtension(node, KHR_LIGHTS_PUNCTUAL);\n }\n}\n\n// Move the light ar ray out of the extension and remove the extension\nexport async function encode(gltfData): Promise<void> {\n const gltfScenegraph = new GLTFScenegraph(gltfData);\n const {json} = gltfScenegraph;\n\n // @ts-ignore\n if (json.lights) {\n const extension = gltfScenegraph.addExtension(KHR_LIGHTS_PUNCTUAL);\n // @ts-ignore\n assert(!extension.lights);\n // @ts-ignore\n extension.lights = json.lights;\n // @ts-ignore\n delete json.lights;\n }\n\n // Any nodes that have lights field pointing to light object\n // add the extension\n // @ts-ignore\n if (gltfScenegraph.json.lights) {\n // @ts-ignore\n for (const light of gltfScenegraph.json.lights) {\n const node = light.node;\n gltfScenegraph.addObjectExtension(node, KHR_LIGHTS_PUNCTUAL, light);\n }\n // @ts-ignore\n delete gltfScenegraph.json.lights;\n }\n}\n"],"file":"KHR_lights_punctual.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/lib/extensions/KHR_materials_unlit.ts"],"names":["GLTFScenegraph","KHR_MATERIALS_UNLIT","decode","gltfData","gltfScenegraph","json","removeExtension","material","materials","extension","extensions","KHR_materials_unlit","unlit","removeObjectExtension","encode","addObjectExtension","addExtension"],"mappings":"AAKA,OAAOA,cAAP,MAA2B,wBAA3B;AACA,SAAQC,mBAAR,QAAkC,8BAAlC;AAEA,OAAO,eAAeC,MAAf,CAAsBC,QAAtB,EAA6D;AAClE,QAAMC,cAAc,GAAG,IAAIJ,cAAJ,CAAmBG,QAAnB,CAAvB;AACA,QAAM;AAACE,IAAAA;AAAD,MAASD,cAAf;AAGAA,EAAAA,cAAc,CAACE,eAAf,CAA+BL,mBAA/B;;AAIA,OAAK,MAAMM,QAAX,IAAuBF,IAAI,CAACG,SAAL,IAAkB,EAAzC,EAA6C;AAC3C,UAAMC,SAAS,GAAGF,QAAQ,CAACG,UAAT,IAAuBH,QAAQ,CAACG,UAAT,CAAoBC,mBAA7D;;AACA,QAAIF,SAAJ,EAAe;AAEbF,MAAAA,QAAQ,CAACK,KAAT,GAAiB,IAAjB;AACD;;AACDR,IAAAA,cAAc,CAACS,qBAAf,CAAqCN,QAArC,EAA+CN,mBAA/C;AACD;AACF;AAED,OAAO,SAASa,MAAT,CAAgBX,QAAhB,EAA0B;AAC/B,QAAMC,cAAc,GAAG,IAAIJ,cAAJ,CAAmBG,QAAnB,CAAvB;AACA,QAAM;AAACE,IAAAA;AAAD,MAASD,cAAf;;AAKA,MAAIA,cAAc,CAACI,SAAnB,EAA8B;AAC5B,SAAK,MAAMD,QAAX,IAAuBF,IAAI,CAACG,SAAL,IAAkB,EAAzC,EAA6C;AAE3C,UAAID,QAAQ,CAACK,KAAb,EAAoB;AAElB,eAAOL,QAAQ,CAACK,KAAhB;AACAR,QAAAA,cAAc,CAACW,kBAAf,CAAkCR,QAAlC,EAA4CN,mBAA5C,EAAiE,EAAjE;AACAG,QAAAA,cAAc,CAACY,YAAf,CAA4Bf,mBAA5B;AACD;AACF;AACF;AACF","sourcesContent":["// GLTF EXTENSION: KHR_materials_unlit\n// https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_unlit\n\nimport type {GLTF} from '../types/gltf-types';\n\nimport GLTFScenegraph from '../api/gltf-scenegraph';\nimport {KHR_MATERIALS_UNLIT} from '../gltf-utils/gltf-constants';\n\nexport async function decode(gltfData: {json: GLTF}): Promise<void> {\n const gltfScenegraph = new GLTFScenegraph(gltfData);\n const {json} = gltfScenegraph;\n\n // Remove the top-level extension\n gltfScenegraph.removeExtension(KHR_MATERIALS_UNLIT);\n\n // Any nodes that have the extension, add lights field pointing to light object\n // and remove the extension\n for (const material of json.materials || []) {\n const extension = material.extensions && material.extensions.KHR_materials_unlit;\n if (extension) {\n // @ts-ignore TODO\n material.unlit = true;\n }\n gltfScenegraph.removeObjectExtension(material, KHR_MATERIALS_UNLIT);\n }\n}\n\nexport function encode(gltfData) {\n const gltfScenegraph = new GLTFScenegraph(gltfData);\n const {json} = gltfScenegraph;\n\n // Any nodes that have lights field pointing to light object\n // add the extension\n // @ts-ignore\n if (gltfScenegraph.materials) {\n for (const material of json.materials || []) {\n // @ts-ignore\n if (material.unlit) {\n // @ts-ignore\n delete material.unlit;\n gltfScenegraph.addObjectExtension(material, KHR_MATERIALS_UNLIT, {});\n gltfScenegraph.addExtension(KHR_MATERIALS_UNLIT);\n }\n }\n }\n}\n"],"file":"KHR_materials_unlit.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/lib/extensions/KHR_techniques_webgl.ts"],"names":["GLTFScenegraph","KHR_TECHNIQUES_WEBGL","decode","gltfData","gltfScenegraph","json","extension","getExtension","techniques","resolveTechniques","material","materials","materialExtension","getObjectExtension","technique","Object","assign","values","resolveValues","removeObjectExtension","removeExtension","encode","options","techniquesExtension","programs","shaders","textDecoder","TextDecoder","forEach","shader","Number","isFinite","bufferView","code","getTypedArrayForBufferView","Error","program","fragmentShader","vertexShader","keys","uniforms","uniform","value","index","undefined","texture","getTexture"],"mappings":"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","sourcesContent":["// GLTF EXTENSION: KHR_techniques_webgl\n// https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_techniques_webgl\n\nimport type {GLTF} from '../types/gltf-types';\n\nimport GLTFScenegraph from '../api/gltf-scenegraph';\nimport {KHR_TECHNIQUES_WEBGL} from '../gltf-utils/gltf-constants';\n\nexport async function decode(gltfData: {json: GLTF}): Promise<void> {\n const gltfScenegraph = new GLTFScenegraph(gltfData);\n const {json} = gltfScenegraph;\n\n const extension = gltfScenegraph.getExtension(KHR_TECHNIQUES_WEBGL);\n if (extension) {\n const techniques = resolveTechniques(extension, gltfScenegraph);\n\n for (const material of json.materials || []) {\n const materialExtension = gltfScenegraph.getObjectExtension(material, KHR_TECHNIQUES_WEBGL);\n if (materialExtension) {\n // @ts-ignore TODO\n material.technique = Object.assign(\n {},\n materialExtension,\n // @ts-ignore\n techniques[materialExtension.technique]\n );\n // @ts-ignore TODO\n material.technique.values = resolveValues(material.technique, gltfScenegraph);\n }\n gltfScenegraph.removeObjectExtension(material, KHR_TECHNIQUES_WEBGL);\n }\n\n gltfScenegraph.removeExtension(KHR_TECHNIQUES_WEBGL);\n }\n}\n// eslint-disable-next-line\nexport async function encode(gltfData, options): Promise<void> {\n // TODO\n}\n\nfunction resolveTechniques(\n techniquesExtension: {[key: string]: any},\n // programs: {[key: string]: any}[],\n // shaders: {[key: string]: any}[],\n // techniques: {[key: string]: any}[]\n gltfScenegraph\n) {\n const {programs = [], shaders = [], techniques = []} = techniquesExtension;\n const textDecoder = new TextDecoder();\n\n shaders.forEach((shader) => {\n if (Number.isFinite(shader.bufferView)) {\n shader.code = textDecoder.decode(\n gltfScenegraph.getTypedArrayForBufferView(shader.bufferView)\n );\n } else {\n // TODO: handle URI shader\n throw new Error('KHR_techniques_webgl: no shader code');\n }\n });\n\n programs.forEach((program) => {\n program.fragmentShader = shaders[program.fragmentShader];\n program.vertexShader = shaders[program.vertexShader];\n });\n\n techniques.forEach((technique) => {\n technique.program = programs[technique.program];\n });\n\n return techniques;\n}\n\nfunction resolveValues(technique, gltfScenegraph) {\n const values = Object.assign({}, technique.values);\n\n // merge values from uniforms\n Object.keys(technique.uniforms || {}).forEach((uniform) => {\n if (technique.uniforms[uniform].value && !(uniform in values)) {\n values[uniform] = technique.uniforms[uniform].value;\n }\n });\n\n // resolve textures\n Object.keys(values).forEach((uniform) => {\n if (typeof values[uniform] === 'object' && values[uniform].index !== undefined) {\n // Assume this is a texture\n // TODO: find if there are any other types that can be referenced\n values[uniform].texture = gltfScenegraph.getTexture(values[uniform].index);\n }\n });\n\n return values;\n}\n"],"file":"KHR_techniques_webgl.js"}
@@ -1,24 +0,0 @@
1
- import * as KHR_draco_mesh_compression from './KHR_draco_mesh_compression';
2
- import * as KHR_materials_unlit from './KHR_materials_unlit';
3
- import * as KHR_lights_punctual from './KHR_lights_punctual';
4
- import * as KHR_techniques_webgl from './KHR_techniques_webgl';
5
- export const EXTENSIONS = {
6
- KHR_draco_mesh_compression,
7
- KHR_materials_unlit,
8
- KHR_lights_punctual,
9
- KHR_techniques_webgl
10
- };
11
- export async function decodeExtensions(gltf, options = {}, context) {
12
- for (const extensionName in EXTENSIONS) {
13
- var _options$gltf;
14
-
15
- const excludes = (options === null || options === void 0 ? void 0 : (_options$gltf = options.gltf) === null || _options$gltf === void 0 ? void 0 : _options$gltf.excludeExtensions) || {};
16
- const exclude = extensionName in excludes && !excludes[extensionName];
17
-
18
- if (!exclude) {
19
- const extension = EXTENSIONS[extensionName];
20
- await extension.decode(gltf, options, context);
21
- }
22
- }
23
- }
24
- //# sourceMappingURL=gltf-extensions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/lib/extensions/gltf-extensions.ts"],"names":["KHR_draco_mesh_compression","KHR_materials_unlit","KHR_lights_punctual","KHR_techniques_webgl","EXTENSIONS","decodeExtensions","gltf","options","context","extensionName","excludes","excludeExtensions","exclude","extension","decode"],"mappings":"AAQA,OAAO,KAAKA,0BAAZ,MAA4C,8BAA5C;AACA,OAAO,KAAKC,mBAAZ,MAAqC,uBAArC;AACA,OAAO,KAAKC,mBAAZ,MAAqC,uBAArC;AACA,OAAO,KAAKC,oBAAZ,MAAsC,wBAAtC;AAaA,OAAO,MAAMC,UAA0D,GAAG;AAMxEJ,EAAAA,0BANwE;AAOxEC,EAAAA,mBAPwE;AAQxEC,EAAAA,mBARwE;AASxEC,EAAAA;AATwE,CAAnE;AAYP,OAAO,eAAeE,gBAAf,CAAgCC,IAAhC,EAAsCC,OAA0B,GAAG,EAAnE,EAAuEC,OAAvE,EAAiF;AACtF,OAAK,MAAMC,aAAX,IAA4BL,UAA5B,EAAwC;AAAA;;AACtC,UAAMM,QAAQ,GAAG,CAAAH,OAAO,SAAP,IAAAA,OAAO,WAAP,6BAAAA,OAAO,CAAED,IAAT,gEAAeK,iBAAf,KAAoC,EAArD;AACA,UAAMC,OAAO,GAAGH,aAAa,IAAIC,QAAjB,IAA6B,CAACA,QAAQ,CAACD,aAAD,CAAtD;;AACA,QAAI,CAACG,OAAL,EAAc;AACZ,YAAMC,SAAS,GAAGT,UAAU,CAACK,aAAD,CAA5B;AAGA,YAAMI,SAAS,CAACC,MAAV,CAAiBR,IAAjB,EAAuBC,OAAvB,EAAgCC,OAAhC,CAAN;AACD;AACF;AACF","sourcesContent":["/* eslint-disable camelcase */\nimport {GLTF} from '../types/gltf-types';\nimport type {GLTFLoaderOptions} from '../../gltf-loader';\n\n// GLTF 1.0 extensions (read only)\n// import * as KHR_binary_gltf from './KHR_draco_mesh_compression';\n\n// GLTF 2.0 extensions (read/write)\nimport * as KHR_draco_mesh_compression from './KHR_draco_mesh_compression';\nimport * as KHR_materials_unlit from './KHR_materials_unlit';\nimport * as KHR_lights_punctual from './KHR_lights_punctual';\nimport * as KHR_techniques_webgl from './KHR_techniques_webgl';\n\ntype GLTFExtensionPlugin = {\n decode: (gltfData: {json: GLTF}, options: GLTFLoaderOptions, context) => Promise<void>;\n\n encode: (gltfData: {json: GLTF}, options: GLTFLoaderOptions) => void;\n};\n\n/**\n * List of extensions processed by the GLTFLoader\n * Note that may extensions can only be handled on the rendering stage and are left out here\n * These are just extensions that can be handled fully or partially during loading.\n */\nexport const EXTENSIONS: {[extensionName: string]: GLTFExtensionPlugin} = {\n // 1.0\n // KHR_binary_gltf is handled separately - must be processed before other parsing starts\n // KHR_binary_gltf,\n\n // 2.0\n KHR_draco_mesh_compression,\n KHR_materials_unlit,\n KHR_lights_punctual,\n KHR_techniques_webgl\n};\n\nexport async function decodeExtensions(gltf, options: GLTFLoaderOptions = {}, context?) {\n for (const extensionName in EXTENSIONS) {\n const excludes = options?.gltf?.excludeExtensions || {};\n const exclude = extensionName in excludes && !excludes[extensionName];\n if (!exclude) {\n const extension = EXTENSIONS[extensionName];\n // Note: We decode async extensions sequentially, this might not be necessary\n // Currently we only have Draco, but when we add Basis we may revisit\n await extension.decode(gltf, options, context);\n }\n }\n}\n"],"file":"gltf-extensions.js"}
@@ -1,48 +0,0 @@
1
- /* eslint-disable camelcase */
2
- import {GLTF} from '../types/gltf-types';
3
- import type {GLTFLoaderOptions} from '../../gltf-loader';
4
-
5
- // GLTF 1.0 extensions (read only)
6
- // import * as KHR_binary_gltf from './KHR_draco_mesh_compression';
7
-
8
- // GLTF 2.0 extensions (read/write)
9
- import * as KHR_draco_mesh_compression from './KHR_draco_mesh_compression';
10
- import * as KHR_materials_unlit from './KHR_materials_unlit';
11
- import * as KHR_lights_punctual from './KHR_lights_punctual';
12
- import * as KHR_techniques_webgl from './KHR_techniques_webgl';
13
-
14
- type GLTFExtensionPlugin = {
15
- decode: (gltfData: {json: GLTF}, options: GLTFLoaderOptions, context) => Promise<void>;
16
-
17
- encode: (gltfData: {json: GLTF}, options: GLTFLoaderOptions) => void;
18
- };
19
-
20
- /**
21
- * List of extensions processed by the GLTFLoader
22
- * Note that may extensions can only be handled on the rendering stage and are left out here
23
- * These are just extensions that can be handled fully or partially during loading.
24
- */
25
- export const EXTENSIONS: {[extensionName: string]: GLTFExtensionPlugin} = {
26
- // 1.0
27
- // KHR_binary_gltf is handled separately - must be processed before other parsing starts
28
- // KHR_binary_gltf,
29
-
30
- // 2.0
31
- KHR_draco_mesh_compression,
32
- KHR_materials_unlit,
33
- KHR_lights_punctual,
34
- KHR_techniques_webgl
35
- };
36
-
37
- export async function decodeExtensions(gltf, options: GLTFLoaderOptions = {}, context?) {
38
- for (const extensionName in EXTENSIONS) {
39
- const excludes = options?.gltf?.excludeExtensions || {};
40
- const exclude = extensionName in excludes && !excludes[extensionName];
41
- if (!exclude) {
42
- const extension = EXTENSIONS[extensionName];
43
- // Note: We decode async extensions sequentially, this might not be necessary
44
- // Currently we only have Draco, but when we add Basis we may revisit
45
- await extension.decode(gltf, options, context);
46
- }
47
- }
48
- }