@loaders.gl/gltf 4.0.0-alpha.9 → 4.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/dist/dist.min.js +3777 -3105
  2. package/dist/es5/glb-loader.js +1 -3
  3. package/dist/es5/glb-loader.js.map +1 -1
  4. package/dist/es5/index.js +33 -0
  5. package/dist/es5/index.js.map +1 -1
  6. package/dist/es5/lib/api/gltf-extensions.js +3 -1
  7. package/dist/es5/lib/api/gltf-extensions.js.map +1 -1
  8. package/dist/es5/lib/extensions/EXT_mesh_features.js +99 -0
  9. package/dist/es5/lib/extensions/EXT_mesh_features.js.map +1 -0
  10. package/dist/es5/lib/extensions/EXT_meshopt_compression.js +2 -2
  11. package/dist/es5/lib/extensions/EXT_meshopt_compression.js.map +1 -1
  12. package/dist/es5/lib/extensions/EXT_structural_metadata.js +375 -0
  13. package/dist/es5/lib/extensions/EXT_structural_metadata.js.map +1 -0
  14. package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js +6 -7
  15. package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js.map +1 -1
  16. package/dist/es5/lib/extensions/KHR_texture_transform.js +2 -1
  17. package/dist/es5/lib/extensions/KHR_texture_transform.js.map +1 -1
  18. package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js +162 -183
  19. package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -1
  20. package/dist/es5/lib/extensions/utils/3d-tiles-utils.js +254 -0
  21. package/dist/es5/lib/extensions/utils/3d-tiles-utils.js.map +1 -0
  22. package/dist/es5/lib/gltf-utils/gltf-utils.js +29 -0
  23. package/dist/es5/lib/gltf-utils/gltf-utils.js.map +1 -1
  24. package/dist/es5/lib/parsers/parse-gltf.js +7 -4
  25. package/dist/es5/lib/parsers/parse-gltf.js.map +1 -1
  26. package/dist/es5/lib/types/gltf-ext-feature-metadata-schema.js +2 -0
  27. package/dist/es5/lib/types/gltf-ext-feature-metadata-schema.js.map +1 -0
  28. package/dist/es5/lib/types/gltf-ext-mesh-features-schema.js +2 -0
  29. package/dist/es5/lib/types/gltf-ext-mesh-features-schema.js.map +1 -0
  30. package/dist/es5/lib/types/gltf-ext-structural-metadata-schema.js +2 -0
  31. package/dist/es5/lib/types/gltf-ext-structural-metadata-schema.js.map +1 -0
  32. package/dist/es5/lib/types/gltf-json-schema.js.map +1 -1
  33. package/dist/es5/lib/types/gltf-types.js.map +1 -1
  34. package/dist/es5/lib/utils/version.js +1 -1
  35. package/dist/es5/lib/utils/version.js.map +1 -1
  36. package/dist/esm/glb-loader.js +0 -1
  37. package/dist/esm/glb-loader.js.map +1 -1
  38. package/dist/esm/index.js +5 -0
  39. package/dist/esm/index.js.map +1 -1
  40. package/dist/esm/lib/api/gltf-extensions.js +3 -1
  41. package/dist/esm/lib/api/gltf-extensions.js.map +1 -1
  42. package/dist/esm/lib/extensions/EXT_mesh_features.js +43 -0
  43. package/dist/esm/lib/extensions/EXT_mesh_features.js.map +1 -0
  44. package/dist/esm/lib/extensions/EXT_meshopt_compression.js +2 -2
  45. package/dist/esm/lib/extensions/EXT_meshopt_compression.js.map +1 -1
  46. package/dist/esm/lib/extensions/EXT_structural_metadata.js +302 -0
  47. package/dist/esm/lib/extensions/EXT_structural_metadata.js.map +1 -0
  48. package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js +2 -5
  49. package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js.map +1 -1
  50. package/dist/esm/lib/extensions/KHR_texture_transform.js +2 -1
  51. package/dist/esm/lib/extensions/KHR_texture_transform.js.map +1 -1
  52. package/dist/esm/lib/extensions/deprecated/EXT_feature_metadata.js +156 -167
  53. package/dist/esm/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -1
  54. package/dist/esm/lib/extensions/utils/3d-tiles-utils.js +215 -0
  55. package/dist/esm/lib/extensions/utils/3d-tiles-utils.js.map +1 -0
  56. package/dist/esm/lib/gltf-utils/gltf-utils.js +30 -0
  57. package/dist/esm/lib/gltf-utils/gltf-utils.js.map +1 -1
  58. package/dist/esm/lib/parsers/parse-gltf.js +6 -6
  59. package/dist/esm/lib/parsers/parse-gltf.js.map +1 -1
  60. package/dist/esm/lib/types/gltf-ext-feature-metadata-schema.js +2 -0
  61. package/dist/esm/lib/types/gltf-ext-feature-metadata-schema.js.map +1 -0
  62. package/dist/esm/lib/types/gltf-ext-mesh-features-schema.js +2 -0
  63. package/dist/esm/lib/types/gltf-ext-mesh-features-schema.js.map +1 -0
  64. package/dist/esm/lib/types/gltf-ext-structural-metadata-schema.js +2 -0
  65. package/dist/esm/lib/types/gltf-ext-structural-metadata-schema.js.map +1 -0
  66. package/dist/esm/lib/types/gltf-json-schema.js.map +1 -1
  67. package/dist/esm/lib/types/gltf-types.js.map +1 -1
  68. package/dist/esm/lib/utils/version.js +1 -1
  69. package/dist/esm/lib/utils/version.js.map +1 -1
  70. package/dist/glb-loader.d.ts +3 -1
  71. package/dist/glb-loader.d.ts.map +1 -1
  72. package/dist/index.d.ts +10 -2
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/lib/api/gltf-extensions.d.ts.map +1 -1
  75. package/dist/lib/extensions/EXT_mesh_features.d.ts +7 -0
  76. package/dist/lib/extensions/EXT_mesh_features.d.ts.map +1 -0
  77. package/dist/lib/extensions/EXT_structural_metadata.d.ts +16 -0
  78. package/dist/lib/extensions/EXT_structural_metadata.d.ts.map +1 -0
  79. package/dist/lib/extensions/KHR_draco_mesh_compression.d.ts +1 -1
  80. package/dist/lib/extensions/KHR_draco_mesh_compression.d.ts.map +1 -1
  81. package/dist/lib/extensions/deprecated/EXT_feature_metadata.d.ts +9 -0
  82. package/dist/lib/extensions/deprecated/EXT_feature_metadata.d.ts.map +1 -1
  83. package/dist/lib/extensions/utils/3d-tiles-utils.d.ts +82 -0
  84. package/dist/lib/extensions/utils/3d-tiles-utils.d.ts.map +1 -0
  85. package/dist/lib/gltf-utils/gltf-utils.d.ts +2 -0
  86. package/dist/lib/gltf-utils/gltf-utils.d.ts.map +1 -1
  87. package/dist/lib/parsers/parse-gltf.d.ts.map +1 -1
  88. package/dist/lib/types/gltf-ext-feature-metadata-schema.d.ts +421 -0
  89. package/dist/lib/types/gltf-ext-feature-metadata-schema.d.ts.map +1 -0
  90. package/dist/lib/types/gltf-ext-mesh-features-schema.d.ts +43 -0
  91. package/dist/lib/types/gltf-ext-mesh-features-schema.d.ts.map +1 -0
  92. package/dist/lib/types/gltf-ext-structural-metadata-schema.d.ts +329 -0
  93. package/dist/lib/types/gltf-ext-structural-metadata-schema.d.ts.map +1 -0
  94. package/dist/lib/types/gltf-json-schema.d.ts +12 -404
  95. package/dist/lib/types/gltf-json-schema.d.ts.map +1 -1
  96. package/dist/lib/types/gltf-types.d.ts +4 -1
  97. package/dist/lib/types/gltf-types.d.ts.map +1 -1
  98. package/package.json +6 -6
  99. package/src/glb-loader.ts +3 -3
  100. package/src/index.ts +37 -6
  101. package/src/lib/api/gltf-extensions.ts +6 -2
  102. package/src/lib/extensions/EXT_mesh_features.ts +91 -0
  103. package/src/lib/extensions/EXT_meshopt_compression.ts +1 -1
  104. package/src/lib/extensions/EXT_structural_metadata.ts +750 -0
  105. package/src/lib/extensions/KHR_draco_mesh_compression.ts +7 -7
  106. package/src/lib/extensions/KHR_texture_transform.ts +1 -1
  107. package/src/lib/extensions/deprecated/EXT_feature_metadata.ts +407 -281
  108. package/src/lib/extensions/utils/3d-tiles-utils.ts +430 -0
  109. package/src/lib/gltf-utils/gltf-utils.ts +38 -0
  110. package/src/lib/parsers/parse-gltf.ts +14 -6
  111. package/src/lib/types/gltf-ext-feature-metadata-schema.ts +470 -0
  112. package/src/lib/types/gltf-ext-mesh-features-schema.ts +46 -0
  113. package/src/lib/types/gltf-ext-structural-metadata-schema.ts +378 -0
  114. package/src/lib/types/gltf-json-schema.ts +26 -465
  115. package/src/lib/types/gltf-types.ts +5 -3
  116. package/dist/bundle.js +0 -5
  117. package/dist/glb-loader.js +0 -36
  118. package/dist/glb-writer.js +0 -35
  119. package/dist/gltf-loader.js +0 -50
  120. package/dist/gltf-writer.js +0 -32
  121. package/dist/index.js +0 -28
  122. package/dist/lib/api/gltf-extensions.js +0 -83
  123. package/dist/lib/api/gltf-scenegraph.js +0 -580
  124. package/dist/lib/api/normalize-gltf-v1.js +0 -299
  125. package/dist/lib/api/post-process-gltf.js +0 -433
  126. package/dist/lib/encoders/encode-glb.js +0 -72
  127. package/dist/lib/encoders/encode-gltf.js +0 -32
  128. package/dist/lib/extensions/EXT_meshopt_compression.js +0 -41
  129. package/dist/lib/extensions/EXT_texture_webp.js +0 -36
  130. package/dist/lib/extensions/KHR_binary_gltf.js +0 -39
  131. package/dist/lib/extensions/KHR_draco_mesh_compression.js +0 -138
  132. package/dist/lib/extensions/KHR_texture_basisu.js +0 -29
  133. package/dist/lib/extensions/KHR_texture_transform.js +0 -227
  134. package/dist/lib/extensions/deprecated/EXT_feature_metadata.js +0 -290
  135. package/dist/lib/extensions/deprecated/KHR_lights_punctual.js +0 -59
  136. package/dist/lib/extensions/deprecated/KHR_materials_unlit.js +0 -44
  137. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.js +0 -79
  138. package/dist/lib/gltf-utils/get-typed-array.js +0 -41
  139. package/dist/lib/gltf-utils/gltf-attribute-utils.js +0 -73
  140. package/dist/lib/gltf-utils/gltf-constants.js +0 -43
  141. package/dist/lib/gltf-utils/gltf-utils.js +0 -90
  142. package/dist/lib/gltf-utils/resolve-url.js +0 -18
  143. package/dist/lib/parsers/parse-glb.js +0 -166
  144. package/dist/lib/parsers/parse-gltf.js +0 -179
  145. package/dist/lib/types/glb-types.js +0 -2
  146. package/dist/lib/types/gltf-json-schema.js +0 -4
  147. package/dist/lib/types/gltf-postprocessed-schema.js +0 -4
  148. package/dist/lib/types/gltf-types.js +0 -3
  149. package/dist/lib/utils/assert.js +0 -12
  150. package/dist/lib/utils/version.js +0 -7
  151. package/dist/meshopt/meshopt-decoder.js +0 -118
  152. package/dist/webp/webp.js +0 -38
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports._TypecheckGLBLoader = exports.GLBLoader = void 0;
7
+ exports.GLBLoader = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _version = require("./lib/utils/version");
@@ -51,6 +51,4 @@ function parseSync(arrayBuffer, options) {
51
51
  (0, _parseGlb.parseGLBSync)(glb, arrayBuffer, byteOffset, options === null || options === void 0 ? void 0 : options.glb);
52
52
  return glb;
53
53
  }
