@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 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.error("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
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,CAkCjF,CAAC;AAEF,wBAAsB,KAAK,CACzB,WAAW,KAAA,EACX,OAAO,+BAAwB,EAC/B,OAAO,KAAA,GACN,OAAO,CAAC,eAAe,CAAC,CAS1B"}
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"}
@@ -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) {
@@ -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","deprecatedOptions","fetchImages","createImages","decompress","postProcess","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 deprecatedOptions: {\n fetchImages: 'gltf.loadImages',\n createImages: 'gltf.loadImages',\n decompress: 'gltf.decompressMeshes',\n postProcess: 'gltf.postProcess',\n gltf: {\n decompress: 'gltf.decompressMeshes',\n postProcess: 'removed in v4'\n }\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,CAAC;EACDC,iBAAiB,EAAE;IACjBC,WAAW,EAAE,iBAAiB;IAC9BC,YAAY,EAAE,iBAAiB;IAC/BC,UAAU,EAAE,uBAAuB;IACnCC,WAAW,EAAE,kBAAkB;IAC/BX,IAAI,EAAE;MACJU,UAAU,EAAE,uBAAuB;MACnCC,WAAW,EAAE;IACf;EACF;AACF,CAAC;AAED,OAAO,eAAeb,KAAKA,CACzBc,WAAW,EAGe;EAAA,IAF1Bb,OAA0B,GAAAc,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAAA,IAC/BG,OAAO,GAAAH,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;EAGPhB,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;IAACiB,UAAU,GAAG;EAAC,CAAC,GAAGlB,OAAO;EAChC,MAAMC,IAAI,GAAG,CAAC,CAAC;EACf,OAAO,MAAMb,SAAS,CAACa,IAAI,EAAqBY,WAAW,EAAEK,UAAU,EAAElB,OAAO,EAAEiB,OAAO,CAAC;AAC5F"}
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
@@ -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;AAEtF,kBAAkB;AAElB,kBAAkB;AAElB,kBAAkB"}
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\n/** @deprecated */\n// export type {GLTFMesh as Mesh} from './lib/types/gltf-json-schema';\n/** @deprecated */\n// export type {GLTFNodePostprocessed as Node} from './lib/types/gltf-postprocessed-schema';\n/** @deprecated */\n// export type {GLTFAccessorPostprocessed as Accessor} from './lib/types/gltf-postprocessed-schema';\n// /** @deprecated */\n// export type {GLTFImagePostprocessed as Image} from './lib/types/gltf-postprocessed-schema';\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"}
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?: false;
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;IAE7B,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
+ {"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.5",
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.5",
46
- "@loaders.gl/images": "4.0.0-beta.5",
47
- "@loaders.gl/loader-utils": "4.0.0-beta.5",
48
- "@loaders.gl/textures": "4.0.0-beta.5",
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": "a6f5a0d1a316cc22396e5a4d480c14329d1ef146"
51
+ "gitHead": "5b6cab0ab5d73212cfa37fa5da6e25ad7ef83fe5"
52
52
  }
@@ -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?: false;
28
+ postProcess?: never;
30
29
  };
31
30
 
32
31
  /** Check if an array buffer appears to contain GLTF data */