@loaders.gl/gltf 4.0.0-beta.5 → 4.0.0-beta.7
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.
- package/dist/dist.dev.js +2 -12
- package/dist/gltf-loader.d.ts.map +1 -1
- package/dist/gltf-loader.js +0 -10
- package/dist/gltf-loader.js.map +1 -1
- package/dist/index.cjs +0 -10
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/parsers/parse-gltf.d.ts +1 -1
- package/dist/lib/parsers/parse-gltf.d.ts.map +1 -1
- package/dist/lib/parsers/parse-gltf.js.map +1 -1
- package/package.json +6 -6
- package/src/gltf-loader.ts +0 -10
- package/src/index.ts +0 -9
- package/src/lib/parsers/parse-gltf.ts +1 -2
package/dist/dist.dev.js
CHANGED
|
@@ -102,7 +102,7 @@ var __exports__ = (() => {
|
|
|
102
102
|
if (!globalThis._loadersgl_?.version) {
|
|
103
103
|
globalThis._loadersgl_ = globalThis._loadersgl_ || {};
|
|
104
104
|
if (typeof __VERSION__ === "undefined") {
|
|
105
|
-
console.
|
|
105
|
+
console.warn("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
|
|
106
106
|
globalThis._loadersgl_.version = NPM_TAG;
|
|
107
107
|
} else {
|
|
108
108
|
globalThis._loadersgl_.version = __VERSION__;
|
|
@@ -693,8 +693,8 @@ var __exports__ = (() => {
|
|
|
693
693
|
}
|
|
694
694
|
function checkNodeImageFormatSupport(mimeType) {
|
|
695
695
|
const NODE_FORMAT_SUPPORT = ["image/png", "image/jpeg", "image/gif"];
|
|
696
|
-
const parseImageNode2 = globalThis.loaders?.parseImageNode;
|
|
697
696
|
const imageFormatsNode = globalThis.loaders?.imageFormatsNode || NODE_FORMAT_SUPPORT;
|
|
697
|
+
const parseImageNode2 = globalThis.loaders?.parseImageNode;
|
|
698
698
|
return Boolean(parseImageNode2) && imageFormatsNode.includes(mimeType);
|
|
699
699
|
}
|
|
700
700
|
function checkBrowserImageFormatSupport(mimeType) {
|
|
@@ -5390,16 +5390,6 @@ var __exports__ = (() => {
|
|
|
5390
5390
|
decompressMeshes: true
|
|
5391
5391
|
},
|
|
5392
5392
|
log: console
|
|
5393
|
-
},
|
|
5394
|
-
deprecatedOptions: {
|
|
5395
|
-
fetchImages: "gltf.loadImages",
|
|
5396
|
-
createImages: "gltf.loadImages",
|
|
5397
|
-
decompress: "gltf.decompressMeshes",
|
|
5398
|
-
postProcess: "gltf.postProcess",
|
|
5399
|
-
gltf: {
|
|
5400
|
-
decompress: "gltf.decompressMeshes",
|
|
5401
|
-
postProcess: "removed in v4"
|
|
5402
|
-
}
|
|
5403
5393
|
}
|
|
5404
5394
|
};
|
|
5405
5395
|
async function parse2(arrayBuffer, options = {}, context) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gltf-loader.d.ts","sourceRoot":"","sources":["../src/gltf-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AAE1D,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAGnD;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAC3C,kBAAkB,GAClB,oBAAoB,GACpB,gBAAgB,GAChB,kBAAkB,GAAG;IACnB,IAAI,CAAC,EAAE,gBAAgB,CAAC;CACzB,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,gBAAgB,CAAC,eAAe,EAAE,KAAK,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"gltf-loader.d.ts","sourceRoot":"","sources":["../src/gltf-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AAE1D,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAGnD;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAC3C,kBAAkB,GAClB,oBAAoB,GACpB,gBAAgB,GAChB,kBAAkB,GAAG;IACnB,IAAI,CAAC,EAAE,gBAAgB,CAAC;CACzB,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,gBAAgB,CAAC,eAAe,EAAE,KAAK,EAAE,gBAAgB,CAwBjF,CAAC;AAEF,wBAAsB,KAAK,CACzB,WAAW,KAAA,EACX,OAAO,+BAAwB,EAC/B,OAAO,KAAA,GACN,OAAO,CAAC,eAAe,CAAC,CAS1B"}
|
package/dist/gltf-loader.js
CHANGED
|
@@ -19,16 +19,6 @@ export const GLTFLoader = {
|
|
|
19
19
|
decompressMeshes: true
|
|
20
20
|
},
|
|
21
21
|
log: console
|
|
22
|
-
},
|
|
23
|
-
deprecatedOptions: {
|
|
24
|
-
fetchImages: 'gltf.loadImages',
|
|
25
|
-
createImages: 'gltf.loadImages',
|
|
26
|
-
decompress: 'gltf.decompressMeshes',
|
|
27
|
-
postProcess: 'gltf.postProcess',
|
|
28
|
-
gltf: {
|
|
29
|
-
decompress: 'gltf.decompressMeshes',
|
|
30
|
-
postProcess: 'removed in v4'
|
|
31
|
-
}
|
|
32
22
|
}
|
|
33
23
|
};
|
|
34
24
|
export async function parse(arrayBuffer) {
|
package/dist/gltf-loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gltf-loader.js","names":["VERSION","parseGLTF","GLTFLoader","name","id","module","version","extensions","mimeTypes","text","binary","tests","parse","options","gltf","normalize","loadBuffers","loadImages","decompressMeshes","log","console","
|
|
1
|
+
{"version":3,"file":"gltf-loader.js","names":["VERSION","parseGLTF","GLTFLoader","name","id","module","version","extensions","mimeTypes","text","binary","tests","parse","options","gltf","normalize","loadBuffers","loadImages","decompressMeshes","log","console","arrayBuffer","arguments","length","undefined","context","byteOffset"],"sources":["../src/gltf-loader.ts"],"sourcesContent":["import type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {DracoLoaderOptions} from '@loaders.gl/draco';\nimport {VERSION} from './lib/utils/version';\nimport type {ImageLoaderOptions} from '@loaders.gl/images';\nimport type {TextureLoaderOptions} from '@loaders.gl/textures';\nimport type {ParseGLTFOptions} from './lib/parsers/parse-gltf';\nimport type {GLTFWithBuffers} from './lib/types/gltf-types';\nimport type {GLBLoaderOptions} from './glb-loader';\nimport {parseGLTF} from './lib/parsers/parse-gltf';\n\n/**\n * GLTF loader options\n */\nexport type GLTFLoaderOptions = LoaderOptions &\n ImageLoaderOptions &\n TextureLoaderOptions &\n GLBLoaderOptions &\n DracoLoaderOptions & {\n gltf?: ParseGLTFOptions;\n };\n\n/**\n * GLTF loader\n */\nexport const GLTFLoader: LoaderWithParser<GLTFWithBuffers, never, GLBLoaderOptions> = {\n name: 'glTF',\n id: 'gltf',\n module: 'gltf',\n version: VERSION,\n extensions: ['gltf', 'glb'],\n mimeTypes: ['model/gltf+json', 'model/gltf-binary'],\n\n text: true,\n binary: true,\n tests: ['glTF'],\n parse,\n\n options: {\n gltf: {\n normalize: true, // Normalize glTF v1 to glTF v2 format (not yet stable)\n loadBuffers: true, // Fetch any linked .BIN buffers, decode base64\n loadImages: true, // Create image objects\n decompressMeshes: true // Decompress Draco encoded meshes\n },\n\n // common?\n log: console // eslint-disable-line\n }\n};\n\nexport async function parse(\n arrayBuffer,\n options: GLTFLoaderOptions = {},\n context\n): Promise<GLTFWithBuffers> {\n // Apps can call the parse method directly, we so apply default options here\n options = {...GLTFLoader.options, ...options};\n // @ts-ignore\n options.gltf = {...GLTFLoader.options.gltf, ...options.gltf};\n\n const {byteOffset = 0} = options;\n const gltf = {};\n return await parseGLTF(gltf as GLTFWithBuffers, arrayBuffer, byteOffset, options, context);\n}\n"],"mappings":"SAEQA,OAAO;AAAA,SAMPC,SAAS;AAgBjB,OAAO,MAAMC,UAAsE,GAAG;EACpFC,IAAI,EAAE,MAAM;EACZC,EAAE,EAAE,MAAM;EACVC,MAAM,EAAE,MAAM;EACdC,OAAO,EAAEN,OAAO;EAChBO,UAAU,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;EAC3BC,SAAS,EAAE,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;EAEnDC,IAAI,EAAE,IAAI;EACVC,MAAM,EAAE,IAAI;EACZC,KAAK,EAAE,CAAC,MAAM,CAAC;EACfC,KAAK;EAELC,OAAO,EAAE;IACPC,IAAI,EAAE;MACJC,SAAS,EAAE,IAAI;MACfC,WAAW,EAAE,IAAI;MACjBC,UAAU,EAAE,IAAI;MAChBC,gBAAgB,EAAE;IACpB,CAAC;IAGDC,GAAG,EAAEC;EACP;AACF,CAAC;AAED,OAAO,eAAeR,KAAKA,CACzBS,WAAW,EAGe;EAAA,IAF1BR,OAA0B,GAAAS,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAAA,IAC/BG,OAAO,GAAAH,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;EAGPX,OAAO,GAAG;IAAC,GAAGX,UAAU,CAACW,OAAO;IAAE,GAAGA;EAAO,CAAC;EAE7CA,OAAO,CAACC,IAAI,GAAG;IAAC,GAAGZ,UAAU,CAACW,OAAO,CAACC,IAAI;IAAE,GAAGD,OAAO,CAACC;EAAI,CAAC;EAE5D,MAAM;IAACY,UAAU,GAAG;EAAC,CAAC,GAAGb,OAAO;EAChC,MAAMC,IAAI,GAAG,CAAC,CAAC;EACf,OAAO,MAAMb,SAAS,CAACa,IAAI,EAAqBO,WAAW,EAAEK,UAAU,EAAEb,OAAO,EAAEY,OAAO,CAAC;AAC5F"}
|
package/dist/index.cjs
CHANGED
|
@@ -2930,16 +2930,6 @@ var GLTFLoader = {
|
|
|
2930
2930
|
// common?
|
|
2931
2931
|
log: console
|
|
2932
2932
|
// eslint-disable-line
|
|
2933
|
-
},
|
|
2934
|
-
deprecatedOptions: {
|
|
2935
|
-
fetchImages: "gltf.loadImages",
|
|
2936
|
-
createImages: "gltf.loadImages",
|
|
2937
|
-
decompress: "gltf.decompressMeshes",
|
|
2938
|
-
postProcess: "gltf.postProcess",
|
|
2939
|
-
gltf: {
|
|
2940
|
-
decompress: "gltf.decompressMeshes",
|
|
2941
|
-
postProcess: "removed in v4"
|
|
2942
|
-
}
|
|
2943
2933
|
}
|
|
2944
2934
|
};
|
|
2945
2935
|
async function parse(arrayBuffer, options = {}, context) {
|
package/dist/index.d.ts
CHANGED
|
@@ -15,7 +15,4 @@ export { GLBWriter } from './glb-writer';
|
|
|
15
15
|
export { GLTFScenegraph } from './lib/api/gltf-scenegraph';
|
|
16
16
|
export { postProcessGLTF } from './lib/api/post-process-gltf';
|
|
17
17
|
export { getMemoryUsageGLTF as _getMemoryUsageGLTF } from './lib/gltf-utils/gltf-utils';
|
|
18
|
-
/** @deprecated */
|
|
19
|
-
/** @deprecated */
|
|
20
|
-
/** @deprecated */
|
|
21
18
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAC,GAAG,EAAC,MAAM,uBAAuB,CAAC;AAG/C,YAAY,EACV,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,SAAS,EACT,QAAQ,EACR,WAAW,EACX,SAAS,EACT,UAAU,EAEV,oBAAoB,EACpB,+BAA+B,EAC/B,uBAAuB,EACvB,4BAA4B,EAC5B,qBAAqB,EACtB,MAAM,8BAA8B,CAAC;AAGtC,YAAY,EACV,8BAA8B,EAC9B,gCAAgC,EAChC,+BAA+B,EAC/B,uCAAuC,EACvC,8BAA8B,EAC9B,mCAAmC,EACnC,sCAAsC,EACtC,8CAA8C,EAC9C,wCAAwC,EACxC,yCAAyC,EACzC,oCAAoC,EACpC,yCAAyC,EACzC,iDAAiD,EACjD,mCAAmC,EACnC,4CAA4C,EAC5C,sDAAsD,EACtD,0CAA0C,EAC1C,kDAAkD,EACnD,MAAM,8CAA8C,CAAC;AAEtD,YAAY,EACV,iCAAiC,EACjC,mCAAmC,EACnC,0CAA0C,EAC1C,4CAA4C,EAC5C,kCAAkC,EAClC,0CAA0C,EAC3C,MAAM,iDAAiD,CAAC;AAEzD,YAAY,EACV,sBAAsB,EACtB,gCAAgC,EACjC,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EAAC,IAAI,IAAI,iBAAiB,EAAC,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAC,IAAI,IAAI,uBAAuB,EAAC,MAAM,0CAA0C,CAAC;AACzF,OAAO,EAAC,IAAI,IAAI,oBAAoB,EAAC,MAAM,kDAAkD,CAAC;AAG9F,YAAY,EACV,iBAAiB,EACjB,yBAAyB,EACzB,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,EACrB,8BAA8B,EAC9B,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,uCAAuC,CAAC;AAE/C,YAAY,EAAC,eAAe,EAAE,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AAG9E,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AACvC,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAC,eAAe,EAAC,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAC,kBAAkB,IAAI,mBAAmB,EAAC,MAAM,6BAA6B,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAC,GAAG,EAAC,MAAM,uBAAuB,CAAC;AAG/C,YAAY,EACV,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,SAAS,EACT,QAAQ,EACR,WAAW,EACX,SAAS,EACT,UAAU,EAEV,oBAAoB,EACpB,+BAA+B,EAC/B,uBAAuB,EACvB,4BAA4B,EAC5B,qBAAqB,EACtB,MAAM,8BAA8B,CAAC;AAGtC,YAAY,EACV,8BAA8B,EAC9B,gCAAgC,EAChC,+BAA+B,EAC/B,uCAAuC,EACvC,8BAA8B,EAC9B,mCAAmC,EACnC,sCAAsC,EACtC,8CAA8C,EAC9C,wCAAwC,EACxC,yCAAyC,EACzC,oCAAoC,EACpC,yCAAyC,EACzC,iDAAiD,EACjD,mCAAmC,EACnC,4CAA4C,EAC5C,sDAAsD,EACtD,0CAA0C,EAC1C,kDAAkD,EACnD,MAAM,8CAA8C,CAAC;AAEtD,YAAY,EACV,iCAAiC,EACjC,mCAAmC,EACnC,0CAA0C,EAC1C,4CAA4C,EAC5C,kCAAkC,EAClC,0CAA0C,EAC3C,MAAM,iDAAiD,CAAC;AAEzD,YAAY,EACV,sBAAsB,EACtB,gCAAgC,EACjC,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EAAC,IAAI,IAAI,iBAAiB,EAAC,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAC,IAAI,IAAI,uBAAuB,EAAC,MAAM,0CAA0C,CAAC;AACzF,OAAO,EAAC,IAAI,IAAI,oBAAoB,EAAC,MAAM,kDAAkD,CAAC;AAG9F,YAAY,EACV,iBAAiB,EACjB,yBAAyB,EACzB,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,EACrB,8BAA8B,EAC9B,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,uCAAuC,CAAC;AAE/C,YAAY,EAAC,eAAe,EAAE,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AAG9E,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AACvC,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAC,eAAe,EAAC,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAC,kBAAkB,IAAI,mBAAmB,EAAC,MAAM,6BAA6B,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["name","EXT_MESH_FEATURES","EXT_STRUCTURAL_METADATA","EXT_FEATURE_METADATA","GLTFLoader","GLTFWriter","GLBLoader","GLBWriter","GLTFScenegraph","postProcessGLTF","getMemoryUsageGLTF","_getMemoryUsageGLTF"],"sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable camelcase, indent */\nexport type {GLB} from './lib/types/glb-types';\n\n// Raw GLTF Types (i.e. not post-processed)\nexport type {\n GLTF,\n GLTFAccessor,\n GLTFBuffer,\n GLTFBufferView,\n GLTFMeshPrimitive,\n GLTFMesh,\n GLTFNode,\n GLTFMaterial,\n GLTFSampler,\n GLTFScene,\n GLTFSkin,\n GLTFTexture,\n GLTFImage,\n GLTFObject,\n // The following extensions are handled by the GLTFLoader and removed from the parsed glTF (disable via options.gltf.excludeExtensions)\n GLTF_KHR_binary_glTF,\n GLTF_KHR_draco_mesh_compression,\n GLTF_KHR_texture_basisu,\n GLTF_EXT_meshopt_compression,\n GLTF_EXT_texture_webp\n} from './lib/types/gltf-json-schema';\n\n// 3DTiles extensions\nexport type {\n GLTF_EXT_feature_metadata_GLTF,\n GLTF_EXT_feature_metadata_Schema,\n GLTF_EXT_feature_metadata_Class,\n GLTF_EXT_feature_metadata_ClassProperty,\n GLTF_EXT_feature_metadata_Enum,\n GLTF_EXT_feature_metadata_EnumValue,\n GLTF_EXT_feature_metadata_FeatureTable,\n GLTF_EXT_feature_metadata_FeatureTableProperty,\n GLTF_EXT_feature_metadata_FeatureTexture,\n GLTF_EXT_feature_metadata_TextureAccessor,\n GLTF_EXT_feature_metadata_Statistics,\n GLTF_EXT_feature_metadata_StatisticsClass,\n GLTF_EXT_feature_metadata_StatisticsClassProperty,\n GLTF_EXT_feature_metadata_Primitive,\n GLTF_EXT_feature_metadata_FeatureIdAttribute,\n GLTF_EXT_feature_metadata_FeatureIdAttributeFeatureIds,\n GLTF_EXT_feature_metadata_FeatureIdTexture,\n GLTF_EXT_feature_metadata_FeatureIdTextureAccessor\n} from './lib/types/gltf-ext-feature-metadata-schema';\n\nexport type {\n GLTF_EXT_structural_metadata_GLTF,\n GLTF_EXT_structural_metadata_Schema,\n GLTF_EXT_structural_metadata_PropertyTable,\n GLTF_EXT_structural_metadata_PropertyTexture,\n GLTF_EXT_structural_metadata_Class,\n GLTF_EXT_structural_metadata_ClassProperty\n} from './lib/types/gltf-ext-structural-metadata-schema';\n\nexport type {\n GLTF_EXT_mesh_features,\n GLTF_EXT_mesh_features_featureId\n} from './lib/types/gltf-ext-mesh-features-schema';\n\nexport {name as EXT_MESH_FEATURES} from './lib/extensions/EXT_mesh_features';\nexport {name as EXT_STRUCTURAL_METADATA} from './lib/extensions/EXT_structural_metadata';\nexport {name as EXT_FEATURE_METADATA} from './lib/extensions/deprecated/EXT_feature_metadata';\n\n// Postprocessed types (modified GLTF types)\nexport type {\n GLTFPostprocessed,\n GLTFAccessorPostprocessed,\n GLTFNodePostprocessed,\n GLTFMaterialPostprocessed,\n GLTFMeshPostprocessed,\n GLTFMeshPrimitivePostprocessed,\n GLTFImagePostprocessed,\n GLTFTexturePostprocessed\n} from './lib/types/gltf-postprocessed-schema';\n\nexport type {GLTFWithBuffers, FeatureTableJson} from './lib/types/gltf-types';\n\n// glTF loader/writer definition objects\nexport {GLTFLoader} from './gltf-loader';\nexport {GLTFWriter} from './gltf-writer';\n\n// GLB Loader & Writer (for custom formats that want to leverage the GLB binary \"envelope\")\nexport {GLBLoader} from './glb-loader';\nexport {GLBWriter} from './glb-writer';\n\n// glTF Data Access Helper Class\nexport {GLTFScenegraph} from './lib/api/gltf-scenegraph';\nexport {postProcessGLTF} from './lib/api/post-process-gltf';\nexport {getMemoryUsageGLTF as _getMemoryUsageGLTF} from './lib/gltf-utils/gltf-utils';\n
|
|
1
|
+
{"version":3,"file":"index.js","names":["name","EXT_MESH_FEATURES","EXT_STRUCTURAL_METADATA","EXT_FEATURE_METADATA","GLTFLoader","GLTFWriter","GLBLoader","GLBWriter","GLTFScenegraph","postProcessGLTF","getMemoryUsageGLTF","_getMemoryUsageGLTF"],"sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable camelcase, indent */\nexport type {GLB} from './lib/types/glb-types';\n\n// Raw GLTF Types (i.e. not post-processed)\nexport type {\n GLTF,\n GLTFAccessor,\n GLTFBuffer,\n GLTFBufferView,\n GLTFMeshPrimitive,\n GLTFMesh,\n GLTFNode,\n GLTFMaterial,\n GLTFSampler,\n GLTFScene,\n GLTFSkin,\n GLTFTexture,\n GLTFImage,\n GLTFObject,\n // The following extensions are handled by the GLTFLoader and removed from the parsed glTF (disable via options.gltf.excludeExtensions)\n GLTF_KHR_binary_glTF,\n GLTF_KHR_draco_mesh_compression,\n GLTF_KHR_texture_basisu,\n GLTF_EXT_meshopt_compression,\n GLTF_EXT_texture_webp\n} from './lib/types/gltf-json-schema';\n\n// 3DTiles extensions\nexport type {\n GLTF_EXT_feature_metadata_GLTF,\n GLTF_EXT_feature_metadata_Schema,\n GLTF_EXT_feature_metadata_Class,\n GLTF_EXT_feature_metadata_ClassProperty,\n GLTF_EXT_feature_metadata_Enum,\n GLTF_EXT_feature_metadata_EnumValue,\n GLTF_EXT_feature_metadata_FeatureTable,\n GLTF_EXT_feature_metadata_FeatureTableProperty,\n GLTF_EXT_feature_metadata_FeatureTexture,\n GLTF_EXT_feature_metadata_TextureAccessor,\n GLTF_EXT_feature_metadata_Statistics,\n GLTF_EXT_feature_metadata_StatisticsClass,\n GLTF_EXT_feature_metadata_StatisticsClassProperty,\n GLTF_EXT_feature_metadata_Primitive,\n GLTF_EXT_feature_metadata_FeatureIdAttribute,\n GLTF_EXT_feature_metadata_FeatureIdAttributeFeatureIds,\n GLTF_EXT_feature_metadata_FeatureIdTexture,\n GLTF_EXT_feature_metadata_FeatureIdTextureAccessor\n} from './lib/types/gltf-ext-feature-metadata-schema';\n\nexport type {\n GLTF_EXT_structural_metadata_GLTF,\n GLTF_EXT_structural_metadata_Schema,\n GLTF_EXT_structural_metadata_PropertyTable,\n GLTF_EXT_structural_metadata_PropertyTexture,\n GLTF_EXT_structural_metadata_Class,\n GLTF_EXT_structural_metadata_ClassProperty\n} from './lib/types/gltf-ext-structural-metadata-schema';\n\nexport type {\n GLTF_EXT_mesh_features,\n GLTF_EXT_mesh_features_featureId\n} from './lib/types/gltf-ext-mesh-features-schema';\n\nexport {name as EXT_MESH_FEATURES} from './lib/extensions/EXT_mesh_features';\nexport {name as EXT_STRUCTURAL_METADATA} from './lib/extensions/EXT_structural_metadata';\nexport {name as EXT_FEATURE_METADATA} from './lib/extensions/deprecated/EXT_feature_metadata';\n\n// Postprocessed types (modified GLTF types)\nexport type {\n GLTFPostprocessed,\n GLTFAccessorPostprocessed,\n GLTFNodePostprocessed,\n GLTFMaterialPostprocessed,\n GLTFMeshPostprocessed,\n GLTFMeshPrimitivePostprocessed,\n GLTFImagePostprocessed,\n GLTFTexturePostprocessed\n} from './lib/types/gltf-postprocessed-schema';\n\nexport type {GLTFWithBuffers, FeatureTableJson} from './lib/types/gltf-types';\n\n// glTF loader/writer definition objects\nexport {GLTFLoader} from './gltf-loader';\nexport {GLTFWriter} from './gltf-writer';\n\n// GLB Loader & Writer (for custom formats that want to leverage the GLB binary \"envelope\")\nexport {GLBLoader} from './glb-loader';\nexport {GLBWriter} from './glb-writer';\n\n// glTF Data Access Helper Class\nexport {GLTFScenegraph} from './lib/api/gltf-scenegraph';\nexport {postProcessGLTF} from './lib/api/post-process-gltf';\nexport {getMemoryUsageGLTF as _getMemoryUsageGLTF} from './lib/gltf-utils/gltf-utils';\n"],"mappings":"SA+DQA,IAAI,IAAIC,iBAAiB;AAAA,SACzBD,IAAI,IAAIE,uBAAuB;AAAA,SAC/BF,IAAI,IAAIG,oBAAoB;AAAA,SAiB5BC,UAAU;AAAA,SACVC,UAAU;AAAA,SAGVC,SAAS;AAAA,SACTC,SAAS;AAAA,SAGTC,cAAc;AAAA,SACdC,eAAe;AAAA,SACfC,kBAAkB,IAAIC,mBAAmB"}
|
|
@@ -10,7 +10,7 @@ export type ParseGLTFOptions = ParseGLBOptions & {
|
|
|
10
10
|
decompressMeshes?: boolean;
|
|
11
11
|
excludeExtensions?: string[];
|
|
12
12
|
/** @deprecated not supported in v4. `postProcessGLTF()` must be called by the application */
|
|
13
|
-
postProcess?:
|
|
13
|
+
postProcess?: never;
|
|
14
14
|
};
|
|
15
15
|
/** Check if an array buffer appears to contain GLTF data */
|
|
16
16
|
export declare function isGLTF(arrayBuffer: ArrayBuffer, options?: ParseGLTFOptions): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-gltf.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-gltf.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AAcjD,OAAO;AACP,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG;IAC/C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"parse-gltf.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-gltf.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AAcjD,OAAO;AACP,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG;IAC/C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,6FAA6F;IAC7F,WAAW,CAAC,EAAE,KAAK,CAAC;CACrB,CAAC;AAEF,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,CAqB1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-gltf.js","names":["parseJSON","sliceArrayBuffer","parseFromContext","ImageLoader","BasisLoader","selectSupportedBasisFormat","assert","isGLB","parseGLBSync","resolveUrl","getTypedArrayForBufferView","preprocessExtensions","decodeExtensions","normalizeGLTFV1","isGLTF","arrayBuffer","options","byteOffset","parseGLTF","gltf","arrayBufferOrString","_options$gltf","_options$gltf2","_options$gltf3","arguments","length","undefined","context","parseGLTFContainerSync","normalize","loadBuffers","json","buffers","loadImages","data","uri","baseUri","ArrayBuffer","textDecoder","TextDecoder","decode","glb","type","_glb","Array","fill","header","hasBinChunk","binChunks","byteLength","images","i","buffer","_context$fetch","_response$arrayBuffer","fetch","response","call","imageIndices","getReferencesImageIndices","promises","imageIndex","push","loadImage","Promise","all","Set","textures","texture","source","add","from","sort","image","index","hasOwnProperty","bufferView","Number","isFinite","array","parsedImage","mimeType","basis","format","compressed","mipmaps","width","height"],"sources":["../../../src/lib/parsers/parse-gltf.ts"],"sourcesContent":["/* eslint-disable camelcase, max-statements, no-restricted-globals */\nimport type {LoaderContext} from '@loaders.gl/loader-utils';\nimport type {GLTFLoaderOptions} from '../../gltf-loader';\nimport type {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/schema';\nimport {parseJSON, sliceArrayBuffer, parseFromContext} from '@loaders.gl/loader-utils';\nimport {ImageLoader} from '@loaders.gl/images';\nimport {BasisLoader, selectSupportedBasisFormat} from '@loaders.gl/textures';\n\nimport {assert} from '../utils/assert';\nimport {isGLB, parseGLBSync} from './parse-glb';\nimport {resolveUrl} from '../gltf-utils/resolve-url';\nimport {getTypedArrayForBufferView} from '../gltf-utils/get-typed-array';\nimport {preprocessExtensions, decodeExtensions} from '../api/gltf-extensions';\nimport {normalizeGLTFV1} from '../api/normalize-gltf-v1';\n\n/** */\nexport type ParseGLTFOptions = ParseGLBOptions & {\n normalize?: boolean;\n loadImages?: boolean;\n loadBuffers?: boolean;\n decompressMeshes?: boolean;\n excludeExtensions?: string[];\n\n /** @deprecated not supported in v4. `postProcessGLTF()` must be called by the application */\n postProcess?: false;\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 parseGLTFContainerSync(gltf, arrayBufferOrString, byteOffset, options);\n\n normalizeGLTFV1(gltf, {normalize: options?.gltf?.normalize});\n\n 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);\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) {\n // Initialize gltf container\n if (options.uri) {\n gltf.baseUri = options.uri;\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)) {\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 {\n assert(false, 'GLTF: must be ArrayBuffer or string');\n }\n\n // Populate buffers\n // Create an external buffers array to hold binary data\n const buffers = gltf.json.buffers || [];\n gltf.buffers = new Array(buffers.length).fill(null);\n\n // Populates JSON and some bin chunk info\n if (gltf._glb && gltf._glb.header.hasBinChunk) {\n const {binChunks} = gltf._glb;\n gltf.buffers[0] = {\n arrayBuffer: binChunks[0].arrayBuffer,\n byteOffset: binChunks[0].byteOffset,\n byteLength: binChunks[0].byteLength\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 // Populate images\n const images = gltf.json.images || [];\n gltf.images = new Array(images.length).fill({});\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(gltf: GLTFWithBuffers, options, context: LoaderContext) {\n // TODO\n const buffers = gltf.json.buffers || [];\n for (let i = 0; i < buffers.length; ++i) {\n const buffer = buffers[i];\n if (buffer.uri) {\n const {fetch} = context;\n assert(fetch);\n\n const uri = resolveUrl(buffer.uri, options);\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/** Make sure we only load images that are actually referenced by textures */\nfunction getReferencesImageIndices(gltf: GLTFWithBuffers): number[] {\n const imageIndices = new Set<number>();\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);\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 // Call `parse`\n let parsedImage = (await parseFromContext(\n arrayBuffer,\n [ImageLoader, BasisLoader],\n {\n ...options,\n mimeType: image.mimeType,\n basis: options.basis || {format: selectSupportedBasisFormat()}\n },\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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parse-gltf.js","names":["parseJSON","sliceArrayBuffer","parseFromContext","ImageLoader","BasisLoader","selectSupportedBasisFormat","assert","isGLB","parseGLBSync","resolveUrl","getTypedArrayForBufferView","preprocessExtensions","decodeExtensions","normalizeGLTFV1","isGLTF","arrayBuffer","options","byteOffset","parseGLTF","gltf","arrayBufferOrString","_options$gltf","_options$gltf2","_options$gltf3","arguments","length","undefined","context","parseGLTFContainerSync","normalize","loadBuffers","json","buffers","loadImages","data","uri","baseUri","ArrayBuffer","textDecoder","TextDecoder","decode","glb","type","_glb","Array","fill","header","hasBinChunk","binChunks","byteLength","images","i","buffer","_context$fetch","_response$arrayBuffer","fetch","response","call","imageIndices","getReferencesImageIndices","promises","imageIndex","push","loadImage","Promise","all","Set","textures","texture","source","add","from","sort","image","index","hasOwnProperty","bufferView","Number","isFinite","array","parsedImage","mimeType","basis","format","compressed","mipmaps","width","height"],"sources":["../../../src/lib/parsers/parse-gltf.ts"],"sourcesContent":["/* eslint-disable camelcase, max-statements, no-restricted-globals */\nimport type {LoaderContext} from '@loaders.gl/loader-utils';\nimport type {GLTFLoaderOptions} from '../../gltf-loader';\nimport type {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/schema';\nimport {parseJSON, sliceArrayBuffer, parseFromContext} from '@loaders.gl/loader-utils';\nimport {ImageLoader} from '@loaders.gl/images';\nimport {BasisLoader, selectSupportedBasisFormat} from '@loaders.gl/textures';\n\nimport {assert} from '../utils/assert';\nimport {isGLB, parseGLBSync} from './parse-glb';\nimport {resolveUrl} from '../gltf-utils/resolve-url';\nimport {getTypedArrayForBufferView} from '../gltf-utils/get-typed-array';\nimport {preprocessExtensions, decodeExtensions} from '../api/gltf-extensions';\nimport {normalizeGLTFV1} from '../api/normalize-gltf-v1';\n\n/** */\nexport type ParseGLTFOptions = ParseGLBOptions & {\n normalize?: boolean;\n loadImages?: boolean;\n loadBuffers?: boolean;\n decompressMeshes?: boolean;\n excludeExtensions?: string[];\n /** @deprecated not supported in v4. `postProcessGLTF()` must be called by the application */\n postProcess?: never;\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 parseGLTFContainerSync(gltf, arrayBufferOrString, byteOffset, options);\n\n normalizeGLTFV1(gltf, {normalize: options?.gltf?.normalize});\n\n 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);\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) {\n // Initialize gltf container\n if (options.uri) {\n gltf.baseUri = options.uri;\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)) {\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 {\n assert(false, 'GLTF: must be ArrayBuffer or string');\n }\n\n // Populate buffers\n // Create an external buffers array to hold binary data\n const buffers = gltf.json.buffers || [];\n gltf.buffers = new Array(buffers.length).fill(null);\n\n // Populates JSON and some bin chunk info\n if (gltf._glb && gltf._glb.header.hasBinChunk) {\n const {binChunks} = gltf._glb;\n gltf.buffers[0] = {\n arrayBuffer: binChunks[0].arrayBuffer,\n byteOffset: binChunks[0].byteOffset,\n byteLength: binChunks[0].byteLength\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 // Populate images\n const images = gltf.json.images || [];\n gltf.images = new Array(images.length).fill({});\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(gltf: GLTFWithBuffers, options, context: LoaderContext) {\n // TODO\n const buffers = gltf.json.buffers || [];\n for (let i = 0; i < buffers.length; ++i) {\n const buffer = buffers[i];\n if (buffer.uri) {\n const {fetch} = context;\n assert(fetch);\n\n const uri = resolveUrl(buffer.uri, options);\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/** Make sure we only load images that are actually referenced by textures */\nfunction getReferencesImageIndices(gltf: GLTFWithBuffers): number[] {\n const imageIndices = new Set<number>();\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);\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 // Call `parse`\n let parsedImage = (await parseFromContext(\n arrayBuffer,\n [ImageLoader, BasisLoader],\n {\n ...options,\n mimeType: image.mimeType,\n basis: options.basis || {format: selectSupportedBasisFormat()}\n },\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"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loaders.gl/gltf",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.7",
|
|
4
4
|
"description": "Framework-independent loader for the glTF format",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -42,11 +42,11 @@
|
|
|
42
42
|
"build-bundle": "ocular-bundle ./src/index.ts"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@loaders.gl/draco": "4.0.0-beta.
|
|
46
|
-
"@loaders.gl/images": "4.0.0-beta.
|
|
47
|
-
"@loaders.gl/loader-utils": "4.0.0-beta.
|
|
48
|
-
"@loaders.gl/textures": "4.0.0-beta.
|
|
45
|
+
"@loaders.gl/draco": "4.0.0-beta.7",
|
|
46
|
+
"@loaders.gl/images": "4.0.0-beta.7",
|
|
47
|
+
"@loaders.gl/loader-utils": "4.0.0-beta.7",
|
|
48
|
+
"@loaders.gl/textures": "4.0.0-beta.7",
|
|
49
49
|
"@math.gl/core": "^4.0.0"
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "5b6cab0ab5d73212cfa37fa5da6e25ad7ef83fe5"
|
|
52
52
|
}
|
package/src/gltf-loader.ts
CHANGED
|
@@ -45,16 +45,6 @@ export const GLTFLoader: LoaderWithParser<GLTFWithBuffers, never, GLBLoaderOptio
|
|
|
45
45
|
|
|
46
46
|
// common?
|
|
47
47
|
log: console // eslint-disable-line
|
|
48
|
-
},
|
|
49
|
-
deprecatedOptions: {
|
|
50
|
-
fetchImages: 'gltf.loadImages',
|
|
51
|
-
createImages: 'gltf.loadImages',
|
|
52
|
-
decompress: 'gltf.decompressMeshes',
|
|
53
|
-
postProcess: 'gltf.postProcess',
|
|
54
|
-
gltf: {
|
|
55
|
-
decompress: 'gltf.decompressMeshes',
|
|
56
|
-
postProcess: 'removed in v4'
|
|
57
|
-
}
|
|
58
48
|
}
|
|
59
49
|
};
|
|
60
50
|
|
package/src/index.ts
CHANGED
|
@@ -91,12 +91,3 @@ export {GLBWriter} from './glb-writer';
|
|
|
91
91
|
export {GLTFScenegraph} from './lib/api/gltf-scenegraph';
|
|
92
92
|
export {postProcessGLTF} from './lib/api/post-process-gltf';
|
|
93
93
|
export {getMemoryUsageGLTF as _getMemoryUsageGLTF} from './lib/gltf-utils/gltf-utils';
|
|
94
|
-
|
|
95
|
-
/** @deprecated */
|
|
96
|
-
// export type {GLTFMesh as Mesh} from './lib/types/gltf-json-schema';
|
|
97
|
-
/** @deprecated */
|
|
98
|
-
// export type {GLTFNodePostprocessed as Node} from './lib/types/gltf-postprocessed-schema';
|
|
99
|
-
/** @deprecated */
|
|
100
|
-
// export type {GLTFAccessorPostprocessed as Accessor} from './lib/types/gltf-postprocessed-schema';
|
|
101
|
-
// /** @deprecated */
|
|
102
|
-
// export type {GLTFImagePostprocessed as Image} from './lib/types/gltf-postprocessed-schema';
|
|
@@ -24,9 +24,8 @@ export type ParseGLTFOptions = ParseGLBOptions & {
|
|
|
24
24
|
loadBuffers?: boolean;
|
|
25
25
|
decompressMeshes?: boolean;
|
|
26
26
|
excludeExtensions?: string[];
|
|
27
|
-
|
|
28
27
|
/** @deprecated not supported in v4. `postProcessGLTF()` must be called by the application */
|
|
29
|
-
postProcess?:
|
|
28
|
+
postProcess?: never;
|
|
30
29
|
};
|
|
31
30
|
|
|
32
31
|
/** Check if an array buffer appears to contain GLTF data */
|