54
- var _TypecheckGLBLoader = GLBLoader;
55
- exports._TypecheckGLBLoader = _TypecheckGLBLoader;
56
54
  //# sourceMappingURL=glb-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"glb-loader.js","names":["_version","require","_parseGlb","GLBLoader","name","id","module","version","VERSION","extensions","mimeTypes","binary","parse","parseSync","options","glb","strict","exports","_x","_x2","_parse","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","arrayBuffer","wrap","_callee$","_context","prev","next","abrupt","stop","_ref","_ref$byteOffset","byteOffset","parseGLBSync","_TypecheckGLBLoader"],"sources":["../../src/glb-loader.ts"],"sourcesContent":["import type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {GLB} from './lib/types/glb-types';\nimport type {ParseGLBOptions} from './lib/parsers/parse-glb';\nimport {VERSION} from './lib/utils/version';\nimport {parseGLBSync} from './lib/parsers/parse-glb';\n\nexport type GLBLoaderOptions = LoaderOptions & {\n glb?: ParseGLBOptions;\n byteOffset?: number;\n};\n\n/**\n * GLB Loader -\n * GLB is the binary container format for GLTF\n */\nexport const GLBLoader: LoaderWithParser<GLB, never, GLBLoaderOptions> = {\n name: 'GLB',\n id: 'glb',\n module: 'gltf',\n version: VERSION,\n extensions: ['glb'],\n mimeTypes: ['model/gltf-binary'],\n binary: true,\n parse,\n parseSync,\n options: {\n glb: {\n strict: false // Enables deprecated XVIZ support (illegal CHUNK formats)\n }\n }\n};\n\nasync function parse(arrayBuffer: ArrayBuffer, options?: GLBLoaderOptions): Promise<GLB> {\n return parseSync(arrayBuffer, options);\n}\n\nfunction parseSync(arrayBuffer: ArrayBuffer, options?: GLBLoaderOptions): GLB {\n const {byteOffset = 0} = options || {};\n const glb: GLB = {} as GLB;\n parseGLBSync(glb, arrayBuffer, byteOffset, options?.glb);\n return glb;\n}\n\n// TYPE TESTS - TODO find a better way than exporting junk\nexport const _TypecheckGLBLoader: LoaderWithParser = GLBLoader;\n"],"mappings":";;;;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAWO,IAAME,SAAyD,GAAG;EACvEC,IAAI,EAAE,KAAK;EACXC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,MAAM;EACdC,OAAO,EAAEC,gBAAO;EAChBC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,mBAAmB,CAAC;EAChCC,MAAM,EAAE,IAAI;EACZC,KAAK,EAALA,KAAK;EACLC,SAAS,EAATA,SAAS;EACTC,OAAO,EAAE;IACPC,GAAG,EAAE;MACHC,MAAM,EAAE;IACV;EACF;AACF,CAAC;AAACC,OAAA,CAAAd,SAAA,GAAAA,SAAA;AAAA,SAEaS,KAAKA,CAAAM,EAAA,EAAAC,GAAA;EAAA,OAAAC,MAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,OAAA;EAAAA,MAAA,OAAAG,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAApB,SAAAC,QAAqBC,WAAwB,EAAEd,OAA0B;IAAA,OAAAW,YAAA,CAAAD,OAAA,CAAAK,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAAA,OAAAF,QAAA,CAAAG,MAAA,WAChErB,SAAS,CAACe,WAAW,EAAEd,OAAO,CAAC;QAAA;QAAA;UAAA,OAAAiB,QAAA,CAAAI,IAAA;MAAA;IAAA,GAAAR,OAAA;EAAA,CACvC;EAAA,OAAAP,MAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAED,SAAST,SAASA,CAACe,WAAwB,EAAEd,OAA0B,EAAO;EAC5E,IAAAsB,IAAA,GAAyBtB,OAAO,IAAI,CAAC,CAAC;IAAAuB,eAAA,GAAAD,IAAA,CAA/BE,UAAU;IAAVA,UAAU,GAAAD,eAAA,cAAG,CAAC,GAAAA,eAAA;EACrB,IAAMtB,GAAQ,GAAG,CAAC,CAAQ;EAC1B,IAAAwB,sBAAY,EAACxB,GAAG,EAAEa,WAAW,EAAEU,UAAU,EAAExB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,GAAG,CAAC;EACxD,OAAOA,GAAG;AACZ;AAGO,IAAMyB,mBAAqC,GAAGrC,SAAS;AAACc,OAAA,CAAAuB,mBAAA,GAAAA,mBAAA"}
