@loaders.gl/gltf 4.0.0-alpha.4 → 4.0.0-alpha.5

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 (98) hide show
  1. package/dist/bundle.d.ts +2 -0
  2. package/dist/bundle.d.ts.map +1 -0
  3. package/dist/dist.min.js +4541 -0
  4. package/dist/glb-loader.d.ts +13 -0
  5. package/dist/glb-loader.d.ts.map +1 -0
  6. package/dist/glb-writer.d.ts +22 -0
  7. package/dist/glb-writer.d.ts.map +1 -0
  8. package/dist/gltf-loader.d.ts +18 -0
  9. package/dist/gltf-loader.d.ts.map +1 -0
  10. package/dist/gltf-writer.d.ts +25 -0
  11. package/dist/gltf-writer.d.ts.map +1 -0
  12. package/dist/index.d.ts +11 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js.map +1 -1
  15. package/dist/lib/api/gltf-extensions.d.ts +26 -0
  16. package/dist/lib/api/gltf-extensions.d.ts.map +1 -0
  17. package/dist/lib/api/gltf-scenegraph.d.ts +183 -0
  18. package/dist/lib/api/gltf-scenegraph.d.ts.map +1 -0
  19. package/dist/lib/api/gltf-scenegraph.js.map +1 -1
  20. package/dist/lib/api/normalize-gltf-v1.d.ts +2 -0
  21. package/dist/lib/api/normalize-gltf-v1.d.ts.map +1 -0
  22. package/dist/lib/api/normalize-gltf-v1.js +6 -3
  23. package/dist/lib/api/normalize-gltf-v1.js.map +1 -1
  24. package/dist/lib/api/post-process-gltf.d.ts +2 -0
  25. package/dist/lib/api/post-process-gltf.d.ts.map +1 -0
  26. package/dist/lib/api/post-process-gltf.js +37 -7
  27. package/dist/lib/api/post-process-gltf.js.map +1 -1
  28. package/dist/lib/encoders/encode-glb.d.ts +2 -0
  29. package/dist/lib/encoders/encode-glb.d.ts.map +1 -0
  30. package/dist/lib/encoders/encode-glb.js.map +1 -1
  31. package/dist/lib/encoders/encode-gltf.d.ts +2 -0
  32. package/dist/lib/encoders/encode-gltf.d.ts.map +1 -0
  33. package/dist/lib/encoders/encode-gltf.js.map +1 -1
  34. package/dist/lib/extensions/EXT_meshopt_compression.d.ts +10 -0
  35. package/dist/lib/extensions/EXT_meshopt_compression.d.ts.map +1 -0
  36. package/dist/lib/extensions/EXT_texture_webp.d.ts +12 -0
  37. package/dist/lib/extensions/EXT_texture_webp.d.ts.map +1 -0
  38. package/dist/lib/extensions/KHR_binary_gltf.d.ts +7 -0
  39. package/dist/lib/extensions/KHR_binary_gltf.d.ts.map +1 -0
  40. package/dist/lib/extensions/KHR_draco_mesh_compression.d.ts +13 -0
  41. package/dist/lib/extensions/KHR_draco_mesh_compression.d.ts.map +1 -0
  42. package/dist/lib/extensions/KHR_texture_basisu.d.ts +12 -0
  43. package/dist/lib/extensions/KHR_texture_basisu.d.ts.map +1 -0
  44. package/dist/lib/extensions/KHR_texture_basisu.js.map +1 -1
  45. package/dist/lib/extensions/deprecated/KHR_lights_punctual.d.ts +7 -0
  46. package/dist/lib/extensions/deprecated/KHR_lights_punctual.d.ts.map +1 -0
  47. package/dist/lib/extensions/deprecated/KHR_materials_unlit.d.ts +7 -0
  48. package/dist/lib/extensions/deprecated/KHR_materials_unlit.d.ts.map +1 -0
  49. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.d.ts +7 -0
  50. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.d.ts.map +1 -0
  51. package/dist/lib/gltf-utils/get-typed-array.d.ts +3 -0
  52. package/dist/lib/gltf-utils/get-typed-array.d.ts.map +1 -0
  53. package/dist/lib/gltf-utils/gltf-attribute-utils.d.ts +6 -0
  54. package/dist/lib/gltf-utils/gltf-attribute-utils.d.ts.map +1 -0
  55. package/dist/lib/gltf-utils/gltf-constants.d.ts +4 -0
  56. package/dist/lib/gltf-utils/gltf-constants.d.ts.map +1 -0
  57. package/dist/lib/gltf-utils/gltf-utils.d.ts +8 -0
  58. package/dist/lib/gltf-utils/gltf-utils.d.ts.map +1 -0
  59. package/dist/lib/gltf-utils/resolve-url.d.ts +2 -0
  60. package/dist/lib/gltf-utils/resolve-url.d.ts.map +1 -0
  61. package/dist/lib/parsers/parse-glb.d.ts +8 -0
  62. package/dist/lib/parsers/parse-glb.d.ts.map +1 -0
  63. package/dist/lib/parsers/parse-gltf.d.ts +14 -0
  64. package/dist/lib/parsers/parse-gltf.d.ts.map +1 -0
  65. package/dist/lib/parsers/parse-gltf.js +2 -2
  66. package/dist/lib/parsers/parse-gltf.js.map +1 -1
  67. package/dist/lib/types/glb-types.d.ts +17 -0
  68. package/dist/lib/types/glb-types.d.ts.map +1 -0
  69. package/dist/lib/types/gltf-json-schema.d.ts +720 -0
  70. package/dist/lib/types/gltf-json-schema.d.ts.map +1 -0
  71. package/dist/lib/types/gltf-postprocessed-schema.d.ts +686 -0
  72. package/dist/lib/types/gltf-postprocessed-schema.d.ts.map +1 -0
  73. package/dist/lib/types/gltf-types.d.ts +11 -0
  74. package/dist/lib/types/gltf-types.d.ts.map +1 -0
  75. package/dist/lib/utils/assert.d.ts +2 -0
  76. package/dist/lib/utils/assert.d.ts.map +1 -0
  77. package/dist/lib/utils/assert.js.map +1 -1
  78. package/dist/lib/utils/version.d.ts +2 -0
  79. package/dist/lib/utils/version.d.ts.map +1 -0
  80. package/dist/lib/utils/version.js +1 -1
  81. package/dist/lib/utils/version.js.map +1 -1
  82. package/dist/meshopt/meshopt-decoder.d.ts +6 -0
  83. package/dist/meshopt/meshopt-decoder.d.ts.map +1 -0
  84. package/dist/webp/webp.d.ts +7 -0
  85. package/dist/webp/webp.d.ts.map +1 -0
  86. package/package.json +8 -11
  87. package/src/index.ts +1 -0
  88. package/src/lib/api/gltf-scenegraph.ts +2 -2
  89. package/src/lib/api/{normalize-gltf-v1.js → normalize-gltf-v1.ts} +18 -16
  90. package/src/lib/api/{post-process-gltf.js → post-process-gltf.ts} +52 -9
  91. package/src/lib/encoders/{encode-glb.js → encode-glb.ts} +0 -0
  92. package/src/lib/encoders/{encode-gltf.js → encode-gltf.ts} +0 -0
  93. package/src/lib/extensions/KHR_texture_basisu.ts +2 -2
  94. package/src/lib/parsers/parse-gltf.ts +2 -2
  95. package/src/lib/types/gltf-postprocessed-schema.ts +3 -2
  96. package/src/lib/types/gltf-types.ts +4 -1
  97. package/src/lib/utils/{assert.js → assert.ts} +1 -1
  98. /package/src/lib/utils/{version.js → version.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gltf-postprocessed-schema.d.ts","sourceRoot":"","sources":["../../../src/lib/types/gltf-postprocessed-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { GLTF, Accessor as GLTFAccessor, Buffer as GLTFBuffer, BufferView as GLTFBufferView, MeshPrimitive as GLTFMeshPrimitive, Mesh as GLTFMesh, Node as GLTFNode, Material as GLTFMaterial, Sampler as GLTFSampler, Scene as GLTFScene, Skin as GLTFSkin, Texture as GLTFTexture, Image as GLTFImage, GLTF_KHR_binary_glTF, GLTF_KHR_draco_mesh_compression, GLTF_KHR_texture_basisu, GLTF_EXT_meshopt_compression, GLTF_EXT_texture_webp } from './gltf-json-schema';
2
+ import type { Image as GLTFImagePostprocessed } from './gltf-postprocessed-schema';
3
+ export type { GLTF, GLTFAccessor, GLTFBuffer, GLTFBufferView, GLTFMeshPrimitive, GLTFMesh, GLTFNode, GLTFMaterial, GLTFSampler, GLTFScene, GLTFSkin, GLTFTexture, GLTFImage, GLTF_KHR_binary_glTF, GLTF_KHR_draco_mesh_compression, GLTF_KHR_texture_basisu, GLTF_EXT_meshopt_compression, GLTF_EXT_texture_webp, GLTFImagePostprocessed };
4
+ export declare type GLTFObject = GLTFAccessor | GLTFBuffer | GLTFBufferView | GLTFMeshPrimitive | GLTFMesh | GLTFNode | GLTFMaterial | GLTFSampler | GLTFScene | GLTFSkin | GLTFTexture | GLTFImage;
5
+ export declare type GLTFWithBuffers = {
6
+ json: GLTF;
7
+ buffers: any[];
8
+ binary?: ArrayBuffer;
9
+ images?: any[];
10
+ };
11
+ //# sourceMappingURL=gltf-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gltf-types.d.ts","sourceRoot":"","sources":["../../../src/lib/types/gltf-types.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,IAAI,EACJ,QAAQ,IAAI,YAAY,EACxB,MAAM,IAAI,UAAU,EACpB,UAAU,IAAI,cAAc,EAC5B,aAAa,IAAI,iBAAiB,EAClC,IAAI,IAAI,QAAQ,EAChB,IAAI,IAAI,QAAQ,EAChB,QAAQ,IAAI,YAAY,EACxB,OAAO,IAAI,WAAW,EACtB,KAAK,IAAI,SAAS,EAClB,IAAI,IAAI,QAAQ,EAChB,OAAO,IAAI,WAAW,EACtB,KAAK,IAAI,SAAS,EAClB,oBAAoB,EACpB,+BAA+B,EAC/B,uBAAuB,EACvB,4BAA4B,EAC5B,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAC,KAAK,IAAI,sBAAsB,EAAC,MAAM,6BAA6B,CAAC;AAEjF,YAAY,EACV,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,SAAS,EACT,QAAQ,EACR,WAAW,EACX,SAAS,EACT,oBAAoB,EACpB,+BAA+B,EAC/B,uBAAuB,EACvB,4BAA4B,EAC5B,qBAAqB,EACrB,sBAAsB,EACvB,CAAC;AAEF,oBAAY,UAAU,GAClB,YAAY,GACZ,UAAU,GACV,cAAc,GACd,iBAAiB,GACjB,QAAQ,GACR,QAAQ,GACR,YAAY,GACZ,WAAW,GACX,SAAS,GACT,QAAQ,GACR,WAAW,GACX,SAAS,CAAC;AAEd,oBAAY,eAAe,GAAG;IAC5B,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;CAChB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function assert(condition: unknown, message?: string): void;
2
+ //# sourceMappingURL=assert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/assert.ts"],"names":[],"mappings":"AAGA,wBAAgB,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAIjE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/utils/assert.js"],"names":["assert","condition","message","Error"],"mappings":"AAGA,OAAO,SAASA,MAAT,CAAgBC,SAAhB,EAA2BC,OAA3B,EAAoC;AACzC,MAAI,CAACD,SAAL,EAAgB;AACd,UAAM,IAAIE,KAAJ,CAAUD,OAAO,IAAI,qBAArB,CAAN;AACD;AACF","sourcesContent":["// Replacement for the external assert method to reduce bundle size\n// Note: We don't use the second \"message\" argument in calling code,\n// so no need to support it here\nexport function assert(condition, message) {\n if (!condition) {\n throw new Error(message || 'assert failed: gltf');\n }\n}\n"],"file":"assert.js"}
1
+ {"version":3,"sources":["../../../src/lib/utils/assert.ts"],"names":["assert","condition","message","Error"],"mappings":"AAGA,OAAO,SAASA,MAAT,CAAgBC,SAAhB,EAAoCC,OAApC,EAA4D;AACjE,MAAI,CAACD,SAAL,EAAgB;AACd,UAAM,IAAIE,KAAJ,CAAUD,OAAO,IAAI,qBAArB,CAAN;AACD;AACF","sourcesContent":["// Replacement for the external assert method to reduce bundle size\n// Note: We don't use the second \"message\" argument in calling code,\n// so no need to support it here\nexport function assert(condition: unknown, message?: string): void {\n if (!condition) {\n throw new Error(message || 'assert failed: gltf');\n }\n}\n"],"file":"assert.js"}
@@ -0,0 +1,2 @@
1
+ export declare const VERSION: any;
2
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/version.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,KAA8D,CAAC"}
@@ -1,2 +1,2 @@
1
- export const VERSION = typeof "4.0.0-alpha.4" !== 'undefined' ? "4.0.0-alpha.4" : 'latest';
1
+ export const VERSION = typeof "4.0.0-alpha.5" !== 'undefined' ? "4.0.0-alpha.5" : 'latest';
2
2
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/utils/version.js"],"names":["VERSION"],"mappings":"AAGA,OAAO,MAAMA,OAAO,GAAG,2BAAuB,WAAvB,qBAAmD,QAAnE","sourcesContent":["// Version constant cannot be imported, it needs to correspond to the build version of **this** module.\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nexport const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n"],"file":"version.js"}
1
+ {"version":3,"sources":["../../../src/lib/utils/version.ts"],"names":["VERSION"],"mappings":"AAGA,OAAO,MAAMA,OAAO,GAAG,2BAAuB,WAAvB,qBAAmD,QAAnE","sourcesContent":["// Version constant cannot be imported, it needs to correspond to the build version of **this** module.\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nexport const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n"],"file":"version.js"}
@@ -0,0 +1,6 @@
1
+ export declare function isMeshoptSupported(): boolean;
2
+ export declare function meshoptDecodeVertexBuffer(target: Uint8Array, count: number, size: number, source: Uint8Array, filter?: string | number): Promise<void>;
3
+ export declare function meshoptDecodeIndexBuffer(target: Uint8Array, count: number, size: number, source: Uint8Array): Promise<void>;
4
+ export declare function meshoptDecodeIndexSequence(target: Uint8Array, count: number, size: number, source: Uint8Array): Promise<void>;
5
+ export declare function meshoptDecodeGltfBuffer(target: Uint8Array, count: number, size: number, source: Uint8Array, mode: string, filter?: string | number): Promise<void>;
6
+ //# sourceMappingURL=meshopt-decoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meshopt-decoder.d.ts","sourceRoot":"","sources":["../../src/meshopt/meshopt-decoder.ts"],"names":[],"mappings":"AAkDA,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,UAAU,EAClB,MAAM,GAAE,MAAM,GAAG,MAAe,GAC/B,OAAO,CAAC,IAAI,CAAC,CAWf;AAED,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,IAAI,CAAC,CAGf;AAGD,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,MAAM,GAAG,MAAe,GAC/B,OAAO,CAAC,IAAI,CAAC,CAWf"}
@@ -0,0 +1,7 @@
1
+ export declare type WebPFeature = 'lossy' | 'lossless' | 'alpha' | 'animation';
2
+ /**
3
+ * Checks if WebP is supported
4
+ * @param features Array, can include 'lossy', 'lossless', 'alpha' or 'animation'
5
+ */
6
+ export declare function isWebPSupported(features?: WebPFeature[]): Promise<boolean>;
7
+ //# sourceMappingURL=webp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webp.d.ts","sourceRoot":"","sources":["../../src/webp/webp.ts"],"names":[],"mappings":"AASA,oBAAY,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,WAAW,CAAC;AAIvE;;;GAGG;AACH,wBAAsB,eAAe,CAAC,QAAQ,GAAE,WAAW,EAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAI/F"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/gltf",
3
- "version": "4.0.0-alpha.4",
3
+ "version": "4.0.0-alpha.5",
4
4
  "description": "Framework-independent loader for the glTF format",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -19,7 +19,7 @@
19
19
  "GLB",
20
20
  "glTF"
21
21
  ],
