@loaders.gl/scene 5.0.0-beta.4 → 5.0.0-beta.6

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 (177) hide show
  1. package/DRACO-README.md +1 -1
  2. package/GLTF-README.md +1 -1
  3. package/OBJ-README.md +1 -1
  4. package/README.md +6 -1
  5. package/THIRD-PARTY-NOTICES.md +6 -0
  6. package/dist/dist.dev.js +2959 -750
  7. package/dist/dist.min.js +18 -18
  8. package/dist/draco/draco-javascript-loader-with-parser.d.ts +2 -2
  9. package/dist/draco/draco-loader-types.cjs +3 -3
  10. package/dist/draco/draco-loader-types.cjs.map +2 -2
  11. package/dist/draco/draco-loader-types.d.ts +1 -1
  12. package/dist/draco/draco-loader-types.d.ts.map +1 -1
  13. package/dist/draco/draco-loader-types.js +1 -1
  14. package/dist/draco/draco-loader-types.js.map +1 -1
  15. package/dist/draco/draco-loader.d.ts +2 -2
  16. package/dist/draco/draco-wasm-loader-with-parser.d.ts +2 -2
  17. package/dist/draco/draco3d-loader-with-parser.d.ts +2 -2
  18. package/dist/draco/lib/utils/version.cjs +1 -1
  19. package/dist/draco/lib/utils/version.js +1 -1
  20. package/dist/draco-worker-node.js +401 -113
  21. package/dist/draco-worker-node.js.map +4 -4
  22. package/dist/draco-worker.js +395 -113
  23. package/dist/draco-worker.js.map +4 -4
  24. package/dist/draco-writer-worker-node.cjs +655 -85
  25. package/dist/draco-writer-worker-node.cjs.map +4 -4
  26. package/dist/draco-writer-worker.js +625 -69
  27. package/dist/draco-writer-worker.js.map +4 -4
  28. package/dist/gltf/lib/extensions/KHR_gaussian_splatting.cjs +11 -4
  29. package/dist/gltf/lib/extensions/KHR_gaussian_splatting.cjs.map +2 -2
  30. package/dist/gltf/lib/extensions/KHR_gaussian_splatting.d.ts.map +1 -1
  31. package/dist/gltf/lib/extensions/KHR_gaussian_splatting.js +12 -2
  32. package/dist/gltf/lib/extensions/KHR_gaussian_splatting.js.map +1 -1
  33. package/dist/gltf/lib/parsers/parse-gltf.cjs.map +2 -2
  34. package/dist/gltf/lib/parsers/parse-gltf.d.ts +2 -0
  35. package/dist/gltf/lib/parsers/parse-gltf.d.ts.map +1 -1
  36. package/dist/gltf/lib/parsers/parse-gltf.js.map +1 -1
  37. package/dist/gltf/lib/types/gltf-additional-extension-schemas.cjs +22 -0
  38. package/dist/gltf/lib/types/gltf-additional-extension-schemas.cjs.map +2 -2
  39. package/dist/gltf/lib/types/gltf-additional-extension-schemas.d.ts +23 -0
  40. package/dist/gltf/lib/types/gltf-additional-extension-schemas.d.ts.map +1 -1
  41. package/dist/gltf/lib/types/gltf-additional-extension-schemas.js +22 -0
  42. package/dist/gltf/lib/types/gltf-additional-extension-schemas.js.map +1 -1
  43. package/dist/gltf/lib/types/gltf-extension-schemas.cjs +8 -0
  44. package/dist/gltf/lib/types/gltf-extension-schemas.cjs.map +2 -2
  45. package/dist/gltf/lib/types/gltf-extension-schemas.d.ts +27 -0
  46. package/dist/gltf/lib/types/gltf-extension-schemas.d.ts.map +1 -1
  47. package/dist/gltf/lib/types/gltf-extension-schemas.js +8 -1
  48. package/dist/gltf/lib/types/gltf-extension-schemas.js.map +1 -1
  49. package/dist/gltf/lib/types/gltf-json-schema.cjs.map +1 -1
  50. package/dist/gltf/lib/types/gltf-json-schema.d.ts +2 -2
  51. package/dist/gltf/lib/types/gltf-json-schema.d.ts.map +1 -1
  52. package/dist/gltf/lib/types/gltf-version-zod-schemas.d.ts +34 -0
  53. package/dist/gltf/lib/types/gltf-version-zod-schemas.d.ts.map +1 -1
  54. package/dist/gltf/lib/types/gltf-zod-schema.cjs +1 -1
  55. package/dist/gltf/lib/types/gltf-zod-schema.cjs.map +2 -2
  56. package/dist/gltf/lib/types/gltf-zod-schema.d.ts +51 -0
  57. package/dist/gltf/lib/types/gltf-zod-schema.d.ts.map +1 -1
  58. package/dist/gltf/lib/types/gltf-zod-schema.js +2 -2
  59. package/dist/gltf/lib/types/gltf-zod-schema.js.map +1 -1
  60. package/dist/gltf/lib/utils/version.cjs +1 -1
  61. package/dist/gltf/lib/utils/version.js +1 -1
  62. package/dist/index.cjs +4 -1
  63. package/dist/index.cjs.map +2 -2
  64. package/dist/index.d.ts +1 -0
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +2 -1
  67. package/dist/index.js.map +1 -1
  68. package/dist/mtl-loader-types.cjs +1 -1
  69. package/dist/obj/mtl-loader-types.cjs +1 -1
  70. package/dist/obj/mtl-loader-types.js +1 -1
  71. package/dist/obj/obj-loader-types.cjs +3 -3
  72. package/dist/obj/obj-loader-types.cjs.map +2 -2
  73. package/dist/obj/obj-loader-types.d.ts +1 -1
  74. package/dist/obj/obj-loader-types.d.ts.map +1 -1
  75. package/dist/obj/obj-loader-types.js +2 -2
  76. package/dist/obj/obj-loader-types.js.map +1 -1
  77. package/dist/obj/obj-loader.cjs +5 -5
  78. package/dist/obj/obj-loader.cjs.map +2 -2
  79. package/dist/obj/obj-loader.d.ts +1 -1
  80. package/dist/obj/obj-loader.d.ts.map +1 -1
  81. package/dist/obj/obj-loader.js +1 -1
  82. package/dist/obj/obj-loader.js.map +1 -1
  83. package/dist/obj/obj-writer.cjs +1 -1
  84. package/dist/obj/obj-writer.js +1 -1
  85. package/dist/obj-loader-types.cjs +3 -3
  86. package/dist/obj-loader-types.cjs.map +2 -2
  87. package/dist/obj-loader.cjs +5 -5
  88. package/dist/obj-loader.cjs.map +2 -2
  89. package/dist/obj-worker.js +568 -287
  90. package/dist/obj-writer.cjs +1 -1
  91. package/dist/stl/parse-stl.cjs +100 -0
  92. package/dist/stl/parse-stl.cjs.map +7 -0
  93. package/dist/stl/parse-stl.d.ts +4 -0
  94. package/dist/stl/parse-stl.d.ts.map +1 -0
  95. package/dist/stl/parse-stl.js +84 -0
  96. package/dist/stl/parse-stl.js.map +1 -0
  97. package/dist/stl-loader-types.cjs +58 -0
  98. package/dist/stl-loader-types.cjs.map +7 -0
  99. package/dist/stl-loader-types.d.ts +32 -0
  100. package/dist/stl-loader-types.d.ts.map +1 -0
  101. package/dist/stl-loader-types.js +25 -0
  102. package/dist/stl-loader-types.js.map +1 -0
  103. package/dist/stl-loader.cjs +38 -0
  104. package/dist/stl-loader.cjs.map +7 -0
  105. package/dist/stl-loader.d.ts +17 -0
  106. package/dist/stl-loader.d.ts.map +1 -0
  107. package/dist/stl-loader.js +13 -0
  108. package/dist/stl-loader.js.map +1 -0
  109. package/dist/usd/index.cjs.map +1 -1
  110. package/dist/usd/index.d.ts +1 -1
  111. package/dist/usd/index.d.ts.map +1 -1
  112. package/dist/usd/lib/parse-usd.cjs +42 -5
  113. package/dist/usd/lib/parse-usd.cjs.map +2 -2
  114. package/dist/usd/lib/parse-usd.d.ts.map +1 -1
  115. package/dist/usd/lib/parse-usd.js +53 -6
  116. package/dist/usd/lib/parse-usd.js.map +1 -1
  117. package/dist/usd/lib/parse-usdc.cjs +187 -0
  118. package/dist/usd/lib/parse-usdc.cjs.map +7 -0
  119. package/dist/usd/lib/parse-usdc.d.ts +4 -0
  120. package/dist/usd/lib/parse-usdc.d.ts.map +1 -0
  121. package/dist/usd/lib/parse-usdc.js +176 -0
  122. package/dist/usd/lib/parse-usdc.js.map +1 -0
  123. package/dist/usd/lib/parse-usdz.cjs +22 -0
  124. package/dist/usd/lib/parse-usdz.cjs.map +2 -2
  125. package/dist/usd/lib/parse-usdz.d.ts.map +1 -1
  126. package/dist/usd/lib/parse-usdz.js +26 -0
  127. package/dist/usd/lib/parse-usdz.js.map +1 -1
  128. package/dist/usd/lib/usd-types.cjs.map +1 -1
  129. package/dist/usd/lib/usd-types.d.ts +14 -1
  130. package/dist/usd/lib/usd-types.d.ts.map +1 -1
  131. package/dist/usd/lib/usd-types.js +1 -1
  132. package/dist/usd/lib/usd-types.js.map +1 -1
  133. package/dist/usd/libs/README.md +27 -0
  134. package/dist/usd/libs/THREE-LICENSE +21 -0
  135. package/dist/usd/libs/usdc-parser.d.ts +78 -0
  136. package/dist/usd/libs/usdc-parser.d.ts.map +1 -0
  137. package/dist/usd/libs/usdc-parser.js +1669 -0
  138. package/dist/usd/libs/usdc-parser.js.map +1 -0
  139. package/dist/usd/usd-loader-types.cjs +4 -4
  140. package/dist/usd/usd-loader-types.cjs.map +2 -2
  141. package/dist/usd/usd-loader-types.d.ts +7 -7
  142. package/dist/usd/usd-loader-types.d.ts.map +1 -1
  143. package/dist/usd/usd-loader-types.js +6 -6
  144. package/dist/usd/usd-loader-types.js.map +1 -1
  145. package/dist/usd/usd-loader.cjs.map +1 -1
  146. package/dist/usd/usd-loader.d.ts +4 -4
  147. package/dist/usd/usd-loader.d.ts.map +1 -1
  148. package/dist/usd/usd-loader.js +2 -2
  149. package/dist/usd/usd-loader.js.map +1 -1
  150. package/dist/usd-loader-types.cjs +4 -4
  151. package/dist/usd-loader-types.cjs.map +2 -2
  152. package/dist/usd-loader.cjs.map +1 -1
  153. package/package.json +14 -8
  154. package/src/draco/draco-loader-types.ts +1 -1
  155. package/src/gltf/lib/extensions/KHR_gaussian_splatting.ts +14 -4
  156. package/src/gltf/lib/parsers/parse-gltf.ts +2 -0
  157. package/src/gltf/lib/types/gltf-additional-extension-schemas.ts +32 -0
  158. package/src/gltf/lib/types/gltf-extension-schemas.ts +12 -0
  159. package/src/gltf/lib/types/gltf-json-schema.ts +2 -1
  160. package/src/gltf/lib/types/gltf-zod-schema.ts +2 -1
  161. package/src/index.ts +3 -1
  162. package/src/obj/obj-loader-types.ts +1 -1
  163. package/src/obj/obj-loader.ts +1 -1
  164. package/src/stl/parse-stl.ts +90 -0
  165. package/src/stl-loader-types.ts +28 -0
  166. package/src/stl-loader.ts +12 -0
  167. package/src/usd/index.ts +1 -0
  168. package/src/usd/lib/parse-usd.ts +68 -7
  169. package/src/usd/lib/parse-usdc.ts +188 -0
  170. package/src/usd/lib/parse-usdz.ts +28 -0
  171. package/src/usd/lib/usd-types.ts +16 -2
  172. package/src/usd/libs/README.md +27 -0
  173. package/src/usd/libs/THREE-LICENSE +21 -0
  174. package/src/usd/libs/usdc-parser.d.ts +18 -0
  175. package/src/usd/libs/usdc-parser.js +1669 -0
  176. package/src/usd/usd-loader-types.ts +5 -5
  177. package/src/usd/usd-loader.ts +2 -2