1
+ {"version":3,"file":"glb-loader.js","names":["_version","require","_parseGlb","GLBLoader","name","id","module","version","VERSION","extensions","mimeTypes","binary","parse","parseSync","options","glb","strict","exports","_x","_x2","_parse","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","arrayBuffer","wrap","_callee$","_context","prev","next","abrupt","stop","_ref","_ref$byteOffset","byteOffset","parseGLBSync"],"sources":["../../src/glb-loader.ts"],"sourcesContent":["import type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {GLB} from './lib/types/glb-types';\nimport type {ParseGLBOptions} from './lib/parsers/parse-glb';\nimport {VERSION} from './lib/utils/version';\nimport {parseGLBSync} from './lib/parsers/parse-glb';\n\n/** GLB loader options */\nexport type GLBLoaderOptions = LoaderOptions & {\n /** GLB Parser Options */\n glb?: ParseGLBOptions;\n /** GLB specific: byteOffset to start parsing from */\n byteOffset?: number;\n};\n\n/**\n * GLB Loader -\n * GLB is the binary container format for GLTF\n */\nexport const GLBLoader: LoaderWithParser<GLB, never, GLBLoaderOptions> = {\n name: 'GLB',\n id: 'glb',\n module: 'gltf',\n version: VERSION,\n extensions: ['glb'],\n mimeTypes: ['model/gltf-binary'],\n binary: true,\n parse,\n parseSync,\n options: {\n glb: {\n strict: false // Enables deprecated XVIZ support (illegal CHUNK formats)\n }\n }\n};\n\nasync function parse(arrayBuffer: ArrayBuffer, options?: GLBLoaderOptions): Promise<GLB> {\n return parseSync(arrayBuffer, options);\n}\n\nfunction parseSync(arrayBuffer: ArrayBuffer, options?: GLBLoaderOptions): GLB {\n const {byteOffset = 0} = options || {};\n const glb: GLB = {} as GLB;\n parseGLBSync(glb, arrayBuffer, byteOffset, options?.glb);\n return glb;\n}\n"],"mappings":";;;;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAcO,IAAME,SAAyD,GAAG;EACvEC,IAAI,EAAE,KAAK;EACXC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,MAAM;EACdC,OAAO,EAAEC,gBAAO;EAChBC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,mBAAmB,CAAC;EAChCC,MAAM,EAAE,IAAI;EACZC,KAAK,EAALA,KAAK;EACLC,SAAS,EAATA,SAAS;EACTC,OAAO,EAAE;IACPC,GAAG,EAAE;MACHC,MAAM,EAAE;IACV;EACF;AACF,CAAC;AAACC,OAAA,CAAAd,SAAA,GAAAA,SAAA;AAAA,SAEaS,KAAKA,CAAAM,EAAA,EAAAC,GAAA;EAAA,OAAAC,MAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,OAAA;EAAAA,MAAA,OAAAG,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAApB,SAAAC,QAAqBC,WAAwB,EAAEd,OAA0B;IAAA,OAAAW,YAAA,CAAAD,OAAA,CAAAK,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAAA,OAAAF,QAAA,CAAAG,MAAA,WAChErB,SAAS,CAACe,WAAW,EAAEd,OAAO,CAAC;QAAA;QAAA;UAAA,OAAAiB,QAAA,CAAAI,IAAA;MAAA;IAAA,GAAAR,OAAA;EAAA,CACvC;EAAA,OAAAP,MAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAED,SAAST,SAASA,CAACe,WAAwB,EAAEd,OAA0B,EAAO;EAC5E,IAAAsB,IAAA,GAAyBtB,OAAO,IAAI,CAAC,CAAC;IAAAuB,eAAA,GAAAD,IAAA,CAA/BE,UAAU;IAAVA,UAAU,GAAAD,eAAA,cAAG,CAAC,GAAAA,eAAA;EACrB,IAAMtB,GAAQ,GAAG,CAAC,CAAQ;EAC1B,IAAAwB,sBAAY,EAACxB,GAAG,EAAEa,WAAW,EAAEU,UAAU,EAAExB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,GAAG,CAAC;EACxD,OAAOA,GAAG;AACZ"}
package/dist/es5/index.js CHANGED
@@ -3,6 +3,24 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "EXT_FEATURE_METADATA", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _EXT_feature_metadata.name;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "EXT_MESH_FEATURES", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _EXT_mesh_features.name;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "EXT_STRUCTURAL_METADATA", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _EXT_structural_metadata.name;
22
+ }
23
+ });
6
24
  Object.defineProperty(exports, "GLBLoader", {
7
25
  enumerable: true,
8
26
  get: function get() {
@@ -39,12 +57,27 @@ Object.defineProperty(exports, "_getMemoryUsageGLTF", {
39
57
  return _gltfUtils.getMemoryUsageGLTF;
40
58
  }
41
59
  });
60
+ Object.defineProperty(exports, "getPropertyTableFromExtFeatureMetadata", {
61
+ enumerable: true,
62
+ get: function get() {
63
+ return _EXT_feature_metadata.getPropertyTableFromExtFeatureMetadata;
64
+ }
65
+ });
66
+ Object.defineProperty(exports, "getPropertyTableFromExtStructuralMetadata", {
67
+ enumerable: true,
68
+ get: function get() {
69
+ return _EXT_structural_metadata.getPropertyTableFromExtStructuralMetadata;
70
+ }
71
+ });
42
72
  Object.defineProperty(exports, "postProcessGLTF", {
43
73
  enumerable: true,
44
74
  get: function get() {
45
75
  return _postProcessGltf.postProcessGLTF;
46
76
  }
47
77
  });
78
+ var _EXT_mesh_features = require("./lib/extensions/EXT_mesh_features");
79
+ var _EXT_structural_metadata = require("./lib/extensions/EXT_structural_metadata");
80
+ var _EXT_feature_metadata = require("./lib/extensions/deprecated/EXT_feature_metadata");
48
81
  var _gltfLoader = require("./gltf-loader");
49
82
  var _gltfWriter = require("./gltf-writer");
50
83
  var _glbLoader = require("./glb-loader");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_gltfLoader","require","_gltfWriter","_glbLoader","_glbWriter","_gltfScenegraph","_postProcessGltf","_gltfUtils"],"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 GLTF_EXT_feature_metadata,\n GLTF_EXT_feature_metadata_primitive,\n GLTF_EXT_feature_metadata_attribute,\n GLTF_EXT_mesh_features\n} from './lib/types/gltf-json-schema';\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} 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAGA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAGA,IAAAI,eAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAL,OAAA;AACA,IAAAM,UAAA,GAAAN,OAAA"}