22
- "types": "src/index.ts",
22
+ "types": "dist/index.d.ts",
23
23
  "main": "dist/index.js",
24
24
  "module": "dist/index.js",
25
25
  "sideEffects": false,
@@ -31,16 +31,13 @@
31
31
  ],
32
32
  "scripts": {
33
33
  "pre-build": "npm run build-bundle",
34
- "build-bundle": "esbuild src/bundle.ts --bundle --outfile=dist/bundle.js"
34
+ "build-bundle": "esbuild src/bundle.ts --bundle --outfile=dist/dist.min.js"
35
35
  },
36
36
  "dependencies": {
37
- "@loaders.gl/draco": "4.0.0-alpha.4",
38
- "@loaders.gl/images": "4.0.0-alpha.4",
39
- "@loaders.gl/loader-utils": "4.0.0-alpha.4",
40
- "@loaders.gl/textures": "4.0.0-alpha.4"
37
+ "@loaders.gl/draco": "4.0.0-alpha.5",
38
+ "@loaders.gl/images": "4.0.0-alpha.5",
39
+ "@loaders.gl/loader-utils": "4.0.0-alpha.5",
40
+ "@loaders.gl/textures": "4.0.0-alpha.5"
41
41
  },
42
- "peerDependencies": {
43
- "@loaders.gl/core": "^3.0.0"
44
- },
45
- "gitHead": "53026061b3c8871f7e96d3a5826125cc6613bddc"
42
+ "gitHead": "7a71a54bdf1ddf985cc3af3db90b82e7fa97d025"
46
43
  }