@@ -45,19 +45,26 @@ async function decode(gltfData, options, context) {
45
45
  for (const [primitiveIndex, primitive] of mesh.primitives.entries()) {
46
46
  const extension = primitive.extensions?.[name];
47
47
  if (!extension) continue;
48
+ const descriptor = descriptors.find(
49
+ (item) => item.meshIndex === meshIndex && item.primitiveIndex === primitiveIndex
50
+ );
51
+ const legacyColorSpace = options?.gltf?.legacyGaussianSplatColorSpace;
52
+ const normalizedExtension = legacyColorSpace && extension.extensions?.[SPZ_COMPRESSION_EXTENSION_NAME] ? {
53
+ ...extension,
54
+ kernel: extension.kernel ?? "ellipse",
55
+ colorSpace: extension.colorSpace ?? legacyColorSpace
56
+ } : extension;
57
+ if (descriptor) descriptor.extension = normalizedExtension;
48
58
  validateGaussianSplatPrimitive(
49
59
  gltfData.json,
50
60
  primitive,
51
- extension,
61
+ normalizedExtension,
52
62
  meshIndex,
53
63
  primitiveIndex,
54
64
  iterator
55
65
  );
56
66
  const compression = extension.extensions?.[SPZ_COMPRESSION_EXTENSION_NAME];
57
67
  if (compression) {
58
- const descriptor = descriptors.find(
59
- (item) => item.meshIndex === meshIndex && item.primitiveIndex === primitiveIndex
60
- );
61
68
  if (descriptor) {
62
69
  const decoder = options?.gltf?.splatDecoder;
63
70
  const bufferView = gltfData.json.bufferViews?.[compression.bufferView];
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/gltf/lib/extensions/KHR_gaussian_splatting.ts"],
4
- "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright vis.gl contributors\n\n/* eslint-disable camelcase */\n\nimport {parseFromContext} from '@loaders.gl/core/loader-utils';\nimport type {LoaderContext} from '@loaders.gl/core/loader-utils';\nimport type {GLTF, GLTFMeshPrimitive} from '../types/gltf-json-schema';\nimport type {GLTFWithBuffers} from '../types/gltf-types';\nimport type {GLTFLoaderOptions} from '../../gltf-loader-types';\nimport {GLTFIterator} from '../api/gltf-iterator';\nimport type {\n GLTFGaussianSplatPrimitive,\n GLTF_KHR_gaussian_splatting\n} from '../types/gltf-ext-gaussian-splatting-schema';\n\n/** Name of the ratified Gaussian splatting glTF extension. */\nexport const name = 'KHR_gaussian_splatting';\n\n/** Name of the draft SPZ2 compression companion extension. */\nexport const SPZ_COMPRESSION_EXTENSION_NAME = 'KHR_gaussian_splatting_compression_spz_2';\n\nconst REQUIRED_ATTRIBUTES = [\n 'POSITION',\n 'KHR_gaussian_splatting:ROTATION',\n 'KHR_gaussian_splatting:SCALE',\n 'KHR_gaussian_splatting:OPACITY',\n 'KHR_gaussian_splatting:SH_DEGREE_0_COEF_0'\n] as const;\n\n/** Validates Gaussian splat primitives while preserving all source JSON. */\nexport async function decode(\n gltfData: GLTFWithBuffers,\n options: GLTFLoaderOptions,\n context?: LoaderContext\n): Promise<void> {\n const loader = context?.loaders?.find(candidate => candidate.extensions?.includes('spz'));\n const descriptors = getGaussianSplatPrimitives(gltfData);\n const iterator = new GLTFIterator(gltfData);\n for (const [meshIndex, mesh] of (gltfData.json.meshes || []).entries()) {\n for (const [primitiveIndex, primitive] of mesh.primitives.entries()) {\n const extension = primitive.extensions?.[name] as GLTF_KHR_gaussian_splatting | undefined;\n if (!extension) continue;\n validateGaussianSplatPrimitive(\n gltfData.json,\n primitive,\n extension,\n meshIndex,\n primitiveIndex,\n iterator\n );\n const compression = extension.extensions?.[SPZ_COMPRESSION_EXTENSION_NAME];\n if (compression) {\n const descriptor = descriptors.find(\n item => item.meshIndex === meshIndex && item.primitiveIndex === primitiveIndex\n );\n if (descriptor) {\n const decoder = options?.gltf?.splatDecoder;\n const bufferView = gltfData.json.bufferViews?.[compression.bufferView];\n if (bufferView && gltfData.buffers[bufferView.buffer]) {\n descriptor.compressedBytes = getBufferViewBytes(gltfData, compression.bufferView);\n } else if (decoder || loader) {\n throw new Error(\n `KHR_gaussian_splatting: bufferView ${compression.bufferView} is not loaded for SPZ2 decoding.`\n );\n }\n if (loader && context && descriptor.compressedBytes) {\n descriptor.decoded = await parseFromContext(\n descriptor.compressedBytes.buffer as ArrayBuffer,\n loader,\n {...options, splats: {...options.splats, sourceCoordinateSystem: 'LUF'}},\n context\n );\n } else if (decoder && descriptor.compressedBytes) {\n descriptor.decoded = await decoder(descriptor.compressedBytes.buffer as ArrayBuffer, {\n sourceCoordinateSystem: 'LUF'\n });\n }\n }\n }\n }\n }\n if (descriptors.length) {\n gltfData.gaussianSplatPrimitives = descriptors;\n }\n}\n\n/** Returns a copied buffer-view payload so applications can retain compressed bytes safely. */\nfunction getBufferViewBytes(gltfData: GLTFWithBuffers, bufferViewIndex: number): Uint8Array {\n const bufferView = gltfData.json.bufferViews?.[bufferViewIndex];\n if (!bufferView) {\n throw new Error(`KHR_gaussian_splatting: bufferView ${bufferViewIndex} is not defined.`);\n }\n const buffer = gltfData.buffers[bufferView.buffer];\n if (!buffer) {\n throw new Error(\n `KHR_gaussian_splatting: buffer ${bufferView.buffer} is not loaded for SPZ2 payload.`\n );\n }\n const byteOffset = buffer.byteOffset + (bufferView.byteOffset || 0);\n return new Uint8Array(buffer.arrayBuffer, byteOffset, bufferView.byteLength).slice();\n}\n\n/** Returns normalized Gaussian splat primitive descriptors without mutating the glTF. */\nexport function getGaussianSplatPrimitives(\n gltf: GLTF | GLTFWithBuffers\n): GLTFGaussianSplatPrimitive[] {\n const json: GLTF = 'json' in gltf ? (gltf as GLTFWithBuffers).json : (gltf as GLTF);\n const descriptors: GLTFGaussianSplatPrimitive[] = [];\n for (const [meshIndex, mesh] of (json.meshes || []).entries()) {\n for (const [primitiveIndex, primitive] of mesh.primitives.entries()) {\n const extension = primitive.extensions?.[name] as GLTF_KHR_gaussian_splatting | undefined;\n if (!extension) continue;\n const compressedBufferView =\n extension.extensions?.[SPZ_COMPRESSION_EXTENSION_NAME]?.bufferView;\n descriptors.push({\n meshIndex,\n primitiveIndex,\n attributes: {...primitive.attributes},\n extension,\n compressedBufferView\n });\n }\n }\n return descriptors;\n}\n\n/** Validates one Gaussian splat primitive against the base extension invariants. */\nfunction validateGaussianSplatPrimitive(\n gltf: GLTF,\n primitive: GLTFMeshPrimitive,\n extension: GLTF_KHR_gaussian_splatting,\n meshIndex: number,\n primitiveIndex: number,\n iterator: GLTFIterator\n): void {\n if ((primitive.mode ?? 4) !== 0) {\n throw new Error(\n `KHR_gaussian_splatting: mesh ${meshIndex} primitive ${primitiveIndex} must use POINTS mode.`\n );\n }\n if (typeof extension.kernel !== 'string' || extension.kernel.length === 0) {\n throw new Error(\n `KHR_gaussian_splatting: mesh ${meshIndex} primitive ${primitiveIndex} is missing kernel.`\n );\n }\n if (typeof extension.colorSpace !== 'string' || extension.colorSpace.length === 0) {\n throw new Error(\n `KHR_gaussian_splatting: mesh ${meshIndex} primitive ${primitiveIndex} is missing colorSpace.`\n );\n }\n\n const compressedBufferView = extension.extensions?.[SPZ_COMPRESSION_EXTENSION_NAME]?.bufferView;\n if (compressedBufferView !== undefined) {\n if (\n !Number.isInteger(compressedBufferView) ||\n compressedBufferView < 0 ||\n compressedBufferView >= (gltf.bufferViews || []).length\n ) {\n throw new Error(\n `KHR_gaussian_splatting: mesh ${meshIndex} primitive ${primitiveIndex} has an invalid SPZ bufferView.`\n );\n }\n } else {\n for (const attributeName of REQUIRED_ATTRIBUTES) {\n if (primitive.attributes[attributeName] === undefined) {\n throw new Error(\n `KHR_gaussian_splatting: mesh ${meshIndex} primitive ${primitiveIndex} is missing ${attributeName}.`\n );\n }\n }\n }\n\n for (const [attributeName, accessorIndex] of Object.entries(primitive.attributes)) {\n if (\n !Number.isInteger(accessorIndex) ||\n accessorIndex < 0 ||\n accessorIndex >= (gltf.accessors || []).length\n ) {\n throw new Error(\n `KHR_gaussian_splatting: mesh ${meshIndex} primitive ${primitiveIndex} has invalid accessor ${attributeName}.`\n );\n }\n }\n\n validateGaussianValues(gltf, primitive, iterator, meshIndex, primitiveIndex);\n\n for (let degree = 1; degree <= 3; degree++) {\n const coefficientCount = degree * 2 + 1;\n const present = Array.from(\n {length: coefficientCount},\n (_, coefficientIndex) =>\n primitive.attributes[\n `KHR_gaussian_splatting:SH_DEGREE_${degree}_COEF_${coefficientIndex}`\n ] !== undefined\n );\n if (present.some(Boolean) && !present.every(Boolean)) {\n throw new Error(\n `KHR_gaussian_splatting: mesh ${meshIndex} primitive ${primitiveIndex} has incomplete SH degree ${degree}.`\n );\n }\n if (present.some(Boolean) && degree > 1) {\n const lowerDegree = degree - 1;\n const lowerCount = lowerDegree * 2 + 1;\n for (let coefficientIndex = 0; coefficientIndex < lowerCount; coefficientIndex++) {\n if (\n primitive.attributes[\n `KHR_gaussian_splatting:SH_DEGREE_${lowerDegree}_COEF_${coefficientIndex}`\n ] === undefined\n ) {\n throw new Error(\n `KHR_gaussian_splatting: mesh ${meshIndex} primitive ${primitiveIndex} skips SH degree ${lowerDegree}.`\n );\n }\n }\n }\n }\n}\n\n/** Checks decoded scale and opacity ranges when the referenced buffers are available. */\nfunction validateGaussianValues(\n gltf: GLTF,\n primitive: GLTFMeshPrimitive,\n iterator: GLTFIterator,\n meshIndex: number,\n primitiveIndex: number\n): void {\n const scaleAccessor = primitive.attributes['KHR_gaussian_splatting:SCALE'];\n const opacityAccessor = primitive.attributes['KHR_gaussian_splatting:OPACITY'];\n for (const [attributeName, accessorIndex, predicate] of [\n ['KHR_gaussian_splatting:SCALE', scaleAccessor, (value: number) => value >= 0],\n ['KHR_gaussian_splatting:OPACITY', opacityAccessor, (value: number) => value >= 0 && value <= 1]\n ] as const) {\n if (accessorIndex === undefined || !isAccessorLoaded(gltf, iterator, accessorIndex)) continue;\n const values = iterator.getTypedArrayForAccessor(accessorIndex) as ArrayLike<number>;\n for (let valueIndex = 0; valueIndex < values.length; valueIndex++) {\n if (!predicate(Number(values[valueIndex]))) {\n throw new Error(\n `KHR_gaussian_splatting: mesh ${meshIndex} primitive ${primitiveIndex} has an invalid ${attributeName} value.`\n );\n }\n }\n }\n}\n\n/** Returns whether an accessor's source buffer has been resolved by the loader. */\nfunction isAccessorLoaded(gltf: GLTF, iterator: GLTFIterator, accessorIndex: number): boolean {\n const accessor = gltf.accessors?.[accessorIndex];\n const bufferView =\n accessor?.bufferView === undefined ? undefined : gltf.bufferViews?.[accessor.bufferView];\n return Boolean(bufferView && iterator.gltf.buffers[bufferView.buffer]);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright vis.gl contributors\n\n/* eslint-disable camelcase */\n\nimport {parseFromContext} from '@loaders.gl/core/loader-utils';\nimport type {LoaderContext} from '@loaders.gl/core/loader-utils';\nimport type {GLTF, GLTFMeshPrimitive} from '../types/gltf-json-schema';\nimport type {GLTFWithBuffers} from '../types/gltf-types';\nimport type {GLTFLoaderOptions} from '../../gltf-loader-types';\nimport {GLTFIterator} from '../api/gltf-iterator';\nimport type {\n GLTFGaussianSplatPrimitive,\n GLTF_KHR_gaussian_splatting\n} from '../types/gltf-ext-gaussian-splatting-schema';\n\n/** Name of the ratified Gaussian splatting glTF extension. */\nexport const name = 'KHR_gaussian_splatting';\n\n/** Name of the draft SPZ2 compression companion extension. */\nexport const SPZ_COMPRESSION_EXTENSION_NAME = 'KHR_gaussian_splatting_compression_spz_2';\n\nconst REQUIRED_ATTRIBUTES = [\n 'POSITION',\n 'KHR_gaussian_splatting:ROTATION',\n 'KHR_gaussian_splatting:SCALE',\n 'KHR_gaussian_splatting:OPACITY',\n 'KHR_gaussian_splatting:SH_DEGREE_0_COEF_0'\n] as const;\n\n/** Validates Gaussian splat primitives while preserving all source JSON. */\nexport async function decode(\n gltfData: GLTFWithBuffers,\n options: GLTFLoaderOptions,\n context?: LoaderContext\n): Promise<void> {\n const loader = context?.loaders?.find(candidate => candidate.extensions?.includes('spz'));\n const descriptors = getGaussianSplatPrimitives(gltfData);\n const iterator = new GLTFIterator(gltfData);\n for (const [meshIndex, mesh] of (gltfData.json.meshes || []).entries()) {\n for (const [primitiveIndex, primitive] of mesh.primitives.entries()) {\n const extension = primitive.extensions?.[name] as GLTF_KHR_gaussian_splatting | undefined;\n if (!extension) continue;\n const descriptor = descriptors.find(\n item => item.meshIndex === meshIndex && item.primitiveIndex === primitiveIndex\n );\n const legacyColorSpace = options?.gltf?.legacyGaussianSplatColorSpace;\n const normalizedExtension =\n legacyColorSpace && extension.extensions?.[SPZ_COMPRESSION_EXTENSION_NAME]\n ? {\n ...extension,\n kernel: extension.kernel ?? 'ellipse',\n colorSpace: extension.colorSpace ?? legacyColorSpace\n }\n : extension;\n if (descriptor) descriptor.extension = normalizedExtension;\n validateGaussianSplatPrimitive(\n gltfData.json,\n primitive,\n normalizedExtension,\n meshIndex,\n primitiveIndex,\n iterator\n );\n const compression = extension.extensions?.[SPZ_COMPRESSION_EXTENSION_NAME];\n if (compression) {\n if (descriptor) {\n const decoder = options?.gltf?.splatDecoder;\n const bufferView = gltfData.json.bufferViews?.[compression.bufferView];\n if (bufferView && gltfData.buffers[bufferView.buffer]) {\n descriptor.compressedBytes = getBufferViewBytes(gltfData, compression.bufferView);\n } else if (decoder || loader) {\n throw new Error(\n `KHR_gaussian_splatting: bufferView ${compression.bufferView} is not loaded for SPZ2 decoding.`\n );\n }\n if (loader && context && descriptor.compressedBytes) {\n descriptor.decoded = await parseFromContext(\n descriptor.compressedBytes.buffer as ArrayBuffer,\n loader,\n {...options, splats: {...options.splats, sourceCoordinateSystem: 'LUF'}},\n context\n );\n } else if (decoder && descriptor.compressedBytes) {\n descriptor.decoded = await decoder(descriptor.compressedBytes.buffer as ArrayBuffer, {\n sourceCoordinateSystem: 'LUF'\n });\n }\n }\n }\n }\n }\n if (descriptors.length) {\n gltfData.gaussianSplatPrimitives = descriptors;\n }\n}\n\n/** Returns a copied buffer-view payload so applications can retain compressed bytes safely. */\nfunction getBufferViewBytes(gltfData: GLTFWithBuffers, bufferViewIndex: number): Uint8Array {\n const bufferView = gltfData.json.bufferViews?.[bufferViewIndex];\n if (!bufferView) {\n throw new Error(`KHR_gaussian_splatting: bufferView ${bufferViewIndex} is not defined.`);\n }\n const buffer = gltfData.buffers[bufferView.buffer];\n if (!buffer) {\n throw new Error(\n `KHR_gaussian_splatting: buffer ${bufferView.buffer} is not loaded for SPZ2 payload.`\n );\n }\n const byteOffset = buffer.byteOffset + (bufferView.byteOffset || 0);\n return new Uint8Array(buffer.arrayBuffer, byteOffset, bufferView.byteLength).slice();\n}\n\n/** Returns normalized Gaussian splat primitive descriptors without mutating the glTF. */\nexport function getGaussianSplatPrimitives(\n gltf: GLTF | GLTFWithBuffers\n): GLTFGaussianSplatPrimitive[] {\n const json: GLTF = 'json' in gltf ? (gltf as GLTFWithBuffers).json : (gltf as GLTF);\n const descriptors: GLTFGaussianSplatPrimitive[] = [];\n for (const [meshIndex, mesh] of (json.meshes || []).entries()) {\n for (const [primitiveIndex, primitive] of mesh.primitives.entries()) {\n const extension = primitive.extensions?.[name] as GLTF_KHR_gaussian_splatting | undefined;\n if (!extension) continue;\n const compressedBufferView =\n extension.extensions?.[SPZ_COMPRESSION_EXTENSION_NAME]?.bufferView;\n descriptors.push({\n meshIndex,\n primitiveIndex,\n attributes: {...primitive.attributes},\n extension,\n compressedBufferView\n });\n }\n }\n return descriptors;\n}\n\n/** Validates one Gaussian splat primitive against the base extension invariants. */\nfunction validateGaussianSplatPrimitive(\n gltf: GLTF,\n primitive: GLTFMeshPrimitive,\n extension: GLTF_KHR_gaussian_splatting,\n meshIndex: number,\n primitiveIndex: number,\n iterator: GLTFIterator\n): void {\n if ((primitive.mode ?? 4) !== 0) {\n throw new Error(\n `KHR_gaussian_splatting: mesh ${meshIndex} primitive ${primitiveIndex} must use POINTS mode.`\n );\n }\n if (typeof extension.kernel !== 'string' || extension.kernel.length === 0) {\n throw new Error(\n `KHR_gaussian_splatting: mesh ${meshIndex} primitive ${primitiveIndex} is missing kernel.`\n );\n }\n if (typeof extension.colorSpace !== 'string' || extension.colorSpace.length === 0) {\n throw new Error(\n `KHR_gaussian_splatting: mesh ${meshIndex} primitive ${primitiveIndex} is missing colorSpace.`\n );\n }\n\n const compressedBufferView = extension.extensions?.[SPZ_COMPRESSION_EXTENSION_NAME]?.bufferView;\n if (compressedBufferView !== undefined) {\n if (\n !Number.isInteger(compressedBufferView) ||\n compressedBufferView < 0 ||\n compressedBufferView >= (gltf.bufferViews || []).length\n ) {\n throw new Error(\n `KHR_gaussian_splatting: mesh ${meshIndex} primitive ${primitiveIndex} has an invalid SPZ bufferView.`\n );\n }\n } else {\n for (const attributeName of REQUIRED_ATTRIBUTES) {\n if (primitive.attributes[attributeName] === undefined) {\n throw new Error(\n `KHR_gaussian_splatting: mesh ${meshIndex} primitive ${primitiveIndex} is missing ${attributeName}.`\n );\n }\n }\n }\n\n for (const [attributeName, accessorIndex] of Object.entries(primitive.attributes)) {\n if (\n !Number.isInteger(accessorIndex) ||\n accessorIndex < 0 ||\n accessorIndex >= (gltf.accessors || []).length\n ) {\n throw new Error(\n `KHR_gaussian_splatting: mesh ${meshIndex} primitive ${primitiveIndex} has invalid accessor ${attributeName}.`\n );\n }\n }\n\n validateGaussianValues(gltf, primitive, iterator, meshIndex, primitiveIndex);\n\n for (let degree = 1; degree <= 3; degree++) {\n const coefficientCount = degree * 2 + 1;\n const present = Array.from(\n {length: coefficientCount},\n (_, coefficientIndex) =>\n primitive.attributes[\n `KHR_gaussian_splatting:SH_DEGREE_${degree}_COEF_${coefficientIndex}`\n ] !== undefined\n );\n if (present.some(Boolean) && !present.every(Boolean)) {\n throw new Error(\n `KHR_gaussian_splatting: mesh ${meshIndex} primitive ${primitiveIndex} has incomplete SH degree ${degree}.`\n );\n }\n if (present.some(Boolean) && degree > 1) {\n const lowerDegree = degree - 1;\n const lowerCount = lowerDegree * 2 + 1;\n for (let coefficientIndex = 0; coefficientIndex < lowerCount; coefficientIndex++) {\n if (\n primitive.attributes[\n `KHR_gaussian_splatting:SH_DEGREE_${lowerDegree}_COEF_${coefficientIndex}`\n ] === undefined\n ) {\n throw new Error(\n `KHR_gaussian_splatting: mesh ${meshIndex} primitive ${primitiveIndex} skips SH degree ${lowerDegree}.`\n );\n }\n }\n }\n }\n}\n\n/** Checks decoded scale and opacity ranges when the referenced buffers are available. */\nfunction validateGaussianValues(\n gltf: GLTF,\n primitive: GLTFMeshPrimitive,\n iterator: GLTFIterator,\n meshIndex: number,\n primitiveIndex: number\n): void {\n const scaleAccessor = primitive.attributes['KHR_gaussian_splatting:SCALE'];\n const opacityAccessor = primitive.attributes['KHR_gaussian_splatting:OPACITY'];\n for (const [attributeName, accessorIndex, predicate] of [\n ['KHR_gaussian_splatting:SCALE', scaleAccessor, (value: number) => value >= 0],\n ['KHR_gaussian_splatting:OPACITY', opacityAccessor, (value: number) => value >= 0 && value <= 1]\n ] as const) {\n if (accessorIndex === undefined || !isAccessorLoaded(gltf, iterator, accessorIndex)) continue;\n const values = iterator.getTypedArrayForAccessor(accessorIndex) as ArrayLike<number>;\n for (let valueIndex = 0; valueIndex < values.length; valueIndex++) {\n if (!predicate(Number(values[valueIndex]))) {\n throw new Error(\n `KHR_gaussian_splatting: mesh ${meshIndex} primitive ${primitiveIndex} has an invalid ${attributeName} value.`\n );\n }\n }\n }\n}\n\n/** Returns whether an accessor's source buffer has been resolved by the loader. */\nfunction isAccessorLoaded(gltf: GLTF, iterator: GLTFIterator, accessorIndex: number): boolean {\n const accessor = gltf.accessors?.[accessorIndex];\n const bufferView =\n accessor?.bufferView === undefined ? undefined : gltf.bufferViews?.[accessor.bufferView];\n return Boolean(bufferView && iterator.gltf.buffers[bufferView.buffer]);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"KHR_gaussian_splatting.d.ts","sourceRoot":"","sources":["../../../../src/gltf/lib/extensions/KHR_gaussian_splatting.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAC,IAAI,EAAoB,qCAAkC;AACvE,OAAO,KAAK,EAAC,eAAe,EAAC,+BAA4B;AACzD,OAAO,KAAK,EAAC,iBAAiB,EAAC,mCAAgC;AAE/D,OAAO,KAAK,EACV,0BAA0B,EAE3B,uDAAoD;AAErD,8DAA8D;AAC9D,eAAO,MAAM,IAAI,2BAA2B,CAAC;AAE7C,8DAA8D;AAC9D,eAAO,MAAM,8BAA8B,6CAA6C,CAAC;AAUzF,4EAA4E;AAC5E,wBAAsB,MAAM,CAC1B,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,IAAI,CAAC,CAkDf;AAkBD,yFAAyF;AACzF,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,IAAI,GAAG,eAAe,GAC3B,0BAA0B,EAAE,CAmB9B"}
1
+ {"version":3,"file":"KHR_gaussian_splatting.d.ts","sourceRoot":"","sources":["../../../../src/gltf/lib/extensions/KHR_gaussian_splatting.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAC,IAAI,EAAoB,qCAAkC;AACvE,OAAO,KAAK,EAAC,eAAe,EAAC,+BAA4B;AACzD,OAAO,KAAK,EAAC,iBAAiB,EAAC,mCAAgC;AAE/D,OAAO,KAAK,EACV,0BAA0B,EAE3B,uDAAoD;AAErD,8DAA8D;AAC9D,eAAO,MAAM,IAAI,2BAA2B,CAAC;AAE7C,8DAA8D;AAC9D,eAAO,MAAM,8BAA8B,6CAA6C,CAAC;AAUzF,4EAA4E;AAC5E,wBAAsB,MAAM,CAC1B,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,IAAI,CAAC,CA4Df;AAkBD,yFAAyF;AACzF,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,IAAI,GAAG,eAAe,GAC3B,0BAA0B,EAAE,CAmB9B"}
@@ -25,10 +25,20 @@ export async function decode(gltfData, options, context) {
25
25
  const extension = primitive.extensions?.[name];
26
26
  if (!extension)
27
27
  continue;
28
- validateGaussianSplatPrimitive(gltfData.json, primitive, extension, meshIndex, primitiveIndex, iterator);
28
+ const descriptor = descriptors.find(item => item.meshIndex === meshIndex && item.primitiveIndex === primitiveIndex);
29
+ const legacyColorSpace = options?.gltf?.legacyGaussianSplatColorSpace;
30
+ const normalizedExtension = legacyColorSpace && extension.extensions?.[SPZ_COMPRESSION_EXTENSION_NAME]
31
+ ? {
32
+ ...extension,
33
+ kernel: extension.kernel ?? 'ellipse',
34
+ colorSpace: extension.colorSpace ?? legacyColorSpace
35
+ }
36
+ : extension;
37
+ if (descriptor)
38
+ descriptor.extension = normalizedExtension;
39
+ validateGaussianSplatPrimitive(gltfData.json, primitive, normalizedExtension, meshIndex, primitiveIndex, iterator);
29
40
  const compression = extension.extensions?.[SPZ_COMPRESSION_EXTENSION_NAME];
30
41
  if (compression) {
31
- const descriptor = descriptors.find(item => item.meshIndex === meshIndex && item.primitiveIndex === primitiveIndex);
32
42
  if (descriptor) {
33
43
  const decoder = options?.gltf?.splatDecoder;
34
44
  const bufferView = gltfData.json.bufferViews?.[compression.bufferView];
@@ -1 +1 @@
1
- {"version":3,"file":"KHR_gaussian_splatting.js","sourceRoot":"","sources":["../../../../src/gltf/lib/extensions/KHR_gaussian_splatting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KHR_gaussian_splatting.js","sourceRoot":"","sources":["../../../../src/gltf/lib/extensions/KHR_gaussian_splatting.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/gltf/lib/parsers/parse-gltf.ts"],
4
- "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/* eslint-disable camelcase, max-statements, no-restricted-globals */\nimport type {LoaderContext} from '@loaders.gl/core/loader-utils';\nimport type {GLTFLoaderOptions} from '../../gltf-loader-types';\nimport type {GLTF} from '../types/gltf-json-schema';\nimport type {GLTFExternalFile, GLTFWithBuffers} from '../types/gltf-types';\nimport type {GLB} from '../types/glb-types';\nimport type {ParseGLBOptions} from './parse-glb';\n\nimport type {ImageType, TextureLevel} from '@loaders.gl/core/schema';\nimport {parseJSON, sliceArrayBuffer, parseFromContext} from '@loaders.gl/core/loader-utils';\nimport {ImageLoader} from '@loaders.gl/images';\nimport {BasisLoader} from '@loaders.gl/images';\n\nimport {assert} from '../utils/assert';\nimport {isGLB, parseGLBSync} from './parse-glb';\nimport {canonicalizeUrl, resolveUrl} from '../gltf-utils/resolve-url';\nimport {findGLTFFileIndex, resolveGLTFFile} from '../gltf-utils/resolve-gltf-file';\nimport {getTypedArrayForBufferView} from '../gltf-utils/get-typed-array';\nimport {preprocessExtensions, decodeExtensions} from '../api/gltf-extensions';\nimport {getDDSLoader} from '../extensions/MSFT_texture_dds';\nimport {normalizeGLTFV1WithDeferredBuffers} from '../api/normalize-gltf-v1';\n\n/** */\nexport type ParseGLTFOptions = ParseGLBOptions & {\n /** Best-effort glTF 1 conversion; strict rejects reported unsupported features. @default true */\n normalize?: boolean | 'best-effort' | 'strict';\n loadImages?: boolean;\n /** Load encoded KHR_audio_emitter clips independently of loadBuffers, without playback. @default true */\n loadAudio?: boolean;\n /** Load linked and embedded buffers; required for meshopt decompression. @default true */\n loadBuffers?: boolean;\n /** @internal Restrict linked-buffer loading after the glTF JSON is available. */\n loadBufferIndices?: number[] | ((json: GLTF) => number[]);\n /** @internal Restrict meshopt decompression to selected buffer views. */\n decompressBufferViewIndices?: number[] | ((json: GLTF) => number[]);\n /** Resolve draft glTF 2.1 `files` entries. */\n loadFiles?: boolean;\n /** Recursively parse draft glTF 2.1 external assets referenced by nodes. */\n loadExternalAssets?: boolean;\n /** Decompress Draco, `EXT_meshopt_compression`, and `KHR_meshopt_compression` data. @default true */\n decompressMeshes?: boolean;\n /** Optional decoder for embedded SPZ2 Gaussian payloads; bytes are explicitly in LUF coordinates. */\n splatDecoder?: (\n data: ArrayBuffer,\n options: {sourceCoordinateSystem: 'LUF'; targetCoordinateSystem?: string}\n ) => unknown | Promise<unknown>;\n excludeExtensions?: string[];\n};\n\n/**\n * Creates options for parsing an image referenced by a glTF asset.\n * Preserves automatic Basis format selection until the worker can inspect the source codec.\n * @param options - glTF loader options.\n * @param mimeType - MIME type declared by the glTF image.\n * @returns Loader options for the referenced image.\n */\nexport function getGLTFImageOptions(\n options: GLTFLoaderOptions,\n mimeType?: string\n): GLTFLoaderOptions {\n const basisOptions = options.basis;\n return {\n ...options,\n core: {...options.core, mimeType},\n basis: {...basisOptions, format: basisOptions?.format || 'auto'}\n };\n}\n\n/** Check if an array buffer appears to contain GLTF data */\nexport function isGLTF(arrayBuffer: ArrayBuffer, options?: ParseGLTFOptions): boolean {\n const byteOffset = 0;\n return isGLB(arrayBuffer, byteOffset, options);\n}\n\nexport async function parseGLTF(\n gltf: GLTFWithBuffers,\n arrayBufferOrString,\n byteOffset = 0,\n options: GLTFLoaderOptions,\n context: LoaderContext\n): Promise<GLTFWithBuffers> {\n return await parseGLTFWithExternalAssets(gltf, arrayBufferOrString, byteOffset, options, context);\n}\n\n/** Parse glTF data while carrying recursion state through nested external assets. */\nasync function parseGLTFWithExternalAssets(\n gltf: GLTFWithBuffers,\n arrayBufferOrString,\n byteOffset: number,\n options: GLTFLoaderOptions,\n context: LoaderContext,\n externalAssetLoadState?: ExternalAssetLoadState\n): Promise<GLTFWithBuffers> {\n parseGLTFContainerSync(gltf, arrayBufferOrString, byteOffset, options);\n\n const finishNormalization = normalizeGLTFV1WithDeferredBuffers(gltf, {\n normalize: options?.gltf?.normalize,\n log: options?.core?.log\n });\n\n await preprocessExtensions(gltf, options, context);\n\n // Load linked buffers asynchronously and decodes base64 buffers in parallel\n if (options?.gltf?.loadBuffers && gltf.json.buffers) {\n await loadBuffers(gltf, options, context, options.gltf.loadBufferIndices);\n }\n finishNormalization();\n\n if (options?.gltf?.loadFiles && gltf.json.files) {\n await loadFiles(gltf, options, context);\n }\n\n if (options?.gltf?.loadExternalAssets && gltf.json.externalAssets) {\n await loadExternalAssets(gltf, options, context, externalAssetLoadState);\n }\n\n // loadImages and decodeExtensions should not be running in parallel, because\n // decodeExtensions uses data from images taken during the loadImages call.\n if (options?.gltf?.loadImages) {\n await loadImages(gltf, options, context);\n }\n\n await decodeExtensions(gltf, options, context);\n\n return gltf;\n}\n\n/**\n *\n * @param gltf\n * @param data - can be ArrayBuffer (GLB), ArrayBuffer (Binary JSON), String (JSON), or Object (parsed JSON)\n * @param byteOffset\n * @param options\n */\nfunction parseGLTFContainerSync(gltf, data, byteOffset, options: GLTFLoaderOptions) {\n // Initialize gltf container\n if (options.core?.baseUrl) {\n gltf.baseUri = options.core?.baseUrl;\n }\n\n // If data is binary and starting with magic bytes, assume binary JSON text, convert to string\n if (data instanceof ArrayBuffer && !isGLB(data, byteOffset, options.glb)) {\n const textDecoder = new TextDecoder();\n data = textDecoder.decode(data);\n }\n\n if (typeof data === 'string') {\n // If string, try to parse as JSON\n gltf.json = parseJSON(data);\n } else if (data instanceof ArrayBuffer) {\n // If still ArrayBuffer, parse as GLB container\n const glb: GLB = {} as GLB;\n byteOffset = parseGLBSync(glb, data, byteOffset, options.glb);\n\n assert(glb.type === 'glTF', `Invalid GLB magic string ${glb.type}`);\n\n gltf._glb = glb;\n gltf.json = glb.json;\n } else if (data && typeof data === 'object') {\n // Callers that already decoded JSON can retain the parsed object. This avoids a second\n // serialization/parsing pass while preserving the normal extension and external-asset flow.\n gltf.json = data;\n } else {\n assert(false, 'GLTF: must be ArrayBuffer, string, or parsed JSON object');\n }\n\n // Populate buffers\n // Create an external buffers array to hold binary data\n const buffers = gltf.json.buffers || [];\n const bufferDefinitions = Array.isArray(buffers) ? buffers : [];\n const bufferIds = Array.isArray(buffers) ? [] : Object.keys(buffers);\n gltf.buffers = new Array(Array.isArray(buffers) ? buffers.length : bufferIds.length).fill(null);\n\n // Resolve GLB chunks into the parallel buffers array.\n if (gltf._glb) {\n const {binChunks} = gltf._glb;\n\n for (let bufferIndex = 0; bufferIndex < bufferDefinitions.length; bufferIndex++) {\n const buffer = bufferDefinitions[bufferIndex];\n if (buffer.chunk === undefined) {\n continue;\n }\n\n assert(gltf._glb.version === 3, 'glTF buffer.chunk requires a GLB v3 container.');\n assert(\n buffer.uri === undefined,\n `glTF buffer ${bufferIndex} cannot define both uri and chunk.`\n );\n const binChunk = binChunks.find(chunk => chunk.chunkIndex === buffer.chunk);\n assert(\n binChunk,\n `glTF buffer ${bufferIndex} references missing GLB BIN chunk ${buffer.chunk}.`\n );\n assert(\n buffer.byteLength <= binChunk.byteLength,\n `glTF buffer ${bufferIndex} is larger than GLB BIN chunk ${buffer.chunk}.`\n );\n gltf.buffers[bufferIndex] = {\n arrayBuffer: binChunk.arrayBuffer,\n byteOffset: binChunk.byteOffset,\n byteLength: buffer.byteLength\n };\n }\n\n const uriLessBufferIndices = bufferDefinitions\n .map((buffer, bufferIndex) => (buffer.uri === undefined ? bufferIndex : -1))\n .filter(bufferIndex => bufferIndex !== -1);\n const implicitBinChunk = binChunks.find(chunk => chunk.chunkIndex === 1);\n const usesLegacyImplicitBuffer =\n gltf._glb.version < 3 ||\n (gltf._glb.jsonChunkIndex === 0 &&\n bufferDefinitions[0]?.chunk === undefined &&\n uriLessBufferIndices.length === 1 &&\n uriLessBufferIndices[0] === 0 &&\n Boolean(implicitBinChunk));\n const legacyImplicitBinChunk = gltf._glb.version < 3 ? binChunks[0] : implicitBinChunk;\n // glTF 1 dictionaries have no required key order. Normalization subsequently moves\n // the named body and its payload to index zero for glTF 2.\n const binaryBufferIndex =\n gltf._glb.version === 1 && !Array.isArray(buffers) ? bufferIds.indexOf('binary_glTF') : 0;\n\n if (usesLegacyImplicitBuffer && legacyImplicitBinChunk && binaryBufferIndex >= 0) {\n gltf.buffers[binaryBufferIndex] = {\n arrayBuffer: legacyImplicitBinChunk.arrayBuffer,\n byteOffset: legacyImplicitBinChunk.byteOffset,\n byteLength: legacyImplicitBinChunk.byteLength\n };\n }\n\n if (gltf._glb.version === 3) {\n for (const bufferIndex of uriLessBufferIndices) {\n assert(\n gltf.buffers[bufferIndex],\n `glTF buffer ${bufferIndex} without a uri must define a valid GLB v3 chunk.`\n );\n }\n }\n\n // TODO - this modifies JSON and is a post processing thing\n // gltf.json.buffers[0].data = gltf.buffers[0].arrayBuffer;\n // gltf.json.buffers[0].byteOffset = gltf.buffers[0].byteOffset;\n }\n\n if (!gltf._glb) {\n const chunkBufferIndex = bufferDefinitions.findIndex(buffer => buffer.chunk !== undefined);\n assert(chunkBufferIndex === -1, `glTF buffer ${chunkBufferIndex} uses chunk outside a GLB.`);\n }\n\n // Populate images\n const images = gltf.json.images || [];\n gltf.images = new Array(images.length).fill({});\n\n const files = gltf.json.files || [];\n gltf.files = new Array(files.length).fill(null);\n\n const externalAssets = gltf.json.externalAssets || [];\n gltf.externalAssets = new Array(externalAssets.length).fill(null);\n}\n\ntype ExternalAssetLoadState = {\n /** Parsed assets keyed by their resolved URI. */\n cache: Map<string, Promise<GLTFWithBuffers>>;\n /** Resolved URIs in the current recursion chain. */\n ancestors: Set<string>;\n /** Shared counter used to isolate virtual package URL namespaces. */\n packageIds: {next: number};\n};\n\nconst PACKAGE_URL_PREFIX = 'gltf-package://';\n\n/** Recursively resolve external assets instantiated by nodes. */\nasync function loadExternalAssets(\n gltf: GLTFWithBuffers,\n options: GLTFLoaderOptions,\n context: LoaderContext,\n inheritedState?: ExternalAssetLoadState\n): Promise<void> {\n const externalAssets = gltf.json.externalAssets || [];\n const referencedIndices = new Set<number>();\n for (const node of gltf.json.nodes || []) {\n if (node.externalAsset !== undefined) {\n assert(\n node.externalAsset >= 0 && node.externalAsset < externalAssets.length,\n `glTF node references missing external asset ${node.externalAsset}.`\n );\n referencedIndices.add(node.externalAsset);\n }\n }\n\n const state =\n inheritedState ||\n createExternalAssetLoadState(context.url ? new Set([canonicalizeUrl(context.url)]) : new Set());\n for (const externalAssetIndex of referencedIndices) {\n await loadExternalAsset(gltf, externalAssetIndex, options, context, state);\n }\n}\n\n/** Parse one external asset and cache repeated file references. */\nasync function loadExternalAsset(\n gltf: GLTFWithBuffers,\n externalAssetIndex: number,\n options: GLTFLoaderOptions,\n context: LoaderContext,\n state: ExternalAssetLoadState\n): Promise<void> {\n const externalAsset = gltf.json.externalAssets?.[externalAssetIndex];\n if (!externalAsset) {\n throw new Error(`Missing glTF external asset ${externalAssetIndex}.`);\n }\n assert(\n Number.isInteger(externalAsset.file) &&\n externalAsset.file >= 0 &&\n externalAsset.file < (gltf.json.files?.length || 0),\n `glTF external asset ${externalAssetIndex} references missing file ${externalAsset.file}.`\n );\n\n const file = await resolveGLTFFile(gltf, externalAsset.file, options, context);\n const assetKey = file.url;\n assert(\n !assetKey || !state.ancestors.has(assetKey),\n `glTF external asset cycle detected at ${assetKey}.`\n );\n\n let parsedAsset = assetKey ? state.cache.get(assetKey) : undefined;\n if (!parsedAsset) {\n const childContext = createExternalAssetContext(gltf, file, options, context, state);\n const childState: ExternalAssetLoadState = {\n ...state,\n ancestors: new Set(state.ancestors)\n };\n if (assetKey) {\n childState.ancestors.add(assetKey);\n }\n const data = sliceArrayBuffer(file.arrayBuffer, file.byteOffset, file.byteLength);\n parsedAsset = parseGLTFWithExternalAssets(\n {} as GLTFWithBuffers,\n data,\n 0,\n options,\n childContext,\n childState\n );\n if (assetKey) {\n state.cache.set(assetKey, parsedAsset);\n }\n }\n\n gltf.externalAssets = gltf.externalAssets || [];\n gltf.externalAssets[externalAssetIndex] = await parsedAsset;\n}\n\n/** Create recursive loading state for an external-asset tree. */\nfunction createExternalAssetLoadState(ancestors: Set<string>): ExternalAssetLoadState {\n return {cache: new Map(), ancestors, packageIds: {next: 0}};\n}\n\n/** Create URL and fetch semantics for a nested external asset. */\nfunction createExternalAssetContext(\n parent: GLTFWithBuffers,\n file: GLTFExternalFile,\n options: GLTFLoaderOptions,\n context: LoaderContext,\n state: ExternalAssetLoadState\n): LoaderContext {\n if (file.url && !file.url.startsWith('data:')) {\n return {\n ...context,\n url: file.url,\n filename: getUrlFilename(file.url),\n baseUrl: getUrlBase(file.url)\n };\n }\n\n const packageBaseUrl = `${PACKAGE_URL_PREFIX}${state.packageIds.next++}`;\n const packageUrlPrefix = `${packageBaseUrl}/`;\n return {\n ...context,\n url: file.name,\n filename: file.name,\n baseUrl: packageBaseUrl,\n fetch: async (resource: string, init?: RequestInit) => {\n const url = resource;\n if (url.startsWith('data:')) {\n return await context.fetch(resource, init);\n }\n const reference = url.startsWith(packageUrlPrefix) ? url.slice(packageUrlPrefix.length) : url;\n const fileIndex = findGLTFFileIndex(parent, reference);\n assert(fileIndex >= 0, `glTF package does not contain file ${reference}.`);\n const resolvedFile = await resolveGLTFFile(parent, fileIndex, options, context);\n const data = sliceArrayBuffer(\n resolvedFile.arrayBuffer,\n resolvedFile.byteOffset,\n resolvedFile.byteLength\n );\n return new Response(data, {headers: {'content-type': resolvedFile.mimeType}});\n }\n };\n}\n\n/** Return the containing directory for a URL. */\nfunction getUrlBase(url: string): string {\n const slashIndex = url.lastIndexOf('/');\n return slashIndex >= 0 ? url.slice(0, slashIndex) : '';\n}\n\n/** Return the file name component for a URL. */\nfunction getUrlFilename(url: string): string {\n const slashIndex = url.lastIndexOf('/');\n return slashIndex >= 0 ? url.slice(slashIndex + 1) : url;\n}\n\n/** Resolve all draft glTF 2.1 unified file references. */\nasync function loadFiles(\n gltf: GLTFWithBuffers,\n options: GLTFLoaderOptions,\n context: LoaderContext\n): Promise<void> {\n const files = gltf.json.files || [];\n await Promise.all(\n files.map((_, fileIndex) => resolveGLTFFile(gltf, fileIndex, options, context))\n );\n}\n\n/** Asynchronously fetch and parse buffers, store in buffers array outside of json\n * TODO - traverse gltf and determine which buffers are actually needed\n */\nasync function loadBuffers(\n gltf: GLTFWithBuffers,\n options: GLTFLoaderOptions,\n context: LoaderContext,\n configuredBufferIndices?: number[] | ((json: GLTF) => number[])\n) {\n // TODO\n const buffers = gltf.json.buffers || [];\n const selectedBufferIndices = configuredBufferIndices\n ? new Set(\n typeof configuredBufferIndices === 'function'\n ? configuredBufferIndices(gltf.json)\n : configuredBufferIndices\n )\n : undefined;\n for (let i = 0; i < buffers.length; ++i) {\n if (selectedBufferIndices && !selectedBufferIndices.has(i)) {\n continue;\n }\n const buffer = buffers[i];\n if (buffer.uri) {\n const {fetch} = context;\n assert(fetch);\n\n const uri = resolveUrl(buffer.uri, options, context);\n const response = await context?.fetch?.(uri);\n const arrayBuffer = await response?.arrayBuffer?.();\n\n gltf.buffers[i] = {\n arrayBuffer,\n byteOffset: 0,\n byteLength: arrayBuffer.byteLength\n };\n\n delete buffer.uri;\n } else if (gltf.buffers[i] === null) {\n gltf.buffers[i] = {\n arrayBuffer: new ArrayBuffer(buffer.byteLength),\n byteOffset: 0,\n byteLength: buffer.byteLength\n };\n }\n }\n}\n\n/**\n * Loads all images\n * TODO - traverse gltf and determine which images are actually needed\n * @param gltf\n * @param options\n * @param context\n * @returns\n */\nasync function loadImages(gltf: GLTFWithBuffers, options, context: LoaderContext) {\n const imageIndices = getReferencesImageIndices(gltf);\n\n const images = gltf.json.images || [];\n\n const promises: Promise<any>[] = [];\n for (const imageIndex of imageIndices) {\n promises.push(loadImage(gltf, images[imageIndex], imageIndex, options, context));\n }\n\n return await Promise.all(promises);\n}\n\n/** Return image indices referenced by textures or draft glTF 2.1 asset metadata. */\nfunction getReferencesImageIndices(gltf: GLTFWithBuffers): number[] {\n const imageIndices = new Set<number>();\n\n if (gltf.json.asset.thumbnail !== undefined) {\n imageIndices.add(gltf.json.asset.thumbnail);\n }\n\n const textures = gltf.json.textures || [];\n for (const texture of textures) {\n if (texture.source !== undefined) {\n imageIndices.add(texture.source);\n }\n }\n\n return Array.from(imageIndices).sort();\n}\n\n/** Asynchronously fetches and parses one image, store in images array outside of json */\nasync function loadImage(\n gltf: GLTFWithBuffers,\n image,\n index: number,\n options,\n context: LoaderContext\n) {\n let arrayBuffer;\n\n if (image.uri && !image.hasOwnProperty('bufferView')) {\n const uri = resolveUrl(image.uri, options, context);\n\n const {fetch} = context;\n const response = await fetch(uri);\n\n arrayBuffer = await response.arrayBuffer();\n image.bufferView = {\n data: arrayBuffer\n };\n }\n\n if (Number.isFinite(image.bufferView)) {\n const array = getTypedArrayForBufferView(gltf.json, gltf.buffers, image.bufferView);\n arrayBuffer = sliceArrayBuffer(array.buffer, array.byteOffset, array.byteLength);\n }\n\n assert(arrayBuffer, 'glTF image has no data');\n\n const gltfOptions = getGLTFImageOptions(options, image.mimeType);\n\n const ddsLoader = getDDSLoader(context);\n const ddsSelected = Boolean(\n ddsLoader &&\n !options.gltf?.excludeExtensions?.includes('MSFT_texture_dds') &&\n gltf.json.textures?.some(\n texture =>\n texture.source === index && texture.extensions?.MSFT_texture_dds?.source === index\n )\n );\n if (ddsSelected) {\n const levels = (await parseFromContext(\n arrayBuffer,\n ddsLoader!,\n options,\n context\n )) as TextureLevel[];\n assert(levels.length > 0, 'MSFT_texture_dds parser returned no texture levels');\n gltf.images = gltf.images || [];\n gltf.images[index] = {\n compressed: true,\n mipmaps: true,\n width: levels[0].width,\n height: levels[0].height,\n data: levels\n };\n return;\n }\n\n // Call `parse`\n let parsedImage = (await parseFromContext(\n arrayBuffer,\n [ImageLoader, BasisLoader],\n gltfOptions,\n context\n )) as ImageType | TextureLevel[][];\n\n if (parsedImage && parsedImage[0]) {\n parsedImage = {\n compressed: true,\n // @ts-expect-error\n mipmaps: false,\n width: parsedImage[0].width,\n height: parsedImage[0].height,\n data: parsedImage[0]\n };\n }\n // TODO making sure ImageLoader is overridable by using array of loaders\n // const parsedImage = await parse(arrayBuffer, [ImageLoader]);\n\n // Store the loaded image\n gltf.images = gltf.images || [];\n // @ts-expect-error TODO - sort out image typing asap\n gltf.images[index] = parsedImage;\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/* eslint-disable camelcase, max-statements, no-restricted-globals */\nimport type {LoaderContext} from '@loaders.gl/core/loader-utils';\nimport type {GLTFLoaderOptions} from '../../gltf-loader-types';\nimport type {GLTF} from '../types/gltf-json-schema';\nimport type {GLTFExternalFile, GLTFWithBuffers} from '../types/gltf-types';\nimport type {GLB} from '../types/glb-types';\nimport type {ParseGLBOptions} from './parse-glb';\n\nimport type {ImageType, TextureLevel} from '@loaders.gl/core/schema';\nimport {parseJSON, sliceArrayBuffer, parseFromContext} from '@loaders.gl/core/loader-utils';\nimport {ImageLoader} from '@loaders.gl/images';\nimport {BasisLoader} from '@loaders.gl/images';\n\nimport {assert} from '../utils/assert';\nimport {isGLB, parseGLBSync} from './parse-glb';\nimport {canonicalizeUrl, resolveUrl} from '../gltf-utils/resolve-url';\nimport {findGLTFFileIndex, resolveGLTFFile} from '../gltf-utils/resolve-gltf-file';\nimport {getTypedArrayForBufferView} from '../gltf-utils/get-typed-array';\nimport {preprocessExtensions, decodeExtensions} from '../api/gltf-extensions';\nimport {getDDSLoader} from '../extensions/MSFT_texture_dds';\nimport {normalizeGLTFV1WithDeferredBuffers} from '../api/normalize-gltf-v1';\n\n/** */\nexport type ParseGLTFOptions = ParseGLBOptions & {\n /** Best-effort glTF 1 conversion; strict rejects reported unsupported features. @default true */\n normalize?: boolean | 'best-effort' | 'strict';\n loadImages?: boolean;\n /** Load encoded KHR_audio_emitter clips independently of loadBuffers, without playback. @default true */\n loadAudio?: boolean;\n /** Load linked and embedded buffers; required for meshopt decompression. @default true */\n loadBuffers?: boolean;\n /** @internal Restrict linked-buffer loading after the glTF JSON is available. */\n loadBufferIndices?: number[] | ((json: GLTF) => number[]);\n /** @internal Restrict meshopt decompression to selected buffer views. */\n decompressBufferViewIndices?: number[] | ((json: GLTF) => number[]);\n /** Resolve draft glTF 2.1 `files` entries. */\n loadFiles?: boolean;\n /** Recursively parse draft glTF 2.1 external assets referenced by nodes. */\n loadExternalAssets?: boolean;\n /** Decompress Draco, `EXT_meshopt_compression`, and `KHR_meshopt_compression` data. @default true */\n decompressMeshes?: boolean;\n /** Interpret missing metadata in legacy SPZ2 Gaussian primitives using this assumed color space. */\n legacyGaussianSplatColorSpace?: 'srgb_rec709_display' | 'lin_rec709_display';\n /** Optional decoder for embedded SPZ2 Gaussian payloads; bytes are explicitly in LUF coordinates. */\n splatDecoder?: (\n data: ArrayBuffer,\n options: {sourceCoordinateSystem: 'LUF'; targetCoordinateSystem?: string}\n ) => unknown | Promise<unknown>;\n excludeExtensions?: string[];\n};\n\n/**\n * Creates options for parsing an image referenced by a glTF asset.\n * Preserves automatic Basis format selection until the worker can inspect the source codec.\n * @param options - glTF loader options.\n * @param mimeType - MIME type declared by the glTF image.\n * @returns Loader options for the referenced image.\n */\nexport function getGLTFImageOptions(\n options: GLTFLoaderOptions,\n mimeType?: string\n): GLTFLoaderOptions {\n const basisOptions = options.basis;\n return {\n ...options,\n core: {...options.core, mimeType},\n basis: {...basisOptions, format: basisOptions?.format || 'auto'}\n };\n}\n\n/** Check if an array buffer appears to contain GLTF data */\nexport function isGLTF(arrayBuffer: ArrayBuffer, options?: ParseGLTFOptions): boolean {\n const byteOffset = 0;\n return isGLB(arrayBuffer, byteOffset, options);\n}\n\nexport async function parseGLTF(\n gltf: GLTFWithBuffers,\n arrayBufferOrString,\n byteOffset = 0,\n options: GLTFLoaderOptions,\n context: LoaderContext\n): Promise<GLTFWithBuffers> {\n return await parseGLTFWithExternalAssets(gltf, arrayBufferOrString, byteOffset, options, context);\n}\n\n/** Parse glTF data while carrying recursion state through nested external assets. */\nasync function parseGLTFWithExternalAssets(\n gltf: GLTFWithBuffers,\n arrayBufferOrString,\n byteOffset: number,\n options: GLTFLoaderOptions,\n context: LoaderContext,\n externalAssetLoadState?: ExternalAssetLoadState\n): Promise<GLTFWithBuffers> {\n parseGLTFContainerSync(gltf, arrayBufferOrString, byteOffset, options);\n\n const finishNormalization = normalizeGLTFV1WithDeferredBuffers(gltf, {\n normalize: options?.gltf?.normalize,\n log: options?.core?.log\n });\n\n await preprocessExtensions(gltf, options, context);\n\n // Load linked buffers asynchronously and decodes base64 buffers in parallel\n if (options?.gltf?.loadBuffers && gltf.json.buffers) {\n await loadBuffers(gltf, options, context, options.gltf.loadBufferIndices);\n }\n finishNormalization();\n\n if (options?.gltf?.loadFiles && gltf.json.files) {\n await loadFiles(gltf, options, context);\n }\n\n if (options?.gltf?.loadExternalAssets && gltf.json.externalAssets) {\n await loadExternalAssets(gltf, options, context, externalAssetLoadState);\n }\n\n // loadImages and decodeExtensions should not be running in parallel, because\n // decodeExtensions uses data from images taken during the loadImages call.\n if (options?.gltf?.loadImages) {\n await loadImages(gltf, options, context);\n }\n\n await decodeExtensions(gltf, options, context);\n\n return gltf;\n}\n\n/**\n *\n * @param gltf\n * @param data - can be ArrayBuffer (GLB), ArrayBuffer (Binary JSON), String (JSON), or Object (parsed JSON)\n * @param byteOffset\n * @param options\n */\nfunction parseGLTFContainerSync(gltf, data, byteOffset, options: GLTFLoaderOptions) {\n // Initialize gltf container\n if (options.core?.baseUrl) {\n gltf.baseUri = options.core?.baseUrl;\n }\n\n // If data is binary and starting with magic bytes, assume binary JSON text, convert to string\n if (data instanceof ArrayBuffer && !isGLB(data, byteOffset, options.glb)) {\n const textDecoder = new TextDecoder();\n data = textDecoder.decode(data);\n }\n\n if (typeof data === 'string') {\n // If string, try to parse as JSON\n gltf.json = parseJSON(data);\n } else if (data instanceof ArrayBuffer) {\n // If still ArrayBuffer, parse as GLB container\n const glb: GLB = {} as GLB;\n byteOffset = parseGLBSync(glb, data, byteOffset, options.glb);\n\n assert(glb.type === 'glTF', `Invalid GLB magic string ${glb.type}`);\n\n gltf._glb = glb;\n gltf.json = glb.json;\n } else if (data && typeof data === 'object') {\n // Callers that already decoded JSON can retain the parsed object. This avoids a second\n // serialization/parsing pass while preserving the normal extension and external-asset flow.\n gltf.json = data;\n } else {\n assert(false, 'GLTF: must be ArrayBuffer, string, or parsed JSON object');\n }\n\n // Populate buffers\n // Create an external buffers array to hold binary data\n const buffers = gltf.json.buffers || [];\n const bufferDefinitions = Array.isArray(buffers) ? buffers : [];\n const bufferIds = Array.isArray(buffers) ? [] : Object.keys(buffers);\n gltf.buffers = new Array(Array.isArray(buffers) ? buffers.length : bufferIds.length).fill(null);\n\n // Resolve GLB chunks into the parallel buffers array.\n if (gltf._glb) {\n const {binChunks} = gltf._glb;\n\n for (let bufferIndex = 0; bufferIndex < bufferDefinitions.length; bufferIndex++) {\n const buffer = bufferDefinitions[bufferIndex];\n if (buffer.chunk === undefined) {\n continue;\n }\n\n assert(gltf._glb.version === 3, 'glTF buffer.chunk requires a GLB v3 container.');\n assert(\n buffer.uri === undefined,\n `glTF buffer ${bufferIndex} cannot define both uri and chunk.`\n );\n const binChunk = binChunks.find(chunk => chunk.chunkIndex === buffer.chunk);\n assert(\n binChunk,\n `glTF buffer ${bufferIndex} references missing GLB BIN chunk ${buffer.chunk}.`\n );\n assert(\n buffer.byteLength <= binChunk.byteLength,\n `glTF buffer ${bufferIndex} is larger than GLB BIN chunk ${buffer.chunk}.`\n );\n gltf.buffers[bufferIndex] = {\n arrayBuffer: binChunk.arrayBuffer,\n byteOffset: binChunk.byteOffset,\n byteLength: buffer.byteLength\n };\n }\n\n const uriLessBufferIndices = bufferDefinitions\n .map((buffer, bufferIndex) => (buffer.uri === undefined ? bufferIndex : -1))\n .filter(bufferIndex => bufferIndex !== -1);\n const implicitBinChunk = binChunks.find(chunk => chunk.chunkIndex === 1);\n const usesLegacyImplicitBuffer =\n gltf._glb.version < 3 ||\n (gltf._glb.jsonChunkIndex === 0 &&\n bufferDefinitions[0]?.chunk === undefined &&\n uriLessBufferIndices.length === 1 &&\n uriLessBufferIndices[0] === 0 &&\n Boolean(implicitBinChunk));\n const legacyImplicitBinChunk = gltf._glb.version < 3 ? binChunks[0] : implicitBinChunk;\n // glTF 1 dictionaries have no required key order. Normalization subsequently moves\n // the named body and its payload to index zero for glTF 2.\n const binaryBufferIndex =\n gltf._glb.version === 1 && !Array.isArray(buffers) ? bufferIds.indexOf('binary_glTF') : 0;\n\n if (usesLegacyImplicitBuffer && legacyImplicitBinChunk && binaryBufferIndex >= 0) {\n gltf.buffers[binaryBufferIndex] = {\n arrayBuffer: legacyImplicitBinChunk.arrayBuffer,\n byteOffset: legacyImplicitBinChunk.byteOffset,\n byteLength: legacyImplicitBinChunk.byteLength\n };\n }\n\n if (gltf._glb.version === 3) {\n for (const bufferIndex of uriLessBufferIndices) {\n assert(\n gltf.buffers[bufferIndex],\n `glTF buffer ${bufferIndex} without a uri must define a valid GLB v3 chunk.`\n );\n }\n }\n\n // TODO - this modifies JSON and is a post processing thing\n // gltf.json.buffers[0].data = gltf.buffers[0].arrayBuffer;\n // gltf.json.buffers[0].byteOffset = gltf.buffers[0].byteOffset;\n }\n\n if (!gltf._glb) {\n const chunkBufferIndex = bufferDefinitions.findIndex(buffer => buffer.chunk !== undefined);\n assert(chunkBufferIndex === -1, `glTF buffer ${chunkBufferIndex} uses chunk outside a GLB.`);\n }\n\n // Populate images\n const images = gltf.json.images || [];\n gltf.images = new Array(images.length).fill({});\n\n const files = gltf.json.files || [];\n gltf.files = new Array(files.length).fill(null);\n\n const externalAssets = gltf.json.externalAssets || [];\n gltf.externalAssets = new Array(externalAssets.length).fill(null);\n}\n\ntype ExternalAssetLoadState = {\n /** Parsed assets keyed by their resolved URI. */\n cache: Map<string, Promise<GLTFWithBuffers>>;\n /** Resolved URIs in the current recursion chain. */\n ancestors: Set<string>;\n /** Shared counter used to isolate virtual package URL namespaces. */\n packageIds: {next: number};\n};\n\nconst PACKAGE_URL_PREFIX = 'gltf-package://';\n\n/** Recursively resolve external assets instantiated by nodes. */\nasync function loadExternalAssets(\n gltf: GLTFWithBuffers,\n options: GLTFLoaderOptions,\n context: LoaderContext,\n inheritedState?: ExternalAssetLoadState\n): Promise<void> {\n const externalAssets = gltf.json.externalAssets || [];\n const referencedIndices = new Set<number>();\n for (const node of gltf.json.nodes || []) {\n if (node.externalAsset !== undefined) {\n assert(\n node.externalAsset >= 0 && node.externalAsset < externalAssets.length,\n `glTF node references missing external asset ${node.externalAsset}.`\n );\n referencedIndices.add(node.externalAsset);\n }\n }\n\n const state =\n inheritedState ||\n createExternalAssetLoadState(context.url ? new Set([canonicalizeUrl(context.url)]) : new Set());\n for (const externalAssetIndex of referencedIndices) {\n await loadExternalAsset(gltf, externalAssetIndex, options, context, state);\n }\n}\n\n/** Parse one external asset and cache repeated file references. */\nasync function loadExternalAsset(\n gltf: GLTFWithBuffers,\n externalAssetIndex: number,\n options: GLTFLoaderOptions,\n context: LoaderContext,\n state: ExternalAssetLoadState\n): Promise<void> {\n const externalAsset = gltf.json.externalAssets?.[externalAssetIndex];\n if (!externalAsset) {\n throw new Error(`Missing glTF external asset ${externalAssetIndex}.`);\n }\n assert(\n Number.isInteger(externalAsset.file) &&\n externalAsset.file >= 0 &&\n externalAsset.file < (gltf.json.files?.length || 0),\n `glTF external asset ${externalAssetIndex} references missing file ${externalAsset.file}.`\n );\n\n const file = await resolveGLTFFile(gltf, externalAsset.file, options, context);\n const assetKey = file.url;\n assert(\n !assetKey || !state.ancestors.has(assetKey),\n `glTF external asset cycle detected at ${assetKey}.`\n );\n\n let parsedAsset = assetKey ? state.cache.get(assetKey) : undefined;\n if (!parsedAsset) {\n const childContext = createExternalAssetContext(gltf, file, options, context, state);\n const childState: ExternalAssetLoadState = {\n ...state,\n ancestors: new Set(state.ancestors)\n };\n if (assetKey) {\n childState.ancestors.add(assetKey);\n }\n const data = sliceArrayBuffer(file.arrayBuffer, file.byteOffset, file.byteLength);\n parsedAsset = parseGLTFWithExternalAssets(\n {} as GLTFWithBuffers,\n data,\n 0,\n options,\n childContext,\n childState\n );\n if (assetKey) {\n state.cache.set(assetKey, parsedAsset);\n }\n }\n\n gltf.externalAssets = gltf.externalAssets || [];\n gltf.externalAssets[externalAssetIndex] = await parsedAsset;\n}\n\n/** Create recursive loading state for an external-asset tree. */\nfunction createExternalAssetLoadState(ancestors: Set<string>): ExternalAssetLoadState {\n return {cache: new Map(), ancestors, packageIds: {next: 0}};\n}\n\n/** Create URL and fetch semantics for a nested external asset. */\nfunction createExternalAssetContext(\n parent: GLTFWithBuffers,\n file: GLTFExternalFile,\n options: GLTFLoaderOptions,\n context: LoaderContext,\n state: ExternalAssetLoadState\n): LoaderContext {\n if (file.url && !file.url.startsWith('data:')) {\n return {\n ...context,\n url: file.url,\n filename: getUrlFilename(file.url),\n baseUrl: getUrlBase(file.url)\n };\n }\n\n const packageBaseUrl = `${PACKAGE_URL_PREFIX}${state.packageIds.next++}`;\n const packageUrlPrefix = `${packageBaseUrl}/`;\n return {\n ...context,\n url: file.name,\n filename: file.name,\n baseUrl: packageBaseUrl,\n fetch: async (resource: string, init?: RequestInit) => {\n const url = resource;\n if (url.startsWith('data:')) {\n return await context.fetch(resource, init);\n }\n const reference = url.startsWith(packageUrlPrefix) ? url.slice(packageUrlPrefix.length) : url;\n const fileIndex = findGLTFFileIndex(parent, reference);\n assert(fileIndex >= 0, `glTF package does not contain file ${reference}.`);\n const resolvedFile = await resolveGLTFFile(parent, fileIndex, options, context);\n const data = sliceArrayBuffer(\n resolvedFile.arrayBuffer,\n resolvedFile.byteOffset,\n resolvedFile.byteLength\n );\n return new Response(data, {headers: {'content-type': resolvedFile.mimeType}});\n }\n };\n}\n\n/** Return the containing directory for a URL. */\nfunction getUrlBase(url: string): string {\n const slashIndex = url.lastIndexOf('/');\n return slashIndex >= 0 ? url.slice(0, slashIndex) : '';\n}\n\n/** Return the file name component for a URL. */\nfunction getUrlFilename(url: string): string {\n const slashIndex = url.lastIndexOf('/');\n return slashIndex >= 0 ? url.slice(slashIndex + 1) : url;\n}\n\n/** Resolve all draft glTF 2.1 unified file references. */\nasync function loadFiles(\n gltf: GLTFWithBuffers,\n options: GLTFLoaderOptions,\n context: LoaderContext\n): Promise<void> {\n const files = gltf.json.files || [];\n await Promise.all(\n files.map((_, fileIndex) => resolveGLTFFile(gltf, fileIndex, options, context))\n );\n}\n\n/** Asynchronously fetch and parse buffers, store in buffers array outside of json\n * TODO - traverse gltf and determine which buffers are actually needed\n */\nasync function loadBuffers(\n gltf: GLTFWithBuffers,\n options: GLTFLoaderOptions,\n context: LoaderContext,\n configuredBufferIndices?: number[] | ((json: GLTF) => number[])\n) {\n // TODO\n const buffers = gltf.json.buffers || [];\n const selectedBufferIndices = configuredBufferIndices\n ? new Set(\n typeof configuredBufferIndices === 'function'\n ? configuredBufferIndices(gltf.json)\n : configuredBufferIndices\n )\n : undefined;\n for (let i = 0; i < buffers.length; ++i) {\n if (selectedBufferIndices && !selectedBufferIndices.has(i)) {\n continue;\n }\n const buffer = buffers[i];\n if (buffer.uri) {\n const {fetch} = context;\n assert(fetch);\n\n const uri = resolveUrl(buffer.uri, options, context);\n const response = await context?.fetch?.(uri);\n const arrayBuffer = await response?.arrayBuffer?.();\n\n gltf.buffers[i] = {\n arrayBuffer,\n byteOffset: 0,\n byteLength: arrayBuffer.byteLength\n };\n\n delete buffer.uri;\n } else if (gltf.buffers[i] === null) {\n gltf.buffers[i] = {\n arrayBuffer: new ArrayBuffer(buffer.byteLength),\n byteOffset: 0,\n byteLength: buffer.byteLength\n };\n }\n }\n}\n\n/**\n * Loads all images\n * TODO - traverse gltf and determine which images are actually needed\n * @param gltf\n * @param options\n * @param context\n * @returns\n */\nasync function loadImages(gltf: GLTFWithBuffers, options, context: LoaderContext) {\n const imageIndices = getReferencesImageIndices(gltf);\n\n const images = gltf.json.images || [];\n\n const promises: Promise<any>[] = [];\n for (const imageIndex of imageIndices) {\n promises.push(loadImage(gltf, images[imageIndex], imageIndex, options, context));\n }\n\n return await Promise.all(promises);\n}\n\n/** Return image indices referenced by textures or draft glTF 2.1 asset metadata. */\nfunction getReferencesImageIndices(gltf: GLTFWithBuffers): number[] {\n const imageIndices = new Set<number>();\n\n if (gltf.json.asset.thumbnail !== undefined) {\n imageIndices.add(gltf.json.asset.thumbnail);\n }\n\n const textures = gltf.json.textures || [];\n for (const texture of textures) {\n if (texture.source !== undefined) {\n imageIndices.add(texture.source);\n }\n }\n\n return Array.from(imageIndices).sort();\n}\n\n/** Asynchronously fetches and parses one image, store in images array outside of json */\nasync function loadImage(\n gltf: GLTFWithBuffers,\n image,\n index: number,\n options,\n context: LoaderContext\n) {\n let arrayBuffer;\n\n if (image.uri && !image.hasOwnProperty('bufferView')) {\n const uri = resolveUrl(image.uri, options, context);\n\n const {fetch} = context;\n const response = await fetch(uri);\n\n arrayBuffer = await response.arrayBuffer();\n image.bufferView = {\n data: arrayBuffer\n };\n }\n\n if (Number.isFinite(image.bufferView)) {\n const array = getTypedArrayForBufferView(gltf.json, gltf.buffers, image.bufferView);\n arrayBuffer = sliceArrayBuffer(array.buffer, array.byteOffset, array.byteLength);\n }\n\n assert(arrayBuffer, 'glTF image has no data');\n\n const gltfOptions = getGLTFImageOptions(options, image.mimeType);\n\n const ddsLoader = getDDSLoader(context);\n const ddsSelected = Boolean(\n ddsLoader &&\n !options.gltf?.excludeExtensions?.includes('MSFT_texture_dds') &&\n gltf.json.textures?.some(\n texture =>\n texture.source === index && texture.extensions?.MSFT_texture_dds?.source === index\n )\n );\n if (ddsSelected) {\n const levels = (await parseFromContext(\n arrayBuffer,\n ddsLoader!,\n options,\n context\n )) as TextureLevel[];\n assert(levels.length > 0, 'MSFT_texture_dds parser returned no texture levels');\n gltf.images = gltf.images || [];\n gltf.images[index] = {\n compressed: true,\n mipmaps: true,\n width: levels[0].width,\n height: levels[0].height,\n data: levels\n };\n return;\n }\n\n // Call `parse`\n let parsedImage = (await parseFromContext(\n arrayBuffer,\n [ImageLoader, BasisLoader],\n gltfOptions,\n context\n )) as ImageType | TextureLevel[][];\n\n if (parsedImage && parsedImage[0]) {\n parsedImage = {\n compressed: true,\n // @ts-expect-error\n mipmaps: false,\n width: parsedImage[0].width,\n height: parsedImage[0].height,\n data: parsedImage[0]\n };\n }\n // TODO making sure ImageLoader is overridable by using array of loaders\n // const parsedImage = await parse(arrayBuffer, [ImageLoader]);\n\n // Store the loaded image\n gltf.images = gltf.images || [];\n // @ts-expect-error TODO - sort out image typing asap\n gltf.images[index] = parsedImage;\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_images"]
7
7
  }
@@ -22,6 +22,8 @@ export type ParseGLTFOptions = ParseGLBOptions & {
22
22
  loadExternalAssets?: boolean;
23
23
  /** Decompress Draco, `EXT_meshopt_compression`, and `KHR_meshopt_compression` data. @default true */
24
24
  decompressMeshes?: boolean;
25
+ /** Interpret missing metadata in legacy SPZ2 Gaussian primitives using this assumed color space. */
26
+ legacyGaussianSplatColorSpace?: 'srgb_rec709_display' | 'lin_rec709_display';
25
27
  /** Optional decoder for embedded SPZ2 Gaussian payloads; bytes are explicitly in LUF coordinates. */
26
28
  splatDecoder?: (data: ArrayBuffer, options: {
27
29
  sourceCoordinateSystem: 'LUF';
@@ -1 +1 @@
1
- {"version":3,"file":"parse-gltf.d.ts","sourceRoot":"","sources":["../../../../src/gltf/lib/parsers/parse-gltf.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAC,iBAAiB,EAAC,mCAAgC;AAC/D,OAAO,KAAK,EAAC,IAAI,EAAC,qCAAkC;AACpD,OAAO,KAAK,EAAmB,eAAe,EAAC,+BAA4B;AAE3E,OAAO,KAAK,EAAC,eAAe,EAAC,uBAAoB;AAgBjD,OAAO;AACP,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG;IAC/C,iGAAiG;IACjG,SAAS,CAAC,EAAE,OAAO,GAAG,aAAa,GAAG,QAAQ,CAAC;IAC/C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yGAAyG;IACzG,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0FAA0F;IAC1F,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC;IAC1D,yEAAyE;IACzE,2BAA2B,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC;IACpE,8CAA8C;IAC9C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,4EAA4E;IAC5E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,qGAAqG;IACrG,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,qGAAqG;IACrG,YAAY,CAAC,EAAE,CACb,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE;QAAC,sBAAsB,EAAE,KAAK,CAAC;QAAC,sBAAsB,CAAC,EAAE,MAAM,CAAA;KAAC,KACtE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,CAAC,EAAE,MAAM,GAChB,iBAAiB,CAOnB;AAED,4DAA4D;AAC5D,wBAAgB,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAGpF;AAED,wBAAsB,SAAS,CAC7B,IAAI,EAAE,eAAe,EACrB,mBAAmB,KAAA,EACnB,UAAU,oBAAI,EACd,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,eAAe,CAAC,CAE1B"}
1
+ {"version":3,"file":"parse-gltf.d.ts","sourceRoot":"","sources":["../../../../src/gltf/lib/parsers/parse-gltf.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAC,iBAAiB,EAAC,mCAAgC;AAC/D,OAAO,KAAK,EAAC,IAAI,EAAC,qCAAkC;AACpD,OAAO,KAAK,EAAmB,eAAe,EAAC,+BAA4B;AAE3E,OAAO,KAAK,EAAC,eAAe,EAAC,uBAAoB;AAgBjD,OAAO;AACP,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG;IAC/C,iGAAiG;IACjG,SAAS,CAAC,EAAE,OAAO,GAAG,aAAa,GAAG,QAAQ,CAAC;IAC/C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yGAAyG;IACzG,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0FAA0F;IAC1F,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC;IAC1D,yEAAyE;IACzE,2BAA2B,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC;IACpE,8CAA8C;IAC9C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,4EAA4E;IAC5E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,qGAAqG;IACrG,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oGAAoG;IACpG,6BAA6B,CAAC,EAAE,qBAAqB,GAAG,oBAAoB,CAAC;IAC7E,qGAAqG;IACrG,YAAY,CAAC,EAAE,CACb,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE;QAAC,sBAAsB,EAAE,KAAK,CAAC;QAAC,sBAAsB,CAAC,EAAE,MAAM,CAAA;KAAC,KACtE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,CAAC,EAAE,MAAM,GAChB,iBAAiB,CAOnB;AAED,4DAA4D;AAC5D,wBAAgB,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAGpF;AAED,wBAAsB,SAAS,CAC7B,IAAI,EAAE,eAAe,EACrB,mBAAmB,KAAA,EACnB,UAAU,oBAAI,EACd,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,eAAe,CAAC,CAE1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-gltf.js","sourceRoot":"","sources":["../../../../src/gltf/lib/parsers/parse-gltf.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse-gltf.js","sourceRoot":"","sources":["../../../../src/gltf/lib/parsers/parse-gltf.ts"],"names":[],"mappings":"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"}
@@ -21,9 +21,11 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
21
21
  var gltf_additional_extension_schemas_exports = {};
22
22
  __export(gltf_additional_extension_schemas_exports, {
23
23
  GLTFEXTMeshGPUInstancingSchema: () => GLTFEXTMeshGPUInstancingSchema,
24
+ GLTFFBGeometryMetadataSchema: () => GLTFFBGeometryMetadataSchema,
24
25
  GLTFKHRAnimationPointerSchema: () => GLTFKHRAnimationPointerSchema,
25
26
  GLTFKHRMaterialVariantMappingSchema: () => GLTFKHRMaterialVariantMappingSchema,
26
27
  GLTFKHRMaterialVariantSchema: () => GLTFKHRMaterialVariantSchema,
28
+ GLTFKHRMaterialsEmissiveStrengthSchema: () => GLTFKHRMaterialsEmissiveStrengthSchema,
27
29
  GLTFKHRMaterialsVariantsPrimitiveSchema: () => GLTFKHRMaterialsVariantsPrimitiveSchema,
28
30
  GLTFKHRMaterialsVariantsSchema: () => GLTFKHRMaterialsVariantsSchema,
29
31
  GLTFKHRNodeHoverabilitySchema: () => GLTFKHRNodeHoverabilitySchema,
@@ -105,12 +107,32 @@ var GLTFKHRXMPJSONLDReferenceSchema = import_zod.z.looseObject({
105
107
  /** Index into the document-level packets array. */
106
108
  packet: indexSchema
107
109
  });
110
+ var GLTFKHRMaterialsEmissiveStrengthSchema = import_zod.z.looseObject({
111
+ ...propertyShape,
112
+ /** Unitless multiplier; defaults to one when omitted. */
113
+ emissiveStrength: import_zod.z.number().nonnegative().optional()
114
+ });
115
+ var GLTFFBGeometryMetadataSchema = import_zod.z.looseObject({
116
+ ...propertyShape,
117
+ /** Authored count of vertices. */
118
+ vertexCount: import_zod.z.number().nonnegative().optional(),
119
+ /** Authored count of primitives. */
120
+ primitiveCount: import_zod.z.number().nonnegative().optional(),
121
+ /** Static scene-space bounding box. */
122
+ sceneBounds: import_zod.z.looseObject({
123
+ ...propertyShape,
124
+ min: import_zod.z.array(import_zod.z.number()).length(3),
125
+ max: import_zod.z.array(import_zod.z.number()).length(3)
126
+ }).optional()
127
+ });
108
128
  // Annotate the CommonJS export names for ESM import in node:
109
129
  0 && (module.exports = {
110
130
  GLTFEXTMeshGPUInstancingSchema,
131
+ GLTFFBGeometryMetadataSchema,
111
132
  GLTFKHRAnimationPointerSchema,
112
133
  GLTFKHRMaterialVariantMappingSchema,
113
134
  GLTFKHRMaterialVariantSchema,
135
+ GLTFKHRMaterialsEmissiveStrengthSchema,
114
136
  GLTFKHRMaterialsVariantsPrimitiveSchema,
115
137
  GLTFKHRMaterialsVariantsSchema,
116
138
  GLTFKHRNodeHoverabilitySchema,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/gltf/lib/types/gltf-additional-extension-schemas.ts"],
4
- "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright vis.gl contributors\n\nimport {z} from 'zod';\n\nconst indexSchema = z.number().int().nonnegative();\nconst propertyShape = {\n /** Nested extension declarations, including extensions unknown to this library. */\n extensions: z.record(z.string(), z.unknown()).optional(),\n /** Application-specific metadata. */\n extras: z.unknown().optional()\n};\n\n/** Permissive schema for one named material variant. */\nexport const GLTFKHRMaterialVariantSchema = z.looseObject({\n ...propertyShape,\n /** User-facing variant name. */\n name: z.string()\n});\n\n/** Permissive schema for document-level KHR_materials_variants. */\nexport const GLTFKHRMaterialsVariantsSchema = z.looseObject({\n ...propertyShape,\n /** Available variants, referenced by primitive mappings. */\n variants: z.array(GLTFKHRMaterialVariantSchema).min(1)\n});\n\n/** Permissive schema for a primitive's material-to-variant mapping. */\nexport const GLTFKHRMaterialVariantMappingSchema = z.looseObject({\n ...propertyShape,\n /** Optional application-facing mapping name. */\n name: z.string().optional(),\n /** Index into the document's materials array. */\n material: indexSchema,\n /** Indices into the document-level variant array. */\n variants: z.array(indexSchema).min(1)\n});\n\n/** Permissive schema for primitive-level KHR_materials_variants. */\nexport const GLTFKHRMaterialsVariantsPrimitiveSchema = z.looseObject({\n ...propertyShape,\n /** Material choices associated with this primitive. */\n mappings: z.array(GLTFKHRMaterialVariantMappingSchema).min(1)\n});\n\n/** Permissive schema for EXT_mesh_gpu_instancing, retaining custom instance attributes. */\nexport const GLTFEXTMeshGPUInstancingSchema = z.looseObject({\n ...propertyShape,\n /** Accessor indices for TRANSLATION, ROTATION, SCALE and custom instance attributes. */\n attributes: z.record(z.string(), indexSchema)\n});\n\n/** Permissive schema for KHR_animation_pointer on an animation channel target. */\nexport const GLTFKHRAnimationPointerSchema = z.looseObject({\n ...propertyShape,\n /** JSON Pointer identifying an animatable property in the original glTF document. */\n pointer: z.string()\n});\n\n/** Permissive schema for KHR_node_visibility; omitted visibility means true. */\nexport const GLTFKHRNodeVisibilitySchema = z.looseObject({\n ...propertyShape,\n /** Whether this node and its descendants are visible. */\n visible: z.boolean().optional()\n});\n\n/** Permissive schema for KHR_node_selectability; omitted selectability means true. */\nexport const GLTFKHRNodeSelectabilitySchema = z.looseObject({\n ...propertyShape,\n /** Whether this node and its descendants participate in selection. */\n selectable: z.boolean().optional()\n});\n\n/** Permissive schema for KHR_node_hoverability; omitted hoverability means true. */\nexport const GLTFKHRNodeHoverabilitySchema = z.looseObject({\n ...propertyShape,\n /** Whether this node and its descendants participate in hover interactions. */\n hoverable: z.boolean().optional()\n});\n\n/** Permissive XMP packet schema, retaining arbitrary JSON-LD namespaces and properties. */\nexport const GLTFKHRXMPPacketSchema = z.looseObject({\n /** Namespace declarations used by this packet. */\n '@context': z.record(z.string(), z.unknown())\n});\n\n/** Permissive schema for document-level KHR_xmp_json_ld. */\nexport const GLTFKHRXMPJSONLDSchema = z.looseObject({\n ...propertyShape,\n /** Shared metadata packets referenced by asset, scene, node and other objects. */\n packets: z.array(GLTFKHRXMPPacketSchema).min(1)\n});\n\n/** Permissive schema for an object's KHR_xmp_json_ld packet reference. */\nexport const GLTFKHRXMPJSONLDReferenceSchema = z.looseObject({\n ...propertyShape,\n /** Index into the document-level packets array. */\n packet: indexSchema\n});\n\n/** Document-level material variants with unknown extension properties preserved. */\nexport type GLTF_KHR_materials_variants = z.infer<typeof GLTFKHRMaterialsVariantsSchema>;\n/** One named material variant. */\nexport type GLTFMaterialVariant = z.infer<typeof GLTFKHRMaterialVariantSchema>;\n/** Primitive-level variant mappings. */\nexport type GLTF_KHR_materials_variants_primitive = z.infer<\n typeof GLTFKHRMaterialsVariantsPrimitiveSchema\n>;\n/** One mapping from a material to variant indices. */\nexport type GLTFMaterialVariantMapping = z.infer<typeof GLTFKHRMaterialVariantMappingSchema>;\n/** GPU instance accessor references, including custom attributes. */\nexport type GLTF_EXT_mesh_gpu_instancing = z.infer<typeof GLTFEXTMeshGPUInstancingSchema>;\n/** Animation channel target expressed as a JSON Pointer. */\nexport type GLTF_KHR_animation_pointer = z.infer<typeof GLTFKHRAnimationPointerSchema>;\n/** Local node visibility declaration. */\nexport type GLTF_KHR_node_visibility = z.infer<typeof GLTFKHRNodeVisibilitySchema>;\n/** Local node selectability declaration. */\nexport type GLTF_KHR_node_selectability = z.infer<typeof GLTFKHRNodeSelectabilitySchema>;\n/** Local node hoverability declaration. */\nexport type GLTF_KHR_node_hoverability = z.infer<typeof GLTFKHRNodeHoverabilitySchema>;\n/** Document-level XMP packet collection. */\nexport type GLTF_KHR_xmp_json_ld = z.infer<typeof GLTFKHRXMPJSONLDSchema>;\n/** One JSON-LD XMP metadata packet. */\nexport type GLTFXMPPacket = z.infer<typeof GLTFKHRXMPPacketSchema>;\n/** Reference to a shared XMP metadata packet. */\nexport type GLTF_KHR_xmp_json_ld_reference = z.infer<typeof GLTFKHRXMPJSONLDReferenceSchema>;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,iBAAgB;AAEhB,IAAM,cAAc,aAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AACjD,IAAM,gBAAgB;AAAA;AAAA,EAEpB,YAAY,aAAE,OAAO,aAAE,OAAO,GAAG,aAAE,QAAQ,CAAC,EAAE,SAAS;AAAA;AAAA,EAEvD,QAAQ,aAAE,QAAQ,EAAE,SAAS;AAC/B;AAGO,IAAM,+BAA+B,aAAE,YAAY;AAAA,EACxD,GAAG;AAAA;AAAA,EAEH,MAAM,aAAE,OAAO;AACjB,CAAC;AAGM,IAAM,iCAAiC,aAAE,YAAY;AAAA,EAC1D,GAAG;AAAA;AAAA,EAEH,UAAU,aAAE,MAAM,4BAA4B,EAAE,IAAI,CAAC;AACvD,CAAC;AAGM,IAAM,sCAAsC,aAAE,YAAY;AAAA,EAC/D,GAAG;AAAA;AAAA,EAEH,MAAM,aAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EAE1B,UAAU;AAAA;AAAA,EAEV,UAAU,aAAE,MAAM,WAAW,EAAE,IAAI,CAAC;AACtC,CAAC;AAGM,IAAM,0CAA0C,aAAE,YAAY;AAAA,EACnE,GAAG;AAAA;AAAA,EAEH,UAAU,aAAE,MAAM,mCAAmC,EAAE,IAAI,CAAC;AAC9D,CAAC;AAGM,IAAM,iCAAiC,aAAE,YAAY;AAAA,EAC1D,GAAG;AAAA;AAAA,EAEH,YAAY,aAAE,OAAO,aAAE,OAAO,GAAG,WAAW;AAC9C,CAAC;AAGM,IAAM,gCAAgC,aAAE,YAAY;AAAA,EACzD,GAAG;AAAA;AAAA,EAEH,SAAS,aAAE,OAAO;AACpB,CAAC;AAGM,IAAM,8BAA8B,aAAE,YAAY;AAAA,EACvD,GAAG;AAAA;AAAA,EAEH,SAAS,aAAE,QAAQ,EAAE,SAAS;AAChC,CAAC;AAGM,IAAM,iCAAiC,aAAE,YAAY;AAAA,EAC1D,GAAG;AAAA;AAAA,EAEH,YAAY,aAAE,QAAQ,EAAE,SAAS;AACnC,CAAC;AAGM,IAAM,gCAAgC,aAAE,YAAY;AAAA,EACzD,GAAG;AAAA;AAAA,EAEH,WAAW,aAAE,QAAQ,EAAE,SAAS;AAClC,CAAC;AAGM,IAAM,yBAAyB,aAAE,YAAY;AAAA;AAAA,EAElD,YAAY,aAAE,OAAO,aAAE,OAAO,GAAG,aAAE,QAAQ,CAAC;AAC9C,CAAC;AAGM,IAAM,yBAAyB,aAAE,YAAY;AAAA,EAClD,GAAG;AAAA;AAAA,EAEH,SAAS,aAAE,MAAM,sBAAsB,EAAE,IAAI,CAAC;AAChD,CAAC;AAGM,IAAM,kCAAkC,aAAE,YAAY;AAAA,EAC3D,GAAG;AAAA;AAAA,EAEH,QAAQ;AACV,CAAC;",
4
+ "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright vis.gl contributors\n\nimport {z} from 'zod';\n\nconst indexSchema = z.number().int().nonnegative();\nconst propertyShape = {\n /** Nested extension declarations, including extensions unknown to this library. */\n extensions: z.record(z.string(), z.unknown()).optional(),\n /** Application-specific metadata. */\n extras: z.unknown().optional()\n};\n\n/** Permissive schema for one named material variant. */\nexport const GLTFKHRMaterialVariantSchema = z.looseObject({\n ...propertyShape,\n /** User-facing variant name. */\n name: z.string()\n});\n\n/** Permissive schema for document-level KHR_materials_variants. */\nexport const GLTFKHRMaterialsVariantsSchema = z.looseObject({\n ...propertyShape,\n /** Available variants, referenced by primitive mappings. */\n variants: z.array(GLTFKHRMaterialVariantSchema).min(1)\n});\n\n/** Permissive schema for a primitive's material-to-variant mapping. */\nexport const GLTFKHRMaterialVariantMappingSchema = z.looseObject({\n ...propertyShape,\n /** Optional application-facing mapping name. */\n name: z.string().optional(),\n /** Index into the document's materials array. */\n material: indexSchema,\n /** Indices into the document-level variant array. */\n variants: z.array(indexSchema).min(1)\n});\n\n/** Permissive schema for primitive-level KHR_materials_variants. */\nexport const GLTFKHRMaterialsVariantsPrimitiveSchema = z.looseObject({\n ...propertyShape,\n /** Material choices associated with this primitive. */\n mappings: z.array(GLTFKHRMaterialVariantMappingSchema).min(1)\n});\n\n/** Permissive schema for EXT_mesh_gpu_instancing, retaining custom instance attributes. */\nexport const GLTFEXTMeshGPUInstancingSchema = z.looseObject({\n ...propertyShape,\n /** Accessor indices for TRANSLATION, ROTATION, SCALE and custom instance attributes. */\n attributes: z.record(z.string(), indexSchema)\n});\n\n/** Permissive schema for KHR_animation_pointer on an animation channel target. */\nexport const GLTFKHRAnimationPointerSchema = z.looseObject({\n ...propertyShape,\n /** JSON Pointer identifying an animatable property in the original glTF document. */\n pointer: z.string()\n});\n\n/** Permissive schema for KHR_node_visibility; omitted visibility means true. */\nexport const GLTFKHRNodeVisibilitySchema = z.looseObject({\n ...propertyShape,\n /** Whether this node and its descendants are visible. */\n visible: z.boolean().optional()\n});\n\n/** Permissive schema for KHR_node_selectability; omitted selectability means true. */\nexport const GLTFKHRNodeSelectabilitySchema = z.looseObject({\n ...propertyShape,\n /** Whether this node and its descendants participate in selection. */\n selectable: z.boolean().optional()\n});\n\n/** Permissive schema for KHR_node_hoverability; omitted hoverability means true. */\nexport const GLTFKHRNodeHoverabilitySchema = z.looseObject({\n ...propertyShape,\n /** Whether this node and its descendants participate in hover interactions. */\n hoverable: z.boolean().optional()\n});\n\n/** Permissive XMP packet schema, retaining arbitrary JSON-LD namespaces and properties. */\nexport const GLTFKHRXMPPacketSchema = z.looseObject({\n /** Namespace declarations used by this packet. */\n '@context': z.record(z.string(), z.unknown())\n});\n\n/** Permissive schema for document-level KHR_xmp_json_ld. */\nexport const GLTFKHRXMPJSONLDSchema = z.looseObject({\n ...propertyShape,\n /** Shared metadata packets referenced by asset, scene, node and other objects. */\n packets: z.array(GLTFKHRXMPPacketSchema).min(1)\n});\n\n/** Permissive schema for an object's KHR_xmp_json_ld packet reference. */\nexport const GLTFKHRXMPJSONLDReferenceSchema = z.looseObject({\n ...propertyShape,\n /** Index into the document-level packets array. */\n packet: indexSchema\n});\n\n/** Document-level material variants with unknown extension properties preserved. */\nexport type GLTF_KHR_materials_variants = z.infer<typeof GLTFKHRMaterialsVariantsSchema>;\n/** One named material variant. */\nexport type GLTFMaterialVariant = z.infer<typeof GLTFKHRMaterialVariantSchema>;\n/** Primitive-level variant mappings. */\nexport type GLTF_KHR_materials_variants_primitive = z.infer<\n typeof GLTFKHRMaterialsVariantsPrimitiveSchema\n>;\n/** One mapping from a material to variant indices. */\nexport type GLTFMaterialVariantMapping = z.infer<typeof GLTFKHRMaterialVariantMappingSchema>;\n/** GPU instance accessor references, including custom attributes. */\nexport type GLTF_EXT_mesh_gpu_instancing = z.infer<typeof GLTFEXTMeshGPUInstancingSchema>;\n/** Animation channel target expressed as a JSON Pointer. */\nexport type GLTF_KHR_animation_pointer = z.infer<typeof GLTFKHRAnimationPointerSchema>;\n/** Local node visibility declaration. */\nexport type GLTF_KHR_node_visibility = z.infer<typeof GLTFKHRNodeVisibilitySchema>;\n/** Local node selectability declaration. */\nexport type GLTF_KHR_node_selectability = z.infer<typeof GLTFKHRNodeSelectabilitySchema>;\n/** Local node hoverability declaration. */\nexport type GLTF_KHR_node_hoverability = z.infer<typeof GLTFKHRNodeHoverabilitySchema>;\n/** Document-level XMP packet collection. */\nexport type GLTF_KHR_xmp_json_ld = z.infer<typeof GLTFKHRXMPJSONLDSchema>;\n/** One JSON-LD XMP metadata packet. */\nexport type GLTFXMPPacket = z.infer<typeof GLTFKHRXMPPacketSchema>;\n/** Reference to a shared XMP metadata packet. */\nexport type GLTF_KHR_xmp_json_ld_reference = z.infer<typeof GLTFKHRXMPJSONLDReferenceSchema>;\n\n/** Permissive declaration for the KHR emissive-strength material extension. */\nexport const GLTFKHRMaterialsEmissiveStrengthSchema = z.looseObject({\n ...propertyShape,\n /** Unitless multiplier; defaults to one when omitted. */\n emissiveStrength: z.number().nonnegative().optional()\n});\n\n/** Authored KHR emissive-strength material declaration. */\nexport type GLTF_KHR_materials_emissive_strength = z.infer<\n typeof GLTFKHRMaterialsEmissiveStrengthSchema\n>;\n\n/** Permissive FB scene geometry summary in static scene coordinates. */\nexport const GLTFFBGeometryMetadataSchema = z.looseObject({\n ...propertyShape,\n /** Authored count of vertices. */\n vertexCount: z.number().nonnegative().optional(),\n /** Authored count of primitives. */\n primitiveCount: z.number().nonnegative().optional(),\n /** Static scene-space bounding box. */\n sceneBounds: z\n .looseObject({\n ...propertyShape,\n min: z.array(z.number()).length(3),\n max: z.array(z.number()).length(3)\n })\n .optional()\n});\n\n/** Authored FB scene geometry summary. */\nexport type GLTF_FB_geometry_metadata = z.infer<typeof GLTFFBGeometryMetadataSchema>;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,iBAAgB;AAEhB,IAAM,cAAc,aAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AACjD,IAAM,gBAAgB;AAAA;AAAA,EAEpB,YAAY,aAAE,OAAO,aAAE,OAAO,GAAG,aAAE,QAAQ,CAAC,EAAE,SAAS;AAAA;AAAA,EAEvD,QAAQ,aAAE,QAAQ,EAAE,SAAS;AAC/B;AAGO,IAAM,+BAA+B,aAAE,YAAY;AAAA,EACxD,GAAG;AAAA;AAAA,EAEH,MAAM,aAAE,OAAO;AACjB,CAAC;AAGM,IAAM,iCAAiC,aAAE,YAAY;AAAA,EAC1D,GAAG;AAAA;AAAA,EAEH,UAAU,aAAE,MAAM,4BAA4B,EAAE,IAAI,CAAC;AACvD,CAAC;AAGM,IAAM,sCAAsC,aAAE,YAAY;AAAA,EAC/D,GAAG;AAAA;AAAA,EAEH,MAAM,aAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EAE1B,UAAU;AAAA;AAAA,EAEV,UAAU,aAAE,MAAM,WAAW,EAAE,IAAI,CAAC;AACtC,CAAC;AAGM,IAAM,0CAA0C,aAAE,YAAY;AAAA,EACnE,GAAG;AAAA;AAAA,EAEH,UAAU,aAAE,MAAM,mCAAmC,EAAE,IAAI,CAAC;AAC9D,CAAC;AAGM,IAAM,iCAAiC,aAAE,YAAY;AAAA,EAC1D,GAAG;AAAA;AAAA,EAEH,YAAY,aAAE,OAAO,aAAE,OAAO,GAAG,WAAW;AAC9C,CAAC;AAGM,IAAM,gCAAgC,aAAE,YAAY;AAAA,EACzD,GAAG;AAAA;AAAA,EAEH,SAAS,aAAE,OAAO;AACpB,CAAC;AAGM,IAAM,8BAA8B,aAAE,YAAY;AAAA,EACvD,GAAG;AAAA;AAAA,EAEH,SAAS,aAAE,QAAQ,EAAE,SAAS;AAChC,CAAC;AAGM,IAAM,iCAAiC,aAAE,YAAY;AAAA,EAC1D,GAAG;AAAA;AAAA,EAEH,YAAY,aAAE,QAAQ,EAAE,SAAS;AACnC,CAAC;AAGM,IAAM,gCAAgC,aAAE,YAAY;AAAA,EACzD,GAAG;AAAA;AAAA,EAEH,WAAW,aAAE,QAAQ,EAAE,SAAS;AAClC,CAAC;AAGM,IAAM,yBAAyB,aAAE,YAAY;AAAA;AAAA,EAElD,YAAY,aAAE,OAAO,aAAE,OAAO,GAAG,aAAE,QAAQ,CAAC;AAC9C,CAAC;AAGM,IAAM,yBAAyB,aAAE,YAAY;AAAA,EAClD,GAAG;AAAA;AAAA,EAEH,SAAS,aAAE,MAAM,sBAAsB,EAAE,IAAI,CAAC;AAChD,CAAC;AAGM,IAAM,kCAAkC,aAAE,YAAY;AAAA,EAC3D,GAAG;AAAA;AAAA,EAEH,QAAQ;AACV,CAAC;AA8BM,IAAM,yCAAyC,aAAE,YAAY;AAAA,EAClE,GAAG;AAAA;AAAA,EAEH,kBAAkB,aAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AACtD,CAAC;AAQM,IAAM,+BAA+B,aAAE,YAAY;AAAA,EACxD,GAAG;AAAA;AAAA,EAEH,aAAa,aAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AAAA;AAAA,EAE/C,gBAAgB,aAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AAAA;AAAA,EAElD,aAAa,aACV,YAAY;AAAA,IACX,GAAG;AAAA,IACH,KAAK,aAAE,MAAM,aAAE,OAAO,CAAC,EAAE,OAAO,CAAC;AAAA,IACjC,KAAK,aAAE,MAAM,aAAE,OAAO,CAAC,EAAE,OAAO,CAAC;AAAA,EACnC,CAAC,EACA,SAAS;AACd,CAAC;",
6
6
  "names": []
7
7
  }
@@ -107,4 +107,27 @@ export type GLTF_KHR_xmp_json_ld = z.infer<typeof GLTFKHRXMPJSONLDSchema>;
107
107
  export type GLTFXMPPacket = z.infer<typeof GLTFKHRXMPPacketSchema>;
108
108
  /** Reference to a shared XMP metadata packet. */
109
109
  export type GLTF_KHR_xmp_json_ld_reference = z.infer<typeof GLTFKHRXMPJSONLDReferenceSchema>;
110
+ /** Permissive declaration for the KHR emissive-strength material extension. */
111
+ export declare const GLTFKHRMaterialsEmissiveStrengthSchema: z.ZodObject<{
112
+ emissiveStrength: z.ZodOptional<z.ZodNumber>;
113
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
114
+ extras: z.ZodOptional<z.ZodUnknown>;
115
+ }, z.core.$loose>;
116
+ /** Authored KHR emissive-strength material declaration. */
117
+ export type GLTF_KHR_materials_emissive_strength = z.infer<typeof GLTFKHRMaterialsEmissiveStrengthSchema>;
118
+ /** Permissive FB scene geometry summary in static scene coordinates. */
119
+ export declare const GLTFFBGeometryMetadataSchema: z.ZodObject<{
120
+ vertexCount: z.ZodOptional<z.ZodNumber>;
121
+ primitiveCount: z.ZodOptional<z.ZodNumber>;
122
+ sceneBounds: z.ZodOptional<z.ZodObject<{
123
+ min: z.ZodArray<z.ZodNumber>;
124
+ max: z.ZodArray<z.ZodNumber>;
125
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
126
+ extras: z.ZodOptional<z.ZodUnknown>;
127
+ }, z.core.$loose>>;
128
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
129
+ extras: z.ZodOptional<z.ZodUnknown>;
130
+ }, z.core.$loose>;
131
+ /** Authored FB scene geometry summary. */
132
+ export type GLTF_FB_geometry_metadata = z.infer<typeof GLTFFBGeometryMetadataSchema>;
110
133
  //# sourceMappingURL=gltf-additional-extension-schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gltf-additional-extension-schemas.d.ts","sourceRoot":"","sources":["../../../../src/gltf/lib/types/gltf-additional-extension-schemas.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAUtB,wDAAwD;AACxD,eAAO,MAAM,4BAA4B;;;;iBAIvC,CAAC;AAEH,mEAAmE;AACnE,eAAO,MAAM,8BAA8B;;;;;;;;iBAIzC,CAAC;AAEH,uEAAuE;AACvE,eAAO,MAAM,mCAAmC;;;;;;iBAQ9C,CAAC;AAEH,oEAAoE;AACpE,eAAO,MAAM,uCAAuC;;;;;;;;;;iBAIlD,CAAC;AAEH,2FAA2F;AAC3F,eAAO,MAAM,8BAA8B;;;;iBAIzC,CAAC;AAEH,kFAAkF;AAClF,eAAO,MAAM,6BAA6B;;;;iBAIxC,CAAC;AAEH,gFAAgF;AAChF,eAAO,MAAM,2BAA2B;;;;iBAItC,CAAC;AAEH,sFAAsF;AACtF,eAAO,MAAM,8BAA8B;;;;iBAIzC,CAAC;AAEH,oFAAoF;AACpF,eAAO,MAAM,6BAA6B;;;;iBAIxC,CAAC;AAEH,2FAA2F;AAC3F,eAAO,MAAM,sBAAsB;;iBAGjC,CAAC;AAEH,4DAA4D;AAC5D,eAAO,MAAM,sBAAsB;;;;;;iBAIjC,CAAC;AAEH,0EAA0E;AAC1E,eAAO,MAAM,+BAA+B;;;;iBAI1C,CAAC;AAEH,oFAAoF;AACpF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACzF,kCAAkC;AAClC,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAC/E,wCAAwC;AACxC,MAAM,MAAM,qCAAqC,GAAG,CAAC,CAAC,KAAK,CACzD,OAAO,uCAAuC,CAC/C,CAAC;AACF,sDAAsD;AACtD,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAC7F,qEAAqE;AACrE,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAC1F,4DAA4D;AAC5D,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACvF,yCAAyC;AACzC,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AACnF,4CAA4C;AAC5C,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACzF,2CAA2C;AAC3C,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACvF,4CAA4C;AAC5C,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAC1E,uCAAuC;AACvC,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACnE,iDAAiD;AACjD,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC"}
1
+ {"version":3,"file":"gltf-additional-extension-schemas.d.ts","sourceRoot":"","sources":["../../../../src/gltf/lib/types/gltf-additional-extension-schemas.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAUtB,wDAAwD;AACxD,eAAO,MAAM,4BAA4B;;;;iBAIvC,CAAC;AAEH,mEAAmE;AACnE,eAAO,MAAM,8BAA8B;;;;;;;;iBAIzC,CAAC;AAEH,uEAAuE;AACvE,eAAO,MAAM,mCAAmC;;;;;;iBAQ9C,CAAC;AAEH,oEAAoE;AACpE,eAAO,MAAM,uCAAuC;;;;;;;;;;iBAIlD,CAAC;AAEH,2FAA2F;AAC3F,eAAO,MAAM,8BAA8B;;;;iBAIzC,CAAC;AAEH,kFAAkF;AAClF,eAAO,MAAM,6BAA6B;;;;iBAIxC,CAAC;AAEH,gFAAgF;AAChF,eAAO,MAAM,2BAA2B;;;;iBAItC,CAAC;AAEH,sFAAsF;AACtF,eAAO,MAAM,8BAA8B;;;;iBAIzC,CAAC;AAEH,oFAAoF;AACpF,eAAO,MAAM,6BAA6B;;;;iBAIxC,CAAC;AAEH,2FAA2F;AAC3F,eAAO,MAAM,sBAAsB;;iBAGjC,CAAC;AAEH,4DAA4D;AAC5D,eAAO,MAAM,sBAAsB;;;;;;iBAIjC,CAAC;AAEH,0EAA0E;AAC1E,eAAO,MAAM,+BAA+B;;;;iBAI1C,CAAC;AAEH,oFAAoF;AACpF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACzF,kCAAkC;AAClC,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAC/E,wCAAwC;AACxC,MAAM,MAAM,qCAAqC,GAAG,CAAC,CAAC,KAAK,CACzD,OAAO,uCAAuC,CAC/C,CAAC;AACF,sDAAsD;AACtD,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAC7F,qEAAqE;AACrE,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAC1F,4DAA4D;AAC5D,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACvF,yCAAyC;AACzC,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AACnF,4CAA4C;AAC5C,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACzF,2CAA2C;AAC3C,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACvF,4CAA4C;AAC5C,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAC1E,uCAAuC;AACvC,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACnE,iDAAiD;AACjD,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAE7F,+EAA+E;AAC/E,eAAO,MAAM,sCAAsC;;;;iBAIjD,CAAC;AAEH,2DAA2D;AAC3D,MAAM,MAAM,oCAAoC,GAAG,CAAC,CAAC,KAAK,CACxD,OAAO,sCAAsC,CAC9C,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,4BAA4B;;;;;;;;;;;iBAcvC,CAAC;AAEH,0CAA0C;AAC1C,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
@@ -84,4 +84,26 @@ export const GLTFKHRXMPJSONLDReferenceSchema = z.looseObject({
84
84
  /** Index into the document-level packets array. */
85
85
  packet: indexSchema
86
86
  });
87
+ /** Permissive declaration for the KHR emissive-strength material extension. */
88
+ export const GLTFKHRMaterialsEmissiveStrengthSchema = z.looseObject({
89
+ ...propertyShape,
90
+ /** Unitless multiplier; defaults to one when omitted. */
91
+ emissiveStrength: z.number().nonnegative().optional()
92
+ });
93
+ /** Permissive FB scene geometry summary in static scene coordinates. */
94
+ export const GLTFFBGeometryMetadataSchema = z.looseObject({
95
+ ...propertyShape,
96
+ /** Authored count of vertices. */
97
+ vertexCount: z.number().nonnegative().optional(),
98
+ /** Authored count of primitives. */
99
+ primitiveCount: z.number().nonnegative().optional(),
100
+ /** Static scene-space bounding box. */
101
+ sceneBounds: z
102
+ .looseObject({
103
+ ...propertyShape,
104
+ min: z.array(z.number()).length(3),
105
+ max: z.array(z.number()).length(3)
106
+ })
107
+ .optional()
108
+ });
87
109
  //# sourceMappingURL=gltf-additional-extension-schemas.js.map