1
+ {"version":3,"file":"index.js","names":["_EXT_mesh_features","require","_EXT_structural_metadata","_EXT_feature_metadata","_gltfLoader","_gltfWriter","_glbLoader","_glbWriter","_gltfScenegraph","_postProcessGltf","_gltfUtils"],"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 {GLTF_EXT_structural_metadata_GLTF} 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';\nexport {getPropertyTableFromExtFeatureMetadata} from './lib/extensions/deprecated/EXT_feature_metadata';\nexport {getPropertyTableFromExtStructuralMetadata} from './lib/extensions/EXT_structural_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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,wBAAA,GAAAD,OAAA;AACA,IAAAE,qBAAA,GAAAF,OAAA;AAmBA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AAGA,IAAAK,UAAA,GAAAL,OAAA;AACA,IAAAM,UAAA,GAAAN,OAAA;AAGA,IAAAO,eAAA,GAAAP,OAAA;AACA,IAAAQ,gBAAA,GAAAR,OAAA;AACA,IAAAS,UAAA,GAAAT,OAAA"}
@@ -10,6 +10,8 @@ exports.decodeExtensions = decodeExtensions;
10
10
  exports.preprocessExtensions = preprocessExtensions;
11
11
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
12
12
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+ var EXT_mesh_features = _interopRequireWildcard(require("../extensions/EXT_mesh_features"));
14
+ var EXT_structural_metadata = _interopRequireWildcard(require("../extensions/EXT_structural_metadata"));
13
15
  var EXT_meshopt_compression = _interopRequireWildcard(require("../extensions/EXT_meshopt_compression"));
14
16
  var EXT_texture_webp = _interopRequireWildcard(require("../extensions/EXT_texture_webp"));
15
17
  var KHR_texture_basisu = _interopRequireWildcard(require("../extensions/KHR_texture_basisu"));
@@ -24,7 +26,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
24
26
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
25
27
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
26
28
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
27
- var EXTENSIONS = [EXT_meshopt_compression, EXT_texture_webp, KHR_texture_basisu, KHR_draco_mesh_compression, KHR_lights_punctual, KHR_materials_unlit, KHR_techniques_webgl, KHR_texture_transform, EXT_feature_metadata];
29
+ var EXTENSIONS = [EXT_structural_metadata, EXT_mesh_features, EXT_meshopt_compression, EXT_texture_webp, KHR_texture_basisu, KHR_draco_mesh_compression, KHR_lights_punctual, KHR_materials_unlit, KHR_techniques_webgl, KHR_texture_transform, EXT_feature_metadata];
28
30
  exports.EXTENSIONS = EXTENSIONS;