package/src/index.ts CHANGED
@@ -14,6 +14,7 @@ export type {
14
14
  GLTFSkin,
15
15
  GLTFTexture,
16
16
  GLTFImage,
17
+ GLTFImagePostprocessed,
17
18
  // The following extensions are handled by the GLTFLoader and removed from the parsed glTF (disable via options.gltf.excludeExtensions)
18
19
  GLTF_KHR_binary_glTF,
19
20
  GLTF_KHR_draco_mesh_compression,
@@ -344,7 +344,7 @@ export default class GLTFScenegraph {
344
344
  * `name`, `extensions`, `extras`, `camera`, `children`, `skin`, `rotation`, `scale`, `translation`, `weights`
345
345
  * https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#node
346
346
  */
347
- addNode(node: {meshIndex: number; matrix: number[]}): number {
347
+ addNode(node: {meshIndex: number; matrix?: number[]}): number {
348
348
  const {meshIndex, matrix} = node;
349
349
  this.json.nodes = this.json.nodes || [];
350
350
  const nodeData = {mesh: meshIndex};
@@ -357,7 +357,7 @@ export default class GLTFScenegraph {
357
357
  }
358
358
 
359
359
  /** Adds a mesh to the json part */
360
- addMesh(mesh: {attributes: object; indices: object; material: number; mode: number}): number {
360
+ addMesh(mesh: {attributes: object; indices?: object; material?: number; mode?: number}): number {
361
361
  const {attributes, indices, material, mode = 4} = mesh;
362
362
  const accessors = this._addAttributes(attributes);
363
363
 
@@ -80,22 +80,24 @@ const GLTF_KEYS = {
80
80
  * Converts (normalizes) glTF v1 to v2
81
81
  */
82
82
  class GLTFV1Normalizer {
83
- constructor(gltf) {
84
- this.idToIndexMap = {
85
- animations: {},
86
- accessors: {},
87
- buffers: {},
88
- bufferViews: {},
89
- images: {},
90
- materials: {},
91
- meshes: {},
92
- nodes: {},
93
- samplers: {},
94
- scenes: {},
95
- skins: {},
96
- textures: {}
97
- };
98
- }
83
+ idToIndexMap = {
84
+ animations: {},
85
+ accessors: {},
86
+ buffers: {},
87
+ bufferViews: {},
88
+ images: {},
89
+ materials: {},
90
+ meshes: {},
91
+ nodes: {},
92
+ samplers: {},
93
+ scenes: {},
94
+ skins: {},
95
+ textures: {}
96
+ };
97
+
98
+ json;
99
+
100
+ // constructor() {}
99
101
 
100
102
  /**
101
103
  * Convert (normalize) glTF < 2.0 to glTF 2.0
@@ -1,5 +1,7 @@
1
1
  import {assert} from '../utils/assert';
2
2
  import {getAccessorArrayTypeAndLength} from '../gltf-utils/gltf-utils';
3
+ import {BufferView} from '../types/gltf-json-schema';
4
+ import {BufferView as BufferViewPostprocessed} from '../types/gltf-postprocessed-schema';
3
5
 
4
6
  // This is a post processor for loaded glTF files
5
7
  // The goal is to make the loaded data easier to use in WebGL applications
@@ -56,7 +58,7 @@ const DEFAULT_SAMPLER = {
56
58
  [GL_SAMPLER.TEXTURE_MAG_FILTER]: GL_SAMPLER.LINEAR,
57
59
  [GL_SAMPLER.TEXTURE_MIN_FILTER]: GL_SAMPLER.NEAREST_MIPMAP_LINEAR,
58
60
  [GL_SAMPLER.TEXTURE_WRAP_S]: GL_SAMPLER.REPEAT,
59
- [GL_SAMPLER.TEXTURE_WRAP_]: GL_SAMPLER.REPEAT
61
+ [GL_SAMPLER.TEXTURE_WRAP_T]: GL_SAMPLER.REPEAT
60
62
  };
61
63
 
62
64
  function getBytesFromComponentType(componentType) {
@@ -68,6 +70,11 @@ function getSizeFromAccessorType(type) {
68
70
  }
69
71
 
70
72
  class GLTFPostProcessor {
73
+ baseUri: string = '';
74
+ json: Record<string, any> = {};
75
+ buffers: [] = [];
76
+ images: [] = [];
77
+
71
78
  postProcess(gltf, options = {}) {
72
79
  const {json, buffers = [], images = [], baseUri = ''} = gltf;
73
80
  assert(json);
@@ -303,13 +310,44 @@ class GLTFPostProcessor {
303
310
  const {ArrayType, byteLength} = getAccessorArrayTypeAndLength(accessor, accessor.bufferView);
304
311
  const byteOffset =
305
312
  (accessor.bufferView.byteOffset || 0) + (accessor.byteOffset || 0) + buffer.byteOffset;
306
- const cutBufffer = buffer.arrayBuffer.slice(byteOffset, byteOffset + byteLength);
307
- accessor.value = new ArrayType(cutBufffer);
313
+ let cutBuffer = buffer.arrayBuffer.slice(byteOffset, byteOffset + byteLength);
314
+ if (accessor.bufferView.byteStride) {
315
+ cutBuffer = this._getValueFromInterleavedBuffer(
316
+ buffer,
317
+ byteOffset,
318
+ accessor.bufferView.byteStride,
319
+ accessor.bytesPerElement,
320
+ accessor.count
321
+ );
322
+ }
323
+ accessor.value = new ArrayType(cutBuffer);
308
324
  }
309
325
 
310
326
  return accessor;
311
327
  }
312
328
 
329
+ /**
330
+ * Take values of particular accessor from interleaved buffer
331
+ * various parts of the buffer
332
+ * @param buffer
333
+ * @param byteOffset
334
+ * @param byteStride
335
+ * @param bytesPerElement
336
+ * @param count
337
+ * @returns
338
+ */
339
+ _getValueFromInterleavedBuffer(buffer, byteOffset, byteStride, bytesPerElement, count) {
340
+ const result = new Uint8Array(count * bytesPerElement);
341
+ for (let i = 0; i < count; i++) {
342
+ const elementOffset = byteOffset + i * byteStride;
343
+ result.set(
344
+ new Uint8Array(buffer.arrayBuffer.slice(elementOffset, elementOffset + bytesPerElement)),
345
+ i * bytesPerElement
346
+ );
347
+ }
348
+ return result.buffer;
349
+ }
350
+
313
351
  _resolveTexture(texture, index) {
314
352
  // texture = {...texture};
315
353
  texture.id = texture.id || `texture-${index}`;
@@ -353,21 +391,26 @@ class GLTFPostProcessor {
353
391
  return image;
354
392
  }
355
393
 
356
- _resolveBufferView(bufferView, index) {
394
+ _resolveBufferView(bufferView: BufferView, index: number): BufferViewPostprocessed {
357
395
  // bufferView = {...bufferView};
358
- bufferView.id = bufferView.id || `bufferView-${index}`;
359
396
  const bufferIndex = bufferView.buffer;
360
- bufferView.buffer = this.buffers[bufferIndex];
397
+ const result: BufferViewPostprocessed = {
398
+ id: `bufferView-${index}`,
399
+ ...bufferView,
400
+ buffer: this.buffers[bufferIndex]
401
+ };
361
402
 
403
+ // @ts-expect-error
362
404
  const arrayBuffer = this.buffers[bufferIndex].arrayBuffer;
405
+ // @ts-expect-error
363
406
  let byteOffset = this.buffers[bufferIndex].byteOffset || 0;
364
407
 
365
408
  if ('byteOffset' in bufferView) {
366
409
  byteOffset += bufferView.byteOffset;
367
410
  }
368
411
 
369
- bufferView.data = new Uint8Array(arrayBuffer, byteOffset, bufferView.byteLength);
370
- return bufferView;
412
+ result.data = new Uint8Array(arrayBuffer, byteOffset, bufferView.byteLength);
413
+ return result;
371
414
  }
372
415
 
373
416
  _resolveCamera(camera, index) {
@@ -383,6 +426,6 @@ class GLTFPostProcessor {
383
426
  }
384
427
  }
385
428
 
386
- export function postProcessGLTF(gltf, options) {
429
+ export function postProcessGLTF(gltf, options?) {
387
430
  return new GLTFPostProcessor().postProcess(gltf, options);
388
431
  }
@@ -1,5 +1,5 @@
1
- // GLTF EXTENSION: EXT_TEXTURE_WEBP
2
- // https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/EXT_TEXTURE_WEBP
1
+ // GLTF EXTENSION: KHR_texture_basisu
2
+ // https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_texture_basisu
3
3
  /* eslint-disable camelcase */
4
4
 
5
5
  import type {GLTF, GLTF_KHR_texture_basisu} from '../types/gltf-types';
@@ -212,7 +212,7 @@ async function loadImage(
212
212
  let parsedImage = await parse(
213
213
  arrayBuffer,
214
214
  [ImageLoader, BasisLoader],
215
- {mimeType: image.mimeType, basis: {format: selectSupportedBasisFormat()}},
215
+ {mimeType: image.mimeType, basis: options.basis || {format: selectSupportedBasisFormat()}},
216
216
  context
217
217
  );
218
218
 
@@ -222,7 +222,7 @@ async function loadImage(
222
222
  mipmaps: false,
223
223
  width: parsedImage[0].width,
224
224
  height: parsedImage[0].height,
225
- data: parsedImage
225
+ data: parsedImage[0]
226
226
  };
227
227
  }
228
228
  // TODO making sure ImageLoader is overridable by using array of loaders
@@ -220,10 +220,11 @@ export interface Buffer {
220
220
  * A view into a buffer generally representing a subset of the buffer.
221
221
  */
222
222
  export interface BufferView {
223
+ id: string;
223
224
  /**
224
225
  * The index of the buffer.
225
226
  */
226
- buffer: GlTfId;
227
+ buffer: ArrayBuffer;
227
228
  /**
228
229
  * The offset into the buffer in bytes.
229
230
  */
@@ -329,7 +330,7 @@ export interface Image {
329
330
  /**
330
331
  * The index of the bufferView that contains the image. Use this instead of the image's uri property.
331
332
  */
332
- bufferView?: GlTfId;
333
+ bufferView?: BufferView;
333
334
  name?: any;
334
335
  extensions?: any;
335
336
  extras?: any;
@@ -22,6 +22,8 @@ import type {
22
22
  GLTF_EXT_texture_webp
23
23
  } from './gltf-json-schema';
24
24
 
25
+ import type {Image as GLTFImagePostprocessed} from './gltf-postprocessed-schema';
26
+
25
27
  export type {
26
28
  GLTF,
27
29
  GLTFAccessor,
@@ -40,7 +42,8 @@ export type {
40
42
  GLTF_KHR_draco_mesh_compression,
41
43
  GLTF_KHR_texture_basisu,
42
44
  GLTF_EXT_meshopt_compression,
43
- GLTF_EXT_texture_webp
45
+ GLTF_EXT_texture_webp,
46
+ GLTFImagePostprocessed
44
47
  };
45
48
 
46
49
  export type GLTFObject =
@@ -1,7 +1,7 @@
1
1
  // Replacement for the external assert method to reduce bundle size
2
2
  // Note: We don't use the second "message" argument in calling code,
3
3
  // so no need to support it here
4
- export function assert(condition, message) {
4
+ export function assert(condition: unknown, message?: string): void {
5
5
  if (!condition) {
6
6
  throw new Error(message || 'assert failed: gltf');
7
7
  }
File without changes