29
31
  function preprocessExtensions(gltf) {
30
32
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
@@ -1 +1 @@
1
- {"version":3,"file":"gltf-extensions.js","names":["EXT_meshopt_compression","_interopRequireWildcard","require","EXT_texture_webp","KHR_texture_basisu","KHR_draco_mesh_compression","KHR_texture_transform","KHR_lights_punctual","KHR_materials_unlit","KHR_techniques_webgl","EXT_feature_metadata","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","step","next","_e2","return","minLen","_arrayLikeToArray","toString","slice","constructor","name","from","test","arr","len","arr2","EXTENSIONS","exports","preprocessExtensions","gltf","options","arguments","undefined","context","extensions","filter","extension","useExtension","_iterator","_step","_extension$preprocess","preprocess","decodeExtensions","_x","_decodeExtensions","apply","_asyncToGenerator2","_regenerator","mark","_callee","_iterator2","_step2","_extension$decode","_args","wrap","_callee$","_context","prev","decode","t0","finish","stop","extensionName","_options$gltf","excludes","excludeExtensions","exclude"],"sources":["../../../../src/lib/api/gltf-extensions.ts"],"sourcesContent":["/* eslint-disable camelcase */\nimport {GLTF} from '../types/gltf-json-schema';\nimport type {GLTFLoaderOptions} from '../../gltf-loader';\n\n// GLTF 1.0 extensions (decode only)\n// import * as KHR_binary_gltf from './KHR_draco_mesh_compression';\n\n// GLTF 2.0 Khronos extensions (decode/encode)\nimport * as EXT_meshopt_compression from '../extensions/EXT_meshopt_compression';\nimport * as EXT_texture_webp from '../extensions/EXT_texture_webp';\nimport * as KHR_texture_basisu from '../extensions/KHR_texture_basisu';\nimport * as KHR_draco_mesh_compression from '../extensions/KHR_draco_mesh_compression';\nimport * as KHR_texture_transform from '../extensions/KHR_texture_transform';\n\n// Deprecated. These should be handled by rendering library (e.g. luma.gl), not the loader.\nimport * as KHR_lights_punctual from '../extensions/deprecated/KHR_lights_punctual';\nimport * as KHR_materials_unlit from '../extensions/deprecated/KHR_materials_unlit';\nimport * as KHR_techniques_webgl from '../extensions/deprecated/KHR_techniques_webgl';\nimport * as EXT_feature_metadata from '../extensions/deprecated/EXT_feature_metadata';\n\n// Vendor extensions\n\ntype GLTFExtensionPlugin = {\n name: string;\n preprocess?: (gltfData: {json: GLTF}, options: GLTFLoaderOptions, context) => void;\n decode?: (\n gltfData: {\n json: GLTF;\n buffers: {arrayBuffer: ArrayBuffer; byteOffset: number; byteLength: number}[];\n },\n options: GLTFLoaderOptions,\n context\n ) => Promise<void>;\n encode?: (gltfData: {json: GLTF}, options: GLTFLoaderOptions) => void;\n};\n\n/**\n * List of extensions processed by the GLTFLoader\n * Note that may extensions can only be handled on the rendering stage and are left out here\n * These are just extensions that can be handled fully or partially during loading.\n */\nexport const EXTENSIONS: GLTFExtensionPlugin[] = [\n // 1.0\n // KHR_binary_gltf is handled separately - must be processed before other parsing starts\n // KHR_binary_gltf,\n\n // 2.0\n EXT_meshopt_compression,\n EXT_texture_webp,\n // Basisu should come after webp, we want basisu to be preferred if both are provided\n KHR_texture_basisu,\n KHR_draco_mesh_compression,\n KHR_lights_punctual,\n KHR_materials_unlit,\n KHR_techniques_webgl,\n KHR_texture_transform,\n EXT_feature_metadata\n];\n\n/** Call before any resource loading starts */\nexport function preprocessExtensions(gltf, options: GLTFLoaderOptions = {}, context?) {\n const extensions = EXTENSIONS.filter((extension) => useExtension(extension.name, options));\n for (const extension of extensions) {\n extension.preprocess?.(gltf, options, context);\n }\n}\n\n/** Call after resource loading */\nexport async function decodeExtensions(gltf, options: GLTFLoaderOptions = {}, context?) {\n const extensions = EXTENSIONS.filter((extension) => useExtension(extension.name, options));\n for (const extension of extensions) {\n // Note: We decode async extensions sequentially, this might not be necessary\n // Currently we only have Draco, but when we add Basis we may revisit\n await extension.decode?.(gltf, options, context);\n }\n}\n\nfunction useExtension(extensionName: string, options: GLTFLoaderOptions) {\n const excludes = options?.gltf?.excludeExtensions || {};\n const exclude = extensionName in excludes && !excludes[extensionName];\n return !exclude;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"gltf-extensions.js","names":["EXT_mesh_features","_interopRequireWildcard","require","EXT_structural_metadata","EXT_meshopt_compression","EXT_texture_webp","KHR_texture_basisu","KHR_draco_mesh_compression","KHR_texture_transform","KHR_lights_punctual","KHR_materials_unlit","KHR_techniques_webgl","EXT_feature_metadata","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","step","next","_e2","return","minLen","_arrayLikeToArray","toString","slice","constructor","name","from","test","arr","len","arr2","EXTENSIONS","exports","preprocessExtensions","gltf","options","arguments","undefined","context","extensions","filter","extension","useExtension","_iterator","_step","_extension$preprocess","preprocess","decodeExtensions","_x","_decodeExtensions","apply","_asyncToGenerator2","_regenerator","mark","_callee","_iterator2","_step2","_extension$decode","_args","wrap","_callee$","_context","prev","decode","t0","finish","stop","extensionName","_options$gltf","excludes","excludeExtensions","exclude"],"sources":["../../../../src/lib/api/gltf-extensions.ts"],"sourcesContent":["/* eslint-disable camelcase */\nimport {GLTF} from '../types/gltf-json-schema';\nimport type {GLTFLoaderOptions} from '../../gltf-loader';\n\n// GLTF 1.0 extensions (decode only)\n// import * as KHR_binary_gltf from './KHR_draco_mesh_compression';\n\n// GLTF 2.0 Vendor extensions\nimport * as EXT_mesh_features from '../extensions/EXT_mesh_features';\nimport * as EXT_structural_metadata from '../extensions/EXT_structural_metadata';\n\n// GLTF 2.0 Khronos extensions (decode/encode)\nimport * as EXT_meshopt_compression from '../extensions/EXT_meshopt_compression';\nimport * as EXT_texture_webp from '../extensions/EXT_texture_webp';\nimport * as KHR_texture_basisu from '../extensions/KHR_texture_basisu';\nimport * as KHR_draco_mesh_compression from '../extensions/KHR_draco_mesh_compression';\nimport * as KHR_texture_transform from '../extensions/KHR_texture_transform';\n\n// Deprecated. These should be handled by rendering library (e.g. luma.gl), not the loader.\nimport * as KHR_lights_punctual from '../extensions/deprecated/KHR_lights_punctual';\nimport * as KHR_materials_unlit from '../extensions/deprecated/KHR_materials_unlit';\nimport * as KHR_techniques_webgl from '../extensions/deprecated/KHR_techniques_webgl';\nimport * as EXT_feature_metadata from '../extensions/deprecated/EXT_feature_metadata';\n\ntype GLTFExtensionPlugin = {\n name: string;\n preprocess?: (gltfData: {json: GLTF}, options: GLTFLoaderOptions, context) => void;\n decode?: (\n gltfData: {\n json: GLTF;\n buffers: {arrayBuffer: ArrayBuffer; byteOffset: number; byteLength: number}[];\n },\n options: GLTFLoaderOptions,\n context\n ) => Promise<void>;\n encode?: (gltfData: {json: GLTF}, options: GLTFLoaderOptions) => void;\n};\n\n/**\n * List of extensions processed by the GLTFLoader\n * Note that may extensions can only be handled on the rendering stage and are left out here\n * These are just extensions that can be handled fully or partially during loading.\n */\nexport const EXTENSIONS: GLTFExtensionPlugin[] = [\n // 1.0\n // KHR_binary_gltf is handled separately - must be processed before other parsing starts\n // KHR_binary_gltf,\n\n // 2.0\n EXT_structural_metadata,\n EXT_mesh_features,\n EXT_meshopt_compression,\n EXT_texture_webp,\n // Basisu should come after webp, we want basisu to be preferred if both are provided\n KHR_texture_basisu,\n KHR_draco_mesh_compression,\n KHR_lights_punctual,\n KHR_materials_unlit,\n KHR_techniques_webgl,\n KHR_texture_transform,\n EXT_feature_metadata\n];\n\n/** Call before any resource loading starts */\nexport function preprocessExtensions(gltf, options: GLTFLoaderOptions = {}, context?) {\n const extensions = EXTENSIONS.filter((extension) => useExtension(extension.name, options));\n for (const extension of extensions) {\n extension.preprocess?.(gltf, options, context);\n }\n}\n\n/** Call after resource loading */\nexport async function decodeExtensions(gltf, options: GLTFLoaderOptions = {}, context?) {\n const extensions = EXTENSIONS.filter((extension) => useExtension(extension.name, options));\n for (const extension of extensions) {\n // Note: We decode async extensions sequentially, this might not be necessary\n // Currently we only have Draco, but when we add Basis we may revisit\n await extension.decode?.(gltf, options, context);\n }\n}\n\nfunction useExtension(extensionName: string, options: GLTFLoaderOptions) {\n const excludes = options?.gltf?.excludeExtensions || {};\n const exclude = extensionName in excludes && !excludes[extensionName];\n return !exclude;\n}\n"],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.decode = decode;
8
+ exports.name = void 0;
9
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
+ var _gltfScenegraph = require("../api/gltf-scenegraph");
12
+ var _dTilesUtils = require("./utils/3d-tiles-utils");
13
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
14
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
15
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
16
+ var EXT_MESH_FEATURES_NAME = 'EXT_mesh_features';
17
+ var name = EXT_MESH_FEATURES_NAME;
18
+ exports.name = name;
19
+ function decode(_x, _x2) {
20
+ return _decode.apply(this, arguments);
21
+ }
22
+ function _decode() {
23
+ _decode = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(gltfData, options) {
24
+ var scenegraph;
25
+ return _regenerator.default.wrap(function _callee$(_context) {
26
+ while (1) switch (_context.prev = _context.next) {
27
+ case 0:
28
+ scenegraph = new _gltfScenegraph.GLTFScenegraph(gltfData);
29
+ decodeExtMeshFeatures(scenegraph, options);
30
+ case 2:
31
+ case "end":
32
+ return _context.stop();
33
+ }
34
+ }, _callee);
35
+ }));
36
+ return _decode.apply(this, arguments);
37
+ }
38
+ function decodeExtMeshFeatures(scenegraph, options) {
39
+ var json = scenegraph.gltf.json;
40
+ if (!json.meshes) {
41
+ return;
42
+ }
43
+ var _iterator = _createForOfIteratorHelper(json.meshes),
44
+ _step;
45
+ try {
46
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
47
+ var mesh = _step.value;
48
+ var _iterator2 = _createForOfIteratorHelper(mesh.primitives),
49
+ _step2;
50
+ try {
51
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
52
+ var primitive = _step2.value;
53
+ processMeshPrimitiveFeatures(scenegraph, primitive, options);
54
+ }
55
+ } catch (err) {
56
+ _iterator2.e(err);
57
+ } finally {
58
+ _iterator2.f();
59
+ }
60
+ }
61
+ } catch (err) {
62
+ _iterator.e(err);
63
+ } finally {
64
+ _iterator.f();
65
+ }
66
+ }
67
+ function processMeshPrimitiveFeatures(scenegraph, primitive, options) {
68
+ var _options$gltf, _primitive$extensions;
69
+ if (!(options !== null && options !== void 0 && (_options$gltf = options.gltf) !== null && _options$gltf !== void 0 && _options$gltf.loadBuffers)) {
70
+ return;
71
+ }
72
+ var extension = (_primitive$extensions = primitive.extensions) === null || _primitive$extensions === void 0 ? void 0 : _primitive$extensions[EXT_MESH_FEATURES_NAME];
73
+ var featureIds = extension === null || extension === void 0 ? void 0 : extension.featureIds;
74
+ if (!featureIds) {
75
+ return;
76
+ }
77
+ var _iterator3 = _createForOfIteratorHelper(featureIds),
78
+ _step3;
79
+ try {
80
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
81
+ var _options$gltf2;
82
+ var featureId = _step3.value;
83
+ var featureIdData = null;
84
+ if (typeof featureId.attribute !== 'undefined') {
85
+ var accessorKey = "_FEATURE_ID_".concat(featureId.attribute);
86
+ var accessorIndex = primitive.attributes[accessorKey];
87
+ featureIdData = scenegraph.getTypedArrayForAccessor(accessorIndex);
88
+ } else if (typeof featureId.texture !== 'undefined' && options !== null && options !== void 0 && (_options$gltf2 = options.gltf) !== null && _options$gltf2 !== void 0 && _options$gltf2.loadImages) {
89
+ featureIdData = (0, _dTilesUtils.getPrimitiveTextureData)(scenegraph, featureId.texture, primitive);
90
+ } else {}
91
+ featureId.data = featureIdData;
92
+ }
93
+ } catch (err) {
94
+ _iterator3.e(err);
95
+ } finally {
96
+ _iterator3.f();
97
+ }
98
+ }
99
+ //# sourceMappingURL=EXT_mesh_features.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EXT_mesh_features.js","names":["_gltfScenegraph","require","_dTilesUtils","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","EXT_MESH_FEATURES_NAME","exports","decode","_x","_x2","_decode","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","gltfData","options","scenegraph","wrap","_callee$","_context","prev","GLTFScenegraph","decodeExtMeshFeatures","stop","json","gltf","meshes","_iterator","_step","mesh","_iterator2","primitives","_step2","primitive","processMeshPrimitiveFeatures","_options$gltf","_primitive$extensions","loadBuffers","extension","extensions","featureIds","_iterator3","_step3","_options$gltf2","featureId","featureIdData","attribute","accessorKey","concat","accessorIndex","attributes","getTypedArrayForAccessor","texture","loadImages","getPrimitiveTextureData","data"],"sources":["../../../../src/lib/extensions/EXT_mesh_features.ts"],"sourcesContent":["// GLTF EXTENSION: EXT_mesh_features\n// https://github.com/CesiumGS/glTF/tree/3d-tiles-next/extensions/2.0/Vendor/EXT_mesh_features\n/* eslint-disable camelcase */\nimport type {GLTF, GLTFMeshPrimitive} from '../types/gltf-json-schema';\nimport {GLTFLoaderOptions} from '../../gltf-loader';\nimport type {\n GLTF_EXT_mesh_features,\n GLTF_EXT_mesh_features_featureId\n} from '../types/gltf-ext-mesh-features-schema';\n\nimport {GLTFScenegraph} from '../api/gltf-scenegraph';\nimport {getPrimitiveTextureData} from './utils/3d-tiles-utils';\n\nconst EXT_MESH_FEATURES_NAME = 'EXT_mesh_features';\nexport const name = EXT_MESH_FEATURES_NAME;\n\nexport async function decode(gltfData: {json: GLTF}, options: GLTFLoaderOptions): Promise<void> {\n const scenegraph = new GLTFScenegraph(gltfData);\n decodeExtMeshFeatures(scenegraph, options);\n}\n\n/**\n * Decodes feature metadata from extension.\n * @param {GLTFScenegraph} scenegraph - Instance of the class for structured access to GLTF data.\n * @param {GLTFLoaderOptions} options - GLTFLoader options.\n */\nfunction decodeExtMeshFeatures(scenegraph: GLTFScenegraph, options: GLTFLoaderOptions): void {\n const json = scenegraph.gltf.json;\n if (!json.meshes) {\n return;\n }\n\n // Iterate through all meshes/primitives.\n for (const mesh of json.meshes) {\n for (const primitive of mesh.primitives) {\n processMeshPrimitiveFeatures(scenegraph, primitive, options);\n }\n }\n}\n\n/**\n * Takes data from EXT_mesh_features and store it in 'data' property of featureIds.\n * If combined with EXT_structural_metadata, corresponding data are taken from the property tables of that extension.\n * @param {GLTFScenegraph} scenegraph - Instance of the class for structured access to GLTF data.\n * @param {GLTFMeshPrimitive} primitive - Primitive that contains extensions.\n * @param {GLTFLoaderOptions} options - GLTFLoader options.\n */\nfunction processMeshPrimitiveFeatures(\n scenegraph: GLTFScenegraph,\n primitive: GLTFMeshPrimitive,\n options: GLTFLoaderOptions\n): void {\n // Processing of mesh primitive features requires buffers to be loaded.\n if (!options?.gltf?.loadBuffers) {\n return;\n }\n\n const extension = primitive.extensions?.[EXT_MESH_FEATURES_NAME] as GLTF_EXT_mesh_features;\n const featureIds: GLTF_EXT_mesh_features_featureId[] = extension?.featureIds;\n\n if (!featureIds) {\n return;\n }\n\n for (const featureId of featureIds) {\n let featureIdData: number[] | null = null;\n // Process \"Feature ID by Vertex\"\n if (typeof featureId.attribute !== 'undefined') {\n const accessorKey = `_FEATURE_ID_${featureId.attribute}`;\n const accessorIndex = primitive.attributes[accessorKey];\n featureIdData = scenegraph.getTypedArrayForAccessor(accessorIndex) as number[];\n }\n\n // Process \"Feature ID by Texture Coordinates\"\n else if (typeof featureId.texture !== 'undefined' && options?.gltf?.loadImages) {\n featureIdData = getPrimitiveTextureData(scenegraph, featureId.texture, primitive);\n }\n\n // Process \"Feature ID by Index\"\n else {\n /*\n When both featureId.attribute and featureId.texture are undefined,\n then the feature ID value for each vertex is given implicitly, via the index of the vertex.\n In this case, the featureCount must match the number of vertices of the mesh primitive.\n */\n // TODO: At the moment of writing we don't have a tileset with the data of that kind. Implement it later.\n }\n\n featureId.data = featureIdData;\n }\n}\n"],"mappings":"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"}
@@ -25,13 +25,13 @@ function decode(_x, _x2) {
25
25
  }
26
26
  function _decode() {
27
27
  _decode = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(gltfData, options) {
28
- var _options$gltf;
28
+ var _options$gltf, _options$gltf2;
29
29
  var scenegraph, promises, _iterator, _step, bufferViewIndex;
30
30
  return _regenerator.default.wrap(function _callee$(_context) {
31
31
  while (1) switch (_context.prev = _context.next) {
32
32
  case 0:
33
33
  scenegraph = new _gltfScenegraph.GLTFScenegraph(gltfData);
34
- if (options !== null && options !== void 0 && (_options$gltf = options.gltf) !== null && _options$gltf !== void 0 && _options$gltf.decompressMeshes) {
34
+ if (!(!(options !== null && options !== void 0 && (_options$gltf = options.gltf) !== null && _options$gltf !== void 0 && _options$gltf.decompressMeshes) || !((_options$gltf2 = options.gltf) !== null && _options$gltf2 !== void 0 && _options$gltf2.loadBuffers))) {
35
35
  _context.next = 3;
36
36
  break;
37
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EXT_meshopt_compression.js","names":["_gltfScenegraph","require","_meshoptDecoder","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","DEFAULT_MESHOPT_OPTIONS","byteOffset","filter","EXT_MESHOPT_COMPRESSION","exports","decode","_x","_x2","_decode","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","gltfData","options","_options$gltf","scenegraph","promises","_iterator","_step","bufferViewIndex","wrap","_callee$","_context","prev","GLTFScenegraph","gltf","decompressMeshes","abrupt","json","bufferViews","push","decodeMeshoptBufferView","Promise","all","removeExtension","stop","_x3","_x4","_decodeMeshoptBufferView","_callee2","bufferView","meshoptExtension","_meshoptExtension$byt","_meshoptExtension$byt2","byteLength","byteStride","count","mode","_meshoptExtension$fil","bufferIndex","buffer","source","result","_callee2$","_context2","getObjectExtension","buffers","Uint8Array","arrayBuffer","meshoptDecodeGltfBuffer","removeObjectExtension"],"sources":["../../../../src/lib/extensions/EXT_meshopt_compression.ts"],"sourcesContent":["/* eslint-disable camelcase */\nimport type {GLTF, GLTFBufferView, GLTF_EXT_meshopt_compression} from '../types/gltf-json-schema';\nimport type {GLTFLoaderOptions} from '../../gltf-loader';\nimport {GLTFScenegraph} from '../api/gltf-scenegraph';\nimport {meshoptDecodeGltfBuffer} from '../../meshopt/meshopt-decoder';\n\n// @ts-ignore\n// eslint-disable-next-line\nconst DEFAULT_MESHOPT_OPTIONS = {\n byteOffset: 0,\n filter: 'NONE'\n};\n\n/** Extension name */\nconst EXT_MESHOPT_COMPRESSION = 'EXT_meshopt_compression';\n\nexport const name = EXT_MESHOPT_COMPRESSION;\n\nexport async function decode(gltfData: {json: GLTF}, options: GLTFLoaderOptions) {\n const scenegraph = new GLTFScenegraph(gltfData);\n\n if (!options?.gltf?.decompressMeshes) {\n return;\n }\n\n const promises: Promise<any>[] = [];\n for (const bufferViewIndex of gltfData.json.bufferViews || []) {\n promises.push(decodeMeshoptBufferView(scenegraph, bufferViewIndex));\n }\n\n // Decompress meshes in parallel\n await Promise.all(promises);\n\n // We have now decompressed all primitives, so remove the top-level extension\n scenegraph.removeExtension(EXT_MESHOPT_COMPRESSION);\n}\n\n/** Decode one meshopt buffer view */\nasync function decodeMeshoptBufferView(\n scenegraph: GLTFScenegraph,\n bufferView: GLTFBufferView\n): Promise<void> {\n const meshoptExtension = scenegraph.getObjectExtension<GLTF_EXT_meshopt_compression>(\n bufferView,\n EXT_MESHOPT_COMPRESSION\n );\n if (meshoptExtension) {\n const {\n byteOffset = 0,\n byteLength = 0,\n byteStride,\n count,\n mode,\n filter = 'NONE',\n buffer: bufferIndex\n } = meshoptExtension;\n const buffer = scenegraph.gltf.buffers[bufferIndex];\n\n const source = new Uint8Array(buffer.arrayBuffer, buffer.byteOffset + byteOffset, byteLength);\n const result = new Uint8Array(\n scenegraph.gltf.buffers[bufferView.buffer].arrayBuffer,\n bufferView.byteOffset,\n bufferView.byteLength\n );\n await meshoptDecodeGltfBuffer(result, count, byteStride, source, mode, filter);\n scenegraph.removeObjectExtension(bufferView, EXT_MESHOPT_COMPRESSION);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"EXT_meshopt_compression.js","names":["_gltfScenegraph","require","_meshoptDecoder","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","DEFAULT_MESHOPT_OPTIONS","byteOffset","filter","EXT_MESHOPT_COMPRESSION","exports","decode","_x","_x2","_decode","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","gltfData","options","_options$gltf","_options$gltf2","scenegraph","promises","_iterator","_step","bufferViewIndex","wrap","_callee$","_context","prev","GLTFScenegraph","gltf","decompressMeshes","loadBuffers","abrupt","json","bufferViews","push","decodeMeshoptBufferView","Promise","all","removeExtension","stop","_x3","_x4","_decodeMeshoptBufferView","_callee2","bufferView","meshoptExtension","_meshoptExtension$byt","_meshoptExtension$byt2","byteLength","byteStride","count","mode","_meshoptExtension$fil","bufferIndex","buffer","source","result","_callee2$","_context2","getObjectExtension","buffers","Uint8Array","arrayBuffer","meshoptDecodeGltfBuffer","removeObjectExtension"],"sources":["../../../../src/lib/extensions/EXT_meshopt_compression.ts"],"sourcesContent":["/* eslint-disable camelcase */\nimport type {GLTF, GLTFBufferView, GLTF_EXT_meshopt_compression} from '../types/gltf-json-schema';\nimport type {GLTFLoaderOptions} from '../../gltf-loader';\nimport {GLTFScenegraph} from '../api/gltf-scenegraph';\nimport {meshoptDecodeGltfBuffer} from '../../meshopt/meshopt-decoder';\n\n// @ts-ignore\n// eslint-disable-next-line\nconst DEFAULT_MESHOPT_OPTIONS = {\n byteOffset: 0,\n filter: 'NONE'\n};\n\n/** Extension name */\nconst EXT_MESHOPT_COMPRESSION = 'EXT_meshopt_compression';\n\nexport const name = EXT_MESHOPT_COMPRESSION;\n\nexport async function decode(gltfData: {json: GLTF}, options: GLTFLoaderOptions) {\n const scenegraph = new GLTFScenegraph(gltfData);\n\n if (!options?.gltf?.decompressMeshes || !options.gltf?.loadBuffers) {\n return;\n }\n\n const promises: Promise<any>[] = [];\n for (const bufferViewIndex of gltfData.json.bufferViews || []) {\n promises.push(decodeMeshoptBufferView(scenegraph, bufferViewIndex));\n }\n\n // Decompress meshes in parallel\n await Promise.all(promises);\n\n // We have now decompressed all primitives, so remove the top-level extension\n scenegraph.removeExtension(EXT_MESHOPT_COMPRESSION);\n}\n\n/** Decode one meshopt buffer view */\nasync function decodeMeshoptBufferView(\n scenegraph: GLTFScenegraph,\n bufferView: GLTFBufferView\n): Promise<void> {\n const meshoptExtension = scenegraph.getObjectExtension<GLTF_EXT_meshopt_compression>(\n bufferView,\n EXT_MESHOPT_COMPRESSION\n );\n if (meshoptExtension) {\n const {\n byteOffset = 0,\n byteLength = 0,\n byteStride,\n count,\n mode,\n filter = 'NONE',\n buffer: bufferIndex\n } = meshoptExtension;\n const buffer = scenegraph.gltf.buffers[bufferIndex];\n\n const source = new Uint8Array(buffer.arrayBuffer, buffer.byteOffset + byteOffset, byteLength);\n const result = new Uint8Array(\n scenegraph.gltf.buffers[bufferView.buffer].arrayBuffer,\n bufferView.byteOffset,\n bufferView.byteLength\n );\n await meshoptDecodeGltfBuffer(result, count, byteStride, source, mode, filter);\n scenegraph.removeObjectExtension(bufferView, EXT_MESHOPT_COMPRESSION);\n }\n}\n"],"mappings":"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"}